Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 02. 05. 2008 10:33

Washa
Zelenáč
Příspěvky: 2
Reputace:   
 

polynomiální alg.

cau potreboval bych poradit s timto prikladem :) nevite nekdo?

http://matematika.havrlant.net/forum/upload/118-alg.JPG

Offline

 

#2 02. 05. 2008 11:52

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: polynomiální alg.

Je potřeba ověřit, že
* daný automat má totální přechodovou funkci (tj. že pro každý stav a symbol je určen následující stav)
* všechny dosažitelné stavy jsou přijímající (ověříme procházením do šířky)
Pokud je obojí splněno, automat akceptuje jakékoliv slovo (tj. akceptuje $\Sigma^*$). Pokud jedno z toho splněno není, pak automat nevyhoví.
Složitost tohoto algoritmu je MN, kde M je počet stavů automatu a N počet znaků abecedy, což je polynomiální.

Pokud bychmom chtěli pro nějaký jazyk L složitější než $\Sigma^*$ zjistit, zda jej A rozpoznává, bylo by potřeba pro L sestavit takový automat, který ho rozpoznává, ten optimalizovat a porovnat s optimalizovanou verzí automatu A. To jde opět v polynomiálním čase (algoritmy na optimalizaci DFA jistě najdeš na internetu, třeba http://is.muni.cz/elportal/estud/fi/js0 … maty_I.pdf ).


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

#3 24. 05. 2008 12:09

Washa
Zelenáč
Příspěvky: 2
Reputace:   
 

Re: polynomiální alg.

Cau chtel jsem se jese zeptat nejak moc si nevim rady ten automat si mam jako vymyslet jakykoliv co myslite ? a kdyz prijim slova nad abecedou epsilon to znamena ze prijma kazde slovo ze?

Offline

 

#4 26. 05. 2008 15:10

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: polynomiální alg.

Algoritmus by měl pracovat pro a jakýkoliv automat. Pokud chceš  testovat, jak algoritmus funguje, vymysli si automat jakýkoliv. Testování na konkrétním automatu je ale pouze způsob, jak jeho fungování pochopit, ne způsob, jak jeho korektnost dokázat. Domnívám se ale, že u takto jednoduchých algoritmů není potřeba korektnost dokazovat.

Automat pracující nad abecedou sigma pracuje se slovy, které obsahují pouze znaky ze sigma. Víme tedy, že pokud slovo obsahuje znak, který do sigma nepatří, automat ho nepřijme. O tom, která slova automat přijme věta "A (pracuje)/ (přijímá slova) nad Sigma" nic neříká.


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

#5 27. 05. 2008 12:28

blboun_obecny
Zelenáč
Příspěvky: 2
Reputace:   
 

Re: polynomiální alg.

Muzete prosim nekdo trochu rozvest to dokazovani jednotlivych kroku?

Offline

 

#6 29. 05. 2008 23:58

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: polynomiální alg.

Tak to zkusím popsat polopatě, jak ostatně název webu doporučuje :o)

Procházíme do šířky. Máme tedy frontu, do které si ukládáme stavy. Nejdříve si do ní uložíme počáteční stav. Pak postupujeme v krocích, jeden krok se skládá z těchto částí:
1) odebereme stav S z fronty.
2) zapamatujeme si, že stav S už jednou ve frontě byl
3) pro každý symbol abecedy zjistíme, do jakého stavu se tímto symbolem z S přejde.
  - Pokud stav S není přijímající, pak skončíme, protože jsme našli slovo, které automat neakceptuje
  - Pokud přechod není definován (jinými slovy přechodová funkce není totální), pak skončíme, protože jsme našli slovo, které automat neakceptuje
  - Pokud přechod vede do stavu Q, který ještě nebyl ve frontě, přidáme Q do fronty

Kroky 1), 2) a 3) opakujeme, než nastane situace, že není do fronty co přidat.

Pokud jsme skončili v kroku 3), oznámíme uživateli, že automat jazyk Sigma* neakceptuje. Pokud jsme kroky 1), 2), 3) vždy prošli bez problému, pak oznámíme, že automat jazyk akceptuje.


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson