automates - damien.nouvels.netdamien.nouvels.net/cours/automates/3_automatesaetatsfinis.pdf ·...
TRANSCRIPT
Automates
Automates à états fnis
Damien Nouvel
Licence Informatique –L1Damien Nouvel
Automates2 / 30
Automates à états fnisPlan
● Représentation des automates (FSA)
● Défnition formelle (DFA)
● Déterminisme du FSA (DFA / NFA / ε-NFA)
● Équivalence DFA / NFA / ε-NFA
Licence Informatique –L1Damien Nouvel
Automates3 / 30
Automates à états fnisPlan
● Représentation des automates (FSA)
● Défnition formelle (DFA)
● Déterminisme du FSA (DFA / NFA / ε-NFA)
● Équivalence DFA / NFA / ε-NFA
Licence Informatique –L1Damien Nouvel
Automates4 / 30
Automates à états fnisReprésentation des automates (FSA)
● Automate à états fnis● Finite State Automaton (FSA)
● Machine abstraite, issue des travaux de A. Turing
● Éléments de l'automate● Une ensemble fni d'états possibles
● Un ensemble fni de symboles en entrées
● Une fonction de transition entre états
● Représentations● Diagrammes de transition
● Tables de transition
● Notations formelles
Licence Informatique –L1Damien Nouvel
Automates5 / 30
Automates à états fnisReprésentation des automates (FSA)
● Diagrammes de transition● Représentation « graphique »
● Graphe orienté étiqueté :
– Nœuds : états de l'automate
● Étiqueté par les noms des états (généralement qx : q
1, q
2, q
3, ...)
● État fnal : double cercle
– Arcs orientés : transitions de l'automate● Étiqueté par les symboles (a, b, c, d, ...)● État initial : marqué par un arc sans nœud d'origine
q1
q2
q3
c
db
aq
4
Licence Informatique –L1Damien Nouvel
Automates6 / 30
Automates à états fnisReprésentation des automates (FSA)
● Diagrammes de transition (suite)● 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 sur lui-même :
● Des transitions peuvent partir de l'état fnal :
a
a
ba,b
Licence Informatique –L1Damien Nouvel
Automates7 / 30
Automates à états fnisReprésentation des automates (FSA)
● Diagrammes de transition (suite)● Les transitions correspondent à la concaténation
● On « suit » les arcs pour voir quel langage est accepté :
● Le langage n'est pas forcément fni :
q1
q2
q3
c,e
db
a
q4
a
q1
q2
q3
c,e
d
a
q4
L = {ac, ae, bd, aad }
ba
L = {ac, ae, aad, aabac, aabae, aabaad, aabaabac, aabaabae, aabaabaad ... }
Licence Informatique –L1Damien Nouvel
Automates8 / 30
Automates à états fnisReprésentation des automates (FSA)
● Diagrammes de transition (suite)● Peuvent être mis intuitivement (formellement aussi) en
correspondance avec des expressions régulières
b
dc
aR = ab+cd
R = aba b
R = ab*ca c
b
R = a+ba,b
Licence Informatique –L1Damien Nouvel
Automates9 / 30
Automates à états fnisReprésentation des automates (FSA)
● Table de transitions● Équivalente à la représentation par diagramme de transitions
● États en lignes, symboles en colonnes
– Ligne de l'état initial marqué par une fèche →
– Ligne de l'état fnal marqué par une étoile *
● Contenu décrit les transitions depuis un état / symbole
q1
q3
c
d
a
q4
b
a
q2
ba b c d
→ q1
q2
Ø Ø Ø
q2
q3
q2
q4
Ø
q3
Ø q1
Ø q4
* q4
Ø Ø Ø Ø
Licence Informatique –L1Damien Nouvel
Automates10 / 30
Automates à états fnisPlan
● Représentation des automates (FSA)
● Défnition formelle (DFA)
● Déterminisme du FSA (DFA / NFA / ε-NFA)
● Équivalence DFA / NFA / ε-NFA
Licence Informatique –L1Damien Nouvel
Automates11 / 30
Automates à états fnisDéfnition formelle (DFA)
● Notations pour un automate « déterministe » (DFA)● Un ensemble fni d'états
– Notation : Q = {q1, q
2, q
3...}
● Un ensemble fni de symboles (alphabet)
– Notation : Σ = {a, b, c, d...}
● Une fonction de transition qui prend en paramètre un état et un symbole et qui renvoie un état
– Notation : δ(qi, a) = q
j (« signature » δ : Q × Σ → Q)
● Un état initial
– Notation : q0 ∈ Q
● Un ensemble d'états fnaux
– Notation : F ⊆ Q
Licence Informatique –L1Damien Nouvel
Automates12 / 30
Automates à états fnisDéfnition formelle (DFA)
● Automate à états fnis
● Défni comme le quintuplet : A = (Q, Σ, δ, q0, F)
● Défnition équivalente aux diagrammes et tables de transition
● Repose sur la défnition de la fonction de transition δ, souvent défnie par extension (en listant les cas possibles)
– La fonction peut renvoyer Ø (par ex. δ(q1, d) = Ø)
● Défnition de la fonction de transition « étendue »
– Fonction qui prend un mot en entrée et utilise δ de l'automate
– Notation (α ∈ Σ*) : δ(qi, α) = q
j (« signature » δ : Q × Σ* → Q)
– Défnie récursivement par décomposition du mot w :
● Si w = ε alors δ(qi, ε) = { q
i }
● Si w = x.a tels que et x ∈ Σ* et a ∈ Σ alors δ(qi, w) = δ( δ(q
i, x) , a)
Licence Informatique –L1Damien Nouvel
Automates13 / 30
Automates à états fnisDéfnition formelle (DFA)
● Langage reconnu par un automate déterministe● Ensemble des mots tels que la fonction de transition étendue
appliquée à l 'état initial et au mot conduit à un état fnal :
– L(A) = { w ∈ Σ* | δ(q0, w) ∈ F }
● Théorème de Kleene : par défnition, le langage reconnu par un automate à états fnis (NFA) est régulier (ou rationnel)
● Avantages et limites des automates à états fnis (FSA)● Algorithmes rapides pour implémenter les FSA
● Impossible de « compter » dans le cas général
– Pas d'automate qui décrive un mot ayant autant de a que de b
– Pas d'automate pour reconnaître une expression arithmétique bien formée (nécessité de recourir à des grammaires)
Licence Informatique –L1Damien Nouvel
Automates14 / 30
Automates à états fnisPlan
● Représentation des automates (FSA)
● Défnition formelle (DFA)
● Déterminisme du FSA (DFA / NFA / ε-NFA)
● Équivalence DFA / NFA / ε-NFA
Licence Informatique –L1Damien Nouvel
Automates15 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Types d'automates● Automates à états fnis
– FSA : Finite State Automata
● Automates à états fnis déterministes
– DFA : Determinist Finite state Automata
● Automates à états fnis non-déterministes
– NFA : Non-determinist Finite state Automata
● Automates à états fnis non-déterministes avec possiblité de transitions ε (mot vide)
– ε-NFA : Non-determinist Finite state Automata with ε transitions
● Tous peuvent être représentés à l'aide des diagrammes de transition, tables de transition, notations formelles
Licence Informatique –L1Damien Nouvel
Automates16 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Déterminisme : requiert que l'automate soit dans un état unique (« déterminé ») après avoir lu n symboles
● Automates non-déterministes (NFA)● Non-déterminisme : l'automate peut-être dans plusieurs
états, « simultanément » après avoir lu n symboles
– Attention : un automate non-déterministe n'implique pas que l'on ne « sache » pas dans quels états il est (au contraire)
● Particulièrement utile lorsque l'on ne sait pas « à l'avance » quel état fnal l'automate atteindra (hypothèses)
– Facilité de représentation / programmation● GPS : une voiture se dirige vers Paris, mais on ne connaît pas la
destination fnale (Orléans, Strasbourg)● Prédiction SMS : un utilisateur tape le début d'un mot, mais plusieurs
hypothèses sont possibles pour le mot qu'il veut écrire
Licence Informatique –L1Damien Nouvel
Automates17 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Fonction de transition d'un NFA● A partir d'un état et d'un symbole : plusieurs états possibles
– Notation : δ(qi, a) = R ⊆ Q (« signature » δ : Q × Σ → Q*)
● Par ex. δ(qi, a) = { q
j, q
k, q
l }
– Peut aussi être l'ensemble vide : δ(qi, a) = Ø
● Diférence de représentations DFA / NFA
DFA NFA
Diagramme de transitions
Pour chaque paire (état, symbole), au maximum un arc sortant
Possibilité de plusieurs arcs sortant par paire (état, symboles)
Table de transitions
Les cases de la table contiennent un état ou Ø
Les cases de la table contiennent un ensemble d'états
Notation formelle
La fonction de transition renvoie au maximum un état
La fonction de transition peut renvoyer plusieurs états
Licence Informatique –L1Damien Nouvel
Automates18 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Diférence de représentations DFA / NFA (suite)● Soit Σ = { a, b }, comment représenter un automate qui
reconnaît tous les mots se terminant par ab ?
q2
aq0
a,b
q2
a
q0
bb
a
b
b
DFA
NFA
a b
→ q0
q1
q0
q1
q1
q2
* q2
q1
q0
a b
→ q0
{ q0, q
1 } { q
0 }
q1
{ a } { q2 }
* q2
Ø Ø
q1
a
q1
a
Licence Informatique –L1Damien Nouvel
Automates19 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Fonction de transition étendue d'un NFA● A partir d'un état et d'un mot, plusieurs états possibles
– Fonction qui prend un mot en entrée et utilise δ du NFA
– Notation (α ∈ Σ*) : δ(qi, α) = R ⊆ Q (« signature » δ : Q × Σ* → Q*)
– De même, défnition récursive par décomposition du mot w :
● Si w = ε alors δ(qi, ε) = { q
i }
● Si w = x.a tels que x ∈ Σ*, a ∈ Σ et R = δ(qi, x) alors
δ(qi, w) = ∪
r ∈ R δ(r, a)
ou (équivalent) : δ(qi, w) = ∪
qj ∈ δ(qi, x) δ(q
j, a)
● Langage reconnu par un NFA
● Mots w tels que δ(q0, w) contienne au moins un état fnal
● L(A) = { w ∈ Σ* | δ(q0, w) ∩ F ≠ Ø }
Licence Informatique –L1Damien Nouvel
Automates20 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Par ex. soit l'automate ci-dessous et w = baababbbab
δ(q0, b) = {q
0}
δ(q0, ba) = ∪
p ∈ {q0} δ(p, a) = δ(q
0, a) = {q
0, q
1}
δ(q0, baa) = ∪
p ∈ {q0, q1} δ(p, a) = δ(q
0, a) ∪ δ(q
1, a) = {q
0, q
1}
δ(q0, baab) = ∪
p ∈ {q0, q1} δ(p, b) = δ(q
0, b) ∪ δ(q
1, b) = {q
0, q
2}
δ(q0, baaba) = ∪
p ∈ {q0, q2} δ(p, a) = δ(q
0, a) ∪ δ(q
2, a) = {q
0, q
1}
...
δ(q0, baababbbab) = {q
0, q
2}
donc δ(q0, baababbbab) ∩ F = {q
2} ≠ Ø et w ∈ L(A)
q2
aq0
a,b
q1
b
a b
→ q0
{ q0, q
1 } { q
0 }
q1
Ø { q2 }
* q2
Ø Ø
Licence Informatique –L1Damien Nouvel
Automates21 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Automates avec transitions ε (ε-NFA)● Transition ε : transitions sur le mot vide → aucun symbole
– La transition se réalise systématiquement
● Facilité supplémentaire de représentation / programmation
– Lorsque des parties sont « optionnelles »
● Tout automate qui comporte une transition ε est non-déterministe (peut-être dans plusieurs états simultanément)
● Par ex., les mots abc ou c :
q3q
0
a
q1
q2
c
b
εq3q
0
a
q1
q2
c
b
c
NFA ε-NFA
Licence Informatique –L1Damien Nouvel
Automates22 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Fonction de transition d'un ε-NFA● Identique à celle du NFA, mais en tenant compte des
transitions ε comme élément pour réaliser une transition
– Le mot-vide ε n'est pas nécessairement un élément de l'alphabet Σ
– Notation : δ(qi, a) = R ⊆ Q (« signature » δ : Q × Σ ∪ {ε} → Q*)
● Fermeture (transitive) par transition ε● Fermeture transitive (clôture, algèbre) ≃ éléments que l'on
peut atteindre en utilisant un opérateur donné récursivement
● Défnition d'une fonction récursive « epsClos » :
– Pour tout qi ∈ Q, q
i ∈ epsClos(q
i)
– Pour tout qi ∈ Q, si δ(q
i, ε) = R ⊆ Q alors R ⊂ epsClos(q
i)
● On « suit » toutes les transitions ε possibles, récursivement
Licence Informatique –L1Damien Nouvel
Automates23 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Par ex. :
● epsilonClosure(q0) = {q
0}
● epsilonClosure(q1) = {q
1, q
3}
● epsilonClosure(q2) = {q
2, q
1, q
3}
● epsilonClosure(q3) = {q
3}
● epsilonClosure(q4) = {q
4, q
2, q
1, q
3}
● epsilonClosure(q5) = {q
5}
q5q
0
a
q2
q1
εb q3
ε
q4
a
ε
a
b
Licence Informatique –L1Damien Nouvel
Automates24 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Fonction de transition étendue d'un ε-NFA● Même approche que pour un NFA
– Fonction qui prend un mot en entrée et utilise δ du ε-NFA
– Notation (α ∈ Σ*) : δ(qi, α) = R ⊆ Q (« signature » δ : Q × Σ* → Q*)
– Transitions tiennent compte des transitions ε avec epsClos
– De même, défnition récursive par décomposition du mot w :
● Si w = ε alors δ(qi, w) = epsClos(q
i)
● Si w = x.a tels que x ∈ Σ*, a ∈ Σ et R = δ(qi, x) alors
δ(qi, w) = ∪
r ∈ R ∪
s ∈ δ(r, a) epsClos(s)
ou (équivalent) : δ(qi, w) = ∪
qj ∈ δ(qi, x) ∪
qk ∈ δ(qj, a) epsClos(q
k)
● Langage reconnu par un ε-NFA (comme pour NFA)
● L(A) = { w ∈ Σ* | δ(q0, w) ∩ F ≠ Ø }
Licence Informatique –L1Damien Nouvel
Automates25 / 30
Automates à états fnisDéterminisme du FSA (DFA / NFA / ε-NFA)
● Par ex. :
● δ(q0, a) = {q
2, q
1, q
3}
● δ(q0, b) = {q
1, q
3}
● δ(q0, aa) = {q
5, q
4, q
2, q
1, q
3} = δ(q
0, ba) = δ(q
0, aaa)
● δ(q0, bb) = Ø
● δ(q0, bab) = {q
5} = δ(q
0, baab) = δ(q
0, aab) = δ(q
0, aaab)
q5q
0
a
q2
q1
εb q3
ε
q4
a
ε
a
b
Licence Informatique –L1Damien Nouvel
Automates26 / 30
Automates à états fnisPlan
● Représentation des automates (FSA)
● Défnition formelle (DFA)
● Déterminisme du FSA (DFA / NFA / ε-NFA)
● Équivalence DFA / NFA / ε-NFA
Licence Informatique –L1Damien Nouvel
Automates27 / 30
Automates à états fnisÉquivalence DFA / NFA / ε-NFA
● Les automates reconnaissent des langages● Représentation de l'automate plus ou moins « dense »
● Distinction entre DFA, NFA et NFA
– Fonctions de transitions
– Nombre d'états atteints depuis un état en consommant un symbole
● Le langage reconnu par un automate ne dépend pas des états de l'automate
– Plusieurs automates possibles pour un même langage
● Équivalence des automates (langages reconnus)● Automates DFA et NFA
● Automates NFA et ε-NFA
Licence Informatique –L1Damien Nouvel
Automates28 / 30
Automates à états fnisÉquivalence DFA / NFA / ε-NFA
● Équivalence DFA / NFA● Tout DFA peut-être considéré comme un NFA
● Soit un NFA, N = (QN, Σ
N, δ
N , q
N0, F
N)
– Il existe un DFA, D = (QD, Σ
D, δ
D, q
D0 , F
D) tel que L(D) = L(N)
● Même alphabet (ΣD = Σ
N), même état initial (q
D0 = q
N0)
● On construit QD comme l'ensemble des sous-ensemble de Q
N
– Par ex. si QN = {q
0, q
1} alors Q
D = {{q
0}, {q
1}, {q
0q
1} }
● États fnaux FD
: ceux qui sont construits avec un état fnal de FN
FD
= {qDi
∈ QD | {q
Ni ∈ q
Di } ∩ F
N ≠ Ø}
● Fonction de transition δD de D qui, à partir d'un état de Q
D comme
construction de QN
renvoie vers une autre construction de QN :
δD(q
Di, a) = { ∪qNj ∈ qDi δN
(qNj
, a) }
Licence Informatique –L1Damien Nouvel
Automates29 / 30
Automates à états fnisÉquivalence DFA / NFA / ε-NFA
● Équivalence DFA / NFA (suite)● Preuve sur la longueur du mot w = x.a
– Supposons que : δD(q
D0, x) = δ
N(q
N0, x) = Q
– Par défnition du NFA :
● δN(q
N0, x.a) = ∪
qNj ∈ δ(qN0, x) δ(q
Nj, a) = ∪qNj ∈ Q δ
N(q
Nj, a)
– Et par construction du DFA :
● δD(q
Di, a) = { ∪qNj ∈ qDi δN
(qNj
, a) }
● δD(q
D0, x.a) = δ
D(δ
D(q
D0, x), a) = δ
D(Q, a) = { ∪qNj ∈ Q δ
N(q
Nj, a) }
– Alors δN(q
N0, x.a) = ∪qNj ∈ Q δ
N(q
Nj, a) = δ
D(q
D0, x.a)
● Récursivité : le DFA et le NFA aboutissent aux mêmes états, mais dans le cas du DFA c'est « par construction »
● Pour tout NFA, il est possible de construire un DFA qui reconnaîtra le même langage.
Licence Informatique –L1Damien Nouvel
Automates30 / 30
Automates à états fnisÉquivalence DFA / NFA / ε-NFA
● Équivalence NFA / ε-NFA● Tout NFA peut-être considéré comme un ε-NFA
● Soit un ε-NFA, E = (QE, Σ
E, δ
E , q
E0, F
E)
– Il existe un NFA, N = (QN, Σ
N, δ
N , q
N0, F
N) tel que L(N) = L(E)
● Même alphabet (ΣN = Σ
E)
● On construit QN comme l'ensemble des sous-ensemble de Q
E
● État initial construit qN0
= {epsClos(qE0
)}
● États fnaux FN
: construits avec un état fnal de FE
FN
= {qNi
∈ QN | {q
Ei ∈ q
Ni } ∩ F
E ≠ Ø}
● Fonction de transition δN de N qui, à partir d'un état de Q
N comme
construction de QE renvoie vers une autre construction de Q
E :
δN(q
Ni, a) = { ∪qEj ∈ qNi ∪qNk ∈ δE(qNi, a) epsClos(q
Nk) }