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