Vous êtes sur la page 1sur 5

TD Langages - XML

Exercices Corriges TD 2

Travaux Diriges de Langages & XML - TD 2


1

Automates deterministes

Exercice 1 Dans chacun des cas suivants, donner un automate deterministe reconnaissant le langage
sur lalphabet {0, 1} :
lensemble des mots se terminant par 00 ;
lensemble des mots ayant au moins 3 zeros consecutifs ;
lensemble des mots dont lavant-dernier symbole est un 1 ;
lensemble des mots qui contiennent au plus deux 0 consecutifs et au plus deux 1 consecutifs ;
lensemble des mots commencant par 1 qui, interpretes comme des entiers en representation
binaire, sont congrus `
a 0 modulo 5.
:
Corrige
1

PQRS
+3 WVUT
0 l

WVUT
/ PQRS
1

WVUT
HIJK
ONML
/ PQRS
2

1
1

1.

PQRS
+3 WVUT
0 l

WVUT
/ PQRS
1

WVUT
/ PQRS
2

WVUT
HIJK
ONML
/ PQRS
3

0,1

1
1

2.
XYZ[
+3 _^]\
00

XYZ[
/ _^]\
01 l

0
_^]\
PQRS
WVUT
/ XYZ[
10
AA
1
O
AA
AA
AA 1
AA
0
AA
AA
AA
XYZ[
_^]\
PQRS
WVUT
11

3.

1
1
PQRS
HIJK
ONML
WVUT
HIJK
ONML
WVUT
HIJK
ONML
+3 WVUT
/ PQRS
/ PQRS
0
1
2
>
>>
>>
_
>
L
>>
>>
>>
>> 0
>>
>>
>> 0
>>
>> 1
>>
>>
>>
0
>> 1
>>
>>
>>
>>
>>
>>
>>
1 >>



0
0
WVUT
WVUT
HIJK
ONML
PQRS
WVUT
HIJK
ONML
/ PQRS
/ PQRS
3
5
4

0, 1

4.
5. Chaque etat represente la congruence modulo 5.
Si x b [5], alors x0 2b [5] et x1 2b + 1 [5].

Universite Paris-Dauphine

Licence MI2E - 2005/2006

N. Maudet, E. Lazard, Y. Chevaleyre

Exercices Corriges TD 2

0, 1

WVUT
PQRS
+3 i

TD Langages - XML

PQRS
WVUT
HIJK
ONML
0
r
r
H
r

r



1 rr
0 
 1
rrr

r

r




r

ry rr


PQRS
WVUT
PQRS
PQRS
WVUT
1
4 WVUT
1 f

5 4
lll 

::
l
l
l
1
l
::

0 llll

:
0
lll
l

0 :::

l
0 llll
 

&
lll
PQRS
WVUT
PQRS
WVUT
2 o
3

Exercice 2
1. Soit lalphabet = {a, b}. Donner lautomate deterministe qui reconnat les mots
qui contiennent ab. Peut-on construire facilement un automate reconnaissant les mots ne contenant pas ab? Pourriez-vous en deduire une methode generale?

2. Lalphabet utilise devient = {a, b, c}. Etendre


lautomate precedent pour quil reconnaisse les
mots contenant ab et commencant par c. La methode precedente fonctionne-t-elle encore pour
reconnatre les mots ne contenant pas ab ou ne commencant pas par c?
:
Corrige
1. Lautomate suivant reconnat les mots contenant ab.

PQRS
+3 WVUT
0

WVUT
/ PQRS
1

WVUT
HIJK
ONML
/ PQRS
2

a,b

Pour reconnatre les mots ne contenant pas ab, il faut prendre son complementaire, cest
-`a-dire transformer chaque etat final en non-final et vice-versa :

PQRS
HIJK
ONML
+3 WVUT
0

WVUT
HIJK
ONML
/ PQRS
1

WVUT
/ PQRS
2

a,b

2. Lautomate suivant reconnat les mots contenant ab et commencant par c.


XYZ[
+3 _^]\
1

WVUT
/ PQRS
0 l

b,c
a

, PQRS
WVUT
1

WVUT
HIJK
ONML
/ PQRS
2

a,b,c

Prendre le complementaire ne suffit pas car les mots commencant par a ou b ne sont pas
reconnus (pas de transitions depuis letat de depart). Le complementaire doit etre construit
depuis un automate complet. Il faut donc rajouter un puits avec les transitions manquantes puis
prendre le complementaire :

c
WVUT
HIJK
ONML
XYZ[
WVUT
PQRS
/ PQRS
3+ _^]\
1
0 l
@@
@@
@@
@@ a,b
@@
@@
@@
@@

PQRS
WVUT
HIJK
ONML
p

Universite Paris-Dauphine

b,c
a

, PQRS
WVUT
HIJK
ONML
1

WVUT
/ PQRS
2

a,b,c

a,b,c

Licence MI2E - 2005/2006

N. Maudet, E. Lazard, Y. Chevaleyre

TD Langages - XML

Exercices Corriges TD 2

Exercice 3 Donner lautomate deterministe reconnaissant les mots ayant un nombre pair de a et un
nombre pair de b.
:
Corrige

_^]\
PQRS
WVUT
3+ XYZ[
pp l

, XYZ[
_^]\
pi
L
a

XYZ[
_^]\
ip l


, PQRS
WVUT
ii

Exercice 4 Donner intuitivement le langage reconnu par lautomate suivant. 0


1

a
0
1

b
1
0

: Il sagit du langage dont les mots ont un nombre impair de b.


Corrige
Exercice 5 Montrer quun langage L fini est reconnaissable.
: Il suffit de construire larbre n-aire de reconnaissance. Prenons un exemple. Si L =
Corrige
{01, 110, 111, 11, 00}, on construit lautomate :
()*+
+3/.-,OO
OOO0
OOO
OO'
1
()*+
/.-,
()*+?
/.-,
?? 1
?
1
 0 ??
()*+
/.-,


()*+
/.-,


()*+
/.-,

?
?? 0
?
 1 ??
()*+
/.-,


()*+
/.-,



Exercice 6 Montrer que lautomate donne par la figure ci-dessous reconnat les mots compose dautant de 0 que de 1 et dont chaque prefixe a au plus un 1 de plus que de 0 et au plus un 0 de plus que
de 1.
WVUT
HIJK
ONML
+3 PQRS
0 l

, PQRS
WVUT
1

1
1

PQRS
WVUT
2

WVUT
/ PQRS
3 j
0,1

: On dit quun mot est correct si chaque prefixe a au plus un 1 de plus que de 0 et au plus
Corrige
un 0 de plus que de 1. On proc`ede par recurrence et on va montrer que :
(q0 , x) = q0 x est correct et a autant de 0 que de 1 ;
(q0 , x) = q1 x est correct et a un 0 de plus que de 1 ;

Universite Paris-Dauphine

Licence MI2E - 2005/2006

N. Maudet, E. Lazard, Y. Chevaleyre

Exercices Corriges TD 2

TD Langages - XML

(q0 , x) = q2 x est correct et a un 1 de plus que de 0 ;


(q0 , x) = q3 x nest pas correct.
Si |x] = 0, alors x = et (q0 , ) = q0 et a autant de 0 que de 1.
Soit |y| = n avec y correct et ayant autant de 0 que de 1.
1. Si y = x0, x est correct et (q0 , x) = q2 et donc (q0 , y) = (q2 , 0) = q0 .
2. Si y = x1, x est correct et (q0 , x) = q1 et donc (q0 , y) = (q1 , 1) = q0 .
Soit |y| = n avec y correct et ayant un 1 de plus que de 0. Si y = x0, alors x a deux 0 de moins
que de 1 et nest pas correct. Cest impossible car x est un prefixe de y qui ne serait alors pas
correct non plus. Donc y = x1 et donc x a autant de 0 que de 1, donc (q0 , x) = q0 et donc
(q0 , y) = (q0 , 1) = q2 .
Idem si y a un 0 de plus que de 1 ou nest pas correct.
Supposons que (q0 , y) = q0 avec |y| 1. Si y = x0, alors (q0 , x) = q2 (car il faut apr`es arriver
en q0 en lisant un 0) donc par hypoth`ese de recurrence, x est correct et a un 1 de plus que de 0.
Donc y est correct avec autant de 0 que de 1.
Idem si y = x1 et si (q0 , y) = q1 , q2 ou q3.

Exercice 7 On consid`ere le dispositif ci-dessous

Une bille est lachee en A ou B (A = 0, B = 1). Les trois leviers font tomber la bille `
a gauche ou
a droite. De plus, lorsquune bille passe sur un levier, celui-ci change dorientation apr`es. Modeliser
`
le dispositif avec un automate, une sequence etant acceptee si la derni`ere bille sort en D.

: Un etat est caracterise par la position des trois leviers et de la sortie de la derni`ere bille.
Corrige
Letat qi correspond `a la valeur i en binaire sur l3 l2 l1 o`
u / = 0 et \ = 1.

Universite Paris-Dauphine

Licence MI2E - 2005/2006

N. Maudet, E. Lazard, Y. Chevaleyre

TD Langages - XML

Exercices Corriges TD 2

PQRS
WVUT
0
? G / >>
// >>

// >>

// >>>

>>
//

>>
//
>>

/
>>
//


0D
//1C >>>0C
1D 
PQRS
WVUT
3 OO
>>

o7
>> OOO ///
>>
 oooo ?
>
O
>>
o
>> OO/O/
o

o
>>
>>
/O/ OO
oo
o
>>
O
o
1Doo 
>> / O1D
O
O
o
>
/

>
O
o
O
>
o
/

0C
0C
OOO >>>
>> /
oo

o
/
O
o

>> /
OOO >>
o
> 

OOO>
ooo
ooo
'
PQRS
WVUT
WVUT
PQRS
PQRS
WVUT
WVUT
PQRS
5 Og O
6
1
2
_>> OOO
oo
o
/W /_>>>
o
>> OOO
o

/ >>
oo
OOO
>>

ooo

o
OOO /// >>> 0D
>>
o
0C
 oo
>
OO /
>>
oooo1C
>> 1D OOO/O/ >>>

o
/O/ OO >>
>>
oo
>>
ooo
// OOOO>>
o
o


O
>>
ow o
//

>>
PQRS
WVUT
//
 1D
7
>
1D
0C
0C
>>
//

>>
/

>>
/

>> //
 
>> //
>> /

>> //

/
>>
 
PQRS
WVUT
4

En fait, chaque etat est divise en 2, suivant que la derni`ere bille est sorti en C ou en D. Seuls les
etats D sont finaux bien s
ur. Les transitions partant des deux etats sont les memes mais arrivent soit
sur un etat C, soit sur un etat D, comme indique sur la transition.

Universite Paris-Dauphine

Licence MI2E - 2005/2006

N. Maudet, E. Lazard, Y. Chevaleyre