• Aucun résultat trouvé

Automates à états finis

N/A
N/A
Protected

Academic year: 2022

Partager "Automates à états finis"

Copied!
26
0
0

Texte intégral

(1)

Automates à états finis

Damien Nouvel

(2)

Langages et automates

§ Du langage …

‚ Hiérarchie (réguliers, hors-contexte, contextuels) ñ Mécanisme pour accepter/reconnaître un langage ?

§ …aux automates

‚ Machine de Turing

‚ États, transitions

ñ Automates …à états finis (langages réguliers)

§ Représentations

ñ Diagrammes de transition (dessin)

Graphe: nœuds,arcs ñ Tables de transition

(3)

Diagrammes de transitions

Plan

1. Diagrammes de transitions

2. Notations formelles 3. Tables de transition

4. Automates non déterministes

5. Propriétés des langages réguliers et compléments

(4)

Diagrammes de transitions

Diagrammes

§ Inspiré des diagrammes de flux / organigrammes

Travail ?

Menteur ! non

Urgent ? oui

Loisirs non Procrastination ?

oui non

oui

(5)

Diagrammes de transitions

États

ñ Indique où en est l’analyse d’un mot

§ États : nœuds

Cercle

Label:qi avec iun entier

q2

§ État initial

‚ Ajout d’une flèchedevant

‚ Souventq0 (mais pas obligatoire)

qO

§ État final

Doublecercle

(6)

Diagrammes de transitions

Transitions

ñ Indique quelles prochains symboles sont acceptés

§ Transitions : arcs

Arc orienté (flèche) qui relie deux états

Label: liste (ensemble) de symboles de Σ q1 a,c q3

ñ Reconnaît le langage ta,cu outau Y tcu (mais pas ta.cu!) ñ Si, enq1, le prochain symbole esta ou c, aller enq3

§ Transition d’un état vers lui-même

Boucle au dessus d’un état q1 a,c

ñ Correspond à l’étoile de Kleene

(7)

Diagrammes de transitions

Reconnaissance d’un mot

§ Chemin suivi au travers d’un automate

‚ L’automateconsomme les symboles

‚ Une liste d’état « visités » est établie

‚ Arrivée en fin de mot dans l’état final

§ Exemple : motsab ou ac

qO a q1

q2 b

q3 c

(8)

Diagrammes de transitions

Automate à états finis déterministe

§ Contraintes

Un seulétat initial

Déterministe: par nœud / symbole, max unetransition

§ Remarques

‚ Autant d’états finaux que nécessaires

‚ L’état initial peut-être final

‚ Des transitions peuvent partir d’un état final ñ Boucles possible sur un état ou par cycles

§ Exemple : expression régulière(a|bc)*(b(a|b))?

qO a

q1 b

c

q2 a,b

(9)

Notations formelles

Plan

1. Diagrammes de transitions 2. Notations formelles

3. Tables de transition

4. Automates non déterministes

5. Propriétés des langages réguliers et compléments

(10)

Notations formelles

Fonction de transition

§ Définition formelle de l’automate :A= (Q,Σ, δ,q0,F)

‚ ÉtatsQ=tq0,q1,q2, . . .u

‚ Alphabet Σ =ta,b,c, . . .u

‚ Fonction de transitionδ:QˆΣÑQY H

‚ État initialq0

‚ Ensemble d’états finauxF (avecFĂQ)

§ Importance de lafonction de transition

‚ Cœur de l’automate (entrée : état et symbole / sortie : état)

‚ Exemples :δ(q0,a) =q1 ou δ(q1,b) =q0

‚ Valeurs à définir : |Q| ˚ |Σ|

‚ Une transition « qui n’existe pas » donneH

(11)

Notations formelles

Fonction de transition étendue

§ La fonction de transition n’effectue qu’une transition ñ Comment savoir quel état est atteint avecntransitions ?

‚ Pourabc, il faut calculer δ(δ(δ(q0,a),b),c)

ñ Impossible de savoir combien de fois appliquerδ

§ Fonction récursiveδ˚ :QˆΣ˚ ÑQY tHu

‚ Forme générale : δ˚(q,w) avec w˚

Siw=aavecaPΣ ñ Retournerδ(q,a)

Siw=x.aavecxPΣ˚,aPΣ ñ Retournerδ(δ˚(q,x),a)

‚ Permet de faire des transitions sur lesmots

ñ Quel état est atteint pour un état et un mot donné ?

(12)

Notations formelles

Langage reconnu

§ Un automate reconnaît un langage

ñ Concaténation de symboles telles que les transitions conduisent, depuis l’état initial, à un état final ñ L=twPΣ˚˚(q0,w)P Fu

(13)

Tables de transition

Plan

1. Diagrammes de transitions 2. Notations formelles

3. Tables de transition

4. Automates non déterministes

5. Propriétés des langages réguliers et compléments

(14)

Tables de transition

Table de transition

§ Représentation équivalente aux diagrammes

Lignes : états

Colonnes: symboles

Cases: résultat de la fonction de transition

§ Notations

‚ État initial : flèche

‚ État final : étoile

§ Exemple (cf diagramme)

Q a b c

Ñ ˚q0 q0 q1 H q1 q2 q2 q0

˚q2 H H H

(15)

Tables de transition

Exercices

§ Modélisez par diagramme et faites la table de transision des automates qui reconnaissent

‚ Une des déclinaisons de « beau »

‚ Un nombre entre 10 et 15

‚ Un nombre parmi 10, 15, 20, 25, 30, 35

‚ Une dizaine entre 0 et 50

‚ Un mot parmi « report, reporter, apporter »

‚ Un nombre pair entre 10 et 50

‚ Un mot parmi « bla », « blabla », « blablabla », etc.

‚ Une combinaisons de « hi(...) » et de « bla... »

‚ Une heure au formatHH:MM

‚ Une date au formatJJ/MM/AAAA

(16)

Automates non déterministes

Plan

1. Diagrammes de transitions 2. Notations formelles

3. Tables de transition

4. Automates non déterministes

5. Propriétés des langages réguliers et compléments

(17)

Automates non déterministes

Types d’automates

§ Terminologie

FSA: Finite State Automata

DFA : Deterministic Finite state Automata

NFA: Non-deterministic Finite state Automata

ϵ-NFA : NFA avec transitions ϵ

(18)

Automates non déterministes

NFA

§ Fonction de transition renvoit un ensemble δ:QˆΣÑQ˚

§ Dans les représentations

‚ Diagramme : plusieurs transitions pour un état / symbole

‚ Table : une case peut contenir plusieurs états

ñ Comment reconnaître tous les mots se terminant par ab?

§ Fonction de transition étendue δ˚:QˆΣ˚ ÑQ˚

‚ Forme générale : δ˚(q,w) avec w˚

Siw=x.aavecaPΣ ñ RetournerYr˚(q,x)δ(r,a)

ñ Union des états atteints selon les états précédents

Siw=aavecaPΣ ñ Retournerδ(q,a)

§ Langage reconnu : L=tw|δ˚(q0,w)XF ‰ Hu

(19)

Automates non déterministes

Exercice

§ Dessinez un automate qui reconnaît un code couleur

‚ Avec 2 chiffres héxadécimaux (par ex.A05B)

‚ Avec 2 chiffres de 000 à 256 en décimal (par ex.138027)

§ Exécutez l’automate pour indiquer les états atteints pour

‚ FFFF

‚ 5243

‚ 005132

‚ 2A5B

(20)

Automates non déterministes

Exercice

§ Dessinez les DFA et NFA sur Σ :ta,b,c,duqui reconnaissent

‚ Les mots contenant ad, puis au moins un c, puis da

‚ Les mots dont l’avant dernière lettre est unbou und

(21)

Automates non déterministes

ϵ-NFA

§ Fonction de transition peut renvoyerϵ δ:QˆΣY tϵu Ñ Q˚

§ Extension des NFA

‚ Facilité de transition :ϵ

‚ Exemple : reconnaître le langage tabcc,abdcd,ac,adu q0 a q1 b q2 c q3

ϵ

q4 c,d

§ Calcul de la fermeture transitive d’un état

‚ Initialisation :@qi PQ,qiPfermeture(qi)

‚ Itération :@qiPQ, si δ(qi, ϵ) =R alorsRĂfermeture(qi) ñ fermeture(qi) contient tous les états atteints avec ϵ

§ Fonction de transition étendue sur

(22)

Automates non déterministes

Exercice

§ Dessinez un automate qui reconnaît des dates

‚ Des années seules (par ex.2010)

‚ Des mois / années (par ex.11/2020)

‚ Des jours / mois / années (par ex.21/05/2010)

‚ Les jours et les mois peuvent être sans 0

§ Exécutez l’automate pour indiquer les états atteints pour

‚ 2017

‚ 1193

‚ 05/1980

‚ 12/1995

‚ 31/10/1979

‚ 3/5/2015

‚ 10/10/2010

(23)

Propriétés des langages réguliers et compléments

Plan

1. Diagrammes de transitions 2. Notations formelles

3. Tables de transition

4. Automates non déterministes

5. Propriétés des langages réguliers et compléments

(24)

Propriétés des langages réguliers et compléments

Propriétés des automates et langages réguliers

§ Pour un NFA, il existe un DFA équivalent ñ États comme sous-ensembles d’états

§ Lecomplémentaire d’un langage régulier est régulier ñ Inversion états initial / finaux

§ Lafermeture d’un langage régulier est régulière ñ Transitionsϵ finaux vers initial

§ L’union de deux langages réguliers est régulière

§ Le produit de deux langages réguliers est régulier

§ L’intersection de deux langages réguliers est régulier

§ Par homomorphisme, un langage reste régulier ñ Homorphisme :f(x˚y) =f(x)f(y)

(25)

Propriétés des langages réguliers et compléments

Compléments

§ Dérivationcomme transition entre configurations (DFA)

Configuration: état et mot à lire(q,w)

Dérivation :(q,w)Ñ(q1,w1)

ñ Transition avecw=a.w1 par δ(q,a) =q1

§ Calcul du langage généréà partir d’un état

‚ Fonction récursive

L(q) =YaPΣa.L(δ(q,a))Yf(q) avec f(q) =ϵsiqPF

ñ L’ensemble peut être de cardinalité infinie

(26)

Propriétés des langages réguliers et compléments

TP Unitex

§ Unitex

‚ Disponible en ligne sur le site de l’IGM

‚ Logiciel à base d’automates (dictionnaires, grammaires, etc.)

§ Travail sur un projet à définir par promotion

‚ 2015/2016 : textes de loi (codes : civil / pénal / travail)

‚ 2016/2017 : textes littéraires historiques

‚ 2017/2018 : arguments, avis, opinions

‚ …

Références

Documents relatifs

Pour évaluer le programme, un testeur a créé manuellement le tableau resultatsReels1 correspondant aux noms propres d'un texte Texte1, et a calculé la

/2(X)) est la série formelle associée à la suite croissante des entiers qui font partie à la fois de la suite de Baum-Sweet et de la suite de Morse (resp.. une suite reconnaissable

– Recherche multiple: L’algorithme de Aho-Corasick peut- être réécrit en utilisant un automate plutôt qu’un arbre de mots clefs. – Recherche approchée: Simulation

• Différentes façons de « simuler » un AFND: Structure de donnée que l’on peut utiliser pour différentes fins. –

/2(X)) est la série formelle associée à la suite croissante des entiers qui font partie à la fois de la suite de Baum-Sweet et de la suite de Morse (resp.. une suite reconnaissable

La construction de l'automate de la Figure 13 à partir de celui de la Figure 12 est le résultat d'un procédé général appliquable à tout automate, connu sous le nom

Pour montrer que K n’est pas r´ egulier, on pourra admettre l’existence de mots sans carr´ e arbitrairement longs sur l’alphabet {a, b, c}.. Exercice

Si il y a un prochain bond pour cette FEC et si il y a un bloc de contrôle aval pour cette FEC dont l’état est 'ÉTABLI', créer un nouveau bloc de contrôle amont et