Professional Documents
Culture Documents
vj1 Konacni Automati 2010 PDF
vj1 Konacni Automati 2010 PDF
DKA čini:
- skup stanja Q s početnim stanjem q 0 ∈ Q i skupom prihvatljivih stanja F⊆Q
- funkcija prijelaza δ: Q→Σ×Q jednoznačno određena znakom na ulazu iz skupa Σ i
stanjem iz skupa Q
dka = (Q, Σ, δ , q 0 , F)
DKA prihvaća niz ako nakon svih pročitanih znakova niza x prijeđe iz početnog stanja q 0 u
jedno od prihvatljivih stanja F⊆Q tj ako vrijedi:
δ(q 0 , x) = p, p∈F
DKA prihvaća skup L(DKA) ⊆ Σ* ako je:
L(dka ) = {x δ (q0 , x ) ∈ F }
gdje je L(DKA) podskup svih mogućih nizova. Za nizove koji nisu u skupu L(DKA) kaže se
da ih DKA ne prihvaća.
Model DKA
- stanje p DKA M istovjetno je stanju p’ DKA M’ ako M u p prihvaća isti skup nizova
kao M’ u p’
- vrijedi:
δ ( p, w) ∈ F ∧ δ ′( p′, w) ∈ F ′ ili δ ( p, w) ∉ F ∧ δ ′( p′, w) ∉ F ′
Smanjivanje broja stanja
Dva automata su istovjetna ako su istovjetna njihova početna stanja. Uvjeti istovjetnosti stanja
npr. p i q su:
Nedohvatljiva stanja
Stanje p DKA M=(Q, Σ, δ, q0, F) je nedohvatljivo ako ne postoji nit jedan niz w ∈ Σ* za koji
vrijedi da je p=(q0, w). Dohvatljiva stanja određuju se sljedećim algoritmom:
1. U listu dohvatljivih stanja upiše se početno stanje q0.
2. Lista se proširi sa skupom stanja {p| p= δ(q0, a), za sve a ∈ Σ*}
3. Za sva stanja qi ∈ DS proširi se lista skupom stanja {p| p= δ(qi, a), stanje p
prethodno zapisano u listu, za sve a ∈ Σ*}.
Minimalni DKA
Odbacivanjem istovjetnih i nedohvatljivih stanja dobije se istovjetni DKA s minimalnim
brojem stanja. Ne postoji nijedan drugi DKA koji prihvaća isti jezik s manjim brojem stanja.
Pošto je postupak odbacivanja nedohvatljivih stanja jednostavniji od postupka odbacivanja
istovjetnih stanja, učinkovitije je naprije prvo primjeniti postupak odbacivanja nedohvatljivih
stanja, a zatim postupak odbacivanja istovjetnih stanja.
Sinteza DKA
DKA možemo konstruirati na više načina:
- tablica prijelaza:
0 1 ⊥
q0 {q0,q1} {q1} 0
q1 {} {q0,q1} 1
Q’={[∅], [q0], [q1], [q0, q1]} F’={[q1], [q0, q1]}; q0’=[q0]
0 1 ⊥
[q0] [q0,q1] [q1] 0
[q1] [∅] [q0,q1] 1
[q0,q1] [q0,q1] [q0,q1] 1
[∅] [∅] [∅] 0
Napisati regularni izraz za automat koji na izlazu daje 1 ako je posljednjih 5 bita sekvence bez
strukture bilo 10110 (dozvoljeno preklapanje).
nka = (Q, Σ, δ , q 0 , F)
NKA prihvaća niz ako je u P makar jedno stanje iz F:
δ (q0 , x ) = P; P∩F ≠∅
NKA prihvaća skup L(NKA) ⊆ Σ*
L(nka ) = {x δ (q0 , x ) ∩ F ≠ ∅}
Sinteza NKA
2. Ako je regularni jezik zadan regularnom gramatikom (LLRG ili DLRG) postupak
sinteze je sljedeći:
LLRG -> DLRG -> Jednostavna RG -> NKA
(( ))
δˆ(q0 ,0) = ε − OKRUŽENJE δ δˆ(q0 , ε ),0 = {q0 , q1, q2 }
• itd.
Dobije se NKA:
0 1 2 ⊥
q0 {q0,q1,q2} {q1,q2} {q2} 1
q1 ∅ {q1,q2} {q2} 0
q2 ∅ ∅ {q2} 1
0 1 2
0,1 1,2
q0 q1 q2
0,1,2
Nedeterministički konačni automat s ε-prijelazima (ε-NKA)
ε-NKA automati omogućavaju promjenu stanja za prazni niz ε (epsilon). Promjena stanja bez
čitanja znaka naziva se ε-prijelaz. Slično NKA automatu, ε-NKA automat prihvaća niz ako
postoji najmanje jedan slijed prijelaza iz početnog u prihvatljivo stanje,uključujući ε-prijelaze
uz uvjet da se pročitaju svi znakovi niza.
ε-NKA čini:
ε − nka = (Q, Σ, δ , q0 , F )
Za bilo koji regularni izraz R moguće je izgraditi ε-NKA M tako da vrijedi L(M) = L(R).
i f
ε
i f
ε i 1 M1 f1 ε
i f
ε ε
i 2 M2 f2
i ε i1 M1 f1 ε f
Primjer 4.
Iz regularnog izraza r = 01* ∨ 1 konstruirati ε-NKA automat.
1
q1 q2
- r1 = 01* rastavimo na r1 = r3r4 ; r3 = 0 i r4 = 1*
- za r3 = 0 izgradimo ε-NKA:
0
q3 q4
- r4 = 1* rastavimo na r4 = r5* ; r5 = 1
- za r5 = 1 izgradimo ε-NKA:
1
q5 q6
q7 ε q5 1 q6 ε q8
0 ε ε 1 ε
q3 q4 q7 q5 q6 q8
ε ε
ε
0 ε ε 1 ε
q3 q4 q7 q5 q6 q8
ε