MVA004 Automates, codes, graphes et matrices Cours n 6 cours n 5 1
Mots-clés Automate fini déterministe AFD Automate fini non déterministe AFN Déterminisation mots-clés 2
MVA004 Chapitre 22 Construction d'automates 1. Simplification d'un automate 2. Automates finis non déterministes 3. Déterminisation 4. Le théorème de Kleene Ch. 22 2 3
Déterminisme Pour un automate donné, les déplacements du repère sont uniquement déterminés par le mot que l'on teste. On dit que l'on a affaire à un automate fini déterministe (AFD). AFD 4
Alors, que dire de : C'est un automate fini non déterministe (AFN). AFN-exemple 5
Dans un automate fini non déterministe, il y a : un ensemble d'états, un nombre quelconque d'états initiaux, un nombre quelconque d'états acceptants, et de chaque état partent un nombre quelconque de flèches. AFN-définition 6
a b 1 2 3 4 ex-transitions 7
MISE EN GARDE Un AFD est un AFN particulier! d'où la phrase malencontreuse : "un automate déterministe est non déterministe " mise en garde 8
Le langage d'un automate fini non déterministe est l'ensemble des mots qui peuvent être reconnus, à condition de faire les choix convenables. AFN-langage 9
aab reconnu? aba reconnu? reconnaissance d'un mot - exemple 10
Utilité des AFN AFD qui reconnaît le mot print 182 flèches AFN qui reconnaît le mot print 5 flèches print 11
Question : Quels sont les langages des AFN? Théorème Les langages des AFN sont réguliers. (parce que la méthode du départ est encore valable) AFN réguliers 12
D 1 = D 2 = D 3 = D 4 = ex syst départ 13
MISE EN GARDE Les langages de départ ne sont pas toujours des résiduels et il peut manquer des résiduels dans la liste des langages de départs! mise en garde 14
D 1 = a + b* D 2 = a b* D 3 = b* D 4 = O L = a + b* s -1 L =? ex syst départ 15
L = a + b* a + b * si s = sinon : s -1 L = O si s a p b q avec p>0 si s = a p avec p>0 a * b * si s = a p b q avec p>0 b * D 1 = a + b* D 2 = a b* D 3 = b* D 4 = O ex syst départ 16
MVA004 Chapitre 22 Construction d'automates 1. Simplification d'un automate 2. Automates finis non déterministes 3. Déterminisation 4. Le théorème de Kleene Ch. 22 3 17
Partant d'un AFN on construit un AFD qui reconnaît le même langage! Cette construction s'appelle la déterminisation de l'afn Conséquence Les langages des AFN et ceux des AFD sont les mêmes. L-AFN=L-AFD 18
Dessin du diagramme de Ad à partir de celui de An An est l'afn dont on part Ad est l'afd que l'on obtient Les états de Ad sont des regroupements des états de An. 1. On regroupe dans un cercle tous les états initiaux de An. Ce regroupement est l'état initial de Ad. 2. À chaque fois qu'on a dessiné un état K dans Ad : si son contenu est vide cet état est un piège refusant, sinon, pour chaque lettre, on dessine une flèche qui part de K et qui va vers un état L que l'on remplit de la façon suivante : on met dans L tous les états où l'on pouvait aller (dans An) en partant d'un état de K avec cette lettre. puis on vérifie si le regroupement que l'on vient de faire n'est pas un regroupement déjà connu, auquel cas on le remplace par ce regroupement connu en modifiant la flèche. déterminisation 19
3. On continue ainsi jusqu'à ce qu'on ne puisse plus créer d'état nouveau dans Ad. 4. Les états acceptants de Ad sont les regroupements qui contiennent au moins un état acceptant de An. déterminisation (suite) 20
exe-déter (1) 21
exe-déter (2) 22
exe-déter (3) 23
état I : c'est le départ, on n'a pas encore vu de lettre, l'état est refusant, état II : on n'a vu que des a, un ou plusieurs, c'est accepté, état IV : n'a vu que des a, un ou plusieurs, suivi uniquement par des b, un ou plusieurs, c'est accepté, état III : le mot ne convient pas. exe-déter (4) 24
On a vu les AFN, mais que dire de : C'est un AFN avec des transitions spontanées. Son langage est l'ensemble des mots qui peuvent être reconnus, à condition de faire les choix convenables. On peut le déterminiser comme un AFN ordinaire. AFN+spon-exemple 25
Reconnaître aab? 1 1 2 3 1 1 1 3 1 1 3 3 1 1 4 3 1 3 2 3 ex - reconnaissance 26
déterminisation 27
MVA004 Chapitre 22 Construction d'automates 1. Simplification d'un automate 2. Automates finis non déterministes 3. Déterminisation 4. Le théorème de Kleene ch22 4 28
Théorème Les langages reconnus par les automates sont les langages réguliers. Pourquoi? Le langage d'un automate est régulier (représentable par une formule). Réciproquement, quand on se donne un langage régulier, on peut construire un AFN-epsilon qui le reconnaît. Th de Kleene 29
arborescence 30
Première étape Kleene (1) 31
Étoile Kleene (2) 32
Addition Kleene (3) 33
Multiplication Kleene (4) 34
Exemple (ab)*+( ba)* L = ab L = (ab)* ex(1) 35
Exemple (ab)*+( ba)* AFN-epsilon L = (ab)* AFD ex(2) 36
Exemple (ab)*+( ba)* AFD L = (ab)* AFN ex(3) 37
Exemple (ab)*+( ba)* L = (ab)* L = (ba)* L = (ab)*+( ba)* ex(4) 38
Exemple (ab)*+( ba)* ex(5) 39
Théorème Le complémentaire d'un langage régulier est régulier. Une intersection d'un nombre fini de langages réguliers est un langage régulier. complé-intersec 40