Académique Documents
Professionnel Documents
Culture Documents
Définitions
Un alphabet est un ensemble fini non-vide.
Définitions
Un alphabet est un ensemble fini non-vide.
Un élément d’un alphabet est appelé lettre, symbole ou caractère.
Définitions
Un alphabet est un ensemble fini non-vide.
Un élément d’un alphabet est appelé lettre, symbole ou caractère.
Un mot ou une séquence est une suite finie de lettres de l’alphabet.
Définitions
Un alphabet est un ensemble fini non-vide.
Un élément d’un alphabet est appelé lettre, symbole ou caractère.
Un mot ou une séquence est une suite finie de lettres de l’alphabet.
Pour un mot w , on dénote par |w | la longueur de w , c’est à dire son
nombre de lettres.
Définitions
Un alphabet est un ensemble fini non-vide.
Un élément d’un alphabet est appelé lettre, symbole ou caractère.
Un mot ou une séquence est une suite finie de lettres de l’alphabet.
Pour un mot w , on dénote par |w | la longueur de w , c’est à dire son
nombre de lettres.
Le mot vide, dénoté est le mot de longueur 0.
Définitions
Un alphabet est un ensemble fini non-vide.
Un élément d’un alphabet est appelé lettre, symbole ou caractère.
Un mot ou une séquence est une suite finie de lettres de l’alphabet.
Pour un mot w , on dénote par |w | la longueur de w , c’est à dire son
nombre de lettres.
Le mot vide, dénoté est le mot de longueur 0.
La concaténation de deux mots x et y , qu’on dénote par xy est le mot
obtenu en mettant bout à bout les deux séquences. Notez que
x = x = x pour tout mot x.
Définitions
Un alphabet est un ensemble fini non-vide.
Un élément d’un alphabet est appelé lettre, symbole ou caractère.
Un mot ou une séquence est une suite finie de lettres de l’alphabet.
Pour un mot w , on dénote par |w | la longueur de w , c’est à dire son
nombre de lettres.
Le mot vide, dénoté est le mot de longueur 0.
La concaténation de deux mots x et y , qu’on dénote par xy est le mot
obtenu en mettant bout à bout les deux séquences. Notez que
x = x = x pour tout mot x.
Si x est un mot et k ∈ N, on dénote par x k le mot obtenu en
concaténant k copies de x. Notez que x 0 = pour tout mot x.
Exemples
L’alphabet {0, 1} est couramment appelé l’alphabet booléen et
comprend deux lettres. L’alphabet latin comprend 26 lettres. Un
ensemble avec un seul élément {a} peut aussi être considéré comme
un alphabet.
N n’est pas un alphabet parce que cet ensemble est infini.
Exemples
L’alphabet {0, 1} est couramment appelé l’alphabet booléen et
comprend deux lettres. L’alphabet latin comprend 26 lettres. Un
ensemble avec un seul élément {a} peut aussi être considéré comme
un alphabet.
N n’est pas un alphabet parce que cet ensemble est infini.
0100 est un exemple de mot sur l’alphabet {0, 1}. Sa longueur |0100|
est 4. Le mot abc sur l’alphabet latin est de longueur 3.
si x = 0100 et y = 100 alors leur concaténation xy est 0100100.
Notez que |xy | = |x| + |y | pour n’importe quels mots x et y .
Le mot (abc)4 est abcabcabcabc.
Définitions
Si Σ est un alphabet, la clôture de Σ, dénotée par Σ∗ , est l’ensemble
des mots de longueur finie sur l’alphabet Σ. Par définition, ∈ Σ∗
pour n’importe quel alphabet Σ.
Un langage est un sous-ensemble de Σ∗ . Autrement dit, un langage
est un ensemble de mots sur un alphabet donné.
Exemples
Si Σ = {a} alors Σ∗ = {, a, aa, aaa, . . .}.
Exemples
Si Σ = {a} alors Σ∗ = {, a, aa, aaa, . . .}.
On a démontré dans le premier cours que pour tout alphabet Σ,
l’ensemble Σ∗ est infini dénombrable.
Exemples
Si Σ = {a} alors Σ∗ = {, a, aa, aaa, . . .}.
On a démontré dans le premier cours que pour tout alphabet Σ,
l’ensemble Σ∗ est infini dénombrable.
L’ensemble {x : x ∈ {0, 1}∗ ∧ la première et la dernière lettre de x
sont identiques} forme un langage sur l’alphabet {0, 1}.
Exemples
Si Σ = {a} alors Σ∗ = {, a, aa, aaa, . . .}.
On a démontré dans le premier cours que pour tout alphabet Σ,
l’ensemble Σ∗ est infini dénombrable.
L’ensemble {x : x ∈ {0, 1}∗ ∧ la première et la dernière lettre de x
sont identiques} forme un langage sur l’alphabet {0, 1}.
Soit Σ = {a, b}. Alors L = {xx : x ∈ {a, b}∗ } est un langage. Il est
constitué des mots qui peuvent être découpés en deux moitiés
identiques :
L = {, aa, bb, aaaa, abab, baba, bbbb, aaaaaa, aabaab, . . .}.
Exemples
Si Σ = {a} alors Σ∗ = {, a, aa, aaa, . . .}.
On a démontré dans le premier cours que pour tout alphabet Σ,
l’ensemble Σ∗ est infini dénombrable.
L’ensemble {x : x ∈ {0, 1}∗ ∧ la première et la dernière lettre de x
sont identiques} forme un langage sur l’alphabet {0, 1}.
Soit Σ = {a, b}. Alors L = {xx : x ∈ {a, b}∗ } est un langage. Il est
constitué des mots qui peuvent être découpés en deux moitiés
identiques :
L = {, aa, bb, aaaa, abab, baba, bbbb, aaaaaa, aabaab, . . .}.
∅ et Σ∗ sont des langages sur l’alphabet Σ.
Machine M
Données Résultat
Traitement de l’entrée suivant
en entrée en sortie
une liste d’opérations précises
Machine M
Données Résultat
Traitement de l’entrée suivant
en entrée en sortie
une liste d’opérations précises
Machine M
w ∈ Σ∗ Traitement de l’entrée suivant {0, 1}
une liste d’opérations précises
Définition
Soit M une machine dont la sortie est toujours dans {0, 1}. Le langage
accepté par M (dénoté L(M)) est l’ensemble des w acceptés par M.
Notons que L(M) ⊆ Σ∗ .
Définition
Soit M une machine dont la sortie est toujours dans {0, 1}. Le langage
accepté par M (dénoté L(M)) est l’ensemble des w acceptés par M.
Notons que L(M) ⊆ Σ∗ .
Un automate fini est une machine qui reçoit en entrée un mot qui lui est
fourni lettre par lettre. Dès que la dernière lettre est lue, l’automate doit
décider s’il accepte ou rejette l’entrée qu’il vient de traiter.
Modèle très simple donc limité mais tout de même utile pour modéliser des
machines qui fonctionnent essentiellement sans mémoire (machine à café).
Définition
Un diagramme de transitions sur l’alphabet Σ est constitué de :
Un ensemble fini de cercles appelés états. Les états peuvent porter un
nom mais cela n’est pas nécessaire.
Définition
Un diagramme de transitions sur l’alphabet Σ est constitué de :
Un ensemble fini de cercles appelés états. Les états peuvent porter un
nom mais cela n’est pas nécessaire.
Un ensemble de flèches entre les états appelées transitions, chaque
transition étant étiquetée par une lettre de l’alphabet Σ.
Définition
Un diagramme de transitions sur l’alphabet Σ est constitué de :
Un ensemble fini de cercles appelés états. Les états peuvent porter un
nom mais cela n’est pas nécessaire.
Un ensemble de flèches entre les états appelées transitions, chaque
transition étant étiquetée par une lettre de l’alphabet Σ.
Un état initial indiqué par une petite flèche pointant sur cet état.
Définition
Un diagramme de transitions sur l’alphabet Σ est constitué de :
Un ensemble fini de cercles appelés états. Les états peuvent porter un
nom mais cela n’est pas nécessaire.
Un ensemble de flèches entre les états appelées transitions, chaque
transition étant étiquetée par une lettre de l’alphabet Σ.
Un état initial indiqué par une petite flèche pointant sur cet état.
Un sous ensemble d’états finaux (aussi appelés états acceptants)
indiqués par des doubles cercles.
a b
b
a
A B C
a
b
a D b
Dans cet exemple, les états sont étiquetés. L’alphabet du diagramme est
{a, b}. L’état initial est A et le seul état final est l’état C .
a b
b
a
A B C
a
b
a D b
Dans cet exemple, les états sont étiquetés. L’alphabet du diagramme est
{a, b}. L’état initial est A et le seul état final est l’état C .
a b
b
a
A B C
a
b
D a, b
Dans cet exemple, les états sont étiquetés. L’alphabet du diagramme est
{a, b}. L’état initial est A et le seul état final est l’état C .
D a, b
Notons aussi que pour chacun des états il y a deux transitions sortantes,
une étiquetée a et l’autre étiquetée b. Ainsi un mot sur l’alphabet {a, b}
trace un chemin unique dans le diagramme.
À partir de l’état initial A :
Le mot aaba
D a, b
Notons aussi que pour chacun des états il y a deux transitions sortantes,
une étiquetée a et l’autre étiquetée b. Ainsi un mot sur l’alphabet {a, b}
trace un chemin unique dans le diagramme.
À partir de l’état initial A :
Le mot aaba trace un chemin qui aboutit à B.
D a, b
Notons aussi que pour chacun des états il y a deux transitions sortantes,
une étiquetée a et l’autre étiquetée b. Ainsi un mot sur l’alphabet {a, b}
trace un chemin unique dans le diagramme.
À partir de l’état initial A :
Le mot aaba trace un chemin qui aboutit à B.
Le mot aabb
D a, b
Notons aussi que pour chacun des états il y a deux transitions sortantes,
une étiquetée a et l’autre étiquetée b. Ainsi un mot sur l’alphabet {a, b}
trace un chemin unique dans le diagramme.
À partir de l’état initial A :
Le mot aaba trace un chemin qui aboutit à B.
Le mot aabb trace un chemin qui aboutit à C .
D a, b
Notons aussi que pour chacun des états il y a deux transitions sortantes,
une étiquetée a et l’autre étiquetée b. Ainsi un mot sur l’alphabet {a, b}
trace un chemin unique dans le diagramme.
À partir de l’état initial A :
Le mot aaba trace un chemin qui aboutit à B.
Le mot aabb trace un chemin qui aboutit à C .
Le mot vide
IFT-2002: Chapitre 2.1 Automates finis déterministes 12 / 38
Diagrammes de transitions
a b
b
a
A B C
a
b
D a, b
Notons aussi que pour chacun des états il y a deux transitions sortantes,
une étiquetée a et l’autre étiquetée b. Ainsi un mot sur l’alphabet {a, b}
trace un chemin unique dans le diagramme.
À partir de l’état initial A :
Le mot aaba trace un chemin qui aboutit à B.
Le mot aabb trace un chemin qui aboutit à C .
Le mot vide trace un chemin qui aboutit à A.
IFT-2002: Chapitre 2.1 Automates finis déterministes 12 / 38
Diagrammes de transitions complètement définis
a b
b
a, b
A B C
a
b
b
D a, b
Définition
On dit qu’un diagramme de transitions est complètement défini si pour
chaque état q et chaque lettre a de l’alphabet, il existe au moins une
transition étiquetée a qui part de q. (Exemple ci-dessus)
a b
b
a, b
A B C
b
b
D a
b
a
A B C
a
b
D a
Définition
On dit qu’un diagramme de transitions est non-ambigu si pour chaque état
q et chaque lettre a de l’alphabet, il existe au plus une transition étiquetée
a qui part de q. (Exemple ci-dessus)
a b
b
a, b
A B C
a
b a
D a, b
D a, b
Définition
On dit qu’un diagramme de transitions est déterministe si pour chaque état
q et chaque lettre a de l’alphabet, il existe exactement une transition
étiquetée a qui part de q.
En d’autre mots, un diagramme est déterministe s’il est à la fois
complètement défini et non-ambigu.
IFT-2002: Chapitre 2.1 Automates finis déterministes 17 / 38
Diagrammes non-ambigus et état poubelle
Si un diagramme est non-ambigu mais pas complètement défini alors on
peut le transformer en diagramme déterministe en rajoutant un état
poubelle p, c’est à dire un état qui n’est pas acceptant et pour lequel
δ(p, a) = p pour tout symbole a ∈ Σ. Toutes les transitions manquantes
deviennent des transitions vers p.
q0 1 q1 1
q2
1 0
q3
q0 1 q1 q0 1 q1
1 1
0 0 0
q2 q2 1 p 0, 1
1 0 1 0
0
q3 q3
Définition
Un automate fini déterministe M est défini par un quintuplet
(Q, Σ, δ, q0 , F ) où
Définition
Un automate fini déterministe M est défini par un quintuplet
(Q, Σ, δ, q0 , F ) où
Q est un ensemble fini d’états ;
Définition
Un automate fini déterministe M est défini par un quintuplet
(Q, Σ, δ, q0 , F ) où
Q est un ensemble fini d’états ;
Σ est l’alphabet de l’automate ;
Définition
Un automate fini déterministe M est défini par un quintuplet
(Q, Σ, δ, q0 , F ) où
Q est un ensemble fini d’états ;
Σ est l’alphabet de l’automate ;
δ : Q × Σ → Q est une fonction de transition
Définition
Un automate fini déterministe M est défini par un quintuplet
(Q, Σ, δ, q0 , F ) où
Q est un ensemble fini d’états ;
Σ est l’alphabet de l’automate ;
δ : Q × Σ → Q est une fonction de transition
q0 ∈ Q est l’état initial ;
Définition
Un automate fini déterministe M est défini par un quintuplet
(Q, Σ, δ, q0 , F ) où
Q est un ensemble fini d’états ;
Σ est l’alphabet de l’automate ;
δ : Q × Σ → Q est une fonction de transition
q0 ∈ Q est l’état initial ;
F ⊆ Q est l’ensemble des états acceptants, aussi appelés états finaux.
tête de lecture
q3 ..
.
q2 qn
q1 q0
a1 2 a n a
q0 = p0 −→ p1 −→ p2 . . . pn−1 −→ pn ∈ F
Définition
Soit M = (Q, Σ, δ, q0 , F ) un automate fini déterministe. On dit que M
rejette le mot w si M n’accepte pas w .
Définition
Soit M = (Q, Σ, δ, q0 , F ) un automate fini déterministe. La fonction de
transition étendue, dénotée δ ∗ est la fonction de Q × Σ∗ dans Q définie
récursivement comme suit :
p
si n = 0
∗
δ (p, a1 a2 . . . an ) = δ(p, a1 ) si n = 1
∗
δ(δ (p, a1 a2 . . . an−1 ), an ) si n ≥ 2
q0 b q1 ruban état
bbaba q0
a a
La lettre soulignée indique la posi-
q3 q2 tion actuelle de la tête de lecture
a sur le ruban.
a, b b
ruban état
b
bbaba q0
q0 b q1
a a
q3 q2
a
a, b b
ruban état
b
bbaba q0
q0 b q1 bbaba q1
a a
q3 q2
a
a, b b
ruban état
b
bbaba q0
q0 b q1 bbaba q1
bbaba q1
a a
q3 q2
a
a, b b
ruban état
b
bbaba q0
q0 b q1 bbaba q1
bbaba q1
a a
bbaba q2
q3 q2
a
a, b b
ruban état
b
bbaba q0
q0 b q1 bbaba q1
bbaba q1
a a
bbaba q2
bbaba q2
q3 q2
a
a, b b
ruban état
b
bbaba q0
q0 b q1 bbaba q1
bbaba q1
a a
bbaba q2
bbaba q2
q3 q2
a bbaba q3
a, b b
ruban état
b
bbaba q0
q0 b q1 bbaba q1
bbaba q1
a a
bbaba q2
bbaba q2
q3 q2
a bbaba q3
a, b b
La séquence est donc rejetée.
b
ruban état
q0 b q1 bab q0
a a
q3 q2
a
a, b b
b
ruban état
q0 b q1 bab q0
bab q1
a a
q3 q2
a
a, b b
b
ruban état
q0 b q1 bab q0
bab q1
a a
bab q2
q3 q2
a
a, b b
b
ruban état
q0 b q1 bab q0
bab q1
a a
bab q2
bab q2
q3 q2
a
a, b b
b
ruban état
q0 b q1 bab q0
bab q1
a a
bab q2
bab q2
q3 q2
a
Définition
Le langage accepté (aussi appelé langage reconnu) par un automate fini
déterministe M, dénoté L(M) est l’ensemble {w : M accepte w }.
Définition
Le langage accepté (aussi appelé langage reconnu) par un automate fini
déterministe M, dénoté L(M) est l’ensemble {w : M accepte w }.
Définition
Un langage K ⊆ Σ∗ est un langage régulier s’il existe un automate fini
déterministe M tel que L(M) = K .
a b
b
a
A B C
a
b
D a, b
a b
b
a
A B C
a
b
D a, b
Le langage accepté par cet automate est l’ensemble des mots de {a, b}∗
qui commencent par un a et finissent par un b.
2
v
1 1, 2
0 1 2 1, 2
1 v
v
v café 2
L’ensemble vide ∅ est un langage régulier car il est reconnu par l’automate
à un état ci-dessous.
L’ensemble vide ∅ est un langage régulier car il est reconnu par l’automate
à un état ci-dessous.
L’ensemble vide ∅ est un langage régulier car il est reconnu par l’automate
à un état ci-dessous.
Démonstration.
Puisque L est régulier, il existe un automate fini déterministe
M = (Q, Σ, δ, q0 , F ) qui reconnaît L. Faisons de chaque état acceptant de
M un état rejetant et faisons inversement de chaque état rejetant de M un
état acceptant. On obtient l’automate fini déterministe
N = (Q, Σ, δ, q0 , Q − F ). Comme M est déterministe, chaque mot d’entrée
conduit à un état et un seul et puisque M et N ne diffèrent que sur
l’ensemble d’états acceptants, w conduit N dans le même état. Il est clair
que N accepte précisément les mots que M rejette donc L(N) = L ce qui
montre que L est régulier.
q0 b q1
a a
q3 q2
a
a, b b
L’automate accepte les mots qui
débutent par b et ne contiennent
qu’un seul a.
q0 b q1 b
q0 q1
a a a a
q3 q2 q3 q2
a a
a, b b a, b b
L’automate accepte les mots qui L’automate accepte les mots débu-
débutent par b et ne contiennent tant par a, les mots sans a (dont )
qu’un seul a. et les mots avec au moins deux a.
Sur l’alphabet {0, 1}, soit L l’ensemble des mots dans lesquels chaque 0 est
suivi d’un 1. Montrons que L est régulier.
Sur l’alphabet {0, 1}, soit L l’ensemble des mots dans lesquels chaque 0 est
suivi d’un 1. Montrons que L est régulier.
(Équivalent à : donnons un diagramme de transitions qui correspond à un
automate fini déterministe qui accepte L.)
Sur l’alphabet {0, 1}, soit L l’ensemble des mots dans lesquels chaque 0 est
suivi d’un 1. Montrons que L est régulier.
(Équivalent à : donnons un diagramme de transitions qui correspond à un
automate fini déterministe qui accepte L.)
1
1
0
A B C 0, 1
0
0, 1, +, − 0 0, 1 0, 1, +, −
0 +, − +, −
E A B D F
+, −
1 0
1
+, −
1 C
0, 1, +, − 0 0, 1 0, 1, +, −
0 +, − +, −
E A B D F
+, −
1 0
1
+, −
1 C
Le langage accepté par cet automate est celui des mots sur {0, 1, −, +} qui
débutent par un mot non-vide sur l’alphabet {0, 1}, suivi d’un + ou d’un
−, suivi d’un mot (possiblement vide) sur l’alphabet {0, 1}.
0, 1 0, 1
0, 1 +, −
A B/C D
+, − +, −
0, 1, +, − E/F
0, 1 0, 1
0, 1 +, −
A B/C D
+, − +, −
0, 1, +, − E/F
Il suffit de se rappeler
Si on a vu zéro a ou si on a vu un a ou plus.
Si on a vu un nombre pair ou impair de b.
Pas de a a un a ou plus
a
b pair b pair
b b b b
Pas de a a un a ou plus
a
b impair b impair