• Aucun résultat trouvé

Machines de Turing

N/A
N/A
Protected

Academic year: 2022

Partager "Machines de Turing"

Copied!
86
0
0

Texte intégral

(1)

Machines de Turing

(partie 2)

Cours LFI-2 (Master Académique) 2007/2008

(2)

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)

Il existe de nombreuses variantes des machines de Turing.

Introduction

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)

4

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 Introduction

(5)

Le point essentiel est que toutes ces variantes sont équivalentes.

Nous verrons que c'est en particulier vrai pour les variantes classiques.

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.

Certaines variantes des MT sont plus appropriées par rapports à d’autres selon le type de problème considéré.

Introduction

(6)

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)

8

Dans ce type de MT la tête de lecture fait une seule action à la fois:

déplacement (, ,,H ) ou

écriture

(9)

9

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)

10

Q ×   ( U {, ,,H}) × Q q0 a b q1

q0 a  q1 Exemple

Variante « quadruplets »

Q ×    × {, ,,H} × Q Exemple q0 a b  q1

Variante « quintuplets » (définition classique)

(11)

les machines « quintuplets » sont équivalentes aux machines «quadruplets »

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.

Théorème

(12)

12

Des quintuplets vers les quadruplets

q a b D q’

q a b q’’

q’’ b D q’

Chaque quintuplets de la forme

Sera remplacé par 2 quadruplets de la forme

q’’ est un nouvel état intermédiaire

D {, ,,H}

(13)

13

Des quadruplets vers les quintuplets Chaque quadruplet de la forme

q a b q’

q a D q’

Sera remplacé par le quintuplet de la forme q a b  q’

Chaque quadruplet de la forme

Sera remplacé par le quintuplet de la forme q a a D q’

D {, ,,H}

(14)

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)

Machine de Turing

Deux types de déplacements (gauche,droite)

(16)

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)

18

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

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.

Théorème

(20)

20

Des MT à 2 mouvements aux MT classiques :

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

(21)

21

Des MT classiques aux MT à 2 mouvements : ( ,)

Chaque quintuplets de la forme

Sera remplacé par n+1 quintuplets de la forme

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

q a b  q’

q a b  q’’

q’’ X X  q’ n quintuplets

(22)

22

Exemple

q1 a b  q2

q1 a b  q1’

q1 b c  q2

q2 c b  q1 q1 b c  q2 q2 c b  q2’

={, $,a,b,c}

q1’ b b  q2 q1’ a a  q2 q1’ c c  q2 q1’    q2

q2’ b b  q1 q2’ a a  q1 q2’ c c  q1 q2’    q1

(23)

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)

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)

26

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)

Exemple

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

q4

a a  q3

b b 

b b a a 

# # 

# # 

$ $ 

q0

q1 q2

b b a a 

(28)

28

Les MT à états finaux sont équivalentes aux MT classiques

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.

Théorème

(29)

Des MT classiques aux MT à états finaux:

Chaque quintuplets de la forme

Sera remplacé par le quintuplets de la forme

q’’ : est un nouvel état final

q a b H q’

q a b  q’’

(30)

30

Des MT à états finaux aux MT classiques :

Chaque quintuplets de la forme

Sera remplacé par le n+1 quintuplets de la forme

q’ : est un état final

q a b D q’

q’ X X H q’

q’ : est un état (non final)

X: un symbole de l’alphabet du ruban

n: est le nombre de symboles de l’alphabet du ruban

q a b D q’

n quintuplets

(31)

31

Exemple

q1 a b  q3

q1 a b  q3

q1 b c  q2 q2 c b  q4

q1 b c  q2 q2 c b  q4

={, $,a,b,c}

Qf={q3,q4} q3 b b H q3q3 a a H q3 q3 c c H q3 q3   H q3

q3 $ $ H q3

q4 b b H q4 q4 a a H q4 q4 c c H q4 q4   H q4 q4 $ $ H q4

(32)

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)

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 b a c

$ a a c a a b

$ a b a c a a

Contrôle

(36)

36

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)

37

$ b a c b a c

$ a a c a a b

$ a b a c a a

Contrôle

( q1 (b a a) (b b b)  q2 ) Exemple de transition

b a a

b b

( q1 bq2 )

(38)

38

les MT à ruban multicases sont équivalentes aux MT à ruban simple

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.

Théorème

(39)

Des MT à ruban simple aux MT à ruban multicases:

Une MT simple est une MT à ruban à n cases (n=1)

(40)

40

M: Une MT à ruban à n cases M= (, Q, q0, ) Où :

M’ qui fonctionne sur l’alphabet ’= n

 (q (a1,a2,..an))= ((b1,b2,..,bn) D q’ )

’( q a1a2..an )= (b1b2..bn D q’ )

Des MT à ruban multicases simple aux MT à ruban simple:

M’: Une MT à ruban simple M’= (’, Q, q0, ’)

Pour toute transition de M

On définit la transition dans M’

(41)

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)

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.

… a-3 a-2 a-1 a0 a1 a2 a3 …

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

(44)

44

b c b c a

# # # # # #

contrôle

(45)

45

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)

46

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

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.

Théorème

(48)

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 # # # #

# # a b c a # # # #

# #

(50)

50

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

Des MT à ruban bi-infini aux MT à 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)

a-1 a0 a1 a2 a3

a-3 a-2 # #

#

#

a0 a1 a2 a3 # #

M

M’

a-1 a-2 a-3 # #

$

(52)

52

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)

a-1 a0 a1 a2 a3

a-3 a-2 # #

#

#

a0 a1 a2 a3 # #

M

M’

a-1 a-2 a-3 # #

$

M’ est une MT à ruban multicases (n=2) équivalente à une MT à ruban simple

(54)

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)

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)

58

c b

a

Contrôle

(59)

59

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)

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)

c b

a

Contrôle

q (a,b,c) ((b,),(b,),(#,) ) q’

(62)

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)

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)

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)

68

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)

q0 (a,b,c) (b,c,d) (,,) q1 Exemple

a a b b d c a d

contrôle

b a c b d d a d

contrôle

(70)

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)

72

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)

74

Une MT est dite déterministe si et seulement si l’ensemble des transitions permet de

définir une fonction partielle  :

Q ×    × {, ,,H} × Q

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.

(75)

Exemple

q0 a a  q1 q1 a b  q2 q1 a a  q2 q2 b b  q2

q2 b b  q3

MT non déterministe

q2 a b H q3

(76)

76

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.

Théorème

(77)

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)

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)

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)

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:

1.Une zone pour stocker la séquence binaire correspondant à la table de transition ainsi que sa configuration (état et caractère courant)

2.Une zone pour gérer les entrées/sorties de la MT à simuler.

(83)

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)

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)

85

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.

….

Conclusion

(86)

86

Fin

Références

Documents relatifs

MACHINES DE TURING ET PROBL ` EMES IND ´ ECIDABLES Tout d’abord, L arret est r´ecursivement ´enum´erable : consid´erons la machine M arret qui, ´etant donn´e < M, x >,

On définit un nouveau modèle de machine de Turing fonctionnant avec un ruban infini des deux côtés, c’est à dire qu’à l’état initial l’entrée est écrite quelque part sur

The Lie Access Neural Turing Machine (LANTM) is inspired by the external memory architecture of Neural Turing Machine (NTM): a neural network controller reads from and writes to

Repr´ esenter sous forme de table la machine de Turing

Les ´ etats q 1 et q 2 sont utilis´ es de la mˆ eme mani` ere pour d´ eplacer la tˆ ete de lecture jusqu’` a la fin du mot sans modifier les symboles du ruban.. C’est une

Savoir d´ efinir le langage reconnu par une machine de Turing Savoir d´ efinir la fonction calcul´ ee par une machine de Turing Savoir d´ efinir une machine de Turing pour

- une table de règles sous forme (étatCourant, symboleLu)-> (étatSuivant, symboleEcrit, direction), qui indique à la machine en fonction de son état courant et du symbole lu sur le

• Le bloc prend en entrée un tableau tab et l’indice pos d’un élément mal placé, et donne en sortie l’indice newpos de la «bonne place» de l’élement dans le tableau. •