Cours Caculabilite
Cours Caculabilite
Complexité et calculabilité
4 septembre 2019
Modalités du cours
2 / 133
Complexité et calculabilité
3 / 133
Complexité et calculabilité
4 / 133
Complexité et calculabilité
Bibliographie
J.E. Hopcroft, R. Motwani, J. D. Ullman.
Introduction to Automata Theory, Languages & Computation.
Addison-Wesley, 2005.
M. Sipser.
Introduction to the Theory of Computation.
PWS publishing Company, 1997.
D. Kozen.
Automata and Computability. Springer Verlag, 1997.
O. Carton.
Langages formels, Calculabilité et Complexité.
Vuibert, 2008.
J.M. Autebert.
Calculabilité et Décidabilité. Masson, 1992.
5 / 133
Complexité et calculabilité
Bibliographie complémentaire
Ch. Papadimitriou.
Computational complexity.
Addison-Wesley, 1995.
M. Garey, D. Johnson.
Computers and intractability.
W.H. Freeman & Co, 1979.
J. E. Savage.
Models of computation.
Addison-Wesley, 1998.
6 / 133
Complexité et calculabilité
Plan du cours
Complexité
Problèmes et réductions
P vs. NP
Calculabilité
Ensembles dénombrables (rappels)
Programme WHILE, machines de Turing
Décidabilité
7 / 133
Complexité et calculabilité
Présentation, bref historique
Plan
Complexité
Problèmes et réductions
P vs. NP
Calculabilité
Ensembles dénombrables (rappels)
Programme WHILE, machines de Turing
Décidabilité
8 / 133
Complexité et calculabilité
Présentation, bref historique
9 / 133
Complexité et calculabilité
Présentation, bref historique
13 / 133
Complexité et calculabilité
Présentation, bref historique
14 / 133
Complexité et calculabilité
Présentation, bref historique
17 / 133
Complexité et calculabilité
Présentation, bref historique
Plan
Complexité
Problèmes et réductions
P vs. NP
Calculabilité
Ensembles dénombrables (rappels)
Programme WHILE, machines de Turing
Décidabilité
19 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
Vocabulaire
Avant d’introduire formellement la question P =? NP on va se
familiariser avec les notions centrales de problème et de réduction
entre problèmes.
21 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
22 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
24 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
Temps de calcul
Le temps de calcul d’un programme (algorithme) P se mésure en
fonction de la taille de l’entrée. Soit I une entrée de P.
I tP (I) désigne le temps de calcul de P sur I. Le temps de calcul
est le nombre d’instructions élémentaires exécutées (par
exemple, instructions arithmétiques, comparaisons,
affectations de valeur, etc).
I La fonction TP : N → N est définie par :
28 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
Logique propositionnelle
29 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
SAT
30 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
3-SAT
31 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
Remarque.
1. On va construire ϕ e à partir de ϕ en temps polynomial par
rapport à la taille |ϕ| de ϕ.
On parlera d’une réduction polynomiale de SAT vers 3-SAT.
2. La propriété ci-dessus garantit qu’on peut se servir d’un
algorithme P pour 3-SAT afin de résoudre SAT : pour toute
formule CNF ϕ on construit d’abord ϕ e et on lance ensuite P sur
e. Soit P0 l’algorithme ainsi construit.
ϕ
Important : si P est un algorithme polynomial pour 3-SAT, alors
P0 est aussi polynomial.
32 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
Réductions
I Soient A et B deux problèmes.
I On note X ⊆ D l’ensemble des instances positives de A, et
Y ⊆ D0 l’ensemble des instances positives de B.
I Une réduction de A vers B est une fonction calculable
f : D → D0 telle que
x ∈ X ⇐⇒ f (x) ∈ Y .
I On note A 6 B (lit : A se réduit à B)
I L’existence d’une réduction de A vers B assure qu’on on peut
se servir d’un algorithme pour le problème B pour résoudre A :
A
x f(x)
f B OUI/NON
33 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
Remarques
34 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
35 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
ϕi = (yi ∨ `1 ∨ `2 ) ∧ (¬yi ∨ `1 ∨ `2 ).
37 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
ϕ est satisfaisable ⇐⇒ ϕ
e est satisfaisable.
38 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
ϕ est satisfaisable ⇐⇒ ϕ
e est satisfaisable.
On a donc
3-SAT 6 SAT.
39 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
3-coloration
40 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
41 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
42 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
3-SAT 6 3-coloration
I On utilise 3 sommets particuliers 0, 1, 2 reliés entre eux, qu’on
peut supposer, quitte à renommer les couleurs, coloriés par 0,
1, 2.
I Pour chaque variable xi : 2 sommets xi et ¬xi reliés entre eux
et à 2.
I Opérateurs : OU p ∨ q codé par : ET p ∧ q codé par :
3-SAT 6 3-coloration
44 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
45 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
46 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
47 / 133
Complexité et calculabilité
Complexité
Problèmes et réductions
48 / 133
Complexité et calculabilité
Complexité
P vs. NP
Classe NP
49 / 133
Complexité et calculabilité
Complexité
P vs. NP
Classe NP - définition
50 / 133
Complexité et calculabilité
Complexité
P vs. NP
Classe NP
51 / 133
Complexité et calculabilité
Complexité
P vs. NP
P vs. NP
?
Le début d’une réponse à P = NP est la no-
tion de problème NP-complet (Karp, 1972)
.
52 / 133
Complexité et calculabilité
Complexité
P vs. NP
Problèmes NP-complets
I Un problème A est NP-complet si
1. A appartient à NP, et
2. tout problème A0 appartenant à NP se réduit à A par une
réduction polynomiale : A0 6P A.
On dit aussi que A est NP-difficile.
I On va montrer qu’il existe des problèmes NP-complets.
I Attention : Ne pas confondre les termes NP et NP-complet.
Tout problème A ∈ P est aussi dans NP.
I Si on trouve un algorithme polynomial pour un problème
NP-complet, alors NP ⊆ P, donc P = NP :
Supposons que A est NP-complet et que A ∈ P. Alors, pour tout
problème A0 ∈ NP : A0 ≤p A (car A est NP-difficile), donc A0 ∈ P
(car P est clos par les réductions polynomiales).
I Attention : Un problème NP-difficile peut être même
non-résoluble algorithmiquement.
53 / 133
Complexité et calculabilité
Complexité
P vs. NP
54 / 133
Complexité et calculabilité
Complexité
P vs. NP
55 / 133
Complexité et calculabilité
Complexité
P vs. NP
Réductions de Turing
On remarque que l’algorithme précedent est en fait une réduction
(du problème de calcul de solution au problème de décision)
différente des réductions ≤ vues jusqu’à maintenant. Ce type de
réduction s’appelle de type Turing (polynomiale). Comme les
réductions ≤ (appelées “many-one”) celles de type Turing
préservent la décidabilité, et P est fermée par les réductions de
Turing polynomiales :
I A ≤T B signifie que A se réduit à B par une réduction de type
Turing : il existe un algorithme pour A, qui utilise un algorithme
pour B de façon “boîte noire”.
p
On écrit A ≤T B si A se réduit à B par une réduction Turing
polynomiale : l’algorithme pour A - sans compter le temps
d’exécution des appels de B - est polynomial.
I Si A ≤p B est B ∈ P, alors A ∈ P.
T
56 / 133
Complexité et calculabilité
Complexité
P vs. NP
Théorème de Cook-Levin
I Théorème (Cook, Levin) SAT est NP-complet.
57 / 133
Complexité et calculabilité
Complexité
P vs. NP
Cook-Levin : preuve
I Le problème SAT :
ϕ est instance positive de SAT si et seulement si il
existe une valuation qui rend ϕ vraie.
59 / 133
Complexité et calculabilité
Complexité
P vs. NP
Cook-Levin : preuve
I Pour tout algorithme polynomial P on peut construire (en temps
polynomial) un circuit booléen CP de taille polynomiale, dont
les entrées z1 , . . . , zn ∈ {0, 1} correspondent à l’entrée
z = z1 · · · zn de P (codée en binaire), et tel que
P accepte x si et seulement si CP s’évalue à 1.
60 / 133
Complexité et calculabilité
Complexité
P vs. NP
xi1 + · · · + xip = s.
61 / 133
Complexité et calculabilité
Complexité
P vs. NP
Partition
Le problème Partition est le suivant :
I Donnée : des entiers x1 , . . . , xk > 0.
I Question : existe-t-il X ⊆ {1, . . . , k } tel que
X X
xi = xi .
i∈X i∈
/X
P
Soit x1 , . . . , xk , s une instance de Somme d’entiers. Soit x = xi .
On construit (en temps polynomial) l’instance x1 , . . . , xk , x − 2s de
Partition.
63 / 133
Complexité et calculabilité
Complexité
P vs. NP
64 / 133
Complexité et calculabilité
Complexité
P vs. NP
Plan
Complexité
Problèmes et réductions
P vs. NP
Calculabilité
Ensembles dénombrables (rappels)
Programme WHILE, machines de Turing
Décidabilité
66 / 133
Complexité et calculabilité
Calculabilité
67 / 133
Complexité et calculabilité
Calculabilité
Codages
68 / 133
Complexité et calculabilité
Calculabilité
69 / 133
Complexité et calculabilité
Calculabilité
70 / 133
Complexité et calculabilité
Calculabilité
Ensembles dénombrables (rappels)
Ensembles dénombrables
I On note N = {0, 1, 2, . . .} l’ensemble des entiers naturels.
I Un ensemble D est dit dénombrable s’il est en bijection avec N.
I Un ensemble D fini ou dénombrable est dit au plus
dénombrable. Equivalent : il existe une fonction injective
f : D → N (ou une fonction surjective f : N → D).
I Exemples. Les ensembles suivants sont dénombrables :
1. N = {0, 1, . . .},
2. Z : les entiers,
3. N × N : paires d’entiers positifs ; Nk (k > 2) : les k-uplets,
4. Q : les rationnels,
5. l’ensemble des matrices avec entrées entières,
6. l’ensemble Σ∗ des mots sur un alphabet (fini) Σ,
7. l’ensemble des programmes C,
8. l’ensemble des arbres orientés,
9. l’ensemble des graphes.
71 / 133
Complexité et calculabilité
Calculabilité
Ensembles dénombrables (rappels)
Diagonalisation
xn = 1 − (en )n
73 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
74 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Programmes LOOP
I Exemple 1 : addition
Syntaxe :
x := y ;
I variables res, x, y, z, . . .
LOOP (z) DO x := x+1 OD ;
(valuées dans N)
Calcule x = y + z.
I constantes 0, 1, . . .
I Exemple 2 : multiplication
I opérations +, −
x := 0 ;
I instructions x := y ± c,
LOOP (z) DO
x := c, skip
LOOP (y) DO x := x+1 OD
OD I LOOP (x) DO P OD
Calcule x = y · z.
L’effet de x := y ± c est d’affecter à x la valeur max(y ± c, 0).
L’effet de “LOOP (x) DO P OD” est d’itérer x fois le programme P.
75 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
LOOP-calculable
I Soit P un programme LOOP utilisant les variables
x0 = res, x1 , . . . , x` .
I L’entrée de P est un k-uplet ~ n = (n1 , . . . , nk ) ∈ Nk (k < `), stocké
dans les variables x1 , . . . , xk .
I L’effet de P sur ~x = x0 , . . . , x` (défini inductivement) est noté
P(~x) ∈ N`+1 .
I La sortie de P est la valeur de la variable res à la fin du calcul de
P. La fonction calculée par P est notée fP .
I Une fonction f : Nk → N est LOOP-calculable, s’il existe un
programme LOOP P t.q. f (~
n) = fP (0, ~
n, 0, . . . , 0).
I Rq : Un programme LOOP termine toujours, donc les fonctions
LOOP-calculables sont totales (c-à-d, définies partout).
Programmes WHILE
I Les programmes WHILE sont définis à
partir des programmes LOOP, en rajoutant l’instruction “while” :
WHILE (x 6= 0) DO P OD
Programmes GOTO
Syntaxe : un programme P = I1 ; . . . Im est une séquence
(numérotée) d’instructions Ij .
I Variables x, y, . . . ∈ N, constantes 0, 1, . . .
I Instructions :
I x := y ± c, x := c
I IF (x = 0) THEN GOTO ` FI (saut conditionnel)
I GOTO ` (saut non-conditionnel)
I HALT
Exemple (addition) : Sémantique des programmes GOTO :
I L’instruction HALT est la dernière.
(1) x := y ;
(2) IF (z = 0) THEN GOTO 5 FI ; I Saut conditionnel : si x est zéro,
(3) x := x + 1 ; z := z − 1 ; continuer avec l’instruction I` ,
(4) GOTO 2 ; sinon avec l’instruction suivante
(5) HALT (sauf si HALT).
78 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Prop.
Pour toute fonction f : N → N :
f est WHILE-calculable si et seulement si f est
GOTO-calculable
Fonction d’Ackermann
B0 (x) = x + 1
Bm+1 (x) = Bm ◦ · · · ◦ Bm (x)
| {z }
x fois
80 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
82 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
83 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
I k −→ (k + 1) : on distingue 2 cas
1. S = LOOP(x) DO P OD avec n(P) ≤ k.
2. S = P1 ; P2 ; . . . Pr , où on a soit n(Pi ) ≤ k, ou Pi a la forme du
premier cas.
Dans le premier cas, les valeurs après exécution sont majorées
par Bm+1 (M). Dans le deuxième cas : si les valeurs après
exécution des Pi sont majorées par Bm+1 (M), alors celles de S
sont majorées par Bm+2 (M), pour M ≥ r.
84 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Machines de Turing
I Une machine de Turing comporte :
I Une bande infinie à droite et à gauche faite de cases
consécutives.
I Dans chaque case se trouve un symbole, éventuellement blanc
.
I Une tête de lecture-écriture.
Modèles de calcul
I Un contrôle à nombre fini d’états.
Machines de Turing
Machines de Turing
! Les machines de Turing sont des abstractions des ordinateurs.
! Une machine de Turing comporte :
Contrôle
fini
q0 , . . . , qn
! Une bande infinie à droite et à gauche faite de cases
consécutives.
! Dans chaque case se trouve un symbole, éventuellement blanc
". 85 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
86 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
nes de Turing
Machines de:Turing
représentation graphique
: représentation graphique
0, !, →
1, !, →
!, !, −
p q
88 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Fonctionnement d’une MT
89 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Fonctionnement d’une MT
90 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Configurations et calculs
C0 ` C1 ` C2 ` · · ·
91 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Calculs acceptants
C0 ` C1 ` C2 ` · · ·
3 cas possibles
I Le calcul est infini,
I Le calcul s’arrête sur un état final (de F),
I Le calcul s’arrête sur un état non final (pas de F).
92 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Langages acceptés
On peut utiliser une machine pour accepter des mots.
I Le langage L(M) ⊆ Σ∗ des mots acceptés par une MT M est
l’ensemble des mots w sur lesquels il existe un calcul fini
C0 ` C1 ` C2 ` · · · Cn
94 / 133
Complexité et calculabilité
Modèles de calcul
Calculabilité
Machines de Turing
Programme WHILE, machines de Turing
a, A, → b, B, ←
0 1 2
", ", → A, A, →
95 / 133
Complexité et calculabilité
Modèles de calcul
Calculabilité
Machines de Turing
Programme WHILE, machines de Turing
MT acceptant {an bn | n ! 0}
", ", → a, A, → b, B, ←
6 0 1 2
", ", ←
", ", ← ", ", → A, A, →
5 4 3
b, b, →
b, b, → a, a, →
Modèles de calcul
Machines de Turing
96 / 133
Complexité et calculabilité
Modèles de calcul
Calculabilité
Machines de Turing
Programme WHILE, machines de Turing
n
MT acceptant {a2 | n ! 0}
a, A, → ", ", →
0 1 2
", ", → a, a, →
a, A, →
3 4 5
", ", ← a, a, →
a, a, ← A, A, → A, A, →
A, A, ←
Modèles de calcul
97 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
f : Σ∗ → {0, 1}
(
0 si w ∈
/ L,
w 7→
1 si w ∈ L.
99 / 133
Complexité et calculabilité
Calculabilité
Modèles de calcul
Programme WHILE, machines de Turing
Machines de Turing
Calcul de ⌊n/2⌋
0, 0, →
1, 1, →
0, !, →
!, !, ← 1, !, →
q1 q2 q3
100 / 133
Complexité et calculabilité
Modèles de calcul
Calculabilité
Machines de Turing
Programme WHILE, machines de Turing
Incrément en binaire
0, 0, →
1, 1, → 1, 0, ←
0, 1, −
!, !, ← !, 1, −
q1 q2 q3
101 / 133
Complexité et calculabilité
Modèles de calcul
Calculabilité
Machines de Turing
Programme WHILE, machines de Turing
Addition en unaire
1, 1, → 1, 1, →
#, 1, → !, !, ← 1, !, −
q1 q2 q3 q4
102 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
“Thèse” de Church-Turing
Théorème
Pour toute fonction f : N → N :
f est WHILE-calculable ssi f est Turing-calculable.
103 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Programme WHILE −→ MT
Soit P un programme WHILE avec k variables. Une configuration de
P est donc un tuplet (i, n0 , . . . nk−1 ) ∈ [1 . . . `] × Nk . La MT MP aura
sur sa bande les valeurs n0 , . . . , nk−1 des variables (codées en
binaire, séparées par #), et le numéro de l’instruction actuelle i
dans son contrôle fini. La simulation d’une opération élémentaire
(addition par exemple) se fait par une séquence de pas de la MT.
104 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
MT −→ programme WHILE
Soit M une MT qui utilise k = |Γ| symboles sur sa bande. Une
configuration uqv de M, u, v ∈ Γ∗ , q ∈ Q sera représentée par
(q, nu , nv ) ∈ Q × N × N, où nw est l’entier dont la représentation en
base k est le mot w ∈ Γ∗ :
I le bit le moins significatif pour nu est à droite, et pour nv à
gauche,
I vaut 0, les autres symboles de Γ \ {} sont codés par
1, . . . , k − 1.
105 / 133
Complexité et calculabilité
Calculabilité
Programme WHILE, machines de Turing
Exemple
Supposons que a représente le chiffre 1, et b le chiffre 2. Pour
bba q bb on aura k = 3 et nv = 0 + 2 · 3 + 2 · 32 = 24 et
nu = 1 + 2 · 3 + 2 · 33 = 61.
Simulation
Une transition de M à droite revient (en gros) à multiplier nu par k et
à diviser nv par k. Et inversemment pour une transition à gauche.
Exemple
L’effet de la transition (q, , p, a, →) est de calculer
n0v = 2 + 2 · 3 = 8 = bnv /3c et n0u = 3 · nu + 1 = 184.
106 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Problèmes et algorithmes
107 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Rappels et définitions
I Problèmes de décision versus problèmes de calcul : réponse
OUI/NON pour les premiers, résultat pour les autres. La
première catégorie est juste un cas spécial de la deuxième.
I Instance d’un problème A : une entrée de A. Une instance
positive d’un problème de décision est une instance sur
laquelle la réponse est OUI.
I De manière abstraite, un problème de décision A peut être
interprété comme problème de langages :
I On choisit un codage f des instances de A sur un alphabet Σ (ou
N).
I L’ensemble des codages des instances positives de A définit un
langage LA ⊆ Σ∗ (ou LA ⊆ N).
I La question si une instance I de A est positive revient à
demander si f (I) ∈ LA (problème du mot).
108 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
109 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Vocabulaire
110 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
111 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
1. Entrée : entier n.
2. Question : Est-ce que n ∈
/ Acc(Pn ) ?
113 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
x0 := x1 ;
LOOP (x2) DO x1 := x1+1 OD ;
Réductions (rappels)
x ∈ X ⇐⇒ f (x) ∈ X0 .
115 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Remarques
I Rappel : “A se réduit à A0 ” ne signifie PAS que A0 est plus facile
que A. Cela signifie que la recherche d’une solution pour A sur
une instance x donnée peut être ramenée à la recherche d’une
solution pour A0 sur l’instance f (x).
I La notion de réduction est symétrique : x est une instance
positive de A SI ET SEULEMENT SI f (x) est une instance positive
de A0 .
Mais : A ≤ A0 n’implique pas A0 ≤ A.
I Les réductions sont transitives : si A1 ≤ A2 et A2 ≤ A3 , alors
A1 ≤ A3 .
Exemple de réduction : UNIV ≤ UNIV0 , où UNIV0 est le problème
suivant :
I Données : entiers n, m.
I Question : est-ce que m ∈ Acc(Pn ) ?
116 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Problème de l’arrêt
Les problèmes suivants sont indécidables :
I HALT : étant donnés un programme WHILE P et un entier n,
est-ce que P s’arrête sur n ?
I HALT0 : étant donné un programme WHILE P, est-ce que P
s’arrête sur 0 ?
I UTILE : étant donnés un programme WHILE P et une instruction
I, est-ce que P utilise l’instruction I sur l’entrée 0 ?
I HALT∃ : étant donné un programme WHILE P, est-ce que P
s’arrête sur au moins une entrée ?
I HALT∀ : étant donné un programme WHILE P, est-ce que P
s’arrête sur toute entrée ?
I EQUIV : étant donnés deux programmes WHILE P1 , P2 , est-ce
que Acc(P1 ) = Acc(P2 ) ?
Rq : Les 4 premières questions sont semi-décidables, les 2
dernières ne le sont pas. 117 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
a aa ba bab
ab a aa abba
119 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
I On montre que
HALT0 6 PCPM 6 PCP.
I Comme HALT0 est indécidable, il en est de même de PCPM et
de PCP.
I Accessoirement, on peut montrer que PCP 6 PCPM.
120 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
PCP 6 PCPM
121 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
PCPM 6 PCP
xi = p(ui ), yi = s(vi )
xn+i = p(ui )$, yn+i = s(vi )
x2n+1 = p(u1 ), y2n+1 = $s(v1 ).
122 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Indécidabilité du PCPM
I On rappelle que la question UNIV : “est-ce que la MT M termine
sur l’entrée w ?” est un problème indécidable.
I On montre une réduction UNIV ≤ PCPM.
I Étant donné une MT M et un mot w, on construit une instance
(u` , v` )16`6n de PCPM telle que M termine sur w ssi l’instance
(u` , v` )16`6n a une solution.
I On peut supposer que
I M a un seul état d’arrêt : qOK ,
I M déplace sa tête à chaque transition.
I Idée : la seule solution sera la suite des configurations de M sur
w, en partant de la configuration initiale et s’arrêtant dans une
configuration terminale (dont l’état de contrôle est qOK ). La
partie bleue sera en retard d’une configuration. Le retard est
rattrapé à la fin, si l’état est qOK .
123 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
La réduction
I Domino (#, #q0 w#). Les autres dominos :
I Dominos de copie : (a, a), (#, #),
I Dominos de transitions :
a,b,→
I Pour chaque p −−−→ q ∈ δ , il y a un domino (pa, bq).
a,b,←
I Pour chaque p −−−→ q ∈ δ , il y a un domino (xpa, qxb) pour
tout x ∈ Γ.
,b,→
I Pour chaque p −−−−→ q ∈ δ , il y a un domino (p#, bq#).
,b,←
I Pour chaque p −−−−→ q ∈ δ , il y a un domino (xp#, qxb#) pour
tout x ∈ Γ.
I Dominos de synchronisation en fin de calcul : (qOK ##, #) et
pour chaque a, b ∈ Γ : (aqOK , qOK ). (qOK b, qOK ).
124 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Simple-PCP
I Dans Simple-PCP on a les restrictions suivantes :
1. ui et vi ont la même longueur, pour tout 2 ≤ i ≤ n − 1 (on
suppose n 6= 1).
2. La solution de PCP doit commencer par l’indice 1 et terminer par
l’indice n. De plus, ces indices ne peuvent pas être utilisés au
milieu.
I Exemple : (u1 , v1 ) = (ab, a), (u2 , v2 ) = (aa, ba) et
(u3 , v3 ) = (a, aa). La séquence 1,2,3 est une solution de
Simple-PCP.
I Rq. 1 : pour qu’une solution existe, il faut que
|u1 | − |v1 | = |vn | − |un |. Soit donc k := |u1 | − |v1 | = |vn | − |un | et
supposons que k > 0.
I Rq. 2 : Pour chaque séquence 1 = i1 , i2 , . . . , ik (où
i2 , . . . , ik ∈ {2, . . . , n − 1}) on a :
|ui1 . . . uik | − |vi1 . . . vik | = k
126 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
127 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Arrêt borné
128 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Théorème de Rice
130 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
Théorème de Rice
131 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
I Soit X0 = Acc(R). On a X0 = ∅ ∈
/ P si n ∈
/ UNIV, et X ∈ P sinon.
I Donc si P était décidable, UNIV le serait aussi. Contradiction.
132 / 133
Complexité et calculabilité
Calculabilité
Décidabilité
133 / 133