Cours 4: Incomplétude. Machine de Turing.€¦ · Machines de Turing Demain et Prochain épisode....

Post on 30-Sep-2020

1 views 0 download

Transcript of Cours 4: Incomplétude. Machine de Turing.€¦ · Machines de Turing Demain et Prochain épisode....

Cours 4: Incomplétude. Machine de Turing.

Olivier Bournez Ecole Polytechniquebournez@lix.polytechnique.fr INF412

1

Au menu

Retour sur l’épisode précédent : complétude

Graphes, Groupes, Corps, . . .Et les entiers ?

Théorème d’incomplétude

Quelques applications

Objectif de la suite du cours

Machines de Turing

Demain et Prochain épisode

Théorème de complétude

On sait construire un (des) système(s) de déduction qui estvalide et complet.

§ Rappel : T $ F pour “F se prouve à partir de T ” dans cesystème.

§ Notons : T |ù F pour “tout modèle de T est un modèle de F .”

C’est-à-dire :

Théorème de Validité : Soit T une théorie. Soit F une formuleclose.Si T $ F alors T |ù F .

Théorème de Complétude. Soit T une théorie. Soit F uneformule close.Si T |ù F alors T $ F .

2

Plus précisément

Retour sur l’épisode précédent : complétudeN’ayons pas peur des répétitionsThéorème de Compacité

Autre façon de comprendre ce qu’on obtient :

prouvabilité et conséquence (sémantique) sont les mêmesnotions.

T $ F si et seulement si T |ù F .

3

Autre façon de le comprendre :

F est prouvable ssi F est vraie dans tous les modèles

F est prouvable à partir des axiomes T ssi F est vraie danstous les modèles de T .

4

Autre façon de le comprendre :

F est prouvable ssi F est vraie dans tous les modèles

F est prouvable à partir des axiomes T ssi F est vraie danstous les modèles de T .

4

Plus précisément

Retour sur l’épisode précédent : complétudeN’ayons pas peur des répétitionsThéorème de Compacité

Théorème de Compacité.

§ Soit T une théorie.

§ T possède un modèle si et seulement si toute partie finie de Tpossède un modèle.

5

Au menu

Retour sur l’épisode précédent : complétude

Graphes, Groupes, Corps, . . .Et les entiers ?

Théorème d’incomplétude

Quelques applications

Objectif de la suite du cours

Machines de Turing

Demain et Prochain épisode

Plus précisément

Graphes, Groupes, Corps, . . .Et les entiers ?Arithmétique de Peano : première tentativeArithmétique de Peano

Axiomes de l’arithmétique

Considérons une signature constituée du symbole de constante0, d’une fonction unaire s, et de deux fonctions binaires ` et˚, et de la relation binaire “.

On souhaite que pN, 0, s,`, ˚,“q en soit un modèle.

6

1ère tentative

On considère les axiomes

@x spxq “ 0 (1)@x@y pspxq “ spyq ñ x “ yq (2)@x px “ 0_ Dy spyq “ xq (3)

@x 0` x “ x (4)@x spxq ` y “ spx ` yq (5)

@x 0 ˚ x “ 0 (6)@x spxq ˚ y “ x ˚ y ` y (7)

7

Conséquence/Non-conséquence

Rappel : une formule F est dite une conséquence d’unensemble de formules T si tout modèle de la théorie T est unmodèle de F .

§ se note : T |ù F

Comment se persuader qu’une formule close n’est pas uneconséquence de T ?

§ en exhibant un modèle de T qui n’est pas un modèle de F .

8

Conséquence/Non-conséquence

Rappel : une formule F est dite une conséquence d’unensemble de formules T si tout modèle de la théorie T est unmodèle de F .

§ se note : T |ù F

Comment se persuader qu’une formule close n’est pas uneconséquence de T ?

§ en exhibant un modèle de T qui n’est pas un modèle de F .

8

Conséquence/Non-conséquence

Rappel : une formule F est dite une conséquence d’unensemble de formules T si tout modèle de la théorie T est unmodèle de F .

§ se note : T |ù F

Comment se persuader qu’une formule close n’est pas uneconséquence de T ?

§ en exhibant un modèle de T qui n’est pas un modèle de F .

8

Faits

Pour chaque entier n et m, la formule

snp0q ` smp0q “ sn`mp0q,

est une conséquence des axiomes précédents, où snp0q estspsp¨ ¨ ¨ sp0qqq avec s répété n fois.

Mais@x@y x ` y “ y ` x

n’est pas une conséquence de ces axiomes.

9

Faits

Pour chaque entier n et m, la formule

snp0q ` smp0q “ sn`mp0q,

est une conséquence des axiomes précédents, où snp0q estspsp¨ ¨ ¨ sp0qqq avec s répété n fois.

Mais@x@y x ` y “ y ` x

n’est pas une conséquence de ces axiomes.

9

Un modèle où l’addition n’est pas commutativeSoit X un ensemble avec au moins deux éléments.On considère la structure M dont l’ensemble de base est

M “ NY pX ˆ Zq,

et où les symboles s,`, ˚,“ sont interprétés par les conditionssuivantes :

§ “ est interprété par l’égalité. s,`, ˚ étendent les fonctionscorrespondantes sur N ;

§ pour a “ px , nq :‚ spaq “ px , n ` 1q ;‚ a`m “ m ` a “ px , n `mq ;‚ a ˚m “ px , n ˚mq si m ‰ 0, et px , nq ˚ 0 “ 0 ;‚ m ˚ a “ px ,m ˚ nq ;

§ pour a “ px , nq et b “ py ,mq :‚ px , nq ` py ,mq “ px , n `mq ;‚ px , nq ˚ py ,mq “ px , n ˚mq.

Ce modèle est un modèle des axiomes précédents.L’addition n’y est pas commutative.

10

Plus précisément

Graphes, Groupes, Corps, . . .Et les entiers ?Arithmétique de Peano : première tentativeArithmétique de Peano

Idée des axiomes de Peano

ajouter une famille (un schéma) d’axiomes pour permettre lespreuves par récurrence.

cette fois l’addition sera bien nécessairement commutative, i.e.

@x@y x ` y “ y ` x

sera bien toujours satisfaite.

§ et on capture en pratique toutes les propriétés del’arithmétique.

11

Axiomes de PeanoLes axiomes de l’arithmétique de Peano sont :

§ les axiomes

+ ceux de l’égalité ;

@x spxq “ 0 (8)@x@y pspxq “ spyq ñ x “ yq (9)@x px “ 0_ Dy spyq “ xq (10)

@x 0` x “ x (11)@x spxq ` y “ spx ` yq (12)

@x 0 ˚ x “ 0 (13)@x spxq ˚ y “ x ˚ y ` y (14)

§ et l’ensemble de toutes les formules de la forme@x1 ¨ ¨ ¨ @xn

´

`

F p0, x1, ¨ ¨ ¨ , xnq^

@x0 pF px0, x1, ¨ ¨ ¨ , xnq ñ F pspx0q, x1, ¨ ¨ ¨ , xnqq˘

ñ @x0F px0, x1, ¨ ¨ ¨ , xnq¯

où n est n’importe quel entier et F px0, ¨ ¨ ¨ , xnq est n’importequelle formule de variables libres x0, ¨ ¨ ¨ , xn.

12

Axiomes de PeanoLes axiomes de l’arithmétique de Peano sont :

§ les axiomes + ceux de l’égalité ;

@x spxq “ 0 (8)@x@y pspxq “ spyq ñ x “ yq (9)@x px “ 0_ Dy spyq “ xq (10)

@x 0` x “ x (11)@x spxq ` y “ spx ` yq (12)

@x 0 ˚ x “ 0 (13)@x spxq ˚ y “ x ˚ y ` y (14)

§ et l’ensemble de toutes les formules de la forme@x1 ¨ ¨ ¨ @xn

´

`

F p0, x1, ¨ ¨ ¨ , xnq^

@x0 pF px0, x1, ¨ ¨ ¨ , xnq ñ F pspx0q, x1, ¨ ¨ ¨ , xnqq˘

ñ @x0F px0, x1, ¨ ¨ ¨ , xnq¯

où n est n’importe quel entier et F px0, ¨ ¨ ¨ , xnq est n’importequelle formule de variables libres x0, ¨ ¨ ¨ , xn.

12

Au menu

Retour sur l’épisode précédent : complétude

Graphes, Groupes, Corps, . . .Et les entiers ?

Théorème d’incomplétude

Quelques applications

Objectif de la suite du cours

Machines de Turing

Demain et Prochain épisode

On note ThpNq l’ensemble des formules closes F qui sontvraies sur les entiers.

Théorème d’incomplétude.

§ Il existe des formules closes de ThpNq qui ne sont pasprouvables, à partir des axiomes de Peano, ou de touteaxiomatisation “raisonnable” 1 des entiers.

Second théorème d’incomplétude.

§ La cohérence de l’arithmétique (ou sa négation) est unexemple de telle formule.

1. Formellement, “récursivement énumérable” : voir suite du cours.13

Au menu

Retour sur l’épisode précédent : complétude

Graphes, Groupes, Corps, . . .Et les entiers ?

Théorème d’incomplétude

Quelques applications

Objectif de la suite du cours

Machines de Turing

Demain et Prochain épisode

Entiers non-standards

Il y a d’autres modèles que N des axiomes de Peano.

§ il existe des modèles non-standards de l’arithmétique.

14

Entiers non-standardsIl y a d’autres modèles que N des axiomes de Peano :

§ considérons un nouveau symbole de constante c .

§ considérons T défini comme l’union des axiomes de Peano etde toutes les formules c “ snp0q, pour n un entier.

§ Tout sous-ensemble fini de T admet un modèle, car il estinclus dans l’union des axiomes de Peano et des formules c “ snp0q pour 1 ď n ď N pour un certain entier N :

‚ il suffit d’interpréter c par N ` 1.

§ Donc T admet un modèle.

Ce modèle contient donc un élément qui n’est pas un entierstandard.

15

...

Analyse non-standard

...

. . .f est continue si et seulement si pour tout y infiniment petitet pour tout réel x standard, f px ` yq ´ f pxq est infinimentpetit . . .

...

16

Deux autres utilisations de la logiqueComment prouver qu’un axiome F est “indépendant” d’unethéorie T ?

§ On utilise un modèle de T pour construire un modèle deT Y tF u, et un modèle de T Y t F u.

§ On prouve en fait la cohérence relative : si T cohérent, alorsT Y tF u cohérent.

Définissabilité :

§ On se donne un graphe (i.e. modèle d’une théorie sur unesignature contenant un symbole de relation R binaire).

§ Peut-on définir :‚ la relation “être accessible en deux coups” par une formule ?‚ la relation “être accessible par un chemin” (i.e. dans la même

composante connexe) ?

§ . . .applications aux requêtes dans les bases de données . . .

17

Au menu

Retour sur l’épisode précédent : complétude

Graphes, Groupes, Corps, . . .Et les entiers ?

Théorème d’incomplétude

Quelques applications

Objectif de la suite du cours

Machines de Turing

Demain et Prochain épisode

Objectif

Objectif de ce cours : répondre à la question suivante :

Qu’est-ce qu’un algorithme ?

AB

DE

C

Exemple d’algorithme :Pour construire un triangle équi-latéral ayant pour coté AB : tra-cer le cercle de centre A de rayonAB ; tracer le cercle de centre B

de rayon AB. Nommer C l’une desintersections de ces deux cercles.Le triangle ABC est la solution re-cherchée.

18

Thèse de Church

Historiquement, plusieurs modèles :

§ Fonctions récursives, Kurt Gödel, 1931-34.§ λ-calcul, Alonzo Church, 1936.§ Machines de Turing, Alan Turing, 1936.

§ Systèmes de Post,§ Machines RAM,§ Programmes JAVA, C, CAML, . . .§ . . .

Il s’avère que ces modèles, très différents, ont exactement lamême puissance

§ Thèse de Church/Turing : une fonction est calculable si etseulement si elle est calculable par machine de Turing.

‚ (exprimée clairement pour la première fois par StephenKleene, étudiant en thèse d’Alonzo Church.)

19

Thèse de Church

Historiquement, plusieurs modèles :

§ Fonctions récursives, Kurt Gödel, 1931-34.§ λ-calcul, Alonzo Church, 1936.§ Machines de Turing, Alan Turing, 1936.§ Systèmes de Post,

§ Machines RAM,§ Programmes JAVA, C, CAML, . . .§ . . .

Il s’avère que ces modèles, très différents, ont exactement lamême puissance

§ Thèse de Church/Turing : une fonction est calculable si etseulement si elle est calculable par machine de Turing.

‚ (exprimée clairement pour la première fois par StephenKleene, étudiant en thèse d’Alonzo Church.)

19

Thèse de Church

Historiquement, plusieurs modèles :

§ Fonctions récursives, Kurt Gödel, 1931-34.§ λ-calcul, Alonzo Church, 1936.§ Machines de Turing, Alan Turing, 1936.§ Systèmes de Post,§ Machines RAM,

§ Programmes JAVA, C, CAML, . . .§ . . .

Il s’avère que ces modèles, très différents, ont exactement lamême puissance

§ Thèse de Church/Turing : une fonction est calculable si etseulement si elle est calculable par machine de Turing.

‚ (exprimée clairement pour la première fois par StephenKleene, étudiant en thèse d’Alonzo Church.)

19

Thèse de Church

Historiquement, plusieurs modèles :

§ Fonctions récursives, Kurt Gödel, 1931-34.§ λ-calcul, Alonzo Church, 1936.§ Machines de Turing, Alan Turing, 1936.§ Systèmes de Post,§ Machines RAM,§ Programmes JAVA, C, CAML, . . .

§ . . .

Il s’avère que ces modèles, très différents, ont exactement lamême puissance

§ Thèse de Church/Turing : une fonction est calculable si etseulement si elle est calculable par machine de Turing.

‚ (exprimée clairement pour la première fois par StephenKleene, étudiant en thèse d’Alonzo Church.)

19

Thèse de Church

Historiquement, plusieurs modèles :

§ Fonctions récursives, Kurt Gödel, 1931-34.§ λ-calcul, Alonzo Church, 1936.§ Machines de Turing, Alan Turing, 1936.§ Systèmes de Post,§ Machines RAM,§ Programmes JAVA, C, CAML, . . .§ . . .

Il s’avère que ces modèles, très différents, ont exactement lamême puissance

§ Thèse de Church/Turing : une fonction est calculable si etseulement si elle est calculable par machine de Turing.

‚ (exprimée clairement pour la première fois par StephenKleene, étudiant en thèse d’Alonzo Church.)

19

Thèse de Church

Historiquement, plusieurs modèles :

§ Fonctions récursives, Kurt Gödel, 1931-34.§ λ-calcul, Alonzo Church, 1936.§ Machines de Turing, Alan Turing, 1936.§ Systèmes de Post,§ Machines RAM,§ Programmes JAVA, C, CAML, . . .§ . . .

Il s’avère que ces modèles, très différents, ont exactement lamême puissance

§ Thèse de Church/Turing : une fonction est calculable si etseulement si elle est calculable par machine de Turing.

‚ (exprimée clairement pour la première fois par StephenKleene, étudiant en thèse d’Alonzo Church.)

19

Parenthèse historique

Théorie de la relativité : 1907/1915Théorème d’incomplétude : 1931

20

Alan M. Turing

. . .BB 2 3 j u i n 1 9 1 2 - - 7 j u i n 1 9 5 4 BB. . .

q

Machines de Turing : 193621

Parenthèse historique

Ces modèles sont nés des suites du théorème d’incomplétudede Kurt Gödel :

Et en fait de la question suivante “Entscheidungsproblem” :

Peut-on décider mécaniquementsi un énoncé est démontrable ou non ?

Il s’avère que préciser “mécaniquement”, c’est formaliser lanotion d’algorithme.

22

Parenthèse historique

Ces modèles sont nés des suites du théorème d’incomplétudede Kurt Gödel :

Et en fait de la question suivante “Entscheidungsproblem” :

Peut-on décider mécaniquementsi un énoncé est démontrable ou non ?

Il s’avère que préciser “mécaniquement”, c’est formaliser lanotion d’algorithme.

22

Parenthèse historique

Ces modèles sont nés des suites du théorème d’incomplétudede Kurt Gödel :

Et en fait de la question suivante “Entscheidungsproblem” :

Peut-on décider mécaniquementsi un énoncé est démontrable ou non ?

Il s’avère que préciser “mécaniquement”, c’est formaliser lanotion d’algorithme.

22

Au menu

Retour sur l’épisode précédent : complétude

Graphes, Groupes, Corps, . . .Et les entiers ?

Théorème d’incomplétude

Quelques applications

Objectif de la suite du cours

Machines de Turing

Demain et Prochain épisode

Plus précisément

Machines de TuringIngrédientsDescription formelleProgrammer avec des machines de TuringTechniques de programmationVariantes de la notion de machine de Turing

Machine de Turing

ruban. . .B B B B B a b a a b B B B B B B B B B B . . .

q

Une machine de Turing (déterministe) est composée deséléments suivants :

§ une mémoire infinie sous forme de ruban, divisé en cases ;§ chaque case peut contenir un élément d’un alphabet fini fixé ;§ une tête de lecture qui se déplace sur le ruban ;§ un programme donné par une fonction de transition qui pour

chaque état de la machine q, parmi un nombre fini d’étatspossibles Q, précise selon le symbole sous la tête de lecture :

1. l’état suivant q1 P Q ;2. le nouvel élément de Σ à écrire à la place de l’élément de Σ

sous la tête de lecture ;3. un sens de déplacement Ð, |, ou Ñ pour la tête de lecture.

23

Machine de Turing

ruban. . .B B B B B a b a a b B B B B B B B B B B . . .

q

Une machine de Turing (déterministe) est composée deséléments suivants :

§ une mémoire infinie sous forme de ruban, divisé en cases ;

§ chaque case peut contenir un élément d’un alphabet fini fixé ;§ une tête de lecture qui se déplace sur le ruban ;§ un programme donné par une fonction de transition qui pour

chaque état de la machine q, parmi un nombre fini d’étatspossibles Q, précise selon le symbole sous la tête de lecture :

1. l’état suivant q1 P Q ;2. le nouvel élément de Σ à écrire à la place de l’élément de Σ

sous la tête de lecture ;3. un sens de déplacement Ð, |, ou Ñ pour la tête de lecture.

23

Machine de Turing

ruban. . .B B B B B a b a a b B B B B B B B B B B . . .

q

Une machine de Turing (déterministe) est composée deséléments suivants :

§ une mémoire infinie sous forme de ruban, divisé en cases ;§ chaque case peut contenir un élément d’un alphabet fini fixé ;

§ une tête de lecture qui se déplace sur le ruban ;§ un programme donné par une fonction de transition qui pour

chaque état de la machine q, parmi un nombre fini d’étatspossibles Q, précise selon le symbole sous la tête de lecture :

1. l’état suivant q1 P Q ;2. le nouvel élément de Σ à écrire à la place de l’élément de Σ

sous la tête de lecture ;3. un sens de déplacement Ð, |, ou Ñ pour la tête de lecture.

23

Machine de Turing

ruban. . .B B B B B a b a a b B B B B B B B B B B . . .

q

Une machine de Turing (déterministe) est composée deséléments suivants :

§ une mémoire infinie sous forme de ruban, divisé en cases ;§ chaque case peut contenir un élément d’un alphabet fini fixé ;§ une tête de lecture qui se déplace sur le ruban ;

§ un programme donné par une fonction de transition qui pourchaque état de la machine q, parmi un nombre fini d’étatspossibles Q, précise selon le symbole sous la tête de lecture :

1. l’état suivant q1 P Q ;2. le nouvel élément de Σ à écrire à la place de l’élément de Σ

sous la tête de lecture ;3. un sens de déplacement Ð, |, ou Ñ pour la tête de lecture.

23

Machine de Turing

ruban. . .B B B B B a b a a b B B B B B B B B B B . . .

q

Une machine de Turing (déterministe) est composée deséléments suivants :

§ une mémoire infinie sous forme de ruban, divisé en cases ;§ chaque case peut contenir un élément d’un alphabet fini fixé ;§ une tête de lecture qui se déplace sur le ruban ;§ un programme donné par une fonction de transition qui pour

chaque état de la machine q, parmi un nombre fini d’étatspossibles Q, précise selon le symbole sous la tête de lecture :

1. l’état suivant q1 P Q ;2. le nouvel élément de Σ à écrire à la place de l’élément de Σ

sous la tête de lecture ;3. un sens de déplacement Ð, |, ou Ñ pour la tête de lecture.

23

Machine de Turing

ruban. . .B B B B B a b a a b B B B B B B B B B B . . .

q

Une machine de Turing (déterministe) est composée deséléments suivants :

§ une mémoire infinie sous forme de ruban, divisé en cases ;§ chaque case peut contenir un élément d’un alphabet fini fixé ;§ une tête de lecture qui se déplace sur le ruban ;§ un programme donné par une fonction de transition qui pour

chaque état de la machine q, parmi un nombre fini d’étatspossibles Q, précise selon le symbole sous la tête de lecture :1. l’état suivant q1 P Q ;

2. le nouvel élément de Σ à écrire à la place de l’élément de Σsous la tête de lecture ;

3. un sens de déplacement Ð, |, ou Ñ pour la tête de lecture.

23

Machine de Turing

ruban. . .B B B B B a b a a b B B B B B B B B B B . . .

q

Une machine de Turing (déterministe) est composée deséléments suivants :

§ une mémoire infinie sous forme de ruban, divisé en cases ;§ chaque case peut contenir un élément d’un alphabet fini fixé ;§ une tête de lecture qui se déplace sur le ruban ;§ un programme donné par une fonction de transition qui pour

chaque état de la machine q, parmi un nombre fini d’étatspossibles Q, précise selon le symbole sous la tête de lecture :1. l’état suivant q1 P Q ;2. le nouvel élément de Σ à écrire à la place de l’élément de Σ

sous la tête de lecture ;

3. un sens de déplacement Ð, |, ou Ñ pour la tête de lecture.

23

Machine de Turing

ruban. . .B B B B B a b a a b B B B B B B B B B B . . .

q

Une machine de Turing (déterministe) est composée deséléments suivants :

§ une mémoire infinie sous forme de ruban, divisé en cases ;§ chaque case peut contenir un élément d’un alphabet fini fixé ;§ une tête de lecture qui se déplace sur le ruban ;§ un programme donné par une fonction de transition qui pour

chaque état de la machine q, parmi un nombre fini d’étatspossibles Q, précise selon le symbole sous la tête de lecture :1. l’état suivant q1 P Q ;2. le nouvel élément de Σ à écrire à la place de l’élément de Σ

sous la tête de lecture ;3. un sens de déplacement Ð, |, ou Ñ pour la tête de lecture.

23

Exécution d’une machine de Turing sur un mot :configuration initiale

. . .B B B B B i n f o r m a t i q u e B B B . . .

q0

Initialement :§ l’entrée se trouve sur le ruban, et la tête de lecture est

positionnée sur la première lettre du mot.§ Les cases des rubans qui ne correspondent pas à l’entrée

contiennent toutes l’élément B (symbole de blanc), qui est unelettre particulière.

§ La machine est positionnée dans son état initial q0.

24

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB i n f o r m a t i q u e BBB. . .

q0

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I n f o r m a t i q u e BBB. . .

q1

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N f o r m a t i q u e BBB. . .

q1

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N F o r m a t i q u e BBB. . .

q1

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N FO r m a t i q u e BBB. . .

q1

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N FORm a t i q u e BBB. . .

q2

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N FORMa t i q u e BBB. . .

q2

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N FORMA t i q u e BBB. . .

q2

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N FORMAT i q u e BBB. . .

q2

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N FORMAT I q u e BBB. . .

q2

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N FORMAT I Q u e BBB. . .

q2

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N FORMAT I QU e BBB. . .

q2

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Exécution d’une machine de Turing sur un mot :configurations suivantes

. . .BBBBB I N FORMAT I QUEBBB. . .

qa

A chaque étape de l’exécution :

§ la machine, selon son état, lit le symbole se trouvant sous latête de lecture, et selon ce symbole :‚ remplace le symbole sous la tête de lecture par celui précisé

par sa fonction transition ;‚ déplace possiblement cette tête de lecture d’une case vers la

droite ou vers la gauche suivant le sens précisé par la fonctionde transition ;

‚ change d’état vers l’état suivant.

Le mot w est dit accepté lorsque l’exécution de la machinefinit par atteindre son état d’acceptation qa.

25

Plus précisément

Machines de TuringIngrédientsDescription formelleProgrammer avec des machines de TuringTechniques de programmationVariantes de la notion de machine de Turing

Machine de Turing

Une machine de Turing est un 8-uplet

M “ pQ,Σ, Γ,B, δ, q0, qa, qr q

où :1. Q est l’ensemble fini des états ;2. Σ est un alphabet fini ;3. Γ est l’alphabet de travail fini : Σ Ă Γ ;4. B P Γ, B R Σ est le caractère blanc ;5. q0 P Q est l’état initial ;6. qa P Q est l’état d’acceptation ;7. qr P Q est l’état de refus (ou d’arrêt) ;8. δ est la fonction de transition : δ est une fonction

(possiblement partielle) de Q ˆ Γ dans Q ˆ Γˆ tÐ, |,Ñu. Lesymbole Ð est utilisé pour signifier un déplacement vers lagauche, Ñ un déplacement vers la droite, et | aucundéplacement.

26

ConfigurationUne configuration est donnée par la description du ruban,par la position de la tête de lecture/écriture, et par l’étatinterne.

ruban. . .B B B i n f o r m a t i q u e B B B B B . . .

q

§ Notation 1 : pq, fni , ormatiqueq‚ Cas général : C “ pq, u, vq, avec u, v P Γ˚, q P Q : u et v

désignent le contenu respectivement à gauche et à droite de latête de lecture du ruban, la tête de lecture du ruban étant surla première lettre de v . On suppose que les dernières lettres deu et de v ne sont pas B, qu’à droite et à gauche de u et v surle ruban il n’y a que des B et que v est écrit de gauche àdroite, et u de droite à gauche.

§ Notation 2 : inf qormatique.‚ Cas général : uqv , en gardant u et v écrit de gauche à droite.

27

ConfigurationUne configuration est donnée par la description du ruban,par la position de la tête de lecture/écriture, et par l’étatinterne.

ruban. . .B B B i n f o r m a t i q u e B B B B B . . .

q

§ Notation 1 : pq, fni , ormatiqueq‚ Cas général : C “ pq, u, vq, avec u, v P Γ˚, q P Q : u et v

désignent le contenu respectivement à gauche et à droite de latête de lecture du ruban, la tête de lecture du ruban étant surla première lettre de v . On suppose que les dernières lettres deu et de v ne sont pas B, qu’à droite et à gauche de u et v surle ruban il n’y a que des B et que v est écrit de gauche àdroite, et u de droite à gauche.

§ Notation 2 : inf qormatique.‚ Cas général : uqv , en gardant u et v écrit de gauche à droite.

27

Dérivations entre configurationsUne configuration est dite acceptante si q “ qa, refusante siq “ qr .

Pour w P Σ˚, la configuration initiale correspondant à w est laconfiguration C rw s “ pq0, ε,wq.

On note : C $ C 1 si la configuration C 1 est le successeurdirect de la configuration C par le programme δ de la machinede Turing.

§ Formellement, si C “ pq, u, vq et si a désigne la premièrelettre 2 de v , et si δpq, aq “ pq1, a1,m1q alors C $ C 1 si‚ C 1 “ pq1, u1, v 1q, et‚ si m1 “Ñ, u1 “ a1u, et v 1 est obtenu en supprimant la

première lettre a de v .‚ si m1 “Ð, u1 est obtenu en supprimant la première lettre a2

de u, et v 1 est obtenu en concaténtant a2 et le resultat duremplacement de la premère lettre a de v par a1.

‚ si m1 “ |, u1 “ u, et v 1 est obtenu en remplaçant la premèrelettre a de v par a1.

2. Avec la convention que la première lettre du mot vide est le blanc B.28

Dérivations entre configurationsUne configuration est dite acceptante si q “ qa, refusante siq “ qr .

Pour w P Σ˚, la configuration initiale correspondant à w est laconfiguration C rw s “ pq0, ε,wq.

On note : C $ C 1 si la configuration C 1 est le successeurdirect de la configuration C par le programme δ de la machinede Turing.

§ Formellement, si C “ pq, u, vq et si a désigne la premièrelettre 2 de v , et si δpq, aq “ pq1, a1,m1q alors C $ C 1 si‚ C 1 “ pq1, u1, v 1q, et‚ si m1 “Ñ, u1 “ a1u, et v 1 est obtenu en supprimant la

première lettre a de v .‚ si m1 “Ð, u1 est obtenu en supprimant la première lettre a2

de u, et v 1 est obtenu en concaténtant a2 et le resultat duremplacement de la premère lettre a de v par a1.

‚ si m1 “ |, u1 “ u, et v 1 est obtenu en remplaçant la premèrelettre a de v par a1.

2. Avec la convention que la première lettre du mot vide est le blanc B.28

Calcul par une machine de TuringUn mot w P Σ˚ est dit accepté (en temps t) par la machinede Turing, s’il existe une suite de configurations C1, ¨ ¨ ¨ ,Ct

avec :1. C0 “ C rw s ;2. Ci $ Ci`1 pour tout i ă t ;3. aucune configuration Ci pour i ă t n’est acceptante ou

refusante.4. Ct est acceptante.

Un mot w P Σ˚ est dit refusé (en temps t) par la machine deTuring, s’il existe une suite de configurations C1, ¨ ¨ ¨ ,Ct avec :1. C0 “ C rw s ;2. Ci $ Ci`1 pour tout i ă t ;3. aucune configuration Ci pour i ă t n’est acceptante ou

refusante.4. Ct est refusante.

On dit que la machine de Turing s’arrête sur un mot w , si west accepté, ou refusé, boucle dans le cas contraire (= n’est niaccepté, ni refusé).

29

Calcul par une machine de Turing

Le langage L Ă Σ˚ accepté par M, noté LpMq est l’ensembledes mots w qui sont acceptés par la machine.

On dit qu’un langage L Ă Σ˚ est décidé par Σ par lamachine si :

§ pour w P L, w est accepté par la machine ;§ pour w R L (=sinon), w est refusé par la machine.

‚ Autrement dit, la machine accepte L et termine sur touteentrée.

30

Plus précisément

Machines de TuringIngrédientsDescription formelleProgrammer avec des machines de TuringTechniques de programmationVariantes de la notion de machine de Turing

Premier programme

Construire une machine de Turing qui accepte exactement lesmots w sur l’alphabet Σ “ t0, 1u de la forme 0n1n,n P N, n ą 0.

§ Voici une solution :‚ On considère une machine avec Q “ tq0, q1, q2, q3, q4u,

Γ “ t0, 1,X ,Y ,Bu,‚ l’état d’acceptation q4 et une fonction de transition δ telle

que :‚ δpq0, 0q “ pq1,X ,Ñq ;‚ δpq0,Y q “ pq3,Y ,Ñq ;‚ δpq1, 0q “ pq1, 0,Ñq ;‚ δpq1, 1q “ pq2,Y ,Ðq ;‚ δpq1,Y q “ pq1,Y ,Ñq ;‚ δpq2, 0q “ pq2, 0,Ðq ;‚ δpq2,X q “ pq0,X ,Ñq ;‚ δpq2,Y q “ pq2,Y ,Ðq ;‚ δpq3,Y q “ pq3,Y ,Ñq ;‚ δpq3,Bq “ pq4,B,Ñq.

31

Premier programme

Construire une machine de Turing qui accepte exactement lesmots w sur l’alphabet Σ “ t0, 1u de la forme 0n1n,n P N, n ą 0.

§ Voici une solution :‚ On considère une machine avec Q “ tq0, q1, q2, q3, q4u,

Γ “ t0, 1,X ,Y ,Bu,‚ l’état d’acceptation q4 et une fonction de transition δ telle

que :‚ δpq0, 0q “ pq1,X ,Ñq ;‚ δpq0,Y q “ pq3,Y ,Ñq ;‚ δpq1, 0q “ pq1, 0,Ñq ;‚ δpq1, 1q “ pq2,Y ,Ðq ;‚ δpq1,Y q “ pq1,Y ,Ñq ;‚ δpq2, 0q “ pq2, 0,Ðq ;‚ δpq2,X q “ pq0,X ,Ñq ;‚ δpq2,Y q “ pq2,Y ,Ðq ;‚ δpq3,Y q “ pq3,Y ,Ñq ;‚ δpq3,Bq “ pq4,B,Ñq.

31

Représentation graphique

Convention graphique :

les sommets dugraphe représententles états de lamachine ;

on représentechaque transitionδpq, aq “ pq1, a1,mqpar un arc de l’étatq vers l’état q1étiqueté para{a1 m ;

l’état initial estmarqué par uneflèche entrante ;

l’état d’acceptationest marqué par undouble cercle.

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X ÑY/Y Ð

Y/Y Ñ

B/B Ñ

32

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBB 0 0 1 1BBBBBBBBBBB. . .

q0

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBX 0 1 1BBBBBBBBBBB. . .

q1

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBX 0 1 1BBBBBBBBBBB. . .

q1

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBX 0 Y 1BBBBBBBBBBB. . .

q2

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBX 0 Y 1BBBBBBBBBBB. . .

q2

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBX 0 Y 1BBBBBBBBBBB. . .

q0

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBXXY 1BBBBBBBBBBB. . .

q1

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBXXY 1BBBBBBBBBBB. . .

q1

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBXXYYBBBBBBBBBBB. . .

q2

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBXXYYBBBBBBBBBBB. . .

q2

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBXXYYBBBBBBBBBBB. . .

q0

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBXXYYBBBBBBBBBBB. . .

q3

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBXXYYBBBBBBBBBBB. . .

q3

33

Comment fonctionne-t-il ?

q0start q1 q2

q3 q4

0/X Ñ

Y/Y Ñ

0/0 ÑY/Y Ñ

1/Y Ð

0/0 Ð

X/X Ñ Y/Y Ð

Y/Y Ñ

B/B Ñ

. . .BBBBBXXYYBBBBBBBBBBB. . .

q4

33

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBB 0 0 1 1BBBBBBBBBBB. . .

q0

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBX 0 1 1BBBBBBBBBBB. . .

q1

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBX 0 1 1BBBBBBBBBBB. . .

q1

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBX 0 Y 1BBBBBBBBBBB. . .

q2

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBX 0 Y 1BBBBBBBBBBB. . .

q2

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBX 0 Y 1BBBBBBBBBBB. . .

q0

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBXXY 1BBBBBBBBBBB. . .

q1

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBXXY 1BBBBBBBBBBB. . .

q1

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBXXYYBBBBBBBBBBB. . .

q2

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBXXYYBBBBBBBBBBB. . .

q2

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBXXYYBBBBBBBBBBB. . .

q0

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBXXYYBBBBBBBBBBB. . .

q3

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBXXYYBBBBBBBBBBB. . .

q3

34

Principe :

§ Le ruban reste de la forme X˚0˚Y ˚1˚.§ A chaque fois que l’on lit un 0, on le remplace par un X , et on

rentre dans l’état q1, ce qui correspond à lancer lasous-procédure suivante :‚ on se déplace à droite tant que l’on lit un 0 ou un Y ;‚ dès qu’on a atteint un 1, on le transforme en un Y , et on

revient à gauche jusqu’à revenir sur un X (le X qu’on avaitécrit) et s’être déplacé d’une case vers la droite.

‚ En faisant ainsi, pour chaque 0 effacé (i.e. X marqué), onaura effacé un 1 (i.e. marqué un Y ).

§ Si on a marqué tous les 0 et que l’on atteint un Y , on rentredans l’état q3,‚ ce qui a pour objet de vérifier que ce qui est à droite est bien

constitué uniquement de Y .§ Lorsqu’on a tout lu, c-à-d atteint un B, on accepte,

c’est-à-dire on va dans l’état q4.

. . .BBBBBXXYYBBBBBBBBBBB. . .

q4

34

Diagramme Espace-tempsOn représente souvent une suite de configurations ligne parligne : la ligne numéro i représente la ième configuration ducalcul (en utilisant la notation 2 pour les configurations).Exemple : Diagramme espace-temps du calcul sur 0011.

. . .B B B Bq0 0 0 1 1 B B B B B B B B B B B . . .

. . .B B B B Xq1 0 1 1 B B B B B B B B B B B . . .

. . .B B B B X 0 q1 1 1 B B B B B B B B B B B . . .

. . .B B B B Xq2 0 Y 1 B B B B B B B B B B B . . .

. . .B B B Bq2X 0 Y 1 B B B B B B B B B B B . . .

. . .B B B B Xq0 0 Y 1 B B B B B B B B B B B . . .

. . .B B B B X Xq1Y 1 B B B B B B B B B B B . . .

. . .B B B B X X Yq1 1 B B B B B B B B B B B . . .

. . .B B B B X Xq2Y Y B B B B B B B B B B B . . .

. . .B B B B Xq2X Y Y B B B B B B B B B B B . . .

. . .B B B B X Xq0Y Y B B B B B B B B B B B . . .

. . .B B B B X X Yq3Y B B B B B B B B B B B . . .

. . .B B B B X X Y Yq3B B B B B B B B B B B . . .

. . .B B B B X X Y Y Bq4B B B B B B B B B B . . .

35

Exemple : Diagramme espace-temps du calcul sur 0010 :

. . .B B B Bq0 0 0 1 0 B B B B B B B B B B B . . .

. . .B B B B Xq1 0 1 0 B B B B B B B B B B B . . .

. . .B B B B X 0 q1 1 0 B B B B B B B B B B B . . .

. . .B B B B Xq2 0 Y 0 B B B B B B B B B B B . . .

. . .B B B Bq2X 0 Y 0 B B B B B B B B B B B . . .

. . .B B B B Xq0 0 Y 0 B B B B B B B B B B B . . .

. . .B B B B X Xq1Y 0 B B B B B B B B B B B . . .

. . .B B B B X X Yq1 0 B B B B B B B B B B B . . .

. . .B B B B X X Y 0 q1B B B B B B B B B B B . . .

§ sur la dernière configuration plus aucune évolution n’estpossible, et donc il n’y a pas de calcul acceptant partant de0010.

§ on aurait pu construire la machine de telle sorte qu’elle serende dans un état de rejet q5 systématiquement lorsqu’aucunetransition du programme précédent n’est possible.

36

Exemple : Diagramme espace-temps du calcul sur 0010 :

. . .B B B Bq0 0 0 1 0 B B B B B B B B B B B . . .

. . .B B B B Xq1 0 1 0 B B B B B B B B B B B . . .

. . .B B B B X 0 q1 1 0 B B B B B B B B B B B . . .

. . .B B B B Xq2 0 Y 0 B B B B B B B B B B B . . .

. . .B B B Bq2X 0 Y 0 B B B B B B B B B B B . . .

. . .B B B B Xq0 0 Y 0 B B B B B B B B B B B . . .

. . .B B B B X Xq1Y 0 B B B B B B B B B B B . . .

. . .B B B B X X Yq1 0 B B B B B B B B B B B . . .

. . .B B B B X X Y 0 q1B B B B B B B B B B B . . .

§ sur la dernière configuration plus aucune évolution n’estpossible, et donc il n’y a pas de calcul acceptant partant de0010.

§ on aurait pu construire la machine de telle sorte qu’elle serende dans un état de rejet q5 systématiquement lorsqu’aucunetransition du programme précédent n’est possible.

36

Soustraction en unaire

Construire un programme de machine de Turing qui réalise unesoustraction en unaire : partant d’un mot de la forme 0m10n,la machine s’arrête avec 0man sur son ruban (entouré deblancs), où m a n est maxp0,m ´ nq.

Détails

37

Plus précisément

Machines de TuringIngrédientsDescription formelleProgrammer avec des machines de TuringTechniques de programmationVariantes de la notion de machine de Turing

Technique 1 :Utiliser l’état interne pour stocker une information finie.

Exercice 1.

§ Construire un programme de machine de Turing qui lit lesymbole en face de la tête de lecture et vérifie que ce derniern’apparaît nulle part ailleurs à droite, sauf sur la toute dernièrelettre à droite.

Détails

38

Technique 2 :Utiliser des sous-procédures

Exercice 2 : Multiplication en unaire.

§ Construire un programme de machine de Turing qui réalise unemultiplication en unaire : partant d’un mot de la forme 0m10n,la machine s’arrête avec 0m˚n sur son ruban.

Détails

39

Exercices

Construire une machine de Turing qui ajoute (respectivement :soustrait) 1 au nombre écrit en binaire sur son ruban.

Construire une machine de Turing qui renverse son entrée :partant de w “ a1a2 ¨ ¨ ¨ an, la machine s’arrête avec le motwR “ an ¨ ¨ ¨ a2a1.

Construire une machine de Turing qui partant d’un motw#w1#w2, avec w ,w1,w2 écrits sur l’alphabet t0, 1u, leremplace par w1#w#w2.

. . .

voir la PC de demain.

. . .

40

Exercices

Construire une machine de Turing qui ajoute (respectivement :soustrait) 1 au nombre écrit en binaire sur son ruban.

Construire une machine de Turing qui renverse son entrée :partant de w “ a1a2 ¨ ¨ ¨ an, la machine s’arrête avec le motwR “ an ¨ ¨ ¨ a2a1.

Construire une machine de Turing qui partant d’un motw#w1#w2, avec w ,w1,w2 écrits sur l’alphabet t0, 1u, leremplace par w1#w#w2.

. . .

voir la PC de demain.

. . .

40

Plus précisément

Machines de TuringIngrédientsDescription formelleProgrammer avec des machines de TuringTechniques de programmationVariantes de la notion de machine de Turing

Robustesse du modèle

Le modèle de la machine de Turing est extrêmement robuste.

On peut en effet envisager de nombreuses variantes autour duconcept de machine de Turing,

§ mais aucune de ces variantes ne change ce que l’on arrive àprogrammer avec ces machines.

41

Robustesse du modèle

Le modèle de la machine de Turing est extrêmement robuste.

On peut en effet envisager de nombreuses variantes autour duconcept de machine de Turing,

§ mais aucune de ces variantes ne change ce que l’on arrive àprogrammer avec ces machines.

41

Restriction à un alphabet binaire

Toute machine de Turing qui travaille sur un alphabet Σquelconque peut être simulée par une machine de Turing quitravaille sur un alphabet Σ avec uniquement deux lettres, avecΓ “ ΣY tBu.

Idée de la démonstration :

§ Machine M sur l’alphabet ta, b, cu

. . . B B B B B a b a a c b B B B B B B B B B . . .

q7

§ Machine M 1 simulant M sur l’alphabet t0, 1u.

. . . B B B B B 0 0 0 1 0 0 0 0 1 0 0 1 B B B . . .

q7

a b a a c b

42

Restriction à un alphabet binaire

Toute machine de Turing qui travaille sur un alphabet Σquelconque peut être simulée par une machine de Turing quitravaille sur un alphabet Σ avec uniquement deux lettres, avecΓ “ ΣY tBu.

Idée de la démonstration :

§ Machine M sur l’alphabet ta, b, cu

. . . B B B B B a b a a c b B B B B B B B B B . . .

q7

§ Machine M 1 simulant M sur l’alphabet t0, 1u.

. . . B B B B B 0 0 0 1 0 0 0 0 1 0 0 1 B B B . . .

q7

a b a a c b

42

Restriction à un alphabet binaire

Toute machine de Turing qui travaille sur un alphabet Σquelconque peut être simulée par une machine de Turing quitravaille sur un alphabet Σ avec uniquement deux lettres, avecΓ “ ΣY tBu.

Idée de la démonstration :

§ Machine M sur l’alphabet ta, b, cu

. . . B B B B B a b a a c b B B B B B B B B B . . .

q7

§ Machine M 1 simulant M sur l’alphabet t0, 1u.

. . . B B B B B 0 0 0 1 0 0 0 0 1 0 0 1 B B B . . .

q7

a b a a c b

42

Machines de Turing à plusieurs rubans

ruban 1. . . B B B B B a b a a b B B B B B . . .

ruban 2. . . B B B B B b c a a B B B B B B . . .

ruban 3. . . B B B B B a a b a B B B B B B . . .

q5

43

Toute machine de Turing qui travaille avec k rubans peut êtresimulée par une machine de Turing avec un unique ruban.

Idée de la démonstration :

. . . B B B a b’ a a b # b c a a’ # a a b’ a B B . . .

q0

ruban 1 ruban 2 ruban 3

44

Toute machine de Turing qui travaille avec k rubans peut êtresimulée par une machine de Turing avec un unique ruban.

Idée de la démonstration :

. . . B B B a b’ a a b # b c a a’ # a a b’ a B B . . .

q0

ruban 1 ruban 2 ruban 3

44

Le modèle de la machine de Turing peut paraître extrêmementrudimentaire.

Il n’en demeure pas moins extrêmement puissant, et capablede capturer la notion de calculable en informatique.

45

Au menu

Retour sur l’épisode précédent : complétude

Graphes, Groupes, Corps, . . .Et les entiers ?

Théorème d’incomplétude

Quelques applications

Objectif de la suite du cours

Machines de Turing

Demain et Prochain épisode

Plus précisément

Demain et Prochain épisodeThèse de Church

Thèse de Church

Thèse de Church:

Calculable dans un sens intuitifcorrespond à

calculable par machine de Turing

46

ANNEXES

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBB 0 0 0 1 0BBBBBBBBBB. . .

q0

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 1 0BBBBBBBBBB. . .

q1

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 1 0BBBBBBBBBB. . .

q1

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 1 0BBBBBBBBBB. . .

q1

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 1 0BBBBBBBBBB. . .

q2

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q3

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q3

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q3

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q3

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q0

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBBB 0 1 1BBBBBBBBBB. . .

q1

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBBB 0 1 1BBBBBBBBBB. . .

q1

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBBB 0 1 1BBBBBBBBBB. . .

q2

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBBB 0 1 1BBBBBBBBBB. . .

q2

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBBB 0 1 1 BBBBBBBBBB. . .

q4

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBBB 0 1 BBBBBBBBBBB. . .

q4

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBBB 0 BBBBBBBBBBBB. . .

q4

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBBB 0 BBBBBBBBBBBB. . .

q4

SoustractionVoici une solution avec Γ “ t0, 1,Bu.

q0start q1 q2

q3

q4q6q5

0/B Ñ

0/0 Ñ

1/1 Ñ

0/1 Ð

1/1 Ñ0/0 Ð

1/1 Ð

B/B Ñ

B/B Ð

0/0 Ð

1/B ÐB/0 Ñ

B/B Ñ

0/B Ñ

1/B Ñ

1/B Ñ

. . .BBBBBB 0 0 BBBBBBBBBBBB. . .

q6

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBB 0 0 0 1 0BBBBBBBBBB. . .

q0

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 1 0BBBBBBBBBB. . .

q1

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 1 0BBBBBBBBBB. . .

q1

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 1 0BBBBBBBBBB. . .

q1

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 1 0BBBBBBBBBB. . .

q2

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q3

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q3

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q3

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q3

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 1 1BBBBBBBBBB. . .

q0

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBBB 0 1 1BBBBBBBBBB. . .

q1

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBBB 0 1 1BBBBBBBBBB. . .

q1

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBBB 0 1 1BBBBBBBBBB. . .

q2

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBBB 0 1 1BBBBBBBBBB. . .

q2

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBBB 0 1 1 BBBBBBBBBB. . .

q4

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBBB 0 1 BBBBBBBBBBB. . .

q4

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBBB 0 BBBBBBBBBBBB. . .

q4

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBBB 0 BBBBBBBBBBBB. . .

q4

Principe : Retour

§ La machine recherche le 0 le plus à gauche et le remplace parun blanc. Elle cherche alors à droite un 1, quand elle en trouveun elle continue à droite jusqu’à trouver un 0 qu’elle remplacepar un 1. La machine retourne alors à gauche pour trouver le 0le plus à gauche qu’elle identifie en trouvant le premier blancen se déplaçant à gauche et en se déplaçant depuis ce blancd’une case vers la droite.

§ On répète le processus jusqu’à ce que :‚ soit en cherchant à droite un 0, on rencontre un blanc. Alors

les n 0 dans 0m10n ont été changés en 1 et n ` 1 des m 0 ontété changés en B. Dans ce cas, la machine remplace les n ` 11 par un 0 et n blancs, ce qui laisse m ´ n 0 sur le ruban.Puisque dans ce cas, m ě n, m a n “ m ´ n.

‚ ou en recommençant le cycle, la machine n’arrive pas àtrouver un 0 à changer en blanc, puisque les m premiers 0 ontdéjà été changés en B. Alors n ě m, et donc m a n “ 0. Lamachine remplace alors tous les 1 et 0 restants par des blancs,et termine avec un ruban complètement blanc.

. . .BBBBBB 0 0 BBBBBBBBBBBB. . .

q6

Utiliser l’état interne pour stocker une information finie

Si l’on fixe un symbole a0 P Σ, il est facile de construire unprogramme qui vérifie que le symbole a0 n’apparaît nulle partsauf sur la toute dernière lettre à droite.

q0start q2q1

@a P Σ, a ‰ a0, a/a Ñ

B/B Ða0/a0 Ñ

Pour résoudre notre problème, il suffit de lire la première lettrea0 et de recopier ce programme autant de fois qu’il y a delettres dans Σ. Si Σ “ t0, 1, 2u par exemple :

qstart q0{0

q0{1

q0{2

qf

0/0 Ñ

1/1 Ñ

2/2 Ñ

q1{0

@a P Σ, a ‰ 0, a/a Ñ

B/B Ð

0/0 Ñ

q1{1

@a P Σ, a ‰ 1, a/a Ñ

B/B Ð1/1 Ñ

q1{2

@a P Σ, a ‰ 2, a/a Ñ B/B Ð

2/2 ÑRetour

§ On utilise le fait que l’on travaille sur des états qui peuventêtre des couples : ici des couples qi{j avec i P t1, 2u, et j P Σ.

Pour résoudre notre problème, il suffit de lire la première lettrea0 et de recopier ce programme autant de fois qu’il y a delettres dans Σ. Si Σ “ t0, 1, 2u par exemple :

qstart q0{0

q0{1

q0{2

qf

0/0 Ñ

1/1 Ñ

2/2 Ñ

q1{0

@a P Σ, a ‰ 0, a/a Ñ

B/B Ð

0/0 Ñ

q1{1

@a P Σ, a ‰ 1, a/a Ñ

B/B Ð1/1 Ñ

q1{2

@a P Σ, a ‰ 2, a/a Ñ B/B Ð

2/2 ÑRetour

§ On utilise le fait que l’on travaille sur des états qui peuventêtre des couples : ici des couples qi{j avec i P t1, 2u, et j P Σ.

Technique 2 :Utiliser des sous-procédures

Voici une stratégie possible :

1. le ruban contiendra un mot de la forme 0i10n10kn pour uncertain entier k ;

2. dans chaque étape, on change un 0 du premier groupe en unblanc, et on ajoute n 0 au dernier groupe, pour obtenir unechaîne de la forme 0i´110n10pk`1qn ;

3. en faisant ainsi, on copie le groupe de n 0 m fois, une fois pourchaque symbole du premier groupe mis à blanc. Quand il nereste plus de blanc dans le premier groupe de 0, il y aura doncm ˚ n 0 dans le dernier groupe ;

4. la dernière étape est de changer le préfixe 10n1 en des blancs,et cela sera terminé.

Implémenter l’étape 2Transformer une configuration 0m´k1q10n10pk´1qn en0m´k1q50n10kn.

q1start q2

q3

q4

q5

0/X Ñ1/1 Ñ

0/0 Ñ

B/0 Ð1/1 Ð

0/0 Ð

X/X Ñ1/1 Ð

X/0 Ð

1/1 Ñ

Programme global

q0start

q6 q1 q5 q7 q8

q9

q10q11q12

0/B Ñ

0/0 Ñ

1/1 Ñ 0/0 Ð 1/1 Ð

0/0 Ð

0/0 Ð

B/B Ñ

B/B Ñ

1/B Ñ

0/B Ñ

1/B Ñ

§ On utilise le fait que l’on peut réaliser des sous-procédures en“collant” des programmes correspondant à dessous-procédures.

Retour

Programme global

q0start

q6 q1 q5 q7 q8

q9

q10q11q12

0/B Ñ

0/0 Ñ

1/1 Ñ 0/0 Ð 1/1 Ð

0/0 Ð

0/0 Ð

B/B Ñ

B/B Ñ

1/B Ñ

0/B Ñ

1/B Ñ

§ On utilise le fait que l’on peut réaliser des sous-procédures en“collant” des programmes correspondant à dessous-procédures.

Retour