Title: Indcidabilit
1Indécidabilité
2Un langage qui nest pas un langage à structures
de phrase
- Lencodage ci-dessus nous donne une fonction
surjective f N ? machines de Turing, pour un
alphabet ? donné. - Soit w ??. Notons Mw la machine f(w) cest la
machine avec alphabet ? dont lencodage est le
nombre longueur de w (siw nest pas lencodage
dune machine de Turing, prendre la machine
ci-dessus pour Mw). - Soit maintenant le langageL0 w Mw naccepte
pas w.
3Théorème
- Soit L0 le langage L0 w Mw naccepte pas w.
L0 nest pas Turing-acceptable.
4Démonstration
- La preuve est une preuve par contradiction.
Supposons au contraire quil existe une machine
de Turing M qui accepte L0.
5La machine M peut alors être encodée, selon la
technique de Brookshear, par un nombre binaire,
disons n. Il existe certainement une séquence w0
? ? telle que w0 n. La machine M
reconnaissant L0 est alors Mw0, et on a L0
L(Mw0).
6Question
- A-t-on w0 ? L(Mw0)?
- Supposons que oui. Puisque L0 L(Mw0), on a w0 ?
L0. Par définition de L0 , cela veut dire que Mw0
naccepte pas w0 , et donc que w0 ? L(Mw0). Cest
une contradiction on ne peut donc avoir w0 ?
L(Mw0). Examinons lautre possibilité.
7- A-t-on w0 ? L(Mw0)?
- Supposons que non (cest-Ã -dire supposons que w0
? L(Mw0)). Puisque L0 L(Mw0), on a w0 ? L0. Par
définition de L0 , cela veut dire que Mw0 accepte
w0 , et donc que w0 ? L(Mw0). Cest une
contradiction on ne peut donc avoir w0 ? L(Mw0).
8Comme nous ne pouvons avoir ni w0 ? L(Mw0) ni w0
? L(Mw0), cela nous force à conclure que la
supposition initiale est erronée. Il nexiste
donc pas de machine de Turing qui puisse
reconnaître L0. Cela veut dire quil existe un
langage qui nest pas Turing acceptable et quon
vient den exhiber un.
9- Que se passe-t-il si lon donne ?(M) en entrée Ã
M? Ou bien M sarrête ou bien elle ne sarrête
pas (pas très fort comme résultat). Soit
maintenantLh ?(M) M accepte ?(M) Lh
contient les descriptions des machines de Turing
qui sarrêtent normalement lorsque leur séqeunce
dentrée est ?(M).
10Question
- Est-ce que Lh est décidable? À cause de la
définition de Lh, on appelle ce problème le
problème de larrêt.
11Théorème
12Démonstration
- Montrons-le par contradiction. Supposons quil
existe une machine de Turing Mh qui décide Lh.
Modifions Mh pour quelle réponde par ? 1 ? ?
et ? 0 ? ? - au lieu de ? O ? ? et ? N ? ?
- respectivement. Appelons cette machine modifiée
Mh. Lalphabet de ruban de Mh est 0, 1, ?.
13- Soit la machine M0 avec lalphabet de ruban ?0
0, 1, ? définie ainsi
M0 arrêtesi et seulement si Mh arrête dans la
configuration ? 0 ? ? si et seulement si Mh
arrête dans la configuration ? N ? ?
14- Est-ce que M0 sarrête avec lentrée ?(M0)?
- Supposons que oui. Alors, par définition de Lh,
?(M0) ? Lh, doù Mh sarrête avec un O, doù Mh
sarrête avec un 1, doù M0 ne sarrête pas.
Contradiction. Examinons lautre possibilité. - Supposons que non. Alors, ?(M0) ? Lh, doù Mh
sarrête avec N, doù Mh sarrête avec un 0,
doù M0 sarrête. Contradiction. - Puisque M0 ne peut ni sarrêter ni ne pas
sarrêter, il faut abandonner lhypothèse
initiale quil existe une machine de Turing Mh
décidant Lh.
15Descriptions de MT
- Pour parler des enjeux de décidabilité, il est
pratique de décrire les machines de Turing de
façon plus grossière à laide de pseudo-code. On
suivra les conventions suivantes - On dénote ltMgt lencodage binaire dune machine de
Turing. - Lalphabet est toujours binaire 0,1.
16- Le fonctionnement dune machine M est donné par
- M  Entrée x
- Étape 1
- Étape 2
- Â
- n. Étape nÂ
- Chaque étape décrit une opération simple quune
machine de Turing peut clairement effectuer. - Dans chaque étape on peut accepter lentrée x (la
machine sarrête en écrivant 1 sur le ruban) ou
rejeter cette entrée (la machine sarrête en
écrivant 0 sur le ruban). - On peut spécifier que x a une certaine forme, par
exemple en utilisant  Entrée ltNgt pour indiquer
que nos données sont interprétées comme la
description dune machine de Turing N.
17Exemple
- La machine suivante accepte le langage de larrêt
Lh. - T  Entrée ltMgt
- Simuler M sur ltMgt
- Si M accepte ltMgt alors T accepte ltMgtÂ
18Théorème
- Si L est décidable alors son complément Lc est
également décidable.
19Preuve
- Supposons que L est décidable grâce à la machine
de Turing T. - Considérons la machine suivante
- S  entrée w
- Simuler T sur w
- Si T accepte w alors rejeter w. Si T rejette w
alors accepter wÂ
20- Pour toute entrée w, la machine S simule T sur w
et comme T décide L, cette simulation se termine
toujours. Donc S sarrête toujours. - L(S) Lc car w est accepté par S ssi w est
rejeté par T. - Donc S décide le langage Lc.
21Théorème
- Si L est Turing acceptable et si son complément
Lc est également Turing acceptable alors le
langage L est décidable.
22Preuve
- Supposons que M et N sont des machines de Turing
telles que L(M) L et L(N) Lc. - Nous navons par contre pas de garantie que M et
N terminent les exécutions sur des mots quils
nacceptent pas.
23- Considérons la machine suivante.
- T  Entrée x
- Répéter étapes 2 et 3 jusquà larrêt
- Simuler une étape du calcul de M sur x. Si M
accepte x, alors T accepte x - Simuler une étape du calcul de N sur x. Si N
accepte x alors T rejette xÂ
24- Que fait T? Considérons deux cas
- Si x ? L alors M accepte x en un nombre fini
détapes. Donc T accepte x en un nombre fini
détapes. - Si x ?L alors on a x ? Lc. Donc N accepte x en un
nombre fini détapes. Donc T rejette x en un
nombre fini détapes. - ? T décide L.
25- Le langage Lh nest pas décidable mais est
Turing-acceptable. - Son complément L0 nest pas décidable mais nest
pas non plus Turing acceptable.
26Un autre problème indécidable
- Soit NVMT ltMgt M une m.t. et L(M) ? ?
- Nous allons montrer que ce langage nest pas
décidable. - Idée clé Si NVMT est décidable alors le problème
de larrêt est également décidable.
27Démonstration
- Supposons que NVMT est décidable grâce à la
machine de Turing R. - On peut définir pour chaque machine de Turing M
une machine de Turing SM comme suit - SM  Entrée x
- Si x ? 0 alors rejeter x
- Si x 0 alors simuler M sur ltMgt et accepter x
ssi M accepte ltMgt - Donc si M accepte ltMgt on a L(SM) 0. Par
contre si M naccepte pas ltMgt on a L(SM) ?.
28- Notez aussi quil est facile de construire la
machine SM Ã partir de ltMgt. - Que fait alors la machine de Turing suivante?
- T  Entrée ltMgt
- Construire la machine SM et produire ltSMgt
- Simuler R sur lentrée ltSMgt et accepter ltMgt si R
accepte ltSMgt mais rejeter ltMgt si R rejette
ltSMgtÂ
29- Considérons deux cas.
- Si M accepte ltMgt alors L(SM) 0. Ce langage
nest pas vide donc R va accepter ltSMgt et T
accepte ltMgt. - Si M naccepte pas ltMgt alors L(SM) ? donc R va
rejeter ltSMgt et T rejette ltMgt. - Donc L(T) Lh. Mais T termine toujours car R est
un décideur. Donc Lh est décidable. - Contradiction! Donc NVTM nest pas décidable.
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
- an bn n ? N, ensemble des palindromes, etc.
- Langages décidables
- an bn cn n ? N, ltMgt M un automate fini et
L(M) ??? - Langages Turing-acceptables
- Lh ltMgt M une m.t. et M accepte ltMgt
- Langages non-acceptables
- ltMgt M une m.t. et M naccepte pas ltMgt, NVTM
31Fonctions calculables
- Définition Une fonction f0,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)??
32Exemple
- Les fonctions suivantes sont calculables
- f(w) ww
- f(w) wr
- Ces deux exemples sont très simples (exercice
construisez les machines de Turing qui calculent
ces fonctions.)
33Exemple
- La fonction f suivante est calculable
- Si w nest pas lencodage dune machine de Turing
alors f(w) ??. - Si w ltMgt alors f(w) ltNMgt où NM est une
machine de Turing qui accepte xx si M accepte x.
34Preuve
- Voici une grossière description dune machine de
Turing T qui calcule f. - T  Entrée ltMgt
- Bâtir une machine NM qui effectue la tâche
suivante - NM  Entrée x
- Simuler M sur xx et accepter si M accepteÂ
- 2. Retourner NMÂ
35Ré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.
36Exemple
- Le langage L 0n1n n ? N se réduit au langage
K 0n12n0n n ? N. - Considérons la fonction f 0,1 ? 0,1 qui
donne f(w) wwr. - Si w est dans L alors w 0n1n pour un certain n
et donc wwr 0n12n0n. Ainsi, f(w) ? K. - Par contre si w?L alors on a forcément f(w) ?K
37Thé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.
38Preuve
- 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
- Calculer f(x)
- Simuler M sur f(x). Si M accepte f(x) alors T
accepte x. Si M rejette x alors T rejette xÂ
39- 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.
40- 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
41Corollaire
- 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.
42- 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.
43Exemple
- 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?
44Exemple
- Le langage REGTM ltMgt 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 Lh à REGTM.
45- Nous voulons trouver une fonction calculable f
telle que - Si ltMgt est dans Lh alors f(ltMgt) est dans REGTM.
- Si ltMgt nest dans Lh alors f(ltMgt) nest pas dans
REGTM. - Autrement dit
- Si M accepte ltMgt alors f(ltMgt) est la description
dune mt N telle que L(N) est régulier - Si M naccepte pas ltMgt alors f(ltMgt) est la
description dune mt N telle que L(N) nest pas
régulier.
46- Pour chaque machine M, considérons la machine NM
suivante - NM  Entrée x
- Si x 0n1n pour un certain n alors N accepte x
- Sinon, simuler M sur ltMgt. Si M accepte ltMgt alors
NM accepte x - Que fait NM ?
- Si M accepte ltMgt alors NM accepte tous les x,
soit à létape 1, soit à létape 2. Donc L(NM )
0,1, un langage régulier. - Si M naccepte pas ltMgt alors, NM ne peut accepter
x que dans létape 1. Donc L(NM ) 0n1n n ?
N, un langage non-régulier.
47- Étant donné une description ltMgt dune machine de
Turing M, on peut facilement calculer la
description lt NM gt de la machine NM. - Donc la fonction f définie par f(ltMgt) ltNMgt est
une fonction calculable. - Si M accepte ltMgt alors ltNMgt est dans REGTM.
- Si M naccepte pas ltMgt alors ltNMgt nest pas dans
REGTM. - Donc Lh ? REGTM.
- Daprès le corollaire, puisque Lh nest pas
décidable, alors REGTM nest pas décidable.
48Exemple
- Le langage REGTM ltMgt 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 L0 Ã
REGTM.
49- Nous voulons trouver une fonction calculable f
telle que - Si ltMgt est dans L0 alors f(ltMgt) est dans REGTM.
- Si ltMgt nest dans L0 alors f(ltMgt) nest pas dans
REGTM. - Autrement dit
- Si M naccepte pas ltMgt alors f(ltMgt) est la
description dune mt NM telle que L(NM) est
régulier - Si M accepte ltMgt alors f(ltMgt) est la description
dune mt NM telle que L(NM) nest pas régulier.
50- Pour chaque machine M, considérons la machine NM
suivante - NM  Entrée x
- Si x ? 0n1n pour un certain n alors N rejette x
- Sinon, simuler M sur ltMgt. Si M accepte ltMgt alors
NM accepte x - Que fait NM ?
- Si M accepte ltMgt alors NM accepte tous les x qui
non pas été rejetés à létape 1. Donc L(NM )
0n1n n ? N, un langage non-régulier. - Si M naccepte pas ltMgt alors, NM ne peut accepter
x ni à létape 1 ni à létape 2. Donc L(NM ) ?,
un langage régulier.
51- Étant donné une description ltMgt dune machine de
Turing M, on peut facilement calculer la
description lt NM gt de la machine NM. - Donc la fonction f définie par f(ltMgt) ltNMgt est
une fonction calculable. - Si M accepte ltMgt (donc si ltMgt nest pas dans L0)
alors L(NM) 0n1n n ? N donc ltNMgt nest pas
dans REGTM. - Si M naccepte pas ltMgt alors ltNMgt est dans REGTM.
- Donc L0 ? REGTM.
- Daprès le corollaire, puisque L0 nest pas
acceptable, alors REGTM nest pas acceptable.
52Exercices
- Montrez que ces langages ne sont pas décidables.
- NCTM ltMgt M est une mt et L(M) est
non-contextuel - ACCTM ltMgtw M est une mt et M accepte w
- Montrez aussi que le premier langage nest pas
Turing-acceptable.
53Problèmes décidables
- EQREG ltM1,M2gt M1,M2 des automates finis et
L(M1) L(M2) - Ce problème est décidable.
54Preuve
- La machine de Turing suivante décide EQREG.
- T  Entrée ltM1,M2gt
- Construire lautomate N reconnaissant lunion de
L(M1) et du complément de L(M2). - Tester si L(N) ?. Sinon rejeter lentrée.
- Construire lautomate N reconnaissant lunion
de L(M2) et du complément de L(M1). - Tester si L(N) ?. Sinon rejeter lentrée.
- Accepter lentrée.Â
55Remarques
- 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.
56Exemples
- Le problème EQGNC ltG,Hgt G et H sont des
grammaires non-contextuelles et L(G) L(H) est
indécidable. - Le problème TOUTGNC ltGgt G est non-contextuelle
et L(G) ? est indécidable. - Le problème VGNC ltGgt G est non-contextuelle
et L(G) ? est décidable.
57Dautres 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!
58- Le programme X est il malicieux. (si on prend une
définition très générale de  malicieux ) - Lénoncé arithmétique P est-il un théorème. (Par
exemple, le théorème de Fermat serait donné par P
??n ? 3??x,y,z xn yn ? zn) - Life est indécidable.