université galatasaray...en un afd ayantle nombre minimal d'états et qui reconnaît le même...
TRANSCRIPT
Automates Finis Cours 4
Automates et théorie des langagesOtomatlar ve diller teorisiDr. HDR Rabie Ben Atitallah
FIT3 [INF323] 2018/19
Université Galatasaray
Cours précédents
¢ 1er cours : Introductionl Introduction générale l Langage formel, grammaires
¢ 2ème cours : Automates Finis l Automate fini déterministe et non déterministe l Calcul du langage d’un AFD
¢ 3ème cours : Automates Finis (suite)l Automate complet, état puits, transitions-ε l Relation entre AFND et AFDl Rendre un automate déterministe
2
Motivations
¢ Comprendre les limites de l'informatique
¢ Distinguer problèmes solubles et insolubles par des algorithmes
¢ Obtenir des résultats indépendants de la technologie employée pour construire les ordinateurs
3
La formalisation des problèmes
¢ Résoudre un problème = reconnaître le langage des encodages des instances >0 du problème
l Instances : alphabets et mots• Les mots représentent les instances d’un problème
l Problème : reconnaître un langage défini par une grammaire
• Un langage représente les instances positives du problèmel Mécanisme : automate
• Un automate représente le programme
4
La description des langages
¢ ∄de notation permettant de décrire tous les langages (finis et infinis)
l Ensemble des langages réguliers • Notation permettant de décrire tous les langages
finis et certains langages infinis
5
Théorème
¢ Un langage est régulier si et seulement si il est dénoté par une expression régulière l Les expressions régulières sont un sous-ensemble infini de
l’ensemble des chaînes de caractèresl Les expressions régulières sont donc dénombrables
¢ ∄assez d'expressions régulières pour représenter tous les langages
6
Il y a donc (beaucoup) plus de langages que de langages réguliers
Limites fondamentales de l’informatique
Formalisation d’un automate fini déterministe
¢ Un automate fini déterministe est défini par un quintuplet M = (Q,∑,δ,s,F), où l Q est un ensemble fini d’états,l ∑ est un alphabet,l δ : Q x ∑ à Q : est la fonction de transition,l s ∈ Q est l’état initial,l F ⊆ Q est l'ensemble des états accepteurs.
¢ Exemple l Mots se terminant par b
7
Formalisation d’un automate fini non déterministe
¢ Un automate fini non déterministe est défini par un quintuplet M = (Q,∑,∆,s,F), oul Q est un ensemble d’états,l ∑ est un alphabet,l ∆ ⊂ (Q x ∑* x Q) est la relation de transition,l s ∈ Q est l’état initial,l F ⊆ Q est l'ensemble des états accepteurs.
8
Relation entre AFND et AFD
¢ On peut toujours remplacer un AFND par un AFD équivalent.
Cours d’aujourd’hui
¢ 4ème : Automates Finis
l Minimisation d’un automate
l JFLAP : un outil pour manipuler les langages formels, les automates finis déterministes, etc.
l Exercices d’application
10
Introduction
¢ Minimisation d'un automate fini déterministel Opération consistant à transformer un AFD
en un AFD ayant le nombre minimal d'états et qui reconnaît le même langage
l Importance pratique évidente = gain d'espace qu'elle permet
l ∃ plusieurs méthodes pour effectuer cette opération de minimisation
11
Introduction
¢ Application importante de la minimisation des automates finis déterministes l Test de l'équivalence de 2 automates finis,
c'est-à-dire le fait de décider s'ils reconnaissent le même langage
l Conséquence de l'unicité de l'automate fini minimal, à un renommage des états près
l Pour savoir si 2 automates sont équivalents, il suffit de minimiser les 2 automates et de tester si leurs versions minimales sont égales
12
Plusieurs méthodes
¢ Méthode 1 : l Comparaison des mots de chaque langage
¢ Méthode 2 : l Calcul des résiduels
¢ Méthode 3 : l Méthode des équivalences de Nérode
13
Méthode 1 : Comparaison des mots de chaque langage
¢ On écrit les équations liant les langages de départ de l’automate l On résolu le système du départ l On compare tous les langages du départ en
étudiant leur mots de longueur 0,1,2 …
¢ Exemple (après simplification) l D1 = aD2+bD1+εl D2 = aD1l D3 = D1 l D4 = D1 l D5 = ø
14
Méthode 1 : Comparaison des mots de chaque langage
¢ Exemple l D1 = (a² + b)*
l D2 = a(a² + b)*
l D3 = (a² + b)*
l D4 = (a² + b)*
l D5 = ø
¢ λ=0l 2 sous-ensembles
¢ λ=1l 3 sous-ensembles
¢ λ=2l 3 sous-ensembles
15
λ=0 λ=1 λ=2D1 ε b aaD2 a aa,abD3 ε b aaD4 ε b aaD5
Méthode 1 : Comparaison des mots de chaque langage
¢ On ne peut pas trouver plus que 3 sous-sembles
¢ Comme ce nombre est inférieur au nombre d’états de l’automate, celui-ci peut être minimiser avec 3 états
¢ On peut dessiner le nouvel automate à partir de l’ancienne table de transition et des 3 nouveaux états
16
Méthode 1 : Comparaison des mots de chaque langage
¢ On peut dessiner le nouvel automate à partir de l’ancienne table de transition
17
Méthode 2 : Calcul des résiduels
¢ Rappel l Si L est un langage et σ un mot, on appelle
résiduel de L par rapport à σ (σ-1L), le langage ayant pour éléments les mots τtq τ σ ∈ L
l Autrement dit, c’est l’ensemble des mots de L commençant par σ auxquels on a retiré ce préfixe σ
18
Méthode 2 : Calcul des résiduels
¢ Pour calculer tous les résiduels d’un langage régulier L, on détermine1. ε-1 L = L 2. Les différents résiduels Ri du type x-1L pour
chacune des lettres de ∑3. Les résiduels x-1 Ri pour chacun des
résiduels Ri obtenu à l’étape précédente qui sont différents de ceux déjà rencontrés, et pour toutes les lettres x ∈ ∑
l On itère 3 jusqu’à ce qu’on n’obtienne plus de résiduel nouveau 19
Méthode 2 : Calcul des résiduels, exemple
¢ Calcul de résiduels sous forme d’arbre l L = b*ab+ab* et ∑ = {a,b}
20
ε-1 L =L= b*ab+ab*
a-1 L = b+ab* = R1
a-1 R1 = ø = R4
a-1 R2 = b* = R3
a-1 R3 = ø
b-1 L = L
b-1R1= b*ab*=R2
b-1 R2=b*ab*=R2
b-1 R3 = b*
Méthode 2 : Calcul des résiduels, exemple
¢ On peut déduire que le langage L admet 5 résiduels distincts l L= b*ab+ab*l R1 = b+ab* l R2 = b*ab* l R3 = b* l R4 = ø
¢ Comme le langage L a 5 résiduels, l’automate minimal qui reconnait L et qui a le moins possible d’états est l’automate à 5 états que l’on peut construire à partir de ces 5 résiduels
21
Méthode 2 : Calcul des résiduels, exemple
¢ On peut dessiner le nouvel automate à partir des résidus en suivant les transitions sur l’arbre
22
Méthode 3 : équivalences de Nérode
¢ Théorème Myhill-Nérodel Pour un langage rationnel donnée L, il existe
un AFD canonique (uniquement défini), et qui comporte un nombre minimum d’états, reconnaissant L
l Il existe un algorithme très efficace • Principe de minimisation d'un AFD • Utilise le principe algorithmique d’éclatement de
partitions
23
Méthode 3 : équivalences de Nérode
¢ Rappel : l Une partition d'un ensemble est la définition d'un
ensemble de classes, tq l'union de toutes les classes est l'ensemble de départ, et tq l'intersection de 2 classes est vide : une partition correspond à une relation d’équivalence
¢ Principe algorithmique d’éclatement de partitions (ou d'affinement de partitions)l on part d'une (ou plusieurs) (grandes) classesl on a un critère qui permet de partitionner une classe
en plusieurs classes plus petitesl on arrête quand chaque classe obtenue est
non-partitionnable24
Méthode 3 : équivalences de Nérode
¢ Pour minimiser un AFD :l on retire les états non atteignables l on partitionne l'ensemble des états en
2 classes : • Les états finaux, acceptant : A • Les états non finaux (y compris l’état poubelle),
refusant : R
¢ Etape d’éclatement des classes A et R l Appliquer à A et R une transition par un
caractère x ∈∑ l Séparer les éléments de A et R qui
n'aboutissent pas à la même classe25
Méthode 3 : équivalences de Nérode
¢ On répète jusqu’à ce qu'il n'y ait plus d’éclatement possible
¢ On obtient la description d'un nouvel AFD dont l’état initial est l’état contenant q0 et dont les états finaux sont les états contenant un état final de l'automate de départ
26
Méthode 3 : équivalences de Nerode - exemple
¢ Au départ 2 classes l A = {q3,q4}l R = {q0,q2,ø}
¢ On remplace A et R dans la table de transition, et on regarde si Ǝ des partitions
27
a b cà q0 R R R
q2 R A A* q3 R R R* q4 R R R
ø R R R
a b cà q0 R R R
q2 R A A* q3 R R R* q4 R R R
ø R R R
q0,q2,ø ∈ R
q3,q4 ∈ A
Méthode 3 : équivalences de Nerode - exemple
¢ Au départ 2 classes l A = {q3,q4}
• Pas de séparation car transitions sur a,b,c à ø
l R = {q0,q2,ø}• On voit 2 ensembles : R1 = {q2} ; R2 = {q0,ø}• On remplace dans la table de transition
28
a b cà q0 R R R
q2 R A A* q3 R R R* q4 R R R
ø R R R
a b cR1 R2 R2R2 A AR2 R2 R2R2 R2 R2R2 R2 R2
q0,q2,ø ∈R
a b cq0 R R Rq2 R A Aq3 R R Rq4 R R Rø R R R
a b cà q0 R1 R2 R2
q2 R2 A A* q3 R2 R2 R2* q4 R2 R2 R2
ø R2 R2 R2
Méthode 3 : équivalences de Nerode - exemple
¢ Au départ 2 classes l A = {q3,q4}
• Pas de séparation car transitions sur a,b,c à ø
l R = {q0,q2,ø}• Puis R1 = {q2} et R2 = {q0,ø}
• On voit 2 ensembles : R21 = {q0} et R22 = {ø}
a b cR1 R22 R22R22 A AR22 R22 R22R22 R22 R22R22 R22 R2229
Il n’y a pas de nouvel ensemble possible !
Méthode 3 :équivalences de Nérode - exemple
¢ Au final on a 4 ensembles l A = {q3,q4}l R1 = {q2} l R21 = {q0} l R22 = {ø}
¢ On obtient un AFD à 3 états
30
a b cà q0 q2 ø ø
q2 ø q3 q4* q3 ø ø ø* q4 ø ø ø
ø ø ø ø
FLAPIntroduction, fonctionnalités, installation, utilisation
31
Introduction
¢ FLAP est un logiciel pour expérimenter les langages formels, les automates finis déterministes, les automates à pile, les machines de Turing, plusieurs types de grammaires, etc.l http://www.jflap.org/
32
Fonctionnalités
¢ Permet de
l Construire et de tester des automates sur des mots
l Convertir une expression régulière en un AF et inversement
l Déterminiser un AFNDl Minimiser un AFD l Comparer 2 automates l …
33
Installation
¢ Logiciel gratuit sous Java
¢ Nécessite de remplir un formulaire
¢ Il est recommandé d’utiliser la version 7 plutôt que la version 8 beta
34
Utilisation
¢ Cliquer sur « Finite Automaton »
35
Utilisation
¢ Dessinez votre automate
36
Utilisation
¢ Testez votre automate
37
Utilisation
¢ Minimiser votre automate
38
Utilisation
¢ Automate ó Expression régulière
39
Conclusion
¢ 4ème cours : Automates Finis l Minimisation d’un automatel Exercices d’application
¢ Les prochaines fois l Automates finis et expressions régulièresl Grammaires régulières l Automates à pile et langages hors-contextel Machines de Turing
40