konacni automati

Post on 23-Oct-2015

84 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Konacni Automati

TRANSCRIPT

Rezime:Konačni automati

Primer konačne automatizacije

• Postoje stanja off i on, automatizacija započinje u off i pokušava da dostigne “prihvatno stanje” on

• Koja sekvenca f-ova vodi do prihvatnog stanja?

• Odgovor: {f, fff, fffff, …} = {f n: n je neparan}

• Ovo je konačna automatizacija nad alfabetom {f}

off on

f

f

Deterministički konačni automati

• Deterministička konačna automatizacija (DFA) je 5-člani skup (Q, Σ, δ, q0, F) gde

– Q je konačan skup stanja

– Σ je azbuka

– δ: Q× Σ→ Q je funkcija prelaza

– q0 ∈ Q je početno stanje

– F ⊆ Q je skup prihvatnih stanja (ili konačnih stanja).

• Na dijagramima, prihvatna stanja će biti označena duplim krugovima

Primer

q0 q1 q21 0

0 0,11

azbuka Σ = {0, 1}stanja Q = {q0, q1, q2}početno stanje q0prihvatna stanja F = {q0, q1}

stan

ja

ulazi

0 1q0q1q2

q0 q1q2

q2q2

q1

tabelafunkcije prelaza δ:

Jezik od DFA

Jezik od DFA (Q, Σ, δ, q0, F) je skup svih stringovanad Σ koji, počinjući iz q0 i prateći prelaze kako se string čita sa leva na desno, će dostići neko od prihvatnih stanja.

• Jezik od M je {f, fff, fffff, …} = {f n: n je neparan}

off on

f

f

M:

q0 q1

0 1

1

0

Koji su jezici od ovih automata?

Primeri

q0

q1

q2

q3

q4

a

a

a a

a

b

b

bb

b

q0 q1

0 1

1 0 q2

0, 1

Σ = {0, 1} Σ = {a, b}

Primeri

• Konstruisati DFA nad azbukom {0, 1} koji prihvatasve stringove sa najviše tri 1-ce

Primeri

• Konstruisati DFA nad azbukom {0, 1} koji prihvatasve stringove sa najviše tri 1-ce

• Odgovor

q0 q1

0

1 1 q2

0

q31 q4+

0, 10

1

0

Primeri

• Konstruisati DFA koji prihvata jezik

L = {010, 1} ( Σ = {0, 1} )

Primeri

• Konstruisati DFA koji prihvata jezik

• Odgovor

L = {010, 1} ( Σ = {0, 1} )

q0

q1

q01 q010

qdie0, 1

0

1 0

0, 11

0 1

0, 1

Primeri

• Konstruisati DFA nad azbukom {0, 1} koji prihvata sve stringove koji završavaju sa 101

Primeri

• Konstruisati DFA nad azbukom {0, 1} koji prihvata sve stringove koji završavaju sa 101

• Putokaz: DFA mora “zapamtiti” poslednja 3 bitastringa koji čita

Primeri

0

1

……

q0

q1

q00

q10

q01

q11

q000

q001

q101

q111

0

1

0

1

0

1

1

1

1

1

0

• Konstruisati DFA nad azbukom {0, 1} koji prihvatasve stringove koji završavaju na 101

• Skica odgovora:

Nedeterminizam

Da li bi bilo lakše ako…

• Pretpostavimo da možemo da pogadjamo kada string koji čitamo ima samo 3 preostala simbola

• Onda bi jednostavno mogli da potražimo sekvencu 101i da prihvatimo kada je vidimo

qdie

1 0 13 preostala simbola

Ovo nije DFA!

Nedeterminizam

• Nedeterminizam je sposobnost pogadjanja, koju kasnije možemo verifikovati

• Neformalni nedeterministički algoritmi za stringove koji završavaju na 101:

1. Pogoditi da li se prilazi kraju ulaza

2. Ako je pogodak da, tražiti 101 i prihvatiti ako se vidi

3. Ako je odgovor ne, pročitati jedan simbol više i ići na korak 1

Nedeterministička konačna automatizacija

• Ovo je vrsta automatizacije koja nam dozvoljava da pogadjamo

• Svako stanje može imati nula, jednu, ili više prelaza (tranzicija) obeleženih istim simbolom

1 0 1

0, 1

q0 q1 q2 q3

Semantika pogadjanja

1 0 1

0, 1

q0 q1 q2 q3

• Stanje q0 ima dva prelaza označena sa 1

• Nakon čitanja 1, imamo izbor da ostanemo u stanju q0ili da se pomerimo u stanje q1

Semantika pogadjanja

1 0 1

0, 1

q0 q1 q2 q3

• Stanje q1 nema prelaza označenih sa 1

• Nakon čitanja 1 u q1, zaustavljamo se (eng. die); nakon čitanja 0, nastavljamo do q2

Semantika pogadjanja

1 0 1

0, 1

q0 q1 q2 q3

• Stanje q3 nema prelaza koje izlaze iz njega

• Nakon čitanja bilo čega u q3, zaustavljamo se (eng. die)

Značenje automatizacije

1 0 1

0, 1

q0 q1 q2 q3

Pogodite da li ste 3 simbolaod kraja ulaza

Ako jeste, pogodite da li ćete videti sekvencu 101

Proverite da li ste na kraju ulaza

Primer

• Konstruisati NFA nad azbukom {0, 1} koja prihvataone stringove koji sadrže sekvencu 001

Primer

• Konstruisati NFA nad azbukom {0, 1} koja prihvata one stringove koji sadrže sekvencu 001

• Odgovor

0 0 1

0, 1

q0 q1 q2 q3

0, 1

Primer

• Konstruisati NFA koji prihvata sve stringove sa parnim brojem 0-la ili neparnim brojem 1-ca

r0 r1

1 1

0

0Paran broj 0-la

s0 s1

0 0

1

1Neparan broj 1-ca

q0

ε

ε

ε-prelazi Se mogu uzeti za džabe (bez čitanja ulaza)

Formalna definicija

• Nedeterministička konačna utomatizacija (NFA) je5-člani skup (Q, Σ, δ, q0, F) gde

– Q predstavlja konačan skup stanja

– Σ predstavlja azbuku

– δ: Q× (Σ ∪ {ε}) → podskup od Q je funkcija prelaza

– q0 ∈ Q je početno stanje

– F ⊆ Q je skup prihvatnih stanja (ili konačnih stanja).

• Razlike u odnosu na DFA:

– Funkcija prelaza δ može ići u nekoliko stanja

– Dozvoljeni su ε-prelazi

Primer

azbuka Σ = {0, 1}stanja Q = {q0, q1, q2}

početno stanje q0prihvatno stanje F = {q2}

stan

ja

ulazi

0 1

q0q1q2

{q1}

tabelafunkcije prelaza δ:

{q0, q1}

q0ε, 1 0

0

εq1 q2

ε

{q1}

{q2}

Jezik od NFA

Jezik od NFA je skup svih stringova za koje postojineka putanja takva da, počinjući iz q0, vodi do prihvatnog stanja dok se string čita sa leva na desno (i ε-prelazi se uzimaju po potrebi).

• Primer

ε, 00, 001, 101 su prihvaćeni, ali 11, 0110 nisu

q0ε, 1 0

0

εq1 q2

Primeri

q0ε, 1

ε

0

q1 q2

q0ε, 1

ε

0

q1 q2

ε1

2

00

0

01

2

3

4

5

q0ε, 1

ε

0

q1 q2

01

2 3

4

q0ε, 1

ε

0

q1 q2

01

2

3

54

ili

ili

Primeri

q0ε , 1

ε

0

q1 q2

15

001

0

q0ε, 1

ε

0

q1 q2

01

4

q0ε, 1

ε

0

q1 q2

01

2

3

4

1012

3

11

q0ε, 1

ε

0

q1 q2

01

2

STOP

STOP

NFA su moćni kao i DFA

• Očigledno, NFA može uraditi sve što i DFA može

• Ali, može li uraditi više?

NFA su moćni kao i DFA

• Očigledno, NFA može uraditi sve što i DFA može

• Ali, može li uraditi više?

• Teorema

Ako je jezik L prihvaćen od nekog NFA, onda jeisto tako prihvaćen od nekog DFA.

NE!

Konverzija NFA u DFA

Dokaz teoreme

• Pokazaćemo generalni način konvertovanja svakogNFA u ekvivalentni DFA

• Korak 1: Pojednostaviti NFA eliminacijom ε-prelaza

• Korak 2: Konvertovati pojednostavljeni NFA (bez ε-na) u DFA

Ovo radimo prvo

Intuicija konverzije NFA u DFA

1 0

0, 1

q0 q1 q2NFA:

DFA: 1q0 q0 or q1

1

q0 or q2

1

0 0

0

Intuicija konverzije NFA u DFA

1 0

0, 1

q0 q1 q2NFA:

DFA: 1q0 {q0, q1}

1

{q0, q2}

1

0 0

0

Generalna metoda

NFA DFAstanja q0, q1, …, qn ∅, {q0}, {q1}, {q0,q1}, …, {q0,…,qn}

Jedan za svako podskup stanja u NFA

Početno stanje

q0 {q0}

prelazi δ δ’({qi1,…,qik}, a) =

δ(qi1, a) ∪…∪ δ(qik, a)

Prihvatna stanja

F ⊆ Q F’ = {S: S sadrži neka stanja u F}

Zašto metoda radi?

• Na kraju, DFA prihvata kada je u stanju koje sadržineka prihvatna stanja od NFA

• Tako da DFA prihvata samo kada NFA prihvata

Nakon čitanja n simbola, DFA je u stanju{qi1,…,qik} ako i samo ako je NFA u jednom od stanja qi1,…,qik

Konvertovanje pomoću generalne metode

1 0

0, 1

q0 q1 q2NFA:

DFA:{q0, q1}

{q0, q2} {q0, q1, q2}

{q1, q2}

{q0}

{q1}

{q2}

0, 1

0

1

0

1

0, 1

0

1

0 1

0

1

0

1

Konvertovanje pomoću generalne metode

{q0, q1}

{q0, q2} {q0, q1, q2}

{q1, q2}

{q0}

{q1}

{q2}

0, 1

0

1

0

1

0, 1

0

1

0 1

0

1

0

1

Nakon eliminisanja “dead” stanja i prelaza, završavamo sa istom sikom

Dokaz teoreme

• Pokazaćemo generalni način konverzije svakog NFA u ekvivalentni DFA

• Korak 1: Pojednostaviti NFA eliminacijom ε-prelaza

• Korak 2: Konvertovati pojednostavljeni NFA (bez ε-na) u DFA

Eliminacija ε-prelaza

q0 q1 q2ε, 1 0

0

εεNFA:

Tabela prelaza odgovarajućeg NFA:st

anja

ulazi

0 1

q0q1q2

{q1, q2}{q0, q1, q2}

{q0, q1, q2}

Prihvatna stanja od NFA: q0, q1, q2

Eliminacija ε-prelaza

q0 q1 q2ε, 1

0

0

εNFA:

NFA bez ε-na: q0 q1 q20, 1

0

0

0

0, 1

0

Eliminacija ε-prelaza: Generalna metoda

• Za svako stanje qi i svaki simbol a ∈ Σ, zameniti svaku putanju iz qi kao

• Za svako prihvatno stanje qf, napraviti prihvatnim sva

stanja vezana sa njim preko ε-na:

q4

qi q5 q2 q0 q5ε ε εa qi

q5

a

ε

ε

qi q5a qi

a

ε ε

ε

q9 q7 q3 qf

top related