Chapitre 3 - PowerPoint PPT Presentation

1 / 70
About This Presentation
Title:

Chapitre 3

Description:

La question est : existe-t-il, au moins th oriquement, une m thode ou un processus au ... 'ajout de cette transition revient simuler, dans l ' tat p, le ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 71
Provided by: vincen107
Category:

less

Transcript and Presenter's Notes

Title: Chapitre 3


1
Chapitre 3
  • Machines de Turing

2
Objectif général
  • Comprendre les capacités et les limites des
    machines de Turing (et donc des ordinateurs) en
    tant que dispositifs de reconnaissance de
    langages. Faire le lien avec les grammaires à
    structure de phrase.

3
Bref historique
  • En 1935, Turing se proposa de résoudre la
    question posée par Hilbert.
  • La question est existe-t-il, au moins
    théoriquement, une méthode ou un processus au
    moyen duquel toutes les questions mathématiques
    peuvent être décidées ?

4
Bref historique
  • 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.
  • Les machines de Turing sont des versions
    formelles dalgorithmes.
  • Thèse de Turing ou Church-Turing aucune
    procédure de calcul ne peut être considérée comme
    un algorithme à moins quon puisse la représenter
    comme une machine de Turing ou bien de façon
    équivalente par une fonction ?-récursive.

5
Bref historique
  • La thèse de Turing signifie que tout ce qui est
    calculable peut être calculé par une machine de
    Turing.
  • Il n est pas possible de prouver cette
    affirmation. Cela dépend de la définition de
    calculable.
  • La thèse de Turing est vraie si calculer signifie
    manipuler un nombre fini de symboles et produire
    une réponse après un nombre fini détapes.

6
Bref historique
  • Les machines de Turing, les grammaires à phrases
    et les fonctions ?-récursives sont équivalentes,
    ont la même puissance dexpression.
  • Pour plus de détails voir la page web
    http//www.turing.org.uk/turing/bio/part3.html

7
Machines de Turing
  • Objectif spécifique
  • Démontrer le fonctionnement dune machine de
    Turing donnée en énumérant les configurations
    consécutives à une configuration initiale donnée.

8
Introduction
  • Dans ce chapitre, nous étudierons une nouvelle
    classe de machines, les machines de Turing, ainsi
    que les langages quelles acceptent, les langages
    à structures de phrase.
  • Les machines de Turing sont les machines les plus
    puissantes.

9
  • Elles ont été inventées par Alan M. Turing en
    1936. Elles sont semblables aux automates finis,
    sauf quelles peuvent lire et écrire sur leur
    ruban, et que leur tête de lecture/écriture peut
    être déplacée dans les deux directions.

10
Voici une représentation schématique dune
machine de Turing
Comme pour les automates finis, le ruban est
infini vers la droite.
11
Différences avec les automates finis
  • La tête peut se déplacer dans les deux sens.
  • Cest une tête de lecture/écriture.
  • Il y a un seul état final, qui est un état
    darrêt (aussitôt que la machine latteint, elle
    sarrête).

12
  • À chaque étape, la machine de Turing
  • lit un symbole
  • fait une transition détat (elle peut rester dans
    le même état)
  • 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.

13
Exemple
  • Voici un diagramme de transitions dune machine
    de Turing
  • ? 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

14
Définition
  • Une machine de Turing est un sixtuplet ( S, ?,
    ?, ?, ?, h) où
  • S est un ensemble fini détats.
  • ? 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 ? ? ?.

15
  • ? est lalphabet du ruban. On a ? ? ? et ? ? ?.
  • ? 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.

16
  • 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 ?.)
  • ? est létat initial. Dans les diagrammes de
    transitions, il sera indiqué de la même manière
    que pour les automates finis.
  • h est létat final (état darrêt). Dans les
    diagrammes de transitions, il sera indiqué par un
    double cercle, comme dhabitude.

17
Remarque
  • Une machine de Turing peut
  • se rendre à létat final et arrêter
  • boucler indéfiniment
  • terminer anormalement en déplaçant la tête à
    gauche du ruban.

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

19
Exemple
  • Avec la machine suivante on 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.
20
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.

21
Exemple
  • Une configuration possible de la machine suivante
    est

? 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.
22
Supposons que la configuration initiale soit ?
abb?a?? Les configurations successives sont
alors
23
Exercice
  • Supposons que la configuration initiale de la
    machine de Turing suivante soit 1 aaa?? Donnez
    les configurations successives à cette
    configuration initiale.

24
Solution
État Ruban 1 aaa?? 2
aaa?? 1 aaa?? 2 aaa?? 1 aaa??
3 aaa??
25
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?
    ?

26
Solution
27
État Ruban 1 a?abab? 2
a?abab? 1 a?abab? 2 a?abab?
3 a?abab? 4 a?abab? 5 a?abab? arrêt
28
État Ruban 1 ab?? 2 ab??
3 ab?? 1 ab?? boucle infinie
29
Construction modulaire
  • Objectif spécifique
  • Démontrer le fonctionnement dune machine de
    Turing donnée sous la forme dun schéma de
    combinaison de machines de Turing en énumérant
    les configurations du ruban consécutives à une
    configuration initiale donnée.

30
Remarque
  • Nous allons définir quelques machines de Turing
    simples qui vont servir de blocs de base pour les
    constructions ultérieures. Mais dabord, voyons
    comment combiner des machines de Turing.

31
Combinaisons de machines de Turing
  • Méthode
  • Enlever le statut détat initial à tous les états
    initiaux, sauf à celui de la machine qui est
    activée en premier.
  • Enlever le statut détat final à tous les états
    finaux et introduire un nouvel état final.

32
  • Pour chaque ancien état final p et chaque x ??
  • Si, après avoir atteint létat p avec le symbole
    courant x (le symbole sous la tête de lecture/
    écriture), la machine de Turing composée doit
    sarrêter, ajouter la transition x/x de p vers le
    nouvel état final.
  • Si, après avoir atteint létat p avec le symbole
    courant x, la machine combinée doit transférer le
    contrôle à la machine M (S, ?, ?, ?, ?, h),
    alors ajouter la transition x/z de p vers létat
    q de M tel que ?(?, x) (q, z) (i.e. quon
    ajoute la transition ?(p, x) (q, z) ). L ajout
    de cette transition revient à simuler, dans
    l état p, le comportement de M dans l état ?
    lors de la lecture dun x.

33
Exemple
  • Nous avons trois machines de Turing A, B et C
    avec ? a, b, ?.
  • La machine A déplace la tête dune case vers la
    droite.

34
  • La machine B trouve le premier a à droite de la
    cellule courante.
  • La machine C trouve le premier b à droite de la
    cellule courante.

35
On demande de construire une machine qui trouve
la deuxième occurrence du symbole non blanc (i.e.
différent de ?) qui est à droite de la position
initiale de la tête de lecture/écriture. Si le
symbole à droite de la position initiale de la
tête est ?, la machine combinée doit terminer
immédiatement.
36
Solution Soit h le nouvel état final. Les
transitions de létat n vers létat h, de létat
r vers létat h et la transition ??? de létat t
vers létat h sont ajoutées en vertu de la partie
3(a) de la méthode précédente, alors que les
autres transitions qui partent de létat t
relèvent de la clause 3(b). Certaines des
transitions qui sont ajoutées ne seront jamais
utilisées, comme la transition b/b à partir de
létat n (car dans létat n, le symbole courant
est toujours un a). Néanmoins, ces transitions
doivent être ajoutées afin que la machine
composée soit totalement définie. Dans le cas de
la transition b/b, on peut considérer que si
létat n est atteint avec un b comme symbole
courant, alors la machine composée doit
sarrêter cest pour cela que cette transition
se dirige vers létat h.
37
(No Transcript)
38
Supposons que la configuration initiale soit s
a?bababba?
Le symbole à droite de la tête de
lecture/écriture est b. Loccurrence de b
cherchée est la suivante cest le b qui occupe
la septième case du ruban. Voici une suite de
configurations qui démontre comment cette
occurrence est trouvée.
État ruban s a?bababba? t
a?bababba? q a?bababba? q a?bababba?
r a?bababba? h a?bababba?
39
Schémas de combinaisons de machines de Turing
  • Nous introduisons maintenant une notation qui
    permet de décrire de manière plus compacte des
    combinaisons de machines de Turing.

40
Notation
  • x, y, z symboles de lalphabet
  • A, B, C machines de Turing

41
(No Transcript)
42
La machine sarrête si x est le symbole courant
et quil ny a pas de transition pour x.
43
Exemple
  • La combinaison de machines de lexemple 3.10 est
    représentée par le schéma suivant
  • La machine A commence lexécution (elle déplace
    la tête vers la droite) puis
  • elle passe le contrôle à B si le nouveau symbole
    courant est a,
  • elle passe le contrôle à C si le nouveau symbole
    courant est b,
  • elle sarrête si le nouveau symbole courant est
    ?, car après lexécution de A, il ny a pas de
    transition pour ? i.e., on considère que la
    machine passe dans létat final lorsquil ny a
    pas de transition définie dans le schéma de
    combinaison.

44
Exemple
  • Soit la machine de Turing suivante

Ce diagramme indique que si M2 commence
lexécution avec a ou b comme symbole courant
(symbole sous la tête) et si elle termine avec le
même symbole courant, alors elle passe le
contrôle à M1, sinon elle sarrête. Si le symbole
courant est ? après lexécution de M1 ou de M2,
il y a arrêt.
45
Voici la même machine un peu plus détaillée
46
Blocs élémentaires
  • Nous allons définir une série de machines
    élémentaires qui vont nous servir de blocs de
    base pour la construction de machines plus
    complexes. Nous supposerons que lalphabet du
    ruban est ? x, y, ?. Il est facile de
    généraliser à dautres alphabets.

47
1. La machine R déplace la tête de
lecture/écriture dune case vers la droite.
48
2. La machine L déplace la tête de
lecture/écriture dune case vers la gauche.
49
3. La machine x écrit un x (i.e. elle remplace le
symbole courant par un x).
50
Avec les trois machines précédentes, nous pouvons
former des machines plus complexes, comme ?RyL
cette machine écrit un y à droite de la position
initiale de la tête, et ramène la tête dans la
position initiale. Par exemple, ?RyL fait passer
de la configuration ruban
xxx??
à la configuration
xxy??
51
4. La machine Rx déplace la tête de
lecture/écriture vers la droite jusquà ce
quelle trouve un x. La machine R?x déplace la
tête vers la droite jusquà ce quelle rencontre
un symbole différent de x.
Note les deux machines font R avant de tester le
symbole. Le symbole initialement sous la tête ne
compte donc pas.
De même, on construit Lx et L?x qui font la
recherche vers la gauche.
Cas particuliers très utiles R?, R??, L?, L??
52
ATTENTION Les machines Rx et Rx sont différentes
(ainsi que Lx et Lx). Lorsque vous décrivez une
machine de Turing, assurez-vous que votre façon
décrire permette de distinguer ces cas. Si x est
en indice, faites le petit et écrivez-le plus bas.
53
5. La machine SR (shift right) déplace dune case
vers la droite la séquence de symboles non blancs
immédiatement à gauche de la tête dans la
configuration initiale ( on suppose quil y a un
? à gauche de cette séquence).
54
Voici une suite de configurations du ruban
décrivant une exécution de SR. Il nest pas
possible de donner létat de la machine lorsquon
donne une configuration, puisque les descriptions
schématiques comme celles de SR ne précisent pas
les états.
55
?xyyxx ? ? ? Exécution de ?. ? ?xyy ?x ?
? ? Exécution de L. ? ?xyy ?x ? ? ? w y,
exécution de L. ? ?xyy ?x ? ? ? w y, ? y,
exécution de R. ? ?xyy ?x ? ? ? w
y, ? y, exécution de ?. ?
56
?xyy ?x ? ? ? w y, ? y, exécution de L.
? ?xyy ?x ? ? ? w y, ? y, exécution de L.
? ?xyy ?x ? ? ? w y, ? x, exécution de R.
? ?xyy ?x ? ? ? w y, ? x, exécution de ?.
? ?xxy ?x ? ? ? w y, ? x, exécution de L.
?
57
?xxy ?x ? ? ? w y, ? x, exécution de L.
? ?xxy ?x ? ? ? w y, exécution de R. ?
?xxy ?x ? ? ? w y, exécution de ?. ? ? ?xy
?x ? ? ? w y, exécution de R?. ? ? ?xy ?x ?
? ? w y, exécution de w. ? ? ?xy yx ? ?
58
Avec la configuration initiale x? ? ?, il y a
terminaison anormale (la tête tombe en bas du
ruban). Remarquez la méthode employée par SR.
Elle marque la position initiale avec un ?
quelle recherche à la fin. Un autre symbole
spécial pourrait être utilisé au lieu de
?. Similairement à SR, la machine SL déplace
dune case vers la gauche la séquence de symboles
non blancs immédiatement à droite de la tête dans
la configuration initiale (on suppose quil y a
un ? à droite de cette séquence).
59
Exercice
En utilisant les machines de Turing élémentaires
présentées auparavant, construisez une machine
qui fait la copie dune séquence comprise entre
deux blancs. Cest-à-dire quelle passe dune
configuration de la forme ?w ? à la
configuration ?w ?w ? où w ???. Notez que
lécriture du w de droite peut se faire dans des
cases qui à lorigine ne contiennent pas
nécessairement ?.
60
Solution
61
Exercice
En utilisant les machines de Turing élémentaires
présentées auparavant, construisez une machine
qui décrémente une valeur binaire de 1. Par
exemple, elle passe de la configuration ?101
? à la configuration ?100 ?
62
Solution
63
Exercice
En utilisant les machines de Turing élémentaires
présentées auparavant, construisez une machine
qui remplace la séquence w1 par la séquence w2
qui la suit dans un certain ordre
lexicographique. Elle passe de la configuration
?w1 ? ? à la configuration ?w2 ? ? Lalphabet
de la machine est ? x, y, z. Lordre
lexicographique (sur ?) qui est utilisé est ?,
x, y, z, xx, yx, zx, xy, yy, zy, xz, yz, zz, xxx,

64
Solution
65
Exercice
  • En utilisant les machines de Turing élémentaires
    présentées auparavant, construisez une machine
    qui complémente la séquence de 0 et de 1
    immédiatement à droite de la tête de
    lecture/écriture et qui retourne la tête à sa
    position initiale. On suppose quil y a un ? à
    droite de cette séquence. Prenez ? 0, 1, ?.

66
  • Dans un premier temps, supposez que la
    configuration initiale du ruban soit ?w ? , avec
    w ? 0, 1 (une telle supposition permet de
    trouver une machine simple). Donnez la suite des
    configurations du ruban si la configuration
    initiale est
  • ?010 ?
  • ? ?

Solution
67
a) ?010 ?
?010 ? ? R? ? ?010 ? ? L ? ?010 ? ? 1
? ?011 ? ? L ? ?011 ?
? 0 ? ?001 ? ? L ? ?001 ? ? 1 ? ?101 ? ?
L ? ?101 ?
68
(b) ? ?
? ? ? R? ? ? ? ? L ?
69
  • Dans un deuxième temps, supposez que la
    configuration initiale soit uxw ? , avec x ? ?
    et u, w ? ?. Donnez la suite des configurations
    du ruban si la configuration initiale est 010010
    ?

70
0 1 0 0 1 0 ? ? ?, w 0 ? 0 1 ? 0 1 0 ? ?
R?, w 0 ? 0 1 ? 0 1 0 ? ? L, w 0 ? 0 1 ?
0 1 0 ?
? 1 ? 0 1 ? 0 1 1 ? etc 0 1 ? 1 0 1 ? ?
L, w 0 ? 0 1 ? 1 0 1 ? ? w 0, w ?
0 1 0 1 0 1 ?
Write a Comment
User Comments (0)
About PowerShow.com