• Aucun résultat trouvé

Exercice 1. Galons

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 1. Galons"

Copied!
19
0
0

Texte intégral

(1)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD01 - Les machines rament

Exercice 1. Galons

1. Rappeler comment simuler une machine de Turing à plusieurs rubans par une machine à un ruban.

2. En combien de temps fonctionne la simulation ?

Rappel

Une RAM sur l’alphabet ⌃ = { a 1 , . . . , a k } est un ensemble infini de registres R 1 , R 2 , . . . pou- vant chacun contenir un mot, un ensemble fini ordonné de noms de ligne distincts N 1 , N 2 , . . . et une instruction par ligne du type :

1. pour chaque 1  j  k, add j R (ajoute a j à la droite du registre R) ; 2. del R (efface la lettre la plus à gauche du registre R si elle existe) ; 3. clr R (met le mot vide dans le registre R) ;

4. R R 0 (copie le mot de R 0 dans R en le laissant aussi dans R 0 ) ; 5. jmp N (va à la ligne N ) ;

6. pour chaque 1  j  k, R jmp j N (si la première lettre du mot dans R est a j , va à la ligne N , sinon va à la ligne suivante) ;

7. stop (fin du programme).

En fait, les règles 1, 2, 6 et 7 forment un ensemble minimal suffisant pour les fonctions calcu- lables par RAM.

Exercice 2. Échauffement à la rame

. Écrire un programme RAM prenant un mot x en entrée (c’est-à-dire qu’un des registres contient x = x 1 . . . x n au départ) et renvoyant le miroir de ce mot, c’est-à-dire qu’un des registres contient x ¯ = x n . . . x 1 à la fin.

Exercice 3. Équivalence Turing / RAM

Nous allons montrer que toute fonction calculable par une RAM est calculable par une machine de Turing.

Une SRM (machine à un seul registre) sur ⌃ = { a 1 , . . . , a k } est une machine qui n’a qu’un seul registre pouvant contenir n’importe quel mot de ⌃ . Ses instructions sont de trois sortes :

1. pour chaque 1  j  k, add j (ajoute a j à la droite du registre) ; 2. del (efface la lettre la plus à gauche du registre si elle existe) ;

3. pour chaque 1  j  k, jmp j N (va à la ligne N si le registre commence par a j ).

Si est une fonction partielle de ⌃ alors un programme P qui est une SRM sur ⌃ 0 = ⌃ [ { , }

(2)

1. Soient u 1 , . . . , u n des mots sur l’alphabet ⌃. Donner une SRM qui sur l’entrée u 1 , . . . , u n calcule u 2 , . . . , u n , u 1 .

2. Montrer que toute fonction calculable par une RAM est calculable par une SRM.

3. Montrer que toute fonction calculable par une SRM est calculable par une machine de Turing.

4. Évaluer le temps de la simulation de la machine RAM par la machine de Turing.

(3)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD02 - Circuits de santé et spas

Exercice 1. On joue aux bool ?

1. Montrer que toute fonction booléenne peut être exprimée en n’utilisant que les connec- teurs AND, OR et NOT.

2. Montrer qu’on peut même se passer de OR.

3. Peut-on exprimer n’importe quelle fonction booléenne en n’utilisant que le connecteur NOR ? Quid de NAND ?

4. Qu’en est-il des autres connecteurs binaires ?

5. Une fonction booléenne f : { 0, 1 } n 7! { 0, 1 } sera dite monotone croissante si pour tout i, et pour tous x 1 , . . . , x i 1 , x i+1 , . . . , x n on a :

f (x 1 , . . . , x i 1 , 1, x i+1 , . . . , x n ) f(x 1 , . . . , x i 1 , 0, x i+1 , . . . , x n ).

Montrer que les fonctions monotones croissantes sont exactement celles qu’on peut expri- mer en n’utilisant que les connecteurs AND, OR, et les constantes 0 et 1.

Exercice 2. Si recuit

1. Réaliser un circuit effectuant l’addition de deux entiers codés en binaire x = x n 1 . . . x 0 et y = y n 1 . . . y 0 en utilisant l’algorithme naïf appris à l’école. Quelle est la taille (nombre de portes) et la profondeur (plus long chemin entre une entrée et la sortie) de ce circuit ? 2. On suppose ici que n est une puissance de 2. Réaliser un circuit effectuant l’addition de x et y en utilisant la méthode récursive suivante : on effectue à la fois le calcul de x n 1 . . . x n/2 + y n 1 . . . y n/2 et le calcul de x n 1 . . . x n/2 + y n 1 . . . y n/2 + 1 et on sélectionne le bon en fonction de la retenue sortante du calcul de x n/2 1 . . . x 0 + y n/2 1 . . . y 0 . Quelle est la taille et la profondeur de votre circuit ?

3. Soit (C n ) une famille de circuits de profondeur O(log(n) k ) pour une certaine constante k.

Que pouvez-vous dire de la taille de C n ?

On note NC k la classe des fonctions calculables par une famille de circuits de taille poly- nomiale et de profondeur O(log(n) k ). Que pouvez-vous dire de la complexité de l’addition binaire de deux entiers ?

4. On note AC 0 la classe des fonctions calculables par une famille de circuits booléens de taille polynomiale et de profondeur constante composés exclusivement de portes NOT, ainsi que de portes AND et OR ayant un nombre d’entrées arbitraire.

Montrer que l’addition binaire est dans AC 0 (conseil : exprimer le fait qu’une retenue sera présente sur le i-ème bit à l’aide d’une formule logique).

Que devient la classe AC 0 si on supprime la condition de taille polynomiale ?

(4)

Exercice 3. Bien habillé On rappelle qu’un système acceptable de programmation est une énumération (surjective) des fonctions calculables : ' 0 , ' 1 , . . . , ' n , . . . vérifiant :

– universalité : il existe une fonction récursive totale f telle que 8 n, x, f ( h n, x i ) = ' n (x). On note généralement u un numéro tel que f = ' u .

– s-n-m : pour tous n et m, il existe une fonction récursive totale s m n telle que

8 a, x 1 , . . . , x n , y 1 , . . . , y m , ' s

mn

( h a, x

1

,..., x

n

i ) ( h y 1 , . . . , y m i ) = ' a ( h x 1 , . . . , x n , y 1 , . . . , y m i ).

1. Montrer qu’on peut se contenter de s 1 1 .

2. Montrer qu’il existe une fonction totale c telle que pour tous a et b, ' c( h a, b i ) = ' a ' b . 3. Soit une énumération vérifiant l’universalité et l’existence d’une telle fonction c. Nous allons montrer l’existence de s 1 1 .

Soient ' p : y 7! h 0, y i , ' q : h x, y i 7! h x + 1, y i . En utilisant ces fonctions, montrer qu’il existe une fonction récursive totale R telle que 8 n, y, ' R(n) (y) = h n, y i .

Conclure.

(5)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD03

Exercice 1. Si recuit

1. Réaliser un circuit effectuant l’addition de deux entiers codés en binaire x = x n 1 . . . x 0

et y = y n 1 . . . y 0 en utilisant l’algorithme naïf appris à l’école. Quelle est la taille (nombre de portes) et la profondeur (plus long chemin entre une entrée et la sortie) de ce circuit ? 2. On suppose ici que n est une puissance de 2. Réaliser un circuit effectuant l’addition de x et y en utilisant la méthode récursive suivante : on effectue à la fois le calcul de x n 1 . . . x n/2 + y n 1 . . . y n/2 et le calcul de x n 1 . . . x n/2 + y n 1 . . . y n/2 + 1 et on sélectionne le bon en fonction de la retenue sortante du calcul de x n/2 1 . . . x 0 + y n/2 1 . . . y 0 . Quelle est la taille et la profondeur de votre circuit ?

3. Soit (C n ) une famille de circuits de profondeur O(log(n) k ) pour une certaine constante k.

Que pouvez-vous dire de la taille de C n ?

On note NC k la classe des fonctions calculables par une famille de circuits de taille poly- nomiale et de profondeur O(log(n) k ). Que pouvez-vous dire de la complexité de l’addition binaire de deux entiers ?

4. On note AC 0 la classe des fonctions calculables par une famille de circuits booléens de taille polynomiale et de profondeur constante composés exclusivement de portes NOT, ainsi que de portes AND et OR ayant un nombre d’entrées arbitraire.

Montrer que l’addition binaire est dans AC 0 (conseil : exprimer le fait qu’une retenue sera présente sur le i-ème bit à l’aide d’une formule logique).

Que devient la classe AC 0 si on supprime la condition de taille polynomiale ? 5. Montrer que AC 0 ✓ NC 1 .

Exercice 2. Bien habillé

On rappelle qu’un système acceptable de programmation est une énumération (surjective) des fonctions calculables : ' 0 , ' 1 , . . . , ' n , . . . vérifiant :

– universalité : il existe une fonction récursive totale f telle que 8 n, x, f ( h n, x i ) = ' n (x). On note généralement u un numéro tel que f = ' u .

– s-n-m : pour tous n et m, il existe une fonction récursive totale s m n telle que

8 a, x 1 , . . . , x n , y 1 , . . . , y m , ' s

mn

( h a, x

1

,..., x

n

i ) ( h y 1 , . . . , y m i ) = ' a ( h x 1 , . . . , x n , y 1 , . . . , y m i ).

1. Montrer qu’on peut se contenter de s 1 1 .

2. Montrer qu’il existe une fonction totale c telle que pour tous a et b, ' c( h a, b i ) = ' a ' b . 3. Soit une énumération vérifiant l’universalité et l’existence d’une telle fonction c. Nous allons montrer l’existence de s 1 1 .

Soient ' p : y 7! h 0, y i , ' q : h x, y i 7! h x + 1, y i . En utilisant ces fonctions, montrer qu’il existe une fonction récursive totale R telle que 8 n, y, ' R(n) (y) = h n, y i .

Conclure.

(6)

Exercice 3. Mariage Soit A = { j | 9 x ' j (x) = j } .

1. Rappeler le théorème de Rice et le théorème de point fixe de Kleene.

2. Rappeler le lemme de remplissage.

3. On dit qu’un ensemble d’entiers E préserve les fonctions si pour tous entiers i et j, si i appartient à E et ' i = ' j alors j appartient à E. Est-ce que A préserve les fonctions ? 4. Est-ce que A est récursif ?

5. Est-ce que A est récursivement énumérable ?

Exercice 4. Droits de succession

. Soit A = { i | ' i = ' i+1 } . L’ensemble A est-il récursif ?

(7)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD04 – Complètement

Exercice 1. Promotion du jour

1. Montrer qu’une réduction en espace logarithmique fonctionne en temps polynomial.

2. Montrer que pour tout entier k 1, il existe une machine de Turing fonctionnant en espace logarithmique qui, sur l’entrée 1 n , retourne le nombre n k écrit en binaire.

Exercice 2. Belle famille

1. Montrer que tout problème de P peut être reconnu par une famille de circuits booléens de taille polynomiale.

2. Montrer que la famille précédente est logspace-uniforme.

Exercice 3. Matière plastique

1. Le problème de la valeur d’un circuit (PVC) est le problème suivant.

– Entrée : un circuit booléen C avec n entrées et un mot a 2 { 0, 1 } n . – Sortie : est-ce que C(a) = 1 ?

Montrer que PVC est P-complet.

2. Un circuit est dit monotone croissant s’il ne comporte pas de porte NOT. Montrer que PVC reste P-complet même si l’on impose que le circuit C soit monotone croissant.

Exercice 4.

. Soit A un langage. Déduire de ce qui précède que les trois assertions suivantes sont équi- valentes.

1. Le langage A est dans P.

2. Le langage A est reconnu par une famille logspace-uniforme de circuits de taille poly- nomiale.

3. Le langage A est reconnu par une famille P-uniforme de circuits de taille polynomiale.

(8)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD05 – Une classe très polie

Définition (Karp, Lipton)

Soient ⌃ un alphabet fini, C une classe de complexité sur ⌃ et f : N ! N une fonction. On note C /f l’ensemble des langages A sur ⌃ vérifiant la propriété suivante : il existe B 2 C et a : N ! ⌃ tels que

1. 8 n 0, | a(n) |  f (n) ; 2. x 2 A () (x, a( | x | )) 2 B.

Si F est un ensemble de fonctions, on note C / F la réunion des C /f pour f 2 F . Les ensembles de fonctions courants sont poly (ensemble des fonctions polynomialement bornées) et log (en- semble des fonctions logarithmiquement bornées).

Exercice 1.

1. Montrer que P ✓ P/poly.

2. Montrer qu’un langage A est dans P/poly si et seulement s’il admet une famille de circuits booléens de taille polynomiale.

3. Montrer qu’il existe un langage indécidable dans P/poly.

4. Montrer qu’il existe un langage décidable hors de P/poly. Indication : on pourra faire une diagonalisation sur l’ensemble des circuits de taille  n log n .

Définition

La classe RP est l’ensemble des langages A tels qu’il existe un langage B 2 P et un polynôme p tels que

1. si x 2 A alors |{ y 2 { 0, 1 } p( | x | ) : (x, y) 62 B }|  (1/2)2 p( | x | ) ; 2. si x 62 A alors { y 2 { 0, 1 } p( | x | ) : (x, y) 2 B } = ;.

Exercice 2. Very RP

1. Montrer que P ✓ RP.

2. Montrer que le seuil 1/2 dans le point (1) de la définition de RP peut être remplacé par n’importe quelle constante 0 < ↵ < 1.

3. Montrer qu’on peut réduire exponentiellement la probabilité d’erreur, c’est-à-dire que pour tout polynôme q, il existe B 2 P et un polynôme p tels que

1. si x 2 A alors |{ y 2 { 0, 1 } p( | x | ) : (x, y) 62 B }|  2 q( | x | ) .2 p( | x | ) ; 2. si x 62 A alors { y 2 { 0, 1 } p( | x | ) : (x, y) 2 B } = ; .

4. Un circuit arithmétique est un circuit comprenant des portes + et ⇥ (au lieu de OR, AND et NOT dans les circuits booléens), ayant pour entrée la constante 1 et ne possédant qu’une sortie. Ainsi, un tel circuit calcule un entier relatif.

On définit le problème NonNul comme suit.

– Entrée : un circuit arithmétique C calculant un entier N .

(9)

– Problème : décider si N 6 = 0.

Pourquoi NonNul n’est pas trivialement dans P ? Montrer que NonNul est dans RP. Indi- cation : on pourra admettre que le nombre ⇡(x) de nombres premiers inférieurs à x est Cx/ ln x pour une certaine constante C > 0.

5. Montrer que RP ✓ NP.

6. Montrer que RP ⇢ P/poly. Pour cela, on réduira la probabilité d’erreur à 2 |x| 1 grâce

à la question 3, puis on majorera le nombre de uns dans le tableau t défini de la manière

suivante : pour x 2 { 0, 1 } n et y 2 { 0, 1 } p(n) , t[x, y] = 1 si et seulement si (x 2 A et (x, y) 62 B)

(i.e. l’algorithme probabiliste se trompe).

(10)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD06 – Un club très select

Rappels (Karp, Lipton)

Soient Σ un alphabet fini, C une classe de complexité sur Σ et f : N → N une fonction. On note C /f l’ensemble des langages A sur Σ vérifiant la propriété suivante : il existe B ∈ C et a : N → Σ tels que

1. ∀ n ≥ 0, | a(n) | = f (n) ; 2. x ∈ A ⇐⇒ (x, a( | x | )) ∈ B.

Si F est un ensemble de fonctions, on note C / F la réunion des C /f pour f ∈ F . Les ensembles de fonctions courants sont poly (ensemble des fonctions polynomialement bornées) et log (en- semble des fonctions logarithmiquement bornées).

On utilisera aussi :

– lin : l’ensemble des fonctions linéaires de N dans N ; – quad : l’ensemble des polynômes de degré au plus deux.

Définition

La classe RP est l’ensemble des langages A tels qu’il existe un langage B ∈ P et un polynôme p tels que

1. si x ∈ A alors |{ y ∈ { 0, 1 } p(|x|) : (x, y) '∈ B }| ≤ (1/2)2 p(|x|) ; 2. si x '∈ A alors { y ∈ { 0, 1 } p( | x | ) : (x, y) ∈ B } = ∅ .

Exercice 1. Very RP

1. Montrer que P ⊆ RP.

2. Montrer que le seuil 1/2 dans le point (1) de la définition de RP peut être remplacé par n’importe quelle constante 0 < α < 1.

3. Montrer qu’on peut réduire exponentiellement la probabilité d’erreur, c’est-à-dire que pour tout polynôme q, il existe B ∈ P et un polynôme p tels que

1. si x ∈ A alors |{ y ∈ { 0, 1 } p(|x|) : (x, y) '∈ B }| ≤ 2 −q(|x|) .2 p(|x|) ; 2. si x '∈ A alors { y ∈ { 0, 1 } p( | x | ) : (x, y) ∈ B } = ∅.

4. Un circuit arithmétique est un circuit comprenant des portes + et × (au lieu de OR, AND et NOT dans les circuits booléens), ayant pour entrée la constante − 1 et ne possédant qu’une sortie. Ainsi, un tel circuit calcule un entier relatif.

On définit le problème NonNul comme suit.

– Entrée : un circuit arithmétique C calculant un entier N . – Problème : décider si N ' = 0.

Pourquoi NonNul n’est pas trivialement dans P ? Montrer que NonNul est dans RP. Indi- cation : on pourra admettre que le nombre π(x) de nombres premiers inférieurs à x est ≥ Cx/ ln x pour une certaine constante C > 0.

5. Montrer que RP ⊆ NP.

(11)

6. Montrer que RP ⊂ P/poly. Pour cela, on réduira la probabilité d’erreur à 2 −|x|−1 grâce à la question 3, puis on majorera le nombre de uns dans le tableau t défini de la manière suivante : pour x ∈ { 0, 1 } n et y ∈ { 0, 1 } p(n) , t[x, y] = 1 si et seulement si (x ∈ A et (x, y) '∈ B) (i.e. l’algorithme se trompe).

Définition

Un langage L est dans P − sel (pour P sélectif) s’il existe f : { 0; 1 } ×{ 0; 1 } → { 0; 1 } calculable en temps polynomial telle que pour tout (x, y) :

! f (x, y) ∈ { x, y }

{ x, y } ∩ L ' = ∅ ⇒ f (x, y) ∈ L On dit alors que f est une fonction de sélection pour L . Exercice 2.

1. Montrer que P ⊆ P − sel.

2. Montrer que si L ∈ P − sel alors son complémentaire l’est aussi.

Exercice 3.

1. Soit r un réel. Soit L l’ensemble des uples b 1 ...b n d’éléments de { 0; 1 } tels que n soit un entier et 0, b 1 ...b n ≤ r. Montrer que L est P − sel.

2. Montrer qu’il existe un langage non récursif dans P − sel.

Exercice 4.

Soit (M 1 , p 1 ), (M 2 , p 2 ), . . . une énumération récursive de tous les couples (M, p) tels que p(X) soit un polynôme (de la forme X k ) et M une machine de Turing qui pour tout entier n et toute entrée de taille n effectue au plus p(n) pas de calcul.

Soit (w i ) la suite définie par : 

w 0 = 2 w 2n+1 = 1 + w 2n

w 2n+2 = 2 2

2w2n

Soit L le langage minimal tel que pour tous i et m :

! M i (w 2<i,m> , w 2<i,m>+1 ) = w 2<i,m> ⇒ w 2<i,m>+1 ∈ L M i (w 2<i,m> , w 2<i,m>+1 ) = w 2<i,m>+1 ⇒ w 2<i,m> ∈ L

On peut supposer que l’alphabet d’entrée des machines considérées contient 0, 1 et la virgule.

! Montrer que L est récursif sans être dans P − sel.

Exercice 5.

Nous allons montrer que P − sel ⊆ P/poly.

On appelle tournoi tout graphe complet dont on a orienté les arêtes.

1. Montrer le lemme suivant : si G = (V , E ) est un tournoi de taille k, il existe un sous-

(12)

2. Soit L dans P − sel. Montrer qu’il existe une fonction de sélection f pour L telle que

∀ x, y, f (x, y) = f (y, x).

3. Soit L dans P − sel et soit une fonction de sélection f pour L telle que pour tout x et y, f (x, y) = f (y, x). Considérons l’ensemble L =n des mots de L de longueur n.

Montrer qu’il existe un sous-ensemble H n de L =n de cardinal au plus n + 1 tel que v appar- tient à L =n si et seulement s’il existe un mot g de H n tel que f(v, g) = v.

4. Conclure.

5. Montrer que P − sel ⊆ P/quad.

Exercice 6.

1. Montrer le lemme suivant : si G est un tournoi alors il existe un sommet s tel que tout sommet soit accessible à partir de s par un chemin orienté de longueur au plus deux.

2. Montrer que P − sel ⊆ NP/lin.

3. Montrer que P − sel ⊆ NP/lin ∩ coNP/lin

4. Soit NP/(n + 1) = NP/ { f : n 1→ n + 1 } . Montrer que P − sel ⊆ NP/(n + 1).

Soit NP/n = NP/ { f : n 1→ n } . Nous allons montrer que P − sel ! NP/n.

Exercice 7.

Soit (l n ) la suite définie par l 0 = 2 et l i+1 = 2 2

2li

. On pose E = { l i } i∈N . L’ensemble des mots est muni de l’ordre lexicographique.

Si L est un langage, on considère les conditions suivantes : 1. Pour tout mot x de L la longueur de x est dans E.

2. Pour tous x et y de même longueur, x ≤ y et y ∈ L implique x ∈ L.

3. L ∈ DT IM E[2 2

n

].

1. Montrer que si L satisfait les conditions (1), (2) et (3) alors L est P − sel.

Pour cela on peut considérer la fonction suivante :

f (x, y) =

 

 

 

 

 

 

 

x si | y | ∈ / E

y si | y | ∈ E ∧ | x | ∈ / E

min { x, y } si | y | ∈ E ∧ | x | ∈ E ∧ | x | = | y |

min { x, y } si | y | ∈ E ∧ | x | ∈ E ∧ | x | ' = | y | ∧ min { x, y } ∈ L max { x, y } si | y | ∈ E ∧ | x | ∈ E ∧ | x | ' = | y | ∧ min { x, y } ∈ / L

Soit N 1 , N 2 . . . une énumération des machines de Turing non déterministes travaillant en temps polynomial.

2. Soit f une fonction telle que f ∈ O(2 2! ). Montrer que l’on peut choisir l’énumération de telle sorte que le temps de calcul de N i sur les entrées de taille 2l i soit inférieur à 2 2

li

/f (l i ).

Pour chaque entier l, on définit L =l comme suit :

– si l / ∈ E alors L =l = ∅ .

(13)

– si l ∈ E et s’il existe x de taille l tel que

∀| y | = l, N i ( 3 x, y 4 ) est rejeté alors tous les u de taille l tels que u ≤ x sont dans L.

– si l ∈ E mais qu’un tel x n’existe pas, L =l = ∅ . 3. Montrer que L = &

L =l est dans P − sel.

4. Montrer que L ∈ / NP/n.

5. Soit h une fonction récursive quelconque. Montrer que P − sel ! DT IM E[h(n)]/n

(14)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD08 – Si ça sonne creux, c’est que c’est pas dur

Définition

Un langage est dit unaire lorsqu’il est inclus dans { 1 } ! .

Exercice 1.

1. Donner un algorithme récursif pour résoudre SAT.

2. Soit S un langage unaire NP-dur. En réduisant SAT à S, améliorer l’algorithme précédent pour qu’il devienne polynomial.

3. Qu’en concluez-vous ? Définition

Un langage L est dit creux lorsqu’il existe un polynôme p tel que, pour tout n, L ∩ Σ n est de cardinal au plus p(n).

Exercice 2.

1. Soit un langage creux L . Que pouvez-vous dire du cardinal de L ∩ Σ ≤n ?

2. Nous allons montrer que s’il existe un langage L creux et NP-dur, alors P = NP. Soit donc un tel langage L et soit X dans NP :

x ∈ X ssi ∃ w ∈ Σ p( | x | ) , $ x, w % ∈ A

avec p un polynôme et A ∈ P. On veut montrer que X est décidable en temps polynomial.

Soit G(A) = {$ x, w % , tels que ∃ y ∈ Σ p( | x | ) , y ≥ w et $ x, y % ∈ A } . Montrer que G(A) est dans NP.

3. En utilisant une réduction de G(A) à L , montrer qu’on peut décider X en temps polyno-

mial (conseil : on pourra déterminer un algo polynomial qui, sur l’entrée x, trouve le plus

grand w tel que $ x, w % ∈ A lorsqu’il existe).

(15)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD09 – Respectez la hiérarchie

Exercice 1. Un conseil : ça sert à rien

. Montrer que NP ⇢ P/log implique P = NP.

Exercice 2. Un tuyau c’est creux

. Montrer que

P/poly = [

S creux

P S .

Exercice 3.

1. Énoncer et (re-)montrer le théorème de hiérarchie en temps déterministe.

2. Pourquoi cette preuve ne fonctionne pas pour le temps non-déterministe ?

3. En considérant la machine non-déterministe suivante (où c’est à vous de déterminer ce que sont N i et f) :

N (x, i, 0 k ) =

⇢ si k temps de simulation déterministe de N i (x, i, ✏) alors ¬ N i (x, i, ✏) sinon, simuler N i (x, i, 0 k+1 ) pendant f (n) pas de calcul,

énoncer et montrer un théorème de hiérarchie en temps non-déterministe.

(16)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD10 – Tiens-toi au pinceau

Exercice 1.

. Montrer que s’il existe un langage P-sélectif NP-dur alors P = NP.

Définition

On notera E la classe [ c>0 DTIME(2 cn ) et NE la classe [ c>0 NTIME(2 cn ) . Exercice 2.

. Soit T un langage unaire. Montrer que

E T = E () T 2 P.

Exercice 3.

. Soit c > 0. Montrer que

DSPACE(n c ) ✓ NP () PSPACE = NP.

Exercice 4. Pas dingue de padding

. Montrer que

P = NP = ) E = NE Exercice 5.

. Montrer que les assertions suivantes sont équivalentes.

(i) E 6 = NE.

(ii) Il existe un langage unaire dans NP \ P.

(iii) Il existe un langage creux dans NP \ P.

(17)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD11 – Complètement dans l’espace

Un jeu est un graphe orienté fini. Chaque sommet est étiqueté par un état parmi un ensemble fini, par conséquent, le nombre de configurations possibles du graphe est fini. Les règles du jeu sont les manières valides de passer d’une configuration à l’autre. Certaines configurations sont gagnantes, et d’autres sont perdantes.

Il y a deux joueurs que nous appellerons Alice et Bob . Ils jouent chacun leur tour. Une partie est constituée d’une liste de configurations du graphe, la première étant la configuration initiale, et la dernière étant perdante ou gagnante.

Alice a une stratégie gagnante pour une certaine configuration initiale si elle peut gagner quelle que soit la façon dont joue Bob . Le jeu est alors l’ensemble des configurations initiales pour lesquelles il existe une stratégie gagnante pour Alice .

Le jeu de la géographie

Alice choisit une ville, par exemple Lyon. Comme cette ville finit par n, Bob doit répondre par une ville qui commence par n, par exemple Nice. Bob peut alors répondre Évreux. Une ville ne peut être citée qu’une fois, et le joueur qui ne peut plus citer de ville a perdu.

1. Définir précisément le graphe associé au jeu, les états, les règles, la configuration initiale et les configurations finales, gagnantes et perdantes.

2. Tout graphe orienté fini correspond-il à un jeu de type géographie ?

Le problème GEO est défini comme l’ensemble des (G, s) où G est un graphe orienté fini quel- conque, s un sommet de G et il existe une stratégie gagnante de départ s.

3. Donner un exemple dans GEO et un exemple hors de GEO.

4. Expliquer comment on peut voir TQBF comme un jeu.

5. Montrer que GEO est dans PSPACE.

6. Montrer que GEO est PSPACE-complet.

(18)

M1 - Complexité Turing (année 2007/2008) S. Chevillard/S. Perifel TD12 – Hiérarchie polynomiale

On rappelle la définition de la hiérarchie polynomiale :

⌃ 0 = ⇧ 0 = 0 = P, et pour k 1,

k = NP

k 1

, ⇧ k = coNP

k 1

, k = P

k 1

. Enfin,

PH = [ k ⌃ k . Exercice 1.

1. Montrer que ⇧ k = co⌃ k .

2. Montrer que A 2 ⌃ k si et seulement s’il existe B 2 P et un polynôme p(n) tels que x 2 A () 9 y 1 2 { 0, 1 } p( | x | ) 8 y 2 2 { 0, 1 } p( | x | ) . . . Q y k 2 { 0, 1 } p( | x | ) (x, y 1 . . . y k ) 2 B, et de même pour ⇧ k en commençant par 8.

3. Montrer que si ⌃ k = ⇧ k pour un certain k 1, alors PH = ⌃ k . Exercice 2.

. Montrer que PH ✓ PSPACE.

Récapitulons les inclusions connues : P

00

0 1

⇣⇣ ⇣ PPP

1

1 PPP

⇣⇣ ⇣ 2 ⇣⇣ ⇣ PPP

2

2 PPP

⇣⇣ ⇣ 3 · · · PSPACE

Exercice 3.

1. Donner un problème complet SAT k pour chaque ⌃ k , k 1.

2. Montrer que si PH admet un problème complet, alors pour un certain k, PH = ⌃ k . 3. Montrer que PSPACE = PH implique PSPACE = PH = ⌃ k pour un certain k.

Exercice 4. Théorème de Karp-Lipton

On se propose de montrer le résultat suivant (théorème de Karp-Lipton) : si NP ⇢ P/poly alors ⌃ 2 = ⇧ 2 .

1. On dit qu’un circuit C est s-bon si, lorsqu’on lui donne en entrée une formule booléenne '(x 1 , . . . , x n ) de taille s, il décide si ' est satisfaisable.

Montrer que l’ensemble des couples (C, s) où C est s-bon est coNP.

(19)

2. En supposant que NP ⇢ P/poly, montrer qu’il existe un polynôme p et une famille de circuits (C s ) telle que C s est s-bon et de taille  p(s).

3. Démontrer le théorème de Karp-Lipton.

Indication : montrer que votre problème ⇧ 2 -complet favori est dans ⌃ 2 . 4. Question bonus facile

Montrer que NP ⇢ P/poly ssi NP/poly = P/poly.

Références

Documents relatifs

Dans quel cas le générateur est-il court- circuité ? Justifie ta réponse en indiquant le trajet du courant. Schématise le circuit ci-dessous en indiquant les

Sur le culot de la lampe sont gravées sa tension nominale et son intensité nominale : C’est ce qu’il faut donner à la lampe pour qu’elle brille et « vive » normalement?. 

Sur le culot de la lampe sont gravées sa tension nominale et son intensité nominale : C’est ce qu’il faut donner à la lampe pour qu’elle brille et « vive » normalement.. 

Quand un grand nombre décimal doit être convertir en binaire, il est parfois plus simple de convertir en octal, puis de transformer en binaire. Retrouver le même résultat par

3) Quelle doit être la valeur de R pour qu’il est transfert maximal de puissance dans celle –ci, et calculer cette puissance. 1) Déterminer la diode qui est passante et dites

Soit l’amplificateur à base de transistors bipolaires en montage Darlington de la figure 63. La température est supposée égale

6024 Fonction entrée EX21 module 1 Thermostat de sécurité CC Affectation de la fonction entrée EX21 à la sécurité surchauffe du circuit plancher chauffant CC2 (NE PAS OUBLIER

On considère désormais le dispositif constitué de l'association en série des dipôles formés d'une résistance R et d'une capacité C respectivement associées en série et