• Aucun résultat trouvé

Machines de Turing, langages, automates, grammaires INFO1 - Semaines 42 à 2 Guillaume CONNAN

N/A
N/A
Protected

Academic year: 2022

Partager "Machines de Turing, langages, automates, grammaires INFO1 - Semaines 42 à 2 Guillaume CONNAN"

Copied!
373
0
0

Texte intégral

(1)

INFO1 - Semaines 42 à 2

Guillaume CONNAN

IUT de Nantes - Dpt d'informatique

Dernière mise à jour : 6 janvier 2012

(2)

2 Les machines de Turing Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(IUT de Nantes - Dpt d'informatique ) 2 / 163

(3)

Sommaire

1 Approche historique 2 Les machines de Turing

Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Automates déterministes

Opérations rationnelles sur les automates Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(4)

Alonzo Church (1903-1995)

(IUT de Nantes - Dpt d'informatique ) 4 / 163

(5)

Alan Turing (1912-1954)

(6)

(IUT de Nantes - Dpt d'informatique ) 6 / 163

(7)

Sommaire

1 Approche historique 2 Les machines de Turing

Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Automates déterministes

Opérations rationnelles sur les automates Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(8)

1 Approche historique 2 Les machines de Turing

Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Automates déterministes

Opérations rationnelles sur les automates Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(IUT de Nantes - Dpt d'informatique ) 8 / 163

(9)
(10)

Ruban

ε 1 0 0 1 1 ε

. . .

Tête de lecture/écriture État q

i

L'ensemble des symboles

©

0

,

1

,εª

forme un alphabet.

changer l'état du pointeur ;

changer le caractère pointé sur le ruban ;

déplacer le pointeur d'une case vers la gauche ou vers la droite.

(IUT de Nantes - Dpt d'informatique ) 10 / 163

(11)

Ruban

ε 1 0 0 1 1 ε

. . .

Tête de lecture/écriture État q

i

L'ensemble des symboles

©

0

,

1

,εª

forme un alphabet.

changer l'état du pointeur ;

changer le caractère pointé sur le ruban ;

déplacer le pointeur d'une case vers la gauche ou vers la droite.

(12)

Ruban

ε 1 0 0 1 1 ε

. . .

Tête de lecture/écriture État q

i

L'ensemble des symboles

©

0

,

1

,εª

forme un alphabet.

changer l'état du pointeur ;

changer le caractère pointé sur le ruban ;

déplacer le pointeur d'une case vers la gauche ou vers la droite.

(IUT de Nantes - Dpt d'informatique ) 10 / 163

(13)

Ruban

ε 1 0 0 1 1 ε

. . .

Tête de lecture/écriture État q

i

L'ensemble des symboles

©

0

,

1

,εª

forme un alphabet.

changer l'état du pointeur ;

changer le caractère pointé sur le ruban ;

déplacer le pointeur d'une case vers la gauche ou vers la droite.

(14)

Ruban

ε 1 0 0 1 1 ε

. . .

Tête de lecture/écriture État q

i

L'ensemble des symboles

©

0

,

1

,εª

forme un alphabet.

changer l'état du pointeur ;

changer le caractère pointé sur le ruban ;

déplacer le pointeur d'une case vers la gauche ou vers la droite.

(IUT de Nantes - Dpt d'informatique ) 10 / 163

(15)

Sommaire

1 Approche historique 2 Les machines de Turing

Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Automates déterministes

Opérations rationnelles sur les automates Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(16)

On entre un mot écrit à partir de l'alphabet

©

0

,

1

,εª

Nous voudrions changer les 0 en 1 et vice-versa puis remettre le pointeur . dans sa position initiale.

(IUT de Nantes - Dpt d'informatique ) 12 / 163

(17)

On entre un mot écrit à partir de l'alphabet

©

0

,

1

,εª

Nous voudrions changer les 0 en 1 et vice-versa puis remettre le pointeur .

dans sa position initiale.

(18)

lorsque le pointeur rencontre le premier blanc, il se déplace vers la droite ;

chaque fois que le pointeur rencontre un 0 ou un 1, il le change en son complémentaire et se déplace vers la droite ;

lorsqu'il rencontre le deuxième blanc, il recule d'une case vers la gauche jusqu'à ce qu'il rencontre le premier blanc.

(IUT de Nantes - Dpt d'informatique ) 13 / 163

(19)

lorsque le pointeur rencontre le premier blanc, il se déplace vers la droite ;

chaque fois que le pointeur rencontre un 0 ou un 1, il le change en son complémentaire et se déplace vers la droite ;

lorsqu'il rencontre le deuxième blanc, il recule d'une case vers la

gauche jusqu'à ce qu'il rencontre le premier blanc.

(20)

lorsque le pointeur rencontre le premier blanc, il se déplace vers la droite ;

chaque fois que le pointeur rencontre un 0 ou un 1, il le change en son complémentaire et se déplace vers la droite ;

lorsqu'il rencontre le deuxième blanc, il recule d'une case vers la gauche jusqu'à ce qu'il rencontre le premier blanc.

(IUT de Nantes - Dpt d'informatique ) 13 / 163

(21)

automate

q

0 ε

/

ε

,D q

1

q

2

1/0,D

0/1,D

ε

/

ε

,G

0/0,G 1/1,G

Exemple

Testez cette machine sur la chaîne

ε

10011

ε

.

(22)

q

0 ε

/

ε

,D q

1

q

2

1/0,D

0/1,D

ε

/

ε

,G

0/0,G 1/1,G

Exemple

Testez cette machine sur la chaîne

ε

10011

ε

.

(IUT de Nantes - Dpt d'informatique ) 14 / 163

(23)

Sommaire

1 Approche historique 2 Les machines de Turing

Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Automates déterministes

Opérations rationnelles sur les automates Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(24)

M

=

(Q

,

X

) où

Q est un ensemble ni appelé alphabet d'état ;

X est un autre ensemble ni appelé alphabet de ruban ;

ϕ

est une fonction de domaine D

Q

×

X et à valeurs dans

Q

×

X

ש

G

,

R

,

D

ª

avec G, R, D les options du mouvement du pointeur (gauche, reste immobile, droite).

On choisira en général Q et X de telle sorte que leur intersection soit vide.

Quelques éléments particuliers : q

o

Q est l'état initial ;

Q

f

Q est l'ensemble des états naux ;

ε∈

X est le symbole blanc.

(IUT de Nantes - Dpt d'informatique ) 16 / 163

(25)

Dénition 1 (Machine de Turing)

Une machine de Turing standard (il en existe d'autres) est un triplet : M

=

(Q

,

X

)

Q est un ensemble ni appelé alphabet d'état ;

X est un autre ensemble ni appelé alphabet de ruban ;

ϕ

est une fonction de domaine D

Q

×

X et à valeurs dans

Q

×

X

ש

G

,

R

,

D

ª

avec G, R, D les options du mouvement du pointeur (gauche, reste immobile, droite).

On choisira en général Q et X de telle sorte que leur intersection soit vide.

Quelques éléments particuliers : q

o

Q est l'état initial ;

Q

f

Q est l'ensemble des états naux ;

ε∈

X est le symbole blanc.

(26)

M

=

(Q

,

X

) où

Q est un ensemble ni appelé alphabet d'état ;

X est un autre ensemble ni appelé alphabet de ruban ;

ϕ

est une fonction de domaine D

Q

×

X et à valeurs dans

Q

×

X

ש

G

,

R

,

D

ª

avec G, R, D les options du mouvement du pointeur (gauche, reste immobile, droite).

On choisira en général Q et X de telle sorte que leur intersection soit vide.

Quelques éléments particuliers : q

o

Q est l'état initial ;

Q

f

Q est l'ensemble des états naux ;

ε∈

X est le symbole blanc.

(IUT de Nantes - Dpt d'informatique ) 16 / 163

(27)

Dénition 1 (Machine de Turing)

Une machine de Turing standard (il en existe d'autres) est un triplet : M

=

(Q

,

X

)

Q est un ensemble ni appelé alphabet d'état ;

X est un autre ensemble ni appelé alphabet de ruban ;

ϕ

est une fonction de domaine D

Q

×

X et à valeurs dans

Q

×

X

ש

G

,

R

,

D

ª

avec G, R, D les options du mouvement du pointeur (gauche, reste immobile, droite).

On choisira en général Q et X de telle sorte que leur intersection soit vide.

Quelques éléments particuliers : q

o

Q est l'état initial ;

Q

f

Q est l'ensemble des états naux ;

ε∈

X est le symbole blanc.

(28)

M

=

(Q

,

X

) où

Q est un ensemble ni appelé alphabet d'état ;

X est un autre ensemble ni appelé alphabet de ruban ;

ϕ

est une fonction de domaine D

Q

×

X et à valeurs dans

Q

×

X

ש

G

,

R

,

D

ª

avec G, R, D les options du mouvement du pointeur (gauche, reste immobile, droite).

On choisira en général Q et X de telle sorte que leur intersection soit vide.

Quelques éléments particuliers : q

o

Q est l'état initial ;

Q

f

Q est l'ensemble des états naux ;

ε∈

X est le symbole blanc.

(IUT de Nantes - Dpt d'informatique ) 16 / 163

(29)

Dénition 1 (Machine de Turing)

Une machine de Turing standard (il en existe d'autres) est un triplet : M

=

(Q

,

X

)

Q est un ensemble ni appelé alphabet d'état ;

X est un autre ensemble ni appelé alphabet de ruban ;

ϕ

est une fonction de domaine D

Q

×

X et à valeurs dans

Q

×

X

ש

G

,

R

,

D

ª

avec G, R, D les options du mouvement du pointeur (gauche, reste immobile, droite).

On choisira en général Q et X de telle sorte que leur intersection soit vide.

Quelques éléments particuliers : q

o

Q est l'état initial ;

Q

f

Q est l'ensemble des états naux ;

ε∈

X est le symbole blanc.

(30)

M

=

(Q

,

X

) où

Q est un ensemble ni appelé alphabet d'état ;

X est un autre ensemble ni appelé alphabet de ruban ;

ϕ

est une fonction de domaine D

Q

×

X et à valeurs dans

Q

×

X

ש

G

,

R

,

D

ª

avec G, R, D les options du mouvement du pointeur (gauche, reste immobile, droite).

On choisira en général Q et X de telle sorte que leur intersection soit vide.

Quelques éléments particuliers : q

o

Q est l'état initial ;

Q

f

Q est l'ensemble des états naux ;

ε∈

X est le symbole blanc.

(IUT de Nantes - Dpt d'informatique ) 16 / 163

(31)

Q

q

0,

q

1,

q

2ª

X

ε,

0

,

1

ª

Q

f

q

2ª

ϕ

est dénie à l'aide du tableau suivant :

ϕ

(q

i,

x) q

0

q

1

q

2

ε

(q

1,ε,

D) (q

2,ε,

G)

0 (q

1,

1

,

D) (q

2,

0

,

G)

1 (q

1,

0

,

D) (q

2,

1

,

G)

(32)

Q

q

0,

q

1,

q

2ª

X

ε,

0

,

1

ª

Q

f

q

2ª

ϕ

est dénie à l'aide du tableau suivant :

ϕ

(q

i,

x) q

0

q

1

q

2

ε

(q

1,ε,

D) (q

2,ε,

G)

0 (q

1,

1

,

D) (q

2,

0

,

G)

1 (q

1,

0

,

D) (q

2,

1

,

G)

(IUT de Nantes - Dpt d'informatique ) 17 / 163

(33)

Q

q

0,

q

1,

q

2ª

X

ε,

0

,

1

ª

Q

f

q

2ª

ϕ

est dénie à l'aide du tableau suivant :

ϕ

(q

i,

x) q

0

q

1

q

2

ε

(q

1,ε,

D) (q

2,ε,

G)

0 (q

1,

1

,

D) (q

2,

0

,

G)

1 (q

1,

0

,

D) (q

2,

1

,

G)

(34)

Q

q

0,

q

1,

q

2ª

X

ε,

0

,

1

ª

Q

f

q

2ª

ϕ

est dénie à l'aide du tableau suivant :

ϕ

(q

i,

x) q

0

q

1

q

2

ε

(q

1,ε,

D) (q

2,ε,

G)

0 (q

1,

1

,

D) (q

2,

0

,

G)

1 (q

1,

0

,

D) (q

2,

1

,

G)

(IUT de Nantes - Dpt d'informatique ) 17 / 163

(35)

En fait, une machine de Turing agit sur des mots construits à partir d'un

alphabet.

(36)

Dénition 2

Soit X un alphabet. Soit

λ

le mot ne comportant aucun caractère.

L'ensemble X

des mots construits avec l'alphabet X est déni par :

1 λ∈

X

;

2

si a

X et m

X

, alors le mot construit à partir de m en ajoutant a à droite est un mot de X

;

3 µ

est un élément de X

seulement s'il peut être obtenu à partir de

λ

par application de l'étape 2 un nombre ni de fois.

(IUT de Nantes - Dpt d'informatique ) 19 / 163

(37)

Dénition 2

Soit X un alphabet. Soit

λ

le mot ne comportant aucun caractère.

L'ensemble X

des mots construits avec l'alphabet X est déni par :

1 λ∈

X

;

2

si a

X et m

X

, alors le mot construit à partir de m en ajoutant a à droite est un mot de X

;

3 µ

est un élément de X

seulement s'il peut être obtenu à partir de

λ

par application de l'étape 2 un nombre ni de fois.

(38)

Dénition 2

Soit X un alphabet. Soit

λ

le mot ne comportant aucun caractère.

L'ensemble X

des mots construits avec l'alphabet X est déni par :

1 λ∈

X

;

2

si a

X et m

X

, alors le mot construit à partir de m en ajoutant a à droite est un mot de X

;

3 µ

est un élément de X

seulement s'il peut être obtenu à partir de

λ

par application de l'étape 2 un nombre ni de fois.

(IUT de Nantes - Dpt d'informatique ) 19 / 163

(39)

Dénition 2

Soit X un alphabet. Soit

λ

le mot ne comportant aucun caractère.

L'ensemble X

des mots construits avec l'alphabet X est déni par :

1 λ∈

X

;

2

si a

X et m

X

, alors le mot construit à partir de m en ajoutant a à droite est un mot de X

;

3 µ

est un élément de X

seulement s'il peut être obtenu à partir de

λ

par application de l'étape 2 un nombre ni de fois.

(40)

Dénition 3 (Concaténation)

Soient m

1

et m

2

deux mots de X

. La concaténation de ces deux mots est le mot m

1

m

2

X

obtenu en écrivant m

2

à la suite de m

1

.

(IUT de Nantes - Dpt d'informatique ) 20 / 163

(41)

Sommaire

1 Approche historique 2 Les machines de Turing

Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Automates déterministes

Opérations rationnelles sur les automates Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(42)

Exemple 4

Nous allons construire une machine de Turing qui calcule le successeur de la représentation unaire d'un entier.

(IUT de Nantes - Dpt d'informatique ) 22 / 163

(43)

Dénition 5 (Représentation unaire d'un entier)

Un nombre entier n

∈N

a pour représentation unaire 1

n+1

c'est-à-dire la concaténation de n

+

1 symboles de l'alphabet X

1

ª

. Ainsi, la

représentation de 0 est 1, celle de 1 est 11, celle de 2 est 111, etc. On

notera n la représentation de l'entier n.

(44)

Dénition 5 (Représentation unaire d'un entier)

Un nombre entier n

∈N

a pour représentation unaire 1

n+1

c'est-à-dire la concaténation de n

+

1 symboles de l'alphabet X

1

ª

. Ainsi, la représentation de 0 est 1, celle de 1 est 11, celle de 2 est 111, etc. On notera n la représentation de l'entier n.

(IUT de Nantes - Dpt d'informatique ) 23 / 163

(45)

Dénition 5 (Représentation unaire d'un entier)

Un nombre entier n

∈N

a pour représentation unaire 1

n+1

c'est-à-dire la concaténation de n

+

1 symboles de l'alphabet X

1

ª

. Ainsi, la

représentation de 0 est 1, celle de 1 est 11, celle de 2 est 111, etc. On

notera n la représentation de l'entier n.

(46)

Dénition 5 (Représentation unaire d'un entier)

Un nombre entier n

∈N

a pour représentation unaire 1

n+1

c'est-à-dire la concaténation de n

+

1 symboles de l'alphabet X

1

ª

. Ainsi, la représentation de 0 est 1, celle de 1 est 11, celle de 2 est 111, etc. On notera n la représentation de l'entier n.

(IUT de Nantes - Dpt d'informatique ) 23 / 163

(47)

Décrivons une machine de Turing qui calcule cette fonction : la fonction successeur s est dénie sur D

λ,ε

1

ε,ε

11

ε,ε

111

ε, ...ª

l'entrée sur le ruban est donc la représentation unaire du nombre n : précédée du symbole

ε

, toutes les autres cases étant occupées par des

ε

;

l'alphabet de ruban est X

1

,εª

; l'alphabet d'état est

©

q

0,

q

1,

q

2ª

; Q

f

q

2ª

;

la fonction

ϕ

est décrite par l'automate suivant :

(48)

Décrivons une machine de Turing qui calcule cette fonction : la fonction successeur s est dénie sur D

λ,ε

1

ε,ε

11

ε,ε

111

ε, ...ª

l'entrée sur le ruban est donc la représentation unaire du nombre n : précédée du symbole

ε

, toutes les autres cases étant occupées par des

ε

;

l'alphabet de ruban est X

1

,εª

; l'alphabet d'état est

©

q

0,

q

1,

q

2ª

; Q

f

q

2ª

;

la fonction

ϕ

est décrite par l'automate suivant :

(IUT de Nantes - Dpt d'informatique ) 24 / 163

(49)

Décrivons une machine de Turing qui calcule cette fonction : la fonction successeur s est dénie sur D

λ,ε

1

ε,ε

11

ε,ε

111

ε, ...ª

l'entrée sur le ruban est donc la représentation unaire du nombre n : précédée du symbole

ε

, toutes les autres cases étant occupées par des

ε

;

l'alphabet de ruban est X

1

,εª

; l'alphabet d'état est

©

q

0,

q

1,

q

2ª

; Q

f

q

2ª

;

la fonction

ϕ

est décrite par l'automate suivant :

(50)

Décrivons une machine de Turing qui calcule cette fonction : la fonction successeur s est dénie sur D

λ,ε

1

ε,ε

11

ε,ε

111

ε, ...ª

l'entrée sur le ruban est donc la représentation unaire du nombre n : précédée du symbole

ε

, toutes les autres cases étant occupées par des

ε

;

l'alphabet de ruban est X

1

,εª

; l'alphabet d'état est

©

q

0,

q

1,

q

2ª

; Q

f

q

2ª

;

la fonction

ϕ

est décrite par l'automate suivant :

(IUT de Nantes - Dpt d'informatique ) 24 / 163

(51)

Décrivons une machine de Turing qui calcule cette fonction : la fonction successeur s est dénie sur D

λ,ε

1

ε,ε

11

ε,ε

111

ε, ...ª

l'entrée sur le ruban est donc la représentation unaire du nombre n : précédée du symbole

ε

, toutes les autres cases étant occupées par des

ε

;

l'alphabet de ruban est X

1

,εª

; l'alphabet d'état est

©

q

0,

q

1,

q

2ª

; Q

f

q

2ª

;

la fonction

ϕ

est décrite par l'automate suivant :

(52)

q

0 ε

/

ε

,D q

1

q

2

1/1,D

ε

/1,G

1/1,G

La conguration initiale est le mot q

0ε

n

ε

. La conguration nale est q

2ε

n1

ε

.

(IUT de Nantes - Dpt d'informatique ) 25 / 163

(53)

q

0 ε

/

ε

,D q

1

q

2

1/1,D

ε

/1,G

1/1,G

La conguration initiale est le mot q

0ε

n

ε

.

La conguration nale est q

2ε

n1

ε

.

(54)

q

0 ε

/

ε

,D q

1

q

2

1/1,D

ε

/1,G

1/1,G

La conguration initiale est le mot q

0ε

n

ε

. La conguration nale est q

2ε

n1

ε

.

(IUT de Nantes - Dpt d'informatique ) 25 / 163

(55)

Dénition 6 (Fonction MT-calculable)

Soit f : D⊆X→Xune fonction et M=(Q,X,ϕ) une machine de Turing. M calcule f si :

il existe une unique transition de q0 et que sa forme estϕ(q0,ε)=(qi,ε,D) avec qi6=q0 (il faut quitter l'état initial à partir de ε) ;

il n'existe pas de transition de la formeϕ(qi,x)=(q0,x0,m) avec i6=0, (x,x0)∈X2 et m∈©

G,R,Dª (il ne faut pas revenir à l'état initial) ; il n'existe pas de transition de la formeϕ(qf,ε) où qf ∈Qf (il ne faut pas que la machine continue à fonctionner dans son état nal en présence d'un blanc car il y en a une innité et la machine ne s'arrêterait jamais) ; pour toutµinD, notonsν=f (µ). Le calcul eectué par la machine M en partant de la conguration initiale q0εµε s'arrête après un nombre ni d'étapes dans la conguration nale qfενε(la machine doit calculer f (µ)) ; le calcul ne s'arrête jamais siµ6∈D (la machine ne calcule f (µ) que si ce nombre est déni).

(56)

⊆ → = calcule f si :

il existe une unique transition de q0 et que sa forme estϕ(q0,ε)=(qi,ε,D) avec qi6=q0 (il faut quitter l'état initial à partir de ε) ;

il n'existe pas de transition de la formeϕ(qi,x)=(q0,x0,m) avec i6=0, (x,x0)∈X2 et m∈©

G,R,Dª (il ne faut pas revenir à l'état initial) ; il n'existe pas de transition de la formeϕ(qf,ε) où qf ∈Qf (il ne faut pas que la machine continue à fonctionner dans son état nal en présence d'un blanc car il y en a une innité et la machine ne s'arrêterait jamais) ; pour toutµinD, notonsν=f (µ). Le calcul eectué par la machine M en partant de la conguration initiale q0εµε s'arrête après un nombre ni d'étapes dans la conguration nale qfενε(la machine doit calculer f (µ)) ; le calcul ne s'arrête jamais siµ6∈D (la machine ne calcule f (µ) que si ce nombre est déni).

(IUT de Nantes - Dpt d'informatique ) 26 / 163

(57)

Dénition 6 (Fonction MT-calculable)

Soit f : D⊆X→Xune fonction et M=(Q,X,ϕ) une machine de Turing. M calcule f si :

il existe une unique transition de q0 et que sa forme estϕ(q0,ε)=(qi,ε,D) avec qi6=q0 (il faut quitter l'état initial à partir de ε) ;

il n'existe pas de transition de la formeϕ(qi,x)=(q0,x0,m) avec i6=0, (x,x0)∈X2 et m∈©

G,R,Dª (il ne faut pas revenir à l'état initial) ; il n'existe pas de transition de la formeϕ(qf,ε) où qf ∈Qf (il ne faut pas que la machine continue à fonctionner dans son état nal en présence d'un blanc car il y en a une innité et la machine ne s'arrêterait jamais) ; pour toutµinD, notonsν=f (µ). Le calcul eectué par la machine M en partant de la conguration initiale q0εµε s'arrête après un nombre ni d'étapes dans la conguration nale qfενε(la machine doit calculer f (µ)) ; le calcul ne s'arrête jamais siµ6∈D (la machine ne calcule f (µ) que si ce nombre est déni).

(58)

⊆ → = calcule f si :

il existe une unique transition de q0 et que sa forme estϕ(q0,ε)=(qi,ε,D) avec qi6=q0 (il faut quitter l'état initial à partir de ε) ;

il n'existe pas de transition de la formeϕ(qi,x)=(q0,x0,m) avec i6=0, (x,x0)∈X2 et m∈©

G,R,Dª (il ne faut pas revenir à l'état initial) ; il n'existe pas de transition de la formeϕ(qf,ε) où qf ∈Qf (il ne faut pas que la machine continue à fonctionner dans son état nal en présence d'un blanc car il y en a une innité et la machine ne s'arrêterait jamais) ; pour toutµinD, notonsν=f (µ). Le calcul eectué par la machine M en partant de la conguration initiale q0εµε s'arrête après un nombre ni d'étapes dans la conguration nale qfενε(la machine doit calculer f (µ)) ; le calcul ne s'arrête jamais siµ6∈D (la machine ne calcule f (µ) que si ce nombre est déni).

(IUT de Nantes - Dpt d'informatique ) 26 / 163

(59)

Dénition 6 (Fonction MT-calculable)

Soit f : D⊆X→Xune fonction et M=(Q,X,ϕ) une machine de Turing. M calcule f si :

il existe une unique transition de q0 et que sa forme estϕ(q0,ε)=(qi,ε,D) avec qi6=q0 (il faut quitter l'état initial à partir de ε) ;

il n'existe pas de transition de la formeϕ(qi,x)=(q0,x0,m) avec i6=0, (x,x0)∈X2 et m∈©

G,R,Dª (il ne faut pas revenir à l'état initial) ; il n'existe pas de transition de la formeϕ(qf,ε) où qf ∈Qf (il ne faut pas que la machine continue à fonctionner dans son état nal en présence d'un blanc car il y en a une innité et la machine ne s'arrêterait jamais) ; pour toutµinD, notonsν=f (µ). Le calcul eectué par la machine M en partant de la conguration initiale q0εµε s'arrête après un nombre ni d'étapes dans la conguration nale qfενε(la machine doit calculer f (µ)) ; le calcul ne s'arrête jamais siµ6∈D (la machine ne calcule f (µ) que si ce nombre est déni).

(60)

⊆ → = calcule f si :

il existe une unique transition de q0 et que sa forme estϕ(q0,ε)=(qi,ε,D) avec qi6=q0 (il faut quitter l'état initial à partir de ε) ;

il n'existe pas de transition de la formeϕ(qi,x)=(q0,x0,m) avec i6=0, (x,x0)∈X2 et m∈©

G,R,Dª (il ne faut pas revenir à l'état initial) ; il n'existe pas de transition de la formeϕ(qf,ε) où qf ∈Qf (il ne faut pas que la machine continue à fonctionner dans son état nal en présence d'un blanc car il y en a une innité et la machine ne s'arrêterait jamais) ; pour toutµinD, notonsν=f (µ). Le calcul eectué par la machine M en partant de la conguration initiale q0εµε s'arrête après un nombre ni d'étapes dans la conguration nale qfενε(la machine doit calculer f (µ)) ; le calcul ne s'arrête jamais siµ6∈D (la machine ne calcule f (µ) que si ce nombre est déni).

(IUT de Nantes - Dpt d'informatique ) 26 / 163

(61)

Nous dénirons en TD :

la fonction identiquement nulle ; la fonction addition ;

les fonctions projections :

π(n)i

(x

1,

x

2, ...,

x

n

)

=

x

i,

1

É

i

É

n

(62)

Nous dénirons en TD :

la fonction identiquement nulle ; la fonction addition ;

les fonctions projections :

π(n)i

(x

1,

x

2, ...,

x

n

)

=

x

i,

1

É

i

É

n

(IUT de Nantes - Dpt d'informatique ) 27 / 163

(63)

Nous dénirons en TD :

la fonction identiquement nulle ; la fonction addition ;

les fonctions projections :

π(n)i

(x

1,

x

2, ...,

x

n

)

=

x

i,

1

É

i

É

n

(64)

1 Approche historique 2 Les machines de Turing

Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Automates déterministes

Opérations rationnelles sur les automates Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(IUT de Nantes - Dpt d'informatique ) 28 / 163

(65)

Sommaire

1 Approche historique 2 Les machines de Turing

Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Automates déterministes

Opérations rationnelles sur les automates Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(66)

Les fonctions de base des fonctions primitives récursives sont les fonctions précédemment étudiées :

la fonction successeur s : s(x)

=

x

+

1 ; la fonction identiquement nulle z : z(x)

=

0 ; les fonctions projection

π(n)i

.

Nous appellerons fonction arithmétique une fonction de

Nk

dans

N

.

(IUT de Nantes - Dpt d'informatique ) 30 / 163

(67)

Les fonctions de base des fonctions primitives récursives sont les fonctions précédemment étudiées :

la fonction successeur s : s(x)

=

x

+

1 ; la fonction identiquement nulle z : z(x)

=

0 ; les fonctions projection

π(n)i

.

Nous appellerons fonction arithmétique une fonction de

Nk

dans

N

.

(68)

Les fonctions de base des fonctions primitives récursives sont les fonctions précédemment étudiées :

la fonction successeur s : s(x)

=

x

+

1 ; la fonction identiquement nulle z : z(x)

=

0 ; les fonctions projection

π(n)i

.

Nous appellerons fonction arithmétique une fonction de

Nk

dans

N

.

(IUT de Nantes - Dpt d'informatique ) 30 / 163

(69)

Les fonctions de base des fonctions primitives récursives sont les fonctions précédemment étudiées :

la fonction successeur s : s(x)

=

x

+

1 ; la fonction identiquement nulle z : z(x)

=

0 ; les fonctions projection

π(n)i

.

Nous appellerons fonction arithmétique une fonction de

Nk

dans

N

.

(70)

Les fonctions de base des fonctions primitives récursives sont les fonctions précédemment étudiées :

la fonction successeur s : s(x)

=

x

+

1 ; la fonction identiquement nulle z : z(x)

=

0 ; les fonctions projection

π(n)i

.

Nous appellerons fonction arithmétique une fonction de

Nk

dans

N

.

(IUT de Nantes - Dpt d'informatique ) 30 / 163

(71)

Dénition 7 (Composition de fonctions arithmétiques)

Soient g

1,

g

2, ...,

g

k

k fonctions arithmétiques de k variables et h une fonction arithmétique de k variables. Soit f la fonction dénie par :

f (x

1,

x

2, ...,

x

n

)

=

h(g

1

(x

1, ...,

x

n

)

, ...,

g

k

(x

1, ...,

x

n

))

alors f est appelée la composition de h et de g

1,

g

2, ...,

g

n

et se note :

f

=

h

(g

1,

g

2, ...,

g

n

)

(72)

Exemple 8

Par exemple, si h(x

1,

x

2

)

=

s(x

1

)

+

s(x

2

), g

1

(x)

=

2x et g

2

(x)

=

x

2+

37 alors : f (x)

=

(IUT de Nantes - Dpt d'informatique ) 32 / 163

(73)

Dénition 9 (Récurrence)

Soient g et h des fonctions arithmétiques totales de n et n

+

2 variables respectivement. La fonction f de n

+

1 variables dénie par :

f (x

1, ...,

x

n,

0)

=

g(x

1, ...,

x

n

) ;

f (x

1,

x

n,

y

+

1)

=

h(x

1, ...,

x

n,

y

,

f (x

1,

x

2, ...,

x

n,

y)), est appelée récurrence de base g et de pas h.

On conviendra qu'une fonction de zéro variable est constante.

(74)

Dénition 9 (Récurrence)

Soient g et h des fonctions arithmétiques totales de n et n

+

2 variables respectivement. La fonction f de n

+

1 variables dénie par :

f (x

1, ...,

x

n,

0)

=

g(x

1, ...,

x

n

) ;

f (x

1,

x

n,

y

+

1)

=

h(x

1, ...,

x

n,

y

,

f (x

1,

x

2, ...,

x

n,

y)), est appelée récurrence de base g et de pas h.

On conviendra qu'une fonction de zéro variable est constante.

(IUT de Nantes - Dpt d'informatique ) 33 / 163

(75)

Dénition 9 (Récurrence)

Soient g et h des fonctions arithmétiques totales de n et n

+

2 variables respectivement. La fonction f de n

+

1 variables dénie par :

f (x

1, ...,

x

n,

0)

=

g(x

1, ...,

x

n

) ;

f (x

1,

x

n,

y

+

1)

=

h(x

1, ...,

x

n,

y

,

f (x

1,

x

2, ...,

x

n,

y)), est appelée récurrence de base g et de pas h.

On conviendra qu'une fonction de zéro variable est constante.

(76)

Dénition 10 (Fonctions récursives primitives)

Une fonction est primitive récursive si elle peut être obtenue à partir des fonctions successeur, zéro et projection par l'application d'un nombre ni de compositions et de récurrences.

(IUT de Nantes - Dpt d'informatique ) 34 / 163

(77)

Exemple 11 (La fonction add)

Il est possible de dénir l'addition de deux entiers à partir de la fonction s, des projections

π(1)1

et

π(3)3

et d'une récurrence de base g(x)

(1)1

(x) et de pas h

=

s

◦π(3)3

:





add(m

,

0)

=

g(m)

=

m

add(m

,

n

+

1)

=

h(m

,

n

,

add(m

,

n))

=

s(add(m

,

n))

(78)

Exemple 11 (La fonction add)

Il est possible de dénir l'addition de deux entiers à partir de la fonction s, des projections

π(1)1

et

π(3)3

et d'une récurrence de base g(x)

(1)1

(x) et de pas h

=

s

◦π(3)3

:





add(m

,

0)

=

g(m)

=

m

add(m

,

n

+

1)

=

h(m

,

n

,

add(m

,

n))

=

s(add(m

,

n))

(IUT de Nantes - Dpt d'informatique ) 35 / 163

(79)

Exemple 11 (La fonction add)

Il est possible de dénir l'addition de deux entiers à partir de la fonction s, des projections

π(1)1

et

π(3)3

et d'une récurrence de base g(x)

(1)1

(x) et de pas h

=

s

◦π(3)3

:





add(m

,

0)

=

g(m)

=

m

add(m

,

n

+

1)

=

h(m

,

n

,

add(m

,

n))

=

s(add(m

,

n))

(80)

Cependant, certaines fonctions ne le sont pas comme par exemple la fonction d'Ackermann :









A(0

,

y)

=

y

+

1 A(x

+

1

,

0)

=

A(x

,

1)

A(x

+

1

,

y

+

1)

=

A(x

,

A(x

+

1

,

y))

(IUT de Nantes - Dpt d'informatique ) 36 / 163

(81)

Sommaire

1 Approche historique 2 Les machines de Turing

Présentation sommaire Premier exemple Dénitions

Fonctions MT-calculables Fonctions récursives 3 Langages

Un exemple pour découvrir Dénitions et notations Langages

Langages et expressions rationnels (ou réguliers)

4 Automates Dénitions

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés

Automates déterministes

Opérations rationnelles sur les automates Théorème de Kleene

Automate associé à un langage déni par une expression rationnelle

Automates à états nis avec sortie Automates à pile

Automate minimal 5 Grammaires

Syntaxe et sémantique

Grammaires algébriques (ou hors contexte)

Grammaire régulière Lemme de la pompe

Analyse syntaxique ( parsing ) 6 Correspondance automate ni / grammaire

régulière 7 Logique

Syntaxe Sémantique

(82)

On pourrait généraliser en dénissant les fonctions récursives.

Alors les fonctions MT-calculables sont les fonctions récursives.

un être humain muni d'un papier, d'un crayon, d'un ruban et soumis à une stricte discipline est en fait une machine universelle .

Comme tous nos ordinateurs actuels sont équivalents à des machines de Turing, ils sont donc également des modèles d'êtres humains en train d'eectuer des calculs de manière disciplinée mais non intelligente.

Le programmeur est lui-même une machine de Turing s'il a écrit son programme (et prouvé qu'il fonctionne...).

Un langage est une machine de Turing.

(IUT de Nantes - Dpt d'informatique ) 38 / 163

(83)

On pourrait généraliser en dénissant les fonctions récursives.

Alors les fonctions MT-calculables sont les fonctions récursives.

un être humain muni d'un papier, d'un crayon, d'un ruban et soumis à une stricte discipline est en fait une machine universelle .

Comme tous nos ordinateurs actuels sont équivalents à des machines de Turing, ils sont donc également des modèles d'êtres humains en train d'eectuer des calculs de manière disciplinée mais non intelligente.

Le programmeur est lui-même une machine de Turing s'il a écrit son programme (et prouvé qu'il fonctionne...).

Un langage est une machine de Turing.

(84)

On pourrait généraliser en dénissant les fonctions récursives.

Alors les fonctions MT-calculables sont les fonctions récursives.

un être humain muni d'un papier, d'un crayon, d'un ruban et soumis à une stricte discipline est en fait une machine universelle .

Comme tous nos ordinateurs actuels sont équivalents à des machines de Turing, ils sont donc également des modèles d'êtres humains en train d'eectuer des calculs de manière disciplinée mais non intelligente.

Le programmeur est lui-même une machine de Turing s'il a écrit son programme (et prouvé qu'il fonctionne...).

Un langage est une machine de Turing.

(IUT de Nantes - Dpt d'informatique ) 38 / 163

(85)

On pourrait généraliser en dénissant les fonctions récursives.

Alors les fonctions MT-calculables sont les fonctions récursives.

un être humain muni d'un papier, d'un crayon, d'un ruban et soumis à une stricte discipline est en fait une machine universelle .

Comme tous nos ordinateurs actuels sont équivalents à des machines de Turing, ils sont donc également des modèles d'êtres humains en train d'eectuer des calculs de manière disciplinée mais non intelligente.

Le programmeur est lui-même une machine de Turing s'il a écrit son programme (et prouvé qu'il fonctionne...).

Un langage est une machine de Turing.

(86)

On pourrait généraliser en dénissant les fonctions récursives.

Alors les fonctions MT-calculables sont les fonctions récursives.

un être humain muni d'un papier, d'un crayon, d'un ruban et soumis à une stricte discipline est en fait une machine universelle .

Comme tous nos ordinateurs actuels sont équivalents à des machines de Turing, ils sont donc également des modèles d'êtres humains en train d'eectuer des calculs de manière disciplinée mais non intelligente.

Le programmeur est lui-même une machine de Turing s'il a écrit son programme (et prouvé qu'il fonctionne...).

Un langage est une machine de Turing.

(IUT de Nantes - Dpt d'informatique ) 38 / 163

(87)

On pourrait généraliser en dénissant les fonctions récursives.

Alors les fonctions MT-calculables sont les fonctions récursives.

un être humain muni d'un papier, d'un crayon, d'un ruban et soumis à une stricte discipline est en fait une machine universelle .

Comme tous nos ordinateurs actuels sont équivalents à des machines de Turing, ils sont donc également des modèles d'êtres humains en train d'eectuer des calculs de manière disciplinée mais non intelligente.

Le programmeur est lui-même une machine de Turing s'il a écrit son programme (et prouvé qu'il fonctionne...).

Un langage est une machine de Turing.

(88)

Cependant, les machines de Turing sont des modèles théoriques (ruban inni) et donc éloignés du quotidien du programmeur.

Savoir qu'il existe un algorithme qui résout notre problème est une chose, connaître sa complexité en est une autre...

(IUT de Nantes - Dpt d'informatique ) 39 / 163

(89)

Cependant, les machines de Turing sont des modèles théoriques (ruban inni) et donc éloignés du quotidien du programmeur.

Savoir qu'il existe un algorithme qui résout notre problème est une

chose, connaître sa complexité en est une autre...

(90)

Est-ce qu'une machine sera un jour capable de raisonner comme un cerveau humain ?

Science is what we understand well enough to explain to a computer.

Art is everything else we do.

(IUT de Nantes - Dpt d'informatique ) 40 / 163

(91)

Est-ce qu'une machine sera un jour capable de raisonner comme un cerveau humain ?

Science is what we understand well enough to explain to a computer.

Art is everything else we do.

Références

Documents relatifs

Donnez les langages générés par les expressions

Licence Informatique –L1 Automates. Théorie des

Donnez un automate non-déterministe sur Σ ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} qui accepte les mots dont le dernier chiffre soit un chiffre qui ait déjà apparu...

Il est possible, de la même manière que « grep » reconnaît des expressions régulières, de faire des remplacements en sortie.. /> » Efectuer des remplacements avec captures dans

● Pour la lisibilité, lorsque deux arcs de même orientation sont possibles entre deux nœuds, ils sont fusionnés (disjonction) :. ● Un arc peut « boucler » un état

● Théorème : pour tout automate, il existe une expression régulière reconnaissant le même langage. – Possibilité de transformer un automate en

Le premier reproche est que cette notion de langage - un sous-ensemble d’un monoïde libre - est beaucoup trop pauvre pour rendre compte des plus simples structures

Donc, le nom de théorie des catégories aurait pu avoir un autre contenu, aller vers d’autres projets, comme celui, par exemple, dont je parlais plus haut : une extension de la