Théorie des Langages



Documents pareils
Théorie des Langages

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

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

Plus courts chemins, programmation dynamique

Chapitre 5 : Flot maximal dans un graphe

Initiation à LabView : Les exemples d applications :

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

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

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

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

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Initiation à la Programmation en Logique avec SISCtus Prolog

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

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

MIS 102 Initiation à l Informatique

Rappels sur les suites - Algorithme

DOCM Solutions officielles = n 2 10.

chapitre 4 Nombres de Catalan

Programmation linéaire

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Cours de Probabilités et de Statistique

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

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

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

Annexe 6. Notions d ordonnancement.

Peut-on imiter le hasard?

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Problèmes de Mathématiques Filtres et ultrafiltres

LES GENERATEURS DE NOMBRES ALEATOIRES

Pourquoi l apprentissage?

Grammaires d unification

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Eléments de Théorie des Graphes et Programmation Linéaire

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

La fonction exponentielle

Chapitre 7. Récurrences

Objets Combinatoires élementaires

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

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

Initiation à l algorithmique

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Intelligence Artificielle Planification

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Correction du Baccalauréat S Amérique du Nord mai 2007

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Chp. 4. Minimisation d une fonction d une variable

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

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

Resolution limit in community detection

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Cours d Analyse. Fonctions de plusieurs variables

par Denis-Charles Cisinski & Georges Maltsiniotis


Algorithmique et Programmation

Algorithme. Table des matières

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

LES DECIMALES DE π BERNARD EGGER

Mesure d angles et trigonométrie

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

F411 - Courbes Paramétrées, Polaires

Fluctuation d une fréquence selon les échantillons - Probabilités

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Logique. Plan du chapitre

Cercle trigonométrique et mesures d angles

AWS avancé. Surveiller votre utilisation d EC2

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

1 Recherche en table par balayage

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Dualité dans les espaces de Lebesgue et mesures de Radon finies

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Gestion des Clés Publiques (PKI)

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Les structures de données. Rajae El Ouazzani

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

UML (Paquetage) Unified Modeling Language

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

Le langage SQL Rappels

Université Paris-Dauphine DUMI2E 1ère année, Applications

Annexe commune aux séries ES, L et S : boîtes et quantiles

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Mathématiques financières

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Suites numériques 3. 1 Convergence et limite d une suite

Théorèmes de Point Fixe et Applications 1

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

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

Algorithmes récursifs

Transcription:

Théorie des Langages Automates Claude Moulin Université de Technologie de Compiègne Printemps 2013

Sommaire 1 Automate fini 2 Automate et langages réguliers 3 Automate à pile

Automate fini déterministe Sommaire 1 Automate fini Automate fini déterministe Automate non déterministe Automate avec epsilon-transitions 2 Automate et langages réguliers Automate et expression régulière Méthode par élimination d états Équations de langages Expression régulière et Automate non déterministe 3 Automate à pile Description Automate non déterministe

Automate fini déterministe Introduction Question : Déterminer des outils permettant de reconnaître si une chaîne appartient à un langage Les automates sont des modèles mathématiques qui prennent en entrée une chaîne de symboles et qui effectuent un algorithme de reconnaissance de la chaîne. Si l algorithme se termine dans certaines conditions, l automate est dit accepter la chaîne correspondante. Le langage reconnu par un automate est l ensemble des chaînes qu il accepte.

Automate fini déterministe Exemple Ensemble des chaînes construites sur {0, 1} comportant une suite de caractères 01. 3 Cas de figure Le premier 0 n est pas encore apparu Le premier 0 est apparu et on attend le premier 1 suivant La séquence 01 a été rencontrée 1 0 0 1 Début q 0 q 2 q 1 0, 1

Automate fini déterministe Définition Un automate fini déterministe (AFD) est un modèle mathématique qui consiste en : Q un ensemble d états. Σ un ensemble de symboles d entrée (alphabet). δ une fonction de transition qui prend comme argument un état et un symbole d entrée et qui retourne un état. δ : Q Σ Q. q 0, un état initial appartenant à Q. F, un ensemble d états finals ou états d acceptation, F Q. A = (Q, Σ, δ, q 0, F)

Automate fini déterministe Exemple Langage construit sur {0,1} dont les chaînes ont un nombre pair de 0 et un nombre pair de 1. 1 Début q 0 q 1 1 0 0 0 0 1 q 2 q 3 1

Automate fini déterministe Diagramme de transition q0 1 1 q1 0 0 0 0 1 q2 q3 1 Pour chaque état q Q, il existe un nœud étiqueté q. Pour chaque état q et chaque symbole a de Σ tel que δ(q, a) = p, il existe un arc du nœud q vers le nœud p étiqueté a. Les nœuds correspondant aux états de satisfaction (états appartenant à F) sont représentés par un cercle double.

Automate fini déterministe Table de transition 0 q0 0 1 1 1 0 q1 0 Exemples : δ(q 0, 0) = q 2 δ(q 1, 0) = q 3 q2 q3 1 0 1 * q 0 q 2 q 1 q 1 q 3 q 0 q 2 q 0 q 3 désigne l état initial q 3 q 1 q 2 * désigne les états finals

Automate fini déterministe Chemins 0 q0 0 1 1 0 q1 0 ˆδ(q 0, 0) = q 2 car δ(q 0, 0) = q 2 ˆδ(q 0, 0101) = q 0 car 1 ˆδ(q 0, 010) = q 1 q2 q3 et δ(q 1, 1) = q 0 1

Automate fini déterministe Fonction de transition étendue La fonction de transition étendue appelée ˆδ décrit ce qui se passe lorsqu on se positionne dans un état quelconque de l automate et que l on suit une séquence quelconque d entrées. ˆδ : Q Σ Q est définie par induction sur la longueur de la chaîne de symboles d entrée par : ˆδ(q, ɛ) = q Soit w = xa, a le dernier symbole de w et x la chaîne début de w, si ˆδ(q, x) = p, alors ˆδ(q, w) = δ(p, a) = δ(ˆδ(q, x), a)

Automate fini déterministe Langage engendré par un automate Le langage d un automate à états finis déterministe A = (Q, Σ, δ, q 0, F) est défini par : l ensemble des chaînes obtenues sur tout chemin du graphe partant du nœud initial et s achevant sur un nœud final. L(A) = {w ˆδ(q 0, w) F}

Automate non déterministe Sommaire 1 Automate fini Automate fini déterministe Automate non déterministe Automate avec epsilon-transitions 2 Automate et langages réguliers Automate et expression régulière Méthode par élimination d états Équations de langages Expression régulière et Automate non déterministe 3 Automate à pile Description Automate non déterministe

Automate non déterministe Automate non déterministe 0, 1 0 1 Début q 0 q 1 q 2 L automate non déterministe n accepte que les chaînes composées de 0 et de 1 et terminées par la séquence 01. Il reste en l état q 0 tant qu il n a pas deviné que l ultime séquence n a pas commencé. δ(q 0, 0) = {q 0, q 1 }

Automate non déterministe Transition 0, 1 0 1 q 0 q 1 q 2 A = ({q 0, q 1, q 2 }, {0, 1}, δ, q 0, {q 2 }) 0 1 q 0 {q 0, q 1 } {q 0 } q 1 {q 2 } q 2

Automate non déterministe Reconnaissance de la chaîne 00101 0, 1 0 1 q 0 q 1 q 2 0 0 1 0 1 q 0 q 0 q 0 q 0 q 0 q 0 q 1 q 1 q 1 impasse q 2 q 2 impasse

Automate avec epsilon-transitions Sommaire 1 Automate fini Automate fini déterministe Automate non déterministe Automate avec epsilon-transitions 2 Automate et langages réguliers Automate et expression régulière Méthode par élimination d états Équations de langages Expression régulière et Automate non déterministe 3 Automate à pile Description Automate non déterministe

Automate avec epsilon-transitions Automate avec ɛ-transitions (ɛ-afn) Les automates finis possédant des ɛ-transitions sont des automates pouvant faire spontanément des transitions. Les arcs correspondants sont étiquetés par le symbole ɛ et ne consomment aucun caractère de la chaîne d entrée. Un automate non déterministe avec ɛ-transitions est un quintuplet : A = (Q, Σ, δ, q 0, F) δ, la fonction de transition, prend en argument un état et un élément de Σ {ɛ} et retourne un ensemble d états. δ : Q Σ {ɛ} Q.

Automate avec epsilon-transitions Automate avec ɛ-transitions (ɛ-afn) 0,1,...,9 0,1,...,9 q 0 ɛ,+,- q 1. q 2 0,1,...,9 q 3 ɛ q 5 0,1,...,9. q 4

Automate avec epsilon-transitions (ɛ-afn)- Table de transition 0,1,...,9 0,1,...,9 ɛ,+,-. 0,1,...,9 ɛ q 0 q 1 q 2 q 3 q 5 0,1,...,9. q 4 ɛ +, -. 0, 1,..., 9 q 0 {q 1 } {q 1 } q 1 {q 2 } {q 1, q 4 } q 2 {q 3 } q 3 {q 5 } {q 3 } q 4 {q 3 } q 5 F = {q 5 }

Automate avec epsilon-transitions Transformation : AFN AFD Question : Déterminer un AFD reconnaissant le même langage que cet AFN?

Automate avec epsilon-transitions Algorithme 1 Soit E = {q 0 }. 2 Construire E (1) (x) = δ(e, x) = q Eδ(q, x) pour tout x Σ. 3 Recommencer 2 pour toute transition et pour chaque nouvel ensemble E (i) (a). 4 Tous les ensembles d états E (i) (a) contenant au moins un état final deviennent des états finals. 5 Renuméroter les ensembles d états en tant que simples états.

Automate avec epsilon-transitions Exemple état a b q 0 q 0, q 2 q 1 q 1 q 3 q 0, q 2 * q 2 q 3, q 4 q 2 * q 3 q 2 q 1 q 4 q 3 q 0 état initial ; F = {q 2, q 3 }

Automate avec epsilon-transitions Table de l AFD correspondant état a b q 0 q 0, q 2 q 1 q 0, q 2 q 0, q 2, q 3, q 4 q 1, q 2 q 1 q 3 q 0, q 2 q 0, q 2, q 3, q 4 q 0, q 2, q 3, q 4 q 1, q 2, q 3 q 1, q 2 q 3, q 4 q 0, q 2 q 3 q 2 q 1 q 1, q 2, q 3 q 2, q 3, q 4 q 0, q 1, q 2 q 3, q 4 q 2 q 1, q 3 q 2 q 3, q 4 q 2 q 2, q 3, q 4 q 2, q 3, q 4 q 1, q 2, q 3 q 0, q 1, q 2 q 0, q 2, q 3, q 4 q 0, q 1, q 2 q 1, q 3 q 2, q 3 q 0, q 1, q 2 q 2, q 3 q 2, q 3, q 4 q 1, q 2

Automate avec epsilon-transitions Transformation : ɛ-afn AFD L algorithme reste similaire au précédent à la différence que chaque ensemble d états considéré doit être clos par ɛ-transition. L ɛ-fermeture d un état q est l ensemble des états obtenus en suivant des ɛ transitions à partir de q. Règles d appartenance : q ɛ-fermeture(q) si p ɛ-fermeture(q) et s il existe une ɛ-transition entre p et un état r alors r ɛ-fermeture(q).

Automate avec epsilon-transitions Application 0,1,...,9 0,1,...,9 q 0 ɛ,+,- q 1. q 2 0,1,...,9 q 3 ɛ q 5 0,1,...,9. q 4

Sommaire 1 Automate fini 2 Automate et langages réguliers 3 Automate à pile

Automate et expression régulière Sommaire 1 Automate fini Automate fini déterministe Automate non déterministe Automate avec epsilon-transitions 2 Automate et langages réguliers Automate et expression régulière Méthode par élimination d états Équations de langages Expression régulière et Automate non déterministe 3 Automate à pile Description Automate non déterministe

Automate et expression régulière Automate Expressions Régulières AFD ER ER ɛ-afn AFD ɛ-afn ɛ-afn AFD AFN AFD

Automate et expression régulière Théorèmes Tout langage défini par un automate est aussi défini par une expression régulière Si L(A) est le langage défini par un AFD, A, alors il existe une expression régulière R telle que : L(R) = L(A) Tout langage défini par une expression régulière est aussi défini par un automate Si L(R) est le langage défini par une expression régulière, alors il existe un automate A tel que : L(A) = L(R)

Automate et expression régulière Démonstration A un AFD ayant n états. {1, 2,..., n} l ensemble de ses états. le nom de l expression régulière dont le langage est l ensemble des chaînes w construites sur un chemin allant de l état i à l état j qui ne passe pas par un état dont le rang est supérieur à k. R (k) ij

Automate et expression régulière k = 0 2 possibilités : i = j i j si i = j on ne considère que le nœud i lui-même Chemins légaux : le chemin de longueur 0 étiqueté ɛ les boucles sur l état i. R (0) ii = ɛ : pas de transition R (0) ii = ɛ a : 1 transition étiquetée a R (0) ii = ɛ a 1 a 2... a p : p transitions

Automate et expression régulière k = 0 ; i j Arcs reliant le nœud i au nœud j. R (0) ij R (0) ij R (0) ij = : pas de transition = a : 1 transition étiquetée a = a 1 a 2... a p : p transitions étiquetées de a 1 à a p

Automate et expression régulière Récurrence : k > 0 Chemins allant du nœud i au nœud j passant par des nœuds dont l indice est k. Un chemin ne passe pas par le nœud k Son étiquette est décrite par R (k 1) ij Un chemin passe par le nœud k au moins une fois, repasse éventuellement par ce même nœud puis termine sur le nœud j. son étiquette satisfait l expression régulière : R (k 1) ik (R (k 1) kk ) R (k 1) kj

Automate et expression régulière Conclusion R (k) ij R (k) ij = R (k 1) ij R (k 1) ik (R (k 1) kk ) R (k 1) kj ne dépend que d expressions de degré inférieur à k L expression régulière décrivant un AFD est donnée par : R (n) 1p 1 R (n) 1p 2... R (n) 1p m les nœuds p 1, p 2,..., p m sont les nœuds d acceptation.

Méthode par élimination d états Sommaire 1 Automate fini Automate fini déterministe Automate non déterministe Automate avec epsilon-transitions 2 Automate et langages réguliers Automate et expression régulière Méthode par élimination d états Équations de langages Expression régulière et Automate non déterministe 3 Automate à pile Description Automate non déterministe

Méthode par élimination d états Elimination d états Elimination de l état q 1 Le chemin q 0 q 2 doit être remplacé par un arc d étiquette : 10*1 On obtient un graphe dont les arcs ont pour étiquette des expressions régulières

Méthode par élimination d états Résultat A partir de : On obtient le graphe : Expression régulière : (0 10*10)* 10*1

Méthode par élimination d états Méthode Chaque chemin q, s, p produit une expression régulière qui vient s ajouter (par la réunion) à l expression du chemin q, p. Pour chaque état d acceptation, on applique la réduction précédente pour produire un automate équivalent. On élimine tous les états s qui ne sont ni un état d acceptation ni l état initial.

Méthode par élimination d états Fin de la méthode En fin de méthode, on obtient : (R SU*T)* SU* R*

Méthode par élimination d états Exemple Situation : l expression du chemin q, p. R*SU* R*SU*T

Équations de langages Sommaire 1 Automate fini Automate fini déterministe Automate non déterministe Automate avec epsilon-transitions 2 Automate et langages réguliers Automate et expression régulière Méthode par élimination d états Équations de langages Expression régulière et Automate non déterministe 3 Automate à pile Description Automate non déterministe

Équations de langages Autre méthode On appelle L i le langage que reconnaîtrait l automate si q i était son état initial. On établit un système d équation liant tous les L i Pour chaque transition telle que δ(q i, a) = q j : L i,a = al j L i = L i,a1 L i,a2... L i,an L i = a 1 L j1 a 2 L j2... a n L jn Si q i est terminal sans transition : L i = ɛ si δ(q i, a) = q i alors L i = al i = a L = αl β se simplifie en : L = α β Il s agit de calculer L 0

Équations de langages Exemple Equations L 0 = 0L 0 1L 1 et L 1 = 0L 0 ɛ Résolution : L 0 = 0L 0 10L 0 1 L 0 = (0 10)L 0 1 L 0 = (0 10) 1

Expression régulière et Automate non déterministe Sommaire 1 Automate fini Automate fini déterministe Automate non déterministe Automate avec epsilon-transitions 2 Automate et langages réguliers Automate et expression régulière Méthode par élimination d états Équations de langages Expression régulière et Automate non déterministe 3 Automate à pile Description Automate non déterministe

Expression régulière et Automate non déterministe ER ɛ-afn La preuve est construite par récurrence à partir des expressions régulières de base Tous les automates construits sont des ɛ-afn ayant un unique état d acceptation Il faut combiner les automates pour construire des automates composites acceptant les opérations : Union ( ) Concaténation Fermeture (*) Si L(R) est le langage dénoté par une expression régulière R, on démontre qu il existe un ɛ-afn, A, tel que L(A) = L(R)

Expression régulière et Automate non déterministe ɛ-afn pour des expressions de base Automate construit à partir de :, ɛ, un symbole a) - L = b) - L = {ɛ} c) - L = {a}

Expression régulière et Automate non déterministe R S ɛ-afn Automate construit à partir de la disjonction L = L(R) L(S)

Expression régulière et Automate non déterministe RS ɛ-afn Automate construit à partir de la concaténation L = L(R)L(S)

Expression régulière et Automate non déterministe R* ɛ-afn Automate construit à partir de l expression R* L = L(R)

Expression régulière et Automate non déterministe Langages non réguliers Le langage : L 01 = {0 n 1 n n 1} est non régulier Raisonnement par l absurde : soit un AFD représentant ce langage. Il existe deux nombres différents i et j tels que après avoir lu les préfixes 0 i et 0 j, l AFD soit dans le même état. A partir de cet état, l AFD lit un certain nombre de 1 et arrive dans un état final. On aurait 0 i 1 p L 01 et 0 j 1 p L 01 avec i j Les expressions régulières ne sont pas suffisantes pour représenter les langages de programmation

Expression régulière et Automate non déterministe Analyse lexicale Les unités lexicales sont définies par des expressions régulières. A chaque unité lexicale u 1, u 2,...u n est associé un AFN. Un AFN général est bâti à partir de ces AFN de base par réunion.

Sommaire 1 Automate fini 2 Automate et langages réguliers 3 Automate à pile

Description Sommaire 1 Automate fini Automate fini déterministe Automate non déterministe Automate avec epsilon-transitions 2 Automate et langages réguliers Automate et expression régulière Méthode par élimination d états Équations de langages Expression régulière et Automate non déterministe 3 Automate à pile Description Automate non déterministe

Description Principe

Description L wcw R = {wcw R ; w (0 1) }

Description Diagramme de transition

Description Définition P = (Q, Σ, Γ, δ, q 0, Z 0, F ) Q est un ensemble fini d états Σ est un ensemble fini de symboles d entrée Γ est un ensemble fini dit alphabet de pile. C est l ensemble des symboles qui peuvent être empilés δ est la fonction de transition. q 0 est l état initial Z 0 est le symbole de départ de la pile F est l ensemble des états finals

Description Fonction de transition δ, la fonction de transition prend en entrée trois paramètres : q un état de Q a un symbole d entrée ou ɛ X un symbole de pile Elle renvoie un ensemble fini de couples (p, γ) où p est le nouvel état et γ est la nouvelle chaîne de symboles qui remplace X au sommet de la pile.

Description Règle de transition Lors d une transition l automate : consume le symbole utilisé dans la transition. Si ɛ est utilisé aucun symbole d entrée n est consumé. passe dans un nouvel état. remplace le symbole au sommet de la pile par une chaîne de symboles : ɛ ; dépilement (pop). le même symbole que le sommet actuel ; aucun changement dans la pile. un autre symbole (pop du sommet suivi de push). une suite de symboles ; dépilement du sommet (pop) et empilement (push) des symboles.

Automate non déterministe Sommaire 1 Automate fini Automate fini déterministe Automate non déterministe Automate avec epsilon-transitions 2 Automate et langages réguliers Automate et expression régulière Méthode par élimination d états Équations de langages Expression régulière et Automate non déterministe 3 Automate à pile Description Automate non déterministe

Automate non déterministe Automate déterministe Un automate à pile est déterministe s il n existe pas d alternative de déplacement dans aucune situation. P = (Q, Σ, Γ, δ, q 0, Z 0, F) est déterministe, si et seulement si : δ(q, a, X) contient au plus un élément, pour tout état q Q, a Σ ou a = ɛ et X Γ. si δ(q, a, X) est non vide pour un élément a Σ, alors δ(q, ɛ, X) doit être vide.

Automate non déterministe L ww R = {ww R ; w (0 1) }

Automate non déterministe Simulation : chaîne 1111

Automate non déterministe Transition Une configuration d un AFP est un triplet (q, v, γ) : q est l état de la configuration. v est la chaîne d entrée restant à analyser. γ est le contenu de la pile. (q, aw, Xβ) (p, w, αβ) le symbole d entrée a est consumé. l automate passe de l état q à l état p. X au sommet de la pile est remplacé par α. Notation I si I I pour un ou plusieurs pas de l automate. K et K J alors I J

Automate non déterministe Acceptation P = (Q, Σ, Γ, δ, q 0, Z 0, F) Le langage accepté par P par état final est : L(P) = {w (q 0, w, Z 0 ) (q, ɛ, α)} P q est un état final Le buffer d entrée est vide α une suite quelconque de symboles. Le langage accepté par P par pile vide est : N(P) = {w (q 0, w, Z 0 ) (q, ɛ, ɛ)} P le buffer d entrée est vide q est un état quelconque

Automate non déterministe Equivalence Si L = N(P N ) pour P N = (Q, Σ, Γ, δ N, q 0, Z 0, F) alors il existe un automate à pile P F tel que : L = L(P F ). Si L = L(P F ) pour P F = (Q, Σ, Γ, δ F, q 0, Z 0, F) alors il existe un automate à pile P N tel que : L = N(P N ). Soit G, une grammaire hors contexte. il est possible de construire un automate à pile P tel que N(P) = L(G). Soit P = (Q, Σ, Γ, δ, q 0, Z 0, F) un AFP. Il existe une grammaire hors contexte G telle que L(G) = N(P).

Automate non déterministe Equivalence