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

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

Présentations similaires


Présentation au sujet: "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é."— Transcription de la présentation:

1

2 1 Chapitre 3 Machines de Turing

3 Quest-ce quun algorithme? 1.Quelque chose qui peut être à lexamen de IFT Quelque chose qui peut être programmé. (Mais que veut dire programmer?) 3.Un ensemble fini dinstructions permettant deffectuer une tâche donnée. 4.Une recette finie que lon peut suivre pour obtenir en temps fini une réponse à une question donnée. 5.Je ne sais pas ce que cest mais je sais faire la différence entre un algorithme et une vache.

4 Quelques algorithmes Comment additionner/multiplier deux entiers avec plus que 1 chiffre. Algorithme dEuclide (300 av. J.C) pour calculer le plus grand diviseur commun de deux entiers. Algorithme pour déterminer si une équation ax 2 + bx + c = 0 admet une solution. Historiquement, les algorithmes ont dabord été des façons systématiques deffectuer une série de calculs afin de résoudre une question mathématique.

5 Comment formaliser la notion? Une notion formelle dalgorithme devrait répondre aux critères suivants: 1.La description dun algorithme est finie. On peut également désirer que cette description soit une liste dinstructions. 2.Chaque étape dexé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.Lexécution dun algorithme se termine toujours après un nombre fini détapes.

6 Essais 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 lalgorithme termine toujours son éxécution après un nombre fini détapes?

7 Espoirs 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: x n + y n z n Subtil algorithme vrai faux

8 Gödel a démontré quil existe des vérités mathématiques quon ne peut pas démontrer: théorème dincomplé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 dalgorithme. Thèse de Turing ou Church-Turing : toute notion « raisonnable » dalgorithme est équivalente à la notion de machine de Turing. Bref historique

9 Voici une représentation schématique dune 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.

10 Différences avec les automates finis 1.La tête peut se déplacer dans les deux sens. 2.Cest une tête de lecture/écriture. 3.Il y a un seul état final, qui est un état darrêt (aussitôt que la machine latteint, elle sarrête).

11 À 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 lune des trois actions suivantes : écriture dun symbole ; déplacement de la tête vers la droite ; déplacement de la tête vers la gauche.

12 Exemple Voici un diagramme de transitions dune machine de Turing: h a/R b/R /a est létat initial. h est létat final (état darrê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

13 Définition Une machine de Turing est un sixtuplet ( S,,,,, h) où 1.S est un ensemble fini détats. 2. est lalphabet de la machine ou alphabet dentrée (les séquences dentrée sont formées avec cet alphabet). Lespace libre (ou blanc), symbolisé par, ne fait pas partie de, i.e. quon a.

14 3. est lalphabet 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 dune 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 dune case vers la droite et passer dans létat q.

15 –Puisque est une fonction, la définition précédente est celle dune machine déterministe, i.e. non ambiguë et totalement définie (létat h, doù norigine 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 darrêt). Dans les diagrammes de transitions, il sera indiqué par un double cercle, comme dhabitude.

16 Remarque 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.

17 Remarques On suppose que représente une case inoccupée du ruban : initialement, toutes les cases autres que celles qui contiennent la séquence dentrée contiennent un. Notez aussi quil y a un seul état final.

18 Exemple 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. Lorsquelle rencontre un blanc, elle passe dans létat final, en remplaçant ce blanc par un a.

19 Définition Une configuration dune machine de Turing, cest la donnée dun é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.

20 Exemple Une configuration possible de la machine suivante est h a/R b/R /a abb a … 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.

21 Supposons que la configuration initiale soit abb a … Les configurations successives sont alors: h a/R b/R /a État Ruban abb a … abb a … abb a … abb a … h abbaa …arrêt

22 Exercice Supposons que la configuration initiale de la machine de Turing suivante soit 1 aaa … Donnez les configurations successives à cette configuration initiale. 1 3 a/R /R a /R / 2

23 Solution 1 3 a/R /R a /R / 2 État Ruban 1 aaa … 2 aaa … 1 aaa … 2 aaa … 1 aaa … 3 aaa …

24 Exercice 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 a abab … Que se passe-t-il si la configuration initiale est ab ?

25 Solution b/R /R a/R /R b/R a/R b/R b/R /R a/R /R a/R = 1, h = 5

26 État Ruban 1 a abab … 2 a abab … 1a abab … 2 a abab … 3a abab … 4a abab … 5 a abab … arrêt

27 État Ruban 1 ab … 2ab … 3ab … 1ab … boucle infinie

28 Avantages 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.

29 Machines de Turing calculant une fonction Les machines de Turing que lon 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, cest à 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 (jusquau premier ) après larrêt comme étant la valeur calculée par la machine.

30 Voici une représentation schématique dune 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.

31 Thè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.

32 Thèse de Church-Turing Nimporte quel calcul automatique peut- être effectué à laide dune machine de Turing. En dautres mots: la notion intuitive dalgorithme correspond exactement à la notion de machine de Turing.

33 À cause de la thèse de Church-Turing, nous ne détaillerons pas les constructions de machines de Turing. Pour montrer quune tâche de calcul peut-être effectué à laide dune machine de Turing M, on se contentera – soit dune description informelle du fonctionnement de M, –soit dune description de haut niveau dun algorithme pour effectuer la tâche de calcul.

34 Exemples Nous avons construit une MT qui acceptait le langage {a n b n c n : 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 à lextrème gauche et effacer un a, trouver le prochain b et leffacer, trouver le prochain c et leffacer. Si on ne peut trouver de b ou de c, arrêter et rejeter; 3.Recommencer 2 tant quil reste des a. Sil reste un b ou un c après leffacement des a, arrêter et rejeter. Sinon, arrêter et accepter.

35 ... ou cette description haut-niveau dun 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.

36 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é dun 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 lentrée. Les autres contiennent.

37 Un programme est une liste finie dinstructions numérotées de 1 à t. Chaque instruction est un switch qui considère les valeurs possibles de linstruction courante et du symbole sous le pointeur. Le résultat des différents cas est 1.Lécriture dun 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.

38 Dé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 sarrête normalement (dans létat final) à la suite dune exécution commençant dans la configuration w … Par exemple, avec w = abaa, la configuration initiale est abaa … cest-à-dire … abaa État initial

39 Comme dhabitude, 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 dun tel langage peuvent être énumérées (listées) par une machine de Turing.

40 Définition équivalente de reconnaissance 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 sarrête dans la configuration O …lorsque w L(M); –Elle ne sarrête pas ou sarrête anormalement ou sarrête dans une configuration autre que O … lorsque w L(M).

41 Théorème Lacceptation par arrêt (i.e. la première définition dacceptation) est équivalente à lacceptation 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).

42 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 darrê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.

43 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 darrêt alors vérifier que la configuration est bien O... Si oui, arrêter. Sinon, rentrer dans une boucle infinie.

44 Note: contrairement aux notes de cours, jutiliserai plutôt la notion dacceptation par message. Dans mes descriptions informelles jutiliserai les mots clés: arrêter et accepter et arrêter et rejeter.

45 Machines de Turing à plusieurs rubans Considérons une machine de Turing à 2 rubans (la notion se généralise facilement à un nombre arbitraire de rubans). … x yxx … x yy

46 Une transition dune telle machine dépend de létat courant et de lensemble 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 w 1 … pour le ruban 1 et … pour le ruban 2.

47 Thé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).

48 Démonstration Donnons un aperçu de la preuve. Supposons que M a deux rubans. Lidée de la preuve est que M utilise des quadruplets pour encoder la même information sur un ruban unique.

49 Par exemple, ces deux rubans seraient représentés par le ruban suivant. … x yxx … x yy #xyxx 1 xyy 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.

50 #xyxx 1 xyy 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 sen sert comme marqueur afin de simuler M. Donc on ne gagne pas de puissance en utilisant des machines à plusieurs rubans.

51 Machines de Turing non déterministes Soit = {0, 1, }. Considérons la machine suivante. 2 1 / R / L 1 / L / L 4 1 / 0 / 0 0 / R

52 2 1 / R / L 1 / L / L 4 1 / 0 / 0 0 / R Cette machine nest pas déterministe: 1.Elle nest pas totalement définie car Il ny a pas de transitions pour 0 et dans létat 1; Il ny a pas de transitions pour 1 et dans létat 4.

53 4 2 1 / R / L 1 / 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;

54 Dé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 quune fonction; cest-à-dire quon a ( S – {h}) S ( {L, R}) plutôt que : ( S – {h}) S ( {L, R}).

55 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 …}.

56 Thé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).

57 Démonstration Voici un aperçu de la preuve. La machine D a trois rubans. 1.Le ruban 1 contient la séquence dentrée w. 2.Le ruban 2 est un ruban de travail sur lequel E copie w et essaie chacune des séquences dexécution possibles. 3.Le ruban 3 contient une séquence dexécution (séquence de transitions). Après lessai dune séquence, la séquence suivante est générée en ordre lexicographique.

58 Par exemple, la machine de Turing non déterministe ci-dessus a sept transitions; supposons quelles sont numérotées de 1 à 7. Les séquences dexécution seraient 1, 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,… 2 1 / R / L 1 / L / L 4 1 / 0 / 0 0 / R

59 Plusieurs de ces séquences de transitions ne correspondent pas à une exécution possible. Ce nest pas grave; ces séquences incorrectes conduisent simplement à un rejet de la séquence dentrée. Limportant cest de générer éventuellement nimporte quelle séquence possible. Si lune des simulations conduit à létat dacceptation (ici, 3), D accepte.

60 Remarque Lajout du non-déterminisme ne permet pas de reconnaître plus de langages. Cependant, on voit que lacceptation dune 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.

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

62 Rappel: un langage L est Turing- acceptable sil existe une machine de Turing M tel que étant donnée une entrée w –Si w L alors M sarrête et accepte w. –Si w L alors M sarrête et rejette w ou ne sarrête pas. La seconde condition pose problème car elle ne correspond pas à notre idée dalgorithme raisonnable.

63 Exemple Le langage L = {a 0 + a 1 x a n x n : il existe x N + tel que a 0 + a 1 x a n x n = 0} Montrons que ce langage est Turing-acceptable grâce à la machine M suivante. M = Entrée a 0 + a 1 x a n x n ; 1.Initialiser x = 1; 2.Si a 0 + a 1 x a n x n = 0 alors arrêter et accepter. 3.Sinon x := x+1. 4.Répéter 2 et 3 tant que M narrête pas.

64 Bien que L soit Turing-acceptable, on ne peut pas raisonnablement utiliser lalgorithme ci-dessus car si léquation na aucune solution, notre algorithme roulera indéfiniment. En ce sens, la notion de Turin-acceptable ne correspond pas vraiment à ce que lon peut faire avec un ordinateur. Comment résoudre ce problème? 1.Sassurer que la machine termine. (mais comment faire ça?) 2.Raffiner nos concepts.

65 Définition Un langage L est Turing-décidable (ou simplement décidable) sil existe une machine de Turing M qui recevant w en entrée –sarrête et accepte si w L. –sarrête et rejette si w L.

66 Note: par définition, tout les langages décidables sont également des langages Turing-acceptables. Par contre, nous verrons que linverse nest pas vrai.

67 Théorème Si L est un langage non-contextuel, alors L est un langage décidable.

68 Dé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 quil existe une machine de Turing qui étant donné w sarrête et accepte si w peut être généré par G et sarrête et rejette si w ne peut être généré.

69 Description haut-niveau dun 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 sarrêter. Dans une grammaire en CNF, la dérivation dun mot de longueur k prend exactement 2k-1 étapes.

70 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

71 Tous les langages Turing-acceptables Non-contextuels Réguliers Décidables

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

73 Preuve 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; »

74 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) = L c car w est accepté par S ssi w est rejeté par T. Donc S décide le langage L c.

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

76 Preuve Supposons que M et N sont des machines de Turing telles que L(M) = L et L(N) = L c. Nous navons par contre pas de garantie que M et N terminent les exécutions sur des mots quils nacceptent pas.

77 Considérons la machine suivante. T = « Entrée x: 1.Répéter étapes 2 et 3 jusquà larrê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; »

78 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 L c. Donc N accepte x en un nombre fini détapes. Donc T rejette x en un nombre fini détapes. T décide L.


Télécharger ppt "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é."

Présentations similaires


Annonces Google