You are on page 1of 6

B2 - Seminar 5

Minimizarea automatelor deterministe

Exe1.

delta a a
q0 q2 q1
q1 q3 q1
q2 q5 q3
q3 q4 q3
q4 q4 q4
q5(F) q5 q5

Sep, (ro) ρ ( ρ este rel. de inseparabilitate)


q1 q2 q3 q4 q5 sep
0 0 0 0 1 q0
(1) (1) (1) (1)
0 0 (q0,q3) 0 (q0,q4) 1 q1
(1)
0 (q0,q1) 0 (q0,q3) 1 q2
(q0,q4)
(1) (1)
0 (q1,q3) 1 q3
(q1,q4)

1 q4

sep[qi,qj]=1 ddaca qi sep qj i =0,n-1, j=i+1,n


Verificam rel. Sep intre
q0 si q1:
sep[ delta(q0,a)=q2 , delta(q1,a)=q3 ] =0 => (q0,q1) ->lista[q2,q3]
sep[ delta(q0,b)=q1 , delta(q1,b)=q1 ] = 0

q0, q2
sep[ delta(q0,a)=q2 , delta(q2,a)=q5 ] = 1

q0, q3
sep[ delta(q0,a)=q2 , delta(q3,a)=q4 ] = 0 => (q0,q3) ->lista[q2,q4]
sep[ delta(q0,b)=q1 , delta(q3,b)=q3 ] = 0=> (q0,q3) ->lista[q1,q3]

q0,q4
sep[ delta(q0,a)=q2 , delta(q4,a)=q4 ] = 0 => (q0,q4) ->lista[q2,q4]
sep[ delta(q0,b)=q1 , delta(q4,b)=q4 ] = 0 => (q0,q4) ->lista[q1,q4]

q1, q2
sep[ delta(q1,a)=q3 , delta(q2,a)=q5 ] = 1

q1, q3
sep[ delta(q1,a)=q3 , delta(q3,a)=q4 ] = 0 => (q1,q3) ->lista[q3,q4]
sep[ delta(q1,b)=q1 , delta(q3,b)=q3 ] = 0 =>
NU ​scriem : (q1,q3) ->lista[q1,q3]

Q2, q3
sep[ delta(q2,a)=q5 , delta(q3,a)=q4 ] = 1

Q2, q4
sep[ delta(q2,a)=q5 , delta(q4,a)=q4 ] = 1

Q3, q4
sep[ delta(q3,a)=q4 , delta(q4,a)=q4 ] = 0
sep[ delta(q3,b)=q3 , delta(q4,b)=q4 ] = 0

q​i​ q ρ j​ i=0,5

q1 ρ q3
q1 ρ q4
q3 ρ q4
[q0]={q0}
[q1]={q1,q3,q4} =[q3]=[q4]
[q2]={q2}
[q5]={q5}

Exe2.
delta 0 1

q0 q0 q1

q1 q1 q2

q2 q2 q3

q3 q3 q4

q4 q4 q4

q1 q2 q3 q4 sep

0 0 0 1 q0

(1) (1) (1)

0 (q0,q1) 0 (q0,q2) 1 q1

(1) (1)

0 (q1,q2) 1 q2
(1)

1 q3

q0,q1
sep[ delta(q0,0 ) =q0 , delta(q1, 0 ) = q1 ] = 0
sep[ delta(q0, 1) =q1 , delta(q1,1 ) =q2 ] = 0 => (q0,q1) -> lista[q1,q2]

q0,q2
sep[ delta(q0,0 ) =q0 , delta(q2, 0 ) = q2 ] = 0
sep[ delta(q0, 1) =q1 , delta(q2,1 ) =q3 ] = 0 => (q0,q2) -> lista[q1,q3]

q0,q3
sep[ delta(q0,0 ) =q0 , delta(q3, 0 ) = q4 ] = 1

q1,q2
sep[ delta(q1,0 ) =q1 , delta(q2, 0 ) = q2 ] = 0
sep[ delta(q1, 1) =q2 , delta(q2,1 ) =q3 ] = 0 => (q1,q2) -> lista[q2,q3]

q1,q3
sep[ delta(q1,0 ) =q1 , delta(q3, 0 ) = q3 ] = 0
sep[ delta(q1, 1) =q2 , delta(q3,1 ) =q4 ] = 1

q2,q3
sep[ delta(q2,0 ) =q2 , delta(q3, 0 ) = q3 ] = 0
sep[ delta(q2, 1) =q3 , delta(q3,1 ) =q4 ] = 1

[q0]={q0}
..
[q4]={q4}

Automatul este deja minimal.

Expresii regulate

L(E1|E2) = L(E1) ∪L(E2)


L(E1.E2) = L(E1).L(E2)
L(E​*​)=(L(E))​*

a​* ​---> {a​n​ , n >=0}


aa​* ​ n>=1

(0|1)(0|1)

(L(0) ∪L(1) ) (​L(0)∪L(1))


{0} {1} {0} {1}
{0,1}{0,1}= {00, 01, 10, 11}

L((a|b)​*​) = {a,b}​*

L( a​∗​bb​∗​c​∗​ccc) = { a​n​b​m​c​k​ , n>=0, m>=1, k>=3 }


L((aa)​∗​(bbb)​∗​) = {a​2n​b​3m​, n.m>=0, }
L((aa|b)​∗​) = {multimea a, b , cu a-uri consecutive nr par}
a*(a|b)* -> {a,b}​*
a*|(a|b)*|b* - >{a,b}​*
(aa​∗​|bb​∗​)​∗ ​ → (a|b)​*
p(q|r) = pq | pr
(p|q)r = pr | qr
(p|ϵ)(p|ϵ) = pp|p|ϵ

L = {cuvinte peste {a,b,c} care contine exact 2 a-uri}


%a%a% % = (c|b)​*

L = {cuvinte peste {a,b,c} care contine cel putin 2 a-uri}


% a % a % %=(a|b|c)​*

L = {cuvinte peste alfabetul a,b de lungime para}


( (a|b) (a|b)) *​

L = {nr naturale pare}

(1|2|...|9) (1|2|...|9|0)​*​ (0|2|4|6|8) | (0|2|4|6|8)

L = { multimea cuvintelor peste alfabetul a,b,c care NU se termina cu


“bc”}
(a|b|c)​*​(a|b|ac|cc) | c | eps

You might also like