Upload
sahbi-sk
View
213
Download
0
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