Automates - (CUI)

publicité
Automates à états et langages
Notion d’automate
Langage reconnu par un automate
Automates non déterministes
Expressions régulières et automates
Limites des automates
Notion d’automate
Objectif : définir formellement (modéliser) un mécanisme qui peut prendre
une décision.
Quel type de décision ?
entrée : une séquence de symboles
sortie (réponse) : ”oui” ou ”non” (acceptation ou rejet)
Idée du fonctionnement
L’automate possède des états
Il ”lit” les symboles un à un (à partir de la gauche)
La lecture d’un symbole
* fait passer l’automate dans un autre état
* en fonction d’une ”table”
On regarde l’état atteint après lecture de tous les symboles
Un automate à états fini
symboles : b, o
états : q1, q2, q3, q4
états finals : q3
état initial : q1
d(b, q1) = q2, d(b, q2) = q3
d(b, q3) = q4, d(b, q4) = q4
d(o, q1) = q4, d(o, q2) = q2
d(o, q3) = q4, d(o, q4) = q4
1
Automate - définition
Un AF est composé de
1. un alphabet de symboles reconnus A = s1, s2, ..., sn
2. un ensemble d’états Q = q1, q2, ..., qm (les ronds)
3. un état initial appartenant à Q
4. un ensemble F d’états finals inclus dans Q
5. une fonction de transition d de Q x A dans Q (les flèches)
Analyse d’une chaı̂ne
Analyse d’une chaı̂ne
2
Analyse d’une chaı̂ne
Analyse d’une chaı̂ne
3
Analyse d’une chaı̂ne
Analyse d’une chaı̂ne
4
Analyse d’une chaı̂ne
Acceptation d’une chaı̂ne
Le traitement d’une chaine de symbole u = [t1 t2 ...tk ] par un automate
consiste à faire
e := état initial ;
répéter pour i allant de 1 à k
{ e := d(e, ti ) } ;
si e appartient à F accepter u sinon rejeter u
5
Définition formelle de l’acceptation
Une chaine X = x0 x1 . . . xn est acceptée si et seulement si il existe une
séquence d’états r0 , r1 , . . . , rn telle que :
1. r0 est l’état initial
2. ri+1 = d(ri , xi ), pour i = 0, . . . n − 1
3. rn ∈ F (l’ensemble des états finals)
Langage accepté par un automate
Un vocabulaire A est un ensemble de symboles (p.ex. des lettres ou des
chiffres ou des noms ou ...)
Une chaı̂ne sur A est une suite finie de symboles de A
On note A∗ l’ensemble (en général infini) de toutes les chaı̂nes possibles sur
A
Un langage sur le vocabulaire A est un sous-ensemble de A∗
Le langage L(M ) accepté par un automate M est l’ensemble des chaı̂nes
acceptées par M
Exemple
Langage accepté
L(M ) = a, aba, ababa, abababa, . . .
Exemple - 2
6
Langage accepté
L(M) = ?
Langage régulier
On dit qu’un langage L est régulier s’il existe un automate M tel que L =
L(M ),
c-à-d un automate qui accepte les chaines de L et seulement celles-ci.
Exemles / exercices
Les langages suivants sont réguliers :
1. les chaines sur {a, b} qui commencent par aa et se terminent par bb ;
2. les chaines sur {a, b} qui se terminent par baba ;
3. les chaines sur {a, b} qui se terminent par bbab ;
4. les chaines sur{a} qui ont au plus 5 symboles ;
5. les chaines sur {a, b, c} où chaque c est précédé de deux a ;
6. les chaines sur {0, 1} qui, interprétées comme des nombres en base 2, sont
des multiples de 5 ;
7. les chaines formées de 6k + 1fois le symbole a (k entier positif quelconque).
Automates non déterministes
1) La fonction de transition est multivaluée ,
pour un état e et un symbole s il peut y avoir plusieurs états successeurs :
d(e, s) = {e1 , e2 , . . . , en }
2) L’automate peut avoir des transitions qui mènent d’un état à un autre
sans consommer un seul symbole.
Par conséquent :
Il y a plusieurs manière d’analyser une chaine,
Si l’une d’elles conduit à un état final, la chaine est acceptée.
7
Exemple
Fonctionnement d’un AFND
Une description instantannée d’un automate est une paire
(<état>, <chaine restant à analyser>)
On définit ensuite la transition d’une description à une autre par les règles
suivantes :
(e, ax) → (f, x) si f ∈ d(e, a)
(e, x) → (f, x) si f ∈ d(e, )
Acceptation dans un AFND
Une chaine w est acceptée s’il existe une séquence de descriptions
s0 = (q0 , w) → s1 → s2 . . . → sf = (qf , <vide>)
où qf est un état final.
Autrement dit : s’il y a un moyen d’atteindre un état final en lisant toute la
chaı̂ne d’entrée.
Exemple
Automate non déterministe pour reconnaı̂tre les chaı̂nes de a et b se terminant par bbab
8
Exemple : acceptation de babbab
s0 = (q1, babbab) → (q1, abbab) → (q1, bbab) → (q2, bab)
→ (q3, ab)| − (q4, b) → (q5, <vide>) accepte
Les non déterministes ne sont pas si forts
On peut toujours trouver un AFD équivalent à un AFND donné
Exemple
Construction d’un AFD équivalent à un AFND (I)
1. Construire un automate non déterministe sans transitions a) Ajouter des transitions pour remplacer toutes les chaines de b) Rendre final tout état qui atteint un final par des c) Eliminer les transitions d) Eliminer les états atteignable uniquement par des transitions Exemple
9
Construction (II)
Etats
Les états de l’automate déterministe sont des ensembles d’états de l’automate
non déterministe.
Si l’ensemble contient un état final il est lui-même final.
Transitions
S = s1 , . . . , sk un état de l’AD
a un symbole
d(S, a) = l’ensemble des états de l’AFND atteignable avec le symbole a
depuis l’un des si
Exemple
10
Téléchargement