Sveučilište u Zagrebu Fakultet prometnih znanosti Poslijediplomski specijalistički studij TRANSPORTNA LOGISTIKA I MENADŽMENT Transportna logistika i inteligentni transportni sustavi prof. dr. sc. Hrvoje Gold Zagreb, 16.04.2010.
Sadržaj Inteligentni transportni sustavi (ITS) Modeliranje inteligentnog ponašanja ekspertni sustavi neizrazita logika, neuronske mreže, genetski algoritmi Inteligentna logistika 2
Inteligenti transportni sustavi 3
Inteligentni transportni sustavi ITS Transport i promet Telekomunikacije i informatika TELEMATIKA U PROMETU 4
Telekomunikacije Prijenos informacija na daljinu elektroničkim sredstvima Telefon Telefax 5
Informatika - Unos - Obrada - Pohrana - Predaja - Objava - Pristup - Razmjena INFORMACIJA 6
Telematski sustav = infrastruktura inteligentnog transportnog sustava TRANSPORT INTERNET/ INTRANET ITS WORLD WIDE WEB GIS +GPS 7
Logistika Menadžment Inteligencija 8
9
10
11
Prirodna i umjetna inteligencija 12
Inteligencija Svojstvo uspješnog snalaženja u novim situacijama Učenje na temelju iskustva Sposobnost razumijevanja problema i načina rješavanja problema Svrsishodno i prilagodljivo ponašanje u zadanim okolnostima Sposobnost učenja, razmišljanja, prilagođavanja, odlučivanja, prepoznavanja, zaključivanja, predviđanja 13
Umjetna inteligencija... Pojavom računala omogućen razvoj umjetnih (stručnih/ekspertnih) sustava koji prikupljaju znanje i donose zaključke i odluke slično ljudima Umjetna/Strojna inteligencija (Artificial/Machine Intelligence AI/MI) 14
Umjetna inteligencija Umjetni sustavi inteligentnog ponašanja Sposobnost prikupljanja i uporabe znanja Sposobnost postavljanja problema Sposobnost učenja, zaključivanja, rješavanja problema Sposobnost obrade i razmjene znanja Umjetni sustav je inteligentan ako u rješavanju spoznajnih zadataka postiže iste rezulate kao i čovjek 15
Inteligentni agenti... Posrednici (agenti) korisnika/vlasnika Djeluju samostalno u ime korisnika: Obrada informacija Suradnja Dogovaranje Temelje se na: tehnikama umjetne inteligencije, raspodjeljenom programiranju, internet tehnologijama, mobilnim komunikacijama 16
Inteligentni agenti PODRAŽAJI AGENT OKOLINA ODZIVI 17
Područja umjetne inteligencije Sustavi za potporu u odlučivanju Ekspertni sustavi Inteligentno pretraživanje podataka Formalizmi i metode prikaza znanja Rješavanje problema i metode pretraživanja Učenje korištenjem primjera Razumijevanje i obrada prirodnih (i umjetnih) jezika Automatsko programiranje Računalni vid, raspoznavanje uzoraka i analiza scene Približno računanje (umjetne neuronske mreže, genetski algoritmi, neizrazita logika) Robotika 18
Integracija inteligentnih sustava Sutavi temeljeni na pravilima Neizrazita (fuzzy) logika računanje sa riječima koristi neizrazite, približne vrijednosti koje opisuju značenja, način zaključivanja i odlučivanja Umjetne neuronske mreže uče na temelju iskustva i modificiraju postojeća ili proizvode nova pravila Evolucijski sustavi zasnovani na modelima prirodne selekcije i genetika Hibridni sustavi 19
Nagrada 1.000.000 USD PRIMJERI SAMOSTALNIH INTELIGENTINH VOZILA DARPA Grand Challenge Robot Vehicle Race 2004 ~ 230 km ~ 230.000 GPS Najdulji prijeđeni put Sandstorm ~ 12 km http://www.darpa.mil/grandchallenge/ 20
~ 210 km Prijavljeno 195 Započelo 23 Stanley H1ghlander Sandstorm DARPA Grand Challenge Robot Vehicle Race 2005 Stiglo na cilj: 5 vozila Stanley - Stanford 30 km/h 6:54h Nagrada 2.000.000 USD 21
DARPA 3rd Grand Challenge Urban Challenge November 2007 96 km gradske vožnje, za < 6 sati, poštujući prometna pravila 1. mjesto Chevy Tahoe 4:10:20 4 vozila za < 4 sata 6 vozila stiglo na cilj Nagrada za 1. mjesto 22 CMU 2.000.000 USD
- Ekspertni sustavi - 23
Ekspertni sustav Prikuplja, organizira i koristi znanje stručnjaka za rješavanje problema iz određenog (uskog) područja Ekspertni sustav znanje i stručnost čovjeka izraženi u obliku pravila (ako... onda) baza znanja i mehanizam zaključivanja su razdvojeni sustav može objasniti postupak zaključivanja 24
Inženjering znanja Način prikupljanja (izvlačenja), prikaza i upotrebe znanja Izražavanje stručnjaka nepreciznim, dvosmislenim terminima (gotovo uvijek, obično, ponekad) korištenjem lingvističkih varijabli (visok, brz, težak) Postupak prikupljanja, provjere i preradbe znanja je zamoran i skup 25
Ontologije i baze znanja Ontologija - proučavanje bitka ili suštine značenja pojmova Opis klasa pojmova i njihovih odnosa Elementi u izgradnji ontologije: Klase pojmova Obilježja pojmova koja opisuju značajke i atribute (uloge) pojmova Ograničenja na uporabu obilježja Ontologija sa skupom primjera pojmova tvori bazu znanja Programski alati za izgradnju ontologije http://protege.stanford.edu/
Struktura ekspertnog sustava Primjena na usko specijalizirano područje Koristi se heuristički način zaključivanja Jednostavno objašnjavanje postupka zaključivanja Simboličko zaključivanje nenumerički podaci Približno zaključivanje sa nepotpunim i neizvjesnim podacima
Ciklus mehanizma zaključivanja
Logika sudova Sud, izreka, izjava, propozicija P :: Auto je skup ovom sudu nije pridružena vrijednost istinitosti istina za novi auto, laž za stari Sudu je uvijek pridružena vrijednost istinitosti (istina/laž, true/false) P T F
Tablica istinitosti Negacija, komplement P :: Auto nije skup P P T F F T Povezivanje sudova veznicima / logičkim operatorima I (AND) ILI (OR) + ( )
Uvjetovani sudovi Pravila zaključivanja P, (P->Q), zaključak Q Modus Ponens (potvrđivanjem) P, (P->Q), ne Q, zaključak ne P Modus Tollens (opovrgavanjem) Modus Ponens Modus Tollens
Primjer zaključivanja ((P->Q) (Q->R)), zaključak (P->R) P :: Svi ljudi su smrtni Q :: Sokrat je čovjek Zaključak :: Sokrat je smrtan
- Neizrazita logika i približno zaključivanje - 33
Pojam skupa Skup je cijelina sastavljena od dijelova, koji se zovu članovi ili elementi skupa Članovi pridruženi skupu imaju zajednička obilježja Prema mjeri zajedničkih obilježja neki objekt pripada ili ne pripada skupu a X b X
Zadavanje izrazitih skupova Nabrajanjem članova: A = { 1, 2, 3,..., 98, 99, 100 } Navođenjem zajedničkog svojstva članova: A = { x 1 x 100 i x je cijeli broj }
Osnovne operacije sa skupovima A B X Unija skupova A i B: A B = { x x A ili x B } A B X Presjek skupova A i B: A B = { x x A i x B } A A X Komplement skupa A: A = { x x A }
Članstvo u neizrazitom skupu 0.8 0.3 μ 1 0 Mala 171 Srednja Velika 179 168 170 180 x 1 = relativno mala x 2 = niža srednja x 3 = viša srednja Visina [cm] Visina Mala Srednja Velika 168 cm 0.8 0.3 0.0 171 cm 0.4 0.7 0.0 179 cm 0.0 0.7 0.4
Neizraziti (fuzzy, n-) skupovi Stupanj pripadnosti elementa x neizrazitom skupu A je zadan realnom vrijednošću između 0 i 1. μ A ( x) : A [ 0,1] Izričaju stupnja pripadnosti odgovara funkcija članstva neizrazitog skupa.
Univerzalni skup X je diskretan skup: = = + + + = n i i i A n n A A A x x x x x x x x A 1 2 2 1 1 ) / ( ) / ( ) / ( ) / ( μ μ μ μ L Univerzalni skup X je neprekidan skup: ( ) i i A x x A / = μ Označavanje n-skupova (Zadeh)
Trokutna funkcija članstva... μ A 1 A Neprekidni skup 0-2 0 2 x A = 0 2 2 + 2 x x + 2 2 0 2 x x
Trokutna funkcija članstva μ A 1 0.5 0-2 A 0 2 Diskretan skup x X = { -2, -1, 0, 1, 2 } A = 0.5/-1 + 1.0/0 + 0.5/1
Prikaz znanja neizrazitom logikom Znanje ekspertnog sustava izraženo pravilima općeg oblika AKO x je A I y je B ONDA z je C pretpostavke, premise zaključak x, y, z - varijable A, B, C - neizraziti skupovi, brojevi
Primjer neizrazitog pravila AKO je sobna temperatura malo viša I vlaga je dosta visoka ONDA postaviti regulator klima uređaja u položaj jako vlažno AKO x je oko 20 stupnjeva I y je oko 80 % ONDA z je oko 8 x: sobna temperatura ( C) A: malo viša y: vlaga (%) B: dosta visoka z: položaj regulatora (0,...,10) C: jako vlažno
Metode neizrazitog/približnog zaključivanja Metode n-zaključivanja Izravne metode Neizravne metode Izvorna izravna metoda (Mamdani) Fuzzy modeliranje (Tagaki-Sugeno) Metoda pojednostavljenog zaključka
Mamdami-jeva metoda A. Odrediti vrijednosti premisa pravila B. Izvesti zaključak pojedinog pravila C. Izvesti rezultantni zaključak 1. Pravilo: AKO x je A1 I y je B1 ONDA z je C1 2. Pravilo: AKO x je A2 I y je B2 ONDA z je C2 A 1, A 2, B 1, B 2, C 1, C 2 : neizraziti skupovi
Određivanje premisa pravila (x 0, y 0 ) Ulazne varijable x i y su konačne vrijednosti x 0 i y 0 Premisa 1. pravila: W = μ ( x 0 ) μ B ( y 0 1 A1 1 ) Premisa 2. pravila: W = μ ( x 0 ) μ B ( y 0 2 A 2 2 ) Opći slučaj - m ulaza x 1 je A 1 I... I x m je A m μ ( x 1 ) L μ A ( x 1 Am m )
Grafički prikaz (x 0, y 0 ) W 1 = μ A y 1 1 ( x 0 ) μ B ( 0 ) W 2 = μ A y 2 2 ( x 0 ) μ B ( 0 )
Izvođenje pojedinačnog zaključka Zaključak 1. pravila: Zaključak 2. pravila: 1 1 0 ' ) ( ) ( 1 1 C z z W x C C = μ μ 2 2 0 ' ) ( ) ( 2 2 C z z W x C C = μ μ
Grafički prikaz μ μ C' x0) = W1 μc ( z) ( z C 1 1 C ' x0) W2 C ( z) ( z C 2 2 = μ 1 2
Izvođenje rezultantnog zaključka Rezultantni zaključak: ) ( ) ( ) ( 1 ' 2 ' z z z C C C μ μ μ = Opći slučaj - n pravila ) ( ) ( ) ( ) ( ' ' ' 2 1 z z z z n C C C C μ μ μ μ = L
Grafički prikaz μc ( z) = μc' ( z) μ 1 C' 2 ( z)
Defuzifikacija neizrazitog skupa Pretvorba neizrazitog skupa u konačnu vrijednost Težišta skupa (centroid) z 0 = μ ( z) zdz C μ ( z) dz C Najveća vrijednost pripadnosti n-skupu z0 = (max μc ( z)) z
Grafički prikaz defuzifikacije
Ekspertni sustav vozila Logika vožnje automobila na temelju udaljenosti i brzine vožnje između vozila Znanje se izražava u obliku pravila zaključivanja
Pravila vožnje Pravilo 1: AKO udaljenost između vozila je mala I brzina je mala ONDA papučicu gasa pustiti (održavati brzinu). Pravilo 2: AKO udaljenost između vozila je mala I brzina je velika ONDA pritisnuti kočnicu (smanjiti brzinu). Pravilo 3: AKO udaljenost između vozila je velika I brzina je mala ONDA pritisnuti papučicu gasa (povečati brzinu). Pravilo 4: AKO udaljenost između vozila je velika I brzina je velika ONDA papučicu gasa pustiti (održavati brzinu).
Fuzifikacija pravila vožnje Izražavanje linguističkih pravila n-skupovima funkcijama članstva prilagođenim okolnostima primjene x: udaljenost između vozila y: brzina vozila z: prilagođenje (promjena) brzine (ubrzanje) X: {x 0 x 40} [m] Y: {y 0 y 100} [km/h] Z: {z -20 z 20} [km/h2]
Zadavanje neizrazitih skupova A1: blizu (udaljenost između vozila) A2: daleko (udaljenost između vozila) B1: mala (brzina) B2: velika (brzina) C1: održavanje (brzine) C2: smanjenje (brzine) C3: povećanje (brzine)
Grafički prikaz n-skupova blizu daleko mala velika udaljenost brzina smanj. održ. pove. ubrzanje
Baza znanja Pravilo 1: AKO x je A1 I y je B1 ONDA z je C1 Pravilo 2: AKO x je A1 I y je B2 ONDA z je C2 Pravilo 3: AKO x je A2 I y je B1 ONDA z je C3 Pravilo 4: AKO x je A2 I y je B2 ONDA z je C1 x y B 1 B 2 Tablični prikaz (pravila) baze znanja A 1 C 2 C 1 A 2 C 3 C 1
Pravilo 1 Pravilo 2 Pravilo 3 Pravilo 4 donekle smanjiti brzinu
Rezultantni zaključak Ako je udaljenost između vozila 15 m i brzina 60 km/h, zaključak glasi donekle smanjiti brzinu ( održavati brzinu i smanjiti brzinu )
- Umjetne neuronske mreže 62
POJAM UMJETNE NEURONSKE MREŽE Umjetne neuronske mreže su mreže međusobno povezanih procesnih elemenata čije je ponašanje slično ponašanju biološkog neurona. Procesni elementi u mreži su povezani na način sličan povezanosti neurona u kori mozga.
SPOSOBNOSTI UMJETNE NEURONSKE MREŽE (2) Učenje na temelju iskustva prilagođenje okolini promjenom ponašanja Sposobnost poopćavanja neosjetljivost na male promjene ulaznih podataka Sposobnost apstrakcije odjeljivanje bitnog od nebitnog Primjenljivost prepoznavanje uzoraka, klasifikacija, predviđanje, identifikacija, optimizacija, prilagodljivo vođenje...
BIOLOŠKE OSNOVE NEURONSKIH MREŽA Mozak je složeni sustav sa sposobnošću: učenja, pamćenja, sjećanja, mišljenja, rješavanja, zaključivanja, prepoznavanja, klasifikacije Živac (neuron) je osnovna stanica živčanog sustava kore mozga. Sinapsa Akson Stanična jezgra Dendriti
ELEMENTI BIOLOŠKOG NEURONA Neuron je procesni član Dendriti su ulazi u neuron Akson je izlaz iz neurona Sinapsa je prostor između neurona ispunjena tekućinom prijenosnika signala (neurotransmiterima) koji ubrzavaju ili usporavaju prijenos električnih signala između neurona prilagođenjem otpora i vodljivosti u sinapsi neuronska mreža uči i pamti Jezgra neurona obrađuje električne signale
BIOLOŠKA NEURONSKA MREŽA Kora mozga Sadrži približno 10 10 neurona i 10 13 sinapsi koje utječu na njegovo ponašanje Brzina obrade iznosi od 400 do 500 operacija u sekundi Paralelni način rada
UMJETNA NEURONSKA MREŽA Sadrži nekoliko tisuća umjetnih neurona s manje od 10 6 umjetnih sinapsi Brzina obrade iznosi od 100 do 200 milijuna operacija u sekundi Serijski i paralelni načini rada
MODEL UMJETNOG NEURONA x 1 w 1j I j = n i= 1 w ij x i y j = Φ ( I j ) x 2 ULAZNI SIGNALI w 2j w ij Zbroj opterećenih ulaza I j Aktivacijska funkcija Φ j AKSON IZLAZNI SIGNAL y j x i w nj DENDRITI JEZGRA x n SINAPSE - TEŽINE NEURON j
ELEMENTI UMJETNOG NEURONA Ulazni signali veličine kontinuiranih vrijednosti Težine prilagodljive veličine pozitivne ili negativne vrijednosti: pojačano (ekscitacijsko) ili oslabljeno (inhibicijsko) djelovanje na ulazne signale Jezgra zbrajanje opterećenih ulaznih signala aktivacijska funkcija (prijenosna funkcija) neurona Izlazni signal
OSNOVNE AKTIVACIJSKE FUNKCIJE NEURONA (3) Logistička funkcija (sigmoid) Φ( I ) = 1+ 1 e α I Izlaz Φ(I) +1 α = 2.0 α = 1.0 koeficijent strmine 1/2 α = 0.5-4 -2 0 2 4 Ulaz I
UMJETNA NEURONSKA MREŽA Sustav za obradu podataka sastavljen, po uzoru na strukturu mozga, od velikog broja jednostavnih vrlo povezanih procesnih elemenata (umjetnih neurona). Procesni elementi su ustrojeni u niz slojeva s potpunim ili slučajnim vezama između slojeva.
Ciljni uzorak NADZIRANO UČENJE Uspoređivanje Pogreška Prilagođenje težina Ulazni uzorak
SIMULACIJE UČENJA I RADA VIŠESLOJNE MREŽE 1. Pogreška lokalnog i globalnog minimuma 2. Aproksimacija funkcije Neuronske mreže - Učenje mreže 2-74
1. Pogreška lokalnog i globalnog minimuma (1) Neuronske mreže - Učenje mreže 2-75
1. Pogreška lokalnog i globalnog minimuma (2) Neuronske mreže - Učenje mreže 2-76
1. Pogreška lokalnog i globalnog minimuma (3) Neuronske mreže - Učenje mreže 2-77
2. Aproksimacija funkcije (1) Neuronske mreže - Učenje mreže 2-78
2. Aproksimacija funkcije: Epoha = 300, ε = 4.34526 (2) Neuronske mreže - Učenje mreže 2-79
2. Aproksimacija funkcije: Epoha = 1000, ε = 3.27365 (3) Neuronske mreže - Učenje mreže 2-80
2. Aproksimacija funkcije: Epoha = 2000, ε = 2.00612 (4) Neuronske mreže - Učenje mreže 2-81
2. Aproksimacija funkcije: Epoha = 2600, ε = 1.01034 (5) Neuronske mreže - Učenje mreže 2-82
2. Aproksimacija funkcije: Epoha = 3000, ε = 0.33537 (6) Neuronske mreže - Učenje mreže 2-83
2. Aproksimacija funkcije: Epoha = 3900, ε = 0.06231 (7) Neuronske mreže - Učenje mreže 2-84
2. Aproksimacija funkcije: Epoha = 6801, ε = 0.01999 (3) Neuronske mreže - Učenje mreže 2-85
- Genetski algoritmi 86
Genetski algoritam Postupak stohastičkog pretraživanja prostora rješenja na temelju prirodnog izbora najsposobnijih kandidatnih rješenja Optimizacija umjetnih (tehnoloških, tehničkih) sustava na temelju optimizacije prirodnih sustava
Prirodni izbor Organizmi su prilagođeni životu u prirodi Darwin: Teorija razvoja (evolucije) Prilagodbu organizama uzrokuju procesi križanja i mijenjanja gena u kromosomima Radi ograničenosti prirodnih bogatstava preživljavaju samo najsposobniji (selekcija)
Dijagram toka genetskog algoritma
Ciklus genetskog aloritma Naraštaj i Križanje Naraštaj (i+1) Mutacija
Genetski algoritam... 1. Zadavanje početne populacije Slučajno generiranje skupa kandidatnih kromosoma {N} 2. Utvrđivanje vrijednosti uspješnosti nizova u populaciji Funkcija uspješnosti mora odgovarati postavljenom zadatku 3. Reprodukcija Na temelju vrijednosti uspješnosti nizova u populaciji, stvara se nova populacija nizova na koju će se primijeniti genetski operatori
4. Križanje Genetski algoritam Operator križanja generira nove nizove spajanjem dijelova postojećih nizova Slučajni izbor parova nizova i mjesta spajanja na nizovima 5. Mutacija Slučajna izmjena vrijednosti niza Korake algoritma od 2 do 5 ponavljati dok nije postignuta konvergencija ili prethodno utvrđeni broj naraštaja
Reprodukcija (odabir nizova)... Metoda ruleta Vjerojatnost odabira kromosoma je proporcionalna njegovoj vrijednosti uspješnosti p i = f i f i
Reprodukcija (odabir nizova)... Kromosom Uspješnost 1 1100010101 9 2 0000100010 7 3 1000000001 6 4 0001100010 5 5 1101110101 5 6 0001000100 4 7 1111111000 3 8 0000000001 3 9 1100001000 2 10 1111111111 1 6 9% 7 7% 5 11% 8 7% 9 4% 4 11% 10 2% 3 13% 1 20% 2 16% Niz 1: Vjerojatnost odabira 20% (9/45)
Reprodukcija (odabir nizova) Ako se kod zamjene stare populacije novom veličina populacije ne mijenja, očekivani broj reprodukcija i-tog niza iznosi f f n = N p = N i = i = i i f f i i N f f i
Genetski operatori (1) Križanje: Dijelovi (geni) odabranih parova nizova se premještaju tako da tvore novi par nizova. Mjesto premještanja se slučajno izabire 11 00010 101 00 00100 010 11 00100 101 00 00010 010
Genetski operatori (2) Mutacija: Uvođenje novih nizova u populaciju Slučajna izmjena jednog dijela (gena) niza Binarno kodirani niz - komplementiranje 1010010101 1010011101
Genetski operatori (3) Inverzija: Premještanje dijela (gena) unutar niza 1 10010 0101 1 01001 0101
Primjer: Optimizacija funkcije (1) Pronalaženje najmanje (ili najveće) vrijednosti funkcije 1 1 y ( x) = 1 x + x 10 200 2 Rješenje: x = 10, y(x) = 0.5
Primjer: Optimizacija funkcije (2) Slučajno generirano 5 brojeva Binarno kodirani 5 bitnim nizovima Izračunate vrijednosti y i (x) Minimum funkcije; maksimum uspješnosti Vjerojatnost izbora niza Očekivani broj reprodukcija i-tog niza f i /f
Primjer: Optimizacija funkcije (3) Niz Vrijednost yi(x) fi(x) fi/sfi fi/f' x x v1 10111 23 1.345 0.743 0.101 0.504 v2 01100 12 0.520 1.923 0.261 1.304 v3 10100 20 1.000 1.000 0.136 0.677 v4 00110 6 0.580 1.732 0.235 1.173 v5 01001 9 0.505 1.980 0.267 1.342 Zbroj 7.378 1.000 5.000 Prosj. 1.476 0.200 1.000 Max. 1.980 0.267 1.432 fi(x) = 1/yi(x) f - prosječna uspješnost populacije
Primjer: Optimizacija funkcije (4) Primjena operatora križanja i mutacije između slučajno odabranih nizova Mutacija na nizu v 1 mijenja vrijednost uspješnosti niza od 1.000 na 1.471 Nova pop. x i y i (x) f i (x) Prije mutacije 10100 20 1.000 1.000 Poslije mutacije 10000 16 0.680 1.471
Primjer: Optimizacija funkcije (5) Repro. Slučajno Mjesto Nova xi skup odabr. par. križ. pop. * v1 101 11 2 3 10000 16 01111 15 v2 01 100 5 2 01001 9 01100 12 v3 1010 0 1 4 10101 21 10110 22 v4 0 0110 3 1 00100 4 10110 22 v5 010 01 4 3 01010 10 00101 5 * mutacija
Primjer: Optimizacija funkcije (6) xi yi(x) fi(x) fi(x)** v1 16 0.680 1.471 15 0.625 1.600** 1.600 v2 9 0.505 1.980** 1.980 12 0.520 1.923** 1.923 v3 21 1.105 0.905 22 1.220 0.820 v4 4 0.680 1.471 22 1.220 0.820 v5 10 0.500 2.000** 2.000 5 0.625 1.600** 1.600 Zbroj 14.589 9.103 Prosj. 1.459 1.821 Max. 2.000 2.000
Literatura Gold, H.: Prezentacije s predavanja (pdf), 2009 Luger, G.F.: Artificial Intelligence, Addison Wesley, 2005. Russell, S., Norvig, P.: Artificial Intelligence: A Modern Approach, Prentice Hall, 2003. Mišljenović, D., Maršić, I.: Umjetna inteligencija, Školska knjiga, 1991. 105