Formální modely výpočtu Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
Formální modely výpočtu Konečný automat Zásobníkový automat Turingův stroj RASP stroje
Několik ukázkových úloh Seřadit posloupnost n čísel podle velikosti Vynásobit dvě čtvercové matice n x n Najít nejkratší Hamiltonovskou cestu v grafu s n vrcholy (Travel Salesman Problem, TSP) Na základě zdrojového textu programu zjistit, zda pro všechna data řeší správně danou úlohu (Problém verifikace programů)
Předpokládám operací/s N=5N=10N=20N=50 Řazení s s s s Násobení s10 -5 s s1 ms TSP s36 ms770 let10 49 let Verifikace Neřešitelné neřešitelné
Každých 5 let se výkon počítačů zdvojnásobí DnesZa 5 letZa 100 let Řazení Násobení TSP VerifikaceNic
Konečný automat
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 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
Příklad A={0,1} J je jazyk tvořený slovy se sudým počtem jedniček Q={q s, q L } q 0 = q s p(q s,0)= q s, p(q L,0)= q L, p(q S,1)= q L, p(q L,1)= q s qsqs qLqL 1
Ú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 , 00, má být přijato 00110, , 0 nemá být přijato
Ú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 , 00, má být přijato 00110, , 0, nemá být přijato