1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen...

77
1 Chapitre 3 Chapitre 3 Machines de Turing

Transcript of 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen...

Page 1: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

1

Chapitre 3Chapitre 3

Machines de Turing

Page 2: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Qu’est-ce qu’un algorithme?Qu’est-ce qu’un algorithme?

1. Quelque chose qui peut être à l’examen de IFT-17588.

2. Quelque chose qui peut être programmé. (Mais que veut dire “programmer”?)

3. Un ensemble fini d’instructions permettant d’effectuer une tâche donnée.

4. Une recette finie que l’on peut suivre pour obtenir en temps fini une réponse à une question donnée.

5. Je ne sais pas ce que c’est mais je sais faire la différence entre un algorithme et une vache.

Page 3: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Quelques algorithmesQuelques algorithmes

• Comment additionner/multiplier deux entiers avec plus que 1 chiffre.

• Algorithme d’Euclide (300 av. J.C) pour calculer le plus grand diviseur commun de deux entiers.

• Algorithme pour déterminer si une équation ax2 + bx + c = 0 admet une solution.

• Historiquement, les algorithmes ont d’abord été des façons systématiques d’effectuer une série de calculs afin de résoudre une question mathématique.

Page 4: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Comment formaliser la notion?Comment formaliser la notion?

• Une notion formelle d’algorithme devrait répondre aux critères suivants:

1. La description d’un algorithme est finie. On peut également désirer que cette description soit une liste d’instructions.

2. Chaque étape d’exécution peut être effectuée en temps fini.

3. Un algorithme reçoit une entrée finie et retourne une réponse de longueur finie.

4. L’exécution d’un algorithme se termine toujours après un nombre fini d’étapes.

Page 5: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Essais de définitionEssais de définition

• Algorithme: programme C de longueur finie.

Pas si mal. Quelques problèmes quand même:

1. Pourquoi pas en Java, en COBOL, en Lisp?2. Où est la garantie que l’algorithme

termine toujours son éxécution après un nombre fini d’étapes?

Page 6: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Espoirs mathématiques fin XIXeEspoirs mathématiques fin XIXe

• Existe-t-il un algorithme qui étant donné un énoncé logique permet de décider si cet énoncé est vrai ou pas.

Énoncé de Fermat

n 3 x, y, z > 0: xn + yn zn Subtil algorithme

vrai

faux

Page 7: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Gödel a démontré qu’il existe des vérités mathématiques qu’on ne peut pas démontrer: théorème d’incomplétude.

• Alan Turing définit en 1934 un processus précis qui est assez général pour représenter toute méthode bien définie pour résoudre des problèmes de façon méthodique et automatisable. De là est né le concept de la machine de Turing.

• Machines de Turing formalisation minimaliste de la notion d’algorithme.

• Thèse de Turing ou Church-Turing : toute notion « raisonnable » d’algorithme est équivalente à la notion de machine de Turing.

Bref historique

Page 8: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Voici une représentation schématique d’une machine de Turing:

ruban

Mécanisme de contrôle et indicateur d’état

Comme pour les automates finis, le ruban est infini vers la droite.

Page 9: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Différences avec les automates finisDifférences avec les automates finis

1. La tête peut se déplacer dans les deux sens.

2. C’est une tête de lecture/écriture.3. Il y a un seul état final, qui est un

état d’arrêt (aussitôt que la machine l’atteint, elle s’arrête).

Page 10: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• À chaque étape, la machine de Turing

1. lit un symbole ;2. fait une transition d’état (elle peut

rester dans le même état) ;3. fait l’une des trois actions

suivantes :• écriture d’un symbole ;• déplacement de la tête vers la droite ;• déplacement de la tête vers la gauche.

Page 11: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ExempleExemple

• Voici un diagramme de transitions d’une machine de Turing:

h

a/R

b/R

/a

est l’état initial.

h est l’état final (état d’arrêt).

/a signifie lire , puis écrire a.

a/R signifie lire a, puis déplacer la tête vers la droite.

b/R signifie lire b, puis déplacer la tête vers la droite

Page 12: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

DéfinitionDéfinition

• Une machine de Turing est un sixtuplet ( S, , , , , h) où

1. S est un ensemble fini d’états.2. est l’alphabet de la machine ou alphabet

d’entrée (les séquences d’entrée sont formées avec cet alphabet). L’espace libre (ou blanc), symbolisé par , ne fait pas partie de , i.e. qu’on a .

Page 13: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

3. est l’alphabet du ruban. On a et .4. est la fonction de transition

: (S - {h}) S ({L,R}) où L, R .

La signification de est la suivante: (p, x) = (q, y) (où y ) : si dans l’état p le symbole

sous la tête est x, remplacer x par y et passer dans l’état q.

(p, x) = (q, L) : si dans l’état p le symbole sous la tête est x, déplacer la tête d’une case vers la gauche et passer dans l’état q.

(p, x) = (q, R) : si dans l’état p le symbole sous la tête est x, déplacer la tête d’une case vers la droite et passer dans l’état q.

Page 14: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

– Puisque est une fonction, la définition précédente est celle d’une machine déterministe, i.e. non ambiguë et totalement définie (l’état h, d’où n’origine aucune transition, a été enlevé de S avant de former le produit cartésien qui est le domaine de .)

5. est l’état initial. Dans les diagrammes de transitions, il sera indiqué de la même manière que pour les automates finis.

6. h est l’état final (état d’arrêt). Dans les diagrammes de transitions, il sera indiqué par un double cercle, comme d’habitude.

Page 15: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

RemarqueRemarque

• Une machine de Turing peut :1. se rendre à l’état final et arrêter;2. boucler indéfiniment;3. terminer anormalement en

déplaçant la tête à gauche du ruban.

Page 16: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

RemarquesRemarques

• On suppose que représente une case inoccupée du ruban : initialement, toutes les cases autres que celles qui contiennent la séquence d’entrée contiennent un .

• Notez aussi qu’il y a un seul état final.

Page 17: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ExempleExemple

• Avec la machine suivante on a:

h

a/R

b/R

/a

S = {, h} = {a, b} = {a, b, }(, a) = (, R)(, b) = (, R)(, ) = (h, a)

Tant que cette machine rencontre des a et des b, elle déplace la tête vers la droite. Lorsqu’elle rencontre un blanc, elle passe dans l’état final, en remplaçant ce blanc par un a.

Page 18: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

DéfinitionDéfinition

• Une configuration d’une machine de Turing, c’est la donnée d’un état et une description du contenu du ruban avec une indication de la position de la tête de lecture.

• La description du ruban se fait en donnant la séquence de symboles du ruban en commençant par la première case.

• Le symbole sous la tête de lecture/écriture est souligné.

• Des … à droite de cette séquence indiquent que le reste du ruban contient des blancs.

Page 19: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ExempleExemple

• Une configuration possible de la machine suivante est

h

a/R

b/R

/a abba…

L’état est . Le premier symbole du ruban est le a de gauche; il est suivi d ’un b,puis d ’un autre b sur lequel se trouve la tête de lecture de la machine.

Page 20: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Supposons que la configuration initiale soit abba…

Les configurations successives sont alors:

h

a/R

b/R

/a

État Ruban

abba… abba… abba… abba…h abbaa… arrêt

Page 21: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ExerciceExercice

• Supposons que la configuration initiale de la machine de Turing suivante soit 1 aaa… Donnez les configurations successives à cette configuration initiale.

13 a/R

/Ra /R

/ 2

Page 22: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Solution Solution

13 a/R

/Ra /R

/ 2

État Ruban

1 aaa…

2 aaa…

1 aaa…

2 aaa…

1 aaa…

3 aaa…

Page 23: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ExerciceExercice

• Construisez une machine de Turing M = (S, {a, b}, {a, b, }, , , h) qui arrête si et seulement si le patron abab se trouve sur le ruban à droite de la position initiale de la tête de lecture. Donnez la suite de configurations si la configuration initiale est aabab… Que se passe-t-il si la configuration initiale est ab ?

Page 24: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

SolutionSolution

1 52 3 4

b/R/R

a/R

/R

b/R a/R b/R

b/R/R

a/R

/R

a/R

= 1, h = 5

Page 25: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

État Ruban

1 aabab…

2 aabab…

1 aabab…

2 aabab…

3 aabab…

4 aabab…

5 aabab…

arrêt

Page 26: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

État Ruban

1 ab…

2 ab…

3 ab…

1 ab…

boucle infinie

Page 27: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Avantages et désavantagesAvantages et désavantages

• Simplicité du modèle. Chaque instruction est vraiment réduite à sa plus simple expression.

• Malgré la simplicité, possède une très grande puissance de calcul.

• Défaut résultant: pour décrire avec une machine de Turing un processus compliqué, la machine est forcément très complexe.

Page 28: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Machines de Turing calculant une Machines de Turing calculant une fonctionfonction

• Les machines de Turing que l’on a présentées sont apparemment conçu pour simplement répondre “oui” ou “non”.

• On peut considérer plus généralement des MT qui calculent des fonctions, c’est à dire que leur sortie est une chaîne de caractères.

• Plusieurs façons possibles de formaliser cette notion. Par exemple, on peut considérer le contenu du ruban (jusqu’au premier ) après l’arrêt comme étant la valeur calculée par la machine.

Page 29: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Voici une représentation schématique d’une machine de Turing:

ruban

Mécanisme de contrôle et indicateur d’état

Comme pour les automates finis, le ruban est infini vers la droite.

Page 30: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Thèse de Church-TuringThèse de Church-Turing

• Facile à croire: tout programme en C peut être réécrit comme un programme en Java qui fait la même tâche.

• Facile à croire: tout programme en C peut-être réécrit comme un programme en assembleur qui fait la même tâche.

• Facile à croire: tout calcul effectué par une machine de Turing peut-être effectué par un programme en C.

Page 31: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Thèse de Church-TuringThèse de Church-Turing

• N’importe quel calcul automatique peut-être effectué à l’aide d’une machine de Turing.

• En d’autres mots: la notion intuitive d’algorithme correspond exactement à la notion de machine de Turing.

Page 32: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• À cause de la thèse de Church-Turing, nous ne détaillerons pas les constructions de machines de Turing. Pour montrer qu’une tâche de calcul peut-être effectué à l’aide d’une machine de Turing M, on se contentera– soit d’une description informelle du

fonctionnement de M,– soit d’une description de haut niveau

d’un algorithme pour effectuer la tâche de calcul.

Page 33: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ExemplesExemples

• Nous avons construit une MT qui acceptait le langage {anbncn: n N}.

• On aurait pu simplement écrire cette description informelle.

• M = “entrée w;1. Vérifier que w a*b*c*;2. replacer la tête à l’extrème gauche et effacer

un a, trouver le prochain b et l’effacer, trouver le prochain c et l’effacer. Si on ne peut trouver de b ou de c, arrêter et rejeter;

3. Recommencer 2 tant qu’il reste des a. S’il reste un b ou un c après l’effacement des a, arrêter et rejeter. Sinon, arrêter et accepter.”

Page 34: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

... ou cette description “haut-niveau” d’un algorithme pour cette tâche.

M = “Entrée w;1. Vérifier que w a*b*c*;2. Compter le nombre de a, de b et de c

dans w. Si ces trois nombres sont égaux arrêter et accepter, sinon arrêter et rejeter.

Page 35: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• On peut aussi imaginer un langage de programmation très primitif qui correspond presque parfaitement aux machines de Turing.

• Un pointeur vers la mémoire, initialisé à 1.

• Mémoire constitué d’un nombre infini de blocs indexés 1, 2, 3, ... Chaque bloc contient un symbole de .

• Initialement, les k premières cases de mémoire contiennent les k symboles de l’entrée. Les autres contiennent .

Page 36: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Un programme est une liste finie d’instructions numérotées de 1 à t. Chaque instruction est un switch qui considère les valeurs possibles de l’instruction courante et du symbole sous le pointeur.

• Le résultat des différents cas est 1. L’écriture d’un symbole de dans le bloc

sous le pointeur.2. Possiblement pointeur:= pointeur + 1 ou

pointeur := pointeur – 1.3. Goto instruction ou Halt & accept ou

Halt & reject.

• Les instructions sont simplement les états de la machine et le pointeur la tête de lecture.

Page 37: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Définition de la reconnaissanceDéfinition de la reconnaissance

• Soit L un langage sur et w *. La séquence w est acceptée (ou reconnue) par la machine de Turing M = (S, , , , , h) si et seulement si M s’arrête normalement (dans l’état final) à la suite d’une exécution commençant dans la configuration w … Par exemple, avec w = abaa, la configuration initiale est abaa …c’est-à-dire …a b a a

État initial

Page 38: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Comme d’habitude, L(M) = {w : M accepte w } est le langage accepté (ou reconnu) par M. Si L = L(M) pour une machine de Turing M, on dit que L est Turing-acceptable ou récursivement énumérable. Ce dernier terme est le terme usuel; il reflète le fait que les séquences d’un tel langage peuvent être énumérées (listées) par une machine de Turing.

Page 39: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Définition équivalente de Définition équivalente de reconnaissancereconnaissance

• Voici une définition équivalente de reconnaissance par machine de Turing. Cette définition est plus utile pour faire certaines preuves.

• Acceptation avec message. Soit M une machine de Turing. M accepte une séquence w avec message si– Elle s’arrête dans la configuration O…lorsque w

L(M);– Elle ne s’arrête pas ou s’arrête anormalement ou

s’arrête dans une configuration autre que O… lorsque w L(M).

Page 40: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ThéorèmeThéorème

• L’acceptation par arrêt (i.e. la première définition d’acceptation) est équivalente à l’acceptation avec message.

1. Soit M = (S, , , , , h) une machine de Turing qui accepte par arrêt. Il existe une machine de Turing M’ = (S’, , ’, ’, ’, h’) qui accepte avec message et telle que L(M) = L(M’).

2. Soit M = (S, , , , , h) qui accepte avec message. Il existe une M’ = (S’, , ’, ’, ’, h’) qui accepte par arrêt telle que L(M) = L(M’).

Page 41: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Démonstration (aperçu)Démonstration (aperçu)

1. Soit M = (S, , , , , h) une machine de Turing qui accepte par arrêt. Il existe une machine de Turing M’ = (S’, , ’, ’, ’, h’) qui accepte avec message et telle que L(M) = L(M’).

Description informelle de M’:M’ = “Entrée w;

1. Suivre les mêmes étapes que M en marquant la case la plus à gauche du ruban et la case la plus à droite visitée lors du calcul.

2. Si M atteint l’état d’arrêt alors aller à la case la plus à droite et, de droite à gauche, remplacer tout les symboles du ruban par , écrire O sur la seconde case, revenir à la première case et arrêter.”

Page 42: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Démonstration (aperçu)Démonstration (aperçu)

1. Soit M = (S, , , , , h) une machine de Turing qui accepte avec message. Il existe une machine de Turing M’ = (S’, , ’, ’, ’, h’) qui accepte avec arrêt et telle que L(M) = L(M’).

Description informelle de M’:M’ = “Entrée w;

1. Suivre les mêmes étapes que M en marquant la case la plus à gauche du ruban et la case la plus à droite visitée lors du calcul.

2. Si M atteint l’état d’arrêt alors vérifier que la configuration est bien O ... . Si oui, arrêter. Sinon, rentrer dans une boucle infinie.”

Page 43: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Note: contrairement aux notes de cours, j’utiliserai plutôt la notion d’acceptation par message.

• Dans mes descriptions informelles j’utiliserai les mots clés: “arrêter et accepter” et “arrêter et rejeter”.

Page 44: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Machines de Turing à plusieurs Machines de Turing à plusieurs rubansrubans

• Considérons une machine de Turing à 2 rubans (la notion se généralise facilement à un nombre arbitraire de rubans).

…x y x x

… x y y

Page 45: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Une transition d’une telle machine dépend de l’état courant et de l’ensemble des symboles sous les têtes. Une transition consiste en– un changement d’état et– une écriture ou un déplacement sur

un seul ruban.

• La configuration initiale est w1 … pour le ruban 1 et … pour le ruban 2.

Page 46: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ThéorèmeThéorème

• Pour toute machine de Turing M avec k rubans (k N+), il y a une machine de Turing M’ à un ruban telle que L(M) = L(M’).

Page 47: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

DémonstrationDémonstration

• Donnons un aperçu de la preuve. Supposons que M a deux rubans. L’idée de la preuve est que M’ utilise des quadruplets pour encoder la même information sur un ruban unique.

Page 48: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Par exemple, ces deux rubans seraient représentés par le ruban suivant.

…x y x x

… x y y

# x y x x 1 x y y 1

La ligne 1 est le contenu du ruban 1; la ligne 2 indique la position de la tête de lecture/écriture du ruban 1; la ligne 3 est le contenu du ruban 2; la ligne 4 indique la position de la tête du ruban 2.

Page 49: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

# x y x x 1 x y y 1

M’ considère que chaque case de ce ruban contient un seul symbole. Le ruban contient le symbole # dans la première cellule. M’ s’en sert comme marqueur afin de simuler M.

Donc on ne gagne pas de puissance en utilisant des machines à plusieurs rubans.

Page 50: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Machines de Turing non Machines de Turing non déterministesdéterministes

• Soit = {0, 1, }. Considérons la machine suivante.

21 / R

31

0 / L1 / L / L

4

1 / 0 / 0 0 / R

Page 51: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

21 / R

31

0 / L1 / L / L

4

1 / 0 / 0 0 / R

Cette machine n’est pas déterministe:

1. Elle n’est pas totalement définie car

• Il n’y a pas de transitions pour 0 et dans l’état 1;

• Il n’y a pas de transitions pour 1 et dans l’état 4.

Page 52: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

4

21 / R

31

0 / L1 / L / L

1 / 0 / 0 0 / R

Elle est ambiguë car

• Il y a deux transitions possibles si le symbole courant est 1 dans l’état 1;

• Il y a deux transitions possibles si le symboles courant est dans l’état 2;

Page 53: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

DéfinitionDéfinition

• Tout comme une machine de Turing déterministe, une machine de Turing non déterministe est un sixtuplet (S, , , , , h); cependant la quatrième composante est une relation plutôt qu’une fonction; c’est-à-dire qu’on a

( S – {h}) S ( {L, R})plutôt que

: ( S – {h}) S ( {L, R}).

Page 54: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Définition (suite)Définition (suite)

• Le langage accepté par une machine de Turing non déterministe M est

L(M) = {w : M peut atteindre l’état final à partir de la configuration initiale w…}.

Page 55: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ThéorèmeThéorème

• Pour chaque machine de Turing non déterministe M, il existe une machine de Turing déterministe D telle que L(M) = L(D).

Page 56: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

DémonstrationDémonstration

Voici un aperçu de la preuve.La machine D a trois rubans.

1. Le ruban 1 contient la séquence d’entrée w.2. Le ruban 2 est un ruban de travail sur

lequel E copie w et essaie chacune des séquences d’exécution possibles.

3. Le ruban 3 contient une séquence d’exécution (séquence de transitions). Après l’essai d’une séquence, la séquence suivante est générée en ordre lexicographique.

Page 57: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Par exemple, la machine de Turing non déterministe ci-dessus a sept transitions; supposons qu’elles sont numérotées de 1 à 7. Les séquences d’exécution seraient1, 2, 3, 4, 5, 6, 7,1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7,2, 1, 2, 2, … 1, 1, 1, 1, 1, 2, 1, 1, 3,…

21 / R

31

0 / L1 / L / L

4

1 / 0 / 0 0 / R

Page 58: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Plusieurs de ces séquences de transitions ne correspondent pas à une exécution possible. Ce n’est pas grave; ces séquences incorrectes conduisent simplement à un rejet de la séquence d’entrée. L’important c’est de générer éventuellement n’importe quelle séquence possible. Si l’une des simulations conduit à l’état d’acceptation (ici, 3), D accepte.

Page 59: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

RemarqueRemarque

• L’ajout du non-déterminisme ne permet pas de reconnaître plus de langages. Cependant, on voit que l’acceptation d’une séquence w par D peut nécessiter un nombre d’étapes beaucoup plus grand que celui qui est nécessaire à M pour accepter w.

Page 60: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ThéorèmeThéorème

Les langages reconnus par les machines de Turing sont exactement les langages générés par les grammaires à structures de phrase.

Page 61: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Rappel: un langage L est Turing-acceptable s’il existe une machine de Turing M tel que étant donnée une entrée w– Si w L alors M s’arrête et accepte w.– Si w L alors M s’arrête et rejette w

ou ne s’arrête pas.

• La seconde condition pose problème car elle ne correspond pas à notre idée d’algorithme raisonnable.

Page 62: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ExempleExemple

• Le langage L = {a0 + a1x + ... + anxn : il existe x N+ tel que a0 + a1x + ... + anxn = 0}

• Montrons que ce langage est Turing-acceptable grâce à la machine M suivante.

• M = “Entrée a0 + a1x + ... + anxn;1. Initialiser x = 1;2. Si a0 + a1x + ... + anxn = 0 alors arrêter et accepter.

3. Sinon x := x+1.4. Répéter 2 et 3 tant que M n’arrête pas.”

Page 63: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Bien que L soit Turing-acceptable, on ne peut pas raisonnablement utiliser l’algorithme ci-dessus car si l’équation n’a aucune solution, notre algorithme roulera indéfiniment.

• En ce sens, la notion de Turin-acceptable ne correspond pas vraiment à ce que l’on “peut faire avec un ordinateur”.

• Comment résoudre ce problème? 1. S’assurer que la machine termine. (mais

comment faire ça?)2. Raffiner nos concepts.

Page 64: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

DéfinitionDéfinition

Un langage L est Turing-décidable (ou simplement décidable) s’il existe une machine de Turing M qui recevant w en entrée– s’arrête et accepte si w L.– s’arrête et rejette si w L.

Page 65: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Note: par définition, tout les langages décidables sont également des langages Turing-acceptables.

• Par contre, nous verrons que l’inverse n’est pas vrai.

Page 66: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ThéorèmeThéorème

Si L est un langage non-contextuel, alors L est un langage décidable.

Page 67: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

DémonstrationDémonstration

• Supposons que K est un langage non-contextuel et que G = (V, T, S, R) est une grammaire en forme normale de Chomsky telle que L(G) = K.

• On veut montrer qu’il existe une machine de Turing qui étant donné w s’arrête et accepte si w peut être généré par G et s’arrête et rejette si w ne peut être généré.

Page 68: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

• Description “haut-niveau” d’un algorithme.

M = “Entrée w;1. Définir k := |w|;2. Énumérer toutes les dérivations possibles

de longueur 2k – 1 dans G.3. Si une de ces dérivations génère w alors

arrêter et accepter. Sinon, arrêter et rejeter.”

Comme le nombre de dérivations de longueur 2k-1 est fini, cet algorithme finit toujours par s’arrêter.

Dans une grammaire en CNF, la dérivation d’un mot de longueur k prend exactement 2k-1 étapes.

Page 69: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

On a donc une série d’inclusions 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}, {<M>: M un automate fini et L(M) }

• Langages Turing-acceptablesLh = {<M>: M une m.t. et M accepte <M>}

• Langages non-acceptables {<M>: M une m.t. et M n’accepte pas <M>}, NVTM

Page 70: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Tous les langages

Turing-acceptables

Non-contextuels

Réguliers

Décidables

Page 71: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ThéorèmeThéorème

Si L est décidable alors son complément Lc est également décidable.

Page 72: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

PreuvePreuve

Supposons que L est décidable grâce à la machine de Turing T.

Considérons la machine suivante:

S = « entrée w:1. Simuler T sur w;2. Si T accepte w alors rejeter w. Si T

rejette w alors accepter w; »

Page 73: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

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 s’arrête toujours.

L(S) = Lc car w est accepté par S ssi w est rejeté par T.

Donc S décide le langage Lc.

Page 74: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

ThéorèmeThéorème

Si L est Turing acceptable et si son complément Lc est également Turing acceptable alors le langage L est décidable.

Page 75: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

PreuvePreuve

Supposons que M et N sont des machines de Turing telles que L(M) = L et L(N) = Lc.

Nous n’avons par contre pas de garantie que M et N terminent les exécutions sur des mots qu’ils n’acceptent pas.

Page 76: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

Considérons la machine suivante.

T = «  Entrée x:1. Répéter étapes 2 et 3 jusqu’à l’arrêt;2. Simuler une étape du calcul de M sur

x. Si M accepte x, alors T accepte x;3. Simuler une étape du calcul de N sur x.

Si N accepte x alors T rejette x; »

Page 77: 1 Chapitre 3 Machines de Turing Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT-17588. 2.Quelque chose qui peut être programmé.

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.