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

Cours LFI-2 (Master Académique)

Présentations similaires


Présentation au sujet: "Cours LFI-2 (Master Académique)"— Transcription de la présentation:

1 Cours LFI-2 (Master Académique)
Machines de Turing (partie 2) Cours LFI-2 (Master Académique) 2007/2008

2 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

3 Introduction Il existe de nombreuses variantes des machines de Turing. Il existe en fait presque autant de variantes qu'il y a de livres traitant le sujet des machines de Turing. Parmi ces variantes, certaines sont classiques, d'autres sont plus marginales.

4 Introduction Les différentes variantes des MT se distinguent par: L’ensemble des mouvements possibles de la tête: {,,,H}, {,,H}, {,},….. Le nombre de têtes de lecture/écriture: machine à 1, 2, ..n têtes. La nature du ruban: bi-infini, multicase , … Le nombre de rubans: machine à 1,2,..k rubans Le type des états: état final, état accept, état rejet,… Type de transition : déterministe/indéterministe

5 Introduction Certaines variantes des MT sont plus appropriées par rapports à d’autres selon le type de problème considéré. Le point essentiel est que toutes ces variantes sont équivalentes. Ceci signifie que tout ce qui peut être fait par un type de machines peut aussi être fait par un autre de type de machines. Nous verrons que c'est en particulier vrai pour les variantes classiques.

6 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

7 Machine de Turing (quadruplets)

8 Dans ce type de MT la tête de lecture fait une seule action à la fois:
déplacement (, ,,H ) ou écriture

9 Une machine de Turing est un uplet
Définition Une machine de Turing est un uplet (, Q, q0, ) où:  est un alphabet fini (vocabulaire du ruban) tel que {, $}  (où : le blanc et $:début du ruban). Q est un ensemble fini d’états q0  Q est l’état initial  fonction de transition : Q ×   ( U {, ,,H}) × Q telle que: on ne se déplace jamais à gauche du marqueur de début $ et on ne peut pas l’effacer.

10 Q ×    × {, ,,H} × Q Exemple q0 a b  q1 Variante « quintuplets » (définition classique) Q ×   ( U {, ,,H}) × Q q0 a b q1 q0 a  q1 Exemple Variante « quadruplets »

11 les machines « quintuplets » sont équivalentes aux machines «quadruplets »
Théorème Pour toute machine de Turing « quintuplets » M, il existe une machine de Turing « quadruplets » M’ qui exécute la même tâche et réciproquement.

12 Des quintuplets vers les quadruplets
Chaque quintuplets de la forme q a b D q’ D {, ,,H} Sera remplacé par 2 quadruplets de la forme q a b q’’ q’’ b D q’ q’’ est un nouvel état intermédiaire

13 Des quadruplets vers les quintuplets
Chaque quadruplet de la forme q a b q’ Sera remplacé par le quintuplet de la forme q a b  q’ Chaque quadruplet de la forme D {, ,,H} q a D q’ Sera remplacé par le quintuplet de la forme q a a D q’

14 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

15 Deux types de déplacements (gauche,droite)
Machine de Turing Deux types de déplacements (gauche,droite)

16 Dans ce type de MT la tête de lecture se déplace toujours :
d'une position à gauche ou d'une position à droite La tête de lecture ne peut pas rester sur la même position de la bande.

17 Dans ce type de MT la tête de lecture fait :
déplacement (, ,, H ) et/ou écriture

18 Une machine de Turing est un uplet
Définition Une machine de Turing est un uplet (, Q, q0, ) où:  est un alphabet fini (vocabulaire du ruban) tel que {, $}  (où : le blanc et $:début du ruban). Q est un ensemble fini d’états q0  Q est l’état initial  fonction de transition : Q ×    × {, ,H} × Q telle que: on ne se déplace jamais à gauche du marqueur de début $ et on ne peut pas l’effacer.

19 Les MT aux mouvements {, } sont équivalentes aux MT classiques
Théorème Pour toute machine de Turing M aux mouvements {, }, il existe une machine de Turing M’ aux mouvements {, , }, qui exécute la même tâche et réciproquement.

20 Des MT à 2 mouvements aux MT classiques :
Des MT à 2 mouvements peut être considérée comme une MT classique (évident)

21 Des MT classiques aux MT à 2 mouvements : ( ,)
Chaque quintuplets de la forme q a b  q’ Sera remplacé par n+1 quintuplets de la forme q a b  q’’ q’’ X X  q’ n quintuplets q’’ : est un nouvel état intermédiaire X: un symbole de l’alphabet du ruban (X$) n: est le nombre de symboles ($) de l’alphabet du ruban

22 q1 a b  q1’ ={, $,a,b,c} Exemple q1’ b b  q2 q1’ a a  q2 q1’ c c  q2 q1’    q2 q1 a b  q2 q1 b c  q2 q1 b c  q2 q2 c b  q1 q2 c b  q2’ q2’ b b  q1 q2’ a a  q1 q2’ c c  q1 q2’    q1

23 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

24 Machine de Turing À états finaux

25 Dans ce type de MT la tête de lecture fait :
déplacement (, ,, H ) et/ou écriture La MT s’arrête qu’on atteint un états final.

26 Une machine de Turing est un uplet
Définition Une machine de Turing est un uplet (, Q, q0, , Qf) où:  est un alphabet fini (vocabulaire du ruban) tel que {, $}  (où : le blanc et $:début du ruban). Q est un ensemble fini d’états q0  Q est l’état initial  fonction de transition : Q ×    × {, ,  } × Q telle que: on ne se déplace jamais à gauche du marqueur de début $ et on ne peut pas l’effacer.

27 M= ({$, #, a,b}, {q0,q1,q2,q3,q4}, q0, , {q3,q4} )
Exemple M= ({$, #, a,b}, {q0,q1,q2,q3,q4}, q0, , {q3,q4} ) q4 q3 a a  b b  # #  $ $  q0 q1 q2

28 Les MT à états finaux sont équivalentes aux MT classiques
Théorème Pour toute machine de Turing M à états finaux, il existe une machine de Turing classique M’, qui exécute la même tâche et réciproquement.

29 Des MT classiques aux MT à états finaux:
Chaque quintuplets de la forme q a b H q’ Sera remplacé par le quintuplets de la forme q a b  q’’ q’’ : est un nouvel état final

30 Des MT à états finaux aux MT classiques :
Chaque quintuplets de la forme q a b D q’ q’ : est un état final Sera remplacé par le n+1 quintuplets de la forme q a b D q’ q’ : est un état (non final) q’ X X H q’ n quintuplets X: un symbole de l’alphabet du ruban n: est le nombre de symboles de l’alphabet du ruban

31 Exemple q1 a b  q3 ={, $,a,b,c} q3 b b H q3 q3 a a H q3 q3 c c H q3 q3   H q3 q3 $ $ H q3 Qf={q3,q4} q1 a b  q3 q1 b c  q2 q1 b c  q2 q2 c b  q4 q4 b b H q4 q4 a a H q4 q4 c c H q4 q4   H q4 q4 $ $ H q4 q2 c b  q4

32 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

33 Machine de Turing à Ruban Multicases

34 Dans ce type de MT, le ruban est divisé en cases (comme dans les MT classiques).
Chaque case du ruban est divisé en n sous-cases La tête de lecture/écriture pointe une case (et non une sous-case), et peut effacer ou écrire dans une case

35 $ b a c Contrôle

36 Une machine de Turing à ruban à n cases est un uplet (, Q, q0, ) où:
Définition Une machine de Turing à ruban à n cases est un uplet (, Q, q0, ) où:  est un alphabet fini (vocabulaire du ruban) tel que {, $}  (où : le blanc et $:début du ruban). Q est un ensemble fini d’états q0  Q est l’état initial  fonction de transition : Q × n  n × {, , ,H } × Q .

37 Exemple de transition ( q1 (b a a) (b b b)  q2 )  $ b a c Contrôle b

38 les MT à ruban multicases sont équivalentes aux MT à ruban simple
Théorème Pour toute machine de Turing à ruban multicases M, il existe une machine de Turing à ruban simple M’ qui exécute la même tâche et réciproquement.

39 Des MT à ruban simple aux MT à ruban multicases:
Une MT simple est une MT à ruban à n cases (n=1)

40 Des MT à ruban multicases simple aux MT à ruban simple:
M: Une MT à ruban à n cases M= (, Q, q0, ) M’: Une MT à ruban simple M’= (’, Q, q0, ’) Où : M’ qui fonctionne sur l’alphabet ’= n Pour toute transition de M  (q (a1,a2,..an))= ((b1,b2,..,bn) D q’ ) On définit la transition dans M’ ’( q a1a2..an )= (b1b2..bn D q’ )

41 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

42 Machine de Turing à ruban bi-infini

43 La définition d'une machine à ruban bi-infini est identique à celle d'une machine à ruban semi-infinie excepté le fait que le ruban est infini à droite mais aussi à gauche. Cela signifie de façon plus formelle que la bande est une suite de positions indexées par tous les entiers. Le contenu de la bandes à un instant donné est une suite … a-3 a-2 a-1 a0 a1 a2 a3 …

44 b c a # contrôle

45 Au début du calcul, l'entrée initiale est écrite sur les positions 0,
Au début du calcul, l'entrée initiale est écrite sur les positions 0,...,k de la bande et toutes les autres positions sont remplies par le symbole blanc #. L'entrée est donc délimitée à gauche et à droite par des symboles #. Au début du calcul, la tête de lecture se trouve sur la position 0 de la bande, sur le premier symbole de l'entrée initiale.

46 Une machine de Turing à ruban bi-infini est un uplet (, Q, q0, ) où:
Définition Une machine de Turing à ruban bi-infini est un uplet (, Q, q0, ) où:  est un alphabet fini (vocabulaire du ruban) tel que {, $}  (où : le blanc et $:début du ruban). Q est un ensemble fini d’états q0  Q est l’état initial  fonction de transition : Q ×    × {, , ,H } × Q .

47 les MT à ruban semi-infini sont équivalentes aux MT à ruban bi-infini
Théorème Pour toute machine de Turing à ruban semi-infini M, il existe une machine de Turing à ruban bi-infini M’ qui exécute la même tâche et réciproquement.

48 Des MT à ruban semi-infini aux MT à ruban bi-infini :
il faut montrer que toute machine à ruban semi-infini peut être simulée par une machine à ruban bi-infini. Ceci est facile: Il suffit de prendre une machine à ruban bi-infini qui dès qu'elle trouve un # après un déplacement à gauche revient à droite en laissant inchangée le #. Du coup, elle ne change jamais le contenu des positions d'indices négatifs et elle se comporte comme une machine à ruban semi-infini.

49 $ a b c # # a b c

50 Des MT à ruban bi-infini aux MT à ruban semi-infini :
Il faut montrer qu'une machine M=(, Q, q0, ) à ruban bi-infini peut être simulée par une machine M'=(’, Q’, q0’, ’) à ruban semi-infini L'idée générale est de replier la partie gauche de la bande sous la partie droite pour obtenir une bande simplement infinie dont les symboles sont des paires de symboles de l'alphabet  .

51 M a-1 a0 a3 a1 a2 a-3 a-2 # M’ a0 a1 a2 a3 # # a-1 a-3 a-2 # $

52 Pour simplifier, les positions d'indices -1, -2, -3,
Pour simplifier, les positions d'indices -1, -2, -3, ... sont mises sous les positions 1, 2, 3, ... et sous la position 0, on remplit une position par un nouveau symbole $ qu'on suppose ne pas appartenir à  . Le contenu ...a-3 a-2 a-1 a0 a1 a2 a3... du ruban de M sera représenté par (a0,$)(a1,a-1)(a2,a-2)(a3,a-3)... du ruban de M'.

53 M a-1 a0 a3 a1 a2 a-3 a-2 # M’ a0 a1 a2 a3 # # a-1 a-3 a-2 # $ M’ est une MT à ruban multicases (n=2) équivalente à une MT à ruban simple

54 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

55 Machine de Turing à K rubans

56 Les machines à plusieurs rubans sont une extension intéressantes et des plus utilisées des machines de Turing. Elles ont un contrôle fini constitué d'un nombre fini d'états (comme les MT classiques). Au lieu de disposer d'un seul ruban infinie, elles disposent de plusieurs rubans sur lesquelles elle lisent et écrivent

57 La machine dispose d'une tête de lecture/écriture sur chacune de ses bandes.
Ces têtes de lecture/écriture se déplacent indépendamment sur chacune des bandes.

58 c b a Contrôle

59 Une machine de Turing à k rubans est un tuple (, Q, q0, ) où:
Définition Une machine de Turing à k rubans est un tuple (, Q, q0, ) où:  est un alphabet fini (vocabulaire du ruban) tel que {, $}  (où : le blanc et $:début du ruban). Q est un ensemble fini d’états q0  Q est l’état initial  fonction de transition : Q × k  ( × {, ,,H}) k × Q telle que: on ne se déplace jamais à gauche du marqueur de début $ et on ne peut pas l’effacer.

60 Une machine à k rubans se différentie d’une machine classique par sa fonction de transition qui est une fonction partielle de: Q × k  ( × {, ,,H}) k × Q

61 q (a,b,c) ((b,),(b,),(#,) ) q’
Contrôle q (a,b,c) ((b,),(b,),(#,) ) q’

62 Il est important de noter que les transitions de la machines dépendent de l'état interne mais aussi des k symboles que la machine lit sur les k bandes. Chaque transition détermine les k symboles qui sont écrits sur les k bandes et les déplacements de chacune des têtes sur les k bandes.

63 On démontre que la puissance des MT à k rubans est la même que celle des machines classiques
Les MT à k rubans sont plus pratiques à utiliser pour représenter les fonctions : on place les arguments sur des rubans séparés et le résultat sur un autre ruban.

64 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

65 Machine de Turing à plusieurs têtes

66 Dans ce type de MT on a un nombre k (k≥1 ) de têtes de lecture/écriture.
Chaque tête pointe une des cases du ruban. Deux têtes différentes peuvent pointer la même case

67 contrôle MT à 3 têtes

68 Une machine de Turing à k têtes est un tuple (, Q, q0, ) où:
Définition Une machine de Turing à k têtes est un tuple (, Q, q0, ) où:  est un alphabet fini (vocabulaire du ruban) tel que {, $}  (où : le blanc et $:début du ruban). Q est un ensemble fini d’états q0  Q est l’état initial  fonction de transition : Q × k   k × {, ,,H} k × Q telle que: on ne se déplace jamais à gauche du marqueur de début $ et on ne peut pas l’effacer.

69 Exemple q0 (a,b,c) (b,c,d) (,,) q1 a b d c a b a c d a contrôle

70 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

71 Machine de Turing déterministe/indéterministe

72 Une machine de Turing indéterministe est un tuple (, Q, q0, ) où:
Définition Une machine de Turing indéterministe est un tuple (, Q, q0, ) où:  est un alphabet fini (vocabulaire du ruban) tel que {, $}  (où : le blanc et $:début du ruban). Q est un ensemble fini d’états q0  Q est l’état initial  est une relation de transition : Q ×  ×  × {, ,,H} × Q telle que: on ne se déplace jamais à gauche du marqueur de début $ et on ne peut pas l’effacer.

73 Une MT non déterministe se distingue de la MT classique par le fait que la fonction de transition est remplacée par une relation c’est-à-dire qu’il peut y avoir plusieurs transitions possibles à partir d’une même configuration.

74 La machine est déterministe, ssi à chaque pas de calcul, le pas suivant, s’il y en avait un de possible, était déterminé de manière unique. Une MT est dite déterministe si et seulement si l’ensemble des transitions permet de définir une fonction partielle  : Q ×    × {, ,,H} × Q

75 Exemple MT non déterministe q0 a a  q1 q1 a a  q2 q1 a b  q2 q2 b b  q2 q2 b b  q3 q2 a b H q3

76 Théorème Pour toute machine de Turing non déterministe M, il existe une machine de Turing déterministe M’ qui exécute la même tâche et réciproquement.

77 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

78 Machine de Turing Universelle

79 Toute machine de Turing calcule le résultat d'une fonction partielle sur des chaînes de caractères composées des caractères de son alphabet. Une machine de Turing se comporte donc comme un ordinateur avec un programme déterminé.

80 Mais, comme Alan Turing l’a décrit, on peut coder la table d'actions d'une machine de Turing sous la forme d'une chaîne de caractères. On peut donc tenter de construire une MT qui suppose l'existence sur son ruban d'une chaîne de caractères codant une table d'actions, suivie d'une chaîne de caractères constituant les données effectives du ruban, et calcule le contenu du ruban que la machine de Turing encodée aurait calculé.

81 Alain Turing a montré qu’il est possible de créer une telle machine de Turing et puisqu'elle peut simuler le comportement de n'importe quelle autre machine de Turing, on l'appelle « machine de Turing universelle ».

82 Comment construire la MT universelle
La table de transition de la MT à simuler est codée en une séquence binaire. Le ruban de la MT universelle est divisée en deux zones: Une zone pour stocker la séquence binaire correspondant à la table de transition ainsi que sa configuration (état et caractère courant) Une zone pour gérer les entrées/sorties de la MT à simuler.

83 Plan Introduction MT variante quadruplets
Machine de Turing à déplacements (gauche,droite) Machine de Turing à états finaux Machine de Turing à Ruban Multicases Machine de Turing à ruban bi-infini Machine de Turing à K rubans Machine de Turing à plusieurs têtes Machine de Turing déterministe/indéterministe Machine de Turing Universelle Conclusion

84 Conclusion Les MT constituent une notion centrale en informatique car elle permettent: Une définition précise de la notion d’algorithme ( fonction de transition) Une base théorique solide pour les notions de calculabilité.

85 Conclusion Les différentes variantes des MT sont équivalentes d’un point de vu «pouvoir d’expression» mais pas du point de vue «complexité » Les différentes variantes peuvent être combinées pour donner de nouvelles variantes. Par exemple: MT à 3 têtes et ruban bi-infini, MT à états finaux, ruban à 3cases et 2 têtes de lecture/écriture. ….

86 Fin


Télécharger ppt "Cours LFI-2 (Master Académique)"

Présentations similaires


Annonces Google