Sunteți pe pagina 1din 5

Lucrarea de laborator 2 la disciplina Limbaje formale i automate

Tema : Automate finite


1. Reprezentai automatul sub form de graf.
2. Construii gramatica regulat echivalent cu automatul dat.
3. Este sau nu automatul dat determinist? De ce?
4. Dac automatul este nedeterminist, construii automatul finit determinist echivalent
Reprezentai AFD n form de graf.
5. Inventai un ir peste vocabularul care nu va fi acceptat de ctre automat. Artai acest lucru scriind
secvena (secvenele) de configuraii respectiv.
6. Pentru automatul finit AF=(Q, , , q0, F) construii 5 iruri acceptate de automat. Lungimea irurilor s nu
fie mai mic dect n+2, unde n este numrul de stri din Q.
7. Pentru fiecare ir x scriei secvena de configuraii pentru acceptarea irului, adic (q0, x) (qi1, x1)
(qi2, x2) (qf, ), unde qf F.
8. Petru toate cele 5 iruri obinute construii aplicnd lema de pompare descompunerea x=uvw.
AF = ( Q, ,, q0, F )
Q = {q0, q1, q2, q3}
= {a, b, c, d}
F = {q3}
(q0,a) ={q1}
(q1,b) ={q0}
(q1,b) ={q1}
(q1,c) ={q2}
(q2,d) ={q2}
(q2,d) ={q3}

1) Reprezentm automatul sub form de graf:


a

q0

q1
b

q2

q3

2) Construim gramatica regulat echivalent cu automatul dat:


1

G V N , VT , P, S

1) VN = Q = {q0, q1, q2, q3}


2) VT = ={a, b, c, d}
3) S=q0
4) Produciile sunt definite astfel: P=
(q0,a) ={q1}
(q1,b) ={q0}
(q1,b) ={q1}
(q1,c) ={q2}
(q2,d) ={q2}
(q2,d) ={q3}

P'={

1. q0 aq1
2. q1 bq0
3. q1 bq1
4. q1 cq2
5. q2 dq2
6. q2 dq3
7. q2 d}

3) Este sau nu automatul dat determinist? De ce?


Automatul dat este nedeterminist, deoarece din starea q1 prin b se poate trece n 2 stri diferite: q0 sau q1
(q1,b) ={ q0,q1},
i din starea q2 prin d se poate trece n 2 stri diferite: q2 sau q3
(q2,d) ={q2, q3}
4) Dac automatul este nedeterminist, construii automatul finit determinist echivalent.
Reprezentai AFD n form de graf.
AFD = ( Q', , ', q0 , F' ),
= {a, b, c, d}
'
Q ={ [ q0 ] }
({ q0 }, a) = ( q0, a) = { q1}
'( [q0 ], a ) = [ q1 ]
({ q0 }, b) = ( q0, b) =
({ q0 },c) = ( q0, c) =
({ q0 }, d) = ( q0, d) =
'
Q ={ [ q0 ], [q1 ] }
({ q1 }, a) = ( q1, a) =
( { q1 }, b ) = ( q1, b ) = { q0 q1 }
( { q1 }, c) = ( q1, c ) = { q2 }
({ q1 }, d) = ( q1, d) =
Q'={ [ q0 ], [q1 ], [q0 q1 ], [q2] }

' ( [q1 ], b) =[ q0 q1 ]
' ( [q1 ], c) =[ q2 ]

( { q0q1 }, a ) = ( q0, a) ( q1, a) = { q1} = { q1}


' ( [q0 q1 ], a ) = [ q1 ]
( { q0 q1 }, b ) = ( q0, b) ( q1, b) = { q0, q1 } = { q0q1} ' ( [q0 q1 ], b ) = [ q0 q1 ]
( { q0q1 }, c ) = ( q0, c) ( q1, c) = { q2 } = {q2}
' ( [q0 q1 ], c ) = [ q2 ]
( { q0 q1 }, d ) = ( q0, d) ( q1, d) =
'
Q ={ [ q0 ], [q1 ], [q0 q1 ], [q2] }
( { q2 }, a ) = ( q2, a)
( { q2 }, b ) = ( q2, b)
( { q2 }, c ) = ( q2, c)
( { q2 }, d ) = ( q2, d)

=
=
=
= { q2, q3 }

' ( [q2 ], d) = [ q2 q3 ]
2

Q'={ [ q0 ], [q1 ], [q0 q1 ], [ q2 ], [ q2 q3 ] }


( { q2, q3 }, a ) = ( q2, a) ( q3, a) =
( { q2, q3 }, b ) = ( q2, b) ( q3, b) =
( { q2, q3 }, c ) = ( q2, c) ( q3, c) =
( { q2, q3 }, d ) = ( q2, d) ( q3, d) =
Q'={ [ q0 ], [q1 ], [q0 q1 ], [ q2 ], [ q2 q3 ] }
am obinut: AFD = ( Q', , ', q0 , F' ),,
F Q F ,

{ q2, q3 }

= { q2, q3 } ' ( [q2 q3 ], d ) = [ q2 q3]

Q'={ [q0 ], [q1 ], [ q2 ], [q0 q1 ], [q2 q3 ] }

F = { [ q2 q3 ] }

Funciile de tranziie:
( [q0 ], a ) = [ q1 ]
' ( [q1 ], b) =[ q0 q1 ]
' ( [q1 ], c) =[ q2 ]
' ( [q0 q1 ], a ) = [ q1 ]

' ( [q0 q1 ], b ) = [q0 q1 ]


' ( [q0 q1 ], c ) = [q2 ]
' ( [q2 ], d) = [ q2 q3 ]
' ( [q2 q3 ], d ) = [ q2 q3]

'

a
[ q0 ]

[q1]

[q
[ q22]
]
c

[q2,q
q
2 33
]]

[q0q1
]

5) Inventm un ir peste vocabularul care nu este acceptat de ctre automat. Artm acest lucru
scriind secvena (secvenele) de configuraii respectiv.
Cuvintul neacceptat de gramatica dat este
abbd
6) Lungimea irurilor nu este mai mic dect n+2, unde n este numrul de stri din Q.
1. x = abbabbcd
2. x = abababcd
3. x = abbbbbcd
4. x = abbbabcdd
5. x = abcdddd
7) Pentru fiecare ir x scriem secvena de configuraii pentru acceptarea irului:
(q0, x) (qi1, x1) (qi2, x2) (qf, ), unde qf F.
1. (q0, x) = (q0, abbabbcd)(q1, bbabbcd( q0q1, babbcd)( q0q1, abbcd)(q1, bbcd)
3

( q0q1, bcd)( q0q1, cd) (q2, d) (q2q3 , ), q2q3 F acceptare


2. (q0, x) = (q0, abababcd)(q1, bababcd)(q0q1, ababcd)(q1, babcd) )( q0q1, abcd)
(q1, bcd)( q0q1, cd) (q2, d) (q2q3 , ), q2q3 F acceptare
3. (q0, x) = (q0, abbbbbcd)(q1, bbbbbcd)( q0q1, bbbbcd)( q0q1, bbbcd) )( q0q1, bbcd)

( q0q1, bcd)( q0q1, cd) (q2, d), (q2q3 , ), q2q3 F acceptare


4. (q0, x) = (q0, abbbabcdd)(q1, bbbabcdd )(q0q1, bbabcdd )( q0q1, babcdd )( q0q1, abcdd )
(q1, bcdd )( q0q1, cdd ) (q2, dd ) (q2q3, d), (q2q3 , ), q2q3 F acceptare
5. (q0, x) = (q0, abcdddd)(q1, bcdddd)(q0q1, cdddd)(q2, dddd) )(q2q3, ddd)(q2q3, dd)
(q2q3, d)(q2q3, d)( q2q3, ), q2q3 F acceptare
8) Petru toate cele 5 iruri obinute construim aplicnd lema de pompare descompunerea z=uvw:
1. z=uvw
2. |z| n, n=card(Q), |v|1
3. |uv| n
4. uviw L

1. x = abbabbcd
a

q0q1

b
q1

q0q1

q0q

q0q

q2q3

u=a
v=bba
w=bbcd
2. x = abababcd
a

b
q

q0q

a
q

q0
q1
q1

q0 q1

c
q2

q2q3

u= a
v=baba
w=bcd
3. x = abbbbbcd
q
0

q
1

q0q
1

q0q
1

q0q
1

q0q
1

v4

q0q
1

q2q3

u=ab
v=bbbb
4

w=cd

4. x = abbbabcdd

q
1

q0q

q0q

q
1

q0q

q0q

q2q

q2q

u=a
v=bbba
w=bcdd

5. x = abcdddd
a
q
0

b
q
1

q0q

q2q

q2q

q2q

q2q

u=abcd
v=ddd
w=

S-ar putea să vă placă și