Professional Documents
Culture Documents
u softverskom inženjerstvu
04 Minimizacija automata
ETFBL
Dunja Vrbaški
21-22/L
A = (S, Σ, 𝜎, s0, F)
- S - skup stanja
- Σ - alfabet
- 𝜎 - funkcija prelaza, 𝜎: S x Σ → S
- s0 - inicijalno stanje
- F - skup ciljnih stanja
A = (S, Σ, 𝜎, s0, F)
- F = {q1} → q0 q0 q2
- 𝜎: q2 q1 q2
𝜎(q0, 1) = q0 𝜎(q0, 0) = q2 * q1 q1 q1
𝜎(q2, 1) = q1 𝜎(q2, 0) = q2
𝜎(q1, 1) = q1 𝜎(q1, 0) = q1
Proširena funkcija prelaza 𝜎*
𝜎: S x Σ → S
𝜎*: S x Σ* → S
𝜎*(s, ε) = s
𝜎*(s, wa) = 𝜎(𝜎*(s, w), a)
Automat je nedeterministički
Zatvorenost za:
- konkatenaciju
- *
- komplement
- obrnutost {0, 01, 100} i {0, 10, 001}
- homomorfizam
- inverzni homomorfizam
- …
?
Minimizacija automata
Minimizacija automata
- nedostižna
- ekvivalentna
Nedostižno stanje
(a, b) ∊ R
aRb
= relacija ekvivalencije
< relacija poretka (nije ekvivalencije, asimetrična je)
S = studenti
a i b imaju isti rođendan
a i b su istog uzrasata
a i b idu na isti fakultet?
Testiranje softvera
safe_add(x, y)
Formalni mehanizam za podelu skupa
Umesto celog skupa - može se posmatrati predstavnik jedne homogene grupe, jedne
grupe gde elementi imaju neko zajedničko svojstvo
faktor skup
bookofproofs.org
Umesto cele klase mogli bismo uzeti jednog predstavnika - faktor automat.
Tvrđenje
Definišemo relaciju IL za jezik L⊆ Σ*:
IL je relacija ekvivalencije
Definišemo relaciju IL za jezik L⊆ Σ*:
IL je relacija ekvivalencije
𝜎*([x], a) = [xa]
s0 = [ε]
F = { [x] ∈ SL| x ∈ L }
AL
- prihvata jezik L
- minimalni broj stanja
- broj stanja je jednak broju klasa ekvivalencije
𝜎*([x], a) = [xa]
𝜎*([x], a) = [xa]
𝜎*([y], a) = [ya]
→
[xa] = [ya]
p≡q
ili su oba finalna ili nisu oba nisu finalna
𝜎*(p, a) ∈ F i 𝜎*(q, a) ∈ F
p≡q
ili su oba finalna ili nisu oba nisu finalna
𝜎*(C, ε) ∈ F i 𝜎*(G, ε) ∉ F
𝜎*(p, a) ∈ F i 𝜎*(q, a) ∈ F
𝜎*(A, 01) = C ∈ F
𝜎*(G, 01) = E ∉ F
𝜎*(p, a) ∈ F i 𝜎*(q, a) ∈ F
A i E su ekvivalentna stanja
𝜎*(A, 1) = F 𝜎*(A, 0) = B
𝜎*(E, 1) = F 𝜎*(E, 0) = H
→
𝜎*(A, 1x) = 𝜎*(E, 1x) 𝜎*(B, 0) = G 𝜎*(B, 1) = C
𝜎*(H, 0) = G 𝜎*(H, 1) = C
→
𝜎*(A, 0x) = 𝜎*(E, 0x)
𝜎*(p, a) ∈ F i 𝜎*(q, a) ∈ F
A i E su ekvivalentna stanja
𝜎*(A, 1) = F 𝜎*(A, 0) = B
𝜎*(E, 1) = F 𝜎*(E, 0) = H
→
𝜎*(A, 1x) = 𝜎*(E, 1x) 𝜎*(B, 0) = G 𝜎*(B, 1) = C
𝜎*(H, 0) = G 𝜎*(H, 1) = C
→
𝜎*(A, 0x) = 𝜎*(E, 0x)
Postupak:
- početak: poskup sadrži parove u kojima je jedno stanje završno
- iterativno: ako postoji a ∈ Σ za koje (𝜎(p, a), 𝜎(q, a)) ∈ SM onda i (p, q) ∈ SM
Nema dalje!
q0, q4, q5
nisu ekvivalentna
(pripadaju različitim klasama
ekvivalencije)
Izbaciti nedostižna stanja
Sažeti ekvivalentna stanja
Upotpunjavanje automata
Automat je potpun ako u svakom stanju, za svaki simbol postoji najmanje jedno stanje u koje se
može preći.
Kako bismo mi implementirali prepoznavanje da li zadata reč pripada jeziku definisanim ovim
automatom?
ili
if a
next
while a and not eof
next
if b
next
if EOF
OK
else
ERROR
else
ERROR
else
ERROR
if ERROR
while not eof
next