Informatia je tudi znanost 8. marec 2014
Predstavitev Andrej (Andy) Brodni Nataša Kristan Uroš Čibej Jurij Mihelič 2
Zaaj proučevati avtomate? Uporabnost v prasi Obdelava in isanje v besedilih Programiranje in algoritmi Opis programsih in naravnih jeziov Razumevanje pravilnosti programov Modeliranje realnih problemov Postopi, protooli, eletronsa vezja, itd. 3
Zaaj proučevati avtomate? Razumevanje omejitev računalniov in programov Kaj je možno izračunati v teoriji? Neizračunljivi oz. neodločljivi problemi (incomputable/undecidable problems) Kaj je možno izračunati v prasi? Težo obvladljivi problemi (intractable problems) 4
Zaaj teoretične osnove RIN in področje formalnih jeziov in avtomatov? PIK 2015 Matura Bober... 5
PIK 2015 izpitni cilji Pridobivanje in razvijanje temeljnega znanja iz informatie Sposobnost uporabe IKT v povezavi z drugim znanjem Razvoj digitalne in informacijse pismenosti Disretne struture Osnove programiranja Algoritmi in zahtevnost (ACM uriul, 2008) Arhitetura in organiziranost računalniših sistemov Operacijsi sistemi Omrežno računalništvo Programsi jezii Vmesni člove računalni Grafično in vizualno računalništvo Inteligentni sistemi Upravljanje informacij Družbena in policna vprašanja Programso inženirstvo Računsa znanost 6
Malce zgodovine Pascal, 17. st Leibniz, 17. st. Babbage, 19. st. Lovelace, 19. st. 7
Malce zgodovine McCulloch in Pitts, 19{42,47} nevrofiziologija Mealey in Moore, 19{55,56} Myhill in Nerode, 1958 Rabin, Scott, 1959 8
Ogrevanje za ončne avtomate 8. marec 2014
Končni avtomat Avtomat? Formalni (matematični) model Opis računalnia oz. računsega stroja Odločitveni (da/ne) stroj Dovolj preprost, da je matematično obvladljiv 10
Končni avtomat Končni? Opis avtomata je ončen Za opis ne porabimo preveč papirja in črnila Opisan s ončno mnogo simboli Pomni laho le ončno mnogo podatov Kljub temu laho opiše nesončnost 11
Stialo za luč Vezje sestavljeno iz: baterije, stiala in luči. Stialo pritisnemo n-rat: Kdaj luč sveti? 12
Stialo za luč Razpoznava zaporedja pritisov stiala lihe dolžine. pritisni start ne sveti sveti pritisni 13
Brodníov problem vol, oza, zelje 2 Čoln Čoln le le za za dva dva Brodní vedno vesla Brodní vedno vesla Vol (brez brodnía) poje ozo Vol (brez brodnía) poje ozo Koza (brez brodnía) poje zelje Koza (brez brodnía) poje zelje 14
Brodníov problem 2 15 http://xcd.com/1134/
Na Na ateri ateri strani strani ree ree je je čoln? čoln? Brodníov problem b vv Kdo se pelje v čolnu? b samo brodni v vol in brodni oza in brodni z zelje in brodni z 2 bvz bvz -- -- bvz bvz 16
Brodníov problem vz b b bvz - z bv v z b v b z bvz - bz v vz b b bvz v bz b bv z bvz 17
Brodníov problem bvz - vz b b bvz v v, z b, v, z z z bv b, z v bz b, v b, v,, z b, z b, v b, v, z v, z bz v bv z z bvz b vz b v bvz 18
Brodníov problem bvz - vz b b bvz v z z bv v bz bz v bv z z bvz b vz b v bvz 19
Brodníov problem bvz - vz b b bvz v bvzb bzvb bv vz zzz bvzb bzvzzb bzvzzb bvzvzvzb z z bv v bz bz v bv z z bvz b vz b v bvz 20
Množice 8. marec 2014
Množice Množica je zbira različnih objetov S = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } A = { a, b, c,, ž } { 1, 2 } = { 2, 1 } = { 1, 1, 2, 2, 1, 2, 1 } 0 12 345 6789 Relacija pripadnosti 1 S, ž A, ž S 22
Množice Množica je zbira različnih objetov S = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } A = { a, b, c,, ž } { 1, 2 } = { 2, 1 } = { 1, 1, 2, 2, 1, 2, 1 } Moč množice (število elementov v množici) S = 10, A = 25 { 1, 2 } = 2, { 1, 1, 2, 2, 1, 2, 1 } = 2 23
Množice Podmnožice A B: vsa element mn. A je tudi element mn. B A B: stroga vsebovanost Nadmnožice B A A B B A A B B bcčdfg ž A aeiou 24
Množice Potenčna množica Vsebuje vse možne podmnožice nee množice A Oznaa: P(A) ali 2A A = { a, b, c } P(A) = {, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a,b,c} } 25
Množice Operacije nad množicami A = { j, a, n,, o } B = { m, e, t,, a } Unija: A B = { j, a, n,, o, m, e, t } Prese: A B = { a, } Razlia: A \ B = { j, n, o } B \ A = { m, e, t } j A n o a B m e t 26
Množice Univerzalna množica U množica vseh objetov o ateri razpravljamo v oviru neega problema U Komplement: A = U \ A C U = čre abecede A = samoglasnii AC = soglasnii A aeiou 27
Množice Urejeni par in n-tera (s, t), (t, s), (9,8,7), (8,9,7), (l,3,3,t) Vsi možni pari Kartezični produt množic A B = { (x, y) : x A in y B } A = { 1, 2, 3 }, B = { a, b } A B = { (1,a), (2, a), (3, a), (1, b), (2, b), (3, b) } 28
Abecede in nizi 8. marec 2014
Abeceda Abeceda je ončna množica simbolov Oznaa Σ, tudi A. slovensa abeceda: { a, b, c,, ž } ASCII, Unicode, binarna abeceda: { 0, 1 } gensa abeceda: { a, c, t, g } brodníov problem: { b, v,, z } 30
Niz Niz ali beseda nad abecedo Σ zaporedje simbolov abecede Σ Σ = { 0, 1 } Σ = { 0, 1, 2 } Σ = { 0, 1, ž } 011, 01010, 11001, 000, 1, 0 fri, abraadabra, avtomat bvzb Pozor 0 ot niz in 0 ot simbol Prazni niz ε (včasih tudi λ) Oznae w, v, x, y, z 31
Niz Dolžina niza je število pozicij/simbolov v nizu ε = 0 1 = 1 10 = 2 011 = 3 0100 = 4 abraadabra = 11 εεεεεabraεεaεdaεεbraεεεεεεε = 11 32
Niz Sti oz. onatenacija nizov: w = 100, x = 110 wx = 100110 xw = 110100 ww = w2 = 100100 www = w3 = 100100100 wxwx = (wx)2 = 100110100110 εw = w = 100 33
Σ* sigma zvezdica Abeceda Σ Množica Σ* Σ 0, 1 Vsi možni nizi nad Σ Kao velia je Σ*? Znamo vse nize našteti? Σ* ε 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 34
Σ* sigma zvezdica Vsi nizi brodníovega problema Σ b, v,, z Σ* ε b, v,, z, bb, bv, b, bz, vb, vv, v, vz, b, v,, z, zb, zv, z, zz, bbb, bbv, bb, bbz, bvb, bvv, bv, bvz, bb, bv, b, bz, bzb, bzv, bz, bzz, vbb, vbv, vb, vbz, vvb, vvv, vv, vvz, vb, vv, v, vz, vzb, vzv, vz, vzz, 35
Jezii 8. marec 2014
Jezi Jezi L nad abecedo Σ L je podmnožica množice Σ* L Σ* Jezi je množica dopustnih nizov Jezi je torej v ontestu avtomatov drug izraz za množico nizov laho ončna ali nesončna ali celo prazna. 37
Primeri jeziov Abeceda Σ = { 0, 1 } Σ 0, 1 L= L={0} L = { 00, 01, 10, 11 } L = { 1, 010, 00100, 0001000, } L = { 1, 10, 100, 1000, 10000, 10000, } L = { ε, 0, 1, 00, 01, 10, 000, 001, 010, 100, 101, 0000, 0001, 0010, 0100, 0101, 1000, 1001, 1010, 00000, } 38
Primeri jeziov Jezi laho tudi opišemo Dvojiši nizi, jer je na sredini 1, ostalo je 0 Dvojiša števila, i so potence števila 2 Nizi nad { 0,1 }, i ne vsebujejo zaporednih 1 L = { 0n1n n 0} L = { w #0(w) = #1(w) } 39
Primeri jeziov bvz - vz b Rešitve brodníovega problema bvzb, bzvb, bvzb, bbbvzb, bvvvzb, bvzb, bvzzzb, bvzvvb, bvzbbb, bvzb, bbbvzb, bbbvzb, b bvz v z z bv v bz bz v bv z z bvz b vz b v bvz 40
Regularni izrazi Način opisovanja nizov oz. jeziov Podprti v večini programsih jeziov Formalni vs. pratični RI Jezie, i jih je moč opisati z regularnimi izrazi imenujemo regularni jezii. Obstajajo tudi jezii, i niso regularni. 41
Σ 0, 1 0 1 00000 0101010 000111000 11110011001111 izr az 0* (11)* (0 + 1)* (0 + 11)* (ε + 0)* Regularni izrazi izr az 0+1 00 + 01 + 001 + 101 ε + 10 + 100 00(ε + 0 + 1 + 11)11 jezi 0, 1 00, 01, 001, 101 ε, 10, 100 0011, 00011, 00111, 001111 jezi ε, 0, 00, 000, 0000, 00000, 00000, 000000, ε, 11, 1111, 111111, 11111111, 1111111111, 111111111111, ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, ε, 0, 11, 00, 011, 110, 1111, 000, 0011, 0110,... ε, 0, 00, 000, 000, 0000, 00000, 000000, 42
Regularni izrazi (bonus) 8. marec 2014
Regularni izrazi Osnovni/atomični regularni izrazi opisuje prazen jezi L( ) = { } ε opisuje jezi L(ε) = { ε } a opisuje jezi L(a) = { a } 44
Regularni izrazi Sestavljeni regularni izrazi Jih tvorimo iz že obstoječih izrazov (p + r) opisuje unijo jeziov L(p + r) = L(p) L(r) (p r) opisuje sti jeziov L(p r) = L(p) L(r) (p*) opisuje iteracijo jezia L(p*) = (L(p))* 45
Jezi Sti oz. onatenacija jeziov A in B AB = vse besede xy, jer x A in y B A = { 123, 456, 789 }, B = { čšž, aeiou } AB = { 123čšž, 456čšž, 789čšž, 123aeiou, 456aeiou, 789aeiou } 46
Jezi Potenca jezia Ln Sti jezia samega s seboj L = { b, v,, z } L0 = { ε } L1 = L L2 = { bb, bv, b, bz, vb, vv,, z, zz } L3 = { bbb, bbv, bb,, zz, zzz } 47
Jezi Iteracija L* L* = L0 L1 L2 L3 L = { b, v,, z } L* = { ε, b, v,, z, bb, bv, } 48
Σ L( ) L( ) == {{ }} L(ε) L(ε) == {{ εε }} L(b) L(b) == {{ bb }} L(v) L(v) == {{ vv }} L() L() == {{ }} L(z) L(z) == {{ zz }} L(b*) L(b*) == {{ ε, ε, b, b, bb, bb, bbb, bbb, bbbb, bbbb, }} L(ε*) L(ε*) == {{ εε }} L( *) L( *) == {{ }} b, v,, z Primeri L(v) L(v) == L(v) L(v) L() L() == {{ v v }} L(vz) L(vz) == {{ vz vz }} L(v ) L(v ) == {{ }} L(vε) L(vε) == {{ vv }} L(v L(v ++ ) ) == L(v) L(v) L() L() == {{ v, v, }} L(v L(v ++ ++ z) z) == {{ v, v,,, zz }} L(v L(v ++ ) ) == {{ vv }} L(v L(v ++ ε) ε) == {{ ε, ε, vv }} L(v L(v ++ z) z) == {{ v, v, z z }} L((v L((v ++ )bb( )bb( ++ z) z) == {{ vbb, vbb, vbbz, vbbz, bb, bb, bbz bbz }} L((ε L((ε ++ vv)bbb) vv)bbb) == {{ bbb, bbb, vvbbb vvbbb }} L((b L((b ++ vv ++ ++ z)*) z)*) == množica množica vseh vseh nizov nizov na na L(b(v + + z)*b) = {bb,bvb, bzzzvvvzzvb, L(b(v + + z)*b) = {bb,bvb, bzzzvvvzzvb, }} L((b L((b ++ vv ++ ++ z)*zz(b z)*zz(b ++ vv ++ ++ z)*zz(b z)*zz(b ++ vv ++ ++ z)*) z)*) == 2x 2x zaporedoma zaporedoma zz zz 49
Problemi 8. marec 2014
Odločitveni problemi Problem Računsi problem (angl. computational problem) Problem, i ga (laho) rešuje računalni Ne gre (le) za aritmetično računanje Primeri problemov: isanje najmanjšega elementa urejanje zaporedja isanje poti v labirintu 51
Odločitveni problemi Naloga oz. primere problema Za problem je možnih mnogo različnih nalog Primeri nalog za problem isanja poti v labirintu 52
Odločitveni problemi Odločitveni problem Računsi problem aterega rešitev je laho le odgovor: da ali ne Gre torej za vprašanja Naloga x, algoritem A, rešitev da/ne 53
Odločitveni problemi Še več problemov Se dani program zacila/ustavi? Ima dani sudou/isalec min/... rešitev? Ima dana enačba ničlo? Je mogoče dani zemljevid pobarvati s štirimi barvami? 54
Odločitveni problemi Je dano število potenca števila 2? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,, 32,, 64,, 128,, 256,, 512,, 1024, Je dano dvojišo število potenca števila 2? 1, 10, 100, 1000, 10000, 100000, 1000000, 55
*Odločitveni problemi Smo z da/ne problemi preveč omejeni? Niti ne, če le znamo pametno spraševati Laho rešimo tudi optimizacijse probleme Problem najmanjše število zaporedja Zaporedje 5 7 4 5 7 8 9 6 4 6 4 7 6 6 5 5 6 4 8 8 8 9 8 8 Laho sprašujemo po vrsti Je 0 najmanjše število danega zaporedja? Je 1 najmanjše število danega zaporedja? Je 2 najmanjše število danega zaporedja? Je 3 najmanjše število danega zaporedja? Je 4 najmanjše število danega zaporedja? Ali pa uporabimo binarno isanje Je najmanjše število danega zaporedja < 5? Je najmanjše število danega zaporedja < 3? 56
Problemi in jezii Pozitivne naloge So naloge problema, za atere je odgovor da. Negativne naloge So naloge problema, za atere je odgovor ne. pozitivne naloge negativne naloge 57
Problemi in jezii Množica vseh pozitivnih nalogo je jezi PS: Tudi množica negativnih nalog je jezi Reševanje problema je torej enaovredno razpoznavanju jezia Ugotavljanje pripadnosti naloge jeziu pozitivne naloge negativne naloge 58
Deterministični ončni avtomat 8. marec 2014
Kaj je ončni avtomat? Formalni sistem Pomni le ončno oličino informacije Informacija predstavljena s stanjem Stanje se spremeni glede na vhod Pravila spreminjanja stanj se imenujejo prehodi 60
Definicija DKA Petera Q, Σ, δ, q0, F Q ončna množica stanj, npr. Q = { q0, q1, q2,, qn } Σ vhodna abeceda (tudi ončna) δ funcija prehodov q0 začetno stanje, q0 Q F množica ončnih stanj, F Q Q q0 q1 q4 F q2 q3 q5 q6 Σ a b c d e f 61
Definicija DKA Funcija prehodov δ(q, x) δ: Q Σ Q δ(q, x) = r Če je avtomat v stanju q in je na vhodu simbol x, potem gre avtomat v novo stanje r. Totalna funcija prehodov Če za ne par q in x ni posebej podano δ(q, x), potem gre avtomat v slepo stanje. q x r ostali simboli 62
Definicija DKA Funcija prehodov δ(q, x) Diagram prehodov Tabela prehodov Spise prehodov
Funcija prehodov δ(q, x) Diagram prehodov bvz - vz b b bvz v z z bv v bz bz v bv z z bvz b vz b v bvz
Funcija prehodov δ(q, x) Tabela prehodov bvz - vz b b bvz v bvz/vz/b bvz/ z/bv v/bz bz/v bv/z /bvz b/vz b bvz/ vz/b b/vz /bvz v z/bv bvz/ /bvz bv/z - vz/b bvz/bz/v bv/z z/bv v/bz -/bvz z v/bz bvz/ /bvz bz/v - z z bv v bz bz v bv z z bvz b vz b v bvz
Funcija prehodov δ(q, x) Spise prehodov bvz - vz b b bvz v δ(bvz/-, ) = vz/b δ(vz/b, b) = bvz/ δ(bvz/, v) = z/bv δ(z/bv, ) = bz/v δ(bz/v, z) = /bvz δ(bvz/, z) = v/bz δ(v/bz, ) = bv/z δ(bv/z, v) = /bvz δ(/bvz, b) = b/vz δ(b/vz, ) = -/bvz aj še manja? z z bv v bz bz v bv z z bvz b vz b v bvz
Jezi avtomata Avtomat ot razpoznavalni jezia Bere vhodni niz simbol za simbolom Ko prebere celoten niz se ustavi Izvaja prehode glede na trenutno stanje in prebrani simbol Če se ustavi v stanju q F, potem reče da, sicer ne
Jezi avtomata Funcija prehodov Razširimo iz simbolov na nize. δ'(q, ε) = q δ'(q, wa) = δ(δ'(q, w), a) p a w r q p = δ'(q, w) r = δ(p, a) 68
Jezi avtomata Formalna definicija jezia Množica vseh besed, i iz q0 pripeljejo v poljubno ončno stanje L(A) = { w Σ* δ'(q0, w) F } w q0 q0 x qw F, odgovor da qw qw = δ'(q0, w) qx qx = δ'(q0, x) qx F, odgovor ne
Jezi avtomata Avtomat sprejema nize Če w L(A), potem pravimo, da A sprejema w Avtomat sprejema le en jezi Laho sprejme velio različnih nizov Laho ne sprejme nobenega prazen jezi 70
Gremo v JFlap JFlap.org 71
Univerzalni avtomat UDKA 8. marec 2014
Kao deluje avtomat? Avtomat ot razpoznavalni jezia Bere vhodni niz simbol za simbolom Ko prebere celoten niz se ustavi Izvaja prehode glede na trenutno stanje in prebrani simbol Če se ustavi v stanju q F, potem reče da, sicer ne 73
Univerzalni avtomat Je avtomat Zna oponašati avtomate Simulator avtomatov Katere? VSE (univerzalnost) vse ončne avtomate 74
Simulacija A U Simulirani avtomat simuliranec Univerzalni avtomat simulator 75
Vhod A x U x, A Simulirani avtomat simuliranec da/ne Univerzalni avtomat simulator da/ne 76
Gremo v python Python online interpreter http://www.compileonline.com/execute_python_online.php Ali loalno SicTE urejevalni 77
Viri Knjiga: Introduction to Automata Theory, Languages, and Computation Hopcroft, Motwani, Ullman Wiipedia Kasnejše izdaje so manj zahtevne Večina sli Coursera Tečaj o avtomatih, Ullman 78