• Aucun résultat trouvé

Automates à états finis

N/A
N/A
Protected

Academic year: 2022

Partager "Automates à états finis"

Copied!
66
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)

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

(4)

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

(5)

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)

(6)

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

(7)

Diagrammes de transitions

Diagrammes

§ Inspiré des diagrammes de flux / organigrammes

Travail ?

Menteur ! non

Urgent ? oui

oui non

(8)

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

q5

(9)

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

q5

(10)

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

q5

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

a,c

ñ Correspond à l’étoile de Kleene

(16)

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

(17)

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 c

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

Notations formelles

Fonction de transition étendue

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

‚ Pour abc, 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é ?

(32)

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é ?

(33)

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é ?

(34)

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é ?

(35)

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é ?

(36)

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é ?

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

q q q

(42)

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

(43)

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

(44)

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 ϵ

(45)

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

(46)

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

(47)

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)

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

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

(48)

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

(49)

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

(50)

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

(51)

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 :@qiPQ,qiPfermeture(qi)

‚ Itération :@qi PQ, si δ(qi, ϵ) =R alorsRĂ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)

(52)

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 :@qiPQ,qiPfermeture(qi)

‚ Itération :@qi PQ, si δ(qi, ϵ) =R alorsRĂ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)

(53)

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)

§ Fonction de transition étendue sur

δ˚(q,x.a) =YrPδ˚(q,x)YsPδ(r,a)fermeture(s)

(54)

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

δ˚(q,x.a) =YrPδ˚(q,x)YsPδ(r,a)fermeture(s)

(55)

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

(56)

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

(57)

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)

(58)

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)

(59)

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)

(60)

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)

(61)

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)

(62)

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)

(63)

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

(64)

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

(65)

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

(66)

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

Le premier reproche est que cette notion de langage - un sous-ensemble d’un monoïde libre - est beaucoup trop pauvre pour rendre compte des plus simples structures

On montre que tout langage régulier simple à droite est d'une manière unique produit d'un langage régulier pur à droite et d'un langage régulier étoile obtenu à partir d'un

Donnez les langages générés par les expressions

Licence Informatique –L1 Automates. Théorie des

Donnez un automate non-déterministe sur Σ ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} qui accepte les mots dont le dernier chiffre soit un chiffre qui ait déjà apparu...

● Pour la lisibilité, lorsque deux arcs de même orientation sont possibles entre deux nœuds, ils sont fusionnés (disjonction) :. ● Un arc peut « boucler » un état

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