Université Galatasaray...en un AFD ayantle nombre minimal d'états et qui reconnaît le même...

Post on 18-Apr-2020

2 views 0 download

Transcript of Université Galatasaray...en un AFD ayantle nombre minimal d'états et qui reconnaît le même...

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