9
 RICM3 – Automates et Grammaires Durée : 2h00, sans documents. T ous les appareils électroniqu es sont interdits à l’exception des montres mécaniqu es. Le barème est donné à titr e indicatif. Le sujet est sur 21 points et comporte 5 exerc ices indé penda nts. Exercice 1 : Comparaison d’automates  (5. 5 pt) On considére l’alphabet Σ = { a, b }. On considére le langage  L  formé des mots contenant  aa  et terminé par  b . Q1.  (0.2 5 pt)  Donnez deux mots qui appartiennent à  L  et deux mots n’appartenant pas à  L. solution a,b /  L  et  aab, aab b ∈  L Q2.  (0. 75 pt)  Donnez un automate A  non-déterministe  qui reconnaît  L  sous forme de dessin et sous forme de tableau. Indication :  Vous pouvez cont inuer l’exe rcice même si vous n’êtes pas sûr de votre automate  A. Ce ne sont moins les automates que les raisonnements qui m’intéressent. solution voir Figure 1. Q3.  (1pt)  Déterminisez l’automate  A. Donnez l’automate déterministe sous forme de tableau uniquement. Diérences de deux automates  Un élève préte nd que l’automat e déterministe  E  ci-dessous re- conna ît le même langage que l’automate A. On cherche à savoir s’il a raison. E  i 1 2 3 4 a a  2 3 2 3 b  1 1 4 Q4.  (0. 5 pt)  Construisez l’automate complémen taire de  E  qu’on notera  E c sous forme de tableau. Q5.  (0.2 5 pt)  Donnez le langage reconnu par l’automate A × E C en fonction de L  (A)  et L  (E ). solution L  (A × E C ) = L  (A) L  (E )

2014 RICM3 EX.corrige

Embed Size (px)

DESCRIPTION

J

Citation preview

  • RICM3 Automates et Grammaires

    Dure : 2h00, sans documents.

    Tous les appareils lectroniques sont interdits lexception des montres mcaniques. Le barme est donn titre indicatif. Le sujet est sur 21 points et comporte 5 exercices indpendants.

    Exercice 1 : Comparaison dautomates (5.5 pt)

    On considre lalphabet = {a, b}. On considre le langage L form des mots contenant aa et terminpar b.

    Q1. (0.25 pt) Donnez deux mots qui appartiennent L et deux mots nappartenant pas L.

    solution

    a, b / L et aab, aabb L

    Q2. (0.75 pt) Donnez un automate A non-dterministe qui reconnat L sous forme de dessin et sousforme de tableau.

    Indication : Vous pouvez continuer lexercice mme si vous ntes pas sr de votre automate A. Cene sont moins les automates que les raisonnements qui mintressent.

    solution

    voir Figure 1.

    Q3. (1 pt) Dterminisez lautomate A. Donnez lautomate dterministe sous forme de tableauuniquement.

    Diffrences de deux automates Un lve prtend que lautomate dterministe E ci-dessous re-connat le mme langage que lautomate A. On cherche savoir sil a raison.

    E i1 2 3 4a

    a 2 3 2 3b 1 1 4

    Q4. (0.5 pt) Construisez lautomate complmentaire de E quon notera Ec sous forme de tableau.

    Q5. (0.25 pt) Donnez le langage reconnu par lautomate A EC en fonction de L (A) et L (E).solution

    L (A EC) = L (A) L (E)

  • Q6. (0.25 pt) On prtend que lautomate AEC permet destimer si llve sest tromp. Expliquezpourquoi en donnant linterprtation en franais de ce que reprsente le langage L (A EC)

    solution

    L (A EC) = L (A) L (E) est lensemble des mots reconnus par A mais pas par E. Ce sont donc les motsde L (A) que lautomate de llve a manqu.

    Q7. (0.75 pt) Donnez un algorithme qui permet de savoir si un automate ne reconnat aucun mot.

    solution

    Le langage reconnu par un automate A est vide si et seulement si il nexiste pas dtat accepteur accessibledepuis ltat initial.

    Q8. (1.25 pt) Construisez lautomate A EC jusquau moment o vous pouvez conclure si llvesest tromp ou pas. On demande bien dutiliser A et pas sa version dterministe.

    Q9. (0.5 pt) Donnez une excution de A EC qui accepte un mot et conclure.solution

    Lexcution i(1, 1) a(1, 2) a(2, 3) a(3, 2) b(4, 1)a accepte le mot aaab. Il sagit dun mot de A qui nest pasreconnu par E. Llve sest donc tromp.

    Exercice 2 : Grammaire des adresses web (5 pt)

    Les adresses web (ou url de langlais Uniform Resource Locator) sont formes de "http" ou "https"pour les sites scuritss, suivi de "://" puis dun nom de site. Dans cet exercice les noms de site sontforms didentificateurs spars par des tirets - ou des souligns -. Un nom de site doit comporterau moins un identificateur et se terminer par un nom de domaine prcd du caractre ..

    Exemples :- http://mon-site-web-perso.fr

    - https://ma-banque-en-ligne.com

    Les identificateurs sont des mots forms uniquement de lettres de lalphabet (majuscule ou minuscule).Un identificateur doit comporter au moins une lettre.

    Q10. (0.25 pt) Donnez un automate qui reconnat les identificateurs.

    solution

    On dfinit = {a..z} {A..Z }, Aident = // // yy

    Indication : On dispose dsormais dun parser didentificateur Ident : stream char string quiprend en entre un flot de caractre et fait tourner lautomate sur ce flot. Si lautomate reconnat unidentificateur en dbut de flot le parser Ident retourne lidentificateur reconnu sous forme de chanede caractre ; sinon le parser choue et ne consomme pas le flot de caractre.

    Vous pouvez donc utiliser le non-terminal Ident dans vos grammaires.

  • Q11. (0.25 pt) Donnez quatre noms de sites incorrects pour des raisons diffrentes

    solution

    1. : nom de site vide2. mon site avec des espaces.fr : utilisation dun caractre interdit3. .fr : nom de domaine uniquement4. mon-site : nom de domaine manquant

    Q12. (1 pt) Donnez une grammaire avec pour germe le non-terminal Url qui reconnat les adressesweb.

    solution

    Url "http" SecOpt "://" SiteSecOpt s | Site Ident SiteSuiteSiteSuite Sep Site | DomaineSep - | -Domaine . Ident

    Q13. (1 pt) Donnez larbre de drivation qui permet votre grammaire de gnrer http://charlie-hebdo.fr

    solution

    Url "http" SecOpt

    "://" Site

    Ident "charlie"

    SiteSuite

    Sep-

    Site

    Ident "hebdo"

    SiteSuite

    Domaine

    . Ident "fr"

    Q14. (1.25 pt) Modifiez la grammaire initiale pour lui ajouter un/des attributs afin quelle comptele nombre didentificateurs dans le nom du site, sans compter celui du domaine.Le non-terminal Url est dsormais un parser de type stream char N

    Exemples :- Url [< http://monsiteweb.com >] = 1- Url [< http://polytech-grenoble.fr >] = 2

    solution

    Url {n} "http" SecOpt "://" Site {n} ; {n = n}SecOpt s | Site {n} Ident SiteSuite {n } ; {n = n + 1}

    SiteSuite {n} Sep Site {n} ; {n = n}| Domaine {n = 0}

    Sep - | -Domaine . Ident

  • Q15. (1.25 pt) Modifiez la grammaire initiale pour lui ajouter un/des attributs afin quelle retourneune adresse web qui ne contiennent plus de sparateurs - ni -.Le non-terminal Url est dsormais un parser de type stream char string

    Exemples :- Url [< http://mon-site-web.com >] = "http://monsiteweb.com"

    - Url [< http://polytech-grenoble.fr >] = "http://polytechgrenoble.fr"

    solution

    Url {s} "http" SecOpt {s1} "://" Site {s2 } ; {s = "http" s1 "://" s2 }SecOpt {s} s ; {s = "s"}

    | ; {s = ""}Site {s} Ident {s1 } SiteSuite {s2 } ; {s = s1 s2 }

    SiteSuite {s} Sep Site {s} ; {s = s}| Domaine {s } ; {s = s}

    Sep - | -Domaine {s} . Ident {s } ; {s = "." s }

    Exercice 3 : Algorithme (3 pt)

    On considre lalphabet = {a, b}.

    Q16. (0.5 pt) Dessinez un automate A dterministe et complet qui reconnat le langage {a, b}.solution

    // // // yy

    Q17. (0.5 pt) Dessinez lautomate qui reconnat L (A).

    solution

    // // // yy

    Q18. (0.5 pt) Le langage L (A) est-il fini ? Justifiez votre rponse.

    solution

    Le langage L (A) est infini. En effet, L (A) = \L (A). Ainsi, pour former L (A), on retir du langage ,infini, les mots de L (A), en nombre fini. Il reste donc une infinit de mots dans L (A).

    Q19. (1.5 pt) Dcrivez (en franais) un algorithme qui permet de tester si le langage reconnu parun automate A est fini.

    solution

    Principe : Pour que le langage soit infini il faut que lautomate contiennent une boucle accessible depuis ltatinitial et qui puisse mener un tat accepteur.

    Algorithme : On part dun automate A1. on limine les tats inaccessibles depuis ltat initial.

  • Pour faire cela on visite les tats en commenant par ltat initial et en suivant les transitions.On marque les tats visits. Lalgorithme stabilise lorsque pour toute transition les tats visistsne mnent qu des tats dj visists. Puisquon ne visite plus de nouvel tat, on sarrte eton limine les tats non visits.

    2. on limine les tats qui ne peuvent pas mener un tat accepteur.Pour faire cela on visite les tas en commenant par les tats accepteurs et en suivant lestransitions rebourd. On marque les tats visits. Lalgorithme stabilise lorsque pour toutetransition les tats visists ne mnent qu des tats dj visists. Puisquon ne visite plus denouvel tat, on sarrte et on limine les tats non visits.

    3. Le langage de lautomate A est infini si et seulement si lautomate quon obtient aprs les tapes 1 et 2comporte un cycle.

    Exercice 4 : Questions de cours (3.5 pt)

    Q20. (0.5 pt) Dcrivez par une phrase en franais le langage correspondant lexpression rguliresuivante c (a | b) . Est-il fini ou infini ?

    solution

    Ce langage est lensemble de tous les mots sur lalphabet {a, b, c} commenant par c et suivi dun nombrequelconque de a ou dun nombre quelconque de b.

    L {c.a` | ` N}. Ce langage est donc infini.

    Q21. (0.5 pt) tant donn un alphabet = {a, b, c}. Peut-on construire un mot qui nappartientpas ? Si oui donnez deux exemples. Si non expliquez pourquoi cela est impossible.

    solution

    Deux rponses acceptes : oui cest possible mais en considrant un alphabet plus grand par exemple = {d} ; on peut alors

    constuire d et ad. non cest impossible si on a fix lalphabet car est lensemble des mots crits sur lalphabet .

    Q22. (0.5 pt) Donnez le langage correspondant (rpondez sur votre copie)

    (1) {a, b} {a, b} = {aa, ab, ba, bb}(2) {a, b} {c, } = {ac, bc, a, b}(3) { } = { }(4) { } = (5) {a, } = {a}

    Q23. (0.5 pt) tant donn un alphabet . Peut-on constuire un automate qui reconnat le langage ? Si oui donnez lautomate. Si non expliquez pourquoi cela est impossible.

    solution

    Oui, on construit un automate un seul tat q (initial et accepteur) et une transition q s q pour chaque symbolede s : // yy

  • Q24. (0.75 pt) tant donn un alphabet 1 . Peut-on constuire un automate qui reconnat lesmots qui possdent au moins un symbole ne faisant pas partie de 1 ? Si oui expliquez le principe deconstruction de lautomate. Si non expliquez pourquoi cela est impossible.

    solution

    Oui, cest le complmentaire dans de lautomate qui reconnat 1.

    Q25. (0.75 pt) tant donn lalphabet = {a}. Est-il possible de construire un automate ( nombre)dtats fini qui reconnait un langage fini contenant exactement n mots ? Si oui donnez un exempledautomate (qui dpend de n). Si non expliquez pourquoi cela est impossible.

    solution

    An = // q1a // q2

    a // . . .a // qn

    a // qn+1 reconnat {ai | 1 i n}

    Exercice 5 : Minimisation (4 pt)

    On considre lautomate suivant, les tats initiaux sont annots par i et les tats accepteurs par a :

    A 1a 2 3 4 5 i6 7 8a 9

    b 4 7 9 9 7 1 6 7 6

    c 5 2 8 5 2 2 2 8 2

    a 1 4 6 4 4 3 9 3 9

    Q26. (0.5 pt) Le langage reconnu par lautomate ci-dessus est-il vide ? Justifiez votre rponse.

    solution

    L (A) 6= car le mot "b" est reconnu par lexcution (6, "b") b(1, "") reconnat le mot "b" puisque 6 Init(A)et 1 Accept(A).

    Q27. (1.5 pt) Minimisez lautomate en justifiant chaque tape de lalgorithme. Les 23 des points sontattribus aux justifications.

    solution

    Minimisation:

    * initial partition = { {1,2,3,4,5,6,7,8,9} }

    states 1 ~/~ 2 : NOT same accepting statusSo, {1,2,3,4,5,6,7,8,9} is splitted into {1,8} |_| {2,3,4,5,6,7,9}

    states 1 ~/~ 8 : NOT same behavior on symbol cSo, {1,8} is splitted into {1} |_| {8}

    states 2 ~/~ 3 : NOT same behavior on symbol cSo, {2,3,4,5,6,7,9} is splitted into {2,4,5,6,7,9} |_| {3}

    states 2 ~/~ 6 : NOT same behavior on symbol bSo, {2,4,5,6,7,9} is splitted into {2,4,5,7,9} |_| {6}

    states 2 ~/~ 7 : NOT same behavior on symbol bSo, {2,4,5,7,9} is splitted into {2,4,5} |_| {7,9}

    * final partition = { {1} , {2,4,5} , {3} , {6} , {7,9} , {8} }

  • Q28. (1 pt) Dessinez lautomate minimis.

    solution

    voir Figure 2

    Q29. (1 pt) Si lautomate navait aucun tat accepteur quel serait lautomate minis ? Lalgorithmede minimisation donnerait-il cet automate ? Justifiez votre rponse.

    solution

    Si lautomate navait aucun tat accepteur alors il reconnatrait le langage vide { } et lautomate minimal quireconnat ce langage est //

    yy.

    Lalgorithme de minimisation commence par regrouper tous les tats puis il spare les tats accepteurs des tatsnon accepteurs.Sil ny a que des tats non accepteurs, il ny a aucune raison de les sparer. La minimisation est donc termineet a construit une unique classe dquivalence contenant tous les tats de lautomate de dpart. Le rsultat estdonc un automate un seul tat, non accepteur.

  • solution

    A

    1 a b

    2

    a

    4

    3

    a

    b

    a b

    Det(A)

    {1} b

    {1,2}

    a

    {1,3,4} b

    {1,2,3}

    ab

    a

    b

    a

    E

    1 b

    2

    a

    4

    3

    a

    b

    a

    b

    a

    Comp(E)

    1 b

    2

    a b

    3

    a a

    4

    b

    X a b

    a

    b

    A_x_Comp(E)

    (1,1) b

    (1,2)

    a

    (2,2)

    a

    (4,1)

    (4,X)

    (4,4)

    b

    (1,3)

    a

    (2,3)

    a

    (3,3)

    a

    a

    a

    (1,4)

    b

    (3,2)

    a

    a

    a

    (1,X)

    b

    a b

    (2,X)

    a

    (3,X)

    a b

    a

    (3,4)

    b

    b

    a

    (3,1)

    b

    b

    a b

    b

    a

    b

    b

    a

    b

    Figure 1

  • MinEqc(A)

    Eq{6}

    Eq{1}

    b

    Eq{2,4,5}

    c Eq{3}

    a

    a

    b c

    Eq{8} c

    Eq{7,9}

    b

    a

    c a

    b

    b

    c

    a

    a

    c

    b

    Figure 2 Exercice 5: Q28. lautomate A minimis