Automates
Jean-Pierre Becirspahic
Lycée Louis-Le-Grand
Automates finis déterministes
Un automate est une machine abstraite qui peut prendre un nombre fini d’états, qui reçoit en entrée un mot écrit sur un alphabetΣ, et qui change d’état à la lecture des lettres de ce dernier.
Certains états sontacceptants; à la fin de la lecture du mot passé en entrée l’automate aura changé d’état ; on dira que le mot estacceptési l’état final est un état acceptant, etrejetédans le cas contraire.
q0 a q1 q2
a b
b
a
L’état initialq0est désigné par une flèche entrante ; les états acceptants (iciq2) sont représentés par une flèche sortante.
Automates finis déterministes
Un automate est une machine abstraite qui peut prendre un nombre fini d’états, qui reçoit en entrée un mot écrit sur un alphabetΣ, et qui change d’état à la lecture des lettres de ce dernier.
Certains états sontacceptants; à la fin de la lecture du mot passé en entrée l’automate aura changé d’état ; on dira que le mot estacceptési l’état final est un état acceptant, etrejetédans le cas contraire.
q0 a q1 q2
a b
b
a
Pour qu’un mot soit lu et aboutisse à un état acceptant il faut et il suffit qu’il débute par un a et se termine par un b; on dira que cet automate reconnait le langage des mots de aΣ∗b.
La lecture du mot abbaabab fait passer l’automate par les états :
Automates finis déterministes
Un automate est une machine abstraite qui peut prendre un nombre fini d’états, qui reçoit en entrée un mot écrit sur un alphabetΣ, et qui change d’état à la lecture des lettres de ce dernier.
Certains états sontacceptants; à la fin de la lecture du mot passé en entrée l’automate aura changé d’état ; on dira que le mot estacceptési l’état final est un état acceptant, etrejetédans le cas contraire.
q0 a q1 q2
a b
b
a
Le couple(q0,b)est unblocagede l’automate. Un automate sans blocage est ditcomplet.
Automates finis déterministes
Un automate est une machine abstraite qui peut prendre un nombre fini d’états, qui reçoit en entrée un mot écrit sur un alphabetΣ, et qui change d’état à la lecture des lettres de ce dernier.
Certains états sontacceptants; à la fin de la lecture du mot passé en entrée l’automate aura changé d’état ; on dira que le mot estacceptési l’état final est un état acceptant, etrejetédans le cas contraire.
q0 q1 q2
q3 a
a b
b
a b
a,b
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Automates finis déterministes
Un second exemple
Σ={0,1}; le mot lu par l’automate correspond à l’écriture binaire d’un entiern. Cet automate reconnait les entiersnqui sont divisibles par 3 :
q0 q1 q2
1 0
0
1 0
1
L’état final atteint estq0sin≡0 mod 3,q1sin≡1 mod 3 etq2sin≡2 mod 3.
• C’est vrai sin=0 ;
• sin>1 on posen=2p+ravecr∈ {0,1}.
Avant la lecture derl’automate se trouve dans l’étatqiavecp≡i mod 3.
r=1 l’automate passe à l’étatq1;
• sii=1 alorsn≡2+rmod 3 et sir=0 l’automate passe à l’étatq2, si r=1 l’automate passe à l’étatq0;
• sii=2 alorsn≡1+rmod 3 et sir=0 l’automate passe à l’étatq1, si r=1 l’automate reste à l’étatq2.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Automates finis déterministes
Un second exemple
Σ={0,1}; le mot lu par l’automate correspond à l’écriture binaire d’un entiern. Cet automate reconnait les entiersnqui sont divisibles par 3 :
q0 q1 q2
1 0
0
1 0
1
L’état final atteint estq0sin≡0 mod 3,q1sin≡1 mod 3 etq2sin≡2 mod 3.
• C’est vrai sin=0 ;
• sin>1 on posen=2p+ravecr∈ {0,1}.
Avant la lecture derl’automate se trouve dans l’étatqiavecp≡i mod 3.
r=1 l’automate passe à l’étatq1;
• sii=1 alorsn≡2+rmod 3 et sir=0 l’automate passe à l’étatq2, si r=1 l’automate passe à l’étatq0;
• sii=2 alorsn≡1+rmod 3 et sir=0 l’automate passe à l’étatq1, si r=1 l’automate reste à l’étatq2.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Automates finis déterministes
Un second exemple
Σ={0,1}; le mot lu par l’automate correspond à l’écriture binaire d’un entiern. Cet automate reconnait les entiersnqui sont divisibles par 3 :
q0 q1 q2
1 0
0
1 0
1
L’état final atteint estq0sin≡0 mod 3,q1sin≡1 mod 3 etq2sin≡2 mod 3.
• C’est vrai sin=0 ;
• sin>1 on posen=2p+ravecr∈ {0,1}.
Avant la lecture derl’automate se trouve dans l’étatqiavecp≡i mod 3.
r=1 l’automate passe à l’étatq1;
• sii=1 alorsn≡2+rmod 3 et sir=0 l’automate passe à l’étatq2, si r=1 l’automate passe à l’étatq0;
• sii=2 alorsn≡1+rmod 3 et sir=0 l’automate passe à l’étatq1, si r=1 l’automate reste à l’étatq2.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Automates finis déterministes
Un second exemple
Σ={0,1}; le mot lu par l’automate correspond à l’écriture binaire d’un entiern. Cet automate reconnait les entiersnqui sont divisibles par 3 :
q0 q1 q2
1 0
0
1 0
1
L’état final atteint estq0sin≡0 mod 3,q1sin≡1 mod 3 etq2sin≡2 mod 3.
• C’est vrai sin=0 ;
• sin>1 on posen=2p+ravecr∈ {0,1}.
Avant la lecture derl’automate se trouve dans l’étatqiavecp≡i mod 3.
r=1 l’automate passe à l’étatq1;
• sii=1 alorsn≡2+rmod 3 et sir=0 l’automate passe à l’étatq2, si r=1 l’automate passe à l’étatq0;
• sii=2 alorsn≡1+rmod 3 et sir=0 l’automate passe à l’étatq1, si r=1 l’automate reste à l’étatq2.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Automates finis déterministes
Un second exemple
Σ={0,1}; le mot lu par l’automate correspond à l’écriture binaire d’un entiern. Cet automate reconnait les entiersnqui sont divisibles par 3 :
q0 q1 q2
1 0
0
1 0
1
L’état final atteint estq0sin≡0 mod 3,q1sin≡1 mod 3 etq2sin≡2 mod 3.
• C’est vrai sin=0 ;
• sin>1 on posen=2p+ravecr∈ {0,1}.
Avant la lecture derl’automate se trouve dans l’étatqiavecp≡i mod 3.
• Sii=0 alorsn≡rmod 3 et sir=0 l’automate reste à l’étatq0, si r=1 l’automate passe à l’étatq1;
r=1 l’automate passe à l’étatq0;
• sii=2 alorsn≡1+rmod 3 et sir=0 l’automate passe à l’étatq1, si r=1 l’automate reste à l’étatq2.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Automates finis déterministes
Un second exemple
Σ={0,1}; le mot lu par l’automate correspond à l’écriture binaire d’un entiern. Cet automate reconnait les entiersnqui sont divisibles par 3 :
q0 q1 q2
1 0
0
1 0
1
L’état final atteint estq0sin≡0 mod 3,q1sin≡1 mod 3 etq2sin≡2 mod 3.
• C’est vrai sin=0 ;
• sin>1 on posen=2p+ravecr∈ {0,1}.
Avant la lecture derl’automate se trouve dans l’étatqiavecp≡i mod 3.
• Sii=0 alorsn≡rmod 3 et sir=0 l’automate reste à l’étatq0, si r=1 l’automate passe à l’étatq1;
• sii=1 alorsn≡2+rmod 3 et sir=0 l’automate passe à l’étatq2, si r=1 l’automate passe à l’étatq0;
r=1 l’automate reste à l’étatq2.
Automates finis déterministes
Un second exemple
Σ={0,1}; le mot lu par l’automate correspond à l’écriture binaire d’un entiern. Cet automate reconnait les entiersnqui sont divisibles par 3 :
q0 q1 q2
1 0
0
1 0
1
L’état final atteint estq0sin≡0 mod 3,q1sin≡1 mod 3 etq2sin≡2 mod 3.
• C’est vrai sin=0 ;
• sin>1 on posen=2p+ravecr∈ {0,1}.
Avant la lecture derl’automate se trouve dans l’étatqiavecp≡i mod 3.
• Sii=0 alorsn≡rmod 3 et sir=0 l’automate reste à l’étatq0, si r=1 l’automate passe à l’étatq1;
• sii=1 alorsn≡2+rmod 3 et sir=0 l’automate passe à l’étatq2, si r=1 l’automate passe à l’étatq0;
• sii=2 alorsn≡1+rmod 3 et sir=0 l’automate passe à l’étatq1, si r=1 l’automate reste à l’étatq2.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Définition formelle d’un automate
Unautomate à états finis déterministeest défini parA = (Σ,Q,q0,F,δ).
• Σest un alphabet (fini) ;
• Qest un ensemble fini d’étatsdeA;
• q0∈Qest l’étatinitial;
• F⊂Qest l’ensemble des étatsacceptants(ou finaux) ;
• δest une application d’une partie deQ×ΣdansQ, appeléefonction de transition.
Lorsqueδest définie surQ×Σtout entier, l’automateA est ditcomplet.
Une transitionδ(qi,a) =qjest représentée parqi−→qj. Unchemindans A est une suite finie de transitions consécutivesq0−→a1 q1−→ · · ·a2 −→an qn débutant par l’état initialq0. Le mota1a2· · ·an est appelé l’étiquette du chemin.
Un chemin estacceptantlorsque l’état d’arrivée est un état acceptant ; un mot deΣ∗estreconnuparA lorsqu’il est l’étiquette d’un chemin ac- ceptant. Le langageL(A)reconnuparA est l’ensemble des mots recon- nus parA.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Définition formelle d’un automate
Unautomate à états finis déterministeest défini parA = (Σ,Q,q0,F,δ).
• Σest un alphabet (fini) ;
• Qest un ensemble fini d’étatsdeA;
• q0∈Qest l’étatinitial;
• F⊂Qest l’ensemble des étatsacceptants(ou finaux) ;
• δest une application d’une partie deQ×ΣdansQ, appeléefonction de transition.
Lorsqueδest définie surQ×Σtout entier, l’automateA est ditcomplet.
Une transitionδ(qi,a) =qjest représentée parqi−→a qj. Unchemindans A est une suite finie de transitions consécutivesq0−→a1 q1−→ · · ·a2 −→an qn débutant par l’état initialq0. Le mota1a2· · ·an est appelé l’étiquettedu chemin.
un mot deΣ∗estreconnuparA lorsqu’il est l’étiquette d’un chemin ac- ceptant. Le langageL(A)reconnuparA est l’ensemble des mots recon- nus parA.
Définition formelle d’un automate
Unautomate à états finis déterministeest défini parA = (Σ,Q,q0,F,δ).
• Σest un alphabet (fini) ;
• Qest un ensemble fini d’étatsdeA;
• q0∈Qest l’étatinitial;
• F⊂Qest l’ensemble des étatsacceptants(ou finaux) ;
• δest une application d’une partie deQ×ΣdansQ, appeléefonction de transition.
Lorsqueδest définie surQ×Σtout entier, l’automateA est ditcomplet.
Une transitionδ(qi,a) =qjest représentée parqi−→a qj. Unchemindans A est une suite finie de transitions consécutivesq0−→a1 q1−→ · · ·a2 −→an qn débutant par l’état initialq0. Le mota1a2· · ·an est appelé l’étiquettedu chemin.
Un chemin estacceptant lorsque l’état d’arrivée est un état acceptant ; un mot deΣ∗ estreconnuparA lorsqu’il est l’étiquette d’un chemin ac- ceptant. Le langageL(A)reconnuparA est l’ensemble des mots recon-
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Définition formelle d’un automate
Exemple
• Σ={a,b};
• Q={q0,q1,q2};
• F={q0,q1};
δ a b
q0 q1 q0 q1 q2 q0 q2 q2 q2
q0 q1 q2
a b
a
b
a,b
On noteLil’ensemble des étiquettes des chemins débutant parqiet finis- sant par un état acceptant.
L0=ε+bL0+aL1, L1=ε+bL0 et L2=∅.
0 0 0 0
le lemme d’Arden,L0= (b+ab)∗(ε+a). Le langage reconnu par cet auto- mate est le langage des mots qui ne comportent pas deuxaconsécutifs.
Définition formelle d’un automate
Exemple
• Σ={a,b};
• Q={q0,q1,q2};
• F={q0,q1};
δ a b
q0 q1 q0 q1 q2 q0 q2 q2 q2
q0 q1 q2
a b
a
b
a,b
On noteLil’ensemble des étiquettes des chemins débutant parqiet finis- sant par un état acceptant.
L0=ε+bL0+aL1, L1=ε+bL0 et L2=∅.
On en déduit queL0=ε+bL0+a(ε+bL0) = (b+ab)L0+ (ε+a). D’après le lemme d’ ,L = (b+ab)∗(ε+a). Le langage reconnu par cet auto-
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Émondage
Deux automates sont ditséquivalents lorsqu’ils reconnaissent le même langage :
q0 q1 q2
a b
a
b
a,b
q0 q1
a b
b
Le premier est complet, le second ne l’est pas.
équivalent en supprimant tous les états inutiles ainsi que les transitions qui les concernent.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Émondage
Deux automates sont ditséquivalents lorsqu’ils reconnaissent le même langage :
q0 q1 q2
a b
a
b
a,b
q0 q1
a b
b
un étatqqu’il est :
• accessiblelorsqu’il existe un chemin menant de l’état initialq0àq;
• co-accessiblelorsqu’il existe un chemin menant deqà un état acceptant.
équivalent en supprimant tous les états inutiles ainsi que les transitions qui les concernent.
Émondage
Deux automates sont ditséquivalents lorsqu’ils reconnaissent le même langage :
q0 q1 q2
a b
a
b
a,b
q0 q1
a b
b
un étatqqu’il est :
• accessiblelorsqu’il existe un chemin menant de l’état initialq0àq;
• co-accessiblelorsqu’il existe un chemin menant deqà un état acceptant.
Un état accessible et co-accessible est ditutile. On obtient un automate équivalent en supprimant tous les états inutiles ainsi que les transitions qui les concernent.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Émondage
Exemple
q0 q1 q2
q3 q4
a
b
a b
a b
a,b a
b
L’automate ci-dessus possède deux états inutiles :q4n’est pas accessible etq3n’est pas co-accessible.
q0 a q1 q2
a b
a b
q3n’est pas co-accessible q4n’est pas accessible
et reconnait le langage dénoté para(a+b)∗b.
Émondage
Exemple
q0 q1 q2
q3 q4
a
b
a b
a b
a,b a
b
L’automate ci-dessus possède deux états inutiles :q4n’est pas accessible etq3n’est pas co-accessible. Il est équivalent à :
q0 a q1 q2
a b
a b
q3n’est pas co-accessible
et reconnait le langage dénoté para(a+b)∗b.
JP Becirspahic — Automates — 2015-2016 — Page 4/18
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Mise en œuvre
On utilise le typecharpour représenter l’alphabetΣ, le type int pour l’en- semble des états et un dictionnaire pour énumérer la liste des transi- tions possibles. Pour simplifier, ce dictionnaire sera représenté par le type ( int * char) * int list.
dfa = {Start: int ; Accept: int list ;
Delta: ((int * char) * int) list} ;; let chemin a m =
let rec aux q = function
| k when k = string_length m −> q
| k −> aux (assoc (q, m.[k]) a.Delta) (k+1) in aux a.Start 0 ;;
let reconnu a m =
try mem (chemin a m) a.Accept with Not_found −> false ;;
Mise en œuvre
On utilise le typecharpour représenter l’alphabetΣ, le type int pour l’en- semble des états et un dictionnaire pour énumérer la liste des transi- tions possibles. Pour simplifier, ce dictionnaire sera représenté par le type ( int * char) * int list.
type dfa = {Start: int ; Accept: int list ;
Delta: ((int * char) * int) list} ;;
let chemin a m =
let rec aux q = function
| k when k = string_length m −> q
| k −> aux (assoc (q, m.[k]) a.Delta) (k+1) in aux a.Start 0 ;;
let reconnu a m =
try mem (chemin a m) a.Accept with Not_found −> false ;;
Automates non déterministes
Un NFA est défini par un quintupletA= (Σ,Q,I,F,δ)où :
• Σest un alphabet (fini) ;
• Qest un ensemble fini d’étatsdeA;
• I⊂Qest l’ensemble des étatsinitiaux;
• F⊂Qest l’ensemble des étatsacceptants;
• δest une application d’une partie deQ×ΣdansP(Q): lafonction de transition.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Automates non déterministes
Un NFA est défini par un quintupletA= (Σ,Q,I,F,δ)où :
• Σest un alphabet (fini) ;
• Qest un ensemble fini d’étatsdeA;
• I⊂Qest l’ensemble des étatsinitiaux;
• F⊂Qest l’ensemble des étatsacceptants;
• δest une application d’une partie deQ×ΣdansP(Q): lafonction de transition.
Une transitionest un triplet (qi,a,qj) tel queqj ∈ δ(qi,a), représentée parqi −→a qj. Uncheminest une suite finie de transitions consécutives q0−→a1 q1−→ · · ·a2 −→an qn.
Un mot deΣ estreconnupar l’automateA s’il étiquette un chemin me- nant d’un état initial à un état acceptant. Le langage des mots reconnus par l’automateA est notéL(A).
Automates non déterministes
Un NFA est défini par un quintupletA= (Σ,Q,I,F,δ)où :
• Σest un alphabet (fini) ;
• Qest un ensemble fini d’étatsdeA;
• I⊂Qest l’ensemble des étatsinitiaux;
• F⊂Qest l’ensemble des étatsacceptants;
• δest une application d’une partie deQ×ΣdansP(Q): lafonction de transition.
Une transitionest un triplet (qi,a,qj) tel queqj ∈ δ(qi,a), représentée parqi −→a qj. Uncheminest une suite finie de transitions consécutives q0−→a1 q1−→ · · ·a2 −→an qn.
Un mot deΣ∗estreconnupar l’automateA s’il étiquette un chemin me- nant d’un état initial à un état acceptant. Le langage des mots reconnus par l’automateA est notéL(A).
Automates non déterministes
Un NFA est défini par un quintupletA= (Σ,Q,I,F,δ)où :
• Σest un alphabet (fini) ;
• Qest un ensemble fini d’étatsdeA;
• I⊂Qest l’ensemble des étatsinitiaux;
• F⊂Qest l’ensemble des étatsacceptants;
• δest une application d’une partie deQ×ΣdansP(Q): lafonction de transition.
Exemple: l’automate ci dessous reconnait le langage dénoté par a(a+b)∗b.
q0 a q1 q2
a,b b
Déterminisation
Considérons donc un automate non-déterministeA = (Σ,Q,I,F,δ)et po- sonsA0= (Σ,P(Q),I,F0,δ0)avec :
F0=n
P∈P(Q)
P∩F,∅o
et ∀(P,a)∈P(Q)×Σ,δ0(P,a) =[
q∈P
δ(q,a).
SiAest un automate non-déterministe ànétats,A0est un automate dé- terministe à 2nétats.
Déterminisation
Considérons donc un automate non-déterministeA = (Σ,Q,I,F,δ)et po- sonsA0= (Σ,P(Q),I,F0,δ0)avec :
F0=n
P∈P(Q)
P∩F,∅o
et ∀(P,a)∈P(Q)×Σ,δ0(P,a) =[
q∈P
δ(q,a).
q0 a q1 q2
a,b b
États et transitions deA0:
δ0 a b
∅ ∅ ∅
∗ {q0} {q1} ∅ {q1} {q1} {q1,q2} {q2} ∅ ∅
δ0 a b
{q0,q1} {q1} {q1,q2}
∗ {q1,q2} {q1} {q1,q2}
∗ {q0,q2} {q1} ∅
∗ {q0,q1,q2} {q1} {q1,q2}
*: état initial, *: états acceptants.
Déterminisation
Considérons donc un automate non-déterministeA = (Σ,Q,I,F,δ)et po- sonsA0= (Σ,P(Q),I,F0,δ0)avec :
F0=n
P∈P(Q)
P∩F,∅o
et ∀(P,a)∈P(Q)×Σ,δ0(P,a) =[
q∈P
δ(q,a).
q0 a q1 q2
a,b b
Dans la pratique on écrit que les états accessibles :
δ0 a b
∗ {q0} {q1} − →q00 {q1} {q1} {q1,q2} →q10
∗ {q1,q2} {q1} {q1,q2} →q20
Déterminisation
Considérons donc un automate non-déterministeA = (Σ,Q,I,F,δ)et po- sonsA0= (Σ,P(Q),I,F0,δ0)avec :
F0=n
P∈P(Q)
P∩F,∅o
et ∀(P,a)∈P(Q)×Σ,δ0(P,a) =[
q∈P
δ(q,a).
q0 a q1 q2
a,b b
On obtient l’automate déterminisé suivant :
q00 a q10 q20 a
b
a b
A0reconnait lui aussi le langage dénoté para(a+b)∗b.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
DansA tout chemin étiqueté parεmène à un élément deI; dansA tout chemin étiqueté parεmène à l’étatI.
• Siu,ε, supposons le résultat acquis pour tout mot de longueur strictement inférieure, et posonsu=a1a2· · ·an.
Sachant queF0=n
P∈P(Q)
P∩F,∅o
ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
DansA tout chemin étiqueté parεmène à un élément deI; dansA tout chemin étiqueté parεmène à l’étatI.
• Siu,ε, supposons le résultat acquis pour tout mot de longueur strictement inférieure, et posonsu=a1a2· · ·an.
Sachant queF0=n
P∈P(Q)
P∩F,∅o
ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
• DansAtout chemin étiqueté parεmène à un élément deI; dansA0tout chemin étiqueté parεmène à l’étatI.
inférieure, et posonsu=a1a2· · ·an.
Sachant queF0=n
P∈P(Q)
P∩F,∅o
ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
• DansAtout chemin étiqueté parεmène à un élément deI; dansA0tout chemin étiqueté parεmène à l’étatI.
• Siu,ε, supposons le résultat acquis pour tout mot de longueur strictement inférieure, et posonsu=a1a2· · ·an.
Sachant queF = P P(Q)P F, ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
• DansAtout chemin étiqueté parεmène à un élément deI; dansA0tout chemin étiqueté parεmène à l’étatI.
• Siu,ε, supposons le résultat acquis pour tout mot de longueur strictement inférieure, et posonsu=a1a2· · ·an.
Considérons un cheminq0−→a1 q1−→ · · ·a2 −→an qndansA.
Il existe dansA0un cheminI−→a1 P1−→ · · ·a2 a−→n−1Pn−1tel queqn−1∈Pn−1.
n δ(qn−1, n) n δ(Pn−1, n). En posant n =δ(Pn−1, n) cheminI−→a1 P1−→ · · ·a2 −→an Pntel queqn∈Pn.
Sachant queF0=n
P∈P(Q)
P∩F,∅o
ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
• DansAtout chemin étiqueté parεmène à un élément deI; dansA0tout chemin étiqueté parεmène à l’étatI.
• Siu,ε, supposons le résultat acquis pour tout mot de longueur strictement inférieure, et posonsu=a1a2· · ·an.
Considérons un cheminq0−→a1 q1−→ · · ·a2 −→an qndansA.
Il existe dansA0un cheminI−→a1 P1−→ · · ·a2 a−→n−1Pn−1tel queqn−1∈Pn−1.
qn∈δ(qn−1,an)doncqn∈δ0(Pn−1,an). En posantPn=δ0(Pn−1,an)on établit un cheminI−→a1 P1−→ · · ·a2 −→an Pntel queqn∈Pn.
Sachant queF = P P(Q)P F, ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
• DansAtout chemin étiqueté parεmène à un élément deI; dansA0tout chemin étiqueté parεmène à l’étatI.
• Siu,ε, supposons le résultat acquis pour tout mot de longueur strictement inférieure, et posonsu=a1a2· · ·an.
Réciproquement, considérons un cheminI −→a1 P1−→ · · ·a2 −→an Pn dansA, et consi- dérons un élémentqn∈Pn.
rence il existe un cheminq0−→a1 q1−→ · · ·a2 a−→n−1qn−1dansA. Ceci prouve l’existence d’un cheminq0−→a1 q1−→ · · ·a2 −→an qn. Sachant queF0=n
P∈P(Q)
P∩F,∅o
ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
• DansAtout chemin étiqueté parεmène à un élément deI; dansA0tout chemin étiqueté parεmène à l’étatI.
• Siu,ε, supposons le résultat acquis pour tout mot de longueur strictement inférieure, et posonsu=a1a2· · ·an.
Réciproquement, considérons un cheminI −→a1 P1−→ · · ·a2 −→an Pn dansA, et consi- dérons un élémentqn∈Pn.
Il existe un étatqn−1∈Pn−1tel queqn∈δ(qn−1,an), et par hypothèse de récur- rence il existe un cheminq0−→a1 q1−→ · · ·a2 a−→n−1qn−1dansA.
Ceci prouve l’existence d’un cheminq0−→q1−→ · · ·−→qn. Sachant queF0=n
P∈P(Q)
P∩F,∅o
ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
• DansAtout chemin étiqueté parεmène à un élément deI; dansA0tout chemin étiqueté parεmène à l’étatI.
• Siu,ε, supposons le résultat acquis pour tout mot de longueur strictement inférieure, et posonsu=a1a2· · ·an.
Réciproquement, considérons un cheminI −→a1 P1−→ · · ·a2 −→an Pn dansA, et consi- dérons un élémentqn∈Pn.
Il existe un étatqn−1∈Pn−1tel queqn∈δ(qn−1,an), et par hypothèse de récur- rence il existe un cheminq0−→a1 q1−→ · · ·a2 a−→n−1qn−1dansA.
Ceci prouve l’existence d’un cheminq0−→a1 q1−→ · · ·a2 −→an qn.
Sachant queF = P P(Q)P F, ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
Déterminisation
Les automatesAetA0reconnaissent le même langage.
On montre par récurrence sur|u|que pour tout motu∈Σ∗, il existe dansA un chemin étiqueté parumenant à un étatqsi et seulement s’il existe dansA0un chemin étiqueté parumenant à un étatPcontenantq.
• DansAtout chemin étiqueté parεmène à un élément deI; dansA0tout chemin étiqueté parεmène à l’étatI.
• Siu,ε, supposons le résultat acquis pour tout mot de longueur strictement inférieure, et posonsu=a1a2· · ·an.
Réciproquement, considérons un cheminI −→a1 P1−→ · · ·a2 −→an Pn dansA, et consi- dérons un élémentqn∈Pn.
Il existe un étatqn−1∈Pn−1tel queqn∈δ(qn−1,an), et par hypothèse de récur- rence il existe un cheminq0−→a1 q1−→ · · ·a2 a−→n−1qn−1dansA.
Ceci prouve l’existence d’un cheminq0−→a1 q1−→ · · ·a2 −→an qn. Sachant queF0=n
P∈P(Q)
P∩F,∅o
ceci prouve qu’un mot est reconnu parA si et seulement s’il est reconnu parA0.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Un exemple de coût exponentiel
Considérons le langage L dénoté par(a+b)∗a(a+b)n−1. Il est facile d’obtenir un automate non-déterministe àn+1 états qui le reconnait :
q0 q1 q2 · · · qn
a,b
a a,b a,b a,b
Tout automate déterministe qui reconnaitLpossède au moins 2 états. Considérons un tel automateA et notonsq0son état initial. À tout motuden lettres on associe l’étatq(u)auquel aboutit le chemin étiqueté paru. On définit ainsi une applicationq:{a,b}n→Q.
On considère deux motsu,vtels queq(u) =q(v)et le plus long suffixewcom- mun àuet àv. Sans perte de généralité on peut poseru=u0awetv=v0bw. On complètewpour former un motww0de longueurn−1.
Le motuw0=u0aww0est reconnu parA mais pasvw0=v0bww0.
MaisAest déterministe etq(u) =q(v)donc les chemins étiquetés paruw0etvw0 doivent mener au même état (ou être tous deux bloquants) ce qui est absurde.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Un exemple de coût exponentiel
Considérons le langage L dénoté par(a+b)∗a(a+b)n−1. Il est facile d’obtenir un automate non-déterministe àn+1 états qui le reconnait :
q0 q1 q2 · · · qn
a,b
a a,b a,b a,b
Tout automate déterministe qui reconnaitLpossède au moins 2n états.
lettres on associe l’étatq(u)auquel aboutit le chemin étiqueté paru. On définit ainsi une applicationq:{a,b}n→Q.
On considère deux motsu,vtels queq(u) =q(v)et le plus long suffixewcom- mun àuet àv. Sans perte de généralité on peut poseru=u0awetv=v0bw. On complètewpour former un motww0de longueurn−1.
Le motuw0=u0aww0est reconnu parA mais pasvw0=v0bww0.
MaisAest déterministe etq(u) =q(v)donc les chemins étiquetés paruw0etvw0 doivent mener au même état (ou être tous deux bloquants) ce qui est absurde.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Un exemple de coût exponentiel
Considérons le langage L dénoté par(a+b)∗a(a+b)n−1. Il est facile d’obtenir un automate non-déterministe àn+1 états qui le reconnait :
q0 q1 q2 · · · qn
a,b
a a,b a,b a,b
Tout automate déterministe qui reconnaitLpossède au moins 2n états.
Considérons un tel automateA et notonsq0son état initial. À tout motuden lettres on associe l’étatq(u)auquel aboutit le chemin étiqueté paru. On définit ainsi une applicationq:{a,b}n→Q.
, ffi
mun àuet àv. Sans perte de généralité on peut poseru=u0awetv=v0bw. On complètewpour former un motww0de longueurn−1.
Le motuw0=u0aww0est reconnu parA mais pasvw0=v0bww0.
MaisAest déterministe etq(u) =q(v)donc les chemins étiquetés paruw0etvw0 doivent mener au même état (ou être tous deux bloquants) ce qui est absurde.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Un exemple de coût exponentiel
Considérons le langage L dénoté par(a+b)∗a(a+b)n−1. Il est facile d’obtenir un automate non-déterministe àn+1 états qui le reconnait :
q0 q1 q2 · · · qn
a,b
a a,b a,b a,b
Tout automate déterministe qui reconnaitLpossède au moins 2n états.
Considérons un tel automateA et notonsq0son état initial. À tout motuden lettres on associe l’étatq(u)auquel aboutit le chemin étiqueté paru. On définit ainsi une applicationq:{a,b}n→Q.
On considère deux motsu,vtels queq(u) =q(v)et le plus long suffixewcom- mun àuet àv. Sans perte de généralité on peut poseru=u0awetv=v0bw.
Le motuw0=u0aww0est reconnu parA mais pasvw0=v0bww0.
MaisAest déterministe etq(u) =q(v)donc les chemins étiquetés paruw0etvw0 doivent mener au même état (ou être tous deux bloquants) ce qui est absurde.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Un exemple de coût exponentiel
Considérons le langage L dénoté par(a+b)∗a(a+b)n−1. Il est facile d’obtenir un automate non-déterministe àn+1 états qui le reconnait :
q0 q1 q2 · · · qn
a,b
a a,b a,b a,b
Tout automate déterministe qui reconnaitLpossède au moins 2n états.
Considérons un tel automateA et notonsq0son état initial. À tout motuden lettres on associe l’étatq(u)auquel aboutit le chemin étiqueté paru. On définit ainsi une applicationq:{a,b}n→Q.
On considère deux motsu,vtels queq(u) =q(v)et le plus long suffixewcom- mun àuet àv. Sans perte de généralité on peut poseru=u0awetv=v0bw.
On complètewpour former un motww0de longueurn−1.
Le motuw0=u0aww0est reconnu parA mais pasvw0=v0bww0.
q(u) =q(v)
doivent mener au même état (ou être tous deux bloquants) ce qui est absurde.
Un exemple de coût exponentiel
Considérons le langage L dénoté par(a+b)∗a(a+b)n−1. Il est facile d’obtenir un automate non-déterministe àn+1 états qui le reconnait :
q0 q1 q2 · · · qn
a,b
a a,b a,b a,b
Tout automate déterministe qui reconnaitLpossède au moins 2n états.
Considérons un tel automateA et notonsq0son état initial. À tout motuden lettres on associe l’étatq(u)auquel aboutit le chemin étiqueté paru. On définit ainsi une applicationq:{a,b}n→Q.
On considère deux motsu,vtels queq(u) =q(v)et le plus long suffixewcom- mun àuet àv. Sans perte de généralité on peut poseru=u0awetv=v0bw.
On complètewpour former un motww0de longueurn−1.
Le motuw0=u0aww0est reconnu parA mais pasvw0=v0bww0.
MaisAest déterministe etq(u) =q(v)donc les chemins étiquetés paruw0etvw0 doivent mener au même état (ou être tous deux bloquants) ce qui est absurde.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Recherche d’un mot dans un texte
Siu ∈ Σ∗ est un mot donné, on souhaite un automatedéterministequi reconnait le langageΣ∗uΣ∗.
siu=a1a2· · ·an il suffit de considérer :
q0 q1 q2 · · · qn
Σ
a1 a2 a3 an
Σ
Il reste ensuite à déterminiser cet automate.
Recherche d’un mot dans un texte
Siu ∈ Σ∗ est un mot donné, on souhaite un automatedéterministequi reconnait le langageΣ∗uΣ∗.
Ce problème est aisément résolu à l’aide d’un automate non-déterministe : siu=a1a2· · ·an il suffit de considérer :
q0 q1 q2 · · · qn
Σ
a1 a2 a3 an
Σ
Il reste ensuite à déterminiser cet automate.
l y c é e l o u i s - l e - g r a n d o p t i o n i n f o r m a t i q u e
Recherche d’un mot dans un texte
Siu ∈ Σ∗ est un mot donné, on souhaite un automatedéterministequi reconnait le langageΣ∗uΣ∗.
Exemple: recherche du motabasur l’alphabet{a,b}.
q0 q1 q2 q3
a,b
a b a
a,b
δ a b
∗ {q0} {q0,q1} {q0} →q00 {q0,q1} {q0,q1} {q0,q2} →q10 {q0,q2} {q0,q1,q3} {q0} →q20
∗ {q0,q1,q3} {q0,q1,q3} {q0,q2,q3} →q30
∗ {q0,q2,q3} {q0,q1,q3} {q0,q3} →q40
∗ {q0,q3} {q0,q1,q3} {q0,q3} →q50