Cours 9: Automates finis



Documents pareils
Probabilités sur un univers fini

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

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

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

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

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

Réalisabilité et extraction de programmes

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

Cours3. Applications continues et homéomorphismes. 1 Rappel sur les images réciproques

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

Image d un intervalle par une fonction continue

Chapitre 2 Le problème de l unicité des solutions

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Résolution de systèmes linéaires par des méthodes directes

Résolution d équations non linéaires

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.

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

1 Définition et premières propriétés des congruences

Logique. Plan du chapitre

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

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

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

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

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

DOCM Solutions officielles = n 2 10.

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

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

Rappels sur les suites - Algorithme

ÉPREUVE COMMUNE DE TIPE Partie D

3 Approximation de solutions d équations

Calcul différentiel sur R n Première partie

Limites finies en un point

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

Cours d Analyse. Fonctions de plusieurs variables

Chap 4. La fonction exponentielle Terminale S. Lemme : Si est une fonction dérivable sur R telle que : = et 0! = 1 alors ne s annule pas sur R.

Relation d ordre. Manipulation des relations d ordre. Lycée Pierre de Fermat 2012/2013 Feuille d exercices

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Continuité d une fonction de plusieurs variables

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Chapitre 2. Eléments pour comprendre un énoncé

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

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

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

Calcul fonctionnel holomorphe dans les algèbres de Banach

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

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

Continuité en un point

chapitre 4 Nombres de Catalan

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Théorie des Langages

Cours 1 : Qu est-ce que la programmation?

Exercices Corrigés Premières notions sur les espaces vectoriels

Chapitre 7. Récurrences

Le produit semi-direct

Extrait du poly de Stage de Grésillon 1, août 2010

Introduction à l étude des Corps Finis

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Algorithmes récursifs

LE PROBLEME DU PLUS COURT CHEMIN

LES DECIMALES DE π BERNARD EGGER

Développement décimal d un réel

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Cours de mathématiques

Simulation de variables aléatoires

Algèbre binaire et Circuits logiques ( )

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

Chapitre 2. Matrices

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

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Construction d un cercle tangent à deux cercles donnés.

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Probabilités sur un univers fini

Date : Tangram en carré page

Trépier avec règle, ressort à boudin, chronomètre, 5 masses de 50 g.

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

Objets Combinatoires élementaires

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

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

La fonction exponentielle

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Machines virtuelles Cours 1 : Introduction

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

Optimisation Discrète

Texte Agrégation limitée par diffusion interne

Cours d arithmétique Première partie

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

STI2D Logique binaire SIN. L' Algèbre de BOOLE

Algorithmique et Programmation, IMA

STAGE IREM 0- Premiers pas en Python

Théorie de la mesure. S. Nicolay

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

Solutions du chapitre 4

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

Pour l épreuve d algèbre, les calculatrices sont interdites.

Dérivées d ordres supérieurs. Application à l étude d extrema.

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Complément d information concernant la fiche de concordance

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Transcription:

Cours 9: Automates finis Olivier Bournez ournez@lix.polytechnique.fr LIX, Ecole Polytechnique INF421-a Bases de la programmation et de l algorithmique

Aujourd hui Rappels Déterminisation Automates et expressions régulières Langages non-réguliers Propriétés de clôture Le mot de la fin

3 Automate fini déterministe (DFA) q a a q q d a a q c a Un automate fini déterministe est un quintuplet (Q, Σ, δ, q 0, F ) où Σ est un alphaet. Q est un ensemle fini d états. δ : Q Σ Q est la fonction (partielle) de transition. q 0 est l état initial. F Q est un ensemle d états finaux. q e

Rappel. Langage accepté par un DFA: informellement 4 Un automate prend en entrée un mot w et l accepte ou le rejette: q a a q q d a q c On part à l état q 0 On lit les caractères du mot w un à un en suivant la transition correspondante (si il n y en a pas, on se loque = échec) Lorsque tous les caractères sont lus, on accepte si l on est sur un état final, on rejette sinon. a q e a Exemple: Le mot aa est accepté. Le mot aa est accepté. Le mot aaa n est pas accepté.

Langage accepté par un automate: Formellement On introduit la fonction ˆδ de transition étendue aux mots : A partir d un état q en lisant le mot vide ɛ on reste dans l état q, q a a q a q c q Q, ˆδ(q, ɛ) = q. A partir d un état q, en lisant le mot c = wa se terminant par a Σ, on a d aord lu w, puis effectué la transition correspondante à a q d ˆδ(q, wa) = δ(ˆδ(q, w), a), a q e a lorsque le memre droit existe. Le langage L(A) accepté par A est défini par L(A) = {m ˆδ(q 0, m) F }.

6 Automate fini non-déterministe (NFA) q a a q q d a a q c a Un automate fini non-déterministe est un quintuplet (Q, Σ, δ, q 0, F ) où Σ est un alphaet. Q est un ensemle fini d états. δ : Q Σ P(Q) est une fonction de Q Σ vers les parties Q. δ associe à tout état q Q, et symole c Σ un sous-ensemle δ(q, c) de Q. q 0 est l état initial. F Q est un ensemle d états finaux. q e

Langage accepté par un NFA: informellement Un automate prend en entrée un mot w et l accepte ou le rejette: q a a q q d a q e a q c a On part à l état q 0 On essaye de lire les caractères du mot w un à un (lorsqu il y a plusieurs possiilités, on en choisit une/ s il n y en a pas, on se loque = échec). S il existe une façon de lire tous les caractères et d arriver sur un état final, on accepte le mot. Sinon (il n y a pas de façon de lire tous les caractères et d arriver sur un état final), on rejette. Exemple: aaaa est accepté. a n est pas accepté.

Une façon de voir les exécutions Exemple: 0,1 sur w = 010111. q 1 0,1 0 q 1 q 2 Exécutions: 0 1 0 1 1 1 q 0 q 0 q 0 q 0 q 0 q 0 q 0 q 1 q 1 q 1 q 1 q 2 q 2 q 2 On accepte un mot si et seulement s il y a une exécution sur ce mot partant de l état initial qui termine en un état de F.

Formellement: langage accepté par un automate On introduit la fonction ˆδ de transition étendue aux mots : A partir d un état q en lisant le mot vide ɛ on reste dans l état q, q Q, ˆδ(q, ɛ) = {q} A partir d un état q, en lisant le mot m = wa se terminant par a Σ, on a d aord lu w, puis effectué les transitions correspondantes à a ˆδ(q, wa) = δ(p, a). p ˆδ(q,w) Le langage L(A) accepté A est défini par L(A) = {m ˆδ(q 0, m) F }

Exercice Construire un automate fini déterministe qui accepte l ensemle des mots sur l alphaet {0, 1} 1. commençant par un 1 2. et qui, interprétés en inaire, sont multiples de 5. Par exemple: 101, 1010, et 1111 sont dans le langage. 0, 100 et 111 ne le sont pas.

Solution I/II L astuce est de réaliser que lire un nouveau it multiplie le nomre n lu jusqu à maintenant par 2 si on lit un 0; par 2 et ajoute 1 si on lit un 1. On ne mémorise pas n = 5a +, mais seulement le reste {0, 1, 2, 3, 4} de la division de n par 5. On taule alors en fonction de, la nouvelle valeur de. L état q i signifie que le nomre n vu jusque là est congru à i modulo 5: 0 1 q 0 q 0 q 1 q 1 q 2 q 3 q 2 q 4 q 0 q 3 q 1 q 2 q 4 q 3 q 4

Solution II/II Cependant cet automate accepte des mots qui commencent par des 0. On ajoute un état s initial, et un état mort d. Si dans l état s, on voit un 1 en premier, on se comporte comme q 0, c est-à-dire on va en q 1. on voit un 0, on n acceptera jamais, on va en d, qu on ne quittera jamais. 0 1 s d q 1 q 0 q 0 q 1 q 1 q 2 q 3 q 2 q 4 q 0 q 3 q 1 q 2 q 4 q 3 q 4 d d d

Aujourd hui Rappels Déterminisation Automates et expressions régulières Langages non-réguliers Propriétés de clôture Le mot de la fin

Déterminisation Théorème: Tout NFA peut être simulé par un DFA.

Déterminisation Théorème: Tout NFA peut être simulé par un DFA. Preuve: Soit (Q, Σ, δ, q 0, F ) un NFA. Il reconnaît le même langage que le DFA (Q, Σ, δ, {q 0 }, F ) avec: Q = P(Q): Q est constitué de tous les sous-ensemles de Q. F est constitué de tous les sous-ensemles de Q avec au moins un élément commun avec F. Pour tout S Q, et pour tout a Σ, δ (S, a) = q S δ(q, a).

Déterminisation Théorème: Tout NFA peut être simulé par un DFA. Preuve: Soit (Q, Σ, δ, q 0, F ) un NFA. Il reconnaît le même langage que le DFA (Q, Σ, δ, {q 0 }, F ) avec: Q = P(Q): Q est constitué de tous les sous-ensemles de Q. F est constitué de tous les sous-ensemles de Q avec au moins un élément commun avec F. Pour tout S Q, et pour tout a Σ, δ (S, a) = q S δ(q, a). Pourquoi: il est fait exactement pour que ˆδ (q 0, w) = ˆδ({q 0 }, w) pour tout mot w.

Exemple 1 Un NFA: 0,1 Le DFA équivalent: q 0 0 q 1 1 q 2

Exemple 1 15 Un NFA: 0,1 q 0 0 q 1 1 q 2 Le DFA équivalent: 1 0 1 0,1 0 {q 0 } 0 {q 0, q 1 } 0 {q 0, q 2 } {q 1 } 0 {q 1, q 2 } 1 0 1 0,1 1 {q 2 } 1 {q 0, q 1, q 2 }

Exemple 1: suite Le DFA: 0,1 q 0 0 q 1 1 q 2 La partie atteignale du DFA équivalent: 0 1 1 0 {q 0 } {q 0, q 1 } {q 0, q 2 } 0 1

Exemple: un digicode 17 Réaliser un digicode (code secret 1794) par un NFA: 0-9 1 7 9 4 0 1 2 3 4 Le DFA otenu (circuit électronique correspondant):

Exemple: un digicode Réaliser un digicode (code secret 1794) par un NFA: 0-9 1 7 9 4 0 1 2 3 4 Le DFA otenu (circuit électronique correspondant): 1 0,2-9 0,2-6,8-9 {0} 1 {0, 1} 1 7 1 {0, 2} 1 9 {0, 3} 4 {0, 4} 0,2-8 0,2,3,5-9 0,2-9 Tous les autres sous-ensemles de {0, 1, 2, 3, 4} ne sont pas atteignales: ils ne sont pas représentés ici. 17

18 Encore une extension: automate fini non-déterministe avec ɛ-transitions (NFA ɛ) q a a q q d a q e ɛ a q c a Le principe: 1. on autorise toujours plusieurs transitions avec le même symole. (non-déterminisme) 2. mais aussi les transitions spontanées : certaines transitions peuvent être étiquetées par le mot vide ɛ. Elles peuvent être prises sans lire de lettre. Exemple: le mot aaaaa est accepté.

NFA ɛ: formalisations Formalisation de la notion d automate: Formalisation de la notion de mot reconnu:

NFA ɛ: formalisations Formalisation de la notion d automate:... δ : Q (Σ {ɛ}) P(Q)... Formalisation de la notion de mot reconnu:

NFA ɛ: formalisations Formalisation de la notion d automate:... δ : Q (Σ {ɛ}) P(Q)... Formalisation de la notion de mot reconnu:... ˆδ(q, wa) = p ˆδ(q,w) ɛ clôture(δ(p, a)). ɛ clôture(q) = tous les états joignales à partir de q par une suite de n 0 transitions étiquetées par ɛ...

NFA ɛ: formalisations Formalisation de la notion d automate:... δ : Q (Σ {ɛ}) P(Q)... Formalisation de la notion de mot reconnu:... ˆδ(q, wa) = p ˆδ(q,w) ɛ clôture(δ(p, a)). ɛ clôture(q) = tous les états joignales à partir de q par une suite de n 0 transitions étiquetées par ɛ... Tout DFA peut être vu comme un NFA, tout NFA peut être vu comme un NFA ɛ.

NFA ɛ: formalisations Formalisation de la notion d automate:... δ : Q (Σ {ɛ}) P(Q)... Formalisation de la notion de mot reconnu:... ˆδ(q, wa) = p ˆδ(q,w) ɛ clôture(δ(p, a)). ɛ clôture(q) = tous les états joignales à partir de q par une suite de n 0 transitions étiquetées par ɛ... Tout DFA peut être vu comme un NFA, tout NFA peut être vu comme un NFA ɛ. Théorème: Tout NFA ɛ peut être simulé par un DFA.

NFA ɛ: formalisations Formalisation de la notion d automate:... δ : Q (Σ {ɛ}) P(Q)... Formalisation de la notion de mot reconnu:... ˆδ(q, wa) = p ˆδ(q,w) ɛ clôture(δ(p, a)). ɛ clôture(q) = tous les états joignales à partir de q par une suite de n 0 transitions étiquetées par ɛ... Tout DFA peut être vu comme un NFA, tout NFA peut être vu comme un NFA ɛ. Théorème: Tout NFA ɛ peut être simulé par un DFA.... même principe...

Un intérêt: permettre de cominer directement des automates. Exemple: à partir d un automate qui reconnaît pim p q 0 q i 1 q m 2 q 3 et d un automate qui reconnaît poum p r 0 r o 1 r u 2 r m 3 r 4 construire un automate qui reconnaît pim poum à coup de copier coller: s ɛ ɛ p q 0 q i 1 q m 2 q 3 p r 0 r o 1 r u 2 r m 3 r 4

Aujourd hui Rappels Déterminisation Automates et expressions régulières Langages non-réguliers Propriétés de clôture Le mot de la fin

Liens avec les expressions régulières Théorème de Kleene: L(DFA) = L(NFA) = L(NFA ɛ) = Langages réguliers. Autrement dit: les assertions suivantes sont équivalentes. L est accepté par un DFA. L est accepté par un NFA. L est accepté par un NFA ɛ. L est régulier: L = [[p]] pour un motif p.

Des expressions régulières aux automates: motifs de ase Étant donné un motif p, on peut construire un automate qui reconnaît [[p]]. Pour le motif : q 0 q 1 Pour le motif ɛ: q ɛ 0 q 1 Pour le motif c, c Σ: q c 0 q 1

Des expressions régulières aux automates: autres motifs Inductivement, si les motifs p 1 et p 2 correspondent à des automates, Pour le motif p 1.p 2 : p ɛ 1 p 2 Pour le motif p 1 p 2 : ɛ ɛ p 1 p 2 ɛ ɛ Pour le motif p 1 : ɛ ɛ ɛ p 1 ɛ

Des automates aux expressions régulières: un peu d algère Les identités (L 1 L 2 )L = L 1.L L 2.L et L.(L 1 L 2 ) = L.L 1 L.L 2 incitent à aussi noter + la disjonction: (L 1 + L 2 )L = L 1 L + L 2 L L(L 1 + L 2 ) = LL 1 + LL 2 Les identités L = L = L et {ɛ}l = L{ɛ} = L incitent à aussi noter 0 pour, et 1 pour {ɛ}: L + 0 = L 0 + L = L 1.L = L L.1 = L

Des automates aux expressions régulières: un peu d algère Passer d un automate à un langage... a 1 a 2 3 a... revient à résoudre un système d équations. X 1 = ax 2 + X 3 X 2 = ax 1 + X 3 + 1 X 3 = ax 2 + 1 Cas général: X q est le langage constitué des mots w tel que ˆδ(q, w) F. X q = p K p,qx p + L q avec K p,q = {a Σ q δ(p, a)}, L q vaut 0 si q F, {1} sinon.

Des automates aux expressions régulières: résoudre des équations Si K ne contient pas le mot vide, l équation X = KX + L admet comme unique solution X = K L.

Des automates aux expressions régulières: résoudre des équations Si K ne contient pas le mot vide, l équation X = KX + L admet comme unique solution X = K L. Preuve: K L est ien solution, car K(K L) + L = (KK )L + L = (KK + 1)L = K L

Des automates aux expressions régulières: résoudre des équations On prouve par récurrence sur w que w K L implique w Y : Si w = 0, w L, car ɛ K. Donc w KY + L = Y. Si w = n + 1. Si w L, alors w KY + L = Y. Sinon, w = w w w, avec w K, w K, w L. Puisque w ɛ, w w n et par hypothèse de récurrence w w Y, et donc w = w w w KY KY + L = Y. Donc X Y. Si K ne contient pas le mot vide, l équation X = KX + L admet comme unique solution X = K L. Preuve: K L est ien solution, car K(K L) + L = (KK )L + L = (KK + 1)L = K L Soit Y une autre solution, prouvons que X = Y, pour X = K L.

Des automates aux expressions régulières: résoudre des équations Si K ne contient pas le mot vide, l équation X = KX + L admet comme unique solution X = K L. Et donc si K et L sont réguliers, X aussi.

Des automates aux expressions régulières: exemple a 1 a 2 3 a X 1 = ax 2 + X 3 X 2 = ax 1 + X 3 + 1 X 3 = ax 2 + 1

Des automates aux expressions régulières: exemple a 1 a 2 3 a X 1 = ax 2 + X 3 X 2 = ax 1 + X 3 + 1 X 3 = ax 2 + 1 Remplaçons X 3 par ax 2 + 1.

Des automates aux expressions régulières: exemple a 1 a 2 3 a X 1 = ax 2 + (ax 2 + 1) X 2 = ax 1 + (ax 2 + 1) + 1 X 3 = ax 2 + 1 X 1 = ax 2 + X 3 X 2 = ax 1 + X 3 + 1 X 3 = ax 2 + 1 Remplaçons X 3 par ax 2 + 1.

Des automates aux expressions régulières: exemple a 1 a 2 3 a X 1 = (a + a)x 2 + X 2 = ax 1 + ax 2 + ( + 1) X 3 = ax 2 + 1 X 1 = ax 2 + X 3 X 2 = ax 1 + X 3 + 1 X 3 = ax 2 + 1 Remplaçons X 3 par ax 2 + 1. Remplaçons X 1 par (a + a)x 2 +.

Des automates aux expressions régulières: exemple a 1 a 2 3 a X 1 = ax 2 + X 3 X 2 = ax 1 + X 3 + 1 X 3 = ax 2 + 1 X 2 = a((a + a)x 2 + ) + ax 2 + ( + 1) X 1 = (a + a)x 2 + X 3 = ax 2 + 1 Remplaçons X 3 par ax 2 + 1. Remplaçons X 1 par (a + a)x 2 +.

Des automates aux expressions régulières: exemple a 1 a 2 3 a X 1 = ax 2 + X 3 X 2 = ax 1 + X 3 + 1 X 3 = ax 2 + 1 X 2 = (aa + aa + a)x 2 + (a + + 1) X 1 = (a + a)x 2 + X 3 = ax 2 + 1 Remplaçons X 3 par ax 2 + 1. Remplaçons X 1 par (a + a)x 2 +. Résolvons l équation X 2 = (aa + aa + a)x 2 + (a + + 1).

Des automates aux expressions régulières: exemple a 1 a 2 3 a X 1 = ax 2 + X 3 X 2 = ax 1 + X 3 + 1 X 3 = ax 2 + 1 X 2 = (aa + aa + a) (a + + 1) X 1 = (a + a)x 2 + X 3 = ax 2 + 1 Remplaçons X 3 par ax 2 + 1. Remplaçons X 1 par (a + a)x 2 +. Résolvons l équation X 2 = (aa + aa + a)x 2 + (a + + 1). Reportons.

Des automates aux expressions régulières: exemple a 1 a 2 3 a X 1 = ax 2 + X 3 X 2 = ax 1 + X 3 + 1 X 3 = ax 2 + 1 X 2 = (aa + aa + a) (a + + 1) X 1 = (a + a)(aa + aa + a) (a + + 1) + X 3 = a(aa + aa + a) (a + + 1) + 1 Remplaçons X 3 par ax 2 + 1. Remplaçons X 1 par (a + a)x 2 +. Résolvons l équation X 2 = (aa + aa + a)x 2 + (a + + 1). Reportons. Le langage reconnu par l automate est donné par X 1, et donc vaut (a + a)(aa + aa + a) (a + + 1) +.

Aujourd hui Rappels Déterminisation Automates et expressions régulières Langages non-réguliers Propriétés de clôture Le mot de la fin

Le lemme de la pompe Pour tout langage régulier L, il existe un entier n tel que tout mot m de L de longueur m n se décompose en w = xyz avec y ɛ xy n et pour tout entier k, xy k z L.

Le lemme de la pompe Pour tout langage régulier L, il existe un entier n tel que tout mot m de L de longueur m n se décompose en w = xyz avec y ɛ xy n et pour tout entier k, xy k z L. Autrement dit, si m est dans L, on peut trouver un sous mot qui peut être répété un nomre aritraire de fois, sans changer l appartenance à L.

Pourquoi? I/II Soit L un langage régulier, et A un automate fini déterministe qui le reconnaît. Soit n le nomre d états de A. Soit m un mot du langage L avec m n. Considérons q i (m) l état de l automate après avoir lu les i premières lettres de m. Puisque m n, nécessairement on a du repasser au moins deux fois par le même état q (principe des tiroirs et des chaussettes/lemme des (trous de) pigeons).

Pourquoi? II/II Soient i < j tels que q i (m) = q j (m) = q. Soit x constitué des i premiers caractères de m: ˆδ(q 0, x) = q. Soit y constitué des j i caractères suivants de m: ˆδ(q 0, xy) = ˆδ(q, y) = q. Soit z constitué des caractères suivants de m: ˆδ(q 0, xyz) = ˆδ(q, z) F. Puisque ˆδ(q, y) = q, ˆδ(q, y k ) = q. On a donc ˆδ(q 0, xy k z) = ˆδ(q, y k z) = ˆδ(q, z) F.

Application Le langage des mots sur Σ = {a, } qui contiennent autant de a que de n est pas régulier.

Application Le langage des mots sur Σ = {a, } qui contiennent autant de a que de n est pas régulier. En effet

Application 33 Le langage des mots sur Σ = {a, } qui contiennent autant de a que de n est pas régulier. En effet Soit n l entier donné par le lemme.

Application 33 Le langage des mots sur Σ = {a, } qui contiennent autant de a que de n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons le mot w = a n n du langage.

Application 33 Le langage des mots sur Σ = {a, } qui contiennent autant de a que de n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons le mot w = a n n du langage. Supposons w = xyz, avec y ɛ et xy n.

Application 33 Le langage des mots sur Σ = {a, } qui contiennent autant de a que de n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons le mot w = a n n du langage. Supposons w = xyz, avec y ɛ et xy n. Puisque xy n, x et y ne sont constitués que de a.

Application 33 Le langage des mots sur Σ = {a, } qui contiennent autant de a que de n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons le mot w = a n n du langage. Supposons w = xyz, avec y ɛ et xy n. Puisque xy n, x et y ne sont constitués que de a. Il existe un entier k tel que xy k z n est pas dans le langage.

Application 33 Le langage des mots sur Σ = {a, } qui contiennent autant de a que de n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons le mot w = a n n du langage. Supposons w = xyz, avec y ɛ et xy n. Puisque xy n, x et y ne sont constitués que de a. Il existe un entier k tel que xy k z n est pas dans le langage. Contradiction.

Autre application 34 Le langage {a n n n 0} n est pas régulier.

Autre application 34 Le langage {a n n n 0} n est pas régulier. En effet La même preuve (mot à mot) fonctionne.

Autre application Le langage {a n n est un entier premier} n est pas régulier.

Autre application Le langage {a n n est un entier premier} n est pas régulier. En effet

Autre application Le langage {a n n est un entier premier} n est pas régulier. En effet Soit n l entier donné par le lemme.

Autre application Le langage {a n n est un entier premier} n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons p un nomre premier avec p n + 2.

Autre application Le langage {a n n est un entier premier} n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons p un nomre premier avec p n + 2. Le mot w = a p est dans le langage.

Autre application Le langage {a n n est un entier premier} n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons p un nomre premier avec p n + 2. Le mot w = a p est dans le langage. Supposons w = xyz, avec y ɛ et xy n.

Autre application Le langage {a n n est un entier premier} n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons p un nomre premier avec p n + 2. Le mot w = a p est dans le langage. Supposons w = xyz, avec y ɛ et xy n. Soit m = y.

Autre application Le langage {a n n est un entier premier} n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons p un nomre premier avec p n + 2. Le mot w = a p est dans le langage. Supposons w = xyz, avec y ɛ et xy n. Soit m = y. On doit avoir xy p m z dans le langage, de longueur p m + (p m) m = (m + 1)(p m).

Autre application 35 Le langage {a n n est un entier premier} n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons p un nomre premier avec p n + 2. Le mot w = a p est dans le langage. Supposons w = xyz, avec y ɛ et xy n. Soit m = y. On doit avoir xy p m z dans le langage, de longueur p m + (p m) m = (m + 1)(p m). Ce nomre n est pas premier, sauf si m + 1 = 1 ou p m = 1.

Autre application 35 Le langage {a n n est un entier premier} n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons p un nomre premier avec p n + 2. Le mot w = a p est dans le langage. Supposons w = xyz, avec y ɛ et xy n. Soit m = y. On doit avoir xy p m z dans le langage, de longueur p m + (p m) m = (m + 1)(p m). Ce nomre n est pas premier, sauf si m + 1 = 1 ou p m = 1. Or m + 1 > 1 puisque m 0, et p m > 1 puique p n + 2.

Autre application 35 Le langage {a n n est un entier premier} n est pas régulier. En effet Soit n l entier donné par le lemme. Considérons p un nomre premier avec p n + 2. Le mot w = a p est dans le langage. Supposons w = xyz, avec y ɛ et xy n. Soit m = y. On doit avoir xy p m z dans le langage, de longueur p m + (p m) m = (m + 1)(p m). Ce nomre n est pas premier, sauf si m + 1 = 1 ou p m = 1. Or m + 1 > 1 puisque m 0, et p m > 1 puique p n + 2. Contradiction.

Autre application L ensemle des chaînes sur Σ = {(, )} ien parenthésées n est pas régulier. etc...

Aujourd hui Rappels Déterminisation Automates et expressions régulières Langages non-réguliers Propriétés de clôture Le mot de la fin

Propriétés de clôture 1. L union de deux langages réguliers est un langage régulier. 2. L étoile d un langage régulier est un langage régulier. 3. La concaténation de deux langages réguliers est un langage régulier. 4. Le complément d un langage régulier est un langage régulier. 5. L intersection de deux deux langages réguliers est un langage régulier. 6. La différence de deux langages réguliers est un langage régulier.

39 Preuve On se donne deux langages réguliers L 1 et L 2. L 1 correspond à un motif p 1, L 2 à un motif p 2. Alors: L 1 L 2 correspond au motif p 1 p 2.

39 Preuve On se donne deux langages réguliers L 1 et L 2. L 1 correspond à un motif p 1, L 2 à un motif p 2. Alors: L 1 L 2 correspond au motif p 1 p 2. L 1 au motif p 1

Preuve On se donne deux langages réguliers L 1 et L 2. L 1 correspond à un motif p 1, L 2 à un motif p 2. Alors: L 1 L 2 correspond au motif p 1 p 2. L 1 au motif p 1 L 1.L 2 au motif p 1.p 2

Preuve On se donne deux langages réguliers L 1 et L 2. L 1 correspond à un motif p 1, L 2 à un motif p 2. Alors: L 1 L 2 correspond au motif p 1 p 2. L 1 au motif p 1 L 1.L 2 au motif p 1.p 2 L 1 correspond à un automate fini déterministe (Q, Σ, δ, q 0, F ). Son complémentaire L c 1 à l automate fini déterministe (Q, Σ, δ, q 0, Q F ).

Preuve On se donne deux langages réguliers L 1 et L 2. L 1 correspond à un motif p 1, L 2 à un motif p 2. Alors: L 1 L 2 correspond au motif p 1 p 2. L 1 au motif p 1 L 1.L 2 au motif p 1.p 2 L 1 correspond à un automate fini déterministe (Q, Σ, δ, q 0, F ). Son complémentaire L c 1 à l automate fini déterministe (Q, Σ, δ, q 0, Q F ). L 1 L 2 s otient par les lois de Morgan (L 1 L 2 ) c = L c 1 L c 2

Preuve On se donne deux langages réguliers L 1 et L 2. L 1 correspond à un motif p 1, L 2 à un motif p 2. Alors: L 1 L 2 correspond au motif p 1 p 2. L 1 au motif p 1 L 1.L 2 au motif p 1.p 2 L 1 correspond à un automate fini déterministe (Q, Σ, δ, q 0, F ). Son complémentaire L c 1 à l automate fini déterministe (Q, Σ, δ, q 0, Q F ). L 1 L 2 s otient par les lois de Morgan L 1 L 2 s otient par L 1 L c 2. (L 1 L 2 ) c = L c 1 L c 2

Aujourd hui Rappels Déterminisation Automates et expressions régulières Langages non-réguliers Propriétés de clôture Le mot de la fin

Les points importants du cours ( INF 431) Programmer plus et mieux. Des structures de données dynamiques. Des algorithmes sur ces structures. Quelques considérations de complexité. Automates et langages.

La pale Tous les documents (poly, copie des transparents, notes) sont autorisés. Quand on vous demande d écrire du code: rarement plus de 15 lignes. Le poly est un sur-ensemle de ce que nous avons vu en amphis. Réviser aussi les TPs.

c est IMPORTANT. Le sondage