Automates à états finis

Click here to load reader

  • date post

    05-Jan-2017
  • Category

    Documents

  • view

    214
  • download

    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