La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Indécidabilité. Encodage des machines de Turing On pourrait imaginer plusieurs conventions possibles pour encoder une machine de Turing. Cet encodage.

Présentations similaires


Présentation au sujet: "Indécidabilité. Encodage des machines de Turing On pourrait imaginer plusieurs conventions possibles pour encoder une machine de Turing. Cet encodage."— Transcription de la présentation:

1 Indécidabilité

2 Encodage des machines de Turing On pourrait imaginer plusieurs conventions possibles pour encoder une machine de Turing. Cet encodage devrait spécifier le 6-tuplet (S,,,,, h). Pour des raisons pratiques, on choisit un encodage binaire (sur lalphabet {0,1}) des machines de Turing. Pour une machine de Turing M, dénotons M lencodage de M.

3 Différence entre M et M Lorsque lon parle dun programme on ne fait souvent pas la distinction entre le code source du programme et lexécutable qui lui correspond. La différence entre M et M est de la même nature. –La machine M est une machine donc un processus automatique, un exécutable, quelque chose qui reçoit une entrée et retourne (peut-être) une sortie. – M est une suite de 0 et de 1. On choisit dinterpréter cette suite de 0 et de 1 comme ayant un sens précis, celui de lencodage de M.

4 Dépendamment de notre encodage, il est possible que certaines suites de 0 et de 1 ne correspondent pas à une description valide dune machine de Turing. Pour se simplifier la vie, nous allons supposer que toutes les descriptions invalides correspondent à la machine de Turing suivante: Cette machine de Turing ne fait que boucler à linfini sur létat initial.

5 Lencodage permet donc dassocier à nimporte quel chaîne de {0,1} * une machine de Turing. Pour chaque machine de Turing M, il existe un mot M de {0,1} * qui encode M. Inversement, chaque mot w de {0,1} * est lencodage dune machine M w.

6 Machine de Turing universelle Cest une machine «programmable». On lui donne en entrée la description encodée dune machine de Turing M et dune séquence w. La machine de Turing universelle peut alors simuler lexécution de M sur lentrée w et accepter si et seulement si M accepte w.

7 Voici une définition informelle de la machine de Turing universelle U. U = Entrée M, w 1.Si encodage invalide, rejeter; 2.Sinon, écrire sur un second ruban le mot w. Sur ce deuxième ruban, simuler lexécution de M sur le mot w. Cette simulation peut seffectuer en déterminant au fur et à mesure la transition queffecuterait M. 3.Si M accepte w, alors U accepte. Si M sarrête et rejette w, alors U rejette.

8 Considérons le langage suivant: L 0 = { M : M naccepte pas M } On pourrait aussi écrire ce langage comme L 0 = {w: M w naccepte pas w}. La définition semble étrange: on demande le résultat de lexécution de M sur M.

9 Théorème Soit L 0 le langage L 0 = { M : M naccepte pas M }. L 0 nest pas Turing-acceptable. Attention, la définition peut sembler étrange.

10 Démonstration La preuve est une preuve par contradiction. Supposons au contraire quil existe une machine de Turing N qui accepte L 0. Appliquons notre encodage: la machine N peut alors être encodée par le mot N.

11 Question A-t-on N L(N)? Est-ce que N accepte sa propre description? 1.Supposons que oui. Puisque L 0 = L(N), on a N L 0. Par définition de L 0, cela veut dire que naccepte pas N, et donc que N nest pas dans L(N). Cest une contradiction; on ne peut donc pas avoir N L(N). Examinons lautre possibilité.

12 A-t-on N L(N)? Supposons que non (cest-à-dire supposons que N L(N). Puisque L 0 = L(N), on a N. Par définition de L 0, cela veut dire que N accepte N, et donc que N L(N). Cest une contradiction; on ne peut donc pas non plus avoir N L(N).

13 Comme nous ne pouvons avoir ni N L(N) ni N L(N), cela nous force à conclure que la supposition initiale est erronée. Il nexiste donc pas de machine de Turing qui puisse reconnaître L 0. Cela veut dire quil existe un langage qui nest pas Turing acceptable et quon vient den exhiber un.

14 Théorème Si L est décidable alors son complément L c est également décidable.

15 Théorème Si L est Turing acceptable et si son complément L c est également Turing acceptable alors le langage L est décidable.

16 Théorème Soit L 0 le langage L 0 = { M : M naccepte pas M }. L 0 nest pas Turing-acceptable.

17 Théorème Dans un langage plus proche de la programmation: Soit L 0 le langage L 0 = { M : M est le code source dun programme M qui naccepte pas M }. L 0 nest reconnaissable par aucun programme.

18 Preuve Supposons quun tel programme existe et appelons le N. Soit N le code source de N. On a L(N) = L 0. Que se passe-t-il si on exécute N sur son code source? –Si N accepte son code, on a dune part N L(N) = L 0 mais aussi N L 0 par définition de L 0. Contradiction! –Si N naccepte pas son code, on a dune part N L(N) = L 0 mais aussi N L 0 par définition de L 0. Contradiction! Ces contradictions montrent quun tel N nexiste pas.

19 Le problème de larrêt On a vu que le problème L 0 = { M : M est une m.t. qui accepte M } nest pas Turing-acceptable. Le problème de larrêt est le nom qui est généralement attribué au langage suivant: L h = { M : M accepte M }

20 Remarques Le problème de larrêt est Turing-acceptable car L h = L(N) où N est lalgorithme: N = Entrée M ; 1.Simuler M sur M. Si arrêt et acceptation alors accepter M. Si arrêt et rejet alors rejeter M Le nom de problème de larrêt est parfois réservé aux langages L h = { M : M sarrête sur lentrée M } ou L h = { M : M une m.t. qui sarrête sur lentrée } qui ont exactement les mêmes propriétés.

21 Théorème Le problème de larrêt est indécidable.

22 Preuve Montrons ce résultat par contradiction. Supposons que L h est décidable et montrons qualors, le langage L 0 est décidable également. Rappel L 0 = { M : M naccepte pas M } et donc L 0 = L h c. Puisque le complément dun langage décidable est décidable, alors L 0 est décidable, ce qui est une contradiction.

23 Un autre problème indécidable Soit NV MT = { : M une m.t. et L(M) } Nous allons montrer que ce langage nest pas décidable. Idée clé: Si NV MT est décidable alors le problème de larrêt est également décidable.

24 Démonstration Supposons que NV MT est décidable grâce à la machine de Turing R. On peut définir pour chaque machine de Turing M une machine de Turing S M comme suit: S M = « Entrée x: 1.Si x 0 alors rejeter x ; 2.Si x = 0 alors simuler M sur et accepter x ssi M accepte ; » Donc si M accepte on a L(S M ) = {0}. Par contre si M naccepte pas on a L(S M ) =.

25 Notez aussi quil est facile de construire la machine S M à partir de. Que fait alors la machine de Turing suivante? T = « Entrée : 1.Construire la machine S M et produire ; 2.Simuler R sur lentrée et accepter si R accepte mais rejeter si R rejette ; »

26 Considérons deux cas. 1.Si M accepte alors L(S M ) = {0}. Ce langage nest pas vide donc R va accepter et T accepte. 2.Si M naccepte pas alors L(S M ) = donc R va rejeter et T rejette. Donc L(T) = L h. Mais T termine toujours car R est un décideur. Donc L h est décidable. Contradiction! Donc NV TM nest pas décidable.

27 Exemple relié Montrons que le langage K nest pas décidable. K = { M : Lorsque M reçoit en entrée, M écrit hello world sur son ruban puis sarrête.} Supposons quil existe une m.t. N qui étant donnée M sarrête toujours et accepte ssi la machine M a la propriété désirée. Nous allons utiliser cette machine N pour créer une machine N qui accepte L h.

28 On veut construire N telle que L(N) = L h. Cette machine devrait prendre en entrée une description M de machine de Turing et sarrêter toujours. Elle doit répondre oui ssi M accepte M N = Entrée M ; 1.Modifier la description M pour créer une machine la description M dune machine qui sarrête immédiatement si lentrée est non-vide et qui lorsque son entrée est simule dabord M sur M. Lorsque la simulation montre que M accepte, M efface son ruban, écrit hello world et sarrête. 2.Simuler le décideur N sur lentrée M. Si N accepte M alors accepter. Sinon rejeter.

29 Analysons le comportement de N. 1.Si M L h alors la modification de M va donner une machine M qui sarrête et écrit hello world. Donc M est accepté par N et ainsi N accepte M. 2.Mais si M L h alors la modification de M va donner un M qui est rejeté par N. Ainsi, N va également sarrêter et rejeter M Donc N est un décideur pour L h, ce qui est une contradiction.

30 On a donc une série dinclusions strictes: Langages réguliers (a* b*), {w: w contient au moins 2 a}, etc. Langages non-contextuels {a n b n : n N}, ensemble des palindromes, etc. Langages décidables {a n b n c n : n N}, { : M un automate fini et L(M) } Langages Turing-acceptables L h = { : M une m.t. et M accepte } Langages non-acceptables { : M une m.t. et M naccepte pas }, NV TM

31 Exemple plus concret Fonctionnement des logiciels anti-virus. 1.Vérifie si lordinateur contient un des programmes dune liste de programmes considérés comme dangereux. 2.Avertit lutilisateur lorsquune action potentiellement malicieuse est effectuée par un programme non-autorisé. Idéal: un logiciel anti-virus qui avant lexécution dun programme décide si oui ou non ce programme tentera une action considérée dangereuse. Malheureusement impossible.

32 Fonctions calculables Définition: Une fonction f:{0,1}* {0,1}* est calculable si il existe une machine de Turing qui lorsquelle démarre avec la configuration w … sarrête dans la configuration f(w) …

33 Exemple Les fonctions suivantes sont calculables: f(w) = ww f(w) = w r Ces deux exemples sont très simples (exercice: construisez les machines de Turing qui calculent ces fonctions.)

34 Exemple La fonction f suivante est calculable: Si w nest pas lencodage dune machine de Turing alors f(w) =. Si w = alors f(w) = où N M est une machine de Turing qui accepte xx si M accepte x.

35 Preuve Voici une grossière description dune machine de Turing T qui calcule f. T = « Entrée : 1.Bâtir une machine N M qui effectue la tâche suivante N M = « Entrée x: Simuler M sur xx et accepter si M accepte; » 2. Retourner N M ;»

36 Réductions Soient L et K deux langages de {0,1}*. Le langage L se réduit au langage K (dénoté L m K) sil existe une fonction calculable f: {0,1}* {0,1}* telle que w L f(w) K. En dautres mots, la fonction f nous permet de transformer une question de type L en une question de type K.

37 Exemple Le langage L = {0 n 1 n : n N} se réduit au langage K = {0 n 1 2n 0 n : n N}. Considérons la fonction f: {0,1}* {0,1}* qui donne f(w) = ww r. Si w est dans L alors w = 0 n 1 n pour un certain n et donc ww r = 0 n 1 2n 0 n. Ainsi, f(w) K. Par contre si w L alors on a forcément f(w) K

38 Théorème Si K est un langage décidable et si L m K alors L est aussi décidable. Si K est un langage Turing acceptable et si on a L m K alors L est aussi Turing acceptable.

39 Preuve Supposons que K peut être accepté par la machine de Turing M. Nous allons construire une machine T qui accepte L grâce à la fonction calculable f qui réduit L à K. T = « Entrée x: 1.Calculer f(x); 2.Simuler M sur f(x). Si M accepte f(x) alors T accepte x. Si M rejette x alors T rejette x; »

40 Que fait T? Si x L alors f(x) K par la définition de la réduction. Donc M accepte f(x) et donc T accepte x. Si x L alors f(x) K parce que f définit une réduction de L à K. Donc M naccepte pas f(x) et donc T naccepte pas x. L(T) = L.

41 La machine T sarrête-t-elle toujours? Létape 1 (calcul de f) se termine toujours car f est calculable. À létape 2, si M poursuit une éxécution infinie sur f(x) alors T simule M indéfiniment. Sinon, T sarrête après un nombre fini détapes. Donc si M est un décideur, T est un décideur. Donc on peut conclure: K décidable L décidable K Turing-acceptable L Turing-acceptable

42 Corollaire Si L est un langage non-décidable et si L m K alors K est non-décidable. Si L est un langage qui nest pas Turing- acceptable et si L m K alors K nest pas Turing acceptable.

43 Ce corollaire est très utile pour démontrer quun problème K nest pas décidable (ou pas Turing acceptable). À condition de bien lutiliser! Pour obtenir notre contradiction, il faut montrer quil existe une réduction dun langage non- décidable L vers notre cible K et non linverse.

44 Exemple Je narrive pas à décider sil va pleuvoir demain. Il est clair que décider sil va pleuvoir demain est un problème plus simple que de voir lavenir. Conclusion: je ne peux pas voir lavenir?

45 Exemple Le langage REG TM = { : M est une mt et L(M) est un langage régulier} est indécidable. Pour le montrer, nous allons montrer quil existe une réduction du langage indécidable L h à REG TM.

46 Nous voulons trouver une fonction calculable f telle que Si est dans L h alors f( ) est dans REG TM. Si nest dans L h alors f( ) nest pas dans REG TM. Autrement dit Si M accepte alors f( ) est la description dune mt N telle que L(N) est régulier Si M naccepte pas alors f( ) est la description dune mt N telle que L(N) nest pas régulier.

47 Pour chaque machine M, considérons la machine N M suivante: N M = « Entrée x: 1.Si x = 0 n 1 n pour un certain n alors N accepte x; 2.Sinon, simuler M sur. Si M accepte alors N M accepte x; » Que fait N M ? Si M accepte alors N M accepte tous les x, soit à létape 1, soit à létape 2. Donc L(N M ) = {0,1}*, un langage régulier. Si M naccepte pas alors, N M ne peut accepter x que dans létape 1. Donc L(N M ) = {0 n 1 n : n N}, un langage non-régulier.

48 Étant donné une description dune machine de Turing M, on peut facilement calculer la description de la machine N M. Donc la fonction f définie par f( ) = est une fonction calculable. Si M accepte alors est dans REG TM. Si M naccepte pas alors nest pas dans REG TM. Donc L h REG TM. Daprès le corollaire, puisque L h nest pas décidable, alors REG TM nest pas décidable.

49 Exemple Le langage REG TM = { : M est une mt et L(M) est un langage régulier} nest pas non plus Turing-acceptable. Pour le montrer, nous allons montrer quil existe une réduction du langage non-acceptable L 0 à REG TM.

50 Nous voulons trouver une fonction calculable f telle que Si est dans L 0 alors f( ) est dans REG TM. Si nest dans L 0 alors f( ) nest pas dans REG TM. Autrement dit Si M naccepte pas alors f( ) est la description dune mt N M telle que L(N M ) est régulier Si M accepte alors f( ) est la description dune mt N M telle que L(N M ) nest pas régulier.

51 Pour chaque machine M, considérons la machine N M suivante: N M = « Entrée x: 1.Si x 0 n 1 n pour un certain n alors N rejette x; 2.Sinon, simuler M sur. Si M accepte alors N M accepte x; » Que fait N M ? Si M accepte alors N M accepte tous les x qui non pas été rejetés à létape 1. Donc L(N M ) = {0 n 1 n : n N}, un langage non-régulier. Si M naccepte pas alors, N M ne peut accepter x ni à létape 1 ni à létape 2. Donc L(N M ) =, un langage régulier.

52 Étant donné une description dune machine de Turing M, on peut facilement calculer la description de la machine N M. Donc la fonction f définie par f( ) = est une fonction calculable. Si M accepte (donc si nest pas dans L 0 ) alors L(N M ) = {0 n 1 n : n N} donc nest pas dans REG TM. Si M naccepte pas alors est dans REG TM. Donc L 0 REG TM. Daprès le corollaire, puisque L 0 nest pas acceptable, alors REG TM nest pas acceptable.

53 Exercices Montrez que ces langages ne sont pas décidables. NC TM = { : M est une mt et L(M) est non- contextuel} ACC TM = { #w: M est une mt et M accepte w} Montrez aussi que le premier langage nest pas Turing-acceptable.

54 Problèmes décidables EQ REG = { : M 1,M 2 des automates finis et L(M 1 ) = L(M 2 )} Ce problème est décidable.

55 Preuve La machine de Turing suivante décide EQ REG. T = « Entrée : 1.Construire lautomate N reconnaissant lunion de L(M 1 ) et du complément de L(M 2 ). 2.Tester si L(N) = *. Sinon rejeter lentrée. 3. Construire lautomate N reconnaissant lunion de L(M 2 ) et du complément de L(M 1 ). 4.Tester si L(N) = *. Sinon rejeter lentrée. 5. Accepter lentrée. »

56 Remarques La plupart des problèmes de décision reliés aux automates finis sont décidables. La plupart des problèmes de décision reliés aux machines de Turing sont indécidables Seuls certains problèmes à propos des grammaires non-contextuelles sont décidables.

57 Exemples Le problème EQ GNC = { : G et H sont des grammaires non-contextuelles et L(G) = L(H)} est indécidable. Le problème TOUT GNC = { : G est non- contextuelle et L(G) = *} est indécidable. Le problème V GNC = { : G est non- contextuelle et L(G) = } est décidable.

58 Dautres problèmes indécidables Dixième problème de Hilbert: étant donné une équation à plusieurs variables et dont les coefficients sont des entiers, décider si léquation possède une solution dentiers. Posé au tournant du XXe siècle, résolu dans les années 70: cest indécidable!


Télécharger ppt "Indécidabilité. Encodage des machines de Turing On pourrait imaginer plusieurs conventions possibles pour encoder une machine de Turing. Cet encodage."

Présentations similaires


Annonces Google