All Tla Esprit Cours de Soir

download All Tla Esprit Cours de Soir

of 53

Transcript of All Tla Esprit Cours de Soir

  • 8/18/2019 All Tla Esprit Cours de Soir

    1/53

      1

    Support de Cours Théorie des Langages et des Automates

    Préparé par Moez Hammami

    Chapitre I Alphabet et langages .............................................................................................. 3

    I.1 Définition: Alphabet ......................................................................................................... 3

    I.2 Définition: Mot .................................................................................................................3

    I.3 Opérations sur les mots ..................................................................................................... 3

    I.4 Définition: Langage. ......................................................................................................... 4

    Chapitre II Représentation finie des langages......................................................................... 6

    II.1 Définition: Langages formels ........................................................................................6

    II.2 Expressions régulières .................................................................................................... 6

    II.2.1 Exemples Introductifs .............................................................................................. 6

    II.2.2 Définition d'une expression régulière...................................................................... 7

    II.3 Langages réguliers ........................................................................................................... 8

    II.3.1 Théorème (Langages réguliers) ............................................................................. 8

    II.3.2 Propriétés des langages réguliers........................................................................... 8

    II.4 Exercices.......................................................................................................................... 9

    Chapitre III Automates à états finis...................................................................................... 10III.1 Introduction ................................................................................................................. 10

    III.2 Définition d'un automate à l'état fini déterministe ...................................................... 10

    III.3 Fonctionnement d'un automate à état fini .................................................................... 12

    III.3.1 Définition d'une configuration .............................................................................. 12

    III.3.2 Définition d'un langage connu par un automate.................................................... 13

    III.4 Représentation graphique d'un automate à états fini .................................................... 14

    III.5 Exemples de DFA ........................................................................................................ 14

    III.6 Automate à état fini complet ....................................................................................... 16

    III.7 Automates finis non déterministes (NFA) ................................................................... 17

    III.8 Algorithmes de conversion........................................................................................... 18

    III.8.1 Algorithme de déterminisation ou transformation NFADFA ........................... 18

    III.8.2 Algorithme de transformation d'une expression régulière en un NFA.................. 20

    III.8.3 Automate déterministe minimal ............................................................................ 23

    III.9 Simulation d'un Automate à états finis non déterministe ............................................. 27

    III.10 Lemme de pompage ................................................................................................... 28Chapitre IV Les langages à contexte libre (Context Free Languages).................................. 30

  • 8/18/2019 All Tla Esprit Cours de Soir

    2/53

      2

    IV.1 Introduction par un exemple ........................................................................................ 30

    IV.2 Définition d'une Grammaire hors contexte .................................................................. 31

    IV.3 Définition d'une Dérivation.......................................................................................... 31

    IV.3.1 Dérivation gauche ................................................................................................. 31

    IV.3.2 Dérivation droite ................................................................................................... 32

    IV.4 Arbre syntaxique (Parse Tree) ..................................................................................... 33

    IV.5 Grammaires ambiguës.................................................................................................. 34

    IV.6 Exemples de grammaires ............................................................................................. 35

    IV.7 Classification de chomsky ........................................................................................... 37

    IV.7.1 Grammaires contextuelles « context-sensitive » ou de type 1(CG)...................... 37

    IV. 7.2 Grammaires non contextuelles « context-free » ou de type 2 (CFG) ................. 38

    IV. 7.3 Grammaires Régulières ou de type3 :RG ........................................................... 38IV.8 Classification des langages formels ............................................................................. 39

    IV.9 Transformation d'une grammaire régulière à droites en NFA .................................... 39

    IV.10 Transformation d'un DFA en grammaire régulière.................................................... 40

    Chapitre V Automates à pile (Push Down Automaton, PDA)................................................. 42

    V.1 Introduction ................................................................................................................... 42

    V.2 Définition d'un automate à pile ..................................................................................... 43

    V.3 Définition d'une transition............................................................................................. 44

    V.4 Langages reconnus par un PDA.................................................................................... 44

    V.5 Définition: langage reconnu par un automate à pile vide.............................................. 45

    V.6 Déterminisme ............................................................................................................... 47

    V.7 Transformation d'une grammaire hors contexte en PDA.............................................. 49

    V.8 Propriétés de clôture ...................................................................................................... 50

    V.11 Clôture des langages hors contexte (intersection et complémentation) ...................... 52

    Bibliographie ............................................................................................................................ 52

  • 8/18/2019 All Tla Esprit Cours de Soir

    3/53

      3

    Chapitre I Alphabet et langages

    I.1 Définition: Alphabet

    L'alphabet est un ensemble fini de symboles, noté en général par ∑ 

    Exemple 1: l'alphabet latin ∑={a,b,c………,z}

    Exemple 2: l'alphabet binaire ∑={0,1}

    Exemple 3: ∑={rouge, noir, 0,1,A}

    I.2 Définition: Mot

    Un mot ou une chaîne est une séquence de symboles pris de l'alphabet.

    Exemple 1: ω

    1= voiture,ω

    2= voyage  sont deux mots définis sur {a,b,c………,z}Exemple 2: ω1=00101 ,ω2=101101 sont deux mots définis sur {0,1}

    Exemple 3: ω1=rouge0noir  ,ω2=10Arouge sont deux mots définis sur {rouge ,noir, 0,1,A}

    La taille d'un mot notée |ω| est le nombre de symboles constituant le mot

    Exemple 1: |voiture|=7 en considérant l'alphabet {a,b,c………,z}

    Exemple 2: |00101|=5 en considérant l'alphabet {0,1}

    Exemple 3: |rouge0noir|=3 en considérant l'alphabet {rouge ,noir, 0,1,A}

    la chaîne vide notée ε  est une chaîne de taille nulle : | ε | = 0.

    Sous chaîne: x est une sous chaîne de ω ssi ∃ y, z (chaînes sur l'alphabet) tq ω = yxz.

    Préfixe: x est un préfixe de ω ssi ∃ y tq ω=xy

    Suffixe: x est un suffixe de ω ssi ∃ y tq ω=yx

    Exemple  x=voi est un préfixe de voiture car ∃ y= ture tq ω=voiture

    x=ture est un suffixe de voiture car ∃ y=voi tq ω=voiture

    Facteur: soient u, v, ω, t des mots définis sur Σ tq ω=uvtsi u=ε alors v est dit facteur gauche de ω (ou préfixe)

    si t=ε alors v est dit facteur droit (ou suffixe)

    si u=t=ε alors ω=εvε  ω est donc un facteur de lui même

    I.3 Opérations sur les mots

    Concaténation: soient u, v deux mots définis sur Σ, tq u=xx2..xn , v= yy2..yn.

  • 8/18/2019 All Tla Esprit Cours de Soir

    4/53

      4

    la chaîne ω concaténation de u et v notée ω=u.v = uv = xx2..xnyy2..yn.

    Remarque: la concaténation est non commutative

    Propriétés: |ω|=|uv|=|u|+|v|

    la concaténation est associative :xyz=(xy)z=x(yz).

    ε est l'élément neutre pour la concaténation.

    Occurrence d'un symbole dans un mot:  c'est le nombre d'apparition du symbole dans lemot.

    Exemple:

    |abbba|b=3

    |abbab|b=3

    Image (reverse): ω=aabab ωR

    =babaa

    Exercice

    Montrer par récurrence que (ωu)R=uR.ωR  ∀k tq |u|=k

    Preuve

     Base:  k=0, (ωx)R=(ωε)R=ωR= εωR= xR.ωR 

     Hypothèse: on suppose que (ωx)

    R

    =x

    R

    .ωR

      ∀ 0 Σ*={ε, a, b, ab, ba, aa, bb, aaa, bbb, abb, ...}

    Définition: un langage est un ensemble de mots appartenant à Σ* et qui vérifient unepropriété donnée => L={ω ∈ Σ*;ω a la propriété P}

    Exemple: Σ={a,b}

    L={ω ∈ Σ*, |ω|a=|ω|b}

  • 8/18/2019 All Tla Esprit Cours de Soir

    5/53

      5

    L={ ε, ab, ba, aabb, baba, ………..}

    l'ensemble des palindromes est défini par

    L2={ ω ∈ Σ* , ω=ωR }

    L2={ε, aba , bab, a,b,……………………}

    Propriétés:

    ∑* est infinie est dénombrable

    L=L1 ∪ L2={ω ∈ Σ* tq ω ∈ L1 ou ω ∈L2}

    L=L1 ∩ L2={ω ∈ Σ* tq ω ∈ L1 et ω ∈ L2 }

    Concaténation: L=L1·L2=L1L2={ω ∈ Σ* tq ∃ x, y tq ω = xy avec x ∈ L1 et y ∈ L2}

    Fermeture de Kleene :

    L*={ω ∈ Σ* :ω=ω1ω2……………..ωк  pour k≥0 et ω1,ω2,…………,ωк ∈ L}C'est à dire que si L est un langage (ensemble de mots) alors L* désigne l'ensemble de toutesles chaînes de longueur finies formées par concaténation de mots de L, où chaque mot peutêtre utilisé de 0 à n fois, et où la chaîne vide est aussi incluse.

    Exemple

    L={aa,b}

    L*={ε, b, aa,bb,aab,baa,bbb,aaaa,aabb,baab,bbaa,bbbb,aaaab,aabaa,aabbb,baaaa,bbaab,bbbaa,bbbbb,...} Remarque:∅*= {ε} ≠ ∅ 

    ∅* est la répétition de 0 ou plusieurs fois de ∅ 

    Exercice:

    soit Σ  = {0,1}

    L = { ω ∈ Σ *: ω contient #0 ≠ #1 }

    Montrez que L* = Σ *

    L* ⊆ Σ * par définition

    on a Σ ⊆ L⇒  Σ* ⊆ L*

    1 et 2 ⇒ L* = Σ *

  • 8/18/2019 All Tla Esprit Cours de Soir

    6/53

      6

    Chapitre II Représentation finie des langages

    II.1 Définition: Langages formels

    C'est tout sous ensemble de ∑* dont les mots peuvent être définis de deux façonsconformément à:

    Définition par propriété:  il s'agit d'une modélisation formelle d'une description naturelled'un langage.

    Exemple L1 = {ensemble des mots définis sur {a,b} de longueur paire}

    L1 = {ω ∈ {a,b}* / |ω| = 2n avec n ≥ 0}

    Définition récursive : Définition dans laquelle, un langage est défini sur lui même.

    Exemple: L2 = {ω ∈∑* / ω = a ou ω = aω1 ; ω1∈L2} = {a,aa,..,aaaa,...}

    L3= {ω ∈∑* / ω =ε  ou ω = ω1ω2 avec |ω1|= 2 et ω∈L3}

    L3 ≡ L1

    II.2 Expressions régulières

    II.2.1 Exemples Introductifs

    Considérons le langage suivant:L4 = { ε, x, xx, xxx, xxxx,...}

    Jusque là, on présente cet ensemble comme étant la fermeture d'un autre ensemble plus petit,soit S = {x}

    alors L4 = S*

    On aurait pu écrire d'une façon plus courte

    L4 = {x}*

    On représente maintenant l'étoile de fermeture de Kleene appliquée non pas à l'ensemble maisdirectement à la lettre x.

    La simple expression x* va être utilisée pour indiquer une séquence quelconque qui peut êtrevide de x. x* = ε ou x ou xx ou xxx...

    Donc on peut dire que L4 = langage (x*) puisque x* est n'importe quelle chaîne de x alors L4est l'ensemble de toutes les chaînes possibles de x (incluant ε)

    Soit maintenant le langage L = { a, ab, abb, abbb, abbbb...}, on peut résumer ce langage enfrançais par " tous les mots de la forme : un a suivi par un nombre quelconque de b".

    On peut noter L = langage (ab*). La signification est claire: c'est un langage dans lequel lesmots sont la concaténation d'un a initial avec un nombre quelconque de b (b*). On peut

    appliquer l'étoile de Kleene à toute la chaîne ab si on veut, comme suit :(ab)* = ε  ou ab ou abab ou ababab...

  • 8/18/2019 All Tla Esprit Cours de Soir

    7/53

      7

    Remarque: Les parenthèses ne sont pas des lettres de l'alphabet de ce langage, alors ellespeuvent être utilisées pour indiquer la factorisation sans accidentellement changer les mots.

    Le langage défini par l'expression ab*a est l'ensemble de toutes les chaînes de a et de b qui

    ont au moins 2 lettres, qui commencent et finissent par a et qui n'ont que des b ou rien àl'intérieur.

    Langage (ab*a) = {aa, aba, abba, abbba, abbbba,...}

    Remarque: il serait faux de dire que notre langage est l'ensemble de tous les mots quicommencent et qui finissent par a et qui n'ont que des b (ou rien) entre eux, car cettedescription peut être aussi appliquée au mot a. Notre symbolisme élimine cette ambiguïté.

    Exemple:  Le langage de l'expression a*b* contient toutes les chaînes de a et de b danslesquelles tous les a's viennent avant tous les b's.

    Language (a*b*) = {ε, a, b, aa, ab, bb, aaa, aab, abb, bbb,...}

    Remarque: Il est à noter que ba et aba n'appartiennent pas à ce langage et on n'a pas besoindu même nombre de a et de b. On observe aussi que a*b* ≠ (ab)*

    Puisque le langage à droite contient abab tandisque celui à gauche ne le contient pas.

    Exemple: soit le langage T défini sur l'alphabet ∑ = {a,b,c}

    T = {a, c, ab, cb, abb, cbb, abbb, cbbb, abbbb, cbbbb...}

    tous les mots de T commencent avec un a ou un c ensuite, ils sont suivis par un nombrequelconque eventuellement nulle de b. symboliquement on peut écrire :

    T = langage ((a∪c) b*)

    = langage (soit a ou c ensuite quelque b)Exemple: soit L l'ensemble qui contient touts les chaînes de a et de b de longueur 3exactement. 

    L = {aaa, aab, aba, abb, baa, bab, bba, bbb}

    L = langage ((a ∪ b) (a ∪ b) (a ∪ b)) alors si on veut représenter L', le langage qui contienttoutes les chaînes de a et de b de n'importe quel longueur L = (a ∪ b)*

    II.2.2 Définition d'une expression régulière

    Une expression régulière sur un alphabet ∑  est une chaîne de caractères sur l'alphabet ∑ ∪{(,),∪,*, ∅, ε} tel que:

    toute lettre de ∑ ∪{∅, ε} est une expression régulière

    si r1 et r2 sont deux expressions régulières alors

    (r1) est une expression régulière

    r1r2  est une expression régulière

    r1∪r2  est une expression régulière

    r1* est une expression régulière

    rien d'autre n'est expression régulière

  • 8/18/2019 All Tla Esprit Cours de Soir

    8/53

      8

    Exemple:  soit ∑={a,b}

    L = {ω∈∑*, ω contient la sous chaîne aa}

    ω = aa

    aaa

    ...........................................aa......................................

    R = (a ∪ b)* aa (a ∪ b)*

    Exemple:  soit ∑={a,b}

    L = {ω∈∑*, ω ne contient pas 3b consécutifs}

    R = (a ∪ ba ∪ bba)* (ε ∪ b ∪ bb)

    II.3 Langages réguliers

    II.3.1 Théorème (Langages réguliers) 

    Un langage L est dit régulier si et seulement s'il existe une expression régulière qui le génère.

    II.3.2 Propriétés des langages réguliers

    Etant donné deux langages réguliers L1 et L2 

    P1) L1 ∪ L2: définit un langage régulier

    P2) L1.L2 est un langage régulier

    P3) L1* est un langage régulier

    P4) _

    1 L   est un langage régulier

    P5) L1 ∩ L2 =_____

    __

    21 L L   est un langage régulier

    Définition Deux expressions régulières α et β sont dites équivalentes ssi L(α) = L(β)

    Exemple: a ∪∅  = a

    a.∅  = ∅ 

    ∅* = {ε}

    Exemple: Le langage de tous les mots qui ont au moins 2 a's peut être décrit par l'expression

    (a∪b)*a(a∪b)*a(a∪b)*

    (quelque a et b au début) (le premier a) (quelque a et b au milieu) (le deuxième a ) (quelque a et b à la fin)

    une autre expression peut dénoter le même langageb*ab*a(a ∪ b)*

    n'importe quelle chaîne dea et de b

    n'importe quelle chaîne dea et de b

  • 8/18/2019 All Tla Esprit Cours de Soir

    9/53

      9

    On passe par un nombre arbitraire (éventuellement nulle de b) jusqu'à ce qu'on trouve lepremier a, ensuite encore des b's, ensuite le deuxième a, ensuite on termine par une suitequelconque de a et b.

    On peut noter: (a∪b)*a(a∪b)*a(a∪b)* = b*ab*a(a ∪ b)*

    II.4 Exercices

    Exercice 1: Donner les expressions régulières qui génèrent les langages suivants:

    L1 = {ωωωω∈∈∈∈{a,b}*, tel que ωωωω contient exactement bbb}

    L2 = {ωωωω∈∈∈∈{a,b}*, tel que ωωωω contient la sous chaîne bbb}

    L3 = {ωωωω∈∈∈∈{a,b}*, tel que ωωωω contient seulement 3b, le reste c'est des a's}

    L4 = {ωωωω∈∈∈∈{a,b}*, tel que ωωωω contient un nombre de a divisible par 3}

    L5 = {ωωωω∈∈∈∈{a,b}*, tel que ωωωω contient un nombre paire de a}

    L6= {{ωωωω∈∈∈∈{a,b}*, tel que ωωωω ne contient pas 3b Consécultifs}

    L6 = {ω∈{a,b}*, tel que ω contient un nombre impaire de b}

    L7 = {ω∈{a,b}*, tel que ω  contient la sous chaîne aaa ou la sous chaîne bbb mais pas lesdeux en même temps}

    avec:

  • 8/18/2019 All Tla Esprit Cours de Soir

    10/53

      10

    Chapitre III Automates à états finis

    III.1 IntroductionUn reconnaisseur pour un programme est un programme qui prend en entrée une chaîne x etrépond OUI si x est une chaîne du programme et NON dans le cas contraire.On compile uneexpression régulière en un reconnaisseur en construisant un diagramme de transitionsgénéralisé appelé automate fini. Un automate fini peut être déterministe ou non-déterministe(c.à.d. qu'on peut trouver plus d'une transition sortant d'un état sur le même symbole d'entrée).

    III.2 Définition d'un automate à l'état fini déterministe

    Un automate à état fini déterministe (DFA) est un modèle mathématique M(k,Σ,δ,s,F):

    tel que:k: l'ensemble des états de l'automate

    Σ: l'alphabet des symboles d'entrée

    δ: une fonction de transition qui fait correspondre à des couples état-symbole des états.

    s: est un état qui est distingué comme un état de départ ou état initial.

    F: un ensemble d'états distingués comme états d'acceptation, ou états finaux.

    Remarque:

    δ: fonction : K x Σ → K ; (q,a) =p: Transition de q à p en lisant (reconnaissant ) le symbole a.

    Exemple 1: 

    soient Σ={b, θ}

    K={q1, q2, q3, q4}

    F={q3}

    S={q1}

    δ : (b) (θ)

    q 1  q2  q4

    q 2  q3  q2 

    q 3  q4  q4 

    q 4  q4  q4 

    Cet automate peut être représenté comme suit:

    q1 q2

    q3q4

    b

    b

    θ

    b,θb,θ

    θ

    q1 q2

    q3q4

    b

    b

    θ

    b,θb,θ

    θ

  • 8/18/2019 All Tla Esprit Cours de Soir

    11/53

      11

    Remarque:

    Un automate à états fini peut être considéré comme un mécanisme de calcul sans mémoire.

    Mot connu par un automate:

    Formellement, on définit la fonction δ*(e, u) qui nous dit dans quel état on arrive en partant

    de l'état e et on analysant la chaîne u.-si u est la chaîne vide δ*(e, ε)=e

    -si u commence par le symbole t suivi de la sous-chaîne ω:

    δ*=(e, tω)=δ*(δ(e,t),ω)

    une chaîne u est acceptée par l'automate M dont l'état initial est q 0 si δ*(q0, u) appartient auxétat finaux de M.

    Exemple 2:

    Soit l'automate M de l'exemple 1

    Est ce que ε est reconnu par l'automate?

    δ*(q1, ε)=q1 ∉ F donc ε n'est pas reconnu par M

    Est ce que ω1 =bθθb est reconnue par l'automate ?

    δ*=(q1,b θ θ b)=δ*(δ(q1, b),θθb)

    = δ*( q2,θθb)

    = δ*(δ(q2,θ),θb)= δ*(q2,θb)

    = δ*(δ(q2,θ), b)

    = δ*(q2, b)

    = δ*(δ(q2,b), ε)

    = δ*(q3,ε)

    =q3 ∈ F donc ωı= bθθb est reconnu par M.

    Est ce que ω2= θbθb est reconnu par l'automate?

    δ*(q1, θbθb)=δ*(δ(q1, θ), bθb)

    = δ*( q4, bθb)

    = δ*(δ(q4,b),θb)

    = δ*(q4,θb)

    = δ*(δ(q4,θ), b)

    = δ*(q4, b)

    =δ* (δ(q4,b),ε)

    =δ*(q4,ε)=q4  ∉ F donc ω2=θbθb n'est pas reconnu par M

    état initial

  • 8/18/2019 All Tla Esprit Cours de Soir

    12/53

      12

    III.3 Fonctionnement d'un automate à état fini

    III.3.1 Définition d'une configuration

    Une configuration est un triplet(x,q,v) avec x, v ∈ Σ* et q ∈ K où:

    x: désigne la sous-chaîne du mot déjà traitée

    q: est l'état courant

    v: désigne la sous chaîne du mot restante à traiter

    Remarque: le mot est xv

    Exemple:

    δ*=(q1,bθb)=δ*(q2,θb) car δ(q1,b)=q2

    (b, q2, θ b )

    Remarque:  généralement on travaille avec seulement l'état courant, et le restant à lire:

    γі=(q, v)

    Configuration successeur:

    Soit γі(x, qі, v)

    γј(x', q ј , v') est une configuration successeur de γi

    ssi

    - pour v=ε , γ j=γi on dit que γi n'a pas de configuration successeur

    -pour v=av"

    x'=xa

    q j=δ(qi,a)v'=v"

    configuration initiale:

    notée γ0=(ε, q0,ω) avec q0: état initial;

    ω: le mot à reconnaître

    Configuration initiale d'acceptation:

    γf=(ω, qF, ε) avec qF  ∈ F; ω est le mot à reconnaître .

    Configuration finale de non acceptation: γf = (ω,qF,ε) avec qF ∉  F

    La configuration

    déjà lu état courant restant à lire

    état courant restant à lire

  • 8/18/2019 All Tla Esprit Cours de Soir

    13/53

      13

    Configuration successeur après n transitions

    Notation:

    γ  n

     M   γ'

    γ' est la configuration successeur de γ après n étapes de transition

    ssi

    -γ'=γ pour n=0

    -∃ γ" / γ    γ" et γ'' n-1  γ' pour n≠0

    Notation:

    configuration successive d'un nombrequelconque d'états de transition

    γ  *

     M 

      γ' ssi ∃ k tq γ  k 

     M 

      γ'

    III.3.2 Définition d'un langage connu par un automate

    Notation L(M)

    Soit M: Automate a état fini { Σ, K, q0, δ, F}

    Le langage connu(accepté) par M est noté L(M) est l'ensemble

    L(A)={ω ∈ Σ*/(ε, q0, ω) *

     M 

      (ω, qF, ε ) avec qF ∈ F}

    Exemple:

    M=( K, Σ, δ, s, F) avec Σ={a, b}

    K={q0, q1}

    s=q0;F={q0}

    δ  a b

    q0  q0  q1 

    q1 q1 q0 

    (q0,ababa)  (q0,baba)

     (q1,aba)

     (q1,ba)

     (q0,a)

     (q0,ε)

  • 8/18/2019 All Tla Esprit Cours de Soir

    14/53

      14

    q0 est un état d'acceptation ⇒ ω = ababa est accepté par M.

    (q0, aba)  (q0,ba)  (q1, a)  (q1, ε)

    q1 ∉ F⇒ ω1 = aba n'est pas accepté.

    III.4 Représentation graphique d'un automate à états fini

    Remarque 

    un automate à états fini déterministe (DFA) est un cas particulier d'automate à états fini danslequel:

    Aucun état n'a de ε-transition, c'est à dire de transition sur l'entrée ε  etPour chaque état q et chaque symbole d'entrée a, il y'a au plus un arc étiqueté a qui quitte q

    III.5 Exemples de DFA

    L(M) = { ω ∈ {a,b}*: ω contient un nombre pair de b} (a*ba*ba*)*

    L = Σ* = (a∪b)* = (a*∪b*)*

    q état

    a

    transition sur le symbole a

    q0  état initial

    état final ou d'acceptation

    q0  q1 

    b

    b

    aa

    remarque: q0  est à la fois état initial etétat final 

    q0 

    b

    a

    qF 

  • 8/18/2019 All Tla Esprit Cours de Soir

    15/53

      15

    L = { ω∈{a,b}* / ω ne contient pas la sous chaîne bbb}

    R = (a∪ba∪bba)* (ε∪b∪bb)

    L = {ω∈{a,b}*, ω = bbb} = {bbb}

    L= {ω∈{a,b}*, ω contient un nombre pair de a et un nombre paire de b}

    remarque: Il suffit de changer la place del'état d'acceptation pour obtenir:

    a impaire, b paire: q1

    a impaire, b impaire: q2

    a paire, b impaire: q3 

    Σ={0,1,2,3,4,5,6,7,8,9}

    L = {ω∈ Σ*: ω divisible par 3} : la somme des chiffres est divisible par 3

    a

    q0  q1  q2  q3 

    a

    b b

    a

    a,b

    état mort

    q0  q1  q2  q3 b b b

    q4 

    a a a a

    a,b

    q0 

    q3 

    q1 

    q2 

    a

    a

    a

    a

    b b b b

    a paire,b paire a impaire,b paire

    a paire,b impaire

    a impaire,b impaire

  • 8/18/2019 All Tla Esprit Cours de Soir

    16/53

  • 8/18/2019 All Tla Esprit Cours de Soir

    17/53

      17

    C accepte les mots du langage L(C) décrit par: 1*0

    III.7 Automates finis non déterministes (NFA)

    Un automate fini non déterministe est un modèle Mathématique qui consiste en (K, Σ, δ, S, F)

    K : ensemble des états

    Σ : Alphabetδ: relation de transition

    S : état initial

    F : ensemble des états finaux

    Le même caractère peut étiqueter deux transitions ou plus en sortie d’un même état et les arcspeuvent- être étiquetés par ε.

    Exemple : la figure suivante représente le graphe de transition pour un NFA qui reconnaît lelangage (a∪b)* abb

    On voit bien qu'en sortie de l’état 0, on a deux arcs étiquetés a.

    Remarque 1 : Dans un automate fini non déterministe (NFA) il peut y avoir le choix entreplusieurs chemins lors de la lecture d’un mot.

    Pour qu’un mot soit accepté, il suffit que ses lettres étiquettent un chemin d’un état initial à unétat final (même s’il y’en a d’autres ne menant pas à un état final, ou bien s’arrêtant en coursde route)

    Remarque 2 : un DFA est un NFA particulier

    q0

    q1

    q21

    0,1

    0

    0,1q0

    q1

    q21

    0,1

    0

    0,1

    q0 q1 q2 q3

    a

    b

    a b bq0 q1 q2 q3

    a

    b

    a b b

    NFADFA

    NFADFA

  • 8/18/2019 All Tla Esprit Cours de Soir

    18/53

      18

    III.8 Algorithmes de conversion

    III.8.1 Algorithme de déterminisation ou transformation NFADFA 

    Théorème :  Pour chaque automate fini non déterministe correspond un automate fini

    déterministe qui lui est équivalent.Ou

    Si un langage est reconnu par un automate, alors il est également reconnu par un automatefini déterministe.

    Algorithme NFADFA

    Soit A= (K, Σ, δ, q0, F,) un NFA, on construit l’automate B= (K’, Σ, δ’, q’0, F’), K’sera alorsun sous ensemble de P(K) l’ensemble des parties de K.

    δ’ø 

    q’0 {q0} ∪ {q∈ K tel que (q0,ε,q) ∈ δ } (ε-fermeture(q0))K’K’∪ q’0 

    pour tout q’ ∈ K’ non encore considéré faire

    Pour tout a ∈ Σ faire

    q " {y∈ K tel que ∃ x ∈q' tq (x,ε,y) ∈ δ  } (Transiter(q',a))

    Si q "≠ Ø alors

    q " {q"} ∪ {z∈ K tel que ∃ y ∈q" tq (y,ε,z) ∈ δ } (ε-fermeture(q"))

    δ’

    δ’∪ {(q’, a, q")}K’K’∪ {q"}

    F’{q’ tel que q’∩F≠Ø}

    Exercice : Construire le DFA pour le NFA suivant.

    Dans l’algorithme de détermination

    ε-fermeture (q) : Ensemble des états de l’NFA accessibles depuis un état q de l’NFA par desε-Transitions uniquement (sous lecture).

    ε- fermeture (T) : Ensemble des états de l’NFA accessibles depuis un état q∈T

    0 1

    2

    4

    3

    5

    6 7 8 9 10εεεε  εεεε

    εεεε

    εεεε

    εεεε

    εεεε

    εεεε

    εεεε

    a

    b

    a b b0 1

    2

    4

    3

    5

    6 7 8 9 10εεεε  εεεε

    εεεε

    εεεε

    εεεε

    εεεε

    εεεε

    εεεε

    a

    b

    a b b

  • 8/18/2019 All Tla Esprit Cours de Soir

    19/53

      19

    Transiter(T,a): Ensemble des états de l'NFA vers lequel il existe une transition sur le symbolea à partir d'un état q ∈ T.

    Dans l’exemple:

    ε- fermeture (0) = {0, 1, 2, 4,7}

    Transiter({0,1,2,4,7},a} = {3,8}

    ε- fermeture ({3,8})= {1, 2, 3, 4, 6, 7,8}

    Avant de voir le premier symbole d’entrée, N peut appartenir à n’importe lesquels des états del’ensemble ε-fermeture(0) ou 0 est l’état de départ de N donc il peut-être dans T={0,1,2,4,7}c’est l’état de départ du DFA.

    Supposons que a est le prochain symbole d’entrée. Quand il voit a, N peut passer dans l’undes états de l’ensemble Transiter (T, a)=Transiter ({0, 1, 2, 4,7}, a)= {3,8}

    Quand on autorise des ε-transitions, N peut-être dans l’un des états ε-

    fermeture(Transiter(T,a)), après avoir lu le a, ε-fermeture({3,8})={1,2,3,4,6,7,8}Appliquons l’algorithme sur notre exemple

    Etat de départ= ε- fermeture (0)=A= {0, 1, 2, 4,7}

    L’alphabet des symboles d’entrée est ici {a, b}. Donc on marque A comme considéré et oncalcule ε-fermeture (Transiter(A,a))= ε-fermeture({3,8})={1,2,3,4,6,7,8}=B

    ⇒ Dtran[A,a]=B. 

    On fait la même chose avec b, ε-fermeture (Transiter(A,b))=ε-fermeture ({5})={1,2,4,5,6,7}⇒

    Dtran (A,b)=C={1 ,2 ,4 ,5 ,6 ,7}.Nous continuons ce processus avec les ensembles actuellement non marqués B et C on atteintfinalement le point ou tous les ensembles qui sont des états du DFA sont marqués.

    Les cinq différents ensembles que nous construisons réellement sont :

    A= {0, 1, 2, 4,7}

    B= {1, 2, 3, 4, 6, 7,8}

    C= {1, 2, 4, 5,6 ,7}

    D= {1, 2, 4, 5, 6, 7,9}E= {1, 2, 4, 5, 6, 7,10}

    L’état A est l’état de départ et l’état E est l’unique état d’acceptation car il contient un étatd’acceptation du NFA (10)

  • 8/18/2019 All Tla Esprit Cours de Soir

    20/53

  • 8/18/2019 All Tla Esprit Cours de Soir

    21/53

      21

    2) Pour a ∈ ∑ construire le NFA

    Ici encore, i est un nouvel état de départ et f un nouvel état d’acceptation.

    3) Supposons que N(s) et N (t) soient les NFA pour les expressions régulières s et t.

    a) pour l’expression régulière S ∪ T, construire le NFA composé suivant : N (s∪t)

    Remarque : Les états de départ et d’acceptation de N(s) et N(t) ne sont pas les états de départet d’acceptation de N(s∪t).

     Remarque :  tout chemin depuis i vers f doit traverser soit N(s), soit N(t) exclusivement, onvoit donc que l’automate composé reconnaît L(s) ∪ L(t)

    b) pour l’expression st , construire l’NFA composé N(st) :

    L’état de départ de N(s) devient l’état de départ du NFA composé et l’état d’acceptation deN(s) est fusionné avec l’état de départ de N (t).

    Toutes les transitions depuis l’état de départ de N (t) deviennent des transitions depuis l’étatd’acceptation de N(s). Le nouvel état fusionné perd son statut d’état de départ oud’acceptation dans le NFA composé.

    c)  pour l’expression régulière S*, construire le NFA composé N(S*) .

    i f 

    N(S)

    N(t)

    ε

    ε

    ε

    ε

    i f 

    N(S)

    N(t)

    ε

    ε

    ε

    ε

    i f N(t)N(S)i f N(t)N(S)

    i f ε ε

    ε

    ε

    i f ε ε

    ε

    ε

    i f ai f a

  • 8/18/2019 All Tla Esprit Cours de Soir

    22/53

      22

    Ici i est un nouvel état de départ et f un nouvel état d’acceptation. Dans le NFA composé, onpeut aller de i à f directement en suivant un arc étiqueté ε  qui représente que ε  appartient à(L(s))*, ou bien on peut aller de i à f en traversant N(s) une ou plusieurs fois.

    d)  Pour l’expression régulière (s), utiliser N(s) lui-même comme NFA. Remarque  Chaque fois qu’on construit un nouvel état, on lui donne un nom distinct. Ainsi ilne peut y avoir deux états dans deux sous automates qui aient le même nom, même si lemême symbole apparaît plusieurs fois dans r, on crée, pour chaque instance de ce symbole, unNFA séparé avec ses propres états.

    Exemple: soit r = (a∪b) * abb la figure suivante représente un arbre syntaxique pour r.

    Pour le composant r1, le premier a, on construit le NFA

    Pour r2 on construit

    On peut maintenant combiner N(r1) et N(r2) on utilisant la règle de l’union pour obtenirr1 ∪ r2

    Le NFA pour (r4) est le même que celui pour r3 

    Le NFA pour (r4)* est alors

    r10

    r11

    r9

    r7

    r5

    r3

    r1 r2∪

    a b

    r4

    ( )

    *r6

    a

    r8

    b

    b

    r10

    r11

    r9

    r7

    r5

    r3

    r1 r2∪

    a b

    r4

    ( )

    *r6

    a

    r8

    b

    b

    2 3a2 3a

    4 5b4 5b

    2 3a

    4 5b1 6

    ε

    ε

    ε

    ε

    2 3a

    4 5b1 6

    ε

    ε

    ε

    ε

  • 8/18/2019 All Tla Esprit Cours de Soir

    23/53

  • 8/18/2019 All Tla Esprit Cours de Soir

    24/53

      24

    Lq(a)= {w Є ∑* , δ*(q, w) ∈ F }.

    Lq(a) est le langage reconnu par un automate dont l’état initial serait q et qui aurait F commeensemble d’état finaux.

    L(A)=Lq0(A).

    Théorème :

    Chaque langage régulier est reconnu par un unique automate déterministe minimal

    Problème :

    Soit A un automate fini déterministe complet dont chaque état est accessible depuis l’étatinitial. Construire un DFA minimal qui reconnaisse le même langage que A.

    Idée : Fusionner les états équivalents

    En pratique l’algorithme est fondé sur un principe de séparation des états.

    Remarque DFA complet :

    Chaque état a une translation sur chaque symbole de ∑, Si ce n’était pas le cas, nous pourrionsintroduire un nouvel « état mort » d avec des transitions depuis d vers d sur tout les symboles,ainsi qu’une transition depuis l’état e vers d sur le symbole a s’il n’avait pas déjà de transitionde e sur a.

    Définition : Equivalence d’états

    Étant donné A un DFA, deux états p et q sont équivalents (on note p ≈q) si Lp(A)=Lq(A).

    Ainsi (p≈q) ⇔  (pour tout mot w de∑*,

    δ*(p,w) ∈ F et δ*(q,w) ∈ F

    ou

    δ*(p,w)∉ F et δ*(q,w) ∉ F )

    Exemple :

  • 8/18/2019 All Tla Esprit Cours de Soir

    25/53

      25

    0≈1 ? – non car δ(0,b) ∉  F et δ(1,b) ∈ F

    3≈6 ? – oui car 3 ∈ F et 6 ∈ F et w ∈ ∑*, δ*(3, aw) ∈ F et δ*(6, aw) ∈ F

    Et

    δ*(3, bw) ∈ F et δ*(6, bw) ∈ F

    Propriété :  la relation ≈  est une relation d’équivalence. En effet, elle est réflexive,symétrique et transitive

    Notation : Si q est un état, on note [q] sa classe d’équivalence. c.a.d l’ensemble des états quilui sont équivalents.

    Définition :

    Soit le DFA A= (∑, Q, δ, q0, F), l’automate minimal associé à A est : Amin= (∑, Q’, δ, [q0], F’)

    Tel que

    Q’= {[q], q ∈ Q}

    F’= {[f], f ∈ F}

    δ’= {([q],a,[q])tels que ∃ p’ ∈ [p], ∃q’ ∈ [q] (p’,a,q’) ∈ δ}

    Propriétés :

    Amin reconnaît le même langage que A.

    Pour tout DFA B tel que L(B)=L(A), le nombre d’états de B est supérieur ou égal à celui deAmin.

    Tous les automates minimaux C tel que L(C)=L(A), sont identiques à un renommage de leursétats prés : on peut parler d’unicité.

    Algorithme de minimisation :(raffinements successifs)

    Itération i=0 (construire deux classes d’équivalence : les états d’acceptation F et les états denon acceptation Q-F)

    p ≈0 q ssi (p ∈ F et q ∈ F ) ou (p∉ F et q∉ F)

    Itération i>0

    p≈iq ssi

    p≈i-1qEt

    Pour tout a ∈ ∑ : δ (p, a) ≈i-1 δ (q, a)

    Arrêt de l’algorithme : quand ≈i est identique à ≈i-1

    Supprimer tous les états morts et ceux non accessibles depuis l’état de départ.  

    Exemple : Construction des classes d’équivalences

    Soit A (∑, Q, δ, q0, F) tel que ∑= {a, b}, Q= {1, 2, 3, 4, 5, 6}, q0=1, F= {3, 6}

    Et δ définie par

  • 8/18/2019 All Tla Esprit Cours de Soir

    26/53

  • 8/18/2019 All Tla Esprit Cours de Soir

    27/53

      27

    III.9 Simulation d'un Automate à états finis non déterministe

    Algorithme

    Données : un NFA N construit par la construction de Thompson, et une chaîne d’entrée x. Onsuppose que x est terminée par un caractère de fin de fichier fdf. N a un état de départ e 0 et unensemble d’états d’acceptation F.

    Résultats : la réponse « oui » si N accepte x ; « non » dans le cas contraire.

    Méthode : appliquer l’algorithme suivant à la chaîne d’entrée x.E :=ε-fermeture ({e0}) ;C :=carsuiv () ;Tant que C≠fdf faire

    DébutE :=ε-fermeture (transiter (E,C)) ;C :=carsuiv () ;

    Fin

    Si E∩F≠  alorsRetourner « oui »Sinon

    Retourner « non »

    Exemple  soit le NFA ci-dessous essayons de le simuler sur la chaîne x1=ababb et x2=abba

    Pour x2 initialement E=ε-fermeture ({0}))= {0, 1, 2, 4,7}

    C :=a

    E :=ε-fermeture (transiter (E,a)) = ε-fermeture({3,8}) = {3,6,1,2,4,8} = {1,2,3,4,6,7,8}

    C :=b

    E :=ε-fermeture (transiter (E, b)) = ε-fermeture ({5,9}) = {1, 2, 4, 5, 6, 7,9}

    C :=a

    E :=ε-fermeture (transiter (E,a)) = ε-fermeture({3,8}) = {1,2,3,4,6,7,8}

    C :=b

    E :=ε-fermeture (transiter (E, b)) = ε-fermeture ({5,9}) = {1, 2, 4, 5, 6, 7,9}

    C :=b

    E :=ε-fermeture (transiter (E, b)) = ε-fermeture ({5,10}) = {1, 2, 4, 5, 6, 7,10}

  • 8/18/2019 All Tla Esprit Cours de Soir

    28/53

      28

    C :=fdf ⇒  Arrêt

    E∩F= {10} donc retourner « oui »

    Pour x2=abba

    Initialement E=ε-fermeture ({0}))= {0, 1, 2, 4,7}

    C :=a

    E :=ε-fermeture (transiter (E, a)) = ε-fermeture ({3,8}) = {1, 2, 3, 4, 6, 7,8}

    C :=b

    E :=ε-fermeture (transiter (E, b)) = ε-fermeture ({5,9}) = {1, 2, 4, 5, 6, 7,9}

    C :=b

    E :=ε-fermeture (transiter (E, b)) = ε-fermeture ({5,9}) = {1, 2, 4, 5, 6, 7,9}

    C :=a

    E :=ε-fermeture (transiter (E, a)) = ε-fermeture ({3,8}) = {1, 2, 3, 4, 6, 7,8}C :=fdf ⇒ Arrêt

    E∩F=∅   donc retourner « non »

    III.10 Lemme de pompage

    Ce lemme sert à démontrer qu'un langage est non régulier

    Principe de Diricklet ou Pigeonhole principale

    M un automate avec n états {q0, ……., qn-1}

    ω=ω1...ωp  une chaîne de longueur p>n

    alors la succession de transitions qui mène à un état final qF en acceptant ω passe forcémentdeux fois ou plus par le même état (disons qr).

    Exemple :

    ω=ω1 ω2……….ωr…….ωs……..ωk 

    q0 q1....……......qr……..qr……...qf  

    Il y a donc un circuit de qr à qr dans l'automate.

    Remarque:

    qf  qr q0 

    circuit

  • 8/18/2019 All Tla Esprit Cours de Soir

    29/53

      29

    Si M accepte ω, M accepte aussi toutes les chaînes de la forme:ω1…..ωr(ωr+1….ωs)*ωs+……ωp 

    Lemme de Pompage

    Si L est un langage régulier infini, il existe un entier n ≥ 1 tel que:

    Pour tout mot ω de L de longueur ≥ n, il existe une factorisation de ω en xvy telle que0 < |v| ≤ n

    ∀ i ≥ 0, xviy ∈ L

    Preuve:

    Soit A=(Q, Σ, δ, q0, F), un automate à états fini à n états tel que L=L(A)

    Prenons un mot ω ∈ L de langueur Lg≥n: ω=σ1σ2…….σ lg 

    On sait que δ*(q0, σ1σ2…….σlg) ∈ F

    La lecture de ω dans A passe forcement deux fois par le même état q de QIl existe donc deux indices i≤ lg et j≤ lg (i

  • 8/18/2019 All Tla Esprit Cours de Soir

    30/53

      30

    Donc la chaîne xvvy contiendra deux copies de la séquence ab mais chaque mot de L contientune seule fois la séquence ab. Donc xvvy ne peut pas être un mot de b, ce qui prouve que lelemme de pompage ne peut pas être appliqué à L et par suite L n'est pas régulier.

    Théorème de pompage

    Soit L un langage régulier infini reconnu par un automate fini à N étatAlors pour tout ω ∈ L, |ω|>N , ∃ x, v, y tq v≠ε et |xv| ≤ N

    Tel que

    ω=xvy et ∀ n ≥ 0 xvⁿy ∈ L

    Exemple

    On va montrer que le langage des palindromes n'est pas régulier.

    Considérons un automate acceptant ce langage, supposons qu'il est a m états.

    Soit le palindrome ω=am+3bam+3, ce mot doit être accepté par cet automate puisque c'est un

    palindrome.Puisque |ω|>m , selon le théorème, on peut subdiviser ω en trois parties x, v, y et puisque |xv|doit être ≤ m, ils doivent contenir uniquement des a's parce que les m premières lettres de ω sont des a's.

    Donc quand on forme le mot xvvy, nous sommes en train d'ajouter plus de a's à la partiefrontale de ω mais nous n'ajoutons pas de a's à la partie arrière de ω qui contiendra toujoursles a's de y dont le nombre reste fixé à m+3 (dans l'exemple)

    On peut donc conclure que la chaîne xvvy n'est pas un palindrome parce qu'elle aura la forme

    a Plus que m+3 b am+3 

    Mais le théorème de pompage dis que ce mot doit appartenir à Palindrome ce qui impliqueque Palindrome n'est pas régulier.

    Chapitre IV Les langages à contexte libre (Context Free Languages)

    IV.1 Introduction par un exemple

    Soit le langage L décrit par l'expression régulière suivante: a(a*∪ b*)b

    Un mot ω peut avoir la forme a bbb...b b ou a aaa...a b

    On peut dire que ω a la forme aMb, il reste à décrire M

    S → aMb

    M →  A M peut être une suite de a ou une suite de b

    M → B

    A → aA décrit récursivement une suite de a

  • 8/18/2019 All Tla Esprit Cours de Soir

    31/53

      31

    A →  ε 

    B →  bB décrit récursivement une suite de b

    B → ε 

    IV.2 Définition d'une Grammaire hors contexte

    une grammaire G est un quadruplet (V,∑,R,S) où:

    •  V est un ensemble fini de symboles terminaux et n on terminaux: (alphabet globale)

    •  ∑ est l'alphabet des symboles terminaux

    •  V-∑ ensemble des non terminaux

    •  S: Axiome (start symbol), toute dérivation commence par S.

    •  R: règles de production. R ⊆( V-∑)×V*

    Dans l'exemple de l'introduction:V = {S,M,A,B,a,b}.

    ∑={a,b} ensemble des terminaux.

    V-∑={S,M,A,B} ensemble des non terminaux.

    S = Axiome, R={ S → aMb, M → A, M → B, A → aA, A →  ε, B →  bB, B → ε}

    IV.3 Définition d'une Dérivation

    ϕ se dérive directement en ψ  et on note: ϕ →  ψ  s'il existe une suite de mots ω0, ω1,.., ωn de

    V* tels que:

    ϕ = ω0

    ψ = ωn

    ∀ i, 0≤ i

  • 8/18/2019 All Tla Esprit Cours de Soir

    32/53

      32

    R contient une production X → W

    ϕ se dérive le plus à gauche en ψ  et on note ϕ*

    g⇒ψ  s'il existe une suite de mots ω0, ω1,.., ωn de

    V* tels que: ϕ = ω0, ψ = ωn et ∀ i, 0≤ i

  • 8/18/2019 All Tla Esprit Cours de Soir

    33/53

      33

    Dérivation gauche

    Eg⇒T

    g⇒T*F

    g⇒F*F formes sententielles

    g⇒x1*F non terminales

    g⇒x1*(E)

    g⇒x1*(E+T)

    g⇒x1*(T+T)

    g⇒x1*(F+T)

    g⇒x1*(x2+T)

    g⇒x1*(x2+F)

    g⇒x1*(x2+x1) forme sententielle

    terminale

    Dérivation droitePour la dérivation droite, c'est le nonterminal le plus à droite qui est dérivé àchaque étapeE

    ⇒T

    d ⇒T*F

    d ⇒T*(E)

    d ⇒T*(E+T)

    d ⇒T*(E+F)

    d ⇒T*(E+x1)

    d ⇒T*(T+x1)

    d ⇒T*(F+x1)

    d ⇒T*(x2+x1)

    d ⇒F*(x2+x1)

    d ⇒x1*(x2+x1)

    IV.4 Arbre syntaxique (Parse Tree)

    soit une grammaire G(V, ∑,R,S), un arbre syntaxique pour un mot ω engendré par G est unarbre dont:

    •  La racine est étiquetée par l'axiome S

    •  Les feuilles sont étiquetées par ∑∪{ε}

    •  Les nœuds internes le sont par des éléments de V-∑ 

    •  Un nœud interne étiqueté B a des fils, de gauche à droite, étiquetés α1,α2,..,αn s'il existeune production de R: B → α1α2..αn 

    •  ω  est formé de la concaténation des feuilles lues dans un parcours suffixe (profondeurd'abord, gauche droite)

  • 8/18/2019 All Tla Esprit Cours de Soir

    34/53

      34

    Exemple:  arbre syntaxique pour x1*(x2+x1)

    IV.5 Grammaires ambiguës

    •  Une grammaire G est dite ambiguë s'il existe un mot ω ∈ ∑* possédant plus qu'un arbresyntaxique.

    •  Une grammaire G est dite ambiguë s'il existe un mot ω ∈ ∑* ayant plus d'une dérivationgauche

    •  Une grammaire G est dite ambiguë s'il existe un mot ω ∈ ∑* ayant plus d'une dérivationdroite

    Exemple:

    G(V, ∑,R,E)∑={x1,x2,+,*,(,)}

    V-∑= {E} et R définit par:E → E+EE →E*EE → (E)E → x1E →  x2

    soit ω= x1+x1*x2

    Cette grammaire est ambiguë car la chaîne ω a plus d'une dérivation gauche. en effet:

    Eg⇒  E+E

    g⇒  x1+E

    g⇒  x1 +E*E

    g⇒  x1+x1*E

    g⇒  x1+x1*x2

    Eg⇒  E*E

    g⇒  E+E*E

    g⇒   x1+E*E

    g⇒   x1+x1*E

    g⇒  x1+x1*x2

    de même on peut trouver deux dérivations droites

    E

    T

    T * F

    F ( E )

    x1 E + T

    T F

    F x1

    x2

  • 8/18/2019 All Tla Esprit Cours de Soir

    35/53

      35

    IV.6 Exemples de grammaires

    soit G1(V, ∑, R, S) avec ∑= {a}, V-∑={S} et

    R définit par

    S → aS

    S →  ε 

    G1 représente langage (a*)soit G2(V, ∑, R, S) avec ∑= {a}, V-∑={S} et

    R définit par

    S → SS

    S →  a

    S →  ε 

    G2 représente aussi le langage (a*)

    soit G3(V, ∑, R, S) avec ∑= {a}, V-∑={S,A} et

    R définit par

    S → AA

    A →  AAA on enlève A, on ajoute 3A donc on est en train de rajouter 2A

    S →  a

    voici une dérivation:

    Sg⇒  AA

    g⇒AAAA

    g⇒  AAAAAA

    g⇒   aAAAAA

    g⇒  aaAAAA

    g⇒  aaaAAA

    g⇒ aaaaAA

    g⇒  

    aaaaaAg

    ⇒  aaaaaa

    Le langage reconnu est aa(aa)*.

    Exercice:

    soit ∑={a,b}

    L = {ω∈∑*, ω contient 2n a, n >=1}

    1)  Donnez G = (V,∑,R,S) tq L(G) = L

    2)  Donnez une dérivation gauche de la chaîne ω= abaababa ∈ L.

    3)  Montrer que L(G) = L.

    E

    * E

    E

    E + E

    E * E

    E

    E + E

    x1 x1

    x2

    x1 x2

    x1   ≠

  • 8/18/2019 All Tla Esprit Cours de Soir

    36/53

      36

    Réponse:

    1)S → AA

    A → bA génère récursivement une suite de b à gaucheA → Ab génère récursivement une suite de b à droiteA → AAAA → a

    2) ω = bbaababaS

    g⇒   AA

    g⇒bAA

    g⇒bbAA

    g⇒bbaA

    g⇒bbaAAA

    g⇒bbaAbAA

    g⇒bbaabAA

    g⇒bbaabaA

    g⇒bbaababA

    g⇒bbaababa

    3) Montrons que L(G) = L, Il faut montrer que L(G) ⊆ L et L ⊆ L(G)

    L = {ω∈∑*, ω possède la propriété P}

    L(G) ⊆ L ssi ∀ ω∈L(G), ω possède la propriété P.

    Démonstration L(G) ⊆⊆⊆⊆ L

    Au lieu de démontrer que seules les formes sententielles terminales sont dans L, on va

    démontrer que toute forme sententielle ou pas est dans L. (contient un nombre pair de a ouA).

    Par récurrence sur la longueur de la dérivation

    base k = 1 S⇒ AA contient bien un nombre paire de A ou a

    hypothèse: On suppose que toute dérivation de longueur k, k ∈ [1..n] possède un nombrepair de A ou a.

    Recurrence:

    Prenons une dérivation de longueur n+1 

    S⇒ω0 ⇒ ω1⇒...⇒ωn ⇒ ωn+1 

  • 8/18/2019 All Tla Esprit Cours de Soir

    37/53

      37

    Dans la dérivation directe ωn ⇒ ωn+1  on passe à travers une règle qui ne change pas laparité, en effet

    A → bA ne change pas le nombre de A + a

    A → Ab ne change pas le nombre de A + a

    A → AAA ajoute 2A donc preserve la parité des A+a

    A → a ne change pas le nombre de A + a

    Donc l'hypothèse est aussi vraie à l'ordre n+1. Donc toute forme sententielle a un nombrepaire de a ou A, or la forme sententielle terminale ne contient que des terminaux (0A)donc elle contient forcement un nombre paire de a. Donc ∀ ω ∈ L(G), ω possède 2n a.

    Démonstration L ⊆⊆⊆⊆ L(G)

    soit ω ∈ L, ω = bm1 a bm2 a... bm2n-1 a bm2n a bm2n+1 

    Voici une dérivation de S en w

    S →  AA 1 fois AA

    A → AAA (n-1) fois AA....A (2n A)

    A →  bA m1 fois bm1AA...A

    A → a 1 fois bm1aA...A

    A →  bAA → a 

    2n-1 fois

    bm1abm2a....bm2n-1aA

    A → bA m2n fois bm1abm2a....bm2n-1aA bm2nA

    A → Ab m2n+1 fois bm1abm2a....bm2n-1aA bm2nAbm2n+1 

    A → a 1 fois b

    m1

    ab

    m2

    a....b

    m2n-1

    aA b

    m2n

    ab

    m2n+1

     

    IV.7 Classification de chomsky

    Chomsky a établi une classification des langages par types de grammaires. Il a ainsi établiquatre types de grammaires: type0, type1, type2 et type3. Selon Chomsky toute grammairegénérant un langage formel est de type 0. Pour définir les autres types de grammaires, ilintroduit des restrictions de plus en plus sévères sur les règles de production.

    IV.7.1 Grammaires contextuelles « context-sensitive » ou de type 1(CG)

    Une grammaire est contextuelle si toute règle de production :

  • 8/18/2019 All Tla Esprit Cours de Soir

    38/53

      38

    α→β 

    α  peut s’écrire θ A Γ  

    β  Peut s’écrire θ’Ψ Γ ’

    Avec θ, Γ , θ’, Γ ’ dans V* (suite de terminaux ou non terminaux)

    A dans Vn (non terminal)

    Ψ  Dans V* (suite non vide de terminaux ou non terminaux)

    On voit que le symbole A de Vn qui se trouve dans α  précédé par θ  et suivi par Γ   (dans lecontexte θ et Γ  ) peut être substitué par Ψ  et précédé par θ’ et suivi par Γ ’ (d’où le nom«contextuelle»).

    Exemple:

    aB→ab

    B est substitué par b que si elle est précédée par a.

    IV. 7.2 Grammaires non contextuelles « context-free » ou de type 2 (CFG)

    Les productions dans ce cas sont de même forme que les CG mais avec une nouvellecontrainte telle que :

    θ  = Γ   = ε  et θ’ = Γ ’ = ε 

    Ainsi toutes les productions sont de la forme :

    A→ β 

    Avec A ∈ Vn (non terminal)

    et B ∈V* (suite non vide de terminaux et de non terminaux )

    Le symbole A de Vn est substitué par β sans restriction de contexte

    Exemple :  Soit G une grammaire définie par :

    G= {Vn ,Vt ,P,S}

    Avec Vn = {S ,A,B} et Vt={a,b}

    P : S→ aB|bA

    A→ a|aS|bAA

    B→b|bS|aBB

    G est une grammaire hors contexte; toutes les productions de G ont un seul élément deVn à gauche.

    IV. 7.3 Grammaires Régulières ou de type3 :RG

    C'est une grammaire Hors contexte, on impose en plus la contrainte suivante :

    toutes les productions sont de la forme : A→ β 

    avec β = a ou β  =aB ou β =ε 

  • 8/18/2019 All Tla Esprit Cours de Soir

    39/53

      39

    avec a dans Vt et B dans Vn

    Exemple : Soit G une grammaire définie par:

    G={Vn, Vt, P, S}

    avec Vn= {S,A ,B} et Vt={0,1}

    Les productions de P sont:

    S →0A | 1B | 0

    A →  0A | 0S |1B

    B →1B|1 | 0

    Toutes les productions ont un élément de Vn à gauche et un élément de Vt suivi ou non parun élément de Vn à droite. Donc c’est une grammaire régulière.

    IV.8 Classification des langages formels

    •  Un langage contextuel ou de type 1 est un langage généré par une grammaire contextuelle.

    •  Un langage non contextuel ou de type 2 est un langage généré par une grammaire noncontextuelle.

    •  Un langage régulier ou de type 3 est un langage généré par une grammaire régulière .

    Soient F0,F1,F2,F3  les familles de langages de types 0 ,type1,type2 et type3 respectives alorsF3 ⊂  F2 ⊂  F1 ⊂  F0 

    IV.9 Transformation d'une grammaire régulière à droites en NFA

    Soit G=(N,T ,P,S) une grammaire régulières à droite , on peut construire un automate finiA=(Σ,Q,δ,q0,F) qui accepte les mots engendrés par G:

    •  Pour toutes les productions B→α  de P ,on ajoute un nouveau symbole non terminal X eton remplace ces productions par B→αX et X→ε 

    •  L’ensemble des états Q de l’automate est celui des non-terminaux N∪{X}(à unrenommage près)

    •  L’alphabet Σ est égale à l’ensemble T des terminaux.

    •  L’état q0  correspond à l’axiome A de la grammaire.

    •  Pour toute production B→αC de P, il existe la flèche (B, α  ,C) dans δ(au renommageprès)

    •  Pour toute production B→ε de P, l’état correspondant B est final dans A.

  • 8/18/2019 All Tla Esprit Cours de Soir

    40/53

      40

    Exemple

    G=(N ,T ,P,A) une grammaire régulière àdroite

    N={A,B,axiome A}

    T={a,b,c}P{A→aA

    A→bB

    A→c (devient A→CX et X→ε)

    B→bB

    B→a(devient B→aX)

    B→ε 

    E :a*bb*(a ∪ ε) ∪ (a*C)A=(Σ,Q,δ, q0=A, F)

    Σ={a,b,c},φ={A,B,X},F{B,X}

    L(G) = L(A)

    IV.10 Transformation d'un DFA en grammaire régulière

    Théorème:

    Un langage est régulier si et seulement si il existe une grammaire régulière qui engendre les

    mots de L.Soit un automate fini donné A=(Σ,Q,δ, q 0,F)

    G=(N,T,P,A)est une grammaire régulière qui engendre les mots de L(A) si :

    •  L’ensemble des non terminaux N est celui des états Q de l’automate (à un renommageprès)

    •  L’ensemble des terminaux T égale à Σ .

    •  L’axiome A de la grammaire correspond à l’état q0.

    •  Pour tout élément (q,6,q’) de δ il existe la production q → 6q’ dans P(au renommage près)

    •  Pour tout f ∈ F il existe la production f → ε dans P(au renommage près)

    Exemple :

    A=(Σ,Q,δ, q0=A,F)

    Σ={a,b},Q={A,B,C,D},F={D}

    G=(V,Σ,R ,A)

    V- Σ ={A,B,C,D},axiome A

    Σ ={a,b}

    B

    XA

    aa b

    b

    c

    B

    XA

    aa b

    b

    c

    A

    B

    C

    D

    b

    b

    b

    a

    a

    a

    a,b

    A

    B

    C

    D

    b

    b

    b

    a

    a

    a

    a,b

  • 8/18/2019 All Tla Esprit Cours de Soir

    41/53

      41

    R={A→aCA→bBB→aDB→bAC→aD

    C→bBD→aDD→bDD→ε}

    L (G) = L (A)

  • 8/18/2019 All Tla Esprit Cours de Soir

    42/53

      42

    Chapitre V Automates à pile (Push Down Automaton, PDA)

    V.1 IntroductionPar analogie avec les expressions régulières qui engendrent les langages réguliers, lesgrammaires hors contextes engendrent les langages hors contexte. Aussi par analogie avecautomates à états finis qui reconnaissent les langages réguliers, les automates à pilereconnaissent les langages hors contextes.

    Exemple: Utilisation d'un automate à pile 

    L'automate à pile va tenter de lire le mot aaabbb pour vérifier s'il appartient ou pas à L = {ω ∈ {a,b}*, ω = anbn n ≥ 0} qui n'est pas régulier sinon on aurait utilisé un DFA.

    Le PDA enpile un X à la lecture d'un a et dès la lecture du premier b il commence à dépiler à

    la rencontre de chaque b. Il accepte le mot quand la pile devient vide.a a a b b b

    Pile

    X

    empiler X à la lecture d'un a

    a a a b b b

    Pile

    X

    X

    empiler X à la lecture d'un a

    a a a b b b

    Pile

    X

    X

    X

    PDA

    PDA

    PDA

  • 8/18/2019 All Tla Esprit Cours de Soir

    43/53

      43

    empiler X à la lecture d'un a

    a a a b b b

    Pile

    X

    X

    dépiler X à la lecture d'un b

    a a a b b b

    Pile

    X

    dépiler X à la lecture d'un b

    a a a b b b

    Pile vide

    dépiler X à la lecture d'un b. Le mot est accepté par pile vide

    Pourquoi un automate à pile

    •  Les automates finis n'ont pas d'autres mémoires que leurs états.

    •  Ils ne savent donc pas compter au-delà de leur nombre d'états.

    •  Une pile procure une mémoire additionnelle non bornée.

    •  Le nombre de symboles utilisés dans la pile est fini.

    •  La pile vide peut être un critère d'acceptation des mots.

    V.2 Définition d'un automate à pile

    Un automate à pile non déterministe est un septuple (Q, ∑,Γ ,δ,q0, z, F) où:

    PDA

    PDA

    PDA

  • 8/18/2019 All Tla Esprit Cours de Soir

    44/53

      44

    •  Q : ensemble fini d'états

    •  ∑ : alphabet fini des symboles d'entrée

    •  Γ  : alphabet fini des symboles de pile

    •  δ : ensemble des règles de transition

    •  q0 : état initial

    •  z : symbole de pile vide

    •  F : ensemble des états d'acceptation

    V.3 Définition d'une transition

    •  Une règle de transition (q, σ, γ→q',χ) considère:

    •  L'état courant q de l'automate

    •  Le caractère lu σ sur le ruban (ou peut être ε)•  Le symbole γ  de sommet de pile (ou peut être z ou ε)

    •  une règle de transition indique :

    •  Le prochain état q' de l'automate

    •  La suite de symboles χ à empiler à la place du sommet de la pile ou dans la pile vide

    •  La relation de transition δ  est l'ensemble des règles de transition vues comme desquintuples δ ⊆ (Q × (∑ ∪{ε}) ×  (Γ  ∪ {ε})) ×  (Q ×  Γ *)

    (q, σ, γ→q',χ): on est à l'état q avec γ  en sommet de pile, on peut lire σ du restant à lire,remplacer γ  par χ et transiter à l'état q'.

    V.4 Langages reconnus par un PDA

    Définitions: soit A(Q, ∑,Γ ,δ,q0, z, F) un PDA

    1.  On appelle configuration initiale d'un PDA, le triplet (q0, ω,z), avec ω  la chaîne àreconnaître par le PDA.

    2.  On appelle configuration finale d'un PDA, le triplet (qF, ε, α) avec qF ∈F et α ∈ Γ *.

    3.  Une configuration est un triplet (q:état courant , x:restant à lire,λ:contenu de la pile).

    Remarques:

    •  si α = ε, la pile est vide.

    •  La succession des configurations se fait à travers δ, noté .

    •  Le langage reconnu par un PDA est l'ensemble des mots lus à partir de la configurationinitiale jusqu'à l'obtention d'une configuration finale.

    Formellement

    L(A) = {ω∈∑*/ (q0, ω,z) * (qF, ε, α) avec qF ∈ F et α ∈ Γ *}

  • 8/18/2019 All Tla Esprit Cours de Soir

    45/53

      45

    Remarque:

    Pour la configuration finale d'un PDA, le contenu de la pile importe peu. Cependant, un casparticulier est de considérer une configuration finale où la pile serait alors vide. L'automateest dit alors automate à pile vide.

    V.5 Définition: langage reconnu par un automate à pile vide

    On dit qu'un langage est reconnu par un automate à pile vide, si lorsqu'on parcourt tous sesmots (à partir de la configuration initiale), on obtient une pile vide et un état d'acceptation.

    Lε (A) = { ω∈∑*/ (q0, ω, z) * (qF, ε, ε) avec qF ∈ F}.

    Exemple1: soit le langage à contexte libre L ={anbn, n ≥ 0}.

    Déterminons le PDA qui reconnaît L. Le principe étant d'empiler X à chaque rencontre d'un a,

    et de dépiler un X au fur et à mesure de la lecture des b: A est doncA (Q,∑,Γ ,δ,q0, #, F)

    Q = {q0,q1,q2,q3}; ∑= {a,b}; Γ  = {X,#}; F = {q3}; δ définie par

    1 δ(q0,a,#) = (q1,X#) On a empilé X et on se déplace à q1 qui va faire une boucled'empilement.

    2 δ(q1,a,X) = (q1,XX)

    3 δ(q1,b,X) = (q2,ε) On dépile X et on se déplace à q2 qui va avoir une bouclede dépilement

    4 δ(q2,b,X) = (q2, ε) dépilement successif de tous les X5 δ(q2,ε,#) = (q3,#) état final q3 atteint

    Remarque: si n= 0 (ε∈L), il faut donc ajouter l'instruction δ(q0,ε,#) = (q3,#)

    faisons tourner l'automate sur quelques mots a) a2b2  b) a2b c)ab2 

    a)

    état restant à lire contenu de la pile transition utilisée

    q0  aabb # 1

    q1  abb X# 2

    q1  bb XX# 3

    q2  b X# 4

    q2  ε  # 5

    q3  ε  #

    Autre représentation

    (q0,aabb, #)  (q1,abb,X#)  (q1, bb,XX#)  (q2,b,X#)  (q2, ε, #)  (q3, ε, #)

  • 8/18/2019 All Tla Esprit Cours de Soir

    46/53

      46

    on a (q0, a2b2, #) * (q3, ε, #) donc le mot est lu on est arrivé à un état d'acceptation donc a

    2b2 ∈L(A)..

    b) (q0, aab,#)   (q1, ab, X#)   (q1, b, XX#)   (q2, ε, X#)   il n y'a pas de transition pour laconfiguration dont l'état courant est q2, le mot est lu et il y a un X en sommet de la pile; Bienque le mot soit lu, la configuration finale n'est pas obtenue, Donc aab ∉ L(A).

    c) (q0, abb, #)  (q1,ab,X#)  (q2,b,#) il n'existe pas de transition quand l'automate est en q2,il reste un b à lire et # en sommet de pile, il y a donc blocage et abb ∉ L.

    Remarque: si on veut un PDA à pile vide, il faut ajouter la transition δ(q2, ε,#) = (q3, ε)

    Notation

    (qi, ε, γ )→(qj, η)

    sans tenir compte du restant à lire (ne pas avancer dans le ruban)

    (qi, σ,ε)→(qj, X) empiler X quel que soit le contenu de la pile.

    sans tenir compte de la pile

    Exemple:

    (p, ε, a) (q, ε) dépiler a ∀ le restant à lire et aller à q

    (p, ε, ε) (q,a) empiler a ∀  le contenu de la pile et ∀  le restant à lire (sans avancer dans leruban)

    Exemple: soit ∑= {a,b} et L = {ωcωR : ω ∈ ∑*}

    a b c b a

    empiler a empiler b aller à l'état dedépilement

    dépiler b dépiler a

    A (Q,∑,Γ ,δ,q0, #, F)

    1 (q0,a, #) (q1,a#) Q= {q0,q1,q2}, Γ = ∑, F = q2 

    2 (q0,b,#) (q1,b#)

    3 (q1,a, ε) (q1, a) empiler a ∀ la tête de la pile

  • 8/18/2019 All Tla Esprit Cours de Soir

    47/53

      47

    4 (q1,b, ε) (q1,b) empiler b ∀ la tête de la pile

    5 (q1, c, ε) (q2, ε) aller à q2 ∀ la tête de la pile

    6 (q2,a,a) (q2, ε) dépiler a si je rencontre a sur la bande et que le symboleen sommet de pile est a.

    7 (q2,b,b) (q2, ε) dépiler b si je rencontre b sur la bande et que le symboleen sommet de pile est b.

    8 (q2, ε, #) (q2, ε)

    ω ∈ abbcbba

    état restant à lire contenu pile Transition utilisée

    q0  abbcbba # 1

    q1  bbcbba a# 4

    q1  bcbba ba# 4

    q1  cbba bba# 5

    q2  bba bba# 7

    q2  ba ba# 7

    q2  a a# 6

    q2  # 8

    q2  Mot accepté par pile vide

    Remarque : Un NFA M= {Q, ∑, δ, s, F) est la même chose qu'un PDA M'(Q,∑,Γ ,δ',s, null,F) avec δ'= ((p,u, ε) (q, ε) tel que (p,u,q) ∈  δ} c'est à dire un PDA dont la pile n'est pasutilisée.

    Equivalence:  Tout langage hors contexte reconnu par un PDA avec le mode de

    reconnaissance sur pile vide est également reconnu par un automate à pile acceptant sur étatfinal et vice-versa.

    V.6 Déterminisme

    un automate à pile est déterministe (PDA déterministe) si:

    •  pour un état q donné

    •  pour un symbole d'entrée σ donné

    •  pour un symbole de pile γ  donné

    Il existe une et une seule transition partant de (q, σ,γ )

    q0 q1

    a,ε→ab,ε→b

    a,a→εb,b→εε,#→ε

    c,ε→ε

  • 8/18/2019 All Tla Esprit Cours de Soir

    48/53

      48

    ceci correspond bien au fait de ne pas avoir le choix quant-à la transition à appliquer

    Théorème

    Il existe des langages non contextuels qui ne sont pas reconnus par un automate à piledéterministe.

    Exemple:

    Le langage { ωωR , ω ∈ ∑*} n'est pas reconnu par un PDA déterministe.

    M (Q,∑,Γ ,δ,s, null, F)

    1 (s, a, ε) (s,a) empiler a ∀ le symbole en sommet de pile à larencontre de a dans la bande

    2 (s, b, ε) (s,b) empiler b ∀ le symbole en sommet de pile à larencontre de b dans la bande

    3 (s, ε,ε) (f, ε) passer à l'état f ∀  le symbole en sommet de

    pile et ∀  le symbole rencontré sur la banded'entrée

    4 (f,a,a) (f, ε)

    5 (f,b,b) (f, ε)

    Définitions

    •  2 chaînes sont dites persistantes si l'une est un préfixe de l'autre

    •  2 transitions (p1, µ1, β1) (q1, γ 1)

    (p2, µ2, β2) (q2, γ 2) sont dites compatibles si

    p1= p2

    µ1 et µ2 sont persistantes

    β1 et β2 sont persistantes

    Théorème:

    un PDA est déterministe s'il ne contient aucune transition compatible

    Exemple 1

    ∑= {a,b}

    L = {ωcωR, ω∈ ∑*}M (Q,∑,Γ ,δ,s, null, F)

    δ :

    (s,a,a) (s,a) le même état de départ mais a n'est pas préfixe de b ni b de c ni a de c

    (s,b, ε) (s,b)

    (s,c,ε) (f,ε)

    (f,a,a) (f, ε) même état de départ mais a n'est pas préfixe de b

    (f,b,b) (f, ε)

  • 8/18/2019 All Tla Esprit Cours de Soir

    49/53

      49

    Il n y a pas de transitions compatibles donc le PDA est déterministe.

    Exemple 2: L = {ωωR, ω∈ ∑*}

    δ :

    (s,a, ε) (s,a) 3 transitions compatibles ε préfixe de a et de b, ε préfixe de ε 

    (s,b, ε) (s,b)

    (s, ε,ε) (f,ε)

    (f,a,a) (f, ε) transitions non compatibles

    (f,b,b) (f, ε)

    V.7 Transformation d'une grammaire hors contexte en PDA

    Théorème: Pour toute grammaire hors contexte, il existe un automate à pile vide A tel queL(G) = L(A)

    L'idée consiste à commencer par empiler l'axiome, ensuite, à chaque symbole de la chaîned'entrée, on remplace la partie gauche de la production concernée par le reste de la partiedroite.

    Algorithme:

    L: langage engendré par G = (V, ∑, R, S), il s'agit de trouver A (Q,∑,Γ ,δ,q0, #, F) tel que L(G)= L(A).

    ∑ = ∑ de la grammaire

    Γ  = V ∪ {#}

    Q = {q0, q1}

    F = q1 

    δ définie par:

    1) δ(q0, ε, #) = (q1, S#) on empile l'axiome ∀ la chaîne d'entrée2) si (A → α) ∈ R alors δ(q1, ε, A)= (q1, α)

    3) δ(q1, σ, σ) = (q1, ε) ∀ σ ∈ ∑ 

    4) δ(q1, ε, #) = (q1, ε)

    Exemple:

    soit L = {anbn, n ≥1}

    L est engendré par G = (V,∑

    , R, S) avec V = {a,b,S};∑

    = {a,b},et R définit par S → aSb|ab

  • 8/18/2019 All Tla Esprit Cours de Soir

    50/53

      50

    Le PDA à pile vide qui reconnaît L(G) est:

    A (Q,∑,Γ ,δ,q0, z, F) avec ∑ ={a,b}; Γ ={a,b,S,#}, z = #, Q={q0,q1}; F={q1} et δ définie par:

    δ(q0, ε, #) = (q1, S#) [F1]

    δ(q1, ε, S) = (q1, aSb) [F2]

    δ(q1, ε, S) = (q1, ab)

    δ(q1, a, a) = (q1, ε) [F3]

    δ(q1, b, b) = (q1, ε)

    δ(q1, ε, #) = (q1, ε) [F4]

    Faisons tourner l'automate sur a2b2 

    (q0,aabb, #)  (q1, aabb, S#)  (q1, aabb, aSb#) (q1, abb, Sb#) (q1, abb, abb#)  (q1, bb,bb#) (q1, b, b#)   (q1, ε, #) (q1, ε, ε)

    V.8 Propriétés de clôture

    La classe des langages hors contexte est close pour l’union

    Preuve par construction: 

    •  Soient G1 = (N1, T1, R1, S1) et G2 = (N2, T2, R2, S2) engendrant respectivement L1 et L2

    •  Construisons G pour engendrer L1 ∪ L2 

    G = (N1 ∪ N2 ∪ {S},

    T1 ∪ T2,

    S,

    R1 ∪ R2 ∪ {S S1 | S2 })

    En s’assurant au préalable que N1 ∩ N2 = Ø et S ∉ N1∪ N2 sinon renommage.

    La classe des langages algébriques est close par concaténation

    Preuve par construction

    •  Soient G1 = (N1, T1, R1, S1) et G2 = (N2, T2, R2, S2) engendrant respectivement L1 et L2 

    •  Construisons G pour engendrer L = L1L2 

    G = (N1 ∪ N2 ∪ {S}, T1 ∪ T2, S, R1 ∪ R2 ∪ {S S1S2})

    En s’assurant au préalable que N1 ∩ N2 = Ø et S ∉  N1∪ N2 

  • 8/18/2019 All Tla Esprit Cours de Soir

    51/53

      51

    La classe des langages algébriques est close pour l’opération « étoile de Kleene »

    Preuve par construction

    •  G = (N, T, R, S) engendrant le langage L

    •  Construisons G’ pour engendrer L* :

    G’ = (N ∪ {A}, T, axiome A, P ∪ {A ε | SA}

    On s’assure au préalable que A ∉ N 

    Exemple

    Question : construire une grammaire pour L = {a i b j ck, i=j, ou j=k}

    Réponse :

    L est l’union de deux langages = L1 ∪ L2 

    Avec L1 : {ai b j ck , i=j, k ≥ 0} 

    L2 : {ai b j ck , i ≥ 0, j=k}

    •  Concernant L1 :{ai b j ck, i=j, k ≥ 0} est la concaténation de L1’= {a

    i b j, i=j}

    L1’’= {ck, k ≥ 0}

    •  Concernant L2 :{ai b j ck, i ≥ 0, j=k} est la concaténation de L2’= {a

    i, i ≥ 0}

    L2’’= {b j ck, j=k}

    •  Les langages {ck, k ≥ 0}, respectivement {ai, i ≥ 0} sont étoile de {c}, respectivement {a}.

    •  Construisons maintenant la grammaire pour L.

    {ai

    b j

    , i=j}: • S1  ε | a S1 b{ck, k ≥ 0}: •S2  ε | c S2

    L1 = {ai b j ck, i=j, k ≥ 0}

    • S1  ε | a S1 b

    • S2  ε | c S2

    • SL1  S1 S2  /*concaténation

    L2 = {ai b j ck, i ≥ 0, j=k}

    • S3  ε | a S3 

    • S4  ε | b S4 c

    • SL2  S3 S4  /*concaténation

    L = {ai b j ck, i=j, ou j=k} est engendré par

    G = (N, T, R, S)

    N = {S1, S2, S3, S4, SL1, SL2, S}

  • 8/18/2019 All Tla Esprit Cours de Soir

    52/53

      52

    T = {a, b}

    P = {S1  ε | a S1 b; S2  ε | c S2; SL1  S1 S2; S3  ε | a S3; 

    S4  ε | b S4 c; SL2  S3 S4; SSL1 | SL2}

    V.11 Clôture des langages hors contexte (intersection et complémentation)

    •  La classe des langages hors contexte n’est pas close par intersection.

    Contre exemple :

    Comme on l’a montré par lemme de Pompage, le langage

    L = {ai b j ck, i ≥ 0} n’est pas hors contexte.

    Or L = L1 ∩ L2 avec L1 et L2 les deux langages hors contexte ;L1 = {a

    i b j ck, i = j} /*concaténation de ai b j et ck 

    L2 = {ai b j ck, j = k} /*concaténation de ai et b j ck

    •  La classe des langages hors contexte n’est close par complémentation.

    Preuve : 

    Si cette classe était à la fois close par union et complémentation, elle seraitforcément close par intersection, car L1 ∩ L2 = 21  L L   ∪ on vient de voir qu’elle n’est pasclose (intersection).

    Théorème:

    L'intersection d'un langage hors contexte et d'un langage régulier est un langage horscontexte.

    Bibliographie

    1.  D. Cohen, "Introduction to computer Theory", Edition wiley, 1996.

    2.  J. E. Hopcropft, J. Ullman, "Introduction to Automata Theory, languages andcomputation, Edition Addison-Wesley 1979.

    3.  H.R. Lewis, C.H. Papadimitriou, "Elements of The Theory of computation", EditionPrentice Hall, 1998.

  • 8/18/2019 All Tla Esprit Cours de Soir

    53/53