Formální definice

11
Formální definice • Konečná množina vnitřních stavů Q • Konečná vstupní abeceda A Počáteční stav q 0 • Množina přijímacích stavů K

description

Formální definice. Konečná množina vnitřních stavů Q Konečná vstupní abeceda A Počáteční stav q 0 Množina přijímacích stavů K. Automat na kávu. Q= {0,1,2,3,4,5} A={1,2,5} q 0 =0 K={5}. Automat na rozpozn ávání jazyka. Vstupní abeceda A - PowerPoint PPT Presentation

Transcript of Formální definice

Page 1: Formální definice

Formální definice

• Konečná množina vnitřních stavů Q

• Konečná vstupní abeceda A

• Počáteční stav q0

• Množina přijímacích stavů K

Page 2: Formální definice

Automat na kávu

• Q={0,1,2,3,4,5}

• A={1,2,5}

• q0=0

• K={5}0 1 2 3 4 5

1 1 2 3 4 5 5

2 2 3 4 5 5 5

5 5 5 5 5 5 5

Page 3: Formální definice

Automat na rozpoznávání jazyka

• Vstupní abeceda A• Množina A* všech posloupností symbolů z

A (slov)• Jazyk J je podmnožina A* • Pokud se po přečtení slova dostane do stavu

z K, přijímá slovo• Automat přijímá právě slova z J,

rozpoznává J

Page 4: Formální definice

Příklad

• A={0,1}• J je jazyk tvořený slovy se

sudým počtem jedniček

• Q={qs, qL}

• q0 = qs

• p(qs,0)= qs, p(qL,0)= qL, p(qS,1)= qL, p(qL,1)= qs

qs

qL

1

Page 5: Formální definice

Úkol

• Navrhněte konečný automat nad abecedou {0,1}, který bude rozpoznávat jazyk tvořený slovy, kde je každý znak zdvojený

• Například 001100, 00, 00001111 má být přijato

• 00110, 001101, 0 nemá být přijato

Page 6: Formální definice

Úkol

• Navrhněte konečný automat nad abecedou {0,1}, který bude rozpoznávat jazyk tvořený souměrnými slovy o sudé délce.

• Například 001100, 00, 0000110000 má být přijato

• 00110, 001101, 0, 00100 nemá být přijato

Page 7: Formální definice

Regulární jazyky

• Jazyky rozpoznatelné konečným automatem• Pro manipulaci nepotřebují ukládat do paměti nic

kromě konečně mnoha hodnot• Vzato do důsledku jsou všechny jazyky regulární

a všechny počítače konečné automaty• Ve skutečnosti se jedná o jazyky, které lze

interpretovat (Basic, Python, makra pro Excel)• Jazyky typu Pascalu, C, vyžadují paměť, zásobník

Page 8: Formální definice

Nedeterministický konečný automat

• Přechodová funkce není jednoznačná

• Příklad: automat rozpoznává jazyk tvořený slovy zakončenými posloupností 010

q0

q1

q2

qK

0,1

1

0

00,10,1

0,1

Page 9: Formální definice

Převod NKA na KA

q0

q1

q02

q2

q01

q0K

q12

q1K

q012

q2K

q12K

q01K

q02K

q012K

qK

1

0 1

Page 10: Formální definice

Převod NKA na KA

q0

q1

q02

q2

q01

q0K

q12

q1K

q012

q2K

q12K

q01K

q02K

q012K

qK

1

0

0

1

0

1

Page 11: Formální definice

Převod NKA na KA

• Každý nedeterministický konečný automat lze převést na deterministický konečný automat.

• Množina rozpoznávaných jazyků je stejná (regulární jazyky)

• Takto vzniklý deterministický konečný automat může mít až 2n vnitřních stavů, efektivita výpočtu tedy může být katastrofální.

• Často se ale většina stavů nevyužije a efektivita výpočtu je přijatelná.