UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI FAKULTET DEPARTMAN ZA RAČUNARSKE NAUKE Algoritmi za determinizaciju i minimizaciju nedeterminističkih automata
|
|
- Saša Milčinski
- пре 5 година
- Прикази:
Транскрипт
1 UNIVERZITET U NIŠU PRIRODNO MTEMTIČKI FKULTET DEPRTMN Z RČUNRSKE NUKE lgoritmi za determinizaciju i minimizaciju nedeterminističkih automata Master rad Student: Nemanja Vučković Mentor: Prof. dr. Miroslav Ćirić Niš, Oktobar 2016.
2 Predgovor Tokom prve godine master akademskih studija upoznao sam se sa oblašću informatike pod nazivom Teorija automata. U drugoj godini, interesovanje za ovu oblast je poraslo kada sam u okviru predmeta Konstrukcija prevodioca i interpetatora saznao za konkretnu primenu automata u programiranju. Zbog toga sam odlučio da svoj Master rad posvetim ovoj oblasti, odnosno delu koji se odnosi na Determinaciju i minimizaciju nedeterminističkih automata. Veliku zahvalnost dugujem svom mentoru, prof. dr. Miroslavu Ćiriću, koji je samnom podelio svoje znanje iz oblasti koja se bavi determinizacijom automata i pomogao mi je da napišem ovaj rad. Takođe se zahvaljujem i prof. dr. Jeleni Ignjatović, koja me je uvela u oblast Teorije automata, i svojim zanimljivim predavanjima i poznavanjem te oblasti doprinela daljem interesovanju. Zahvaljujem se i svim ostalim profesorima, koji su usavršili moje znanje iz oblasti informatike i programiranja i bili tu da odgovore na sva moja pitanja. Najveću zahvalnost dugujem porodici i prijateljima, koji su mi pomagali i podržavali me kadgod je bilo potrebno. 1
3 Sadržaj 1. Uvod Osnovni pojmovi Bulova algebra Skupovi, relacije i funkcije lfabet, reči i jezici Konačni automati Deterministički konačan automat Nedeterministički konačan automat Reverzni automat i podautomat Izomorfni automati Količnički automat i redukcija broja stanja Količnički automat Redukcija broja stanja Redukcija pomoću desno invarijantnih kvazi-uređenja Redukcija pomoću slabo desno invarijantnih kvazi-uređenja Determinizacija Osnovni algoritam determinizacije podskupovna konstrukcija Konstrukcija Nerodovog automata Reverzni Nerodov automat Determinizacija pomoću slabo-invarijantnih kvazi-uređenja Determinizacija pomoću slabog desno invarijantnog kvazi-uređenja Determinizacija pomoću slabog levo invarijantnog kvazi-uređenja Determinizacija konstrukcijom dečjeg automata Kanonizacioni metod Brzozovskog Poboljšani metod Brzozovskog Kanonizacija jezičkom inkluzijom Implementacija i testiranje Rezultati testiranja Zaključak Literatura Biografija
4 1. Uvod Teorija automata je nauka o apstraktnim mašinama i automatima, kao i problemima koji se mogu rešiti pomoću njih. Reč automat vodi poreklo od grčke reči αὐτόματα (automata), koja znači radi sam od sebe. Teorija automata je usko povezana sa formalnom teorijom jezika, zato što je automat konačni prikaz nekog formalnog jezika koji može biti i beskonačan. U mnogim slučajevima automati se klasifikuju po formalnim jezicima koje oni prepoznaju. Slika 1.1: Teorija automata podela U ovom radu će biti reči o konačnim determinističkim i nedeterminističkim automatima i biće opisani algoritmi za determinizaciju, odnosno proces prevođenja nedeterminističkog automata u ekvivalentni deterministički. U drugoj glavi ovog rada biće opisani skupovi i relacije kao osnovni matematički pojmovi koji su nam potrebni za dalji rad. Pored toga biće predstavljena i Bulova algebra koja će nam poslužiti za jednostavnije predstavljanje relacija. Na kraju druge glave biće uvedeni osnovni pojmovi teorije jezika koji su neophodni za rad sa automatima. Treća glava se bavi konačnim automatima. Biće pomenuto nekoliko načina za njihovo predstavljanje, podela na determinističke i nedeterminističke automate i koja je njihova razlika. Biće navedene i formalne definicije ovih automata koje se koriste u literaturi. U četvrtoj glavi se uvode pojmovi i postulati koji su potrebni da bi se u procesu determinizacije dobio minimalni deterministički automat. Ovde će biti opisan količnički automat nekog automata i postupak redukcije broja stanja nekog automata. U petoj glavi će biti definisan pojam determinizacije. Pored toga ova glava opisuje i algoritme za determinizaciju počevši od najjednostavnijeg pa sve do algoritama koji za rezultat dobijaju minimalni deterministički automat. C#. Šesta glava predstavlja rezultate implementacije ovih algoritama u programskom jeziku 3
5 2. Osnovni pojmovi 2.1. Bulova algebra Iskazna algebra je algebra ({0,1},,,,, ) sa binarnim operacijama (konjunkcija), (disjunkcija), (implikacija) i (ekvivalencija) i unarnom operacijom (negacija) na skupu {0,1}, definisanim sledećim tabelama: Sa druge strane, algebru ({0,1},,, ) zovemo dvoelementna Bulova algebra. Bulovom matricom se naziva matrica čiji su svi elementi iz skupa {0,1}, a množenje Bulovih matrica se definiše pomoću operacija i. Naime, proizvod Bulovih matrica U = [u ij ] m n i V = [v jk ] n p je Bulova matrica čiji su članovi definisani sa: U V = W = [w ik ] m p n w ik = u ij v jk. j=1 Bulove matrice tipa 1 m i n 1 tretiramo kao vektore i nazivamo ih Bulovim vektorima, pri čemu matricu tipa 1 m zovemo vektor vrste, a matricu n 1 vektor kolone. Proizvod vektora tipa 1 m i m 1 daje element iz skupa {0,1} koji nazivamo skalarni proizvod tih vektora. Zbog čega se koristi operator za proizvod Bulovih matrica biće objašnjeno u narednom poglavlju. 4
6 2.2. Skupovi, relacije i funkcije U matematici, skup je pojam koji se obično ne definiše, već se uzima kao osnovni. Za označavanje skupova se najčešće koriste velika slova latinice, B.ko je neki skup konačan ili prebrojivo beskonačan, pa se njegovi elementi mogu nabrojati, koriste se zapisi: = {x 1, x 2,, x n }, odnosno = {x 1, x 2, }. Dakle, skup je određen svojim elementima. Pripadnost elementa x skupu označava se sa x, a nepripadnost sa x. Između skupova se uvode dve osnovne relacije - jednakost i podskup: = B ( x)(x x B); B ( x)(x x B). Kardinalnost skupa se označava sa i predstavlja broj elemenata skupa. Prazan skup, koji se označava sa može se definisati kao = {x x x}. Za važi, za bilo koji skup i = 0. Za date skupove i B, definišemo uniju i presek na sledeći način: B ( x)(x x B); B ( x)(x x B). Dekartov proizvod skupova i B, u oznaci B, predstavlja skup svih mogućih uređenih parova kod kojih je prva komponenta element skupa a druga komponenta element skupa B. Dekartov proizvod se matematički zapisuje kao: B = {(a, b) a b B}. Neka je neprazan skup i n N. Pod pojmom n-arne relacije na podrazumavamo svaki podskup R skupa n =, pri čemu R može biti i prazan skup. Broj n se naziva n dužina relacije. Relacije dužine 2 se nazivaju binarne relacije ili samo relacije. ko je R relacija na skupu i (a, b) R, tada kažemo da su a i b u relaciji R i često izraz (a, b) R zamenjujemo izrazom arb. Specijalne vrste relacija na proizvoljnom skupu koje su vredne pažnje su prazna relacija, sa oznakom, relacija jednakosti = {(x, x) x }, koja se takođe naziva i dijagonalna ili identička relacija, i univerzalna ili puna relacija =. U slučajevima kada ne postoji opasnost od zabune, indeks se izostavlja i pišemo prosto i. Osim relacija između elemenata jednog skupa značajne su i relacije između elemenata dva različita skupa. Za neprazne skupove i B, svaki podskup R B naziva se relacija iz u B. Za relaciju R B, relaciju R 1 B definisanu sa (b, a) R 1 ako i samo ako je (a, b) R, za sve a i b B, nazivamo inverz relacije R. Podskupove Dom R i Im R B definisane sa: Dom R = {a ( b B)(a, b) R}, Im R = {b B ( a )(a, b) R} nazivamo redom domen i slika relacije R. 5
7 Pomoću ovih pojmova definišemo jedan od osnovnih matematičkih pojmova a to je funkcija. Funkcija predstavlja preslikavanje iz skupa domena u skup kodomena (slika) koje mora biti jedinstveno, to jest svaki član domena se slika u tačno jedan član kodomena. Prema tome, funkija je specijalan slučaj relacija. Za neprazne skupove, B i C, i relacije R B i S B C, kompozicija ili proizvod od R i S je relacija R S C definisana sa: (a, c) (R S) ( b B)((a, b) R (b, c) S), za svako a i c C. Neka su, B i C neprazni skupovi, i neka su date relacije R B, S B C i T C. Desni rezidual od T sa R je relacija R\T B C definisana sa: (b, c) R\T ( a )((a, b) R (a, c) T), za svako (b, c) B C, a levi rezidual od T sa S je relacija T/S B definisana sa: (a, b) T/S ( c C)((b, c) S (a, c) T), za svako (a, b) B. Osim reziduala relacija, postoje i reziduali skupova. Za skupove α i β B, desni rezidual od β sa α je relacija α\β B definisana sa: (b, a) α\β (a α b β), za sve (a, b) B, a levi rezidual od β sa α je relacija β/α B definisana sa: (a, b) β/α (a α b β), za sve (b, a) B. Neka je neprazan skup. Relacija R na skupu je: - refleksivna, ako je ara, za svaki a, tj. ako je Δ R; - simetrična, ako za a, b, iz arb sledi bra, tj. ako je R R 1 ; - anti-simetrična, ako za a, b, iz arb i bra sledi da je a = b, tj. ako je R R 1 Δ ; - tranzitivna, ako za a, b, c, iz arb i brc sledi arc, tj. ako je R R R. Refleksivnu i tranzitivnu relaciju zovemo kvazi-uređenje. Refleksivnu, anti-simetričnu i tranzitivnu relaciju zovemo uređenje ili relacija poretka, a refleksivnu, simetričnu i tranzitivnu relaciju zovemo relacija ekvivalencije, ili samo ekvivalencija. Neka su, B i C konačni skupovi za koje važi: = m, B = n i C = p. Relacije R B, S B C i T C tretiraćemo kao Bulove matrice a skupove α i β B kao Bulove vektore, odnosno: R = [r ij ] m n, S = [s jk ] n p, T = [t ik ] m p, α = [α i ] m, β = [β j ] n. Pritom za Bulove matrice i i {1,2,, m}, j {1,2,, n}, k {1,2,, p} važi: r ij = { 0, (a i, b j ) R 1, (a i, b j ) R, s jk = { 0, (b j, c k ) S 1, (b j, c k ) S, t ik = { 0, (a i, c k ) T 1, (a i, c k ) T, dok za Bulove vektore važi: α i = { 0, a i α 1, a i α, β j = { 0, b j β 1, b j β, gde su a i, b j B i c k C. Bulov proizvod matrica R i S (R S), predstavlja matricu kompozicije relacija R i S. 6
8 Reziduale skupova α\β i β/α izračunavamo uz pomoć sledećih formula: α\β = [α i β j ] m n, β/α = (α\β) 1 = ([α i β j ] m n ) 1. Sa druge strane, u izračunavanju reziduala relacija koristićemo jednu novu operaciju na Bulovim matricama koju definišemo na sledeći način: za Bulove matrice U = [u ij ] m n i V = [υ jk ] n p, njihov proizvod je Bulova matrica U V = W = [w ik ] m p čiji su članovi definisani sa za sve i {1,2,, m} i j {1,2,, n}. n w ik = u ij υ jk, j= lfabet, reči i jezici Neka je X neprazan skup koji nazivamo alfabetom, a čije elemente nazivamo slovima. Reč (engl. string) nad alfabetom X definiše se kao konačni niz: x 1 x 2 x n, gde su x 1, x 2,, x n X slova. Iz ove definicije jasno je da se jednakost reči definiše kao jednakost nizova. To znači da su dve reči: u = x 1 x 2 x n i v = y 1 y 2 y m jednake ako i samo ako je m = n i x i = y i, za svako i {1,2,, n}. Za reč u = x 1 x 2 x n, gde su x 1, x 2,, x n X, broj n, to jest broj elemenata (slova) u nizu x 1 x 2 x n, označavamo sa u, i nazivamo dužinom reči u. Sadržaj reči u je skup svih slova koja se pojavljuju u reči u i označava se sa c(u). Prazan niz slova označava se sa e i naziva prazna reč. Jasno je da je e = 0. Osnovna operacija nad rečima je operacija nadovezivanja ili konkatenacije. Konkatenacijom reči u = x 1 x 2 x n i v = y 1 y 2 y m dobijamo reč: u v = uv = x 1 x 2 x n y 1 y 2 y m. Ova operacija je asocijativna i uvodimo oznake: x 0 = e, x 1 = x i x k = xx x k Reverzna reč date reči u = x 1 x 2 x n jeste reč u = x n x 2 x 1. Skup svih reči nad alfabetom X, uključujući i praznu reč, označavaćemo sa X, a sa X + ćemo označavati skup svih nepraznih reči nad tim alfabetom, odnosno X + = X {e}. Jezik L nad alfabetom X definišemo kao proizvoljan skup reči nad tim alfabetom, odnosno kao L X. 7
9 3. Konačni automati Konačni automati se dele na determinističke i nedeterminističke konačne automate. Postoji nekoliko načina za predstavljanje konačnih automata. Prvi način i ujedno način koji se najviše primenjuje u literaturi jeste grafički prikaz. Ovim prikazom automat se predstavlja kao označeni usmereni graf sa nekim malim izmenama. Naime, početna stanja automata se označavaju sa strelicom ispred, odnosno: Takođe, završna stanja su uokvirena sa duplim kružićima, na sledeći način: Prelazi koji postoje kod automata se predstavljaju kao i prelazi kod označenih usmerenih grafova, to jest: Konačni automati se mogu predstaviti i tablicama prelaza. Tablica prelaza automata je pravougaona tablica sa vrstama koje odgovaraju svim simbolima prelaza i kolonama koje odgovaraju stanjima. a x δ (a, x) Ovde su sa δ (a, x) označena sva stanja u koja automat prelazi kada se nalazi u stanju a i na ulazu se pojavi simbol x. utomati se mogu predstaviti i pomoću Bulovih vektora i matrica, gde matrice označavaju relacije prelaza a vektori skupove inicijalnih i završnih stanja. Kako vršimo predstavljanje automata na navedene načine najbolje će biti ilustrovano sledećim primerom: Primer 3.1: Dat je automat sa sledećim karakteristikama: Skup stanja:, B, C; Početno stanje: ; Završno stanje: ; Prelazi: 0, 1 B, B 0 C, B 1, C 0 B, C 1 C. 8
10 1) Grafički prikaz: 2) Tablica prelaza: B C 0 C B 1 B C 3) Bulovi vektori i matrice: Vektor početnih stanja: σ = [1 0 0]; 1 Vektor završnog stanja: τ = [ 0]; Matrice prelaza: δ 0 = [ 0 0 1], δ 1 = [ 1 0 0] U prethodnom primeru vidimo da je: σ δ 0 = [1 0 0] [ 0 0 1] = [1 0 0], σ δ 1 = [1 0 0] [ 1 0 0] = [0 1 0] Vidimo da se primenom operatora za vektor početnog stanja i neku matricu prelaza dobija odgovarajuće naredno stanje automata. Ovaj postupak se može nastavljati sve dok postoji ulazna sekvenca simbola. Za vektor završnog stanja i neku matricu prelaza primenom operatora dobija se odgovarajuće prethodno stanje automata: δ 0 τ = [ 0 0 1] [ 0] = [ 0], δ 1 τ = [ 1 0 0] [ 0] = [ 1] Bulovi vektori i matrice nam omogućavaju lakše predstavljanje automata u programskim jezicima. 9
11 utomati (deterministički i nedeterministički) prihvataju (prepoznaju) neku ulaznu sekvencu (reč) ako se iz nekog od početnih stanja automata, pod dejstvom simbola te sekvence, dolazi u neko od završnih stanja. U suprotnom, automat ne prihvata reč. utomat prepoznaje praznu reč e, ako i samo ako važi jednakost: σ τ = 1. Lako je zaključiti da automat iz prethodnog primera zadovoljava ovu jednakost, odnosno prihvata praznu reč. utomat prepoznaje reč u = x 1 x 2 x n, x 1, x 2,..., x n X, ako i samo ako važi sledeća jednakost: σ δ x1 δ x2 δ xn τ = 1. Sada ćemo navesti formalne definicije determinističkih i nedeterminističkih konačnih automata Deterministički konačan automat Deterministički konačan automat je uređena petorka = (, X, δ, a 0, τ ) gde je: konačan, neprazan skup stanja; X ulazni alfabet; δ : X funkcija prelaza; a 0 inicijalno (početno) stanje; τ neprazan skup završnih (finalnih) stanja. Kako je δ : X, to postoji tačno jedno stanje b tako da je b = δ (a, x) gde a i x X, odnosno postoji tačno jedno stanje u koje se sa x prelazi iz a. Primer 3.2 (Deterministički automat): Slika 3.1: Deterministički automat Skup stanja ovog automata je = {q0, q1, q2, q3, q4, q5, q6, q7}, a ulazni alfabet je X = {0, 1}. Početno stanje automata je q0, a završno stanje je q2. utomat prihvata reči: 10, 01, , 10010, 00110, utomat ne prihvata reči: 111, , 100, , 10
12 Nedeterministički konačan automat Nedeterministički konačan automat je petorka = (, X, δ, σ, τ ) gde je: konačan, neprazan skup stanja; X ulazni alfabet; δ : X P() funkcija prelaza, gde je sa P() označen partitivni skup skupa, odnosno skup svih podskupova skupa ; σ skup inicijalnih stanja; τ skup završnih (finalnih) stanja. Kod nedeterminističkog automata se iz stanja a, pod uticajem ulaznog simbola x, može preći u bilo koje stanje iz skupa δ (a, x). Kako P() sadrži i prazan skup, to prema definiciji znači da i δ (a, x) može biti i prazan skup, što dalje znači da se iz stanja a, pod uticajem ulaznog simbola x, ne može preći ni u jedno drugo stanje. Primer 3.3 (Nedeterministički automat): Slika 3.2: Nedeterministički automat Skup stanja ovog automata je = {s, w1, w2, d1, d2, d3, f1, f2, f3, f4, i1, i2, F}, a ulazni alfabet je X = {λ, statement, while, condition, do, for, if, init, step}. Skup inicijalnih stanja je σ = {s}, dok je skup finalnih stanja τ = {s, F}. utomat prihvata reči: praznu reč, statement, do statement while condition, statement λ, utomat ne prihvata reči: while, λ, if condition statement, condition, 11
13 Reverzni automat i podautomat Neka je dat automat, = (, X, δ, σ, τ ). Njegov reverzni automat je = (, X, δ, σ, τ ), čija relacija prelaza i skupovi inicijalnih i završnih stanja su definisani sa: δ (a, x, b) = δ (b, x, a) za svako x X i a, b ; σ = τ i τ = σ. utomat B = (B, X, δ B, σ B, τ B ) je podautomat automata = (, X, δ, σ, τ ), ako važi: B ; δ x B je restrikcija od δ x na B B, za svako x X (δ x B = δ x B B) i σ B, τ B su restrikcije od σ, τ na B (σ B = σ B, τ B = τ B) Izomorfni automati Neka su dati automati = (, X, δ, σ, τ ) i B = (B, X, δ B, σ B, τ B ). Za funkciju φ: B, kažemo da je izomorfizam automata i B, ako je bijektivna i ako za sve a, a 1, a 2 i x X važi sledeće: (a 1, a 2 ) δ x (φ(a 1 ), φ(a 2 )) δ x B ; a σ φ(a) σ B i a τ φ(a) τ B. ko postoji izomorfizam između automata i B, tada kažemo da su i B izomorfni automati, i pišemo B. Drugim rečima, dva automata su izomorfna ako u suštini imaju istu strukturu, odnosno ako se jedan od drugog razlikuju samo u označavanju njihovih stanja. 12
14 4. Količnički automat i redukcija broja stanja 4.1. Količnički automat Zbog jednostavnijeg pisanja, za relacije na skupu stanja automata pisaćemo relacija na automatu. Neka je R proizvoljno kvazi-uređenje na automatu = (, X, δ, σ, τ ) i neka je R skup svih R-aftersetova (skupova koji su dobijeni primenom relacije R na automat ). Primenom relacije R možemo definisati novu relaciju prelaza nad skupovima R-aftersetova, na sledeći način: (R a1, x, R a2 ) δ R ( a 1, a 2 )((a 1, a 1 ) R (a 1, x, a 2 ) δ (a 2, a 2 ) R) (a 1, a 2 ) R δ x R za sve a 1, a 2 i x X, i možemo definisati σ R, τ R R : R a σ R ( a )(a σ (a, a) R) a σ R R a τ R ( a )(a τ (a, a ) R) a R τ za svako a. Na isti način se definiše i automat R, čija stanja predstavljaju skup R-foresetova: (R a1, x, R a2 ) δ R ( a 1, a 2 )((a 1, a 1 ) R (a 1, x, a 2 ) δ (a 2, a 2 ) R) (a 1, a 2 ) R δ x R za sve a 1, a 2 i x X, i možemo definisati σ R, τ R R : R a σ R ( a )(a σ (a, a) R) a σ R R a τ R ( a )(a τ (a, a ) R) a R τ za svako a. Iz ovih definicija vidimo da su automati R i R izomorfni za dato kvazi-uređenje R. Zbog toga ćemo nadalje koristiti samo automat R i njega ćemo nazvati količnički automat automata u odnosu na kvazi-uređenje R. Neka su R i S dva kvazi-uređenja na automatu = (, X, δ, σ, τ ) takva da je R S. Tada relacija S // R na R definisana sa (R a, R b ) S // R (a, b) S, za sve a, b, predstavlja kvazi-uređenje na R i količnički automati ( R)//( S // R) i // S su izomorfni. Osim toga, ako je S relacija ekvivalencije, onda je i S // R relacija ekvivalencije. Neka je R kvazi-uređenje na automatu = (, X, δ, σ, τ ). utomat i njegov količnički automat // R imaju isti broj stanja kao ako i samo ako je R uređenje. 13
15 4.2. Redukcija broja stanja Za proizvoljno kvazi-uređenje R na automatu = (, X, δ, σ, τ ), pravilom a R a je definisana sirjektivna funkcija iz na // R, što znači da količnički automat //R uvek ima manji ili jednak broj stanja od originalnog automata. Osim toga, ako su R i S dva kvaziuređenja na takva da je R S, tada automat //S ima manji ili jednak broj stanja od automata //R. To znači da bi se broj stanja automata mogao redukovati pomoću nekog pogodnog kvazi-uređenja na skupu stanja tog automata, formiranjem odgovarajućeg količničkog automata. Međutim, u opštem slučaju količnički automat ne mora biti ekvivalentan originalnom automatu, tj. ne mora raspoznavati isti jezik. Prema tome, problem redukcije broja stanja nedeterminističkih automata, svodi se na problem nalaženja takvih kvazi-uređenja na skupu stanja automata koja daju količnički automat ekvivalentan originalnom automatu. Pri tome, poželjno je da to kvazi-uređenje bude što je moguće veće, jer će se na taj način dobiti količnički automat sa što je moguće manjim brojem stanja. Naka je dat automat = (, X, δ, σ, τ ) i kvazi-uređenje R na. Setimo se da za reč u = x 1 x 2... x n X +, gde su x 1, x 2,..., x n X, n N, važi: dok za praznu reč važi: u [[]] σ δ x1 δ x2 e [[]] σ τ = 1. δ xn τ = 1, Sa druge strane, koristeći asocijativnost kompozicije relacija i činjenicu da je R R = R, jer je R kvazi-uređenje, dobijamo da u automatu // R za reč u važi: u [[ // R]] σ R δ x1 R δ x2 R R δ xn R τ = 1, dok za praznu reč važi: e [[ // R]] σ R τ = 1. Prema tome, količnički automat // R će biti ekvivalentan originalnom automatu, ako i samo kvazi-uređenje R zadovoljava sledeće uslove: σ τ = σ R τ, σ δ x1 δ x2 δ xn τ = σ R δ x1 R δ x2 R R δ xn R τ, za sve x 1, x 2,..., x n X, n N. Setimo se da je skup stanja automata po definiciji konačan, pa ako relacije na tretiramo kao Bulove matrice a podskupove od kao Bulove vektore, tada ovi uslovi predstavljaju sistem Bulovih matričnih jednačina koji ćemo nazivati opšti sistem pridružen automatu. Za kvaziuređenja koja zadovoljavaju te uslove govorićemo da su rešenja opšteg sistema. ko malo bolje pogledamo sistem, videćemo da on uvek ima trivijalno rešenje. Međutim, to rešenje nam ne odgovara jer se preko njega dobija automat identičan početnom automatu. ko je S proizvoljno rešenje opšteg sistema pridruženog automatu = (, X, δ, σ, τ ), onda je svako kvazi-uređenje na sadržano u S takođe rešenje opšteg sistema. 14
16 Redukcija pomoću desno invarijantnih kvazi-uređenja Neka je = (, X, δ, σ, τ ) proizvoljni automat. Za kvazi-uređenje R na koje zadovoljava uslove: R δ x R = δ x R, za svako x X, R τ = τ, kažemo da je desno invarijantno kvazi-uređenje na, a ako za R važi: R δ x R = R δ x, za svako x X, σ R = σ, onda kažemo da je R levo invarijantno kvazi-uređenje na. Sva desno invarijantna i levo invarijantna kvazi-uređenja na automatu su rešenja opšteg sistema pridruženog tom automatu. Neka je R kvazi-uređenje na automatu = (, X, δ, σ, τ ). Tada su sledeći uslovi ekvivalentni: (i) R je desno invarijantno kvazi-uređenje na ; (ii) R δ x δ x R, za svaki x X; (iii) Važi sledeća inkluzija: R x X (δ x R)/(δ x R). Za automat = (, X, δ, σ, τ ), definišemo induktivno niz {R k } k N relacija na na sledeći način: R 1 = τ /τ, R k+1 = R k x X (δ x R k )/(δ x R k ), za svako k N. Tada važi: a) {R k } k N je opadajući niz kvazi-uređenja na ; b) Postoji n N tako da je R n = R n+1, i u tom slučaju R n je najveće desno invarijantno kvazi-uređenje na. Sada možemo formirati algoritam za nalaženje najvećeg desno invarijantnog kvazi-uređenja. lgoritam 4.1 (Najveće desno invarijantno kvazi-uređenje): Ulaz algoritma je automat = (, X, δ, σ, τ ). lgoritam izračunava najveće desno invarijantno kvazi-uređenje na. Postupak se sastoji u konstrukciji niza kvazi-uređenja {R k } k N, na sledeći način: U prvom koraku stavljamo R 1 = τ /τ ; Posle k-tog koraka neka je R k kvazi-uređenje koje je konstruisano ; U narednom koraku konstruišemo kvazi-uređenje R k+1 pomoću formule R k+1 = R k x X (δ x R k )/(δ x R k ) i istovremeno, proveravamo da li je R k+1 = R k ; Kada nađemo najmanji prirodan broj n takav da je R n+1 = R n, postupak formiranja niza {R k } k N se završava i R n je najveće desno invarijantno kvazi-uređenje na. 15
17 Na sličan način možemo formirati i algoritam za nalaženje najvećeg levo invarijantnog kvaziuređenja. Najveće desno invarijantno kvazi-uređenje: R 1 = τ / τ R k+1 = R k (δ x R k )/(δ x R k ) x X Najveće levo ivarijantno kvazi-uređenje: R 1 = σ \ σ R k+1 = R k (R k δ x )\(R k δ x ) x X Najveća desno invarijantna ekvivalencija: R 1 = (τ / τ ) (τ / τ ) 1 R k+1 = R k ((δ x R k )/(δ x R k )) ((δ x R k )/(δ x R k )) 1 x X Najveća levo invarijantna ekvivalencija: R 1 = (σ \ σ ) (σ \ σ ) 1 R k+1 = R k ((R k δ x )\(R k δ x )) ((R k δ x )\(R k δ x )) 1 x X function LRIQO: Input: = (, X, δ, σ, τ ): utomaton; Output: result: boolean matrix; Variables: i: integer, n: integer, R: array of boolean matrix; begin R[1] τ /τ ; R[0] is any boolean matrix different then R[1]; i 0; n 1; while R[i] R[i + 1] do R[i + 2] R[i + 1]; for every x in X do R[i + 2] R[i + 2] ((δ x R k )/(δ x R k )); i i + 1; n i; end while; result R[n]; end function. 16
18 Redukcija pomoću slabo desno invarijantnih kvazi-uređenja Neka je = (, X, δ, σ, τ ) proizvoljni automat. Za svaku reč u X definišemo skupove σ u, τ u sa: σ u = σ δ u = {a ( b ) b σ (b, a) δ u }, τ u = δ u τ = {a ( b ) (a, b) δ u b τ }. Drugim rečima, σ u je skup svih stanja automata u koja se može stići iz nekog inicijalnog stanja pod uticajem ulaznih simbola reči u, dok je τ u skup svih stanja iz kojih se može stići u neko završno stanje pod uticajem simbola te reči. Očigledno, za praznu reč e X je σ e = σ i τ e = τ. Na sličan način, za svako stanje a definišemo jezike σ a, τ a X sa: σ a = {u X ( b ) b σ (b, a) δ u } = {u X a σ u }, τ a = {u X ( b ) (a, b) δ u b τ } = {u X a τ u }. Dakle, σ a je skup svih reči koje iz nekog inicijalnog stanja vode do stanja a, a τ a je skup svih reči koje iz stanja a vode do nekog završnog stanja. Jasno je da u σ a ako i samo ako a σ u, dok u τ a ako i samo ako a τ u. Jezike σ a i τ a zovemo redom levi jezik i desni jezik pridružen stanju a. Kvazi-uređenje R na koje zadovoljava jednakost: R τ u = τ u, za svako u X, nazivaćemo slabo desno invarijantnim kvazi-uređenjem na automatu, a ako R zadovoljava σ u R = σ u, za svako u X, zvaćemo ga slabo levo invarijantnim kvazi-uređenjem na. Primetimo da je τ u R τ u i σ u σ u R ispunjeno kadgod je R refleksivna relacija, pa su gore navedene jednačine za slaba kvazi-uređenja redom ekvivalentna sa R τ u τ u, za svako u X, tj. sa σ u R σ u, za svako u X. Za automat = (, X, δ, σ, τ ) važi: a) Svako slabo desno invarijantno kvazi-uređenje na je rešenje opšteg sistema pridruženog tom automatu. b) Svako desno invarijantno kvazi-uređenje na je slabo desno invarijantno. Neka je Q wri relacija na automatu = (, X, δ, σ, τ ) definisana izrazom: Q wri = τ u X u /τ u. Tada važi sledeće: a) Kvazi-uređenje R na je slabo desno invarijantno ako i samo ako je R Q wri. b) Q wri je najveće slabo desno invarijantno kvazi-uređenje na. Sada možemo formirati algoritam za izračunavanje nejvećeg slabo desno invarijantnog kvaziuređenja, ali pre toga navodimo pomoćni algoritam za izračunavanje svih članova kolekcije {τ u } u X. 17
19 lgoritam 4.2 (Izračunavanje svih članova kolekcije {τ u } u X ): Ulaz ovog algoritma je automat = (, X, δ, σ, τ ). lgoritam izračunava sve članove kolekcije {τ u } u X. Postupak se sastoji u konstrukciji stabla kolekcije {τ u } u X. Stablo se konstruiše induktivno, na sledeći način: Koren stabla je τ e, i mi stavljamo T 0 = {τ e } ; Nakon i-tog koraka neka je konstruisano stablo T i, i neka su čvorovi u T i označeni i lisa zatvoren i lisa nezatvoren. Značenja ova dva izraza biće razjašnjena u nastavku; Konstruišemo stablo T i+1 dograđivanjem stabla T i na sledeći način: za svaki nezatvoren list τ u koji se pojavljuje u T i, gde je u X, i svako x X, mi dodajemo čvor τ xu = δ x τ u i granu iz τ u u τ xu. Istovremeno, proveravamo da li se τ xu poklapa sa nekim skupom koji je već konstruisan, i ako je to tačno, ako je skup τ xu jednak nekom ranije izračunatom skupu τ v,onda čvor τ xu označavamo kao zatvoren i stavljamo s(τ xu ) = s(τ v ). Postupak se završava kada svi listovi budu označeni kao zatvoreni; Kada je stablo kolekcije {τ u } u X konstruisano, njegovi unutrašnji čvorovi odgovaraju različitim članovima te kolekcije. function collection_calculation: Input: = (, X, δ, σ, τ ): utomaton; Output: result: Tree; Variables: i, counter: integer, T: Tree; begin T[0] {τ e }; τ e. is_open true; s(τ e ) 1; i 0; counter 1; while T[i]. has_open_node() do for every open node τ u in T[i] do for every x in X do τ xu δ x τ u ; s(τ xu ) = 0; for every node τ v in T do if τ xu = τ v then s(τ xu ) s(τ v ); τ xu. is_open false; if s(τ xu ) = 0 then s(τ xu ) counter + 1; counter counter + 1; τ xu. is_open true; T[i + 1]. add_node(τ xu ); T. add_edge(τ u, x, τ xu ); i i + 1; end while; result T. remove_closed_edges(); end function. 18
20 lgoritam 4.3 (Najveće slabo desno invarijantno kvazi-uređenje): Ulaz ovog algoritma je automat = (, X, δ, σ, τ ). lgoritam izračunava najveće slabo desno invarijantno kvaziuređenje Q wri na, na sledeći način: Najpre izračunavamo skupove τ u, za sve u X, koristeći prethodni algoritam; Potom izračunavamo Q wri pomoću formule Q wri = τ u /τ u function LWRIQO: Input: = (, X, δ, σ, τ ): utomaton; Output: result: boolean matrix; Variables: Q wri : boolean matrix; begin Q wri all_ones_matrix(); for every τ u in collection_calculation() do Q wri Q wri (τ u /τ u ) result Q wri ; end function. u X. Za računanje najvećeg slabo levo invarijantnog kvazi-uređenja Q wli, možemo dati slične formule i algoritme. Najveće slabo desno invarijantno kvazi-uređenje: Q wri = τ u u X /τ u Najveće slabo levo ivarijantno kvazi-uređenje: Q wli = σ u u X \σ u Najveća slabo desno invarijantna ekvivalencija: E wri = (τ u u X /τ u ) (τ u /τ u ) 1 Najveća slabo levo invarijantna ekvivalencija: E wli = (σ u u X \σ u ) (σ u \σ u ) 1 19
21 5. Determinizacija Svaki nedeterministički konačan automat se može prevesti u ekvivalentan deterministički konačan automat i taj proces se naziva determinizacija. lgoritmi za determinizaciju koji će biti opisani u daljem tekstu su: 1) Podskupovna konstrukcija; 2) Konstrukcija Nerodovog i reverznog Nerodovog automata; 3) lgoritmi za determinizaciju pomoću slabo invarijantnih kvazi-uređenja; 4) Konstrukcija dečjeg automata; 5) Kanonizacioni metod Brzozovskog i poboljšani metod Brzozovskog; 6) Kanonizacija pomoću jezičke inkluzije Osnovni algoritam determinizacije podskupovna konstrukcija Klasičan način da se nedeterministički konačni automat = (, X, δ, σ, τ ) preobrati u deterministički je da se formira deterministički konačni automat p = ( p, X, δ p, σ p, τ p ), čiji skup stanja je p = 2, skup svih podskupova od, jedinstveno inicijalno stanje je σ p, funkcija prelaza δ p : p X p je definisana sa δ p(α, x) = α δ x, i skup τ p završnih stanja je zadat sa za sve α p i x X, τ p = {α p α τ } = {α p α τ = 1}. Za automat p kažemo da je nastao iz podskupovnom konstrukcijom (engl. subset construction). lgoritam 5.1 (Podskupovna konstrukcija): Ulaz ovog algoritma je nedeterministički konačni automat = (, X, δ, σ, τ ) nad konačnim alfabetom X, a izlaz je deterministički konačni automat, p = ( p, X, δ p, σ p, τ p ). Postupak se sastoji iz konstrukcije grafa G automata p, što se čini na sledeći način: Čvorove grafa G formiramo kao sve podskupove skupa, a čvor koji odgovara skupu σ označavamo kao početni čvor automata p ; Za svaki čvor α p proveravamo da li je α τ, i ako jeste, onda čvor koji odgovara skupu α označavamo kao završno stanje automata p ; Za svaki čvor α p i svako x X izračunavamo α δ x i formiramo granu iz čvora koji odgovara skupu α u čvor koji odgovara skupu α δ x, koju označavamo sa x. Dijagram koji je dobijen nako realizacije ova tri koraka je graf automata p. 20
22 function subset_construction: Input: = (, X, δ, σ, τ ): utomaton; Output: result: utomaton; Variables: G: Graph; begin G. nodes P(); G. start_node σ ; for every α in G. nodes do if α τ then G. final_nodes. add(α); for every x in X do for every β in G. nodes do if α δ x = β then G. add_edge(α, x, β); result G. toutomaton(); end function. Iako ovaj algoritam predstavlja jednostavan način da se od nedeterminističkog automata dobije ekvivalentan deterministički, on ima dosta nedostataka zbog kojih se ne koristi u praksi. Očigledan nedostatak podskupovne konstrukcije je u tome što se njegovom primenom eksponencijalno povećava broj stanja. Naime, nedeterministički automat se n stanja se podskupovnom konstrukcijom pretvara u deterministički automat p sa 2 n stanja. Pritom mnoga stanja automata p mogu biti suvišna, jer su nedostižna iz početnog stanja. Najjednostavnija modifikacija podskupovne konstrukcije, pomoću koje se gradi samo dostižni deo automata p, poznata je kao dostižna podskupovna konstrukcija (engl. accessible subset construction). Primer 5.1: Slika 4: Dostižna podskupovna konstrukcija 21
23 5.2. Konstrukcija Nerodovog automata Za nedeterministički automat = (, X, δ, σ, τ ), ovom konstrukcijom se gradi deterministički automat N = ( N, X, δ N, σ N e, τ N), čiji skup stanja je N = {σ u u X } a funkcija prelaza δ N: N X N je definisana kao u algoritmu podskupovne konstrukcije, to jest izrazima: δ N(α, x) = α δ x, za sve α N i x X, odnosno: δ N(σ u, x) = σ ux, za sve u X i x X. Skup završnih stanja τ N je takođe zadat kao u algoritmu podskupovne konstrukcije, odnosno: τ N = {α N α τ } = {α N α τ = 1}. utomat N se naziva Nerodov automat (. Nerode). Efektivan postupak za konstukciju ovog automata definisan je sledećim algoritmom: lgoritam 5.2 (Konstrukcija Nerodovog automata N ): Ulaz ovog algoritma je nedeterministički konačni automat = (, X, δ, σ, τ ) nad konačnim alfabetom X, a izlaz je Nerodov deterministički automat, N = ( N, X, δ N, σ N e, τ N). Postupak se sastoji u konstrukciji stabla prelaza Nerodovog automata N direktno iz, koristeći pokazivače s( ), kojima čvorovima stabla pridružujemo odgovarajuće prirodne brojeve. Stablo prelaza Nerodovog automata N konstruiše se induktivno, na sledeći način: Koren stabla je σ N e i postavljamo T0 = {σ N e } i s(σ N e ) = 1. Istovremeno, proveravamo da li je σ N e τ N, i ako je to tačno σ N e je završno stanje; Posle i-tog koraka neka je dobijeno stablo T i, koje sadrži zatvorene i nezatvorene čvorove; U narednom koraku konstruišemo stablo prelaza T i+1, na sledeći način: za svaki nezatvoreni list σ N u u stablu Ti, gde je u X, i svako x X dodajemo čvor σ N ux = σ N u δ N x i granu iz N σu u N σux označenu sa x. Istovremeno, proveravamo da li je σ N ux skup koji je već konstruisan, i ako jeste, tj. ako je N σux jednak nekom već konstruisanom σ N v, onda označavamo σ N ux zatvorenim i stavljamo N s(σux ) = s(σ N v ). U suprotnom, stavljamo da je s(σ N ux ) sledeći nepridružen prirodan broj i proveravamo da li je σ N ux τ, i ako je to tačno σ N ux je završno stanje. Postupak se završava kada svi listovi budu označeni kao zatvoreni; Kada je stablo prelaza automata N konstruisano, brišemo oznake za zatvorenost listova i preklapamo listove sa unutrašnjim čvorovima koji imaju istu vrednost pokazivača. Dijagram koji je dobijen na ovakav način, dopunjen oznakama za početno i završna stanja je Nerodov automat N. 22
24 function Nerode_algorithm: Input: = (, X, δ, σ, τ ): utomaton; Output: result: utomaton; Variables: i, counter: integer, T: Tree; begin T[0]. add_node(σ e ); σ e. is_open true; if σ e τ then T. final_states. add(σ e ); s(σ e ) 1; i 0; counter 1; while T[i]. has_open_node() do for every open node σ u in T[i] do for every x in X do σ ux σ u δ x ; s(σ ux ) = 0; for every node σ v in T do if σ ux = σ v then s(σ ux ) s(σ v ); σ ux. is_open false; if s(σ ux ) = 0 then s(σ ux ) counter + 1; counter counter + 1; σ ux. is_open true; T[i + 1]. add_node(σ ux ); if σ ux τ then T. final_states. add(σ ux ); T. add_edge(σ u, x, σ ux ); i i + 1; end while; result T. toutomaton(); end function. 23
25 Reverzni Nerodov automat Za nedeterministički automat = (, X, δ, σ, τ ), ovom konstrukcijom se gradi deterministički automat N = ( N, X, δ N, τ e N, τ N ), čiji skup stanja je N = {τ u N u X } a funkcija prelaza δ N : N X N je definisana kao u algoritmu podskupovne konstrukcije, to jest izrazima: δ N (α, x) = δ x α, za sve α N i x X, odnosno: δ N (τ u, x) = τ xu, za sve u X i x X. Skup završnih stanja τ N je takođe zadat kao u algoritmu podskupovne konstrukcije, odnosno: τ N = {α N α σ } = {α N σ α = 1}. utomat N se naziva reverzni Nerodov automat. Reverzni (inverzni) Nerodov automat se konstruiše na sličan način kao i Nerodov automat. lgoritam 5.3 (Konstrukcija reverznog Nerodovog automata N ): Ulaz ovog algoritma je nedeterministički konačni automat = (, X, δ, σ, τ ) nad konačnim alfabetom X, a izlaz je reverzni Nerodov deterministički automat, N = ( N, X, δ N, τ e N, τ N ). Postupak se sastoji u konstrukciji stabla prelaza reverznog Nerodovog automata N direktno iz, koristeći pokazivače s( ), kojima čvorovima stabla pridružujemo odgovarajuće prirodne brojeve. Stablo prelaza reverznog Nerodovog automata N konstruiše se induktivno, na sledeći način: Koren stabla je τ e i postavljamo T 0 = {τ e N } i s(τ e N ) = 1. Istovremeno, proveravamo da li je σ τ N e, i ako je to tačno τ N e je završno stanje; Posle i-tog koraka neka je dobijeno stablo T i, koje sadrži zatvorene i nezatvorene čvorove; U narednom koraku konstruišemo stablo prelaza T i+1, na sledeći način: za svaki nezatvoreni list τ N u u stablu T i, gde je u X, i svako x X dodajemo čvor τ N xu = δ x τ N u i granu iz τ N u u τ N xu označenu sa x. Istovremeno, proveravamo da li je τ N xu skup koji je već konstruisan, i ako jeste, tj. ako je τ N xu jednak nekom već konstruisanom τ N v, onda označavamo τ N xu zatvorenim i stavljamo s(τ N xu ) = s(τ N v ). U suprotnom, stavljamo da je s(τ N xu ) sledeći nepridružen prirodan broj i proveravamo da li je σ τ N xu, i ako je to tačno τ N xu je završno stanje. Postupak se završava kada svi listovi budu označeni kao zatvoreni; Kada je stablo prelaza automata N konstruisano, brišemo oznake za zatvorenost listova i preklapamo listove sa unutrašnjim čvorovima koji imaju istu vrednost pokazivača. Dijagram koji je dobijen na ovakav način, dopunjen oznakama za početno i završna stanja je inverzni Nerodov automat N. 24
26 function reverse_nerode_algorithm: Input: = (, X, δ, σ, τ ): utomaton; Output: result: utomaton; Variables: i, counter: integer, T: Tree; begin T[0]. add_node(τ e ); τ e. is_open true; if σ τ e then T. final_states. add(σ e ); s(τ e ) 1; i 0; counter 1; while T[i]. has_open_node() do for every open node τ u in T[i] do for every x in X do τ xu δ x τ u ; s(τ xu ) = 0; for every node τ v in T do if τ xu = τ v then s(τ xu ) s(τ v ); τ xu. is_open false; if s(τ xu ) = 0 then s(τ xu ) counter + 1; counter counter + 1; τ xu. is_open true; T[i + 1]. add_node(τ xu ); if σ τ xu then T. final_states. add(σ xu ); T. add_edge(τ u, x, τ xu ); i i + 1; end while; result T. toutomaton(); end function. 25
27 5.3. Determinizacija pomoću slabo-invarijantnih kvazi-uređenja Determinizacija pomoću slabog desno invarijantnog kvazi-uređenja Neka je = (, X, δ, σ, τ ) nedeterministički automat i neka je R relacija na. Za svako u X definišemo podskup R u induktivno, na sledeći način: za praznu reč e stavljamo da je: R e = σ R, a za proizvoljne u X i x X stavljamo da je: R ux = R u δ x R. Jasno, ako je u = x 1 x n, gde su x 1,, x n X, tada je R u = σ R δ x1 R δ xn R. Sada, stavimo da je R = {R u u X }, i definišimo δ R: R X R sa: δ R(R u, x) = R ux, za sve u X i x X. Skup završnih stanja τ N je takođe zadat kao u algoritmu podskupovne konstrukcije, odnosno: τ R = {α R α τ } = {α N α τ = 1}. ko je R u = R v, za neke u X, tada za svako x X imamo da je: δ R(R u, x) = R ux = R u δ x R = R v δ x R = R vx = δ R(R v, x) što znači da je δ R dobro definisana funkcija. Odatle neposredno dobijamo da je R = ( R, X, δ R, σ e R, τ R) dobro definisan deterministički automat. Osnovno pitanje koje se ovde nameće je kako izabrati relaciju R tako da automat R bude ekvivalentan polaznom automatu. lgoritam 5.4 (Konstrukcija automata R ): Ulaz ovog algoritma je nedeterministički konačni automat = (, X, δ, σ, τ ) nad konačnim alfabetom X i slabo desno invarijantno kvazi-uređenje R na, a izlaz je automat R = ( R, X, δ R, R e, τ R). Postupak se sastoji u konstrukciji stabla prelaza automata R direktno iz, koristeći pokazivače s( ), kojima čvorovima stabla pridružujemo odgovarajuće prirodne brojeve. Stablo prelaza automata R konstruiše se induktivno, na sledeći način: Koren stabla je R e i postavljamo T 0 = {R e } i s(r e ) = 1. Istovremeno, proveravamo da li je R e τ, i ako je to tačno R e je završno stanje; Posle i-tog koraka neka je dobijeno stablo T i, koje sadrži zatvorene i nezatvorene čvorove; U narednom koraku konstruišemo stablo prelaza T i+1, na sledeći način: za svaki nezatvoreni list R u u stablu T i, gde je u X, i svako x X dodajemo čvor R ux = R u δ x i granu iz R u u R ux označenu sa x. Istovremeno, proveravamo da li je R ux skup koji je već konstruisan, i ako jeste, tj. ako je R ux jednak nekom već konstruisanom R v,onda označavamo R ux zatvorenim i stavljamo s(r ux ) = s(r v ). U suprotnom, stavljamo da je s(r ux ) sledeći nepridružen prirodan broj i proveravamo da li je R ux τ, i ako je to tačno R ux je završno stanje. Postupak se završava kada svi listovi budu označeni kao zatvoreni; 26
28 Kada je stablo prelaza automata R konstruisano, brišemo oznake za zatvorenost listova i preklapamo listove sa unutrašnjim čvorovima koji imaju istu vrednost pokazivača. Dijagram koji je dobijen na ovakav način, dopunjen oznakama za početno i završna stanja je graf automata R. function LWRIQ: Input: = (, X, δ, σ, τ ): utomaton; Output: result: utomaton; Variables: i, counter: integer, T: Tree, R: boolean matrix; begin R LWRIQO(); R e σ R; T[0]. add_node(r e ); if R e τ then T. final_states. add(r e ); R e. is_open true; s(r e ) 1; i 0; counter 1; while T[i]. has_open_node() do for every open node R u in T[i] do for every x in X do R ux R u δ x ; s(s xu ) = 0; for every node R v in T do if R ux = R v then s(r ux ) s(r v ); R ux. is_open false; if s(r ux ) = 0 then s(r ux ) counter + 1; counter counter + 1; R ux. is_open true; T[i + 1]. add_node(r ux ); if R ux τ then T. final_states. add(r ux ); T. add_edge(r u, x, R ux ); i i + 1; end while; result T. toutomaton(); end function. 27
29 Determinizacija pomoću slabog levo invarijantnog kvazi-uređenja Neka je = (, X, δ, σ, τ ) nedeterministički automat i neka je S relacija na. Za svako u X definišemo podskup S u induktivno, na sledeći način: - za praznu reč e stavljamo da je: S e = S τ ; - za proizvoljne u X i x X stavljamo da je: S xu = S δ x S u. Jasno, ako je u = x 1 x n, gde su x 1,, x n X, tada je: S u = S δ x1 S δ xn S τ. Sada, stavimo da je S = {S u u X }, i definišimo δ S: S X S sa: δ S(S u, x) = S xu, za sve u X i x X. Skup završnih stanja τ S je takođe zadat kao u algoritmu podskupovne konstrukcije, odnosno: τ S = {α R α σ } = {α N σ α = 1}. ko je R u = R v, za neke u X, tada za svako x X imamo da je: δ S(S u, x) = S xu = S δ x S u = S δ x S v = R vx = δ S(R v, x) što znači da je δ S dobro definisana funkcija. Dakle, S = ( S, X, δ S, σ e S, τ S) je dobro definisan deterministički automat. lgoritam 5.5 (Konstrukcija automata S ): Ulaz ovog algoritma je nedeterministički konačni automat = (, X, δ, σ, τ ) nad konačnim alfabetom X i slabo levo invarijantno kvazi-uređenje S na, a izlaz je automat S = ( S, X, δ S, S e, τ S). Postupak se sastoji u konstrukciji stabla prelaza automata S direktno iz, koristeći pokazivače s( ), kojima čvorovima stabla pridružujemo odgovarajuće prirodne brojeve. Stablo prelaza automata S konstruiše se induktivno, na sledeći način: Koren stabla je S e i postavljamo T 0 = {S e } i s(s e ) = 1. Istovremeno, proveravamo da li je σ S e, i ako je to tačno S e je završno stanje; Posle i-tog koraka neka je dobijeno stablo T i, koje sadrži zatvorene i nezatvorene čvorove; U narednom koraku konstruišemo stablo prelaza T i+1, na sledeći način: za svaki nezatvoreni list S u u stablu T i, gde je u X, i svako x X dodajemo čvor S xu = δ x S u i granu iz S u u S xu označenu sa x. Istovremeno, proveravamo da li je S xu skup koji je već konstruisan, i ako jeste, tj. ako je S xu jednak nekom već konstruisanom S v, onda označavamo S xu zatvorenim i stavljamo s(s xu ) = s(s v ). U suprotnom, stavljamo da je s(s xu ) sledeći nepridružen prirodan broj i proveravamo da li je σ S xu, i ako je to tačno S xu je završno stanje. Postupak se završava kada svi listovi budu označeni kao zatvoreni; Kada je stablo prelaza automata S konstruisano, brišemo oznake za zatvorenost listova i preklapamo listove sa unutrašnjim čvorovima koji imaju istu vrednost pokazivača. Dijagram koji je dobijen na ovakav način, dopunjen oznakama za početno i završna stanja je graf automata S. 28
30 function LWLIQ: Input: = (, X, δ, σ, τ ): utomaton; Output: result: utomaton; Variables: i, counter: integer, T: Tree, S: boolean matrix; begin S LWLIQO(); S e S τ ; T[0]. add_node(s e ); if σ S e then T. final_states. add(s e ); S e. is_open true; s(s e ) 1; i 0; counter 1; while T[i]. has_open_node() do for every open node S u in T[i] do for every x in X do S xu δ x S u ; s(s xu ) = 0; for every node S v in T do if S xu = S v then s(s xu ) s(s v ); S xu. is_open false; if s(s xu ) = 0 then s(s xu ) counter + 1; counter counter + 1; S xu. is_open true; T[i + 1]. add_node(s xu ); if σ S xu then T. final_states. add(s xu ); T. add_edge(s u, x, S xu ); i i + 1; end while; result T. toutomaton(); end function. 29
31 5.4. Determinizacija konstrukcijom dečjeg automata Neka je = (, X, δ, σ, τ ) nedeterministički automat nad konačnim alfabetom X = {x 1,, x m } i neka je R relacija na. Za svako u X definišemo (m + 1)-torku R u c sa: R c u = (R ux1,, R uxm, R u τ ) = (R u δ x1,, R u δ xm, R u τ ), gde su R u, R ux1,, R uxm skupovi definisani formulama: = R u δ xi R, za svako i = {1,, m} R uxi R u = σ R δ x1 R δ xn R, za u = x 1 x n, gde su x 1,, x n X. Dalje, stavimo da je c R = {R c u u X }, i definišimo δ c R: c c R X R sa: δ R c (R c u, x) = R c ux, za sve u X i x X. Skup završnih stanja τ R c je zadat formulom: τ R c = {R u c R c R u τ } = {R u c R c R u τ = 1}. Uočimo da prvih m koordinata u (m + 1)-torci R u c čine deca čvora R u u stablu prelaza automata R algoritma 5.4, a poslednja koordinata je Bulova promenljiva koja nam kaže da li je R u završno stanje u automatu R. Iz tog razloga, automat R c se naziva dečji automat automata R. lgoritam 5.6 (Konstrukcija dečjeg automata R c ): Ulaz ovog algoritma je nedeterministički konačni automat = (, X, δ, σ, τ ) nad konačnim alfabetom X = {x 1,, x m } i relaciju R na, a izlaz je automat R c = ( R c, X, δ R c, R e c, τ R c ). Postupak se sastoji iz simultane konstrukcije stabla prelaza T automata R i grafa G automata R c direktno iz, koristeći pokazivače s( ) i pokazivače t( ), kojima čvorovima stabla i grafa pridružujemo određene prirodne brojeve. Stablo prelaza automata R i graf automata R c konstruišu se na sledeći način: Stablo prelaza T automata R konstruišemo primenom slabo desno invarijantog kvaziuređenja (lgoritam 5.4); Svakom nezatvorenom čvoru R u stabla T, pridružujemo čvor R u c grafa G, na sledeći način: Kada su formirana sva deca R ux1,, R uxm čvora R u u stablu T, onda formiramo čvor R u c = (R ux1,, R uxm, R u τ ) u grafu G. Istovremeno, proveravamo da li je R u c m + 1-torka koja je već konstruisana, i ako jeste, tj. ako je R u c jednaka nekoj već konstruisanoj m + 1-torci R v c, onda označavamo R u c zatvorenim i stavljamo t(r u c ) = t(r v c ). U suprotnom, stavljamo da je t(r u c ) sledeći prirodan broj koji nije bio pridružen t( ) i proveravamo da li je R u τ, i ako je to tačno R u c je završno stanje; Za svaki nezatvoreni čvor R u c grafa G i svako x X, ako je R v nezatvoreni čvor u stablu T, takav da je s(r ux ) = s(r v ), u grafu G dodajemo granu iz R u c u R v c označenu sa x; Kada je graf G automata R c konstruisan, preklapamo nezatvorene čvorove sa zatvorenim čvorovima koji imaju istu vrednost pokazivača t( ) i brišemo oznake za zatvorenost. Dijagram koji je dobijen na ovakav način, dopunjen oznakama za početno i završna stanja je graf automata R c. 30
32 function children_automaton: Input: = (, X, δ, σ, τ ): utomaton; Output: result: utomaton; Variables: counter: integer, T: Tree, R: boolean matrix, G: Graph; begin T Tree from LWRIQ(); counter 1; for every open node R u in T do R u c = (R ux1,, R uxm, R u τ ); t(r u c ) = 0; for every node R v c in G do if R u c = R v c then t(r u c ) t(r v c ); R u c. is_open false; if t(r u c ) = 0 then t(r u c ) counter + 1; counter counter + 1; R u c. is_open true; if R u τ then T. final_states. add(r u c ); G. add_node(r u c ); for every open node R i c in G do for every open node R v in T do for every x in X do if s(r ix ) = s(r v ) and R v. is_open then G. add_edge(r i c, x, R v c ); result G. toutomaton(); end function. 31
33 5.5. Kanonizacioni metod Brzozovskog Neka je nedeterministički automat. utomat Brzozovskog (J. Brzozowski) automata, u oznaci B, je deterministički automat dobijen konstrukcijom reverznog Nerodovog automata dva puta, to jest: B = ( N ) N = (( ) )N N. lgoritam 5.7 (Kanonizacioni metod Brzozovskog): Ulaz ovog algoritma je nedeterministički konačni automat = (, X, δ, σ, τ ) nad konačnim alfabetom X, a izlaz je minimalni deterministički automat B, koji se konstruiše na sledeeći način: Konstruišemo reverzni Nerodov automat N za automat ; Koristeći isti algoritam, ponovo konstruišemo reverzni Nerodov automat automata N. Dobijeni automat je automat Brzozovskog. function Brzozowski_algorithm: Input: = (, X, δ, σ, τ ): utomaton; Output: result: utomaton; Variables: nr: utomaton; begin nr reverse_nerode_algorithm(); result reverse_nerode_algorithm(nr); end function Poboljšani metod Brzozovskog Neka je nedeterministički automat. Poboljšani algoritam Brzozovskog podrazumeva dobijanje determinističkog automata B kao reverzni Nerodov automat automata S (algoritam 5.5), odnosno: B = ( S ) N. lgoritam 5.8 (Poboljšani metod Brzozovskog): Ulaz ovog algoritma je nedeterministički konačni automat = (, X, δ, σ, τ ) nad konačnim alfabetom X, a izlaz je minimalni deterministički automat B, koji se konstruiše na sledeeći način: Konstruišemo S za automat, koristeći slabo levo invarijantno kvazi-uređenje; Koristeći algoritam za konstrukciju reverznog Nerodovog automata, konstruišemo reverzni Nerodov automat automata S. Dobijeni automat je automat Brzozovskog. function upgraded_brzozowski_algorithm: Input: = (, X, δ, σ, τ ): utomaton; Output: result: utomaton; Variables: s: utomaton; begin s determinization_with_lwliqo(); result reverse_nerode_algorithm(s); end function. 32
Skripte2013
Chapter 2 Algebarske strukture Preslikivanje f : A n! A se naziva n-arna operacija na skupu A Ako je n =2, kažemo da je f : A A! A binarna operacija na A Kažemo da je operacija f arnosti n, u oznaci ar
ВишеJMBAG IME I PREZIME BROJ BODOVA 1. (ukupno 6 bodova) MJERA I INTEGRAL 1. kolokvij 4. svibnja (Knjige, bilježnice, dodatni papiri i kalkulatori n
1. (ukupno 6 bodova) MJERA I INTEGRAL 1. kolokvij 4. svibnja 2018. (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) (a) (2 boda) Definirajte (općenitu) vanjsku mjeru. (b) (2 boda) Definirajte
ВишеMicrosoft Word - 1.Operacije i zakoni operacija
1. Operacije i zakoni operacija Neka je S neprazan skup. Operacija dužine n skupa S jeste svako preslikavanje : n n f S S ( S = S S S... S) Ako je n = 1, onda operaciju nazivamo unarna. ( f : S S ) Ako
ВишеGrafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr
Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odrediti njene krajeve. b) Odrediti sledeće skupove: -
ВишеTeorija skupova - blog.sake.ba
Uvod Matematika je jedan od najomraženijih predmeta kod većine učenika S pravom, dakako! Zapitajmo se šta je uzrok tome? Da li je matematika zaista toliko teška, komplikovana? Odgovor je jednostavan, naravno
Више6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe
6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe, očekuje se da su koordinate celobrojne. U slučaju
Више1 Konusni preseci (drugim rečima: kružnica, elipsa, hiperbola i parabola) Definicija 0.1 Algebarska kriva drugog reda u ravni jeste skup tačaka opisan
1 Konusni preseci (drugim rečima: kružnica, elipsa, hiperbola i parabola) Definicija 0.1 Algebarska kriva drugog reda u ravni jeste skup tačaka opisan jednačinom oblika: a 11 x 2 + 2a 12 xy + a 22 y 2
ВишеCelobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica
Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica dimenzije m n, b Z m, c Z n. Takođe, očekuje se da
ВишеОрт колоквијум
II колоквијум из Основа рачунарске технике I - 27/28 (.6.28.) Р е ш е њ е Задатак На улазе x, x 2, x 3, x 4 комбинационе мреже, са излазом z, долази четворобитни BCD број. Ако број са улаза при дељењу
ВишеOsnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005
Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005 2 Sadržaj 1 5 1.1 Specifikacija sintakse programskih
ВишеMatrice. Algebarske operacije s matricama. - Predavanje I
Matrice.. Predavanje I Ines Radošević inesr@math.uniri.hr Odjel za matematiku Sveučilišta u Rijeci Matrice... Matrice... Podsjeti se... skup, element skupa,..., matematička logika skupovi brojeva N,...,
ВишеMicrosoft Word - AIDA2kolokvijumRsmerResenja.doc
Konstrukcija i analiza algoritama 2 (prvi kolokvijum, smer R) 1. a) Konstruisati AVL stablo od brojeva 100, 132, 134, 170, 180, 112, 188, 184, 181, 165 (2 poena) b) Konkatenacija je operacija nad dva skupa
ВишеMicrosoft Word - 15ms261
Zadatak 6 (Mirko, elektrotehnička škola) Rješenje 6 Odredite sup S, inf S, ma S i min S u skupu R ako je S = { R } a b = a a b + b a b, c < 0 a c b c. ( ), : 5. Skratiti razlomak znači brojnik i nazivnik
ВишеP2.1 Formalne gramatike
Превођење Полазни језик? Одредишни језик 1 Превођење Полазни језик? Одредишни језик Како знање неког језика стиче и складишти човек, а како рачунар? 2 Два аспекта језика Синтакса Семантика значење То су
ВишеМАТЕМАТИЧКА ГИМНАЗИЈА У БЕОГРАДУ МАТУРСКИ РАД из математике ТЕОРИЈА СКУПОВА ментор: Славко Моцоња ученик: Матија Срећковић, IVБ Београд, јун 2015.
МАТЕМАТИЧКА ГИМНАЗИЈА У БЕОГРАДУ МАТУРСКИ РАД из математике ТЕОРИЈА СКУПОВА ментор: Славко Моцоња ученик: Матија Срећковић, IVБ Београд, јун 2015. САДРЖАЈ УВОД... 2 УВОД У СКУПОВЕ... 4 ЕЛЕМЕНТАРНЕ АКСИОМЕ...
ВишеПРИКАЗ НАУЧНИХ И СТРУЧНИХ РАДОВА КАНДИДАТА који садрже резултате истраживања у оквиру докторске дисертације Р. бр. Аутор-и, наслов, часопис, година, б
ПРИКАЗ НАУЧНИХ И СТРУЧНИХ РАДОВА КАНДИДАТА који садрже резултате истраживања у оквиру докторске дисертације Р. бр. Аутор-и, наслов, часопис, година, број волумена, странице Категорија S. Stanimirović,
Више1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K.
1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K. Elementi a k K su koeficijenti polinoma P (x). Ako
ВишеSVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Ivana Šore REKURZIVNOST REALNIH FUNKCIJA Diplomski rad Voditelj rada: doc.
SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Ivana Šore REKURZIVNOST REALNIH FUNKCIJA Diplomski rad Voditelj rada: doc.dr.sc. Zvonko Iljazović Zagreb, rujan, 2015. Ovaj diplomski
ВишеP1.1 Analiza efikasnosti algoritama 1
Analiza efikasnosti algoritama I Asimptotske notacije Master metoda (teorema) 1 Asimptotske notacije (1/2) Služe za opis vremena izvršenja algoritma T(n) gde je n N veličina ulaznih podataka npr. br. elemenata
ВишеP11.3 Analiza zivotnog veka, Graf smetnji
Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи
ВишеБеоград, МАТРИЧНА АНАЛИЗА КОНСТРУКЦИЈА ЗАДАТАК 1 За носач приказан на слици: а) одредити дужине извијања свих штапова носача, ако на носач
Београд, 30.01.2016. а) одредити дужине извијања свих штапова носача, ако на носач делују само концентрисане силе, б) ако је P = 0.8P cr, и на носач делује расподељено оптерећење f, одредити моменат савијања
ВишеDR DRAGOŚ CVETKOVIC DR SLOBODAN SIMIC DISKRETNA MATEMATIKA MATEMATIKA ZA KOMPJUTERSKE NAUKĘ DRUGO ISPRAYLJENO I PROSIRENO IZDANJE HMUJ
DR DRAGOŚ CVETKOVIC DR SLOBODAN SIMIC DISKRETNA MATEMATIKA MATEMATIKA ZA KOMPJUTERSKE NAUKĘ DRUGO ISPRAYLJENO I PROSIRENO IZDANJE HMUJ Sadrżaj Predgovor Iz predgovora prvoni izdanju knjige "Diskretne mateiuatićke
ВишеKonacne grupe, dizajni i kodovi
Konačne grupe, dizajni i kodovi Andrea Švob (asvob@math.uniri.hr) 1. veljače 2011. Andrea Švob (asvob@math.uniri.hr) () Konačne grupe, dizajni i kodovi 1. veljače 2011. 1 / 36 J. Moori, Finite Groups,
ВишеMy_ST_FTNIspiti_Free
ИСПИТНИ ЗАДАЦИ СУ ГРУПИСАНИ ПО ТЕМАМА: ЛИМЕСИ ИЗВОДИ ФУНКЦИЈЕ ЈЕДНЕ ПРОМЕНЉИВЕ ИСПИТИВАЊЕ ТОКА ФУНКЦИЈЕ ЕКСТРЕМИ ФУНКЦИЈЕ СА ВИШЕ ПРОМЕНЉИВИХ 5 ИНТЕГРАЛИ ДОДАТАК ФТН Испити С т р а н а Лимеси Одредити
ВишеPRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste
PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, 5.06.019. godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekstenzija se najčešće koristi za tekstualne datoteke? a)
ВишеMicrosoft Word - 6ms001
Zadatak 001 (Anela, ekonomska škola) Riješi sustav jednadžbi: 5 z = 0 + + z = 14 4 + + z = 16 Rješenje 001 Sustav rješavamo Gaussovom metodom eliminacije (isključivanja). Gaussova metoda provodi se pomoću
ВишеKombinatorno testiranje
Kombinatorno testiranje Uvod Na ponašanje aplikacije utiče puno faktora, npr. ulazne vrednosti, konfiguracije okruženja. Tehnike kao što je podela na klase ekvivalencije ili analiza graničnih vrednosti
ВишеУНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке Писмени део испита из предмета Увод у рачунарство 1. [7 пое
УНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке 30.06.2018. Писмени део испита из предмета Увод у рачунарство 1. [7 поена] Методом МакКласкија минимизарити систем прекидачких
ВишеKonstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun
Konstrukcija i analiza algoritama Nina Radojičić februar 2018. 1 Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne funkcije od argumenta n iz skupa N prirodnih brojeva.
ВишеФАКУЛТЕТ ОРГАНИЗАЦИОНИХ НАУКА
Питања за усмени део испита из Математике 3 I. ДИФЕРЕНЦИЈАЛНЕ ЈЕДНАЧИНЕ 1. Појам диференцијалне једначине. Пикарова теорема. - Написати општи и нормални облик диференцијалне једначине првог реда. - Дефинисати:
ВишеUAAG Osnovne algebarske strukture 5. Vektorski prostori Borka Jadrijević
Osnovne algebarske strukture 5. Vektorski prostori Borka Jadrijević Osnovne algebarske strukture5. Vektorski prostori 2 5.1 Unutarnja i vanjska množenja Imamo dvije vrste algebarskih operacija, tzv. unutarnja
ВишеОрт колоквијум
Испит из Основа рачунарске технике - / (6.6.. Р е ш е њ е Задатак Комбинациона мрежа има пет улаза, по два за број освојених сетова тенисера и један сигнал који одлучује ко је бољи уколико је резултат
ВишеALIP1_udzb_2019.indb
Razmislimo Kako u memoriji računala prikazujemo tekst, brojeve, slike? Gdje se spremaju svi ti podatci? Kako uopće izgleda memorija računala i koji ju elektronički sklopovi čine? Kako biste znali odgovoriti
ВишеJMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL završni ispit 6. srpnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1.
MJERA I INTEGRAL završni ispit 6. srpnja 208. (Knjige bilježnice dodatni papiri i kalkulatori nisu dozvoljeni!). (8 bodova) Kao na predavanjima za d N sa P d : a b ] a d b d ] : a i b i R a i b i za i
Вишеknjiga.dvi
1. Vjerojatnost 1. lgebra dogadaja......................... 1 2. Vjerojatnost............................. 9 3. Klasični vjerojatnosni prostor................. 14 4. eskonačni vjerojatnosni prostor...............
ВишеSadržaj 1 Diskretan slučajan vektor Definicija slučajnog vektora Diskretan slučajan vektor
Sadržaj Diskretan slučajan vektor Definicija slučajnog vektora 2 Diskretan slučajan vektor Funkcija distribucije slučajnog vektora 2 4 Nezavisnost slučajnih vektora 2 5 Očekivanje slučajnog vektora 6 Kovarijanca
ВишеЕлектротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику Kолоквијум из Интелигентних система Колоквију
Електротехнички факултет Универзитета у Београду 19.11.017. Катедра за рачунарску технику и информатику Kолоквијум из Интелигентних система Колоквијум траје h. Напуштање сале дозвољено је након 1h. Употреба
ВишеPROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije
PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije korake. Uz dobro razrađen algoritam neku radnju ćemo
ВишеОрт колоквијум
I колоквијум из Основа рачунарске технике I - надокнада СИ - 008/009 (10.05.009.) Р е ш е њ е Задатак 1 a) Пошто постоје вектори на којима се функција f не јавља и вектори на којима има вредност један,
ВишеSVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Igor Sušić LOKALNA IZRAČUNLJIVOST Diplomski rad Voditelj rada: doc.dr.sc.
SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Igor Sušić LOKALNA IZRAČUNLJIVOST Diplomski rad Voditelj rada: doc.dr.sc. Zvonko Iljazović Zagreb, lipanj 015. Ovaj diplomski
ВишеТехничко решење: Софтвер за симулацију стохастичког ортогоналног мерила сигнала, његовог интеграла и диференцијала Руководилац пројекта: Владимир Вуји
Техничко решење: Софтвер за симулацију стохастичког ортогоналног мерила сигнала, његовог интеграла и диференцијала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић Аутори: Велибор
ВишеСТРАХИЊА РАДИЋ КЛАСИФИКАЦИJА ИЗОМЕТРИJА И СЛИЧНОСТИ Према књизи [1], свака изометриjа σ се може представити ком позици - jом неке транслациjе за векто
СТРАХИЊА РАДИЋ КЛАСИФИКАЦИJА ИЗОМЕТРИJА И СЛИЧНОСТИ Према књизи [1], свака изометриjа σ се може представити ком позици - jом неке транслациjе за вектор a (коjи може бити и дужине нула) и неке изометриjе
ВишеРачунарска интелигенција
Рачунарска интелигенција Генетско програмирање Александар Картељ kartelj@matf.bg.ac.rs Ови слајдови представљају прилагођење слајдова: A.E. Eiben, J.E. Smith, Introduction to Evolutionary computing: Genetic
ВишеP9.1 Dodela resursa, Bojenje grafa
Фаза доделе ресурса Ова фаза се у литератури назива и фазом доделе регистара, при чему се под регистрима подразумева скуп ресурса истог типа. Додела регистара променљивама из графа сметњи се обавља тзв.
ВишеLAB PRAKTIKUM OR1 _ETR_
UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKULTET STUDIJSKI PROGRAM: ELEKTRONIKA, TELEKOMUNIKACIJE I RAČUNARI PREDMET: OSNOVE RAČUNARSTVA 1 FOND ČASOVA: 2+1+1 LABORATORIJSKA VJEŽBA BROJ 1 NAZIV: REALIZACIJA
ВишеALGEBRA I (2010/11)
ALGEBRA I (2010/11) ALGEBRA I(20010/11), KOLOKVIJUM I-NOVEMBAR, 24. novembar 2010. GRUPA I 1. Da li je tautologija: p ( q r) (p q) (p r). 2. Pronaći KKF i KDF za r ( p q). 3. Pronaći jean primer interpretacije
ВишеInženjering informacionih sistema
Fakultet tehničkih nauka, Novi Sad Inženjering informacionih sistema Dr Ivan Luković Dr Slavica Kordić Nikola Obrenović Milanka Bjelica Dr Jelena Borocki Dr Milan Delić UML UML (Unified Modeling Language)
ВишеМатематика основни ниво 1. Одреди елементе скупова A, B, C: a) б) A = B = C = 2. Запиши елементе скупова A, B, C на основу слике: A = B = C = 3. Броје
1. Одреди елементе скупова A, B, C: a) б) A = B = C = 2. Запиши елементе скупова A, B, C на основу слике: A = B = C = 3. Бројеве записане римским цифрама запиши арапским: VIII LI XXVI CDXLIX MDCLXVI XXXIX
ВишеDinamičko programiranje Primer 1: Za dati niz naći njegov najduži neopadajući podniz. Defnicija: podniz nekog niza je niz koji se dobija izbacivanjem
Dinamičko programiranje Primer 1: Za dati niz naći njegov najduži neopadajući podniz. Defnicija: podniz nekog niza je niz koji se dobija izbacivanjem nekih (moguće nijednog) elemenata polaznog niza. Formalno,
ВишеТРОУГАО БРЗИНА и математичка неисправност Лоренцове трансформације у специјалној теорији релативности Александар Вукеља www.
ТРОУГАО БРЗИНА и математичка неисправност Лоренцове трансформације у специјалној теорији релативности Александар Вукеља aleksandar@masstheory.org www.masstheory.org Август 2007 О ауторским правима: Дело
ВишеGeneralizirani trag i normalne forme za logiku interpretabilnosti Vedran Čačić PMF Matematički odsjek Sveučilište u Zagrebu Dubrovnik radiona Sustavi
Generalizirani trag i normalne forme za logiku interpretabilnosti Vedran Čačić PMF Matematički odsjek Sveučilište u Zagrebu Dubrovnik radiona Sustavi dokazivanja 28. lipnja 2012. Zašto logika interpretabilnosti?
ВишеLinearna algebra Mirko Primc
Linearna algebra Mirko Primc Sadržaj Poglavlje 1. Polje realnih brojeva 5 1. Prirodni i cijeli brojevi 5 2. Polje racionalnih brojeva 6 3. Polje realnih brojeva R 9 4. Polje kompleksnih brojeva C 13 5.
ВишеSkalarne funkcije više varijabli Parcijalne derivacije Skalarne funkcije više varijabli i parcijalne derivacije Franka Miriam Brückler
i parcijalne derivacije Franka Miriam Brückler Jednadžba stanja idealnog plina uz p = nrt V f (x, y, z) = xy z x = n mol, y = T K, z = V L, f == p Pa. Pritom je kodomena od f skup R, a domena je Jednadžba
ВишеClassroom Expectations
АТ-8: Терминирање производно-технолошких ентитета Проф. др Зоран Миљковић Садржај Пројектовање флексибилних ; Математички модел за оптимизацију флексибилних ; Генетички алгоритми у оптимизацији флексибилних
ВишеТалесова 1 теорема и примене - неки задаци из збирке Дефинициjа 1: Нека су a и b две дужи чиjе су дужине изражене преко мерне jединице k > 0, тако да
Талесова 1 теорема и примене - неки задаци из збирке Дефинициjа 1: Нека су и две дужи чиjе су дужине изражене преко мерне jединице k > 0, тако да jе m k и n k, где су m, n > 0. Тада кажемо да су дужи и
ВишеMy_P_Red_Bin_Zbir_Free
БИНОМНА ФОРМУЛА Шт треба знати пре почетка решавања задатака? I Треба знати биному формулу која даје одговор на питање чему је једнак развој једног бинома када га степенујемо са бројем 0 ( ) или ( ) 0!,
ВишеVEŽBE IZ OPERACIONIH ISTRAŽIVANJA
VEŽBE IZ OPERACIONIH ISTRAŽIVANJA Glava 4 1. Metoda grananja i odsecanja 2. Metoda grananja i ograničavanja 3. Metoda implicitnog prebrojavanja MARIJA IVANOVIĆ marijai@math.rs Metoda grananja i odsecanja
ВишеMicrosoft Word - Lekcija 11.doc
Лекција : Креирање графова Mathcad олакшава креирање x-y графика. Треба само кликнути на нови фајл, откуцати израз који зависи од једне варијабле, например, sin(x), а онда кликнути на дугме X-Y Plot на
ВишеMAT KOL (Banja Luka) ISSN (p), ISSN (o) Vol. XX (2)(2014), PELLOVA JEDNAČINA I PITAGORIN
MAT KOL (Banja Luka) ISSN 0354 6969 (p), ISSN 986 5228 (o) Vol. XX (2)(204), 59 68 http://www.imvibl.org/dmbl/dmbl.htm PELLOVA JEDNAČINA I PITAGORINE TROJKE Amra Duraković Bernadin Ibrahimpašić 2, Sažetak
ВишеMatematika 1 - izborna
3.3. NELINEARNE DIOFANTSKE JEDNADŽBE Navest ćemo sada neke metode rješavanja diofantskih jednadžbi koje su drugog i viših stupnjeva. Sve su te metode zapravo posebni oblici jedne opće metode, koja se naziva
ВишеCIJELI BROJEVI 1.) Kako još nazivamo pozitivne cijele brojeve? 1.) Za što je oznaka? 2.) Ispiši skup prirodnih brojeva! 3.) Kako označavamo skup priro
CIJELI BROJEVI 1.) Kako još nazivamo pozitivne cijele brojeve? 1.) Za što je oznaka? 2.) Ispiši skup prirodnih brojeva! 3.) Kako označavamo skup prirodnih brojeva? 4.) Pripada li 0 skupu prirodnih brojeva?
Више9. : , ( )
9. Динамика тачке: Енергиjа, рад и снага (први део) др Ратко Маретић др Дамир Мађаревић Департман за Техничку механику, Факултет техничких наука Нови Сад Садржаj - Шта ћемо научити (1) 1. Преглед литературе
ВишеПројектовање Информационих система
1 РЕЧНИК ПОДАТАКА 2 Речник података Увод Правила креирања речника података Хијерархијска декомпозиција ДТП Пример ДТП 3 Увод Речник података даје опис структуре и садржаја свих токова и складишта података.
ВишеJMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL 2. kolokvij 29. lipnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1. (
MJERA I INTEGRAL. kolokvij 9. lipnja 018. (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni! 1. (ukupno 6 bodova Neka je (, F, µ prostor s mjerom, neka je (f n n1 niz F-izmjerivih funkcija
ВишеSlide 1
0(a) 0(b) 0(c) 0(d) 0(e) :: :: Neke fizikalne veličine poput indeksa loma u anizotropnim sredstvima ovise o iznosu i smjeru, a nisu vektori. Stoga se namede potreba poopdavanja. Međutim, fizikalne veličine,
ВишеMicrosoft PowerPoint - C-4-1
Pregled iskaza u C-u Izraz; Iskaz dodele, serijski komponovani iskaz; blok Uslovni iskazi i izrazi; složeno grananje Iterativni iskazi Iskaz dodele Promena vrednosti a = Ψ; Izračunava vrednost izraza Ψ,
ВишеDISKRETNA MATEMATIKA
DISKRETNA MATEMATIKA Kombinatorika Permutacije, kombinacije, varijacije, binomna formula Ivana Milosavljević - 1 - 1. KOMBINATORIKA PRINCIPI PREBROJAVANJA Predmet kombinatorike je raspoređivanje elemenata
ВишеKDP
Региони Региони Програмска парадигма за приступ критичној секцији Увођење посебне синтаксе за експлицитно означавање критичних секција Обезбеђивање међусобног искључивања процеса Условни критични регион
ВишеПрограмирај!
Листе Поред појединачних вредности исказаних бројем или ниском карактера, често је потребно забележити већи скуп вредности које су на неки начин повезане, као, на пример, имена у списку путника у неком
ВишеOblikovanje i analiza algoritama 4. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. pr
Oblikovanje i analiza algoritama 4. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. predavanje p. 1/69 Sadržaj predavanja Složenost u praksi
ВишеVeeeeeliki brojevi
Matematička gimnazija Nedelja informatike 3 12. decembar 2016. Uvod Postoji 10 tipova ljudi na svetu, oni koji razumeju binarni sistem, oni koji ne razumeju binarni sistem i oni koji nisu očekivali šalu
ВишеОрт колоквијум
Задатак 1 I колоквијум из Основа рачунарске технике I - надокнада - 008/009 (16.05.009.) Р е ш е њ е a) Пошто постоје вектори на којима се функција f не јавља и вектори на којима има вредност један, лако
Више08 RSA1
Преглед ЗАШТИТА ПОДАТАКА Шифровање јавним кључем и хеш функције RSA алгоритам Биће објашњено: RSA алгоритам алгоритам прорачунски аспекти ефикасност коришћењем јавног кључа генерисање кључа сигурност проблем
ВишеАрхитектура и организациjа рачунара Милан Банковић 10. април 2019.
Архитектура и организациjа рачунара Милан Банковић 10. април 2019. 2 Садржаj I Основи дигиталне логике 5 1 Логичке функциjе и логички изрази 7 1.1 Булова алгебра............................ 7 1.1.1 Аксиоме
ВишеSKRIPTE EKOF 2019/20 skripteekof.com Lekcija 1: Brojevni izrazi Lekcija 1: Brojevni izrazi Pregled lekcije U okviru ove lekcije imaćete priliku da nau
Lekcija : Brojevni izrazi Pregled lekcije U okviru ove lekcije imaćete priliku da naučite sledeće: osnovni pojmovi o razlomcima proširivanje, skraćivanje, upoređivanje; zapis razlomka u okviru mešovitog
ВишеTeorija skupova – predavanja
Sveučilište u Zagrebu PMF Matematički odsjek Mladen Vuković Složenost algoritama predavanja i vježbe 21. ožujka 2019. Predgovor Ovaj nastavni materijal namijenjen je prije svega studentima diplomskog
ВишеAlgoritmi
Projektovanje algoritama L09.1. Topološko sortiranje Današnje teme Topološko sortiranje Povezanost grafa jako povezane komponente Minimum Spanning Trees (razapinjuće stablo) Lektira: 22. Elementary Graph
ВишеOsnovni pojmovi teorije verovatnoce
Osnovni pojmovi teorije verovatnoće Profesor Milan Merkle emerkle@etf.rs milanmerkle.etf.rs Verovatnoća i Statistika-proleće 2019 Milan Merkle Osnovni pojmovi ETF Beograd 1 / 13 Verovatnoća i statistika:
ВишеSveučilište J.J.Strossmayera u Osijeku Odjel za matematiku Preddiplomski studij matematike Margareta Tvrdy Banachovi prostori Završni rad Osijek, 2013
Sveučilište J.J.Strossmayera u Osijeku Odjel za matematiku Preddiplomski studij matematike Margareta Tvrdy Banachovi prostori Završni rad Osijek, 2013. Sveučilište J.J.Strossmayera u Osijeku Odjel za matematiku
ВишеLogičke izjave i logičke funkcije
Logičke izjave i logičke funkcije Građa računala, prijenos podataka u računalu Što su logičke izjave? Logička izjava je tvrdnja koja može biti istinita (True) ili lažna (False). Ako je u logičkoj izjavi
ВишеMatematiqki fakultet Univerzitet u Beogradu Iracionalne jednaqine i nejednaqine Zlatko Lazovi 29. mart 2017.
Matematiqki fakultet Univerzitet u Beogradu 29. mart 2017. Matematiqki fakultet 2 Univerzitet u Beogradu Glava 1 Iracionalne jednaqine i nejednaqine 1.1 Teorijski uvod Pod iracionalnim jednaqinama podrazumevaju
ВишеTest ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime
Test ispravio: () () Ukupan broj bodova:. veljače 04. od 3:00 do 4:00 Ime i prezime Razred Škola Županija Mentor Sadržaj Upute za natjecatelje... Zadaci... Upute za natjecatelje Vrijeme pisanja: 60 minuta
ВишеTitle
1. Realni brojevi Prirodno bi bilo konstruisati skup realnih brojeva korak po korak, od prirodnih brojeva preko cijelih, racionalnih i na kraju iracionalnih. Medutim, mi ćemo tom problemu ovdje pristupiti
ВишеSlide 1
OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene radnje. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Pisanje programa zovemo programiranje. Programski jezik
ВишеMicrosoft Word - predavanje8
DERIVACIJA KOMPOZICIJE FUNKCIJA Ponekad je potrebno derivirati funkcije koje nisu jednostavne (složene su). Na primjer, funkcija sin2 je kompozicija funkcija sin (vanjska funkcija) i 2 (unutarnja funkcija).
ВишеKonstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra
Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar 2016 1 Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova strategija rekurzivno razbija problem na 2 ili više potproblema
ВишеProgramski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk
Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijski program: Informacioni inženjering Informacioni inženjering 1 Rekurzivne funkcije Binarna stabla Informacioni
ВишеUniverzitet u Nišu Prirodno-matematički fakultet Departman za matematiku Različite karakterizacije proizvoda projektora Master rad Mentor: Prof. dr. D
Univerzitet u Nišu Prirodno-matematički fakultet Departman za matematiku Različite karakterizacije proizvoda projektora Master rad Mentor: Prof. dr. Dragana Cvetković-Ilić Student: Miljan Ilić Niš, 2019.
ВишеPostavka 2: Osnovni graf algoritmi 1 DISTRIBUIRANI ALGORITMI I SISTEMI Iz kursa CSCE 668 Proleće 2014 Autor izvorne prezentacije: Prof. Jennifer Welch
Postavka 2: Osnovni graf algoritmi 1 DISTRIBUIRANI ALGORITMI I SISTEMI Iz kursa CSCE 668 Proleće 2014 Autor izvorne prezentacije: Prof. Jennifer Welch A1 Slanje svima preko fiksiranog razapinjućeg stabla
ВишеTest iz Linearne algebre i Linearne algebre A qetvrti tok, U zavisnosti od realnog parametra λ rexiti sistem jednaqina x + y + z = λ x +
Test iz Linearne algebre i Linearne algebre A qetvrti tok, 2122017 1 U zavisnosti od realnog parametra λ rexiti sistem jednaqina x + y + z = λ x + λy + λ 2 z = λ 2 x + λ 2 y + λ 4 z = λ 4 2 Odrediti inverz
ВишеDragoš M. Cvetković Slobodan K. Simić ODABRANA POGLAVLJA IZ DISKRETNE MATEMATIKE Treće izdanje AKADEMSKA MISAO Beograd, 2012.
Dragoš M. Cvetković Slobodan K. Simić ODABRANA POGLAVLJA IZ DISKRETNE MATEMATIKE Treće izdanje AKADEMSKA MISAO Beograd, 2012. Dragoš M. Cvetković, Slobodan K. Simić ODABRANA POGLAVLJA IZ DISKRETNE MATEMATIKE
ВишеPROMENLJIVE, TIPOVI PROMENLJIVIH
PROMENLJIVE, TIPOVI PROMENLJIVIH Šta je promenljiva? To je objekat jezika koji ima ime i kome se mogu dodeljivati vrednosti. Svakoj promenljivoj se dodeljuje registar (memorijska lokacija) operativne memorije
Више3.Kontrlne (upravlja~ke) strukture u Javi
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Низови у програмском језику Јава Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ
ВишеUniverzitet u Nišu PRIRODNO-MATEMATIČKI FAKULTET Departman za matematiku Master rad GRUPNI INVERZ OPERATORA Mentor: Prof. dr Dijana Mosić Student: Iva
Univerzitet u Nišu PRIRODNO-MATEMATIČKI FAKULTET Departman za matematiku Master rad GRUPNI INVERZ OPERATORA Mentor: Prof. dr Dijana Mosić Student: Ivana Stamenković Niš, 2018. Sadržaj Predgovor 2 1 Uvod
ВишеМ А Т Е М А Т И К А Први разред (180) Предмети у простору и односи међу њима (10; 4 + 6) Линија и област (14; 5 + 9) Класификација предмета према свој
М А Т Е М А Т И К А Први разред (180) Предмети у простору и односи међу њима (10; 4 + 6) Линија и област (14; 5 + 9) Класификација предмета према својствима (6; 2 + 4) Природни бројеви до 100 (144; 57
ВишеMy_P_Trigo_Zbir_Free
Штa треба знати пре почетка решавања задатака? ТРИГОНОМЕТРИЈА Ниво - Основне формуле које произилазе из дефиниција тригонометријских функција Тригонометријске функције се дефинишу у правоуглом троуглу
ВишеI колоквијум из Основа рачунарске технике I СИ- 2017/2018 ( ) Р е ш е њ е Задатак 1 Тачка А Потребно је прво пронаћи вредности функција f(x
I колоквијум из Основа рачунарске технике I СИ- / (...) Р е ш е њ е Задатак Тачка А Потребно је прво пронаћи вредности функција f(x, x, x ) и g(x, x, x ) на свим векторима. f(x, x, x ) = x x + x x + x
ВишеGrupiranje podataka: pristupi, metode i primjene, ljetni semestar 2013./ Standardizacija podataka Predavanja i vježbe 8 Ako su podaci zadani
Grupiranje podataka: pristupi, metode i primjene, ljetni semestar 2013/2014 1 5 Standardizacija podataka Predavanja i vježbe 8 Ako su podaci zadani s više obilježja (atributa), ta se obilježja mogu međusobno
Више