Limites des automates dterministes - PowerPoint PPT Presentation

1 / 111
About This Presentation
Title:

Limites des automates dterministes

Description:

D crire le langage accept par un automate fini d terministe donn . ... Construire un automate fini d terministe qui accepte le langage demand . ... – PowerPoint PPT presentation

Number of Views:168
Avg rating:3.0/5.0
Slides: 112
Provided by: nadia48
Category:

less

Transcript and Presenter's Notes

Title: Limites des automates dterministes


1
Limites des automates déterministes
  • Objectifs spécifiques
  • Décrire le langage accepté par un automate fini
    déterministe donné.
  • Construire un automate fini déterministe
    acceptant un langage donné.
  • Démontrer quun langage donné nest pas régulier.

2
Langages réguliers
  • La notion dautomate peut être reliée à celle de
    langage et cest ce que nous allons faire.
  • Un automate accepte un langage bien précis.

3
Définition
  • Soit M un automate fini déterministe qui a pour
    alphabet ?. L(M) est lensemble de toutes les
    séquences de symboles reconnues par lautomate M.
    Nous dirons que L(M) est le langage reconnu(ou
    accepté) par lautomate fini M.

4
Exemple
  • Soit A lautomate fini déterministe suivant.

Les séquences acceptées ont un ou plusieurs b,
suivis dun seul a, suivi de zéro ou plusieurs b.
Donc, L(A) bmabnm?N?n ?N.
5
Exercices
  • Dire en mots et au moyen dune expression
    ensembliste le langage reconnu par lautomate.

R L(M) a2, b, aba, abbb,abba
6
R L(M) stu s ? 0,1-? ? t ? ,- ?
u ? 0,1.
7
3)
R L(M) ?
8
Exercices
  • Soit l alphabet ? b, h, i, o, u. Construire
    un automate fini déterministe qui accepte le
    langage demandé.

1) hibou, hi, bou, hou
9
2) (ho)n n ?N
10
Définition
  • Un langage est dit régulier sil existe un
    automate fini déterministe qui le reconnaît.
  • On dit quun automate fini M reconnaît un langage
    L ssi il accepte tous les mots de ce langage et
    seulement les mots de ce langage i.e. L(M) L.
  • Une façon de montrer quun langage est régulier
    est de construire un automate qui reconnaît ce
    langage. Il existe dautres méthodes que nous
    verrons plus tard.

11
Exercice
  • Montrer que ? est régulier.
  • R Supposons que ? a1, , an.Il existe un
    automate fini déterministe qui reconnaît ?

Ou encore (A, a1, a2, , an , ((A,
a1),A),, ((A, an),A),A,A) Ces trois
représentations décrivent le même automate.
12
Problème
  • Montrez comment on peut transformer un automate
    fini déterministe M(S, ?, ?, ?,F) pour qu il
    accepte ? - L(M). Cet exercice démontre que le
    complément dun langage régulier (relativement à
    ?) est régulier.

13
Solution
  • Puisque M est déterministe, une séquence dentrée
    conduit M à un état et un seul. La
    transformation à faire est de rendre finaux les
    états qui ne létaient pas et de rendre non
    finaux ceux qui létaient. Les séquences qui
    étaient auparavant acceptées sont maintenant
    rejetées et celles qui étaient rejetées sont
    acceptées.

14
Exercice
  • Soit ? a, b. Énumérer tous les automates
    finis déterministes sur ? qui ont 1 ou 2 états.
    Considérer que les états sont étiquetés, e.g. S
    1 et S 1, 2.
  • R I) Automates à un état il ny en a que deux,
    soient

15
  • Automates à deux états
  • Il faut déterminer tous les automates finis,
    déterministes (S, ?, ?, ?,F) tels que S1,2 et
    ?a,b.
  • Commençons par déterminer ?
  • ? (S? ?) ? S
  • S? ? 2 ?2 4. S2. Pour chaque élément de
    (S? ?), il y a deux possibilités dimages par ?.
    Donc, le nombre total de possibilités pour ? est
    24 16.

16
  • ? ? S. Donc, nous avons deux possibilités pour ?.
  • F ? S. Donc, F pourrait être nimporte quel
    élément de ?(S) ?,1,2,1,2. Nous avons 4
    possibilités.
  • Donc le nombre total des automates à deux états
    correspond à 16 ? 2 ? 4 128.
  • Le nombre total dautomates à un ou deux états
    pour un langage de deux éléments est 2128130
    automates différents.

17
  • Dire combien il y a dautomates finis
    déterministes à n états étiquetés sur un alphabet
    ? tel que ? k.
  • Il faut déterminer tous les automates finis,
    déterministes (S, ?, ?, ?,F) tels que S n et
    ?k.
  • Commençons par déterminer le nombre des ?
    possibles
  • ? (S? ?) ? S
  • S? ? n?k nk. Sn. Pour chaque élément de
    (S? ?), il y a n possibilités dimages par ?.
    Donc, le nombre total de possibilités pour ? est
    nnk .

18
  • ? ? S. Donc, nous avons n possibilités pour ?.
  • F ? S. Donc, F pourrait être nimporte quel
    élément de ?(S). ?(S)2n. Nous avons donc 2n
    possibilités.
  • Donc le nombre total des automates à n états
    correspond à nnk ? n ? 2n nnk1 ?2n.

19
Théorème
  • Pour tout alphabet ?, il existe un langage
    quaucun automate fini déterministe ne peut
    reconnaître.

20
Démonstration
  • Nous considérons seulement les automates dont
    lalphabet est ?, car lajout dun arc avec un
    symbole x ? ? ne peut pas affecter la
    reconnaissance dune séquence w ? ? .
  • Dénotons A? lensemble des automates finis
    déterministes sur lalphabet ?. Daprès
    lexercice précédent, cet ensemble est
    dénombrable. A? ? N

21
  • Nous avons déjà vu que l ensemble des langages
    sur ? est non dénombrable. N lt ?(?).
  • Donc, puisque A? ? N, A? lt ?(?).
  • Lensemble des langages est plus grand que celui
    des automates.

22
  • La preuve précédente montre quil existe un
    langage qui ne peut être reconnu par un automate
    fini déterministe, mais nous navons pas encore
    vu dexemple dun tel langage.
  • La section suivante donne un exemple de cette
    sorte.

23
Langages non réguliers
  • Aucun automate fini déterministe ne peut
    déterminer si les parenthèses dune expression
    arithmétique sont correctement équilibrées.
  • Par exemple
  • a (b ? c ? ( a - d)
  • a )b ? c ? ( a d

a (b ? c ? ( a - d) g)
24
  • Pour dire si les parenthèses sont équilibrées, il
    faut compter le nombre de parenthèses gauche g et
    le nombre de parenthèses droites d en lisant de
    gauche à droite.
  • Lors de la lecture, on doit avoir g ? d.
  • À la fin de la lecture, il faut avoir g d.
  • Un automate fini ne peut faire ce calcul si on
    lui donne une expression trop longue.Nous
    verrons pourquoi bientôt.

25
  • Nous allons montrer quun automate fini ne peut
    pas reconnaître le langage (n )n n ?N sur
    l alphabet (, ).
  • Ce langage est plus simple que celui des
    expressions arithmétiques parenthésées car ces
    dernières peuvent contenir des parenthèses
    gauches mêlées à des parenthèses droites, e.g.
    (10-(23) ?(11)).

26
  • Considérons lautomate non ambigu suivant

Cet automate reconnaît le langage
?,(),(()),((())),(((()))). Cependant, il
rejette les séquences (n )n pour n gt 4, et il y
a une infinité de ces séquences. Pour tenter
daccepter ces séquences avec un automate ayant
un nombre détats fini, on ne peut pas éviter
dajouter des boucles.
27
  • Nous avons maintenant cet automate

Cet automate rejette (5 )5 et (9 )9 mais il
accepte toutes les séquences de la forme (3m1
)3m1. Cet automate accepte donc certaines
séquences de la forme (n )n pour un n
arbitrairement grand. Cependant, il accepte aussi
les séquences (5 )2 et (6 )3 à cause de la
boucle du haut.
28
  • On peut décrire lacceptation dune séquence en
    donnant la liste des états traversés et en
    plaçant entre ces états les symboles lus lors des
    transitions.
  • Par exemple, lacceptation de (()) est décrite
    par 1 ( 2 ( 3 ) 7 ) 10.

29
  • Lacceptation dune séquence de la forme (3m1)4
    se visualise donc comme suit
  • 1 (2 (3 (4 (5 (3 (4 (5 (3 (4 (5 (3(4... 4 (5 )9
    )12 )14 )15.

30
  • Pour comprendre le théorème qui suit, il faut
    bien saisir ce quon entend par arbitrairement
    grand.
  • Un sous-ensemble non vide de N contient des
    nombres arbitrairement grands sil ne contient
    pas de nombre maximal cest donc un ensemble
    infini.
  • Par exemple, lensemble des nombres pairs
    contient des entiers arbitrairement grands.

31
Théorème
  • Si un langage régulier L contient des séquences
    de symboles de la forme xnyn pour des n ? N
    arbitrairement grands, alors il doit aussi
    contenir une séquence de la forme xmyn où n ? m.

32
Démonstration
  • Soit M (S, ?, ?, ?, F) un automate fini
    déterministe tel que L(M) L. On sait, quun tel
    automate existe car L est un langage régulier.
  • L(M) contient des séquences de la forme xnyn
    pour n arbitrairement grand.
  • ? ?Signification de arbitrairement grand. ?
  • ?k?NkgtS? xkyk ? L(M)
  • ? ? Il y a plus de symboles dans xk
    que détats dans M. Lors de la lecture de xk
    , M doit donc passer au moins deux fois par
    un certain état si. ?

33
  • ?k?N ?si?S xkyk ? L(M) ? M passe au moins
    deux fois par si en lisant xk.
  • ? ?Il y a donc une boucle qui part de si et
    qui y revient. Supposons que jgt0 soit la
    longueur de cette boucle.?
  • ?k?N ?j?N xkyk ? L(M) ? M traverse une boucle
    de longueur j lors de la lecture de xk .
  • ? ?Une boucle peut être traversée un nombre
    quelconque de fois. M peut la parcourir
    une fois de plus. ?

34
  • ?k?N ?j?N xkyk ? L(M) ? xkjyk ? L(M)
  • ? ?Doù le résultat annoncé. ?
  • L(M) contient une séquence de la forme xmyn
    avec n ? m.

35
Résumé
  • Nous venons dexhiber un exemple de langages
    quaucun automate fini déterministe ne peut
    reconnaître
  • (n)n, xnyn pour n arbitrairement grand.
  • Cela montre les limites des automates finis
    déterministes et des langages réguliers.

36
Exemple
  • Nous avons déjà vu quil était difficile de
    reconnaître des séquences de la forme (n )n sans
    aussi accepter des séquences qui ne sont pas de
    cette forme. Voici un nouvel exemple de cette
    difficulté.

37
  • Lautomate fini non ambigu suivant accepte les
    séquences de lensemble a3n2b3n2
    n ?N , par exemple aabb et aaaaabbbbb, mais il
    accepte aussi les séquence de la forme
    a3m2b3n2où m, n ?N et m ? n (donc 3m2 ?
    3n2). Ainsi, aaaaabb est acceptée.

38
Langages non réguliers
  • Preuve quun langage L est non régulier
  • Pour prouver quun langage est non régulier, on
    fait une preuve par contradiction.
  • On suppose quil existe un automate fini
    déterministe M tel que L(M) L.
  • On prend une séquence w suffisamment longue
    (ayant un nombre de symboles supérieur au nombre
    détats de M).
  • On démontre que pour que M reconnaisse w il faut
    quil possède une boucle.

39
Théorème de pompage
  • Si L est un langage régulier, il existe un entier
    p gt 0 appelé longueur de pompage, tel que tout
    mot w de L tel que w p peut être décomposé
    comme w xyz avec
  • xy p
  • y gt 0
  • Pour tout i 0 on a xyiz ?L.

40
Démonstration
  • Soit M (S, ?, ?, ?, F) un automate fini
    déterministe tel que L(M) L. On sait, quun tel
    automate existe car L est un langage régulier.
    Posons p S, le nombre détats.
  • Soit w un mot de L tel que w p. En lisant les
    p premiers symboles du mot w, lautomate doit
    donc passer par un certain état si deux fois.
  • Cet état est atteint une première fois après la
    lecture du préfixe x de w.
  • Il est atteint une seconde fois après la lecture
    de la suite y.
  • Le mot y correspond à une boucle autour de si que
    lon peut répéter à volonté ou même enlever.
  • À partir de si, le reste du mot z nous mène à un
    état acceptant.
  • ? Lautomate accepte tous les mots de la forme
    xyiz, i 0.

41
Comment appliquer ce théorème
  • Pour montrer quun langage L nest pas régulier,
    on peut montrer quil ne satisfait pas les
    conditions du théorème.
  • Supposons un jeu contre un adversaire qui veut
    nous convaincre que le langage L est régulier.

42
  • Adversaire oui L est régulier, sa longueur de
    pompage est p.
  • Nous trouver un mot w ? L, avec w p que
    ladversaire ne pourra pas pomper.
  • Adversaire décomposition de w xyz, tel que
    xy p et y gt 0. Ladversaire prétend que
    pour tout i 0, on a xyiz ? L.
  • Nous trouver un i tel que xyiz ?L.
  • ? L nest pas régulier.

43
Exercice
  • Montrer quil nexiste aucun automate fini
    déterministe M qui a pour langage L(M) anbn
    n ?N. Autrement dit, L nest pas régulier.
  • R Faisons une preuve par contradiction.
  • On pose L anbn n ?N.
  • L régulier
  • ? ?L satisfait le théorème de pompage?
  • ?p ? w ? L (w p) ? ?? x,y,z w xyz ?
    xy p ? y gt 0 ? ? i 0 xyiz ? L

44
  • Quel que soit p, on a w apbp ? L.
  • Comme w p, il doit exister x,y,z avec xy
    p, y gt 0 et xyiz ? L pour tout i 0.
  • Puisque xy p, on a x ax et y ay et
    donc xy2z apybp.
  • Comme y gt 0, on a p y gt p
  • ? xy2z ? L
  • faux.
  • L anbn n ? N nest pas régulier.

45
Exemple
  • Montrer que le langage L
    n est pas régulier.
  • Supposons L régulier
  • ? L satisfait le théorème de pompage pour un
    certain p.
  • ? Le mot est dans L avec w p
    donc il peut être pompé.
  • Il existe x,y,z avec w xyz et xy p et y
    gt 0 et pour tout i 0, xyiz ? L.
  • En particulier xy2z ? L. On a
  • Puisque 0 lt y p, on a p2 lt p2 y lt (p1)2
  • xy2z ? L.
  • faux

46
Exercices
  • Montrer que les langages suivants ne sont pas
    réguliers.
  • an! n ? N
  • Solution
  • Preuve par contradiction. Posons L an! n
    ? N

47
L régulier
  • ? ? Par définition. Rappel un langage
    est dit régulier s il existe un automate
    fini déterministe qui le reconnaît.?

? ? L contient toutes les séquences de la
forme ak!, en particulier celles pour
lesquelles k gt S.?
? M ? k ? N M (S, ?,?,?,F) ? L(M) L ? k gt
S ? ak! ? L.
N
48
? ? Puisqu il y a plus de S symboles a à
lire (car k! gt S), il doit y avoir une
boucle de longueur j gt 0 et j?S lors de
la lecture de ak!. Cette boucle peut être
traversée une fois de plus, d où ak!j ?
L(M), puisque ak! ? L L(M).?
? M ? j, k ? N M (S, ?,?,?,F) ? L(M) L ?
0 lt j ? S lt k ? ak!j ? L(M).
49
? ? k!ltk!jltk!k?2k!?(k1)k!(k1)! .
Puisque k!j est strictement coincé
entre deux factorielles consécutives, ce
nest pas une factorielle, d où ak!j ? L.?
? M ? j, k ? N L(M) L ? ak!j ? L(M) ?
ak!j ? L.
? ? ak!j ?L(M) ? ak!j ? L? L(M) ?L(M).?
? ? (p??p)?faux et (?xfaux)?faux.? Faux.
50
  • an n ?N? n nest pas un carré
  • Solution
  • L régulier
  • ? ? Selon un exercice précédent.?
  • Complément de L régulier
  • ? ? Définition de L.?

51
? ?Selon lexemple précédent,
nest pas régulier.?
  • ? ? p??p?faux.?
  • Faux.

52
Résumé
  • Les automates finis permettent de reconnaître les
    mots réservés, les identificateurs et les
    nombres dun langage de programmation mais pas
    les expressions parenthésées ni les structures de
    blocs.

53
Automates finis non déterministes
  • Objectifs spécifiques
  • Classifier des automates finis décrits par des
    diagrammes de transitions.
  • Classifier des descriptions formelles dautomates
    finis.
  • Démontrer le fonctionnement dun automate fini
    donné en énumérant les configurations du ruban et
    les états consécutifs à une configuration
    initiale du ruban.

54
  • Démontrer lacceptation ou le rejet dune
    séquence de symboles donnée par un automate fini
    donné.
  • Transformer un automate non déterministe en
    automate déterministe,
  • Décrire le langage accepté par un automate fini
    donné.
  • Construire un automate fini acceptant un langage
    donné.

55
Introduction
  • Nous avons vu que les automates finis
    déterministes nous limitent dans lévaluation
    syntaxique.
  • Nous allons essayer délargir la classe de
    langages que lon peut analyser en levant deux
    restrictions que nous avons imposées aux
    automates déterministes celle dêtre
    complètement définis et celle dêtre non ambigus.

56
Introduction
  • Nous obtenons ainsi des automates finis non
    déterministes.
  • Ceux-ci déterminent une classe de langages qui
    englobe la classe de langages des automates finis
    déterministes.
  • Points à réexaminer
  • Notion dacceptation,
  • Classes de langages reconnaissables.

57
Définition
  • Un automate fini non déterministe consiste en un
    quintuple de la forme (S, ?, ?, ?, F).
  • S est un ensemble fini détats.
  • ? est lalphabet de la machine.
  • ? est un sous-ensemble de S? ? ?S.
  • ? ?S est létat initial.
  • F ? S est lensemble des états finaux.

58
Composante ?
  • La seule composante différente de celle dun
    automate déterministe est ?, lensemble des
    transitions de lautomate.
  • Un élément de ? est un triplet (s, a, t) où t est
    un état accessible à partir de létat s à la
    lecture dun a.

59
Composante ?
  • On peut écrire un triplet de ? comme ((s,a),t).
    On voit bien que ? est une relation entre S ? ?
    et S , i.e. que ? ? (S ? ?) ?S.
  • La différence entre les automates finis non
    déterministes et les automates finis
    déterministes est la définition des transitions
    au moyen dune relation plutôt que dune
    fonction.

60
Exemple
  • Voici le diagramme de transitions dun automate
    non déterministe (s0,s1,s2,s3,s4,s5,s6,a, b,
    ?, s0,s1,s4,s6).

? (s0,a,s1), (s0,a,s2), (s2,a,s1),
(s2,b,s3), (s2,b,s5), (s3,b,s4),
(s5,a,s6), (s5,b,s5), (s6,a,s6)
61
Exercice
  • Donner le diagramme de transitions de lautomate
    (A, B, C, D, E, F, G, H, I, 0,1, ?, A, G,
    I)où ? (A,1,B), (A,1,C), (B,0,E), (C,0,B),
    (C,0,D), (C,1,F), (D,0,A), (D,0,G), (D,1,C),
    (D,1,D), (E,0,H), (E,1,I), (F,1,G), (F,1,I),
    (G,0,F), (G,1,G), (H,0,H), (I,1,H)

62
Exercices
  • Classifier les automates finis suivants décrits
    par des diagrammes de transitions sur l alphabet
    ?. Dire tout dabord si la description est
    correcte. Si oui, dire si lautomate est
    déterministe.

1. ? a, b
R Description correcte. Automate non
déterministe car pas complètement défini et
ambigu.
63
2. ? a, b
R Diagramme incorrect car ? ? ?.
3. ? lettre ? chiffre
R Description incorrecte car létat initial
nest pas indiqué.
64
4. ? a, b
R Description correcte. Lautomate nest pas
déterministe parce quil nest pas complètement
défini.
5. ? ?
R Description incorrecte un alphabet ne peut
pas être vide.
65
6. ? a, b
R Description incorrecte un automate ne peut
pas avoir deux états initiaux.
7. ? a
R Description correcte. Lautomate est
déterministe.
66
8. ? a
R Description correcte. Lautomate nest pas
déterministe car il nest pas complètement
défini.
9. ? a
R Description correcte. Lautomate nest pas
déterministe car il nest pas complètement
défini.
67
Exercices
  • Classifier les descriptions formelles dautomates
    finis suivantes. Dire si la description est
    correcte et si oui, dire si lautomate est
    déterministe.

1. M1 (s0, s1, s2, a, b, ?, s0, s1),
où ?(s0, a) s1 ?(s1, a) s1 ?(s2, a)
s2 ?(s0, b) s2 ?(s1, b) s2 ?(s2, b) s2
R Description correcte et puisque ? est une
fonction lautomate est déterministe.
68
2. M2 (0, ?, ?, 0) où ? a, b, c ?(0,
a) 0 ?(0, b) 0 ?(0, c) 0
R Ce nest pas la description dun automate car
létat initial nest pas indiqué.
3. M3 (a, b, 1, 2, ?, a, ?) où ?(a, 1)
a ?(a, 2) b ?(b, 1) a ?(b, 2) b
R Cest la description dun automate fini et cet
automate est déterministe car ? est une fonction.
69
4. M4 (s1, s2, s3, s4, a, b, ?, s1, s2,
s4) où ? ( s1, a, s2), ( s1, b, s2), ( s2,
a, s3), ( s2, b, s4), ( s3, a,
s4), ( s3, b, s2)
R Cest la description dun automate fini non
déterministe. La relation ? ne contient pas de
triplet dont la premièrecomposante est s4.
70
5. M5 (1, 2, 3, 4, a, b, c, ?, 1, 2)
où ? ( 1, a, 2), ( 1, b, 3), ( 1, c, 3), ( 2,
a, 2), ( 2, b, 4), ( 2, c, 4), ( 2, a,
3), ( 2, b, 3), ( 2, c, 3), ( 3, a, 3), ( 3, b,
3), ( 3, c, 3), ( 4, a, 3), ( 4, b, 3), (
4, c, 3)
R Cest la description dun automate fini. La
relation ? contient les triplets (2,a,2) et
(2,a,3) donc ? nest pas une fonction et
lautomate nest pas déterministe.
71
6. M6 (a, b, 1, ? ?, a, b)
R Cest la description dun automate fini. La
relation ? nest pas totale donc ce nest pas une
fonction par conséquent lautomate nest pas
déterministe.
72
Définition
  • Un automate fini non déterministe M (S, ?, ?,
    ?, F) accepte (ou reconnaît) la séquence
    x1x2x3...xn (n?0) ssi il existe une séquence
    détats s0, s1, ..., sn tels que s0 ?, sn ? F,
    et pour tout j 1, ..., n (sj-1, xj, sj) ? ?.
  • Dans le cas contraire, on dit que lautomate
    refuse ou rejette la séquence.

73
Définition
  • On dénote par L(M) lensemble des séquences
    acceptées par M.
  • On dit que L(M) est le langage reconnu (ou
    accepté) par M.

74
Notes
  • Une séquence est acceptée sil est possible, en
    partant de létat initial, datteindre un état
    finalen lisant la séquence même sil y a, en
    plus, des chemins qui mènent à des états non
    finaux, la séquence est acceptée.
  • Notez aussi que la séquence doit être toute lue.
  • Cest la même notion dacceptation que pourles
    automates finis déterministes. Sauf que pourun
    automate non déterministe on peut
    trouverplusieurs chemins avec la même séquence
    (à cause de lambiguïté).

75
Exemple
  • Soit lautomate non déterministe M décrit par le
    diagramme de transitions suivant

76
Voici une suite de configurations du ruban et
densembles détats de lautomate décrivant
lacceptation de la séquence abbbaa par M. Les
ensembles détats contiennent tous les états
accessibles à une étape donnée.
abbbaa s0 abbbaa s1, s2 abbbaa s3,
s5 abbbaa s4, s5 abbbaa s5 abbbaa s6 abbbaa
_ s2, s6
77
On peut aussi décrire lacceptation de cette
séquence comme suit s0 a s1, s2 b s3, s5
b s4, s5 b s5 a s6 a s2, s6
La séquence est acceptée car il existe une suite
de transitions menant de létat initial s0 à
létat final s6. Une telle suite de transitions
est s0 a s2 b s5 b s5 b s5 a s6 a s6.
Même si lautomate peut atteindre létat non
final s2, en suivant un autre chemin, la
séquence est acceptée.
78
Une transition est décrite comme le passage dun
ensemble détats vers un autre ensemble
détats. s0 a s1, s2 b s3, s5 b s4, s5 b
s5 a s6 a s2, s6
79
La suite ci-dessous décrit le rejet de la
séquence abbbb par le même automate. Cette
séquence est rejetée car il ny a pas de suite de
transitions correspondant à la séquence et
menant de létat initial à un état final.
abbbb s0 abbbb s1, s2 abbbb s3,
s5 abbbb s4, s5 abbbb s5 abbbb__ s5
80
Exercice
  • Soit un automate M décrit par le diagramme de
    transitions suivant

81
Démontrer le fonctionnement de M (en énumérant
les configurations du ruban dentrée et les
ensembles détats possibles de lautomate)
lorsquon lui soumet les séquences suivantes.
1. 10000
10000 A 10000 B, C 10000 B, D,
E 10000 A, E, G, H 10000 F, H 10000_ H
82
2. 10011
10011 A 10011 B, C 10011 B, D,
E 10011 A, E, G, H 10011 B, C, G,
I 10011_ F, G, H
83
3. 1101
1101 A 1101 B, C 1101 F 1101 1101_

84
Théorème
  • Pour tout automate fini non déterministe, il
    existe un automate fini déterministe qui accepte
    exactement le même langage.

85
Démonstration
  • Soit un automate fini non déterministe M (S,
    ?, ?, ?, F). Nous allons démontrer lexistence
    dun automate fini déterministe M (S, ?,
    ?, ?, F) tel que L(M) L(M).

86
Lidée de la preuve est de suivre toutes les
options possibles en parallèle chaque transition
passe dun sous-ensemble de S à un sous-ensemble
de S.
Posons S ?(S)
? ?
F T? S T ? F ? ?
En mots Un état de M est un sous-ensemble
détats de M.
Létat initial est lensemble qui contient létat
initial de M.
Un état de M est final ssi il contient au moins
un état final de M.
87
La fonction ? S ? ? ? S est définie par ?(s,
x) s ? S ?r ? s(r, x, s) ? ? . En
mots À la lecture dun x, M passe de létat s
à lensemble des états accessibles par M à
partir de chacun des états dans s. ? est
bien une fonction. Elle est définie pour tout s
??(S) et pour tout x ? ?. De plus, le résultat
est unique (non ambigu)
88
Maintenant que M est défini, il faut montrer que
L(M) L(M). Nous procédons en deux étapes 1)
Montrer que L(M) ? L(M), 2) Montrer que L(M) ?
L(M). Ceci implique que L(M) L(M).
89
1) L(M) ? L(M) Montrons par induction sur n
que le prédicat P(n) suivant est vrai pour tout n
? N Si s0 ? x1 s1 x2 s2 ... xn sn est un
chemin de M, alors il existe un chemin de M de
la forme s0 ? x1 s1 x2 s2 ... xn sn
(i.e. faisant la lecture des mêmes symboles que
M) et tel que sn ? sn.
90
De manière abrégée, nous écrivons P(n) s0 ?
x1 s1 x2 s2 ... xn sn de M ? ? s0 ? x1 s1
x2 s2 ... xn sn de M ? sn ? sn.
91
Base dinduction n0. Le chemin de M est de
longueur 0 ( M reste dans létat initial s0
? ). Il existe un chemin correspondant pour
M le chemin de longueur 0, M reste dans
létat initial s0 ??. On a bien s0 ?
s0, par définition de ?.
92
Étape dinduction Montrons que P(k) ?
P(k1). Considérons que P(k) est vrai s0 ?
x1 s1 x2 s2 ... xk sk de M ? ? s0 ? x1 s1
x2 s2 ... xk sk de M ? sk ? sk.
93
s0 ? x1 s1 x2 s2 ... xk sk xk1 sk1 de M ? ?
Signification de chemin.? s0 ? x1 s1 x2 s2
... xk sk de M ? (sk, xk1, sk1) ? ? ? ? Par
hypothèse dinduction.? ? s0 ? x1 s1 x2
s2 ... xk sk de M ? sk ? sk ? (sk, xk1,
sk1) ? ? ? ? Définition de ?.? ?
s0 ?x1 s1 x2 s2 ... xk sk de M ? sk1?
?(sk, xk1) ? ? Posons sk1 ?(sk, xk1).?
? s0 ? x1 s1 x2 s2 ... xk sk xk1 sk1 de
M sk1 ? sk1.
94
Par conséquent, M accepte x1x2...xn ? ?
Définition dacceptation pour un automate
non déterministe.? ? un état final sn et un
chemin s0 ?x1 s1 x2 s2 ... xnsn de M ? ?
Preuve précédente et définition de F.? ? un
état final sn et un chemin s0 ? x1 s1 x2
s2 ... xn sn de M ? ? Définition
dacceptation pour un automate
déterministe.? M accepte x1x2...xn.
95
2) L(M) ? L(M) Nous voulons montrer que
pour chaque chemin de lautomate M partant de
létatinitial ? jusquà létat sn ? F avec sn
? sn. il existe un chemin dans lautomate M
partant de létat ? et se rendantjusquà létat
final sn ? F en traversant les arcs étiquetésx1,
x2, ..., xn. Notons que si sn est un état
accepteur, alors tousLes si, i0..n, sont des
ensembles non vides.
Montrons par induction sur n que Pour chaque
chemin dans M de ? jusquà sn traversant les
arcs étiquetés x1,x2, ,xn, nous avons pour
chaque sn ? sn, il doit exister un chemin dans
M de ? jusquà sn traversant les arcs étiquetés
x1, x2, ..., xn.
96
Base dinduction n0. Comme lors de la première
étape de la preuve.
Étape dinduction Supposons que le résultat
est vrai pour k et considérons un chemindans M
de ? jusquà sk1 traversant les arcs x1,
...xk, xk1.Par hypothèse dinduction, pour
chaque sk ? sk, il doit existerun chemin dans
M de ? jusquà sk traversant les arcs étiquetés
x1, x2, ..., xk. Mais ?(sk, xk1) sk1
s?S(sk, xk1,s) ? ?. Alors pour chaque s ?
sk1, il existe un chemin dans M de ? jusquà s
sk1 traversant les arcs étiquetésx1, x2, ...,
xk comme demandé, y compris le ou les états de
sk1 qui sont finauxdans M.
97
Remarque
  • Donc on ne peut pas augmenter la puissance dun
    automate fini en lui permettant dêtre non
    déterministe.
  • Les langages reconnus par les automates finis non
    déterministes sont les mêmes que les langages
    reconnus par les automates finis déterministes.

98
Remarque
  • Le nombre détats augmente exponentiellement
    lorsquon transforme un automate non déterministe
    en automate déterministe.
  • On peut dire quun langage régulier est un
    langage reconnu par un automate fini,
    déterministe ou non déterministe.

99
Remarque
  • Un programme simulant un automate non
    déterministe doit
  • ou bien explorer les chemins possibles un à un en
    faisant des retours en arrière (peut être long).
  • ou bien construire lautomate déterministe
    correspondant (peut prendre beaucoup despace).

100
Exemple
  • Construisons un automate fini déterministe qui
    reconnaît les mêmes séquences que lautomate non
    déterministe M(S, ?, ?, ?, F) où
  • S 1, 2, 3,
  • ? a, b,
  • ? (1, b, 2), (1, b, 3), (3, a, 1), (3, a, 2)
    ,
  • ? 1,
  • F 3.

101
Diagramme de transition
102
La construction de lautomate fini déterministe
se fait à partirdes résultats suivants S
?(S) ?,1,2,3,1,2,1,3,2,3,1,2,3.
? ne change pas. ? est la fonction suivante,
sachant que ? (1, b, 2), (1, b,
3), (3, a, 1), (3, a, 2) ?(?, a) ? ?(?,
b) ? ?(1, a) ? ?(1, b) 2,
3 ?(2, a) ? ?(2, b) ? ?(3, a)
1, 2 ?(3, b) ? ?(1, 2, a) ? ?(1,
2, b) 2, 3 ?(1, 3, a) 1, 2 ?(1,
3, b) 2, 3 ?(2, 3, a) 1, 2 ?(2,
3, b) ? ?(1, 2, 3, a) 1, 2 ?(1, 2,
3, b) 2, 3
103
? ? 1 F 3, 1, 3, 2, 3, 1, 2,
3
104
Si on enlève les états qui ne peuvent pas être
atteints
On peut voir que le langage que lautomate
accepte est b(ab)n n?N.
105
Exercice
  • Construire un automate fini déterministe qui
    accepte les mêmes séquences que lautomate fini
    non déterministe ci-dessous.Lalphabet est a,
    b.

106
Solution Le quintuple correspondant à lautomate
ci-dessus est M(S, ?, ?, ?, F) où - S 1, 2,
3, 4, - ? a, b, - ? (1, a, 2), (1, b,
3), (2, a, 2), (2, b, 2) (2, b, 4), (3, b, 4),
(4, a, 1), (4, a, 4), (4, b, 4), - ? 1, - F
4.
107
Solution Le quintuple correspondant à lautomate
déterministe est le suivant M(S, ?, ?, ?,
F) où - S ?(S) ?,1,2,3,41,2,1,3
,1,4, 2,3, 2,4,3,4,1,2,3,
1,2,4, 1,3,4,2,3,4,1,2,3,4. - ?
a, b, - ? 1, - F 4,1,4,2,4,3,4
,1,2,4,1,3,4,
2,3,4,1,2,3,4.
108
? est la fonction suivante ?(?, a) ? ?(?,
b) ? ?(1, a) 2 ?(1, b)
3 ?(2, a) 2 ?(2, b) 2,4 ?(3,
a) ? ?(3, b) 4 ?(4, a) 1,
4 ?(4, b) 4 ?(1, 2,
a) 2 ?(1, 2, b) 2, 3,4 ?(1, 3, a)
2 ?(1, 3, b) 3,4 ?(1, 4, a)
1,2,4 ?(1, 4, b) 3,4 ?(2, 3, a)
2 ?(2, 3, b) 2,4 ?(2, 4, a)
1,2,4 ?(2, 4, b) 2, 4 ?(3, 4, a)
1,4 ?(3, 4, b) 4 ?(1, 2, 3, a) 2
?(1, 2, 3, b) 2, 3,4 ?(1, 2,4, a)
1,2,4 ?(1, 2,4, b) 2, 3,4 ?(1, 3,4,
a) 1,2,4 ?(1, 3,4, b) 3,4 ?(2, 3,4,
a) 1,2,4 ?(2, 3,4, b) 2, 4 ?(1,
2,3,4, a) 1,2,4 ?(1, 2,3,4, b) 2,
3,4
109
Algorithme de construction dun automate
déterministe simplifié
  • Cet algorithme prend en entrée un automate M
    (S,?,?,?,F) et rend un automate M
    (S,?,?,?,F). M est déterministe et L(M)
    L(M) et les états considérés sont ceux
    atteignables depuis létat initial de M. Il
    sagit de calculer S, ? et F, les autres
    éléments de M étant connus. Je suppose que
    ?(s,a) pour s ? S et a ? ? est donné sous forme
    dun ensemble. Notez que lindentation détermine
    le début et la fin de blocs, je nai pas utilisé
    de fin si ou fin tant que etc.
  • Initialisation S ?, ? ?, F ?, W ?.
  • Tant que W ?? faire
  • Pour tout e ? W faire
  • Pour chaque symbole a de ?
  • e ?.
  • Pour tout s ?e faire e e ? ?(s,a).
  • ? ? ? (e,a,e).
  • W (W ? e) S.
  • Si (e ?? F) ? ? alors F F ? e.
  • W W e. S S ? e

110
Exercice
  • En utilisant lalgorithme qui vient dêtre
    décrit, trouver une solution simplifiée (ne
    considérant que les états atteignables depuis
    létat initial) à lexercice précédent.
  • Solution
  • S ?,1,2,3,4,1,4, 2,4, 3,4,
    1,2,4, 2,3,4.
  • ? a, b,
  • ? 1,
  • F 4,1,4,2,4,3,4,1,2,4,2,3,4.

111
- ? est la fonction suivante ?(?, a)
? ?(?, b) ? ?(1, a) 2 ?(1, b)
3 ?(2, a) 2 ?(2, b) 2,4 ?(3,
a) ? ?(3, b) 4 ?(4, a) 1,
4 ?(4, b) 4 ?(1, 4,
a) 1,2,4 ?(1, 4, b) 3,4 ?(2, 4, a)
1,2,4 ?(2, 4, b) 2, 4 ?(3, 4, a)
1,4 ?(3, 4, b) 4 ?(1, 2,4, a)
1,2,4 ?(1, 2,4, b) 2, 3,4 ?(2, 3,4,
a) 1,2,4 ?(2, 3,4, b) 2, 4
Write a Comment
User Comments (0)
About PowerShow.com