Automates à états finis
date post
05-Jan-2017Category
Documents
view
214download
0
Embed Size (px)
Transcript of Automates à états finis
Automates tats finis
Damien Nouvel
Damien Nouvel (Inalco) Automates 1 / 26
Langages et automates
Du langage Hirarchie (rguliers, hors-contexte, contextuels)
Mcanisme pour accepter / reconnatre un langage ? aux automates
Machine de Turing tats, transitions
Automates tats finis (langages rguliers) Reprsentations
Diagrammes de transition (dessin) Graphe : nuds, arcs
Tables de transition
Damien Nouvel (Inalco) Automates 2 / 26
Diagrammes de transitions
Plan
1. Diagrammes de transitions
2. Notations formelles
3. Tables de transition
4. Automates non dterministes
5. Proprits des langages rguliers et complments
Damien Nouvel (Inalco) Automates 3 / 26
Diagrammes de transitions
Diagrammes
Inspir des diagrammes de flux / organigrammes
Travail ?
Menteur !
non
Urgent ?
oui
Loisirs
non
Procrastination ?
oui
non
oui
Damien Nouvel (Inalco) Automates 4 / 26
Diagrammes de transitions
tats
Indique o en est lanalyse dun mot tats : nuds
Cercle Label : qi avec i un entier
q2
tat initial Ajout dune flche devant Souvent q0 (mais pas obligatoire)
qO
tat final Double cercle
q5
Damien Nouvel (Inalco) Automates 5 / 26
Diagrammes de transitions
Transitions
Indique quelles prochains symboles sont accepts Transitions : arcs
Arc orient (flche) qui relie deux tats Label : liste (ensemble) de symboles de
q1 q3a, c
Reconnat le langage ta, cu ou tau Y tcu (mais pas ta.cu !) Si depuis q1 le prochain symbole est a ou c aller en q3
Transition dun tat vers lui-mme
Boucle au dessus dun tatq1
a, c
Correspond ltoile de KleeneDamien Nouvel (Inalco) Automates 6 / 26
Diagrammes de transitions
Reconnaissance dun mot
Chemin suivi au travers dun automate Lautomate consomme les symboles Une liste dtat visits est tablie Arrive en fin de mot dans ltat final
Exemple : mots ab ou ac
qO q1a
q2b
q3
c
Damien Nouvel (Inalco) Automates 7 / 26
Diagrammes de transitions
Automate tats finis dterministe
Contraintes Un seul tat initial Dterministe : par nud / symbole, max une transition
Remarques Autant dtats finaux que ncessaires Ltat initial peut-tre final Des transitions peuvent partir de ltat final
Boucles possible sur un tat ou par cycles Exemple : expression rgulire (a|bc)*(b(a|b))?
qO
a
q1
b
c
q2a, b
Damien Nouvel (Inalco) Automates 8 / 26
Notations formelles
Plan
1. Diagrammes de transitions
2. Notations formelles
3. Tables de transition
4. Automates non dterministes
5. Proprits des langages rguliers et complments
Damien Nouvel (Inalco) Automates 9 / 26
Notations formelles
Fonction de transition
Dfinition formelle de lautomate : A = (Q,, , q0,F) tats Q = tq0, q1, q2, . . .u Alphabet = ta, b, c, . . .u Fonction de transition : Q Q Y tHu tat initial q0 Ensemble dtats finaux F (avec F Q)
Importance de la fonction de transition Cur de lautomate (entre : tat et symbole / sortie : tat) Exemples : (q0, a) = q1 ou (q1, b) = q0 Valeurs dfinir : |Q| || Une transition qui nexiste pas peut tre note H
Damien Nouvel (Inalco) Automates 10 / 26
Notations formelles
Fonction de transition tendue
La fonction de transition neffectue quune transition Comment savoir quel tat est atteint avec n transitions ? Pour abc, il faut calculer (((q0, a), b), c)
Impossible de savoir combien de fois appliquer Fonction rcursive : Q Q Y tHu
Forme gnrale : (q,w) avec w P Si w = x.a avec x P , a P Retourner ((q, x), a) Si w = a avec a P Retourner (q, a)
Permet de dterminer le chemin Quel tat est atteint pour un tat et un mot donn
Damien Nouvel (Inalco) Automates 11 / 26
Notations formelles
Langage reconnu
Un automate reconnat un langage Concatnation de symboles telles que les transitions
conduisent, depuis ltat initial, un tat final L = tw|(q0,w) P Fu
Damien Nouvel (Inalco) Automates 12 / 26
Tables de transition
Plan
1. Diagrammes de transitions
2. Notations formelles
3. Tables de transition
4. Automates non dterministes
5. Proprits des langages rguliers et complments
Damien Nouvel (Inalco) Automates 13 / 26
Tables de transition
Table de transition
Reprsentation quivalente aux diagrammes Lignes : tats Colonnes : symboles Cases : rsultat de la fonction de transition
Notations tat initial : flche tat final : toile
Exemple (cf diagramme)Q a b c
q0 q0 q1 Hq1 q2 q2 q0
q2 H H H
Damien Nouvel (Inalco) Automates 14 / 26
Tables de transition
Exercices
Modlisez par diagramme et faites la table de transision desautomates qui reconnaissent
Un nombre entre 0 et 20 Une dizaine (10, 20, 3090) Un nombre avec ou sans virgule Un nombre pair entre 10 et 999 Une heure au format HH:MM Une date au format JJ/MM/AAAA Une adresse postale
Damien Nouvel (Inalco) Automates 15 / 26
Automates non dterministes
Plan
1. Diagrammes de transitions
2. Notations formelles
3. Tables de transition
4. Automates non dterministes
5. Proprits des langages rguliers et complments
Damien Nouvel (Inalco) Automates 16 / 26
Automates non dterministes
Types dautomates
Terminologie FSA : Finite State Automata DFA : Deterministic Finite state Automata NFA : Non-deterministic Finite state Automata -NFA : NFA avec transitions
Damien Nouvel (Inalco) Automates 17 / 26
Automates non dterministes
NFA
Fonction de transition renvoit un ensemble : Q Q
Dans les reprsentations Diagramme : plusieurs transitions pour un tat / symbole Table : une case peut contenir plusieurs tats
Comment reconnatre tous les mots se terminant par ab ? Fonction de transition tendue : Q Q
Forme gnrale : (q,w) avec w P Si w = x.a avec a P Retourner YrP(q,x)(r, a) Union des tats atteints selon les tats prcdents Si w = a avec a P Retourner (q, a)
Langage reconnu : L = tw|(q0,w) X F HuDamien Nouvel (Inalco) Automates 18 / 26
Automates non dterministes
Exercice
Dessinez un automate qui reconnat des codes couleurs Avec 3 chiffres hxadcimaux (par ex. AA0318) Avec 3 chiffres de 0 256 en dcimal (par ex. 138027250)
Excutez lautomate pour indiquer les tats atteints pour FFFFFF 524317 005132075 213A5B
Damien Nouvel (Inalco) Automates 19 / 26
Automates non dterministes
Exercice
Dessinez les DFA et NFA sur : ta, b, c, du qui reconnaissent Les mots contenant ad suivi dau moins un c suivi de da Les mots dont lavant dernire lettre est un b ou un d
Damien Nouvel (Inalco) Automates 20 / 26
Automates non dterministes
-NFA
Fonction de transition peut renvoyer : Q Y tu Q
Extension des NFA Facilit de transition : Exemple : reconnatre le langage tabcde, abdde, cd, ddu
q0 q1a q2b
q3c, d q4d
Calcul de la fermeture transitive dun tat Initialisation : @qi P Q, qi P fermeture(qi) Itration : @qi P Q, si (qi, ) = R alors R fermeture(qi)
fermeture(qi) contient tous les tats atteints avec Fonction de transition tendue sur
(q, x.a) = YrP(q,x) YsP(r,a) fermeture(s)Damien Nouvel (Inalco) Automates 21 / 26
Automates non dterministes
Exercice
Dessinez un automate qui reconnat des dates Des annes seules (par ex. 2010) Des mois / annes (par ex. 11/2020) Des jours / mois / annes (par ex. 21/05/2010) Les jours et les mois peuvent tre sans 0
Excutez lautomate pour indiquer les tats atteints pour 2017 1193 05/1980 12/1995 31/10/1979 3/5/2015 10/10/2010
Damien Nouvel (Inalco) Automates 22 / 26
Proprits des langages rguliers et complments
Plan
1. Diagrammes de transitions
2. Notations formelles
3. Tables de transition
4. Automates non dterministes
5. Proprits des langages rguliers et complments
Damien Nouvel (Inalco) Automates 23 / 26
Proprits des langages rguliers et complments
Proprits des automates et langages rguliers
Pour un NFA, il existe un DFA quivalent tats comme sous-ensembles dtats
Le complmentaire dun langage rgulier est rgulier Inversion tats initial / finaux
La fermeture dun langage rgulier est rgulire Transitions finaux vers initial
Lunion de deux langages rguliers est rgulire Le produit de deux langages rguliers est rgulier Lintersection de deux langages rguliers est rgulier Par homomorphisme, un langage reste rgulier
Homorphisme : f(x y) = f(x) f(y)
Damien Nouvel (Inalco) Automates 24 / 26
Proprits des langages rguliers et complments
Complments
Drivation comme transition entre configurations Configuration : tat et mot lire (q,w) Drivation : (q,w) (q1,w1)
Transition avec w = a.w1 par (q, x) = q1
Calcul du langage gnr partir dun tat Fonction rcursive
L(q) = YaPa.L((q, a)) Y f(q)avec f(q) = si q P F
Lensemble peut tre de cardinalit infinie
Damien Nouvel (Inalco) Automates 25 / 26
Proprits des langages rguliers et complments
TP Unitex
Unitex Disponible en ligne sur le site de lIGM Logiciel base dautomates (dictionnaires, grammaires, etc.)
Travail sur un projet dfinir par promotion 2015/2016 : textes de loi (codes : civil / pnal / travail) 2016/2017 : te