Vj1 Konacni Automati

  • Upload
    noname

  • View
    125

  • Download
    6

Embed Size (px)

DESCRIPTION

Vj1 Konacni Automati 2010

Citation preview

  • Vjeba 1. Konani automati (DKA, NKA, -NKA)

    Deterministiki konani automat (DKA)

    Deterministiki konani automat opisuje rad mnogih tehnikih sustava. Teorija konanog automata ima znatnu ulogu u gradnji tih sustava. Konani automati imaju primjenu u podruju modeliranja u medicini, psihologiji, biologiji i dr.

    DKA ini: - skup stanja Q s poetnim stanjem q 0 Q i skupom prihvatljivih stanja FQ - funkcija prijelaza : QQ jednoznano odreena znakom na ulazu iz skupa i

    stanjem iz skupa Q

    DKA prihvaa niz ako nakon svih proitanih znakova niza x prijee iz poetnog stanja q 0 u jedno od prihvatljivih stanja FQ tj ako vrijedi:

    (q 0 , x) = p, p F

    DKA prihvaa skup L(DKA) * ako je:

    ( ) ( ){ }FxqxdkaL = ,0

    gdje je L(DKA) podskup svih moguih nizova. Za nizove koji nisu u skupu L(DKA) kae se da ih DKA ne prihvaa.

    Model DKA

    Slika 1. Model konanog automata

    ( )F,q,,,Qdka 0=

  • Minimizacija konanog automata

    Postoji beskonano DKA koji prihvaaju isti jezik. Bilo bi uinkovito izgraditi DKA sa to manjim brojem stanja.

    Istovjetnost stanja (ekvivalentnost)

    - stanje p DKA M istovjetno je stanju p DKA M ako M u p prihvaa isti skup nizova kao M u p

    - vrijedi:

    Smanjivanje broja stanja

    - grupu istovjetnih stanja zamijeniti jednim - prvo istovjetna stanja oznaiti istim imenom - sve prijelaze oznaiti tim imenom - u skupu Q ostaviti samo jedno stanje - po potrebi funkciju prijelaza

    Dva automata su istovjetna ako su istovjetna njihova poetna stanja. Uvjeti istovjetnosti stanja npr. p i q su:

    - uvjet podudarnosti: p i q moraju biti prihvatljiva ili neprihvatljiva - uvjet napredovanja: za bilo koji znak, slijedea stanja (p,a)= (q,a)

    Za odreivanje istovjetnosti stanja p i q postoje tri algoritma:

    1. Metoda primitivne tablice 2. Huffman-Mealy algoritam 3. Metoda tablice implikanata

    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 odreuju se sljedeim algoritmom:

    1. U listu dohvatljivih stanja upie se poetno stanje q0. 2. Lista se proiri sa skupom stanja {p| p= (q0, a), za sve a *} 3. Za sva stanja qi DS proiri 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 prihvaa isti jezik s manjim brojem stanja. Poto je postupak odbacivanja nedohvatljivih stanja jednostavniji od postupka odbacivanja istovjetnih stanja, uinkovitije je naprije prvo primjeniti postupak odbacivanja nedohvatljivih stanja, a zatim postupak odbacivanja istovjetnih stanja.

    ( ) ( ) ( ) ( ) FwpFwpiliFwpFwp ,,,,

  • Sinteza DKA

    DKA moemo konstruirati na vie naina:

    1. Ukoliko je regularni jezik zadan regularnim izrazom DKA konstruiramo sljedeim putem:

    RI -> -NKA -> NKA -> DKA

    2. Transformacijom regularne gramatike (LLRG ili DLRG):

    LLRG -> DLRG -> Jednostavna RG -> NKA -> DKA

    3. Putem regularnih izraza, koristei pravila indeksiranja i rasprostiranja:

    - oznaimo mjesta unutar regularnog izraza - mjesta mogu biti osnovna i predosnovna - indeksiramo osnovna mjesta - rasprostiremo indekse koristei pravila o rasprostiranju - dodijelimo izlazni simbol akceptorskim mjestima - reduciramo indekse koristei pravila o redukciji - ispiemo primitivnu tablicu automata

    Izgradnja DKA iz zadanog NKA

    - Za bilo koji NKA M={Q, , , q 0 , F} mogue je izgraditi istovjetni DKA M={Q,,,q0,F}

    - NKA i DKA su istovjetni ako prihvaaju isti jezik L(M)=L(M) - ako je Q={q0,...,qi} izgradimo Q=2Q, [p0,...,pj] Q, p k Q; pa vrijedi:

    Q={[], [q0],..., [qi], [q0, q1],..., [q0, qj],..., [q0,...,qj] } - F=skup svih [p0,...,pj] gdje je barem jedan pk F - poetno stanje je q0=[q0] - funkcija prijelaza DKA jest: ([p0,...,pl],a) = [r0,...,rj] ako i samo ako je

    ({p0,...,pl},a) = {r0,...,rj} - mnoga stanja dobivenog DKA su nedostupna, pa ih eliminiramo - DKA minimiziramo radi uinkovite programske realizacije

    Primjer 1. Izgradnja DKA iz NKA Zadan je NKA M=({q0,q1}, {0,1}, , q0, {q1})

    - tablica prijelaza:

    0 1 q0 {q0,q1} {q1} 0 q1 {} {q0,q1} 1

  • Q={[], [q0], [q1], [q0, q1]} F={[q1], [q0, q1]}; q0=[q0]

    je: ([q0], 0)=[q0, q1] ([q0],1)=[q1] ([q1], 0)=[] ([q1],1)=[q0,q1] ([q0, q1], 0)=[q0, q1] ([q0,q1],1)=[q0,q1] ([], 0)=[] ([], 1)=[]

    dobiven je DKA M=(Q, {0,1}, , [q0], {[q1], [q0, q1]})

    0 1 [q0] [q0,q1] [q1] 0 [q1] [] [q0,q1] 1

    [q0,q1] [q0,q1] [q0,q1] 1 [] [] [] 0

    Primjer 2. Sinteza DKA putem regularnih izraza koristei pravila o indeksiranju i rasprostiranju.

    Napisati regularni izraz za automat koji na izlazu daje 1 ako je posljednjih 5 bita sekvence bez strukture bilo 10110 (dozvoljeno preklapanje).

    Regularni izraz za traeni automat glasi:

  • Nedeterministiki konani automat (NKA)

    Za razliku od deterministikog konanog automata funkcija prijelaza NKA je nedeterministika. Umjesto (q,a)=p imamo: (q,a)={p0, p1, ....}. Za ulazni niz w postoji vie staza, niz se prihvaa ako bar jedna staza zavrava prihvatljivim stanjem. Svaki put kada imamo vie moguih prijelaza, stvori se toliki broj DKA koji paralelno obrauju niz. Niz se prihvaa ako staza makar jednog DKA zavri prihvatljivim stanjem. Za bilo koji NKA N mogue je izgraditi DKA D tako da je L(N)=L(D). NKA ini:

    - skup stanja Q s poetnim stanjem q0Q i skupom prihvatljivih stanja FQ - funkcija prijelaza : Q2 Q odreena znakom na ulazu iz skupa i skupom

    stanja iz skupa Q - 2 Q je skup svih podskupova skupa stanja Q

    NKA prihvaa niz ako je u P makar jedno stanje iz F:

    ( )F,q,,,Qnka 0=

  • NKA prihvaa skup L(NKA) *

    Za nizove koji nisu u skupu L(NKA) kae se da ih NKA ne prihvaa.

    Sinteza NKA

    NKA moemo konstruirati na dva naina:

    1. Ukoliko je regularni jezik zadan regularnim izrazom NKA konstruiramo sljedeim putem:

    RI -> -NKA -> NKA

    2. Ako je regularni jezik zadan regularnom gramatikom (LLRG ili DLRG) postupak sinteze je sljedei:

    LLRG -> DLRG -> Jednostavna RG -> NKA

    Izgradnja NKA iz zadanog -NKA

    - Za bilo koji -NKA M={Q, , , q0, F}mogue je izgraditi istovjetni NKA M={Q,,,q0,F}

    - - NKA i NKA su istovjetni ako prihvaaju isti jezik L(M)=L(M) - izgradimo Q= Q ={q0,...,qi} - poetno stanje je q0=q0 - F=F{q0} ako -OKRUENJE(q0) sadri barem jedno stanje pk F, inae F=F -

    Primjer 3. Izgradnja NKA iz -NKA

    Zadan je -NKA automat koji prihvaa nizove:

    koji zapoinju proizvoljnim brojem nula, nastavljaju proizvoljnim brojem jedinica i zavravaju proizvoljnim brojem dvojki

    L={0 n 1 m 21 | n, m ,l 0}, ukljuuje i prazni niz

    ( ) = FPPxq ;,0

    ( ) ( ){ }= FxqxnkaL ,0

    ( ) ( )aqaq ,, =

  • izgradimo Q = Q = {q0, q1, q2} poetno stanje je q0=q0 F = F{q0} = {q2}{q0} = {q0, q2}

    jer je -OKRUENJE(q0)F = {q0, q1, q2}{q2} = {q2} funkcija : jer je:

    itd.

    Dobije se NKA:

    0 1 2 q0 {q0,q1,q2} {q1,q2} {q2} 1 q1 {q1,q2} {q2} 0 q2 {q2} 1

    q1

    2 0,1

    q2

    1 0

    q0 1,2

    0,1,2

    q1

    2 q2

    1 0

    q0

    ( ) { }2100 ,,0, qqqq =( ) ( )( )( ) { }21000 ,,0,,OKRUENJE0, qqqqq ==

  • Nedeterministiki konani automat s -prijelazima (-NKA)

    -NKA automati omoguavaju promjenu stanja za prazni niz (epsilon). Promjena stanja bez itanja znaka naziva se -prijelaz. Slino NKA automatu, -NKA automat prihvaa niz ako postoji najmanje jedan slijed prijelaza iz poetnog u prihvatljivo stanje,ukljuujui -prijelaze uz uvjet da se proitaju svi znakovi niza.

    -NKA ini:

    - skup stanja Q s poetnim stanjem q 0 Q i skupom prihvatljivih stanja FQ - funkcija prijelaza : Q({})2 Q odreena znakom na ulazu iz skupa

    proireno s i skupom stanja iz skupa Q - 2 Q je skup svih podskupova skupa stanja Q

    Definiranje funkcije prijelaza zahtijeva i definiranje funkcije -okruenje(q) (-closure). Stanju q Q dodijeljujemo skup R Q tako da R sadri sva ona stanja u koja q prelazi iskljuivo prijelazom:

    -OKRUENJE(q) = {p| p jest q ili -NKA prelazi iz q u p iskljuivo -prijelazom}

    Izgradnja -NKA iz zadanog RI

    Za bilo koji regularni izraz R mogue je izgraditi -NKA M tako da vrijedi L(M) = L(R).

    za RI koji oznaava jezik L()={} izgradimo -NKA M=({i,f}, , {}, i, {f}) koji ne prihvaa ni jedan niz:

    f i

    za RI koji oznaava jezik L()={} izgradimo -NKA M=({i,f}, , {(i,)=f}, i, {f}) koji prihvaa prazni niz

    f i

    za RI a koji oznaava jezik L(a)={a} izgradimo -NKA M=({i,f}, , {(i,a)=f}, i, {f}) koji prihvaa niz a, ne prihvaa niti b od b

    ( )FqQnka ,,,, 0 =

  • f i a

    za RI r1r2 koji oznaava jezik L(r1r2) = L(r1)L(r2) izgradimo -NKA M postupkom: 1. izgradimo -NKA M1 = (Q1, 1, 1, i1, {f1}) da je L(M1) = L(r1) 2. izgradimo -NKA M2 = (Q2, 2, 2, i2, {f2}) da je L(M2) = L(r2) 3. f1 i f2 nemaju prijelaza,

    tj. a(1{}) : 1(f1,a) = i b(2{}) : 2(f2,b) = 4. stanja iz Q1 i Q2 imenujemo tako da je Q1 Q2 = 5. izgradimo -NKA M =(Q1 Q2 {i,f}, 1 2, , i, {f})

    f je novo prihvatljivo stanje, a f1 i f2 vie nisu prihvatljiva konstruiramo :

    1. (i, ) = {i1, i2} 2. (q, a) = 1(q, a) q(Q1\{f1}) i a(1{}) 3. (q, b) = 2(q, b) q(Q2\{f2}) i b(2{}) 4. (f1, ) = (f2, ) = {f}

    f i M1 f1 i1

    M2 f2 i2

    za RI r1r2 koji oznaava jezik L(r1r2) = L(r1)L(r2) izgradimo -NKA M postupkom: 1. izgradimo -NKA M1 = (Q1, 1, 1, i1, {f1}) da je L(M1) = L(r1) 2. izgradimo -NKA M2 = (Q2, 2, 2, i2, {f2}) da je L(M2) = L(r2) 3. f1 i f2 nemaju prijelaza,

    tj. a(1{}) : 1(f1,a) = i b(2{}) : 2(f2,b) = 4. stanja iz Q1 i Q2 imenujemo tako da je Q1 Q2 = 5. izgradimo -NKA M =(Q1 Q2 {i,f}, 1 2, , i1, {f2}) 6. i1 je novo poetno stanje, a f1 vie nije prihvatljivo 7. i2 vie nije poetno stanje, a f2 je novo prihvatljivo stanje

    konstruiramo : 1. (q, a) = 1(q, a) q(Q1\{f1}) i a(1{}) 2. (q, b) = 2(q, b) q(Q2\{f2}) i b(2{}) 3. (f1, ) = {i2}

  • M1 f1 i1 M2 f2 i2

    za RI r1* koji oznaava jezik L(r1*) = L(r1)* izgradimo -NKA M postupkom: 1. izgradimo -NKA M1 = (Q1, 1, 1, i1, {f1}) da je L(M1) = L(r1) 2. f1 nema prijelaza, tj. a1: 1(f1,a) = 3. izgradimo -NKA M =(Q1 {i,f}, 1, , i, {f}) 4. i1 vie nije poetno stanje, a f1 vie nije prihvatljivo

    konstruiramo : 1. (i, ) = (f1, ) = {i1, f} 2. (q, a) = 1(q, a) q(Q1\{f1}) i a(1)

    M1 f1 i1 f i

    Primjer 4. Iz regularnog izraza r = 01* 1 konstruirati -NKA automat.

    - RI r rastavimo na r = r1 r2 ; r1= 01* i r2 = 1 - za r2 = 1 izgradimo -NKA:

    - r1 = 01* rastavimo na r1 = r3r4 ; r3 = 0 i r4 = 1* - za r3 = 0 izgradimo -NKA:

    q4 q3 0

    q2 q1 1

  • - r4 = 1* rastavimo na r4 = r5* ; r5 = 1 - za r5 = 1 izgradimo -NKA:

    - za r4 = 1* izgradimo -NKA prema pravilu p6:

    - za r1 = r3r4 izgradimo -NKA prema pravilu p5:

    - za r = r1 r2 izgradimo -NKA prema pravilu p4:

    q8 q7

    q6 q5 1 q4 q3 0

    q8 q7

    q6 q5 1

    q6 q5 1

  • Zadatak 1. Iz zadanog regularnog izraza konstruirati deterministiki konani automat s izlazom (Moore-ov model) koristei pravila o indeksiranju i rasprostiranju.

    Zadatak 2. Iz zadanog regularnog izraza izgraditi NKA automat sljedeim putem:

    RI -> -NKA -> NKA

    q8 q7

    q6 q5 1 q4 q3 0

    q2 q1 1 q10

    q9