Automate Fini Non-déterministe



Documents pareils
Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Calculabilité Cours 3 : Problèmes non-calculables.

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

MATHEMATIQUES ET SCIENCES POUR L INGENIEUR

Définitions. Numéro à préciser. (Durée : )

Machines virtuelles Cours 1 : Introduction

Table des matières. Introduction

Intégration et probabilités TD1 Espaces mesurés

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

1.1 Rappels sur le produit cartésien Relations Graphes dirigés Arbres Exercices Motivation...

Réalisabilité et extraction de programmes

Calculs de probabilités

Algorithmique et Programmation Fonctionnelle

CH.6 Propriétés des langages non contextuels

Contribution à l algorithmique de la vérification

Intégration et probabilités TD1 Espaces mesurés Corrigé

Utilisation des tableaux sémantiques dans les logiques de description

Probabilités sur un univers fini

Chapitre 1 I:\ Soyez courageux!

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Algorithmes récursifs

VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Algorithmes d'apprentissage

Rapport d évaluation du master

Petite introduction aux protocoles cryptographiques. Master d informatique M2

Chaînes de Markov au lycée

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Fibonacci et les paquerettes

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Premiers exercices d Algèbre. Anne-Marie Simon

Syllabus du cours de musique. Maternelle. enseigné par Joël Chiasson

Cours d initiation à la programmation en C++ Johann Cuenin

Utilisation de l ingénierie des modèles pour la conception collaborative de produits mécaniques

Théorie des Langages

1 Introduction et installation

Méthode : On raisonnera tjs graphiquement avec 2 biens.

Probabilités. C. Charignon. I Cours 3

Développement décimal d un réel

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Introduction aux systèmes temps réel. Iulian Ober IRIT

SCIENCES & TECHNOLOGIES - SANTÉ ET STAPS MASTER INFORMATIQUE. Parcours Ingénierie du Logiciel Libre (I2L)

Fondements de l informatique Logique, modèles, et calculs

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Système 260. Système 260 Contrôle de processus. Caractéristiques clés. Logiciels Typiques

Pourquoi l apprentissage?

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Vers l'ordinateur quantique

Objets Combinatoires élementaires

16H Cours / 18H TD / 20H TP

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

e-frontech v3.0 Intranet JUSTIME Gestion administrative

Baccalauréat universitaire (bachelor) en mathématiques et sciences informatiques

Modèles de Calcul. Yassine Lakhnech. 2007/08 Université Joseph Fourier Lab.: VERIMAG. Modèles de Calcul Start p.

Les nombres entiers. Durée suggérée: 3 semaines

Cours 1 : La compilation

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Model checking temporisé

La syllabe (1/5) Unité intuitive (différent du phonème) Constituant essentiel pour la phonologie au même titre que phonème et trait

Intelligence Artificielle et Robotique

Recommandations pour les entreprises qui envisagent de souscrire à des services de Cloud computing

Le modèle standard, SPE (1/8)

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

La prospection par téléphone. La Négociation Commerciale

"Calcul et hyper-calcul"

PROBABILITES ET STATISTIQUE I&II

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

CUNY Language Immersion Program

Texte Agrégation limitée par diffusion interne

Network musical jammin

MODE OPERATOIRE OPENOFFICE BASE

Les chaînes de caractères

Bases de données. Chapitre 1. Introduction

Introduction à la théorie des graphes. Solutions des exercices

Algorithme. Table des matières

Développements limités. Notion de développement limité

MIS 102 Initiation à l Informatique

CREG : versailles.fr/spip.php?article803

Dossier spécifications «Webservice de suivi» Version v011

Les Architectures Orientées Services (SOA)

Partenaires: w w w. c o g m a s t e r. n e t

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Organiser un espace de travail collaboratif avec sa classe.

SUBJONCTIF PRÉSENT. Type d'exercice : Page : Tous les verbes : QCM (1) Texte à trous (1) QCM (2) Texte à trous (2) Mots-croisés

Encryptions, compression et partitionnement des données

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Qu est-ce qu une probabilité?

Premier cours d informatique

ECVET GUIDE POUR LA MOBILITÉ

Règlement La Noble Race EPREUVE DE VTT CROSS COUNTRY & RANDONNEE

3. Conditionnement P (B)

Transcription:

Automate Fini Non-déterministe Théorème de Kleene Systèmes Formels Master 1 ISIDIS Sébastien Verel verel@lisic.univ-littoral.fr http://www-lisic.univ-littoral.fr/~verel Université du Littoral Côte d Opale Laboratoire LISIC Equipe CAMOME

Objectifs de la séance 03 Connaitre la définition d un automate fini non-déternimiste Savoir déterminiser un automate Savoir construire un automate à état fini reconnaissant un language rationnel simple Connaître le théorème de Kleene

Objectifs de la séance 03 Connaitre la définition d un automate fini non-déternimiste Savoir déterminiser un automate Savoir construire un automate à état fini reconnaissant un language rationnel simple Connaître le théorème de Kleene Questions principales du jour : Comment définir des automates reconnaissant un langage de manière simple?

Références Rappels de références concernant les langages et les automates : www-igm.univ-mlv.fr/~eberstel/elements/elements. html S. Julia, deptinfo.unice.fr/~julia/it/ www.polytech.unice.fr/~claudine

Plan 1 Introduction 2 Automate Fini Non-déterministe 3 Déterminisation 4 Théorème de Kleene

Equivalence expression régulière et langage rationnel Théorème (admis) Un langage est rationnel (ou régulier) si et seulement si il est décrit par une expression régulière.

Equivalence expression régulière et langage rationnel Théorème (admis) Un langage est rationnel (ou régulier) si et seulement si il est décrit par une expression régulière. Cardinalité L ensemble des langages rationnels est dénombrable. Remarque : il existe beaucoup de langage non rationnel...

Automate Fini Déterministe (AFD)

Automate Fini Déterministe (AFD) Automate Fini Déterministe (AFD) Un Automate Fini Déterministe est un quintuplet (Q, Σ, T, q 0, A) avec : Σ est l alphabet de l automate, Q un ensemble fini appelé ensemble des états de l automate, T est une application de Q Σ dans Q, appelée la fonction de transition q 0 est un élément de Q, appelé l état initial A est un sous-ensemble de Q, appelé l ensemble des états acceptants.

Exemple b a 1 2 b a 3 a b 4 a,b

Langage reconnu par un automate fonction de transition itérée La fonction de transition itérée est l application T : Q Σ Q définie par : base : si w = ɛ alors T (q, w) = q induction : si w = w 0 x avec x Σ alors T (q, w) = T (T (q, w 0 ), x) Langage décidé Soient M est un automate d alphabet Σ et L un langage sur Σ M décide L ssi L est l ensemble des mots acceptés par M.

Reconnaissance d un langage de cardinal 1 Soit Σ un alphabet et L = {u} un langage sur Σ de cardinal 1. u s écrit alors comme u = a 1 a 2 a 3... a n avec i a i Σ.

Reconnaissance d un langage de cardinal 1 Soit Σ un alphabet et L = {u} un langage sur Σ de cardinal 1. u s écrit alors comme u = a 1 a 2 a 3... a n avec i a i Σ. Automate reconnaissant le langage L :

Reconnaissance d un langage de cardinal 1 Soit Σ un alphabet et L = {u} un langage sur Σ de cardinal 1. u s écrit alors comme u = a 1 a 2 a 3... a n avec i a i Σ. Automate reconnaissant le langage L : a1 a2 1 2 3... an n+1 0

Quelques difficultés pratiques Il n est pas pratique de devoir définir toutes les transitions, on aimerait : a1 a2 an 1 2 3... n+1

Quelques difficultés pratiques Il n est pas pratique de devoir définir toutes les transitions, on aimerait : a1 a2 an 1 2 3... n+1 Comment construire un automate qui reconnait deux mots?

Quelques difficultés pratiques Il n est pas pratique de devoir définir toutes les transitions, on aimerait : a1 a2 an 1 2 3... n+1 Comment construire un automate qui reconnait deux mots? a1 a2 1 2 3... an n+1 b1 b2 bn 1 2 3... n+1

Plus généralement Pour pouvoir définir un automate qui reconnait un langage rationnel, Il faudrait définir un automate qui puisse reconnaitre :

Plus généralement Pour pouvoir définir un automate qui reconnait un langage rationnel, Il faudrait définir un automate qui puisse reconnaitre : la réunion de langages,

Plus généralement Pour pouvoir définir un automate qui reconnait un langage rationnel, Il faudrait définir un automate qui puisse reconnaitre : la réunion de langages, la concaténation de langages,

Plus généralement Pour pouvoir définir un automate qui reconnait un langage rationnel, Il faudrait définir un automate qui puisse reconnaitre : la réunion de langages, la concaténation de langages, l étoile d un langage (fermeture de Kleene).

Introduction de non-déterministes Non-déterministe En informatique, non-déterministe est souvent associé à plusieurs choix possibles par opposition déterministe où l opération ou l action à effectuer est unique, i.e. complètement déterminé par l état actuel du système (sans ambiguité).

Introduction de non-déterministes Non-déterministe En informatique, non-déterministe est souvent associé à plusieurs choix possibles par opposition déterministe où l opération ou l action à effectuer est unique, i.e. complètement déterminé par l état actuel du système (sans ambiguité). Non-déterministe dans les automates Plusieurs sources de non-déterministe dans les automates : Absence de transition, Plusieurs transitions pour une même lettre. Plusieurs états initiaux des transitions sur des mots vides : ɛ-transitions

Absence de transition lecture de bbba b a 1 2 b a 3 S il n y a plus de transition possible et que le mot est encore en cours de lecture Alors le mot est refusé

Absence de transition lecture de bbba b a 1 2 b a 3 S il n y a plus de transition possible et que le mot est encore en cours de lecture Alors le mot est refusé Remarque : remplace la technique de l état puit

Plusieurs transitions Lecture de aabaabab et de aaaaaba a,b a 1 2 a 3 b 4 Le mot est accepté lorsqu il existe au moins une lecture menant à un état acceptant.

Conséquence : Il faut essayer tous les lectures possibles pour est sûr que le mot est refusé Plusieurs transitions Lecture de aabaabab et de aaaaaba a,b a 1 2 a 3 b 4 Le mot est accepté lorsqu il existe au moins une lecture menant à un état acceptant.

Plusieurs états initiaux a1 a2 1 2 3... an n+1 b1 b2 bn 1 2 3... n+1 Le mot est accepté lorsqu il existe une lecture à partir de l un des états initiaux menant à un état acceptant.

ɛ-transistions a b 1 2 Une ɛ-transistion est une transition par lecture du mot vide. Pendant la lecture d un mot, il est possible de choisir d effectuer la transition ɛ sans lire aucune lettre.

Définition AFN Automate Fini Non-déterministe (AFN) Un Automate Fini Non-déterministe est un quintuplet (Q, Σ, T, I, A) où : Σ est l alphabet de l automate, Q un ensemble fini appelé ensemble des états de l automate, T est une application de Q Σ dans P(Q), appelée la fonction de transition I est un sous-ensemble de Q, appelé l ensemble des états initiaux A est un sous-ensemble de Q, appelé l ensemble des états acceptants.

Exemple a b 1-2 2-4 3 3 3 4 4,7 4 5 4-6 5-7 3-1 6 b a 2 b a 5 a,b 4 a 7 a a,b 3

Lecture / reconnaissance Lecture Soient M = (Q, Σ, T, I, A) un AFN et u = x 1 x 2... x l un mot sur Σ. Une lecture de u par M est une suite d états (q 0, q 1,..., q l ) vérifiant : i q 0 I, et ii q i T (q i 1, x i ) pour 1 i l.

Lecture / reconnaissance Lecture Soient M = (Q, Σ, T, I, A) un AFN et u = x 1 x 2... x l un mot sur Σ. Une lecture de u par M est une suite d états (q 0, q 1,..., q l ) vérifiant : i q 0 I, et ii q i T (q i 1, x i ) pour 1 i l. Acceptation Le mot u est accepté par M s il existe au moins une lecture de u par M qui se termine par un état acceptant.

Equivalence déterministe / non-déterministe Définition équivalence Soient M et M deux automates. On dit que M et M sont équivalents s ils acceptent et refusent exactement les mêmes mots.

Equivalence déterministe / non-déterministe Définition équivalence Soient M et M deux automates. On dit que M et M sont équivalents s ils acceptent et refusent exactement les mêmes mots. Equivalence : Déterministe Non-déterministe L automate déterministe M = (Q, Σ, T, q 0, A) est équivalent à l automate non-déterministe M = (Q, Σ, T, {q 0 }, A) avec T (q, x) = {T (q, x)}.

Equivalence déterministe / non-déterministe Equivalence : Non-déterministe Déterministe (admis) Soient M = (Q, Σ, T, I, A) un AFN. Alors M est équivalent l AFD M définit par M = (P(Q), Σ, T, I, A ) avec : T (X, x) = q X {T (q, x)} A = {X P(Q) X A } Remarques : Un état dans l automate déterministe est un ensemble. Un état pour M est acceptant lorsqu il contient un état acceptant pour M.

Algorithme de déterminisation Les mots se terminant par a :

Algorithme de déterminisation Les mots se terminant par a : a b 0 0,1 0 1 - - a,b 0 a 1

Algorithme de déterminisation Les mots se terminant par a : a b 0 0,1 0 1 - - AFD équivalent : a b 0 0,1 0 0,1 0,1 0 On part de l état initial et pour chaque état suivant, on réunit l ensemble des états atteignables depuis cet état. a,b 0 a 1

Algorithme de déterminisation a b 0 0 2 1 2 1 2 - - On regroupe les états initiaux dans un même ensemble :

Algorithme de déterminisation a b 0 0 2 1 2 1 2 - - On regroupe les états initiaux dans un même ensemble : est un état puit a b 0,1 0,2 1,2 0,2 0 2 1,2 2 1 0 0 2 2 1 2 1

Et les ɛ-transistions? a b 1 2 Une ɛ-transistion est une transition sur un mot vide. Pendant la lecture d un mot, il est possible de choisir d effectuer la transition ɛ sans lire aucune lettre.

Définition Σ @ Définir les ɛ-transitions consiste à définir un alphabet Σ @ où il existe une lettre supplémentaire correspondant à ɛ. Définition de Σ @ Σ @ = Σ {@} Notons π @ : Σ @ Σ la fonction (projection) qui remplace : chaque lettre de Σ par elle-même @ par le mot vide. Exemple Si Σ = {a, b} alors Σ @ = {a, b, @} et π @ (@aa@b@@b) = aabb Remarque : @ représente le mot vide ɛ, π @ (u) sous-mot de u

Définition AFN ɛ AFN ɛ Un Automate Fini Non-déterministe avec ɛ-transitions est un quintuplet (Q, Σ, T, I, A) où : Σ est l alphabet de l automate, Q un ensemble fini appelé ensemble des états de l automate, T est une application de Q Σ @ dans P(Q), appelée la fonction de transition I est un sous-ensemble de Q, appelé l ensemble des états initiaux A est un sous-ensemble de Q, appelé l ensemble des états acceptants.

Acceptation Acceptation Un mot u sur Σ est accepté par l AFN ɛ (Q, Σ, T, I, A) s il existe au moins un mot u @ sur Σ @ qui est accepté par l AFN (Q, Σ @, T, I, A) et tel que u = π @ (u @ ). Intuitivement, un mot est accepté s il existe un parcours de l automate avec ɛ-transitions spontanées

Equivalence AFN ɛ / AFN Equivalence (admis) Soient M = (Q, Σ, T, I, A) un AFN ɛ. Alors M est équivalent l AFN M définit par M = (Q, Σ, T, I, A ) avec : T (q, x) = q cl(q) {T (q, x)} I = {cl(q) q I } A = {q cl(q) A } cl(q) est la cloture (union des itérés) de q par ɛ-transitions, c est-à-dire l ensemble des états atteignables par ɛ-transitions itérées (cf. suite).

Equivalence AFN ɛ / AFN Cloture de q cl(q) est la cloture de q par ɛ-transitions, c est-à-dire l ensemble des états atteignables par ɛ-transitions itérées. Cloture : Définition ascendante avec : X 0 = {q} cl(q) = i IN X i X i+1 = X i {q : q = T (q i, @) avec i X i } Cloture : Définition descendante cl(q) = {X : q X et X stable par ɛ-transistion} On dit que X P(Q) est stable par ɛ-transition si T (X, @) X.

Algorithme de déterminisation a b a b ɛ 1 1-2 2-2 - 1 2

Algorithme de déterminisation a b a b ɛ 1 1-2 2-2 - 1 2 AFN équivalent : cl(1) = {1, 2} a b 1 1 2 2-2

Question Quel rapport entre les langages reconnus par un Automate Fini et les langages décrits par une expression régulière (langage rationnel)?

Théorème de Kleene Théorème de Kleene (admis...) Un langage sur un alphabet Σ est rationnel si et seulement si il est reconnu par un automate fini. Idée de la démonstration : On peut construire de manière inductive l ensemble des langages rationnels et les automates reconnaissant ces langages.

Union de langages rationnels Soient deux automates finis déterministes M 1 et M 2 reconnaissant respectivement les langages L 1 et L 2 L 1 L 2 est reconnu par : On ajoute des ɛ-transitions entre un nouvel état initial et les états initiaux de M 1 et de M 2

Produit de concaténation de langages rationnels Soient deux automates finis déterministes M 1 et M 2 reconnaissant respectivement les langages L 1 et L 2 L 1.L 2 est reconnu par : On ajoute des ɛ-transitions entre les états acceptants de M 1 et l état intial de M 2

Etoile (cloture de Kleene) de langages rationnels Soit un automate fini déterministe M reconnaissant le langage L L est reconnu par : On ajoute des ɛ-transitions entre les états finaux et le nouvel état initial

Conclusion (1) A chaque langage rationnel est associé un automate fini, et réciproquement. Les automates sont des machines abstraites capables de réaliser des calculs sur des mots : entrée : mot (donnée du problème) sortie : oui/non (une décision) Lien très fort entre langage et machine : Langage : définit un ensemble de mots Machine : calcul un ensemble de mots

Conclusion (2) Il est possible de définir d autres machines abstraites qui permettent de définir d autres classes de langages. L expressivité du langage et la capacité de calcul de la machine sont alors différentes. Les questions que l on se pose sont alors les mêmes : mode de lecture, description algébrique langage (souvent à l aide d une définition inductive), équivalence avec d autres classes de langages, complexité de calcul d une machine reconnaissant le langage. Par exemple, on peut remplacer automate par machine de Turing...