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 = [t 1 t 2...t k ] par un automate consiste à faire e := état initial ; répéter pour i allant de 1 à k { e := d(e, t i ) } ; si e appartient à F accepter u sinon rejeter u 5
Définition formelle de l acceptation Une chaine X = x 0 x 1... x n est acceptée si et seulement si il existe une séquence d états r 0, r 1,..., r n telle que : 1. r 0 est l état initial 2. r i+1 = d(r i, x i ), pour i = 0,... n 1 3. r n 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...) A 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 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) = {e 1, e 2,..., e n } 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 où q f est un état final. s 0 = (q 0, w) s 1 s 2... s f = (q f, <vide>) 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 = s 1,..., s k 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 s i Exemple 10