machineturing

Post on 27-Jun-2015

126 views 4 download

Transcript of machineturing

Modèles de calcul

Modèles de calcul

Année 2010–2011

M1, Univ. Bordeaux

10 septembre 2010

1 /176

Modèles de calcul

Modalités du cours

◮ 12 cours, 3 groupes de TD (débutent le 13/9/10).

◮ Y. Oualhadj, G. Sénizergues, A. Zvonkine.

◮ Contrôle continu (CC) obligatoire sauf dispense.

◮ Note finale session 1 :

2/3 Examen (3h) + 1/3 CC.

◮ Note finale session 2 :

max(Examen, 2/3 Examen (3h) + 1/3 CC).

2 /176

Modèles de calcul

Objectifs (fiche UE)

Définir, indépendamment de la technologie :

◮ ce qui est calculable et ce qui ne l’est pas(théorie de la calculabilité) ;

◮ ce qui est calculable efficacement et ce qui ne l’est pas(théorie de la complexité).

3 /176

Modèles de calcul

BibliographieJ.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.

O. Carton.Langages formels, Calculabilité et Complexité.Vuibert, 2008.

J.M. Autebert.Calculabilité et Décidabilité.Masson, 1992.

P. Wolper.Introduction à la calculabilité.InterÉditions, 1991.

4 /176

Modèles de calcul

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.

5 /176

Modèles de calcul

Plan du cours

Présentation, bref historique

Ensembles dénombrables. Un paradoxe

Machines de Turing

Machines RAM

Problèmes indécidables

Réductions : logique, graphes, et problèmes sur entiers

Classes de complexité : P, NP, PSPACE.

Fonction récursives

6 /176

Modèles de calcul

Présentation, bref historique

Plan

Présentation, bref historique

Ensembles dénombrables. Un paradoxe

Machines de Turing

Machines RAM

Problèmes indécidables

Réductions : logique, graphes, et problèmes sur entiers

Classes de complexité : P, NP, PSPACE.

Fonction récursives

7 /176

Modèles de calcul

Présentation, bref historique

Questions abordées dans ce cours

◮ Quels problèmes peut-on résoudre avec une machine(indépendamment de puissance de calcul des machines) ?

◮ Comment formaliser◮ ce qu’est un problème?◮ ce qu’est une machine?

◮ Quelles fonctions peut-on calculer avec une machine?

◮ Comment comparer la complexité des problèmes?Y a-t-il des problèmes inhéremment difficiles?

8 /176

Modèles de calcul

Présentation, bref historique

Bref historique

1900 Hilbert, 10ème problème : peut-on décider, de façonmécanique, si une équation Diophantienne a une solution?

1931 Gödel publie le théorème d’incomplétude.

1935 Turing formalise une définition de machine et de calcul.

1936 Church exhibe un problème non résoluble par machine.

1938 Kleene prouve l’équivalence entre machines de Turing,λ-calcul, fonctions récursives.

1947 Post & Markov prouvent qu’un problème posé par Thue en1914 n’est pas résoluble mécaniquement.

1970 Matiyasevich répond négativement au 10ème problèmede Hilbert.

1971 Cook & Levin formalisent la notion de problème NP-complet.

9 /176

Modèles de calcul

Présentation, bref historique

Bref historique (info fondamentale)

1936 la calculabilité émerge de la logique (Russel, Hilbert, Turing,Church sont logiciens)

1941 Zuse invente le premier ordinateur (Z3) ; suit ENIAC 1945 ;modèle de von Neumann

1950 premiers langages de programmation (Fortran, Cobol, Lisp)

1960 développement de la théorie des langages formels et desmodèles de calcul (hiérarchie de Chomsky)

1970 développement de la théorie de la complexité, question P vs.NP.

70/80 algorithmique et structures de données

80/90 algorithmique parallèle, distribuée ; cryptographie

10 /176

Modèles de calcul

Présentation, bref historique

Pourquoi ce cours (ou la théorie en général) ?

◮ pour comprendre les limites de la programmation, mais aussi...

◮ ... pour découvrir un coté esthetique du calcul - la théorieapporte le plus souvent un point de vue plus simple et plusélégant,

◮ ... pour chercher la pérennité : la technologie évoluerapidement, mais les concepts de base (théoriques) restentvalides,

◮ ... pour entrainer l’abilité d’analyser et/ou décrire un problèmeavec clarté.

11 /176

Modèles de calcul

Présentation, bref historique

Exemples de problèmes de décision

Problème 1 Donnée Un nombre entier positif n en base 2.Question n est-il pair ?

Problème 2 D. Un nombre entier positif n en base 10.Q. n est-il premier ?

Problème 3 D. Une séquence DNA s et un motif p.Q. p apparait-il dans s ?

Problème 4 D. Un programme C.Q. Le programme est-il syntaxiquement

correct ?

12 /176

Modèles de calcul

Présentation, bref historique

Exemples de problèmes de décision (2)Problème 5 Donnée Un graphe donné par une liste

d’adjacence.Question Le graphe est-il 3-coloriable?

Problème 6 D. Un puzzle Eternity http://fr.eternityii.com.Q. Le puzzle a-t-il une solution?

Problème 7 D. Un programme C.Q. Le programme s’arrête-t-il sur au moins

l’une de ses entrées ?

Problème 8 D. Un programme C.Q. Le programme s’arrête-t-il sur toute

entrée ?

Problème 9 D. Des couples de mots (u1, v1), . . . , (un, vn).Q. Existe-t-il des entiers ii, . . . , ik tels que

ui1 . . . uik = vi1 . . . vik ?

13 /176

Modèles de calcul

Présentation, bref historique

Problème 6 : Eternity II

14 /176

Modèles de calcul

Présentation, bref historique

Problème 9 : PCP, Problème de correspondance dePost

http://www.theory.informatik.uni-kassel.de/~stamer/pcp/pcpcontest_en.html

15 /176

Modèles de calcul

Présentation, bref historique

Notion de problème de décision

Un problème de décision est

◮ une question. . .

◮ . . . portant sur un ensemble de données. . .

◮ . . . dont une description est fixée. . .

◮ . . . et dont la réponse est OUI ou NON.

Ne pas confondre problème et algorithme le résolvant.

Une instance du problème est la question posée sur une donnéeparticulière.

◮ On s’intéressera aussi aux problèmes calculatoires, dont laréponse n’est pas nécessairement binaire (OUI/NON).

◮ Exemple : calculer un 3-coloriage.

16 /176

Modèles de calcul

Ensembles dénombrables. Un paradoxe

Plan

Présentation, bref historique

Ensembles dénombrables. Un paradoxe

Machines de Turing

Machines RAM

Problèmes indécidables

Réductions : logique, graphes, et problèmes sur entiers

Classes de complexité : P, NP, PSPACE.

Fonction récursives

17 /176

Modèles de calcul

Ensembles dénombrables. Un paradoxe

Ensembles dénombrables

◮ On note N = {0,1,2, . . .} l’ensemble des entiers naturels.

◮ Un ensemble E est dit dénombrable s’il est en bijection avec N.

◮ Un ensemble fini ou dénombrable est dit au plus dénombrable.◮ Exemples. Les ensembles suivants sont dénombrables :

1. L’ensemble N+ des entiers strictement positifs,2. Pour un entier k > 0 donné, l’ensemble des entiers divisibles par

k,3. L’ensemble des entiers qui sont des puissances de 2,4. L’ensemble des entiers naturels qui sont des cubes,5. L’ensemble des nombres premiers,6. L’ensemble Z des entiers,7. L’ensemble N× N,8. L’ensemble Q des rationnels.

18 /176

Modèles de calcul

Ensembles dénombrables. Un paradoxe

Propriétés des ensembles dénombrables

Proposition

1a. Toute partie de N est au plus dénombrable.

1b. Toute partie d’un ensemble dénombrable est au plusdénombrable.

2. Soit f : A→ B une application.2.1 Si f est injective et B dénombrable, alors A est au plus

dénombrable.2.2 Si f est surjective et A dénombrable, alors B est au plus

dénombrable.

19 /176

Modèles de calcul

Ensembles dénombrables. Un paradoxe

Propriétés des ensembles dénombrables

Proposition

1a. Si A et B sont dénombrables, alors A× B l’est aussi.

1b. Si A1, . . . ,An sont dénombrables,∏n

i=1 Ai l’est aussi(récurrence).

2. Si J est au plus dénombrable, et si Ai est au plus dénombrable,pour i ∈ J, alors

⋃i∈J Ai est dénombrable.

3. Si A 6= ∅ est au plus dénombrable, alors A∗ est dénombrable.A∗ : ensembles des suites finies (mots) sur A

4. L’ensemble des automates finis sur alphabet A fini estdénombrable.

5. L’ensemble des programmes C est dénombrable.

20 /176

Modèles de calcul

Ensembles dénombrables. Un paradoxe

Quelques ensembles non dénombrablesProposition Les ensembles suivants ne sont pas dénombrables :

1. l’ensemble des nombres réels ;

2. l’ensemble des suites infinies d’entiers ;

3. l’ensemble des parties de N ;

4. l’ensemble des suites infinies de 0 ou 1 ;

5. l’ensemble des applications de N dans {0,1}.

Note Les trois derniers ensembles sont en bijection.

À une partie X de N, on associe la suite x = (xn)n>0 définie par

xn =

{1 si n ∈ X

0 si n /∈ X

De même, à toute suite x = (xn)n>0 à valeurs dans {0,1}, onassocie bijectivement l’application fx : N→ {0,1} définie parfx(n) = xn.

21 /176

Modèles de calcul

Ensembles dénombrables. Un paradoxe

Quelques ensembles non dénombrables

L’argument ci-dessous, dû à Cantor, permet de montrer quel’ensemble E = {0,1}N des suites infinies de 0 ou 1 est nondénombrable.

◮ Soit f : N→ E une application.

◮ Soit x = (xn)n>0 la suite infinie de 0 ou 1 définie par

xn = 1− f(n)n

◮ Puisque xn 6= f(n)n, on a x 6= f(n), et ce, pour tout n ∈ N.

◮ Comme x ∈ E n’est pas de la forme f(n), f n’est pas surjective.

◮ En particulier, il n’y a aucune bijection de N dans E.

22 /176

Modèles de calcul

Ensembles dénombrables. Un paradoxe

Un paradoxe?◮ On suppose qu’on dispose d’un ordinateur à mémoire infinie.

◮ On considère les programmes C qui écrivent une suite de 0 ou1.

◮ On interprète une telle suite a1,a2, . . . comme le réel0,a1a2 · · · .

◮ Un tel réel est dit calculable.

◮ L’ensemble de ces programmes est dénombrable : {P1,P2, . . .}.◮ On considère le programme qui

◮ lance P1 jusqu’à ce que celui-ci s’apprête à écrire a1, et écrit à laplace un entier différent de a1, puis,

◮ lance P2 jusqu’à ce que celui-ci s’apprête à écrire a2, et écrit à laplace un entier différent de a2, etc.

◮ Notre programme écrit un réel calculable non calculable !◮ Où est l’erreur ?

23 /176

Modèles de calcul

Machines de Turing

Plan

Présentation, bref historique

Ensembles dénombrables. Un paradoxe

Machines de Turing

Machines RAM

Problèmes indécidables

Réductions : logique, graphes, et problèmes sur entiers

Classes de complexité : P, NP, PSPACE.

Fonction récursives

24 /176

Modèles de calcul

Machines de Turing

Notion de problème : formalisation

◮ Un problème de décision est la donnée d’un ensemble(dénombrable) I d’instances et d’un sous-ensemble P ⊆ I

d’instances positives.

◮ Exemples◮ I = N, P = {n ∈ N | n est premier},◮ I = {G | G graphe fini}, P = {G ∈ I | G est 3-coloriable},◮ I = {G | G grammaire hors contexte}, P = {G ∈ I |

G est ambiguë}.

◮ Pour Σ fini, un codage des instances est une applicationinjective 〈·〉 : I→ Σ∗ associant à chaque élément x de I un mot〈x〉 ∈ Σ∗.

25 /176

Modèles de calcul

Machines de Turing

Notion de problème : formalisation

◮ Exemples◮ I = N, Σ = {a} et 〈n〉 = an.◮ I = N, Σ = {0,1} et 〈n〉 = codage en base 2 de n.◮ I = graphes orientés G = (V,E), Σ = {0,1, #, $}.

V = {1,2, . . . ,n}, E = {(i1, j1), . . . , (im, jm)} :

〈(V,E)〉 = $ · · · $︸ ︷︷ ︸n

〈i1〉#〈j1〉$〈i2〉#〈j2〉$ · · · 〈im〉#〈jm〉

◮ Σ∗ se partitionne en 3 ensembles :◮ Instances positives : LP = {〈x〉 | x ∈ P}.◮ Instances négatives : LN = {〈x〉 | x ∈ I et x /∈ P}.◮ Non instances : Σ∗ \ {〈x〉 | x ∈ I}.

26 /176

Modèles de calcul

Machines de Turing

Notion de problème

◮ Un problème de décision peut se voir comme une fonction

fP : Σ∗ −→ {OUI,NON}

calculant le langage LP, au sens que fP(〈x〉) = OUI⇐⇒ x ∈ P.

◮ Plus généralement, on s’intéresse au calcul de fonctions

f : Σ∗1 −→ Σ∗2

◮ Exemples◮ Σ1 = Σ2 = {0,1},◮ un élément de {0,1}∗ représente un entier codé en base 2◮ f calcule la fonction n 7→ 3n.

27 /176

Modèles de calcul

Machines de Turing

Qu’est-ce que c’est un ordinateur ?

◮ avant 1940 : circuits logiques (Boole, Shannon, etc)

◮ 1941, von Neumann : machines “modernes”

◮ 1950/60 : différencier la puissance des machines selon leurmémoireHiérarchie de Chomsky : automates finis, automates à pile,automates de mémoire linéaire, machines de Turing.Chomsky introduit sa hiérarchie avec des grammaires (calcul =réécriture).

28 /176

Modèles de calcul

Machines de Turing

Notion de machine

◮ Résoudre un problème consiste à déterminer pour x ∈ I, si〈x〉 ∈ LP.

◮ On veut une machine « acceptant » les mots de LP.

◮ Automates : mémoire bornée.◮ Automates à pile : ne reconnaissent pas les langages

◮ {anbncn | n > 0}◮

{ww | w ∈ {a,b}∗

}

◮ On peut reconnaître/accepter tous les langages L ⊆ Σ∗ avec unautomate à nombre infini d’états.

29 /176

Modèles de calcul

Machines de Turing

Machines de Turing

◮ Les machines de Turing sont des abstractions des ordinateurs.

◮ Une machine de Turing comporte :

� b a � a bb b b �� � �· · · · · ·

Contrôlefini

q0, . . . ,qn

◮ Une bande infinie à droite et à gauche faite de casesconsécutives.

◮ Dans chaque case se trouve un symbole, éventuellement blanc�.

◮ Une tête de lecture-écriture.◮ Un contrôle à nombre fini d’états.

30 /176

Modèles de calcul

Machines de Turing

Machines de Turing : intuition

◮ Le nombre d’états d’une machine de Turing est fini (parcomparaison, un ordinateur a un nombre fini de registres et lesprogrammes sont finis).

◮ La bande représente la mémoire de la machine. Elle est infinie :sur un ordinateur, on peut ajouter des périphériques mémoire(disques. . . ) de façon quasi-illimitée.

◮ L’accès à la mémoire est séquentiel : la machine peut bougersa tête à droite ou à gauche d’une case à chaque étape.

31 /176

Modèles de calcul

Machines de Turing

Machines de Turing : formalisationUne Machine de Turing (MT) à une bande M = (Q,q0, F,Σ,Γ, δ) estdonnée par

◮ Q : ensemble fini d’états.

◮ q0 : état initial.

◮ F ⊆ Q : ensemble d’états finaux (ou acceptants).

◮ Γ : alphabet fini de la bande, avec � ∈ Γ.

◮ Σ : alphabet d’entrée, avec Σ ⊆ Γ \ {�}.◮ δ : ensemble de transitions. Une transition est de la forme

(p,a,q,b,d), notée pa,b,d−−−→ q, avec

◮ p,q ∈ Q,◮ a,b ∈ Γ,◮ d ∈ {←,−,→}.

◮ On supposera qu’aucune transition ne part d’un état de F.

32 /176

Modèles de calcul

Machines de Turing

Machines de Turing : représentation graphique

◮ On représente souvent une MT comme un automate.

◮ Seules changent les étiquettes des transitions.

◮ Exemple, avec Γ = {0,1,�} et Σ = {0,1} :

p

0,�,→1,�,→

q�,�,−

représente la machine avec Q = {p,q}, q0 = p, F = {q},δ = {(p,0,�,→,p), (p,1,�,→,p), (p,�,�,−,q)}

33 /176

Modèles de calcul

Machines de Turing

Fonctionnement d’une MT

◮ Initialement, un mot w est écrit sur la bande entouré de �.

◮ Un calcul d’une MT sur w est une suite de pas de calcul.

◮ Cette suite peut être finie ou infinie.◮ Le calcul commence

◮ avec la tête de lecture-écriture sur la première lettre de w,◮ dans l’état q0.

◮ Chaque pas de calcul consiste à appliquer une transition, sipossible (il peut y avoir des choix : non-déterminisme).

◮ Le calcul ne s’arrête que si aucune transition n’est applicable.

34 /176

Modèles de calcul

Machines de Turing

Fonctionnement d’une MT

◮ Chaque pas consiste à appliquer une transition.

◮ Une transition de la forme pa,b,d−−−→ q est possible seulement si

1. la machine se trouve dans l’état p, et2. la lettre se trouvant sous la tête de lecture-écriture est a.

◮ Dans ce cas, l’application de la transition consiste à◮ changer l’état de contrôle qui devient q,◮ remplacer le contenu de la case sous la tête de lecture-écriture

par b,◮ bouger la tête d’une case à gauche si d =←, ou◮ bouger la tête d’une case à droite si d =→, ou◮ ne pas bouger la tête si d = −.

35 /176

Modèles de calcul

Machines de Turing

Configurations et calculs

◮ Une configuration représente un instantanné du calcul.◮ La configuration uqv signifie que

◮ L’état de contrôle est q◮ Le mot écrit sur la bande est uv, entouré par des �,◮ La tête de lecture est sur la première lettre de v.

◮ La configuration initiale sur w est donc q0w.

◮ Pour 2 configurations C,C′, on écrit C ⊢ C′ lorsqu’on obtient C′

par application d’une transition à partir de C.

Un calcul d’une machine de Turing est une suite de configurations.

C0 ⊢ C1 ⊢ C2 ⊢ · · ·

36 /176

Modèles de calcul

Machines de Turing

Calculs acceptants

Un calcul d’une machine de Turing est une suite de configurations.

C0 ⊢ C1 ⊢ C2 ⊢ · · ·

3 cas possibles

◮ Le calcul est infini,

◮ Le calcul s’arrête sur un état final (de F),

◮ Le calcul s’arrête sur un état non final (pas de F).

37 /176

Modèles de calcul

Machines de Turing

Langages acceptésOn peut utiliser une machine pour accepter des mots.

◮ Le langage L(M) ⊆ Σ∗ des mots acceptés par une MT M estl’ensemble des mots w sur lesquels il existe un calcul fini

C0 ⊢ C1 ⊢ C2 ⊢ · · ·Cn

avec C0 = q0w (w est le mot d’entrée) et Cn ∈ Γ∗FΓ∗.◮ 3 cas exclusifs : un calcul peut

◮ soit s’arrêter sur un état acceptant,◮ soit s’arrêter sur un état non acceptant,◮ soit ne pas s’arrêter.

◮ On dit qu’une machine est déterministe si, pour tout(p,a) ∈ Q× Γ, il existe au plus une transition de la forme

pa,b,d−−−→ q.

◮ Si M est déterministe, elle n’admet qu’un calcul par entrée.38 /176

Modèles de calcul

Machines de Turing

Exemples de machines de Turing

◮ Machine qui effectue while(true) ;

◮ Machine qui efface son entrée et s’arrête.

◮ Machine qui accepte 0∗1∗ (automate fini).

◮ Machine qui accepte {anbn | n > 0} (automate à pile).

◮ Machine qui accepte {a2n| n > 0} (automate à mémoire

linéaire).

◮ Machine qui accepte {anbncn | n > 0} (automate à mémoirelinéaire).

◮ Machine qui accepte {ww | w ∈ {0,1}∗} (automate à mémoirelinéaire).

39 /176

Modèles de calcul

Machines de Turing

MT acceptant ({anbn | n > 0})∗

Idée : marquer le 1er a et le 1er b, et recommencer.

0 1 2

3

a,A,→

B,B,→

�,�,→

a,a,→B,B,→

b,B,←

a,a,←B,B,←

A,A,→

40 /176

Modèles de calcul

Machines de Turing

MT acceptant {anbn | n > 0}

Idée : idem en vérifiant qu’on est dans a∗b∗.

45

6

a,a,→b,b,→

a,a,←b,b,←

b,b,→

�,�,←

0 1 2

3

a,A,→

B,B,→

�,�,→�,�,←

�,�,→

a,a,→B,B,→

b,B,←

a,a,←B,B,←

A,A,→

41 /176

Modèles de calcul

Machines de Turing

MT acceptant {a2n

| n > 0}

Idée : marquer un a sur 2.

0 1 2

3 4 5

A,A,→

a,A,→

A,A,→

�,�,→

a,a,→

a,A,→

a,a,→

A,A,→ A,A,→

�,�,←

a,a,←A,A,←

�,�,→

42 /176

Modèles de calcul

Machines de Turing

Les machines de Turing peuvent calculer

◮ On peut utiliser les MT pour accepter des langages ou calculer.

◮ Une MT déterministe acceptant un langage L calcule la fonctioncaractéristique de L définie par

f : Σ∗ → {0,1}

w 7→

{0 si w /∈ L,

1 si w ∈ L.

◮ Plus généralement, on peut associer à une MT déterministe Mune fonction fM : Σ∗ → Γ∗

◮ On écrit la donnée w ∈ Σ∗ sur la bande,◮ Si la MT s’arrête avec sur la bande le mot z ∈ Γ∗, la fonction est

définie par fM(w) = z.

43 /176

Modèles de calcul

Machines de Turing

Exemples de machines de Turing

◮ Machine qui interprête son entrée comme un entier n, leremplace par ⌊n/2⌋ et s’arrête.

◮ Machine qui effectue l’incrément en binaire.

◮ Machine qui effectue l’addition de deux entiers en unaire.

◮ Machine qui effectue la multiplication de deux entiers enunaire.

44 /176

Modèles de calcul

Machines de Turing

Calcul de ⌊n/2⌋

q1

0,0,→1,1,→

q2 q3�,�,←

0,�,→1,�,→

45 /176

Modèles de calcul

Machines de Turing

Incrément en binaire

q1

0,0,→1,1,→

q2 q3�,�,←

1,0,←

0,1,−�,1,−

46 /176

Modèles de calcul

Machines de Turing

Addition en unaire

◮ Le mot d’entrée est de la forme 1n#1m interprété comme ladonnée des entiers n et m.

q1

1,1,→

q2 q3 q4#,1,→

1,1,→

�,�,← 1,�,−

47 /176

Modèles de calcul

Machines de Turing

Il existe des langages non décidables

◮ Thèse de Church : les MT capturent tout ce qui est calculable.◮ Un langage L est décidable (ou récursif) s’il existe une MT qui

◮ s’arrête sur F partant d’un mot de L,◮ s’arrête sur Q \ F partant d’un mot de Σ∗ \ L.

◮ L’ensemble des langages sur {0,1}∗ est non dénombrable.

◮ L’ensemble des machines de Turing est dénombrable.

◮ Il existe donc des langages non décidables.

◮ Peut-on décrire explicitement un tel langage?

48 /176

Modèles de calcul

Machines de Turing

Variations des machines de Turing

On peut changer la définition des MT de plusieurs façons :

◮ bande finie sur la gauche et infinie sur la droite,

◮ un unique état acceptant, un unique état rejetant,

◮ calculs replaçant la tête en début de bande. . .

. . . et terminant avec le mot d’entrée écrit sur la bande,

◮ machines déterministes,

◮ petit alphabet de bande : Γ = Σ ∪ {�},

◮ machine à plusieurs bandes et plusieurs têtes.

Ces variations n’affectent pas ce que l’on peut accepter ou calculer.

49 /176

Modèles de calcul

Machines de Turing

Simulation : pour montrer l’équivalence des variantes

◮ Intuitivement, une machine M2 simule une machine M1 lorsqueM2 peut effectuer les mêmes calculs que M1.

◮ Un exemple (qui n’est pas général) où M2 simule M1 :

Q1 ⊆ Q2, F1 = F2, Γ1 ⊆ Γ2, et

∀C,C′ ∈ Γ∗1Q1Γ∗1

C ⊢1 C′dans M1 ⇔ C ⊢2 C1 ⊢2 C2 ⊢2 · · · ⊢2 Ck ⊢2 C

dans M2 avec Ci /∈ Γ∗2Q1Γ∗2

◮ M2 simule M1 si elle peut effectuer les mêmes passages entreconfigurations (éventuellement par plusieurs transitions).

50 /176

Modèles de calcul

Machines de Turing

Bande finie à gauche

◮ On « replie» la bande.

◮ On représente la configuration initiale

� � � � � � b b a a b � �· · · · · ·

q0

par# � � � � � � · · ·

b b a a b � � · · ·

(q0,bas)

51 /176

Modèles de calcul

Machines de Turing

Bande finie à gauche◮ On a Γ2 = ({#} ∪ Γ1)× Γ1.◮ # est un nouveau symbole servant à repérer le début de

bande.◮ On a Q2 = Q1 × {haut,bas}.◮ Une configuration de la nouvelle machine est du type

# � A B � � � · · ·

b b A b a � � · · ·

(q,haut)

représente la configuration de la machine initiale

� B A � b b A b a � � � �· · · · · ·

q

◮ Reste à écrire les transitions. 52 /176

Modèles de calcul

Machines de Turing

Bande finie vs. bi-infinie

◮ Inversement, toute machine travaillant sur une bande finiepeut être simulée par une machine à bande bi-infinie.

53 /176

Modèles de calcul

Machines de Turing

Un unique état acceptant, un unique état rejetantA partir de M = (Q,q0, F,Σ,Γ, δ), on construitM′ = (Q′,q′0, F

′,Σ′,Γ′, δ′).

◮ On ajoute un état OK, seul état acceptant de la nouvellemachine M′,

◮ . . . et des transitions de F vers OK.

◮ Q′ = Q ⊎ {OK}, q′0 = q0, F′ = {OK}, Σ′ = Σ, Γ′ = Γ,

δ′ = δ ∪ (F × Γ× {OK} × Γ× {−}).

On peut de même transformer M pour que :

◮ il y ait un unique état rejetant KO.

◮ tout calcul de M qui s’arrête replace la tête en début de motécrit.

◮ M sauvegarde son mot d’entrée et le restaure sur la bandequand elle s’arrête.

54 /176

Modèles de calcul

Machines de Turing

Composition des MT

◮ En connectant l’état final (supposé unique) d’une machine M1 àl’état initial d’une machine M2, on compose les fonctionscalculées par les deux machines.

◮ Si M1 termine en restaurant le mot d’entrée, on exécute laséquence M1;M2.

◮ Exemple : codage unaire→ binaire en utilisantl’incrémentation.

55 /176

Modèles de calcul

Machines de Turing

Langage des machines de Turing

◮ Les simplifications précédentes permettent de composer lesMT.

◮ Composition séquentielle : M1;M2.

◮ Test : Si M1 alors M2 sinon M3.

◮ Boucle : Tant que M1 faire M2.◮ Instructions de base

◮ test de lecture R == a,◮ écriture de a : W(a),◮ Déplacements : G ou D,◮ arrêt OK ou KO.

56 /176

Modèles de calcul

Machines de Turing

Plusieurs bandes

◮ On peut utiliser plusieurs bandes.

◮ Initialement, le mot d’entrée est écrit sur une bande,◮ Chaque transition lit un symbole sur chaque bande, et en

fonction des symboles lus et de l’état, la machine◮ change d’état,◮ écrit un nouveau symbole sous chacune des têtes.◮ déplace chaque tête indépendamment.

� B A � b b a b a � � � �· · · · · ·

q

� B � a b a c a a � � � �· · · · · ·

57 /176

Modèles de calcul

Machines de Turing

Plusieurs bandes◮ Simulation possible : regrouper les bandes.

� B A � b b a b a � � � � · · ·

q

� B � a b a c a a � � � � · · ·

est représentée par

� B A � b b a b a � � � � · · ·

� � � • � � � � � � � � � · · ·

� B � a b a c a a � � � � · · ·

� � � � � � • � � � � � � · · ·

58 /176

Modèles de calcul

Machines de Turing

Plusieurs bandes

◮ Idée de la simulation : position des têtes stockée dans la bande.◮ Chaque transition de la machine originale est simulée par

◮ un aller sur la bande pour récupérer les symboles sous les têtes,◮ un retour pour simuler la transition.

◮ Contrairement à la simulation de bande infinie par bande finie,plusieurs mouvements sont nécessaires pour simuler un seulmouvement.

◮ La nouvelle machine est intuitivement «plus lente».

◮ De combien? Retour aux classes P et NP

59 /176

Modèles de calcul

Machines de Turing

Machines déterministes

◮ Comme pour les automates finis, pour toute machine M, onpeut construire une machine déterministe qui simule M.

◮ Idée : on parcourt l’arbre des calculs en largeur.

◮ On note r le nombre maximal de choix dans M.◮ On utilise 3 bandes :

◮ bande 1 : sauvegarde la valeur du mot d’entrée w.◮ bande 2 : génère dans l’ordre hiérarchique les suites finies

d’entiers sur {1, ..., r}.◮ bande 3 : effectue le calcul de M sur w correspondant à la suite

de choix écrite sur la bande 2.

Retour aux classes P et NP

60 /176

Modèles de calcul

Machines de Turing

Γ = Σ ∪ {�}

◮ On peut faire en sorte que Γ n’utilise pas de symbolessupplémentaires, à part �.

◮ Idée : coder chaque symbole de Γ sur Σ ∪ {�}.◮ Représenter

◮ 0 par (0,�, . . . ,�),◮ 1 par (1,�, . . . ,�),◮ � par (�,�, . . . ,�),

61 /176

Modèles de calcul

Machines RAM

Plan

Présentation, bref historique

Ensembles dénombrables. Un paradoxe

Machines de Turing

Machines RAM

Problèmes indécidables

Réductions : logique, graphes, et problèmes sur entiers

Classes de complexité : P, NP, PSPACE.

Fonction récursives

62 /176

Modèles de calcul

Machines RAM

Machines RAM

Une machine RAM est une machine possédant

◮ Un programme, qui est une suite finie d’instructions I0, I1, I2, . . ..

◮ Une suite infinie de registres R0,R1,R2 . . ..

◮ Un registre spécial : compteur de programme PC (programcounter).

◮ Une bande d’entrée sur laquelle la machine lit ses données.

◮ Une bande de sortie sur laquelle la machine écrit ses résultats.

63 /176

Modèles de calcul

Machines RAM

Machines RAM : registres

◮ Chaque registre peut mémoriser n’importe quel entier positifou nul.

◮ Initialement, tous les registres ont comme valeur 0.

◮ Le registre PC contient le numéro de la prochaine instruction àexécuter.

◮ Les autres registres contiennent des valeurs (entièrespositives) manipulées par la machine au cours du calcul.

64 /176

Modèles de calcul

Machines RAM

Machines RAM : instructions

Les instructions sont de 4 types :

1. Manipulations de registres.

2. Opérations arithmétiques.

3. Sauts et arrêt.

4. Entrées/sorties.

65 /176

Modèles de calcul

Machines RAM

Machines RAM : Opérations arithmétiques

◮ incr(n) : incrémente de 1 la valeur contenue dans le registre Rn.

◮ decr(n) : décrémente de 1 la valeur contenue dans le registreRn, si elle est strictement positive. Ne fait rien sinon.

66 /176

Modèles de calcul

Machines RAM

Machines RAM : sauts et arrêt

◮ jump <k> : saut inconditionnel à l’instruction Ik.

◮ jzero <k,n> : saut à l’instruction Ik si la valeur du registre Rnest 0.

◮ stop : fin du programme.

En pratique, on se permet de mettre des étiquettes au niveaud’instructions vers lesquelles on veut aller.

67 /176

Modèles de calcul

Machines RAM

Machines RAM : E/S

Sur la bande d’entrée se trouve une suite d’entiers (les entrées duprogramme).

◮ read(n) : lit la valeur courante de la bande d’entrée et la metdans le registre Rn. La prochaine valeur lue sera la suivante dela bande d’entrée.

◮ write(n) : écrit sur la bande de sortie la valeur contenue dans leregistre Rn.

68 /176

Modèles de calcul

Machines RAM

Exécution d’une machine RAM

◮ La machine exécute les instructions en commençant par I0.

◮ Une fois l’instruction Ik exécutée, c’est l’instruction Ik+1 qui estexécutée, sauf après une instruction de saut ou stop.

69 /176

Modèles de calcul

Machines RAM

Jeux d’instruction des machines RAM vs. processeurs

Les machines RAM

+ peuvent manipuler des entiers arbitraires,

+ peuvent utiliser un nombre arbitraire de registres.

- ont un jeu d’instructions plus restreint que celui desprocesseurs habituels.

Mais on peut reprogrammer les instructions manquantes.

◮ Rm := Rn, Rn := 0.

◮ Opérations arithmétiques (addition, multiplication, soustraction« tronquée»,...).

◮ Appel de sous-programme : call/return

nécessite un décalage de registres.

70 /176

Modèles de calcul

Machines RAM

Machines RAM : simulation par machines de Turing

Une MT peut simuler une RAM : tout programme RAM peut êtreréalisé par machine de Turing à plusieurs bandes :

◮ Une bande d’entrée sur laquelle on met les données, séparéespar �.

◮ Une bande de sortie.

◮ Une bande pour chaque registre (codage unaire par exemple).

71 /176

Modèles de calcul

Machines RAM

Machines RAM : simulation par machines de Turing

◮ Chaque instruction RAM est codée par un “sous-programme”de MT.

◮ Les instructions sont reliées entre elles grâce aux états. Dansl’état de la MT on code l’instruction RAM lk simulée.

Exemples.

◮ incr/decr : machines incrémentation/décrémentation déjà vues,travaillant sur la bande correspondante au registre.

◮ jump 〈k〉 : correspond aux transitions jx/x/−−−−−→ k pour tout x ∈ Γ.

◮ jzero 〈k,n〉 : idem si la bande du registre Rn est vide. Sinon,aller en j + 1.

◮ stop : aller dans l’état OK.

72 /176

Modèles de calcul

Machines RAM

À quoi sert cette simulation ?

◮ On peut compiler un programme C (sans entrée-sortie) vers unprogramme RAM.

◮ La simulation précédente montre qu’on peut compiler toutprogramme RAM en machine de Turing (déterministe).

◮ Tout programme sans entrée-sortie dans n’importe quellangage de programmation se compile en une machine deTuring.

73 /176

Modèles de calcul

Machines RAM

Simulation inverse

Inversement, on peut simuler toute machine de Turing par une RAM.Idée de simulation, pour machine à bande finie à gauche :

◮ Mémoriser chaque configuration uqv par 2 entiers + étatcourant q (codé par exemple par l’instruction RAM courante).

◮ Le mot u ∈ Γ∗ est codé par le premier entier (bit le moinssignificatif à droite), et le mot v par le deuxième entier (bit lemoins significatif à gauche).

◮ Chaque instruction de MT est simulée par un bout de codeRAM. Par exemple, un mouvement de tête vers la droite signifieune multiplication du premier entier (qui gagne un bit) et unedivision du deuxième entier (qui perd un bit).

◮ Suite en TD...

74 /176

Modèles de calcul

Problèmes indécidables

Plan

Présentation, bref historique

Ensembles dénombrables. Un paradoxe

Machines de Turing

Machines RAM

Problèmes indécidables

Réductions : logique, graphes, et problèmes sur entiers

Classes de complexité : P, NP, PSPACE.

Fonction récursives

75 /176

Modèles de calcul

Problèmes indécidables

Définitions

◮ Un langage L est semi-décidable (ou récursivementénumérable) s’il est le langage accepté par une machine deTuring.

◮ RE = classe des langages semi-décidables.

◮ Note Sur un mot Σ∗ \ L, la machine de Turing peut ne pass’arrêter : 3 possibilités OUI/NON/ ?

◮ Un langage L est décidable (ou récursif) s’il est le langageaccepté par une machine de Turing qui s’arrête sur touteentrée : 2 possibilités OUI/NON

◮ R = classe des langages décidables.

76 /176

Modèles de calcul

Problèmes indécidables

Lagages RE et R

◮ On a clairement R ⊆ RE.

◮ La classe des langages RE est fermée par union.

◮ La classe des langages R est fermée par union et complément.◮ Si L et Σ∗ \ L sont dans RE, alors ils sont dans R.

◮ On construit une machine qui simule en parallèle les machinesM et N acceptant L et Σ∗ \ L (elle alterne un pas de calcul de M,un pas de calcul de N).

◮ Cette machine s’arrête si l’une des machines M et N s’arrête.◮ Un mot appartient soit à L, soit à Σ∗ \ L, donc elle

s’arrête toujours.

77 /176

Modèles de calcul

Problèmes indécidables

Codage des MT

◮ On travaille sur Σ = {0,1}, et on peut supposer Γ = {0,1,�}.

◮ On ne considère que les MT à un unique état OK.

◮ Toute MT de ce type peut se coder sur l’alphabet {0,1}.

◮ On code une transition piaj,ak,dℓ

−−−−→ qm par 0i10j10k10ℓ10m.

◮ On code la MT M par la suite de ces transitions, séparées entreelles par 11, avec deux blocs 111 en début et fin.

◮ On note ce code 〈M〉.

◮ Si w est un mot, on note 〈M,w〉 le code de M suivi par w.

78 /176

Modèles de calcul

Problèmes indécidables

Le langage diagonal◮ On numérote les mots de Σ = {0,1}∗ dans l’ordre hiérarchique.

◮ longueur d’abord,◮ ordre lexicographique pour une longueur donnée.

w0 = ǫ,w1 = 0,w2 = 1,w3 = 00,w4 = 01,w5 = 10,w6 = 11, . . .

◮ Note Une MT peut calculer le numéro d’un mot.

◮ On note Mi la machine telle que 〈Mi〉 = wi (par conventionL(Mi) = ∅ si wi n’est pas le code d’une machine de Turing).

◮ Proposition Le langage

Ld = {wi | wi /∈ L(Mi)}

n’est pas RE.

79 /176

Modèles de calcul

Problèmes indécidables

Réductions

◮ Soient PA et PB deux problèmes.

◮ On note LA l’ensemble des instances positives de PA.

◮ On note LB l’ensemble des instances positives de PB.

◮ Une réduction de PA vers PB est une fonction calculable par MTf : Σ∗ → Σ∗ telle que

x ∈ LA ⇐⇒ f(x) ∈ LB.

◮ On note PA 6 PB (PA se réduit à PB)◮ L’existence d’une réduction de PA vers PB assure que

◮ si PB est décidable, PA l’est aussi,◮ si PA est indécidable, PB l’est aussi.

80 /176

Modèles de calcul

Problèmes indécidables

Réductions - quelques avertissements

◮ “PA se réduit à PB” ne signifie PAS que le problème PB est plusfacile que PA. Cela signifie plutôt que la recherche d’unesolution pour PA sur une instance x donnée peut être ramenéeà la recherche d’une solution pour PB sur l’instance f(x).

◮ La notion de réduction est symétrique : x est une instancepositive de PA SI ET SEULEMENT SI f(x) est une instancepositive de PB.

81 /176

Modèles de calcul

Problèmes indécidables

Problème de correspondance de Post (1946)◮ Donnée : n paires de mots (u1, v1),. . . ,(un, vn).

◮ Question : existe-il une suite finie i1, . . . , ik telle que

ui1 · · · uik = vi1 · · · vik

[A noter : les suites d’indices sont les mêmes.]

◮ On peut voir les couples de mots comme des dominos.

a

ab

aa

a

ba

aa

bab

abba

◮ Une solution : a.bab.ba.aa.aa = ab.abba.aa.a.a

◮ Suite d’indices : 1, 4, 3, 2, 2.

PCP est un problème indécidable (voir TD).82 /176

Modèles de calcul

Problèmes indécidables

Simple-PCP◮ Dans Simple-PCP on a les restrictions suivantes :

1. ui et vi ont la même longueur, pour tout 2 ≤ i ≤ n− 1 (onsuppose n 6= 1).

2. La solution de PCP doit commencer par l’indice 1 et terminer parl’indice n. De plus, ces indices ne peuvent pas être utilisés aumilieu.

◮ Exemple : (u1, v1) = (a,ab), (u2, v2) = (ba,aa) et(u3, v3) = (aa,a). La séquence 1,2,3 est une solution deSimple-PCP.

◮ Rq. 1 : pour qu’une solution existe, il faut que|u1| − |v1| = |vn| − |un|. Soit donc k := |u1| − |v− 1| = |vn| − |un|et supposons que k > 0.

◮ Rq. 2 : Pour chaque séquence 1 = i1, i2, . . . , ik où ij 6= 1,n pourtout j, on a :

|ui1 . . . uik | − |vi1 . . . vik | = k

83 /176

Modèles de calcul

Problèmes indécidables

Réduction de Simple-PCP au problème d’accessibilité

◮ On peut donc chercher une solution de Simple-PCP dans ungraphe orienté fini : les sommets sont les mots de longueur k.On a un arc de u vers v s’il existe un couple (uj, vj) tel queuuj = vjv.Le sommet de départ est le mot w tel que u1 = v1w et lesommet d’arrivée est w′ tel que w′un = vn. L’instance deSimple-PCP donnée a une solution si et seulement si il existe unchemin de w à w′.

◮ On a donc réduit Simple-PCP au problème d’accessibilité dansles graphes orientés. Comme ce dernier problème estdécidable, Simple-PCP l’est aussi.

◮ C’est possible de réduire aussi dans le sens inverse, duproblème d’accessibilité à Simple-PCP.

84 /176

Modèles de calcul

Problèmes indécidables

Réductions : deuxième exemple

Problème de l’arrêt borné :

◮ Données : MT M, entrée w et entier k.

◮ Question : Est-ce que M accepte w en moins de k pas?

L’arrêt borné se réduit aussi à un problème d’accessibilité : onconstruit on graphe orienté G(M,w, k) dont les sommets sont toutesles configurations uqv de taille au plus k (donc |uv| ≤ k). On metdes arcs uqv→ u′q′v′ si uqv ⊢M u′q′v′.

M accepte w en moins de k pas de calcul si et seulement s’il existeun chemin de longueur au plus k dans G(M,w, k) de la configurationinitiale c0(w) à une configuration finale.

85 /176

Modèles de calcul

Problèmes indécidables

Langage et machine universelle

◮ Le langage (universel)

Lu = {〈M,w〉 | M accepte w}

est RE, mais pas R.

◮ S’il était dans R, alors Σ∗ \ Ld le serait aussi.

◮ À partir d’une machine de Turing hypothétique M qui s’arrêtesur toute entrée et telle que L(M) = Lu, on construitune machine de Turing M′ qui s’arrête sur toute entrée et telleque L(M′) = Σ∗ \ Ld.

◮ Or, une telle machine M′ n’existe pas, car sinon, Ld serait dansR.

◮ On a construit une réduction de Σ∗ \ Ld à Lu : Σ∗ \ Ld 6 Lu.

86 /176

Modèles de calcul

Problèmes indécidables

Un autre langage indécidable

◮ Le langageL∅ = {〈M〉 | L(M) = ∅}

n’est pas RE.

◮ On montre d’abord que L 6=∅ := Σ∗ \ L∅ est RE.

◮ Si L∅ était dans RE, il serait dans R. Alors Lu serait aussi dansR :

◮ On construit une réduction Lu 6 L 6=∅.◮ À partir de M et w, on construit M′ qui efface son entrée et lance

M sur w.◮ M′ accepte si et seulement si M s’arrête sur OK.

87 /176

Modèles de calcul

Problèmes indécidables

Théorème de Rice

◮ Soit E l’ensemble des langages RE de {0,1}∗.

◮ Une propriété des langages RE est un sous-ensemble P de E .

◮ Une propriété P ⊆ E est triviale si P = ∅ ou P = E .

◮ Attention Ne pas confondre P = ∅ (P ne contient aucunlangage) et P = {∅} (P ne contient que le langage vide).

88 /176

Modèles de calcul

Problèmes indécidables

Théorème de Rice◮ Toute propriété non triviale P des langages RE est non

décidable.◮ Attention : il s’agit d’une propriété des langages, non des MT.◮ Preuve A nouveau une réduction à partir de Lu.◮ Quitte à changer P et E \ P, on peut supposer ∅ /∈ P.◮ Comme P 6= ∅, il existe L ∈ P. Soit ML telle que L(ML) = L.◮ À partir de M,w donnés, on construit (par machine de Turing !)

la MT suivante :

Mw

si OK, lancer ML

ML

x

OKOK

◮ Cette machine accepte ∅ /∈ P si 〈M,w〉 /∈ Lu, et L ∈ P sinon.◮ Donc si P était dans R, Lu le serait aussi.

89 /176

Modèles de calcul

Problèmes indécidables

Problème de l’arrêt

Les problèmes suivants sont indécidables :

◮ étant donnée une MT M et un mot w, M s’arrête-t-elle sur w ?

◮ étant donnée une MT M, s’arrête-t-elle sur ε ?

◮ étant donnée une MT M, s’arrête-t-elle sur au moins uneentrée ?

◮ étant donnée une MT M, s’arrête-t-elle sur toute entrée ?

◮ étant donnée une MT M et un état q de M, M utilise-t-elle l’étatq sur l’entrée ε ?

90 /176

Modèles de calcul

Problèmes indécidables

L’indécidabilité hors du monde des MT : le PCP◮ Problème de correspondance de Post (1946).

◮ Donnée : n paires de mots (u1, v1),. . . ,(un, vn).

◮ Question : existe-il une suite finie i1, . . . , ik telle que

ui1 · · · uik = vi1 · · · vik

[A noter : les suites d’indices sont les mêmes.]

◮ On peut voir les couples de mots comme des dominos.

a

ab

aa

a

ba

aa

bab

abba

◮ Une solution : a.bab.ba.aa.aa = ab.abba.aa.a.a

◮ Suite d’indices : 1, 4, 3, 2, 2.

91 /176

Modèles de calcul

Problèmes indécidables

Le PCP modifié (PCPM)

◮ Problème de correspondance de Post (1946).

◮ Donnée : n paires de mots (u1, v1),. . . ,(un, vn).

◮ Question : existe-il une suite finie i1, . . . , ik telle que i1 = 1 et

ui1 · · · uik = vi1 · · · vik

A noter : les suites d’indices sont les mêmes,. . .. . . et le premier indice est 1.

92 /176

Modèles de calcul

Problèmes indécidables

Indécidabilité du PCP et PCPM

◮ On montre que

Lu 6 PCPM 6 PCP.

◮ Comme le langage universel Lu est non décidable, il en est demême de PCPM et de PCP.

◮ Accessoirement, on peut montrer que PCP 6 PCPM.

93 /176

Modèles de calcul

Problèmes indécidables

PCP 6 PCPM

◮ Si on a un algorithme pour résoudre PCPM, on a un algorithmepour résoudre PCP.

◮ Il suffit de résoudre n PCPM différents, selon le mot avec lequelon commence.

94 /176

Modèles de calcul

Problèmes indécidables

PCPM 6 PCP : plus difficile

◮ Supposons donné un algorithme pour résoudre le PCP.

◮ On introduit une nouvelle lettre $, et pour a1 · · · ak ∈ A+, soient

p(a1 · · · ak) = $a1 · · · $ak et s(a1 · · · ak) = a1$ · · · ak$.

◮ Soit (u1, v1),. . . ,(un, vn) une instance de PCPM.

◮ Soient les 2n + 1 mots suivants :

xi = p(ui), yi = s(vi)xn+i = p(ui)$, yn+i = s(vi)x2n+1 = p(u1), y2n+1 = $s(v1).

◮ Le PCPM sur l’instance ((uℓ, vℓ))16ℓ6n a une solution si etseulement si le PCP sur l’instance ((xℓ, yℓ))16ℓ62n+1 en a une.

95 /176

Modèles de calcul

Problèmes indécidables

Indécidabilité du PCPM

◮ On rappelle que Lu = {〈M,w〉|M accepte w} est indécidable.

◮ On montre Lu 6 PCPM.

◮ Étant donné une MT M et un mot w, on construit une instance((uℓ, vℓ))16ℓ6n de PCPM telle que

〈M,w〉 ∈ Lu ⇐⇒PCP sur l’instance ((uℓ, vℓ))16ℓ6n

a une solution.

◮ On peut supposer que◮ le seul état d’arrêt de M est qOK ,◮ M déplace sa tête à chaque transition.

96 /176

Modèles de calcul

Problèmes indécidables

La réduction L 6 PCPM◮ Idée : la seule solution sera la suite des configurations sur w.◮ La partie bleue est en retard d’une configuration.◮ Domino 1 : (#,#q0w#). Les autres dominos :◮ Dominos de copie : (a,a), (#,#),◮ Dominos de transitions :◮ Si p

a,b,→−−−→ q ∈ δ, on met un domino (pa,bq).

◮ Si pa,b,←−−−→ q ∈ δ, on met un domino (xpa,qxb) pour tout x ∈ Γ.

◮ Si p�,b,→−−−−→ q ∈ δ, on met un domino (p#,bq#).

◮ Si p�,b,←−−−−→ q ∈ δ, on met un domino (xp#,qxb#) pour tout

x ∈ Γ.◮ Dominos de synchronisation en fin de calcul :

◮ pour chaque a,b ∈ Γ : (aqOK ,qOK). (qOKb,qOK),◮ (qOK##, #).

97 /176

Modèles de calcul

Problèmes indécidables

Quelques autres problèmes indécidables

Les problèmes suivants sont indécidables :

◮ Étant donné un jeu fini de tuiles carrées, avec conditions decompatibilité entre côtés, déterminer si on peut paver le 1/4de plan.

◮ Étant donnée une grammaire, déterminer si elle est ambiguë.

◮ Étant donné un nombre fini de matrices 3× 3 à coefficientsentiers, déterminer si un produit permet d’annuler lacomposante (3,2).

◮ Étant donnée une suite calculable d’entiers, déterminer si elleconverge.

98 /176

Modèles de calcul

Problèmes indécidables

Révisions : vrai/faux

(a) L’ensemble des graphes orientés finis est dénombrable.

(b) Tout langage fini est décidable.

(c) Pour tous K, L ⊆ Σ∗ avec Σ = {0,1}, si K se réduit à L, alorsΣ∗ \ K se réduit à Σ∗ \ L.

(d) Tout langage sur un alphabet à une lettre est décidable.

(e) Étant donnés une machine de Turing M, un mot w et un entier k,on peut décider si M accepte w en au plus k pas de calcul.

(f) Étant données deux machines de Turing M1 et M2, on peutdécider si L(M1) ⊆ L(M2).

(g) Le langage des mots sur l’alphabet ASCII représentant unprogramme C syntaxiquement correct est décidable.

(h) Le complément de tout ensemble semi-décidable est aussisemi-décidable.

99 /176

Modèles de calcul

Problèmes indécidables

L’indécidabilité hors du monde des MT : le 10eproblème de Hilbert

◮ 10e problème de Hilbert : résolution d’équationsdiophantiennes.

◮ Exemple : est-ce que l’équation x3 + 3x2y + 3xy2 + y3 a unesolution avec x, y entiers ?

◮ Le problème, formulé par D. Hilbert en 1900, a reçu unesolution négative (indécidabilité) par Yu. Matyasevich (suiteaux avancées faites par J. Robinson, H. Putnam et M. Davis).

◮ Ce résultat d’indécidabilité raffine le théorème d’incomplétudede Gödel, qui dit que la théorie du premier ordre del’arithmétique (formules avec quantificateurs,addition/multiplication, coefficients et variables entiers) estindécidable.

100/176

Modèles de calcul

Problèmes indécidables

Equations diophantiennes

◮ Une équation diophantienne a la forme P(x1, . . . , xn) = 0, avecP polynôme avec coefficients entiers.

◮ Dioph(Z) demande si une équation diophantienne a unesolution avec tous les xi entiers ; Dioph(N) demande l’existenced’une solution avec les xi entiers positifs.

◮ Une équation diophantienne exponentielle permet de plusl’exponentiation. Exemple : 2xy − 7x2 = 1.

◮ ExpDioph(N) demande si une équation diophantienneexponentielle a une solution avec tous les xi entiers positifs.

◮ La solution de Matyasevich est de réduire le problème de l’arrêt(des RAM par exemple) à ExpDioph(N). Ensuite elle réduitExpDioph(N) à Dioph(N) par des méthodes de la théorie desnombres. Nous montrons ici juste la première réduction (facile).

101/176

Modèles de calcul

Problèmes indécidables

Coder l’arrêt d’une RAM en arithmétique◮ On part du modèle RAM avec instructions incr, decr, jump,

jzero, stop. De plus, on suppose que la RAM s’arrête avec tousles registres nuls, et que decr ne s’applique que sur desregistres de valeur non-nulle. On veut coder l’arrêt d’une RAMP (sans entrée/sortie).

◮ Soit P une suite de m instructions, étiquetées 1, . . . ,m, avec ladernière instruction égale à stop (ceci est l’unique occurrencede stop).

◮ On va coder une séquence finie d’entiers (n0, . . . ,nℓ) par unseul entier

∑ℓi=0 niB

i de telle façon que B (une variable) estplus grand que toutes les valeurs des ni (ainsi, on peut décoderni en tant que coefficient de Bi). La valeur de B doit être aussisuffisamment grande pour que par exemple quand on somme(les valeurs codant) 2 séquences, il suffit d’additionner lescoefficients base B.

102/176

Modèles de calcul

Problèmes indécidables

Coder l’arrêt d’une RAM en arithmétique◮ Pour le codage on va utiliser les variables (entières) suivantes :

◮ B : sa valeur est la base pour le codage de séquences d’entiers(voir transparent précédent).

◮ L : sa valeur est le nombre de pas de calcul de la RAM P avantd’atteindre stop. Les séquences d’entiers qu’on va coder enbase B seront de longueur L + 1 (pas : 0,1, . . . , L).

◮ Wp (1 ≤ p ≤ k) : pour chaque registre Rp de P. La valeur de Wp

représente la suite (np0, . . . ,npL) des contenus de Rp au cours du

calcul : npℓ est la valeur de Rp au pas ℓ du calcul.◮ Li (1 ≤ i ≤ m) : pour chaque instruction li de P. La valeur de Li

représente une séquence (si0, . . . , siL) telle que siℓ = 1 si PC = li

au pas ℓ, et siℓ = 0 sinon.

◮ Exemple : Soient B = 10, L = 5. Si R1 contient les valeurs0,1,2,1,1,0 au cours du calcul, alorsW1 = 11210. Sil’instruction l1 est exécutée au pas 2, 3 et 5, alors L1 = 101100.

103/176

Modèles de calcul

Problèmes indécidables

Coder l’arrêt d’une RAM en arithmétique◮ En utilisant des équations (exponentielles) on va demander

que B est une grande puissance de 2 :

B = 2K ∧ B > max{k,m,2 · L}

En particulier, B > 2L signifie que B dépasse le double de lavaleur maximale d’un registre (après L pas de calcul).

◮ Rq : avec B = 2K , tout nombre en base B peut s’écrire enbinaire comme suite de blocs 0/1 de longueur K.

◮ Pour deux entiers x, y on écrit xE y si – en représentationbinaire – chaque bit de x est plus petit ou égal au bitcorrespondant de y. Exemple : 4E 14, carbin(4) = 100,bin(14) = 1110. Mais 4 6E8.

◮ On utilisera une variable T pour designer la séquenceconstituée que de 1 (en base B) : T =

∑Li=0 B

i. Cette variableest l’unique solution de l’équation 1 + (B− 1)T = BL+1.

104/176

Modèles de calcul

Problèmes indécidables

Coder l’arrêt d’une RAM en arithmétique

◮ La relation Li E T exprime que la séquence Li (en base B) estconstituée que des 0 et 1.

◮ En combinaison avec la relation précécente,∑m

i=1 Li = T

exprime qu’à chaque pas de calcul, une unique instruction estexécutée.

◮ La relation 1E L1 garantit que la première instruction est l1. Larelation BL E Lm garantit que la dernière instruction est lm(stop).

◮ La relationWp E BL+1 − B garantit que la valeur initiale de Rpest 0.

◮ Si li : jump〈k〉 alors on garantit avec B · Li E Lk que li est suivipar lk. La multiplication par B fait le lien entre le pas ℓ et le pasℓ + 1.

105/176

Modèles de calcul

Problèmes indécidables

Coder l’arrêt d’une RAM en arithmétique

◮ Pareil pour li : incr(j) (ou decr) : B · Li E Li+1 (après li on exécuteli+1). On rajoute que les valeurs de Rp sont cohérentes :

Wp = B · (Wp +∑

i

Li −∑

i′

Li′)

On somme ici sur tous les i t.q. li : incr(p) et sur tous les i′

t.q. li′ : decr(p).

◮ Soit maintenant li : jzero〈j,p〉 (si Rp vaut zéro, continuer avec lj,sinon avec li+1).La relation B · Li E Lj + Li+1 garantit que li est suivie soit par lj,ou par li+1. La relation B · Li E Li+1 + B · T − 2 ·Wp traduit le testRp =?0.

106/176

Modèles de calcul

Problèmes indécidables

ExpDioph(N)◮ Finalement, on traduit la relation E par des équations

exponentielles.◮ D’abord, on peut montrer que x E y ssi

(xy

)est impair.

◮ Le coefficient binomial(xy

)est le coefficient de Uy dans la

représentation en base U de (1 + U)x (il faut choisir U plusgrand que

(xy

), par exemple U > 2x). On a que

(xy

)est l’unique

solution z des équations suivantes :

U = 2x+1 ∧ V < Uy ∧ z < U ∧ (1+U)x = WUy+1+zUy+V

◮ Pour résumer : on obtient un système d’équationsexponentielles (qu’on peut réduire à une unique équation –comment?), en utilisant les variables B, L,Wp, Li,T ainsi quedes variables auxiliaires t.q. les U,V,W qui traduisent lescoefficients binomiaux.

107/176

Modèles de calcul

Problèmes indécidables

Révisions : problèmes indécidables

Les problèmes suivants sont indécidables :

1. P1 : Étant donnée une MT M, décider si elle accepte au moins 7mots.

2. P2 : Étant donnée une MT M, décider si elle s’arrête toujoursavec écrit sur sa bande 2008.

3. P3 : Étant donnée une MT M et un état p de M, décider si Mutilise l’état p sur au moins une entrée.

4. P4 : Étant donnée une MT M et un état p de M, décider si Mutilise l’état p sur toute une entrée.

5. P5 : Étant donnée une MT M, décider si elle accepte n’importequel mot représentant (en binaire) un entier premier.

108/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Plan

Présentation, bref historique

Ensembles dénombrables. Un paradoxe

Machines de Turing

Machines RAM

Problèmes indécidables

Réductions : logique, graphes, et problèmes sur entiers

Classes de complexité : P, NP, PSPACE.

Fonction récursives

109/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Comparaison de problèmes

Spectre large des niveaux de difficulté :

◮ Problèmes faciles (sur les graphes) :1. Accessibilité : étant donné un graphe et 2 sommets s, t, est-ce

qu’il y a un chemin de s à t ? (solution : Dijkstra, Floyd-Warshall)2. Connexité : est-ce qu’un graphe donné est connexe? (solution :

accessibilité)3. Graphes eulériens : est-ce qu’un graphe possède un circuit qui

passe par chaque arc exactement une fois ? (solution :connexité)

4. 2-colorabilité : est-ce qu’on peut colorier un graphe avec 2couleurs t.q. pour chaque arête uv, les 2 sommets u, v ont descouleurs différentes ? (solution : DFS)

◮ Facile veut dire qu’on connaît des algorithmes polynomiauxpour résoudre ces problèmes.

110/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Comparaison de problèmes◮ Problèmes difficiles :

1. SAT : savoir si une formule booléenne (sans quantificateurs) aune valuation satisfaisante (voirhttp ://www.dwheeler.com/essays/minisat-user-guide.html).

2. Graphes hamiltoniens : est-ce qu’un graphe possède un circuitqui passe par chaque sommet exactement une fois (voirhttp ://www.tsp.gatech.edu/index.html).

3. 3-colorabilité◮ Problèmes encore plus difficiles :

1. Certains jeux à 2 joueurs.2. QSAT : savoir si une formules booléene quantifiée est valide.3. Savoir si l’intersection de n automates finis est non-vide.

◮ Difficile veut dire qu’on ne connaît pas d’algorithmespolynomiaux pour ces problèmes. La théorie de la complexitéclassifie les problèmes selon les ressources (en temps et/oumémoire) nécessaires pour les résoudre.

111/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Littéraux, clauses, et formules CNF

Étant données des variables x1, x2, . . . :

◮ un littéral est soit une variable xi, soit la négation d’unevariable ¬xi.

◮ Une clause est une disjonction de littéraux.

Exemple : x1 ∨ ¬x2 ∨ ¬x4 ∨ x5.

◮ Une 3-clause est une clause avec 3 littéraux différents.

Exemple : x1 ∨ ¬x2 ∨ ¬x4.

◮ Une formule CNF est une conjonction de clauses.

◮ Une formule 3-CNF est une conjonction de 3-clauses.

Exemple : (x1 ∨ ¬x2 ∨ ¬x4) ∧ (¬x1 ∨ x2 ∨ x3).

112/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

SAT

Le problème SAT est le suivant :

◮ Donnée : une formule CNF sur des variables x1, x2, . . . , xn.

◮ Question : existe-t-il une valuation des variablesσ : {xi | 1 ≤ i ≤ n} → {tt, ff} qui rend la formule vraie ?

113/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

3-SAT

Le problème 3-SAT est le suivant :

◮ Donnée : une formule 3-CNF sur des variables x1, x2, . . . , xn.

◮ Question : existe-t-il une valuation des variablesσ : {xi | 1 ≤ i ≤ n} → {tt, ff} qui rend la formule vraie ?

Le problème 3-SAT est donc moins général que SAT.

114/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction SAT vers 3-SAT

◮ À toute instance ϕ de SAT, on associe une instance ϕ̃ de 3-SATtq.

ϕ est satisfaisable⇐⇒ ϕ̃ est satisfaisable.

Remarque. On va construire ϕ̃ en temps polynomial par rapportà |ϕ|.

115/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction SAT vers 3-SAT

Si ϕ = c1 ∧ · · · ∧ ck où chaque ci est une clause, on construitϕ̃ = ϕ1 ∧ · · · ∧ ϕk, où

◮ Chaque ϕi est une conjonction de 3-clauses,

◮ ϕi utilise les variables de ci, + éventuellement de nouvellesvariables.

◮ Si une affectation des variables rend ci vraie, on peut lacompléter pour rendre ϕi vraie.

◮ Inversement, si une affectation des variables rend ϕi vraie, sarestriction aux variables de ci rend ci vraie.

116/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction SAT vers 3-SAT : construction de ϕi

◮ Si ci = ℓ1 (un littéral), on ajoute 2 variables yi, zi et

ϕi = (ℓ1 ∨ yi ∨ zi)∧ (ℓ1 ∨¬yi ∨ zi)∧ (ℓ1 ∨ yi ∨¬zi)∧ (ℓ1 ∨¬yi ∨¬zi).

◮ Si ci = ℓ1 ∨ ℓ2 (2 littéraux), on ajoute 1 variable yi et

ϕi = (yi ∨ ℓ1 ∨ ℓ2) ∧ (¬yi ∨ ℓ1 ∨ ℓ2).

◮ Si ci est une 3-clause : ϕi = ci.

◮ Si ci = ℓ1 ∨ · · · ∨ ℓk avec k > 4, on ajoute k − 3 variablesti,1, . . . , ti,k−3

ϕi = (ti,1∨ℓ1∨ℓ2)∧(¬ti,1∨ℓ3∨ti,2)∧(¬ti,2∨ℓ4∨ti,3)∧· · · (¬ti,k−3∨ℓk−1∨ℓk)

117/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction SAT vers 3-SAT : exemple

◮ ϕ = (x1 ∨ ¬x2 ∨ x3 ∨ ¬x4 ∨ x5) ∧ (x1 ∨ ¬x2) ∧ (¬x1 ∨ x2 ∨ x4),alors

◮ La construction donne

ϕ̃ = (t1,1 ∨ x1 ∨ ¬x2) ∧ (¬t1,1 ∨ x3 ∨ t1,2) ∧ (¬t1,2 ∨ ¬x4 ∨ x5)

∧ (y2 ∨ x1 ∨ ¬x2) ∧ (¬y2 ∨ x1 ∨ ¬x2)

∧ (¬x1 ∨ x2 ∨ x4)

118/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction SAT vers 3-SATOn vérifie qu’avec la construction précédente :

◮ Si une affectation des variables rend chaque ci vraie, on lacomplète facilement pour rendre chaque ϕi vraie.

◮ Inversement, si une affectation des variables rend chaque ϕi

vraie, la restriction de cette affectation aux variables de ci rendci vraie. Donc

ci est satisfaisable⇐⇒

ϕi est satisfaisable avec les mêmes valeurs pour les variablesde ci.

◮ Comme les variables ajoutées dans ϕi n’apparaissent que dansϕi :

ϕ est satisfaisable⇐⇒ ϕ̃ est satisfaisable.119/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction SAT vers 3-SAT

Récapitulatif. A partir de ϕ CNF, on a construit ϕ̃ 3-CNF telle que

ϕ est satisfaisable⇐⇒ ϕ̃ est satisfaisable.

On a donc

SAT 6 3-SAT.

Inversement, comme 3-SAT est un problème moins général queSAT :

3-SAT 6 SAT.

120/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

3-coloration

Le problème 3-coloration est le suivant :

◮ Donnée : un graphe non orienté G.

◮ Question : existe-t-il une 3-coloration de G ?

121/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction 3-coloration vers 3-SAT

◮ À toute instance G = (V,E) de 3-coloration on associe uneformule ϕG tq.

G est 3-coloriable⇐⇒ ϕG est satisfaisable

◮ Littéraux : {vi | v ∈ V, i ∈ {1,2,3}}(les couleurs sont 1,2,3 ; vi vrai signifiera que le sommet v estcolorié par la couleur i)

◮ Clauses :1. Chaque sommet est colorié par une (et une seule) couleur :

∧v∈V((v1 ∨ v2 ∨ v3) ∧ ∧i 6=j(vi ∨ vj))

2. Deux sommets voisins n’ont pas la même couleur :

∧uv∈E,i∈{1,2,3}(ui ∨ vi)

122/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction 3-SAT vers 3-coloration

◮ À toute instance ϕ de 3-SAT, on associe une instance Gϕ de3-coloration tq.

ϕ est satisfaisable⇐⇒ Gϕ admet une 3-coloration.

On utilise des sous-graphes (appelés gadgets) pour coder

◮ les littéraux vrais dans une évaluation qui satisfait ϕ,

◮ les opérateurs logiques ∧ et ∨.

123/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

3-SAT 6 3-coloration◮ 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.

◮ Pour chaque variable xi : 2 sommets xi et ¬xi reliés entre euxet à 2.

◮ Opérateurs : OU p ∨ q codé par : ET p ∧ q codé par :

p

q

2 ∨p,q

p

q

2 ∧p,q

en reliant ∨p,q et ∧p,q au sommet 2 (p et q le sontinductivement).

◮ ∨p,q coloriable par 1 si et seulement si p OU q sont coloriés 1.◮ ∧p,q coloriable par 1 si et seulement si p ET q sont coloriés 1.◮ Sommet « résultat » relié à 0 (et 2 par la construction

précédente). 124/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Clique et ensemble indépendant

Dans un graphe G non orienté

◮ Une clique pour G est un ensemble de sommets tous reliés 2 à2.

Le problème Clique est le suivant :

◮ Donnée : un graphe G non orienté et un entier K > 0.

◮ Question : existe-t-il une clique de G de taille K ?

125/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction 3-SAT vers clique

◮ À toute instance ϕ de 3-SAT, on associe une instance Gϕ,Kϕ deClique tq.

ϕ est satisfaisable⇐⇒ Gϕ a une clique de taille Kϕ.

et tq. on peut construire Gϕ,Kϕ en temps polynomial parrapport à |ϕ|.

126/176

Modèles de calcul

Réductions : logique, graphes, et problèmes sur entiers

Réduction 3-SAT vers clique

◮ Soit ϕ = (ℓ0 ∨ ℓ1 ∨ ℓ2) ∧ · · · ∧ (ℓ3k−3 ∧ ℓ3k−2 ∧ ℓ3k−1).

◮ Le graphe Gϕ a 3k sommets ℓ1, . . . , ℓ3k.◮ Deux sommets ℓi, ℓk sont reliés si

◮ ils ne proviennent pas de la même clause (i/3 6= k/3), et si◮ ils ne sont pas de la forme ℓ,¬ℓ.

◮ On choisit l’entier Kϕ égal à k.

◮ On vérifie que Gϕ a une clique de taille Kϕ ssi ϕ estsatisfaisable.

127/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Plan

Présentation, bref historique

Ensembles dénombrables. Un paradoxe

Machines de Turing

Machines RAM

Problèmes indécidables

Réductions : logique, graphes, et problèmes sur entiers

Classes de complexité : P, NP, PSPACE.

Fonction récursives

128/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Notations - rappels

◮ On s’interesse uniquement aux mesures asymptotiques desressources de calcul (temps/mémoire).

◮ Exemple Un algorithme de complexité ≤ 5n2 − 7n + 10 estqualifié comme algorithme quadratique ; un algorithme decomplexité ≤ 106n3 comme algorithme cubique, etc.

◮ Notation grand-O et petit-o :Soient f ,g : N→ N. On écrit :

◮ f ∈ o(g) si pour tout c > 0 il existe nc ∈ N tel que f(n) ≤ c · g(n)pour tout n ≥ nc.

◮ f ∈ O(g) s’il existent c > 0 et n0 ∈ N tels que f(n) ≤ c · g(n) pourtout n ≥ n0.

◮ f ∈ Θ(g) si f ∈ O(g) et g ∈ O(f).

◮ Linéaire = Θ(n), quadratique = Θ(n2), etc.

129/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

{anbn | n > 0} - quelle complexité en temps?

Vérifier qu’on est dans a∗b∗ : O(n). Vérifier que le nombre de a et deb est le même : O(n2).

45

6

a,a,→b,b,→

a,a,←b,b,←

b,b,→

�,�,←

0 1 2

3

a,A,→

B,B,→

�,�,→�,�,←

�,�,→

a,a,→B,B,→

b,B,←

a,a,←B,B,←

A,A,→

130/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

{anbn | n > 0} - quelle complexité en temps?

On peut faire mieux :

◮ Vérifier que l’entrée est dans a∗b∗ : O(n).◮ Répéter tant qu’il reste des a ou des b non-marqués :

◮ Vérifier que le nombre total de symboles non-marqués est pair.Rejeter s’il est impair.

◮ Marquer un a sur deux, et un b sur deux (en commençant parles premières occurrences).

◮ Si tous les a et tous les b sont marqués, accepter. Rejeter sinon.

Le temps de calcul est de O(n log(n)) : le nombre d’itérations de laboucle interne est logarithmique (après la premiere intération 1

2 desa sont marqués, après la deuxième itération 3

4 sont marqués, etc.En fait cet algorithme compte le nombre de a (et de b) en binaire.

131/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

{anbn | n > 0} - quelle complexité en temps?

On peut faire encore mieux - en utilisant plusieurs bandes : 1

◮ Vérifier que l’entrée est dans a∗b∗ : O(n).

◮ Lire l’entrée de gauche à droite, en copiant les a sur ladeuxième bande.

◮ Continuer de lire les b de l’entrée. Pur chaque b lu, on lit un a

sur la deuxième bande. Si les nombres sont égaux, accepter.

Cet algorithme est linéaire (de complexité O(n)).

1. Sur une seule bande, tout langage reconnu en o(n log(n)) est régulier.132/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Complexité en temps

◮ Soit M une machine de Turing (s’arrêtant sur toute entrée).

◮ Soit stepM(w) le nombre maximal d’instructions exécutées surl’entrée w jusqu’à l’arrêt de M.M étant non-déterministe, stepM(w) représente la profondeurde l’arbre de calcul de M sur w.

◮ Soit fM(n) = max {stepM(w) | |w| = n}.

◮ fM(n) mesure le temps passé par M sur une entrée de taille n,dans le pire des cas.

133/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Les classes de complexité DTIME(f ) et NTIME(f )Soit f : N→ N, f(n) > n.

◮ On note par NTIME(f) :

{L | L est accepté par une MT M t.q. fM ≤ f}

◮ On note par DTIME(f) :

{L | L est accepté par une MT M déterministe t.q. fM ≤ f}

Remarque : on peut définir de manière analogue le temps de calculsur une RAM (ou d’autres modèles de calcul), ainsi que les classesDTIME et NTIME.

◮ Thèse de Church qualitative : la complexité du mêmealgorithme sur des modèles de calcul “comparables” varieseulement de façon polynomiale.

Exemple : Toute MT M à plusieurs bandes t.q. fM ≤ f peut êtresimulée par une MT N à une bande, t.q. fN ≤ O(f2). 134/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Déterminisme vs. non-déterminisme

Soit f : N→ N t.q. f(n) > n.

◮ Toute MT M non-déterministe t.q. fM ≤ f peut être simulée parune MT N déterministe t.q. fN ≤ 2O(f).

En algorithmique on distingue les temps de calcul : linéaire,O(n log(n)), quadratique, O(n6), etc. En théorie de la complexité onclassifie les problèmes de manière moins fine. L’objectif est depouvoir déterminer la complexité intrinsèque d’un problème.

L’origine de la théorie de la complexité :

◮ P = ∪k≥1DTIME(nk) temps polynomial déterministe

◮ NP = ∪k≥1NTIME(nk) temps polynomial non-déterministe

135/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Classe P : exemples◮ Accessibilité : étant donné un graphe et 2 sommets s, t, est-ce

qu’il y a un chemin de s à t ? (solution : DijkstraO(n2 +m log(n)), Floyd-Warshall O(n3))

◮ Connexité : est-ce qu’un graphe donné est connexe ? (solution :accessibilité O(n + m))

◮ Acyclicité : est-ce qu’un graphe donné contient un cycle ?(solution : accessibilité)

◮ Graphes eulériens : est-ce qu’un graphe possède un circuit quipasse par chaque arc exactement une fois ? (solution :connexité)

◮ 2-colorabilité : est-ce qu’on peut colorier un graphe avec 2couleurs t.q. pour chaque arête uv, les 2 sommets u, v ont descouleurs différentes ? (solution : DFS)

◮ L’appartenance d’un mot à un langage hors-contexte (O(n3)).

136/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Les classes P et NP

NP = {L(M) | ∃p polynôme tel que fM(n) 6 p(n)}.

P = {L(M) | ∃p polynôme tel que fM(n) 6 p(n) et M déterministe}.

◮ P ⊆ NP.

◮ Déterminer si l’inclusion ci-dessus est stricte est un problèmeouvert.

◮ NP peut être défini par l’existence de preuve qui peut êtrevérifié en temps polynomial :

◮ Exemple : la preuve pour la satisfaisabilité d’une formulebooléenne est une valuation des variables qui rend la formulevraie.

137/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Classe NP

Un langage L est dans NP si et seulement s’il existe un polynôme p

et un langage K ∈ P tels que :

x ∈ L ⇔ il existe y ∈ Σ≤p(|x|) : 〈x, y〉 ∈ K

Le mot y est une preuve (de taille polynomiale) pour l’appartenancede x à L. Le langage K est un vérifieur polynomial des preuves.

◮ Vocabulaire : on montre souvent l’appartenance de L dans NPen (1) devinant une preuve y pour l’entrée x et (2) vérifiant quey est bien une preuve.

◮ On vérifie facilement que les problèmes

3-COLORATION, CLIQUE, CYCLE-HAMILTONIEN, ...

sont dans la classe NP.

138/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Réductions polynomiales

◮ Soient A et B deux langages de Σ∗.◮ Une réduction polynomiale de A vers B est une fonction

f : Σ∗ → Σ∗ telle que◮ f est calculable par une MT déterministe en temps polynomial.◮ On a l’équivalence suivante :

x ∈ A⇐⇒ f(x) ∈ B.

◮ On note A 6P B (A se réduit à B de façon polynomiale).◮ L’existence d’une réduction polynomiale de A vers B assure

que◮ si B ∈ P, alors A ∈ P.◮ si B ∈ NP, alors A ∈ NP.

On dit aussi que chacune des classes P et NP est fermée parréductions polynomiales.

139/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Réductions polynomiales

Plusieurs réductions vues précédemment sont bien polynomiales :

SAT 6 3-SAT 6 3-COLORATION ≤ SAT3-SAT 6 CLIQUE

140/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Complexité en temps : résumé◮ On s’intéresse à des machines de Turing s’arrêtant sur toute

entrée.◮ Les machines non-déterministes ont plusieurs calculs sur un

mot (→ arbre de calculs).◮ fonction de complexité fM d’une machine M associe à tout

entier n le temps du plus long calcul de M sur une entrée detaille n.

◮ P = langages décidés en temps polynomial par une MTdéterministe.

◮ NP = langages décidés en temps polynomial par une MT.◮ On ne sait pas si P = NP.◮ Réduction polynomiale : réduction qui se calcule en temps

polynomial.Exemple : de SAT vers 3-COLORATION.

141/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Problèmes NP-complets

◮ Un langage L (ou problème) est NP-complet si1. L ∈ NP, et2. pour tout langage K ∈ NP, on a K 6P L. (On dit aussi que L est

NP-difficile.)

◮ On va montrer qu’il existe des problèmes NP-complets.

� Ne pas confondre les termes NP et NP-complet. Tout problèmeL ∈ P est aussi dans NP. MAIS, si vous réussisez à montrerl’appartenance d’un problème NP-complet à P, vous pouvezremporter un prix de 1 Mio.$

� Un problème NP-difficile peut être indécidable (NP-difficilesignifie seulement une borne inf sur la complexité.)

142/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Problèmes de décision / calcul de solutions /optimisation

◮ Les problèmes vus jusqu’à présent (SAT, 3-coloration, etc) sontdes problèmes de décision : réponse OUI/NON.

◮ Problèmes de calcul de solution : si une formule estsatisfaisable, alors calculer une valuation satisfaisante. Si ungraphe est 3-coloriable, alors calculer un coloriage à 3couleurs...

◮ Problèmes d’optimisation : ayant un graphe pondéré sur lesarcs, calculer un cycle hamiltonien de poids minimal (TSP).

143/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Problèmes de décision / calcul de solutions /optimisation

Considérons le problème SAT et supposons qu’il ait un algorithmepolynomial A pour le résoudre. Alors on peut construire l’algorithmesuivant, qui calcule pour une formule donnée ϕ une valuationsatisfaisante σ (s’il en existe une) :

◮ La formule donnée : ϕ(x1, . . . , xn).

◮ Si A(ϕ) retourne “non”, alors retourner “non-satisfaisable”.◮ Pour i = 1 jusqu’à n faire :

◮ Si A(ϕ(b1, . . . ,bi−1, true, xi+1, . . . , xn)) retourne “oui”, alorsbi := true, sinon bi = false.

◮ Retourner (b1, . . . ,bn).

144/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Réductions de TuringOn remarque que l’algorithme précedent est en fait une réductiondu problème de calcul de solution au problème de décision. Ce typede réduction s’appelle Turing (polynomiale). Comme les réductionsde type “many-one”, celles de type Turing préservent ladécidabilité, et P et NP sont fermées par les réductions de Turingpolynomiales :

◮ A ≤T B signifie que A se réduit à B par une réduction de typeTuring (cad, il existe un algorithme pour A, qui utilise unalgorithme pour B de façon “boîte noire”).On écrit A ≤p

T B si A se réduit à B par une réduction Turingpolynomiale (cad, l’algorithme pour A - sans compter le tempsd’exécution des appels de B - est polynomial).

◮ Si A ≤T B et B est décidable, alors A est décidable.◮ Si A ≤p

T B est B ∈ P, alors A ∈ P.◮ Si A ≤p

T B et B ∈ NP, alors A ∈ NP.145/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Théorème de Cook-Levin

◮ Théorème (Cook, Levin) SAT est NP-complet.

◮ Conséquence. D’après les réductions polynomiales vuesprécédemment, les problèmes 3-SAT, 3-COLORATION, etCLIQUE sont NP-complets.

146/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Théorème de Cook-Levin — principe de la preuve

◮ On part d’un langage quelconque de NP, décidé par une MT M

à une bande (bornée à gauche).

◮ On construit à partir de M et d’un mot d’entrée w une formuleϕM,w de taille polynomiale, et telle que

M accepte w⇐⇒ ϕM,w est satisfaisable.

147/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Théorème de Cook-Levin — idée de preuve

◮ Tout calcul de M sur w prend p(n) étapes (instants), où p est unpolynôme et n = |w|.

◮ Donc tout calcul de M sur w utilise au plus p(n) + 1 cases.◮ On introduit des variables, avec leur signification intuitive

◮ Q(i,q) : vrai ssi l’état de contrôle de M à l’instant i est q.◮ P(i, j) : vrai ssi la position de la tête de M à l’instant i est j.◮ L(i, j,A) : vrai ssi le symbole à l’instant i dans la case j est A.

◮ Note. Seulement un nombre polynomial de variables !

148/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Théorème de Cook-Levin — idée de preuve

◮ Grâce aux variables Q,P, L, on encode le calcul : À tout instant◮ on se trouve dans un et un seul état,◮ une et une seule case est lue,◮ il y a une et une seule lettre dans chaque case.

◮ On code également que◮ à l’instant 0, la configuration est q0wBp(|w|+1−|w|).◮ à l’instant p(n), la machine est dans l’état OK.◮ pour tout i : le passage entre les valeurs Q(i, ·), P(i, ·), L(i, ·, ·) et

les valeurs Q(i + 1, ·), P(i + 1, ·), L(i + 1, ·, ·) correspond bien àune transition de M.

149/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Un autre problème NP-complet : Somme d’entiers

Le problème Somme d’entiers est le suivant :

◮ Donnée : des entiers x1, . . . , xk > 0 et un entier s.

◮ Question : existe-t-il 1 6 i1 < i2 < · · · < ip 6 k tels que

xi1 + · · ·+ xip = s.

C’est clairement dans NP : on devine i1, . . . , ip et on teste.

On montre que c’est NP-complet par une réduction 3-SAT 6Somme d’entiers.

150/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Partition

Le problème Partition est le suivant :

◮ Donnée : des entiers x1, . . . , xk > 0.

◮ Question : existe-t-il X ⊆ {1, . . . , k} tel que

i∈X

xi =∑

i/∈X

xi.

C’est clairement dans NP : on devine X et on teste.

151/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Réduction Somme d’entiers vers Partition

Soit x1, . . . , xk, s une instance de Somme d’entiers. Soit x =∑

xi.On construit (en temps polynomial) l’instance x1, . . . , xk, x − 2s dePartition.

◮ Si Somme d’entiers a une solution sur x1, . . . , xk, s,Partition a une solution sur x1, . . . , xk, x− 2s.

◮ Inversement, si Partition a une solution sur x1, . . . , xk, x− 2s,Somme d’entiers a une solution sur x1, . . . , xk, s.

152/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Réduction 3-SAT vers Somme d’entiers

◮ On construit à partir d’une formule 3-CNFϕ = C1 ∧ C2 ∧ · · · ∧ Cm avec variables x1, . . . , xn une instance deSomme d’entiers (x1, . . . , xk, s) t.q. ϕ est satisfaisable ssi(x1, . . . , xk, s) a une solution.

◮ Idée : on code les littéraux et les clauses de ϕ par de (très)grands entiers en base 10. Le codage est défini de telle façonque quand on fait des sommes, il n’y a pas de retenue (c-à-d,les “bits” sont décodables).

◮ A chaque variable xi correspondent les 2 entiers yi, zi. Lesentiers yi, zi sont de longueur m + i et commencent chacun par10i−1. Les m derniers “bits” codent les clauses : pour yi le j

dernier “bit” est 1 si xi apparaît dans Cj, et 0 sinon ; pour zi le j

dernier “bit” est 1 si xi apparaît dans Cj, et 0 sinon.

153/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Réduction 3-SAT vers Somme d’entiers

◮ Exemple : Pour ϕ = (x1 ∨ x3) ∧ (x1 ∨ x2 ∨ x3) on a y1 = 110,z1 = 101, y2 = 1001, z2 = 1000, etc.

◮ A chaque clause Cj correspondent les 2 entiers tj = wj = 10m−j.

◮ L’entier s = 1 · · · 1︸ ︷︷ ︸n

3 · · · 3︸ ︷︷ ︸m

.

◮ Pour produire le bloc 1n dans s il faut choisir exactement un deyi, zi (pour tout 1 ≤ i ≤ n). Ceci revient à choisir une valuationdes variables – yi signifie xi vrai, et zi signifie xi faux.

◮ Pour produire le bloc 3m dans s il faut que pour chaque clause,au moins un des littéraux soit vrai. On complète jusqu’à 3 enutilisant les entiers tj,wj.

◮ L’instance de “Somme d’entiers” peut se calculer en tempspolynomial.

154/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Complexité en espace

◮ Soit M une machine de Turing (s’arrêtant sur toute entrée).

◮ Soit spaceM(w) le nombre maximal de cases visitées sur lesbandes, sur l’entrée w jusqu’à l’arrêt de M.

◮ Soit sM(n) = max {spaceM(w) | |w| = n}.

◮ sM(n) mesure la mémoire utilisée par M sur une entrée de taillen, dans le pire des cas.

◮ On note par DSPACE(s) la classe des langages acceptés parune MT déterministe M t.q. sM ≤ s. On note par NSPACE(s) laclasse des langages acceptés par une MT M t.q. sM ≤ s.

155/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

La classe PSPACE

◮ On définit PSPACE = ∪k≥1DSPACE(nk) = ∪k≥1NSPACE(nk).◮

P ⊆ NP ⊆ PSPACE ⊆ EXPTIME = ∪k≥1DTIME(nk)

◮ Exemples de problèmes dans PSPACE :Entrée : n automates finis Ai.Question : est-ce que ∩ni=1L(Ai) 6= ∅ ?Entrée : expressions rationnelles R1,R2.Question : est-ce que R1,R2 decrivent le même langage?Entrée : formule booléenne quantifiée ϕ.Question : est-ce que ϕ est valide ?Entrée : graphe orienté G, sommet de départ s : jeu à 2 joueursJ1, J2 qui jouent de façon alternée en formant un chemin simpledans G (à partir de s) - le premier qui ne peut plus jouer, perd.Question : est-ce que J1 a une stratégie gagnante ?

156/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

PSPACE et preuves intéractives

◮ Rappel : NP représente la classe des problèmes pour lesquelson peut vérifier la preuve de manière efficace.

◮ 2 acteurs : prouveur P et vérifieur V. Le but de P est deconvaincre V que l’entrée w appartient à un langage donné L.

◮ Exemple : L = SAT. Sur une entrée ϕ, le prouveur P présente àV une valuation σ des variables de ϕ. Le vérifieur V estconvaincu, si σ est satisfaisante.

◮ Question : est-ce qu’on peut faire de même pour lecomplément de SAT? Réponse : oui, si on augmente lescapacités de P et V.

1. P et V pourront communiquer de façon bi-directionnelle.2. V pourra faire des choix probabilistes ; il devra être convaincu

par P avec grande probabilité seulement.

157/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

Preuves intéractives

◮ Un système de preuves intéractives est une paire (P,V) t.q. :

1. V est un algorithme polynomial probabiliste,2. P et V échangent un nombre polynomial de messages (de taille

polynomiale).3. Un langage L est décidé par une paire (P,V) si pour toute entrée

w :◮ w ∈ L implique que V accepte (après communication avec P) avec

proba ≥ 2/3,◮ w /∈ L implique que V accepte (après communication avec P) avec

proba < 1/3.

◮ Rq : on ne restreint pas P.

158/176

Modèles de calcul

Classes de complexité : P, NP, PSPACE.

PSPACE et preuves interactives

◮ Exemple : Non-isomorphie de graphes. On veut vérifier que 2graphes non-orientés G1,G2 ne sont pas isomorphes.

◮ V choisit de façon aléatoire (et cachée) Gi (i ∈ {1,2}) et appliqueune permutation sur Gi, en obtenant le graphe H. Il envoie H à P,en lui demandant l’indice i.

◮ P envoie j ∈ {1,2}.◮ V accepte ssi i = j.

◮ PSPACE est la classe des langages qui peuvent être décidéspar des preuves interactives.

◮ Rq : NP ainsi que co-NP (la classe des compléments delangages dans NP) sont inclus dans PSPACE.

159/176

Modèles de calcul

Fonction récursives

Plan

Présentation, bref historique

Ensembles dénombrables. Un paradoxe

Machines de Turing

Machines RAM

Problèmes indécidables

Réductions : logique, graphes, et problèmes sur entiers

Classes de complexité : P, NP, PSPACE.

Fonction récursives

160/176

Modèles de calcul

Fonction récursives

Fonctions calculables

◮ Une MT peut être utilisée pour calculer.◮ Exemple : pour calculer une fonction de f : Nk → N, on peut

utiliser k + 2 bandes◮ k bandes d’entrée pour les arguments,◮ une bande de calcul,◮ une bande de sortie, sur laquelle le résultat sera écrit.

◮ Lorsque la machine est lancée avec l’argument w sur sa banded’entrée, elle doit s’arrêter avec f(w) sur sa bande de sortie.

◮ On s’intéresse aux fonctions qu’il est possible de calculer parMT.

161/176

Modèles de calcul

Fonction récursives

La classe des fonctions primitives récursivesPlus petite classe de fonctions Nk → N

◮ contenant◮ La fonction nulle de Nk → N pour tout k > 0,◮ La fonction Succ : N→ N telle que Succ(x) = x + 1.◮ La projection πk

i : Nk → N, telle que πki (x1, . . . , xk) = xi.

◮ fermée par◮ composition : si f1, . . . , fk : Nn → N et g : Nk → N sont primitives

récursives, alors h : Nn → N l’est aussi, , où h est définie par

h(x1, . . . , xn) = g(f1(x1, . . . , xn), . . . , fk(x1, . . . , xn))

◮ récursion : Si f : Nn → N et g : Nn+2 → N sont primitivesrécursives, alors h : Nn+1 → N l’est aussi , où h est définie par

h(0, x1, . . . , xn) = f(x1, . . . , xn)

h(x + 1, x1, . . . , xn) = g(x,h(x, x1, . . . , xn), x1, . . . , xn)

162/176

Modèles de calcul

Fonction récursives

Exemples de fonctions primitives récursives

◮ Remarque Les fonctions primitives récursives se calculent en Csans boucle while().

◮ Les fonctions suivantes sont primitives récursives.◮ La fonction prédécesseur : f(0) = 0, f(x) = x− 1 si x > 0.◮ L’addition, la multiplication de deux entiers.◮ La différence tronquée : maximum de 0 et de la différence de

deux entiers.x −̇ y ≡ max{0, x− y}

◮ Le minimum de deux entiers.Attention La récursion ne doit porter que sur un paramètre.

163/176

Modèles de calcul

Fonction récursives

Propriétés des fonctions primitives récursives

◮ La somme, le produit, la différence tronquée de fonctionsprimitives récursives est primitive récursive.

◮ Si f : Np+1 → N est primitive récursive, alors

g(n, x1, . . . , xp) =

n∑

i=0

f(i, x1, . . . , xp)

et

h(n, x1, . . . , xp) =

n∏

i=0

f(i, x1, . . . , xp)

sont primitives récursives.

164/176

Modèles de calcul

Fonction récursives

Fonctions définies par cas

◮ Une fonction dont les valeurs sont 0 ou 1 est appelée unprédicat.

◮ On interprète 0 comme faux et 1 comme vrai.

◮ Les opérateurs Booléens classiques, appliqués à des prédicatsprimitifs récursifs fournissent des prédicats primitifs récursifs.

◮ Si P(x, x1, . . . , xp) est un prédicat primitif récursif, il en est demême de

◮ AP(n, x1, . . . , xp) ≡ ∀x 6 n P(x, x1, . . . , xp)◮ EP(n, x1, . . . , xp) ≡ ∃x 6 n P(x, x1, . . . , xp)

◮ . . . car AP(n, x1, . . . , xp) =∏n

i=0 P(i, x1, . . . , xp), et EP = 1 −̇ A1−̇P.

165/176

Modèles de calcul

Fonction récursives

Fonctions définies par cas

◮ Si P1, . . . ,Pk sont des prédicats primitifs récursifs, et f1, . . . , fk+1

des fonctions primitives récursives, il en est de même de

g(x1, . . . , xn) =

f1(x1, . . . , xn) si P1(x1, . . . , xn),f2(x1, . . . , xn) sinon, et si P2(x1, . . . , xn),· · ·fk(x1, . . . , xn) sinon, et si Pk(x1, . . . , xn),fk+1(x1, . . . , xn) sinon.

166/176

Modèles de calcul

Fonction récursives

Minimisation bornée

◮ Si P(x, x1, . . . , xp) est un prédicat primitif récursif, la fonction

µBP(n, x1, . . . , xp) ≡

{min

{x 6 n | P(x, x1, . . . , xp)

}si un tel x existe

n + 1 sinon

est primitive récursive.

◮ On a µBP(n, x1, . . . , xp) =∑n

k=0

∏ki=0(1 −̇ P(i, x1, . . . , xp)).

◮ On ne peut pas se passer de borner cette minimisation(sinon, la fonction n’est plus nécessairement primitiverécursive).

167/176

Modèles de calcul

Fonction récursives

Fonctions calculables, non primitives récursives

◮ Ackermann et Sudan ont trouvé en 1927-28 des fonctions◮ non primitives récursives,◮ calculables mécaniquement.

A(m, x) =

x + 1 si m = 0

A(m − 1,1) si m > 0, x = 0

A(m − 1,A(m, x − 1)) si m, x > 0.

◮ Une variante [D. Kozen] : B(m, x) = Bm(x), où

B0(x) = x + 1

Bm+1(x) = Bm ◦ · · · ◦ Bm︸ ︷︷ ︸x fois

(x)

168/176

Modèles de calcul

Fonction récursives

Fonctions calculables, non primitives récursives◮ On vérifie que les récurrences terminent.◮ B croît trop vite pour être primitive récursive (idem pour A).

B0(x) = x + 1, B1(x) = 2x, B2(x) > 2x

B3(x) > 22. . .

2

︸ ︷︷ ︸x

= 2 ↑ x

B4(x) > 2 ↑↑ x,B4(2) > 22048...

où 2 ↑ (x + 1) = 22↑x, et 2 ↑↑ (x + 1) = 2 ↑ (2 ↑↑ x), et plusgénéralement Bm+2(x) > 2↑ · · · ↑m fois(x), où

2 ↑ · · · ↑︸ ︷︷ ︸m fois

(x + 1) = 2 ↑ · · · ↑︸ ︷︷ ︸m−1 fois

(2 ↑ · · · ↑︸ ︷︷ ︸m fois

x)

On retrouve la définition d’Ackermann.169/176

Modèles de calcul

Fonction récursives

La fonction d’Ackermann n’est pas PR

◮ On démontre que si f : Np → N est primitive récursive, alors ilexiste k tel que

f(x1, x2, . . . , xn) < Bk(max(x1, . . . , xn)). (1)

◮ Or, la fonction B ne vérifie pas (1).

◮ La fonction B n’est donc pas primitive récursive.

◮ Idem pour A.

◮ (En revanche, chaque Bk est primitive récursive).

170/176

Modèles de calcul

Fonction récursives

Bijection N2 → N primitive récursive

◮ La bijection c : N2 → N définie par

c(i, j) =(i + j)(i + j + 1)

2+ i

est primitive récursive(montrer que n 7→ n/2 est primitive récursive).

◮ Les fonctions d1,d2 : N→ N telles que c−1 = (d1,d2) sont aussiprimitives récursives. Par exemple, pour d1, utiliser

d1(x + 1) =

{0 si ∃y 6 x, x = y(y+1)

2 ,d1(x) + 1 sinon.

171/176

Modèles de calcul

Fonction récursives

Récurrence simultanée

◮ On note ~x = x1, . . . , xp.

◮ Propriété Si f1, . . . , fk : Np → N et g1, . . . ,gk : Nk+p+1 → N sontdes fonctions primitives récursives, alors les fonctionsh1, . . . ,hk : Np+1 → N définies comme suit le sont aussi.

hi(0,~x) = fi(~x)

hi(n + 1,~x) = gi(n,h1(n,~x), . . . ,hk(n,~x),~x)

◮ Preuve. Pour k = 2, on utilise le codage c : N2 → N et sesdécodages d1 et d2 pour exprimer h = c(h1,h2) à l’aide duschéma de récurrence.

172/176

Modèles de calcul

Fonction récursives

Fonctions récursives◮ Soit P(z,~x) : Np+1 → {0,1} un prédicat non nécessairement

total, (c’est-à-dire, non nécessairement défini sur tout Np+1).◮ On écrit P(z,~x) = a si P est défini sur (z,~x) et vaut a. Soit

EP(~x) ={y ∈ N | P(y,~x) = 1 ∧

z<y

P(z,~x) = 0}.

◮ EP(~x) est soit un singleton, soit l’ensemble vide. SoitµP : Np → N

µP(~x) =

{min EP(~x) si EP(~x) 6= ∅,

indéfini sinon.

◮ La fonction µP peut ne pas être totale, même si P l’était.� Attention : malgré les définitions similaires, la minimisation

(générale) permet de construire des fonctions non primitivesrécursives, contrairement à la minimisation bornée.

173/176

Modèles de calcul

Fonction récursives

Calcul des fonctions récursives

◮ Les fonctions primitives récursives sont calculables parprogramme.

◮ Si P(y, x) est un prédicat récursif, µP(x) se «calcule» par

int muP(int x)

{

y = 0;

while (P(y,x) == 0)

y++;

return y;

}

◮ Le calcul peut ne pas terminer◮ soit parce que l’un des appels P(y, x) ne termine pas,◮ soit parce que P(y, x) vaut toujours 0.

174/176

Modèles de calcul

Fonction récursives

La classe des fonctions récursives

Plus petite classe de fonctions Nk → N

◮ contenant la fonction nulle, la fonction successeur, lesprojections.

◮ fermée par◮ composition,◮ récursion,◮ minimisation : si P est un prédicat récursif, alors µP l’est aussi.

175/176

Modèles de calcul

Fonction récursives

Fonctions récursives et fonctions MT-calculables

Théorèmes

◮ Les fonctions récursives sont exactement les fonctions de Nk

dans N, pour k > 0, qui sont calculables par machine de Turing.

◮ Conséquence Il existe une fonction récursive, définie sur N toutentier, qui n’est pas primitive récursive.

◮ Il existe des fonctions non récursives.

176/176