THLR 2016–2017 TD 5 – page 1/2
Stabilité des langages rationnels TD 5
Version du 26 septembre 2016
Exercice 1 – Négation d’expression rationnelle
Posons Σ = {a,b}. SoitL le langage dénoté par l’expression rationnellea?(ba?ba?ba?)?. Notre but est de construire une expression rationnelle dénotant le langage complémentaireL= Σ?\L.
1. Lest-il forcément rationnel ? Justifiez votre réponse.
2. Proposez un automate fini déterministeALreconnaissantL.
3. DonnezAL, l’automate complémentaire deAL.
4. Appliquez l’algorithme de Brzozowski et McCluskey présenté en cours pour construire l’expression rationnelle correspondant à l’automateAL.
5. Le complémentaire construit est-il toujours valide siΣ ={a,b,c}? Dans la négative, que faut-il changer à notre procédure de complémentation d’expression rationnelle pour qu’il le soit ?
Exercice 2 – Relations entre langages rationnels
1. Soit deux langages rationnelsL1etL2tels queL2 ⊂L1. Le langageL1\L2est-il rationnel ?
2. Soient deux langagesL1etL2tels queL2 ⊂L1. Si l’on sait queL2est rationnel, peut-on dire queL1l’est aussi ? Justifiez votre réponse.
Exercice 3 – Intersection de langages rationnels On considère les deux automates suivants :
A1 = 0 1 2
a b
a b
a,b
etA2= 0
1
2 3 4
a b
a b
a b a
b b
a
L’objectif est de montrer que ces deux automates sont équivalents en calculantL(A1)∩L(A2) etL(A1)∩ L(A2).
1. Que doivent valoirL(A1)∩L(A2) etL(A1)∩L(A2) si les automates sont équivalents ? 2. CalculezA1etA2. Vous émonderez ces automates.
3. Pour deux automates non-déterministesA=(Σ,Q,Q0,F, δ) etA0 =(Σ,Q0,Q00,F0, δ0), le produit synchro- niséA&A0est l’automate (Σ,Q&,Q&0,F&, δ&) défini par :
— Q& =Q×Q0,
— Q&0 =Q0×Q00,
— F&=F×F0,
— δ&={((s,s0),l,(d,d0))∈Q&×Σ×Q&|(s,l,d)∈δet (s0,l,d0)∈δ0}.
THLR 2016–2017 TD 5 – page 2/2 Avec cette définition il est facile de voir que les mots reconnus parA&A0sont des mots à la fois deAet deA0. En fait on aL(A&A0)=L(A)∩L(A0).
Utilisez cette définition pour calculer les automatesA1&A2etA2&A1. 4. Qu’en conclure sur l’équivalence deA1etA2?
5. Utilisez l’algorithme de minimisation présenté en cours pour réduire l’automateA2. Vous indiquerez la partition des états de l’automate à chaque itération de l’algorithme.
Exercice 4 – Un langage difficile à définir
1. PosonsΣ = {a,b}. Soit Lun langage rationnel sur Σ. En utilisant des notations ensemblistes (sur les langages) ou des expressions rationnelles, comment définiriez-vous le langageL0rassemblant tous les mots qui possèdentexactement unfacteur dans le langageL?
Par exemple siL={ab,ba}, alorsaabb∈L0,bbbba∈L0, maisaabbba<L0. (Indice : essayez la différence ensembliste.)
2. Ce langage est-il rationnel ?