uvod u umjetnu inteligenciju 2012

65
Strana 1 od 295 Uvod u umjetnu inteligenciju 2012 Saša Mladenovic Goran Zaharija 2012/2013 Prirodoslovno matematički fakultet Pripremili: Saša Mladenović i Goran Zaharija [UVOD U UMJETNU INTELIGENCIJU] Bilješke s predavanja

Upload: sm

Post on 30-Oct-2014

287 views

Category:

Documents


2 download

DESCRIPTION

Bilješke s predavanja

TRANSCRIPT

Page 1: Uvod u umjetnu inteligenciju                         2012

Strana 1 od 295

Uvod u umjetnu

inteligenciju

2012

Saša Mladenovic

Goran Zaharija

2012/2013

Prirodoslovno matematički fakultet Pripremili: Saša Mladenović i Goran Zaharija

[UVOD U UMJETNU INTELIGENCIJU] Bilješke s predavanja

Page 2: Uvod u umjetnu inteligenciju                         2012

Strana 2 od 295

UVOD U UMJETNU

INTELIGENCIJU

aša civilizacija može postati prva koja je uništena ne snagom

naših neprijatelja, nego neznanja naših nastavnika i opasnih

besmislica kojima uče našu djecu. U doba umjetne

inteligencije, oni stvaraju umjetne gluposti.

Thomas Sowell (američki vodeći filozof)

Uvod u umjetnu

inteligenciju

2012

Saša Mladenovic

Goran Zaharija

N

Zaštićeno licencom http://creativecommons.org/licenses/by-nc-sa/3.0/hr/

Page 3: Uvod u umjetnu inteligenciju                         2012
Page 4: Uvod u umjetnu inteligenciju                         2012

Strana 2 od 295

SADRŽAJ

Inteligencija

Umjetna inteligencija

Inteligentni sustavi i agenti

Pretrage u umjetnoj inteligenciji

http://www.flipsnack.com/page-flip-software/edit?flip=funl488j#upload

Page 5: Uvod u umjetnu inteligenciju                         2012

1

INTELIGENCIJA

Nikad dovršena priča

Page 6: Uvod u umjetnu inteligenciju                         2012

Strana 2 od 295

I N T E L I G E N C I J A

ritanski psiholog Philip E. Vernon (1905-1987) ,60-tih je godina prošlog stoljeća ustvrdio da su definicije inteligencije toliko raznovrsne i mnogobrojne, da ih se mora moći klasificirati. Ovdje je prikazana njegova klasifikacija u tri široke skupine.

Biološke definicije određuju inteligenciju kao prilagodbu okolini. Jedan od najznačajnijih psihologa iz područja razvojne psihologije, Jean Piaget (1896-1980), inteligenciju nije smatrao dispozicijom nego procesom i nisu ga zanimale interindividualne razlike nego faze kognitivnog razvoja primjenjive na ljude općenito.

Neke su od Piagetovih “definicija” inteligencije sljedeće:

(Piaget 1950) “...stanje postignute ravnoteže kada je čovjek sposoban adekvatno postupati s podacima s kojima je došao u dodir. No to nije statično stanje nego dinamično, jer je riječ o neprekidnoj adaptaciji na podražaje iz okoline.”

(Piaget 1950) “...inteligencija uspostavlja stanje ravnoteže...”

(Piaget 1963) “Inteligencija je adaptacija... njezina je funkcija strukturirati cjelokupan svijet baš kao što organizam strukturira svoju neposrednu okolinu.”

Kategorija bioloških definicija inteligencije predstavlja kvalitativan pristup u kojemu naglasak nije na utvrđivanju razlika među pojedincima nego na samoj inteligenciji.

Psihološke definicije predstavljaju kvantitativan, tj. psihometrijski pristup, u kojem se naglasak stavlja na mjerenje inteligencije te uspoređivanju i razlikovanju pojedinaca.

Prvi testovi inteligencije nastali su iz prak-tičnih, veoma pragmatičnih razloga. Stoga i ne čudi mnoštvo definicija inteligencije, koje prema Vernonovoj podjeli možemo uvrstiti u ovu kategoriju. Evo samo neke od postavljenih definicija inteligencije.

B

Page 7: Uvod u umjetnu inteligenciju                         2012

Strana 3 od 295

Francuski psiholog Alfred Binet (1857–1911) početkom dvadesetog stoljeća sa svojim suradnicima izradio prvi test

inteligencije kako bi pomogao u otkrivanju učenika s teškoćama u učenju. Ti testovi su provjeravali upravo ono što je za škole tog doba bilo bitno, a to su jezična i matematičko-logička inteligencija. Evo nekih definicija inteligencije koje je posavio upravo Binet:

“Izgleda da je inteligencija osnovna sposobnost čije slabljenje ima velik utjecaj na praktičan život. Tu sposobnost nazivamo zaključivanjem, smislom za praktično, inicijativom, sposobnošću prilagoditi se okolnostima. Valjano procijeniti, ispravno razumjeti, valjano zaključiti...” (Binet 1905)

Binet-ovi testovi inteligencije nastavili su se usavršavati, a Lewis Terman (1877-1956) ističe se kao pionir obrazovne psihologije u ranom 20. stoljeću na Stanford University School of Education, a najpoznatiji je kao tvorac Stanford-Binet IQ testa. Zanimljivo je pogledati kako on definira inteligenciju.

“Pojedinac je onoliko inteligentan koliko je sposoban apstraktno misliti.” (Terman 1921)

Postoji još cijeli niz značajnih psihologa koji su postavili različite definicije inteligencije, a u nastavku su nabrojane samo neke od njih.

“...opća sposobnost pojedinca svjesno prilagoditi svoje razmišljanje novim uvjetima opća mentalna sposobnost prilagodbe novim problemima i uvjetima života...” (Stern 1912)

“Urođena, opća, kognitivna sposobnost.” (Burt 1955)

“Inteligencija je struktura ili opća sposob-nost pojedinca djelovati sa svrhom, racionalno razmišljati i učinkovito postupati sa svojom okolinom.” (Wechsler 1944)

“Učinkovite, opće kognitivne sposobnosti razumjeti, primijetiti odnose i zaključivati.” (Vernon 1969)

Operativne definicije određuju inteligenciju u smislu testova koji je mjere, pa je tako inteligencija “ono što mjere testovi inteligencije”. Iako takva definicija rješava problem mogućih pogreški u shvaćanju i definiranju inteligencije, ona zapravo ne govori ništa te nije logički valjana (cirkularna je, tj. pojam koji želimo definirati definiramo njim samim). Prema takvoj definiciji postoji onoliko vrsta, odnosno teorija ili definicija inteligencije, koliko ima testova koji je mjere.

Page 8: Uvod u umjetnu inteligenciju                         2012

Strana 4 od 295

S L O Ž E N O S T I N T E L I G E N C I J E

ostoji veliki broj različitih definicija inteligencije koje se razlikuju u zavisnosti od toga što se uzima u razmatranje prilikom, ali i prema stajalištu s kojeg se pristupa definiciji.

Pod umjetnom inteligencijom se obično podrazumijeva interdisciplinarno područje istraživanja, koje kombinira spoznaje i metode kognitivne psihologije i računalnih znanosti u cilju razvoja umjetnih sustava koji bi postigli neke značajke ljudskog razmišljanja. Takvi sustavi trebali bi izvoditi operacije slične čovjekovim sposobnostima učenja, zaključivanja i donošenja odluka. Ovo je jedno od najzanimljivijih i najperspektivnijih područja razvoja znanosti, a s obzirom na razvoj novih generacija računala sa sve većim mogućnostima, granice razvoja ovog područja teško je naslutiti.

Pojam inteligencije je složen pojam koji opisuje svojstva uma koja obuhvaćaju skup povezanih sposobnosti kao što su:

zaključivanje, planiranje, rješavanje problema, učenje…[1]

Sam pojam inteligencija nastao je od latinskog glagola "intellegere", što znači "razumjeti" koji dolazi od riječi „inter“, što znači između i „legere“ što znači odabrati. [2] Pogleda li se doslovno značenje riječi koje tvore riječ inteligencija potvrđuje se kako je inteligencija od samih početaka shvaćena kao sposobnost donošenja ispravnih odluka.

Ipak, u stručnim je krugovima prihvaćena definicija inteligencije koja predstavlja sintezu dvadeset i pet iskaza vezanih za inteligenciju [3], a glasi:

nteligencija je opća mentalna sposobnost koja obuhvaća: sposobnost

zaključivanja, rješavanja problema, apstraktnog razmišljanja,

razumijevanje ideja i govornog jezika, i sposobnost učenja

Navedena definicija razmatra inteligenciju kao složeni skup mentalnih sposobnosti. Kako se u definiciji izrijekom navodi govorni jezik, očito je kako se razmatra isključivo ljudska inteligencija, kao najzanimljiviji oblik inteligencije, ali se ne negira postojanje ostalih oblika inteligencije uočenih prije svega kod životinja.

Na inteligenciju zaključujemo uobičajeno promatrajući pojedinca u okolini pa se tada može postaviti slijedeća definicija inteligencije:

nteligencija je sposobnost pojedinca razumjeti okolinu, učiti obrasce

ponašanja i djelovati na okolinu u smjeru postizanja svojih ciljeva.

P

I

I

Page 9: Uvod u umjetnu inteligenciju                         2012

Strana 5 od 295

Sa socijalnog i biološkog stajališta inteligencija se definira naglašavajući važnost okoline.

nteligencija je sposobnost pojedinca prilagoditi se svom okolišu.

Temeljem navedenog definiramo inteligenciju kako slijedi:

nteligencija je vrlo općenita mentalna sposobnost, koja između ostalog,

uključuje sposobnost zaključivanja, planiranja, rješavanja problema,

apstraktno mišljenje, razumijevanje kompleksnih ideja, brzo učenje i učenje

na temelju iskustva.

Ne obuhvaća samo učenje iz knjiga, usku akademsku vještinu ili elegantno

rješavanje testova. Inteligencija reflektira širu i dublju sposobnost

razumijevanja okoline – opažanja, shvaćanja smisla u stvarima ili

odlučivanja o tome što napraviti.

Mišljenju stručnjaka iz područja tehnike suprotstavila se Američka udruga psihologa koja inteligenciju, pak, definira na sljedeći način: („Intelligence: Knowns and Unknowns“, 7. Kolovoza 1994.)

ndividue se razlikuju jedna od druge po svojoj sposobnosti shvaćanja

složene ideje, efikasnoj prilagodbi svojoj okolini, učenju iz iskustva,

uključivanju u razne oblike razumnog razmišljanja, te rješavanju prepreka

koristeći sposobnost razmišljanja. Iako te individualne razlike mogu biti

značajne, one nikad nisu u potpunosti konzistentne: intelektualno

djelovanje neke osobe će varirati u različitim prigodama, domenama, jer

se ocjenjuju drugačijim kriterijima. Koncepti „inteligencije“ su samo

pokušaji razjašnjavanja i organiziranja takvih složenih djelovanja.“

V I Š E S T R U K A I N T E L I G E N C I J A

ako postoje očita razilaženja u preciznom definiranju inteligencije, općenito je prihvaćen pristup nazvan višestruka inteligencija (eng. Multiple Intelligences) koji smatra da postoje različiti tipovi inteligencije [4].

Howard Gardner je psiholog koji je najpoznatiji po svojoj teoriji višestruke inteligencije, a koja predstavlja kritiku prema prema stavu da postoji samo jedna ljudska inteligencija koja može biti procijenjena kroz standardne psihometrijske instrumente. On tvrdi da svi imamo individualne snage i slabosti koje oblikuju dimenzije višestruke inteligencije.

ardner inteligenciju definira kao sposobnost za rješavanje problema

i stvaranje proizvoda koji se cijene u jednom ili više kulturnih okvira.

I

I

I

I

G

Page 10: Uvod u umjetnu inteligenciju                         2012

Strana 6 od 295

išestruka inteligencija se u početku sastojala iz sedam dimenzija inteligencije, ali kasnije je Gardner dodatno identificirao osmu, a može se uzeti u obzir i egzistencijalistička inteligencija, što znači da teorija višestruke inteligencije ima 9 dimenzija. Gardner je potvrdu svojih hipoteza našao u neurofiziološkim istraživanjima, ali upozorava da u normalnim životnim situacijama ove sposobnosti ne funkcioniraju potpuno nezavisno jedna od druge, već u velikom broju slučajeva međusobno se preklapaju i tako zajedno djeluju.

1. VIZUALNO - PROSTORNA INTELIGENCIJA

Pretežno se odnosi na likovno izražavanje, crtanje, modeliranje itd. Osobe sa izaženom ovom inteligencijom vole promatrati svijet oko sebe i pronalaziti zanimljive stvari u njemu. Obično posjeduju sposobnost zamišljanja stvari ili slika, te pored toga sposobnost da ono što vide u mašti predstave i drugima putem umjetnosti, dizajna, fotografije, arhitekture ili različitih izuma.

Ovu vrstu inteligencije posjeduju: arhitekti,umjetnici, koreografi itd.

2. VERBALNO - LINGVISTIČKA INTELIGENCIJA

Ovaj oblik inteligencije odnosi se na govorno izražavanje i govornu fluentnost. Manifestira se u čitanju, pisanju i govoru. Osobe s izraženom ovom inteligencijom, vješte su u poigravanju riječima, učenju stranih jezika, pričanju priča, kreativnom pisanju ili čitanju, vješti su govonici, dobro se snalazer u debatama, razumiju sintaksu i strukturu jezika.

Ova vrsta inteligencije najčešće je razvijena kod pisaca, pjesnika, filozofa, novinara i svih društvenih djelatnika.

3. LOGIČKO - MATEMATIČKA INTELIGENCIJA

Najčešće je povezana s onim što se naziva naučeno mišljenje, a povezana je i s logikom. Ona uključuje sposobnosti da se radi s apstraktnim simbolima, te da se otkrivaju skrivene veze i odnosi između danih podataka i informacija. Ovaj oblik inteligencije se ističe kod osoba koje uživaju pri rješavanju problema, sposobni su razumjeti brojeve i matematičke strukture i znanost ih sama po sebi zabavlja. Obično takve osobe vole zagonetke, rebuse, mozgalice, računare, smišljaju vlastite šifre ili rado provode znanstvene eksperimente.

Ova vrsta inteligencije razvijena je kod znanstvenika, ekonomista, kompjuterskih stručnjaka, liječnika, matematičara itd.

4. TJELESNO - KINESTETIČKA INTELIGENCIJA

Ovaj vid inteligencije je izražen kod osoba koje se skladno kreću i osjećaju ugodno u vlastitom tijelu, koriste ga da bi naučili nove vještine ili se izrazili na različite načine.

Osobe s istaknutom ovom inteligencijom često se bave atletikom, plesom, glumom ili naviše vole raditi rukama i baviti se aktivnostima poput modelarstva, konstruiranja ili popravljanja stvari.

V

Page 11: Uvod u umjetnu inteligenciju                         2012

Strana 7 od 295

5. GLAZBENA INTELIGENCIJA

Osobe sa izraženom ovom inteligencijom vole glazbu, ritam, melodiju, općenito, skladne tonove. Posjeduju dobar glazbeni sluh, te su osjetljivi na zvučne podražaje u okolini, ljudske glasove ili glazbene instrumente. Obično vole različite vrste glazbe i uživaju u aktivnostima poput pjevanja, sviranja, slušanja glazbe, posjećivanja koncetara.

Ovu vrstu inteligencije imaju ljudi koji se bave reklamom, glazbenici, kompozitori, nastavnici glazbe, glazbeni kritičari itd.

6. INTERPERSONALNA INTELIGENCIJA

Osobe sa izraženom ovom vrstom inteligencije zanimaju ljudi i načini na koji se međusobno ophode. Obično su to ekstrovertirane osobe, osjetljivi na emocije i raspoloženja drugih ljudi, vješti su komunikatori i u ranijoj dobi su obično sudionici radnih skupina učenika škole ili debatnih klubova, imaju mnogo prijatelja, kasnije sudjeluju u radu nekih udruženja ili jednostavno uživaju u svakodnevnom druženju s ljudima. Ova vrsta inteligencije zahtjeva sposobnost da se prepoznaju razlike među ljudima u raspoloženju, emocijama, temperamentu, motivaciji i namjerama.

Ovu vrstu inteligencije obično posjeduju socijalni radnici, terapeuti, političari, vjeski lideri, menadžeri, učitelji itd.

7. INTRAPERSONALNA INTELIGENCIJA

Ovaj vid inteligencije osigurava osobi da posjeduje svijest o vlastitim osjećajima i razumije ih, svjesna je u čemu je najbolja, a na čemu još mora poraditi, ne preuveličava svoje vrline, i ne nastoji skriti svoje mane. Poznaje sebe više nego što je itko drugi može upoznati. Dakle, povezana je s introspektivnošću i samorefleksijom. Često su te osobe povočene i vole vrijeme provoditi u samoći, nastojeći predvidjeti svoje reakcije i emocije i tako biti jedinstvene, vode dnevnik, stvaraju planove za budućnost, razmišljaju o prošlosti.

Ovu vrstu inteligencije prije svega posjeduju filozofi, psiholozi, teolozi, odvjetnici, pisci itd.

8. NATURALISTIČKA INTELIGENCIJA

Osobe s ovom inteligencijom su promatrači i uživaju u prirodi i prirodnim ljepotama, bave se identificiranjem i klasificiranjem biljaka, životinja, minerala. Ili jednostavno vole boraviti u prirodi i osjećaju duboku povezanost s njom.

Te osobe zanima vrtlarstvo, briga o životinjama, kuhanje, ekologija, poljoprivreda itd.

9. EGZISTENCIJALNA INTELIGENCIJA

Gardner još uvijek razmišlja o ovoj vrsti inteligencije. Osobe s izraženom ovom vrstom inteligencije vole razmišljati o filozofskim pitanjima, o svrsi postojanja, općenito pitanjima vezanima za život i življenje.

Osobe s ovom inteligencijom se nalze u filozofskim i vjerskim krugovima.

Page 12: Uvod u umjetnu inteligenciju                         2012

Strana 8 od 295

S T E R N B E R G O V A T R O S L O Ž N A T E O R I J A I N T E L I G E N C I J E

edan od predstavnika grupe koji zastupaju kontekstualni model inteligencije koji polaze od pretpostavke kako nije moguće inteligenciju proučavati i mjeriti izvan konteksta u kojem se inteligentno ponašanje odvija je pored Gardnera i Robert Jeffrey Sternberg.

Robert Jeffrey Sternberg je jedan od najvećih američkih i svjetskih psihologa danas, profesor je psihologije i pedagogije na Odsjeku za psihologiju američkog sveučilišta Yale i direktor centra za istraživanje ljudskih sposobnosti, kompetencija i stručnosti pri istom odsjeku. Izložio je, pored ostalog, svoja razmišljanja o ljudskoj inteligenciji, stilovima mišljenja, kognitivnoj fleksibilnosti, vodstvu… Autor je trosložne ili triarhične teorije inteligencije koja govori o:

posredujućim komponentama

vezi inteligencije i okoline

mehanizmu modificiranja inteligencije kroz iskustvo

emeljni dio modela su posredujuće komponente koje ljudi koriste da bi riješili neki problem-metakomponente, komponente usvajanja znanja i komponente uratka.

Te komponente djeluju pri izvođenju nekog zadatka-metakomponente (planiranju akcije, odabiru strategija, motrenju napretka), komponente usvajanja znanja (omogućuju učenje novih informacija), komponente uratka (provode odabrane strategije i postupke), npr. pri pisanju seminarskog rada iz umjetne inteligencije metakomponente služe za planiranje strategije pisanja, organiziranje plana izlaganja i motrenje procesa seminara, komponentama usvajanja istražujemo temu, stječemo nova znanja i kombiniramo činjenice u ideje, komponente uratka sve isplanirano i proučeno napišemo u obliku referata.

eza inteligencije i okoline očituje se u činjenici kako ljudi koriste inteligenciju da bi odabrali za sebe povoljnu okolinu, promijenili je ili joj se prilagodili.

skustvo i učenje iz iskustva očituju se kroz dvije karakteristike inteligentnog ponašanja:

uspješno snalaženje u novim situacijama i

sposobnost efikasnog i automatskog rješavanja problema.

Inteligentna će osoba brzo shvatiti što se od nje zahtjeva u novoj situaciji. Ukoliko osoba ima iskustvo s nekom vrstom problema, relativno će lako prepoznati obrazac problema i riješiti ga automatski.

ternbergova trosložna teorija inteligencije sugerira kako agenta treba suočavati

sa situacijama u kojima treba povezati novo iskustvo sa već postojećim znanjem.

J

T

V I

S

Page 13: Uvod u umjetnu inteligenciju                         2012

9

UMJETNA

INTELIGENCIJA

Što je to?

Page 14: Uvod u umjetnu inteligenciju                         2012

Strana 10 od 295

U M J E T N A I N T E L I G E N C I J A : O D G R Č K E M I T O L O G I J E D O D A N A S

Umjetna inteligencija (engl. Artificial intelligence) je disciplina koja se bavi oblikovanjem inteligentnih sustava koji implementiraju ona svojstva ljudskog ponašanja koja se smatraju inteligentnim. Područja koja se bave istraživanjem umjetne inteligencije su računalstvo, filozofija, matematika, ekonomija, psihologija i lingvistika. Umjetnu inteligenciju možemo podijeliti na slabu i jaku. Zagovornici slabe umjetne inteligencije razvijaju inteligentne sustave kojima se dodaju samo određena svojstva ljudskog ponašanja, dok zagovornici jake smatraju da je moguće stvoriti sustav koji će u potpunosti moći replicirati sva inteligentna svojstva ljudskog ponašanja.

Rani počeci

Koncept inteligentnih strojeva može se u tragovima pronaći već u grčkoj mitologiji u kojoj se spominju mehanički pomoćnici grčkog boga Hefesta. U 18. stoljeću pojavljuju se strojevi za igranje šaha pod nazivom Turk koje je osmislio Wolfgang von Kempelen.

Ispostavilo se da se u unutrašnjosti takvog stroja skrivao čovjek te da se cijeli koncept zapravo zasnivao na mehaničkoj iluziji.

U 19. stoljeću Charles Babbage (1792-1871) i Ada

Byron (1815-1852) kreiraju analitički stroj koji se smatra pretečom današnjih računala. Analitički stroj izrađen je 1871, a bio je prvi potpuno automatski mehanički kalkulator. Charles Babbage prvi je začetnik zamisli naprednog mehaničkog kalkulatora za izračun i ispis matematičkih tablica. Ovaj stroj je dizajniran za procjenu bilo koje matematičke formule te je imao još veće mogućnosti analize u odnosu na njegov izvornik, diferencijalni stroj. Samo dio analitičkog stroja završen je prije smrti Babbage-a.

Tek napretkom informatike i tehnologije između 1940. i 1950. nastaju prvi rezultati koji spadaju u područje onoga što se danas naziva umjenta inteligencia. Warren

McCulloch i Walter Pits 1943. godine predlažu prvi model umjetne neuronske mreže, a 1951. godine Marvin Minsky i Dean Edmonds prave prvo elektroničko računalo temeljeno na takvoj mreži, SNARC (eng. Stochastic Neural Analog Reinforcement Computer), koje je modeliralo ponašanje miša u labirintu.

Page 15: Uvod u umjetnu inteligenciju                         2012

Strana 11 od 295

U M J E T N A I N T E L I G E N C I J A : D E F I N I C I J A I P O D R U Č J E I N T E R E S A

ojam umjetna inteligencija prvi je uveo John McCarthy 1956. godine, kad je rekao da se inteligencija može opisati tako detaljno da je moguće napraviti stroj koji će je oponašati. Temelje umjetne inteligencije postavili su:

na konferenciji koju je ugostio Dartmouth College, 1956.

ohn McCarthy, koji je skovao termin 1956., definira umjetnu inteligenciju kao "znanost i inženjerstvo izrade inteligentnih strojeva."

Znanstvenici koji su prisustvovali konferenciji, između ostalih, John McCarthy, Marvin Minsky, Allen Newell, Herbert Simon i Ray Solomonoff postali su vodeći stručnjaci u tom području. Solomonoff je primjerice začetnik područja strojnog učenja (eng. Machine learning). U suradnji sa studentima već spomenutog sveučilišta, napravili su mnoge projekte iz područja umjetne inteligencije koji su tih godina šokirali javnost. Prvi programi iz područja umjetne inteligencije omogućili su računalu rješavati algebarske probleme zadane riječima, „razumjeti“ i „govoriti“ engleski jezik, te raspoznavati logičke teoreme. Već sredinom 60-tih godina, Ministarstvo unutarnjih poslova SAD-a pružilo je ogromnu financijsku potporu tom istraživačkom području. Istraživački su se centri počeli otvarati u velikom broju diljem svijeta, što je omogućilo da umjetna inteligencija uđe na velika vrata u svijet računarstva, ali i općenito informatike.Umjetna inteligencija je snažno povezana s računalnom znanošću, ali ima i važne veze s matematikom, psihologijom, biologijom i mnogim drugima.

P

J

Page 16: Uvod u umjetnu inteligenciju                         2012

Strana 12 od 295

1974. godine, kao odgovor na kritiku Sir Jamesa Lighthilla1,

te na stalan pritisak Kongresa kako je veća financijska potreba drugih znanstvenih projekata, vlade SAD-a i Velike Britanije prestale su s potporama istraživanjima na području umjetne inteligencije. To doba je stoga dobilo naziv Zima umjetne

inteligencije.

1960-te: dijaloški sustavi

Joseph Weizenbaum autor je prvog dijaloškog sustava (engl. dialogue system) poznatog pod nazivom ELIZA, koji nastaje 1967. godine. ELIZA predstavlja simulaciju Rogerovog psihoterapeuta koji postavlja pitanja i pokazuje empatiju s pomoću kratkih iskaza, a zapravo ne daje savjete. Interakcija između dijaloškog sustava i čovjeka odvija se na sljedeći način:

čovjek upisuje pitanje upućeno dijaloškom sustavu,

dijaloški sustav odgovara na pitanje uporabom metode prepoznavanja uzoraka i odabira fraze spremeljene u njegovu bazu znanja.

1970-te i 1980-te: ekspertni sustavi i komercijalizacija

1970-ih godina kao područja umjetne inteligencije razvijaju se stručni ili ekspertni

sustavi (engl. expert system). Glavne osobine tih sustava su da rješavaju jednostavne probleme jednako dobro kao i ljudi koji su stručnjaci u određenome području. Ekspertni sustavi sastoje se od baze znanja (činjenica i pravila), mehanizma za zaključivanje

te korisničkog sučelja koje služi za komunikaciju između čovjeka i stroja. Svoju primjenu pronašli su u matematici, pravu, vojnim i medicinskim znanostima te bankarstvu.

Prvi ekspertni sustav bio je MYCIN (1976.) koji je razvijao tim na čijem je čelu bio Edward Shortliffe, a primjena mu je bila vezana uz područje medicinske dijagnostike i terapeutike. 1980-ih započinje razdoblje globalizacije, industrijalizacije i komercijalizacije područja umjetne inteligencije, posebice na polju ekspertnih sustava.

1 James Lighthill (1973): "Artificial Intelligence: A General Survey" in Artificial Intelligence: a paper symposium,

Science Research Council

Page 17: Uvod u umjetnu inteligenciju                         2012

Strana 13 od 295

Alan Mathison Turing – Turingov test

Alan Mathison Turing (London, 23. lipnja 1912. - Wilmslow, 7. lipnja 1954.), britanski matematičar, kriptograf, i teoretičar računarstva.

zmeđu ostalog:

Utemeljio računalnu znanost (1936)

Odgonetnuo šifru koju su koristile njemačke podmornice Enigma cipher (1939-40)

Vodio svjetski računalni plan (1945-47)

Pokrenuo program umjetne inteligencije (1946-50)

Pokrenuo nelinearnu dinamiku u biologiji (1950-54)

Alan Turing je 1950. objavio provokativan „Turingov test“2 o kojem se i dan danas vode rasprave.

Za test su potrebna tri subjekta, dvije osobe i računalo. Jedna osoba ima ulogu ispitivača (suca). Sudac razgovara s drugom osobom ili računalom, bez da zna s kime komunicira, i pokušava odrediti komunicira li s osobom ili strojem. Ako sudac sa sigurnošću ne može utvrditi koji je sugovornik stroj, smatra se da je stroj prošao test. Kako bi test bio što jednostavniji i kako se ne bi testirala sposobnost generiranja glasa od strane stroja, test se odvija preko tipkovnice i zaslona. Originalno je Turing predložio teleprinter.

2 Turing, Alan (October 1950), "Computing Machinery and Intelligence", Mind Vol. LIX (236): 433–460, ISSN 0026-

4423 http://www.loebner.net/Prizef/TuringArticle.html

I

Page 18: Uvod u umjetnu inteligenciju                         2012

Strana 14 od 295

Smatra se kako je računalo koje može zavarati 30% ispitivača inteligentno. Sudac bira pitanja i područja koja računalo mogu natjerati na odgovor koji nije primjeren za čovjeka.

Do danas niti jedan stroj nije uspio proći Turingov test.

Do sada ste upoznali osnove Turingovog testa. Postoji jako puno toga što možete naučiti vezano uz ovaj test. Test ima svoje pobornike i protivnike, a na način na koji je osmišljen testira ponašanje programa.

Postavlja se pitanje: Može li se inteligencija svesti na

ponašanje? Neki kažu da može, a drugi se tome protive.

Protivnici ističu probleme Turingovog testa koji se najbolje vide na primjeru koji je opisao filozof J. Searle, a poznatom pod nazivom „Kineska soba“.3

3 Searle, John R. (1980), "Minds, Brains, and Programs", Cambridge University Press Behavioral and Brain Sciences

/ Volume3 / Issue03 / September 1980, pp 424-425

Page 19: Uvod u umjetnu inteligenciju                         2012

Strana 15 od 295

Eksperiment kineske sobe

John Searle osmislio je eksperiment koji propituje valjanost Turingovog testa, U eksperimentu, osoba koja ne razumije kineski zatvorena je u sobi. Toj se osobi prosljeđuju poruke napisne na kineskom jeziku. Ona raspolaže s uputama za prevođenje. Nakon što prevede poruku, šalje ju izvan sobe. Kinez koji se u ovom slučaju nalazi u ulozi ispitivača (suca), bi se nalazio izvan sobe, a uspoređujući ulazne i izlazne poruke, mogao bi zaključiti kako se u sobi nalazi netko tko razumije kineski jezik – osoba unutar sobe prošla bi Turingov test, iako ne razumije kineski jezik. Strojevi mogu vrlo uspješno baratati besmislenim nizovima znakova, ali će im uvijek nedostajati ono što bi nama nedostajalo u kineskoj sobi – razumijevanje tih znakova.

Eksperiment Kineske sobe zapravo kritizira sam koncept Turingovog testa.

Razmislite o problemu kineske sobe i opišite kakav utjecaj ostavlja na vas ovakva argumentacija koja poriče inteligenciju ako se temelji na pukom prepoznavanju uzoraka. Možete li prepoznati eksperiment kineske sobe kada se pripremate za neki ispit? Razumijete li i značenje koda ili samo učite predloške i odgovore koje od vas očekuje ispitivač (sudac) koji se u konkretnom slučaju još naziva i nastavnik?

Temeljem cahtbot primjera dodajte pitanja i odgovore po želji i pokušajte replicirati Turingov test. Nakon toga, izradite program pomoću NetLogo okruženja koji jednostavno replicira eksperiment kineske sobe. Ne zaboravite argumentirati na koji ste način prikazali karakteristične operacije u kineskoj sobi.

Page 20: Uvod u umjetnu inteligenciju                         2012

Strana 16 od 295

Gdje smo danas?

U današnje vrijeme nastaje, razvija se i proučava velik broj sustava koji pokazuju određene značajke ljudske inteligencije, kao što su razumijevanje i obradba prirodnog jezika, automatsko zaključivanje, učenje pa čak i izražavanje osjećaja. Oni su i danas predmet istraživanja velikog broja područja kao što su računalna znanost, neurolingvistika, lingvistika, psihologija, filozofija i informacijske znanosti. Iako je zabilježen velik napredak u razvoju inteligetnih sustava od samih početaka do danas, niti jedan stroj još uvijek nije u mogućnosti replicirati sva svojstva ljudske

inteligencije. Pitanje je hoće li to ikada biti moguće.

uvremena definicija umjetne inteligencije (eng. Artificial Intelligence - AI) definira

umjetnu inteligenciju kao "Istraživanje i oblikovanje inteligentnih agenata", gdje je inteligentni agent sustav koji opaža svoju okolinu i poduzima akcije kojima maksimizira svoje mogućnosti za uspjeh.

Postoje dvije temeljne grupe istraživača koje ističu različite motive zbog kojih se umjetna inteligencija uopće razvija kao znanost. Prva od njih izučava umjetnu inteligenciju s ciljem boljeg razumijevanja ljudske inteligencije.

Kod druge grupe, umjetna inteligencija se koristi kako bi čovjek lakše komunicirao sa

strojem i lakše rješavao određene složene zadatke koji su sada teško rješivi i za čije je rješenje nužan čovjek. Iz navedenog slijedi kako je motiv istraživanja umjetne inteligencije, ali i svih ostalih inteligentnih tehnologija zamijeniti ljudsku inteligenciju na određenim zadacima, jer je čovjek zahtijevan, skup i nepouzdan. Korektnije se ovaj motiv može preformulirati u izjavu: Umjetna inteligencija se izučava s ciljem zamijene ljudske inteligencije i čovjeka kao bića pri obavljanju određenih zadaća koje su za čovjeka zamorne, monotone, teške ili opasne.

U smislu inteligentnih sustava, umjetna inteligencija definira se nešto drukčije.

a stanovišta inteligentnih sustava umjetna inteligencija definira se kao disciplina koja se bavi oblikovanjem inteligentnih sustava koji implementiraju ona svojstva ljudskog

ponašanja koja se smatraju inteligentnim"

Područja koja se bave istraživanjem inteligencije su računalstvo, filozofija, matematika, ekonomija, psihologija i lingvistika. Od osobite je važnosti činjenica da se umjetna

inteligencija može podijeliti na slabu i jaku.

Zagovornici slabe umjetne inteligencije razvijaju takve inteligentne sustave kojima se dodaju samo određena svojstva ljudskog ponašanja, dok zagovornici jake umjetne inteligencije smatraju da je moguće stvoriti takav sustav koji će u potpunosti moći

reciplirati sva svojstva ljudskog ponašanja koja se smatraju inteligentnim.

S

S

Page 21: Uvod u umjetnu inteligenciju                         2012

Strana 17 od 295

Osim podijele inteligencije koja nam donekle predočava značenje inteligencije, postoje određene karakterisitke inteligencije, koja nam pobliže donose značenje inteligencije.

Značajke inteligencije

Da bi se donekle shvatila sama definicija inteligencije, potrebno je barem pokušati dati osnovne značajke inteligencije:

IMITACIJA DIJALOGA: je karakteristika koja potječe od čuvenog engleskog matematičara Turinga. On je predložio da se sustav, čovjek ili računalo smatra inteligentnim ako se ne može uočiti vodi li se dijalog, sa čovjekom ili računalom.

RJEŠAVANJE SVIH VARIJANTI PROBLEMA predstavlja slijedeću karakteristiku inteligencije. Ovdje se misli na rješavanje svih varijanti nekog problema, ali ne lošije od čovjeka. Ova karakteristika, nekada veoma popularna, danas se smatra nedovoljnom i nepotpunom. Postavlja se pitanje o kakvom problemu i

kakvim varijantama se govori. Probleme ne treba tražiti u području numerike, jer onda o intelektu nema ni govora. Neki autori predlažu da treba preći u mnogo "intelektualnije" područje, glazbu.

RJEŠAVANJE NETRIVIJALNIH ZADATAKA u samom nazivu krije problem jer se postavlja pitanje što su trivijalni, a što netrivijalni zadaci? Uobičajena matematička definicija kaže da je trivijalan onaj zadatak kod kojega je način rješavanja poznat. Pri tome nije važno postoji li rješenje ili ne, odnosno da postavke dovode do apsurda. Iz definicije trivijalnog zadatka proizlazi definicija netrivijalnog zadatka: to je zadatak kod kojega se mora pronaći način rješavanja. Ovdje se ne misli na klasu problema koji su rješavani, odnosno nisu rješavani, nego na onoga tko mora rješiti zadatak, a ne poznaje algoritam rješavanja.

EKSTRAPOLACIJA, odnosno aproksimativno odlučivanje temeljem niza faktora, je jedna od značajki koju je korisno objasniti i kroz primjere. Neka je dan uzrok neke pojave i njegova posljedica: pritisak na prekidač izaziva uključivanje rasvjete, pojava problema zahtijeva njegovo otklanjanje, itd. Kod trivijalnih problema rješenje je očigledno, što nije slučaj kod zdravstvenih tegoba relativno nedefiniranog oblika ili proizvodnje nekog dijela ili sklopa.

UČENJE je jedna od najvažnijih i najtežih značajki spoznaje, a samim tim i

inteligencije uopće. Pri tom se memoriranje činjenica ne smatra učenjem. To bi bilo isto kao kada bi se reklo da je vožnja automobila pritiskanje papučice gasa. Doduše, bez gasa automobil ne vozi, ali samim pritiskom na papučicu gasa besmisleno je očekivati kako je moguće voziti automobil.

Nakon svega navedenog pogledajmo što je to uopće inteligentni sustav ili inteligentni agent, ako želimo koristiti moderne termine.

Page 22: Uvod u umjetnu inteligenciju                         2012

Strana 18 od 295

Ova je stranica namjerno ostavljena prazna

Page 23: Uvod u umjetnu inteligenciju                         2012

19

INTELIGENTNI

SUSTAVI i AGENTI

Osnovni pojmovi

Page 24: Uvod u umjetnu inteligenciju                         2012

Strana 20 od 295

I N T E L I G E N T N I S U S T A V I I A G E N T I

ukladno jednoj od već navedenih definicija inteligencije:

nteligencija je sposobnost pojedinca razumjeti okolinu, učiti obrasce ponašanja i djelovati na okolinu u smjeru postizanja svojih ciljeva.

možemo definirati inteligentni sustav na sljedeći način:

nteligentan je onaj sustav koji tijekom svog postojanja uči o načinima

djelovanja na okolinu s ciljem dostizanja postavljenih ciljeva.

Inteligentni sustav opaža okolinu i temeljem opažanja i znanja kojeg posjeduje bira akciju koju će izvršiti. Ovakav sustav često se još naziva i autonomni adaptivni agent.4

Kada se već spomenuo pojam agent potrebno je napomenuti kako se kao i kod većine koncepata vezanih uz područje umjetne inteligencije niti agent ne definira jednoznačno.

pisno se agent može definirati kao dio programske podrške koji obavlja zadaće koristeći informacije prikupljene iz okoline i to na način da djeluje kako bi se uspješno izvršila zadaća i dostigao cilj. Programska se podrška pri tom treba moći prilagoditi promjenama u okolini na način da promjene ne utječu na dostizanje cilja.

Ako pretpostavimo da agent uvijek svojim akcijama teži cilju opisnu definiciju agenta možemo sažeti u jednostavniji oblik.

gent je bilo što, što percipira okolinu pomoću senzora, a potom djeluje u toj okolini pomoću aktuatora.

U fizičkom svijetu najčešće se agent predstavlja kao robot koji perceprira okolinu pomoću senzora različitog tipa (ultrazvučnih, senzora dodira, infra crvenih senzora, kamera i slično), a na okolinu djeluje pomoću aktuatora različitog tipa (hvataljki, motora i slično). Kroz ovaj kolegij se agent u fizičkom svijetu realizira pomoću Lego Mindstorms paketa.

nteligencija se kod agenta odnosi na stupanj rasuđivanja i naučenog ponašanja odnosno na sposobnost prihvaćanja ciljeva i izvršavanje delegirane zadaće.

4 Intelligent Systems and their Societies, Walter Fritz, http://intelligent-systems.com.ar/intsyst/ (19.10.2012.)

I

I

O

A

S

I

Page 25: Uvod u umjetnu inteligenciju                         2012

Strana 21 od 295

Inteligentni agent pokazuje određeno „inteligentno“ ponašanje u akcijama koje poduzima. Podrazumijeva se pri tom kako su inteligentni agenti autonomni

programski entiteti koji dobivaju informacije iz svoje okoline, a temeljem tih

informacija i najčešće ugrađenog znanja, donose odluke o akcijama koje

izvršavaju. Iz navedenog se može zaključiti kako su agenti implementirani kroz programsku podršku koja preslikava opažanje u akcije. Uz pojam inteligentnog agenta usko se vezuje pojam opažajnog niza.

pažajni niz predstavlja sva opažanja agenta kroz povijest.

Izbor akcije koju će agent obaviti može ovisiti o cijelom opažajnom nizu.

Opažanje predstavlja interpretaciju

podražaja primljenih putem senzora. Opažanje nastaje unutar agenta kao rezultat interpretacijea podražaja temeljem modela okoline, a ne dobija se neposredno iz okoline, kako bi se dalo zaključiti iz gore navedene slike. Iz navedenog proizlazi još jedna značajna činjenica koja kaže kako su opažanja nastala kao rezultat istog slijeda podražaja kod različitih agenata različiti i zavise o prethodnom iskustvu agenta. Prati li se isti način razmišljanja zaključuje se kako elementi kao što su koncepti, predstavljanje znanja i modela okoline ovise o agentu i mogu se razlikovati od agenta do agenta.

e postoji točan univerzalni model znanja koji dijele svi agenti, već svaki od njih može imati vlastiti model okoline. Svaki od modela može biti točan i dovoljno dobar u

kontekstu pojedinog agenta.

Ova činjenica treba vas voditi prilikom izgradnje vlastitog modela okoline u kojoj se kreće vaš agent. Ne postoji točno i pogrešno modeliran svijet već samo onaj model svijeta temeljem kojeg uspješno dolazite do postavljenih ciljeva i model svijeta koji vas ne vodi do cilja. Tek kada dođete u situaciju u kojoj agenti međusobno dijele znanje i opažanja potrebno je ujednačiti i model okoline kako bi se uspješno razmijenile informacije i

koristile informacije koje su bile predmet razmjene, odnosno uspostavila interoperabilnost.

Promatra li se agent kroz matematički formalizam postavlja se pitanje: Što je funkcija agenta?

unkcija agenta je preslikavanje opažajnog niza u akciju. Funkcija agenta je prema tome apstraktni, matematički opis ponašanja agenta. Funkcija je ugrađena u program agenta koji predstavlja njegovu stvarnu izvedbu.

POSTAVLJA SE PITANJE: Na koji se način može iz modela okoline zaključiti na akciju koja vodi do cilja? ODGOVOR JE: Primjenom matematičke teorije grafova i pripadajućih algoritama.

O

F

N

Page 26: Uvod u umjetnu inteligenciju                         2012

Strana 22 od 295

genti predstavljaju najvažniju novu paradigmu u softverskom razvoju još od pojave objektno-orijentiranog programiranja.”5

McBurney (2004)

Ova izjava dovoljno jasno ističe kako prethodne definicije agenta nisu dovoljne kako bi se u cijelosti prihvatile i shvatile mogućnosti koje se otvaraju programerima prihvaćanjem agentske paradigme. Upravo stoga, razmotrit ćemo još neke od pogleda na agente i to što u stvari agent jest.

Što je to agent?

pćenito govoreći, agent je entitet koji nešto radi i to radi u ime nekoga. Definirati pojam agenta je podjednako teško kao i definirati pojam npr. objekt. Pojam je jednostavno preopćenit. Postoje i mnogo određenije definicije što su agenti. Međutim, sve definicije odražavaju raznolikost shvaćanja pojma, što je posljedica mladosti čitavog područja. Intuitivno se pri spomenu agenta podrazumijeva objekt koji samostalno djeluje u nekoj okolini, prilagođava se okolini u kojoj djeluje, ima sposobnost percipiranja stanja u kojoj se njegova okolina nalazi, djelovanjem mijenja stanja okoline i ima sposobnost učenja.

Promotrimo nekoliko definicija agenata:

1. Pojam agent prikazuje dva optimalna koncepta:

i. sposobnost autonomnog djelovanja agenta (neovisno od korisnika),

ii. sposobnost zaključivanja agenta o nekom području interesa.

2. Agent je nešto što može prihvatiti (osjetiti) vlastitu okolinu preko senzore i djelovati na okolinu putem aktuatora .

3. Autonomni agenti su sustavi koji prihvaćaju kompleksnu dinamičnu okolinu, osjećaju je i djeluju autonomno u toj okolini te na taj način realiziraju skup ciljeva zbog kojih su oblikovani.

5 Luck, Michael, McBurney, P and Preist, C (2004) A Manifesto for Agent Technology: Towards Next Generation

Computing. Journal of Autonomous Agents and Multi-Agent Systems, 9, (3), 203-252.

A

O

Page 27: Uvod u umjetnu inteligenciju                         2012

Strana 23 od 295

4. Agenti su stalni programski entiteti posebne namjene. Agenti se razlikuju od potprograma, imaju svoje vlastite ideje o izvršenju zadatka, svoj vlastiti raspored. Posebna namjena razlikuje agente od potpuno višefunkcionalnih aplikacija; agenti su manji.

ad agenta razmatra se kroz njegovo djelovanje unutar dodijeljene mu okoline. Interakcijom agenta s okolinom mijenjat će se stanja okoline.

Opće je prihvaćena definicija agenata prema kojoj se agenti mogu podijeliti

prema predodžbi, na slabu i jaku

predodžbu agenta.

SLABA PREDODŽBA AGENATA ima sljedeća obilježja:

Samostalnost (eng. autonomous): Agent ima sposobnost izvršavati operacije samostalno bez potrebe za intervencijom korisnika. Ovo svojstvo zahtijeva od agenta posjedovanje mehanizama koji će mu omogućiti samostalno dohvaćanje svih potrebnih informacija o okruženju u kojem se nalazi. Ovisno o dobivenim informacijama agent izvršava pripadajuće operacije. U slučaju greške mehanizmi moraju omogućiti nastavak rada agenta.

Društvenost (eng. social ability): Agent mora posjedovati mehanizme koji mu omogućuju koordiniranje svojih operacija s drugim agentima u svojem okruženju. Obilježje društvenosti agenta ostvareno je korištenjem komunikacijskih protokola, interakcijskih protokola i ontologija6.

Reaktivnost (eng. reactivity): Reaktivni agenti ne posjeduju interni model koji im omogućava predviđanje budućeg stanje okoline, već reagiraju isključivo temeljem sadašnjeg znanja i skupa akcija koje poznaju. Oni reagiraju na utjecaje iz okoline s akcijom predviđenom za trenutno stanje okoline i vrstu utjecaja.

Proaktivnost (eng. proactiveness): Za razliku od reaktivnih agenata, koji samo reagiraju na utjecaje iz okoline, proaktivni agenti posjeduju mehanizme koji im omogućavaju utjecanje na okolinu mijenjajući pritom njeno stanje. Pri tome iskazuju ciljno orijentirano ponašanje, odnosno, svaki agent ima jedan ili nekoliko ciljeva. U situacijama kada stanje okoline nije u skladu s njegovim ciljevima, agent utječe na okolinu dok ne ostvari zadani cilj.

6 Ontologija, u računarstvu, predstavlja formalnu reprezentaciju skupa koncepta unutar domene i veza između

tih koncepta.

R

Page 28: Uvod u umjetnu inteligenciju                         2012

Strana 24 od 295

području umjetne inteligencije vrlo je često zastupljena JAKA PREDODŽBA AGENTA koja ima slijedeća obilježja:

Pokretljivost (eng. mobile): Agent se može kretati s jednog mrežnog čvora na drugi. Svaki pokretni agent sastoji se od tri komponente:

i. programskog koda koji sadrži logiku agenta,

ii. podataka, odnosno, internih atributa koji predstavljaju znanje koje agent posjeduje i

iii. stanja izvođenja.

Racionalnost (eng. rationality): definira da ako agent ima skup ciljeva, od kojih je samo jedan aktivan, on neće izvoditi akcije koje bi mogle biti u suprotnosti s njegovim trenutnim ciljevima. Racionalan agent uvijek mora izvoditi akcije koje bi u konačnici maksimizirale očekivani rezultat pri tome koristeći svoje znanje o trenutnom i budućem stanju okoline

Dobronamjernost (eng. benevolence): Agentovi ciljevi ne smiju biti međusobno konfliktni, ako agent želi maksimizirati očekivani rezultat. Takvi agenti poprimaju i ljudske karakteristike kao što su emocije ili koriste psihološke osobine ljudi.

Inteligentni agenti

Često se umjesto pojma agent koristi pojam inteligentni agent čime se naglašava da

agent mora posjedovati i određenu razinu

inteligentnog ponašanja pri obavljanju svojih

zadataka. Definicija inteligencije je sigurno složenija od definicije agenta. Inteligencija se opisuje različitim atributima poput sposobnosti učenja, razumijevanja, planiranja i predviđanja, rješavanja problema, sintetiziranja novih ideja i modeliranja vanjskog svijeta. Kako smo već i naveli ranije, inteligenciju možemo opisati kao posjedovanje mehanizama ponašanja usmjerenih rješavanju zadanog cilja.

nteligentni agenti sadrže određeni stupanj inteligencije (razinu zaključivanja i učenja odnosno sposobnosti prihvata korisnikovih izjava o ciljevima i obavljanje zadataka koji se pred njih postave). Inteligentni agenti su agenti koji prate naše ponašanje te su temeljem njega u stanju naučiti kako mi rješavamo probleme i slično. Kad su to naučili oni mogu takve zadatke obavljati samostalno, uz povremene provjere vlasnika kod pojave nejasnih ili novih situacija.

U

I

Page 29: Uvod u umjetnu inteligenciju                         2012

Strana 25 od 295

SVOJSTVA INTELIGENTNIH AGENATA:

učenje – od korisnika, od drugih agenata, iz ostalih izvora

suradnja – radi s drugim agentima kako bi postigao svoj cilj

mobilnost – pokretljivost agenata po mreži, izvođenje na različitim računalima

personalizacija – poznavanje svog korisnika, njegovih interese i preferencija

adaptabilnost – uče iz različitih izvora, te iz korisničkih akcija.

Arhitektura agenata

ad se govori o arhitekturi agenata misli se na takvu konstrukciju računalnog sustava koji omogućuju agentima da to zaista i budu (da imaju osobine koje ih čine agentima). Arhitektura agenata je određena metodologija za izgradnju agenata, ona

određuje kako se agent dekomponira u niz modula i kako su ti moduli povezani. Ona pokazuje i način na koji moduli obavljaju svoje aktivnosti, a u svrhu obavljanja zadatka. U arhitekturi agenata mogu se i pokazati veze između različitih agenata, a ne samo struktura jednog agenta. Kod arhitekture ne može se govoriti o jednoj, jedinstvenoj arhitekturi agenta. Kakva će ona biti ovisi o svrsi agenta. Postoje određeni zahtjevi koji se postavljaju pred arhitekturu agenata. Prije svega ona bi trebala omogućiti autonomiju, komunikacije, učenje, orijentiranost ka cilju, mobilnost i stabilnost. Postoje različite razine arhitekture u smislu da određeni agent ne mora imati sve osobine, ali one moraju biti iz gore navedenog skupa kako bi se entitet smatrao agentom. Jedan od najčešćih zahtjeva za arhitekturu jest omogućiti samostalnost. Učenje i zaključivanje drugi su važan aspekt koji mora osigurati arhitektura agenta. Budući da agent djeluje u okolini koja sadrži i druge agente i različite usluge, potrebna je takva arhitektura koja standardizira komunikaciju među agentima i omogućuje pristup određenim uslugama.

rhitektura agenta je zapravo struktura njegova programa. Model samostalnog agenta (u smislu ostvarenja cilja) sastoji se od 8 jedinica i uključuje:

jedinicu za opažanje (eng. perception unit),

jedinicu za obradu (eng. process unit),

kontrolnu jedinicu (eng. control unit),

djelatnu jedinicu (eng. action unit),

jedinicu za komunikaciju (eng. communication unit),

jedinicu znanja (eng. knowledge unit),

računsku jedinicu (eng. compute unit),

jedinicu sa podacima (eng. data unit).

K

A

Page 30: Uvod u umjetnu inteligenciju                         2012

Strana 26 od 295

7

Jedinica za opažanje očitava podatke iz agentovog okruženja. Ona sadrži listu pojedinačnih stanja koja definiraju ukupno stanje okruženja. Ukoliko se neko od pojedinih stanja promijeni, lista podataka se ažurira te se obavještava kontrolnu jedinicu o promjenama kako bi poduzela odgovarajuće mjere.

Jedinica za obradu sadrži cilj ili više ciljeva te njihove međusobne odnose.

Djelatna jedinica sadrži sve djelatnosti koje je agent sposoban obaviti.

Kontrolna jedinica odlučuje koje će se djelatnosti obaviti radi ostvarenja cilja kojeg također ona odabire. Ukoliko jedinica za opažanje uoći promjene u okruženju, tada kontrolna jedinica aktivira reakcijska djelovanja na te promjene.

U računskoj jedinici su definirane funkcije kojima se odabiru ciljevi i optimalna djelovanja. Također sadrži algoritme i mehanizme odabiranja optimalnih djelovanja.

Kontrolna jedinica poziva funkcije iz računske jedinice kako bi se odredio slijedeći cilj i prikladna djelovanja.

Jedinica za razumijevanje nadgleda dio odgovoran za znanje agenta koje se primjenjuje pri rješavanju stvarnih problema.

Jedinica s podacima omogućava pristup svim mehanizmima u bazu podataka.

Komunikacijska jedinica definira načine komunikacije između agenata.

7 Goal Autonomous Agent Architecture, Zhiqi Shen, Robert Gay, Yuan Miao and Chunyan Miao, Proceedings of

the 28th Annual International Computer Software and Applications Conference, COMPSAC’04

Page 31: Uvod u umjetnu inteligenciju                         2012

Strana 27 od 295

anas se inteligentni agenti koriste pri obavljanju mnogih zadataka kao što su pretraživanja sadržaja na Web-u, razvrstavanja elektroničke pošte, odabir korisniku zanimljivih priloga u novinskim grupama, podrška računalnim mrežama, pretraživanje baza podataka i prilagodbe korisničkog sučelja raznim individualnim potebama korisnika.

Rijetko kada je agent samostalan sustav. U većini situacija on će postojati paralelno s drugim agentima i nalaziti se u interakciji s njima.

Višeagentski sustavi

išeagentski sustavi (eng. Multi-agent systems, MAS) predstavljaju mrežu rješavača

problema koji rade zajedno kako bi riješili probleme koji prelaze njihove

individualne sposobnosti:

problemi koji su preveliki za jednog centraliziranog agenta,

povećavaju brzinu i pouzdanost(npr. oporavak nakon pada individualnih komponenti sustava, s blagim padom performansi sustava),

toleriraju nesigurne podatke i znanje.

Agenti u sustavu s više agenata moraju međusobno komunicirati, koordinirati svoje aktivnosti te pregovarati kada među njima dođe do konflikta. Višeagentski sustav se

sastoji od agenata koji su u interakciji jedni s drugima i koji zajedno rade da bi

postigli određeni cilj. Njihova interakcija može biti kooperativna ili sebična.

ooperativni više-agentski sustavi su sustavi u kojima je sve agente, u pravilu, stvorio jedan dizajner. Agenti su kooperativni i može se računati s tim da će svi raditi za dobro sustava.

ebični više-agentski sustavi su sustavi u kojima su agente razvili različiti dizajneri. Agenti su stoga individualno motivirani, kompetitivni, nekooperativni te mogu imati antagonističko ponašanje( npr. skupina osobnih agenata za planiranje sastanaka, gdje svaki agent nastoji planirati sastanak u vrijeme najpogodnije za svojeg vlasnika).

Karakteristika višeagentskog sustava je nepotpunost informacije ili sposobnost za rješavanje problema svakog od agenata (stanje svijeta svakom agentu može biti samo djelomično vidljivo), npr. svaki agent može imati lokalnu percepciju globalnog stanja i treba surađivati autonomno i sinkronizirano s drugim agentima kako bi se postigli ciljevi globalnog sustava.

D

V

S

K

Page 32: Uvod u umjetnu inteligenciju                         2012

Strana 28 od 295

Na slici je prikazana tipična struktura višeagentskog sustava. Sustav se sastoji od više

agenata koji su u interakciji preko komunikacijskih protokola, označenih dvosmjernim strelicama. Agenti djeluju na okolinu (osjenčano područje), ali svaki na drugačiji način. Sfere utjecaja (eng. spheres of influence) prikazuju različite djelove okoline na koju agenti mogu utjecati. Te sfere se ponekad mogu preklapati što može povećati suradnju i ovisnost među agentima. Isprekidanom crtom su prikazane organizacijske veze među agentima.

1. Temeljem primjera koje ste do sada obrađivali na vježbama zaključite o kojem se sustavu radi.

2. Je li sustav koji je modelirao problem krava na pašnjaku višeagentski?

3. Pojasnite arhitekturu agen(a)ta kojeg ste koristili u simulaciji.

4. Ako se radi o višeagentskom sustavu, spada li on u kooperativne ili sebične višeagentske sustave?

5. Argumentirajte odgovore.

Page 33: Uvod u umjetnu inteligenciju                         2012

Strana 29 od 295

I M A L I T U I K A K V E P R I M J E N E ?

ostavlja se pitanje ostaje li sve što smo do sada razmatrali na čisto teorijskoj raspravi ili ipak postoji neko područje u kojem se dosadašnje znanje može primijeniti? Iako postoji potreba za definiranjem pojma znanje, kao i potreba za razlikovanjem različitih vrsta znanja, za sada ćemo taj problem zanemariti. Na jednostavan način ćemo pokušati razmotriti što to radimo i zbog čega se uopće bavimo jednim takvim modelom svijeta umjesto da jednostavno izrađujemo programe koji svima trebaju.

Simulacija

rvo pitanje koje bi netko mogao postaviti jest: „Zašto uopće simuliramo?“ Model je jednostavna reprezentacija sustava u određenom trenutku u prostoru ili vremenu namijenjena razumijevanju realnog, (životnog), sustava. Simulacija je upravljanje

modelom na način da se vrše operacije nad prostorom ili vremenom kako bi se

omogućilo pojedincu predočiti interakcije dijelova modela koje inače ne bi bile

očite zbog njihove odvojenosti u prostoru ili vremenu. Simulacije i njihovi rezultati mogu opovrgnuti teoriju koju smo postavili ili nam dati motivaciju za daljnje proučavanje i istraživanje. One nam pomažu da bolje shvatimo sustav koji istražujemo. Koliko će nam model pomoći u razumijevanju sustava ovisi o tome koliko je dobar. Kako je svaki model

jednostavna reprezentacija realnog sustava uvijek postoji kompromis u vezi toga koliko će detaljan model biti. Ako model sadrži premalo detalja, osoba riskira ne uočiti važne interakcije u sustavu. Ako model sadrži previše detalja onda model može biti prekompliciran i time onemogućiti bolje razumijevanje sustava. Pod simulacijom

najčešće podrazumijevamo računalnu verziju modela koji se izvodi u jedinici

vremena radi proučavanja postavljenih tvrdnji o definiranim interakcijama. Simulacije su općenito iterativne, kao što ćemo vidjeti u primjeru. Peter Senge8 u svojoj knjizi „The Fifth Discipline: The Art & Practice of the Learning Organization“ govori o dvjema vrstama kompleksnosti, detaljnoj i dinamičnoj. Detaljna kompleknost se odnosi na sustave koji imaju jako mnogo komponenti, a dinamična

kompleksnost na sustave kojima su uzrok i posljedica odvojeni prostorom i/ili vremenom. Problem nam stvara dinamična kompleksnost jer ne možemo odmah vidjeti povezanost između dijelova sustava i njihove interakcije. Najveća vrijednost simulacije jest njena mogućnost da utjecanjem na kompresiju vremena i prostora u sustavu, u relativno kratkom vremenu, uočimo interakcije na koje bismo inače čekali jako dugo vremena.

8 Founding Chairperson - Society for Organizational Learning

P

P

Page 34: Uvod u umjetnu inteligenciju                         2012

Strana 30 od 295

Postoji li jednostavniji i intuitivniji primjer od zagušenja prometa? Ova situacija poznata je svim vozačima, ali i onima koji se vrlo načekaju da bi od jedne točke došli do druge iako koriste javni prijevoz, (autobus, prije svega).9

Prometno zagušenje je stanje na cesti koje se javlja kada broj vozila na cesti premaši njen kapacitet, a karakterizira ga sporije, ili čak potpuni zastoj kretanja vozila, duže trajanje putovanja i kolone na cestama.

Na primjeru ćemo vidjeti kako suradnjom možemo poboljšati protok prometa kroz raskrižje. Raskrižje je mjesto gdje se dvije ili tri ceste susreću i stoga je važno da vozila mogu nesmetano proći kroz njega. Kod raskrižja koja najčešće susrećemo protok prometa regulira semafor. Dakle, svako vozilo pokušava proći kroz raskrižje dok mu to semafor dozvoljava. Problemi koji se često javljaju su:

Prevelik je broj vozila u raskrižju ili na izlazu iz njega čime se stvara prometno zagušenje.

Vozači pokušavajući što prije stići do svoje destinacije prolaze kroz raskrižje unatoč tome što na semaforu gori crveno svijetlo.

Vozači postižu neprilagođene brzine pokušavajući stići na zeleno svijetlo čime ugrožavaju sigurnost okolnih vozila i pješaka.

Može se dogoditi da vozila iz jednog smjera čekaju na zeleno svijetlo, a iz drugih smjerova nema nadolazećih vozila. U tom slučaju vozila koja čekaju bespotrebno gube vrijeme.

Bilo koji od prva tri navedena problema može uzrokovati prometnu nesreću ili zagušenje na cestama koje se susreću u raskrižju. U nekim slučajevima tako nastala prometna zagušenja mogu uzrokovati potpuni zastoj, odnosno Gridlock.

Prije smo se bavili pašnjakom i kravama, a sada križanjima i vozilima?!#$%! Stvarno mi je dosta! Ja se želim baviti ozbiljnim programiranjem i tehnikama

umjetne inteligencije, a oni me zamaraju sa glupostima!

Prije nego izgubite strpljenje, prisjetite se pojmova iz područja operacijskih sustava ili računalnih mreža. Krave i pašnjak jednostavno zamijenite aplikacijama koje se bore za resurse, a vozila i križanje zamijenite paketima i usmjerivačima. Sada se nadam kako ćete primjere koje obrađujemo gledati drugim očima.

Primjeri su odabrani kako bi mogli poslužiti za ilustraciju u školskom okruženju, ali to ne znači da su manje vrijedni ili jednostavniji, samo zato jer ih svatko razumije. Nastavimo sada sa opisom problema i ključnih pojmova vezanih za njegovo razumijevanje.

9 Marin Aglić Čuvić - Završni rad: „Suradnja s ciljem rješavanja problema“, PMF Split, 2010

Page 35: Uvod u umjetnu inteligenciju                         2012

Strana 31 od 295

Potpuni zastoj

Pojam potpuni zastoj (eng. gridlock) se koristi za stanje teškog zagušenja u kojem redovi vozila blokiraju cijelu mrežu cesta koje se sijeku što dovodi promet iz svih smjerova do potpunog zastoja. Termin se još koristi i za opisivanje stanje teškog prometnog zagušenja sa minimalnim protokom prometa bez obzira da li se radi o potpunom zastoju. Tradicionalni oblik potpunog zastoja se stvara kada promet iz jednog smjera prolazi kroz raskrižje te se zaustavi zbog prevelikog broja vozila na cesti ili nesreće. Zatim vozači iz drugog smjera ulaze i pokušavaju proći kroz blokirano raskrižje. Vozačima je, inače, zabranjeno da ulaze u raskrižje ako ne mogu proći kroz njega, no ovo pravilo se ne poštuje toliko često. Potpuni zastoj bi se izbjegao kada bi se to pravilo poštivalo, a promet bi bio usporen u smjeru u kojem je zapravo nastalo zagušenje. Često se potpuni zastoj navodi kao

primjer zatvorenikove dileme10. Međusobna suradnja bi dala maksimalnu korist, sprječavanje pojavljivanja potpunog zastoja, ali ovo se možda neće dogoditi zbog želje pojedinca da maksimizira svoju korist, odnosno maksimalno skrati vrijeme putovanja.

PODRUČNO (DOMENSKO) ZNANJE - PROTOK PROMETA

U matematici i inženjerstvu protok prometa prestavlja proučavanje interakcija između vozila, vozača i infrastrukture s ciljem razumijevanja i oblikovanja optimalne mreže cesta s učinkovitim kretanjem prometa i minimalnim prometnim zagušenjima. Prometne pojave su kompleksne i nelinearne i ovise o interakciji velikog broja vozila. U mreži u kojoj promet slobodno teče, teorija protoka prometa proučava tri varijable: brzinu, protok i gustoću. Međutim, izračuni za mreže u kojima se javlja prometno zagušenje su mnogo kompleksniji i više se zasnivaju na empirijskim istraživanjima. Budući da mi promatramo jedno raskrižje i kako suradnjom možemo poboljšati protok prometa kroz njega, dovoljno nam je promatrati brzinu, protok i gustoću. Brzina je definirana kao prijeđena udaljenost po jedinici vremena. U praksi srednju brzinu ne računamo za svako vozilo individaulno već se uzme određeni uzorak vozila po jedinici vremena ili površine. Pri računanju srednje brzine po jedinici vremena uzima se referentno područje na cesti kroz fiksni period vremena i mjere se brzine vozila koja se nalaze u promatranom području. Međutim, rezultati dobiveni na ovaj način nisu precizni.

10 Problem zatvorenikove dileme obraditi ćemo detaljno nešto kasnije.

Page 36: Uvod u umjetnu inteligenciju                         2012

Strana 32 od 295

Pri računanju srednje brzine po jedinici površine uzimamo u obzir cijelu cestu i brzine svih vozila na njoj. Smatra se da su rezultati dobiveni na ovaj način precizniji. Gustoća se definira kao broj vozila po jedinici površine ceste. Protok je broj vozila koji prođe referentnom točkom po jedinici vremena i obično se računa kao broj vozila po satu. Inverz protoku je napredovanje. Napredovanje označava vrijeme koje je prošlo između prolaska i-tog vozila kroz referentnu točku i i+1-og vozila kroz istu točku. U zagušenju napredovanje ima konstantnu vrijednost. Kako se formira zastoj tako napredovanje teži u beskonačnost.

Problemu protoka prometa možemo pristupiti na jedan od tri načina:

Makroskopski: Protok prometa se modelira koristeći složene matematičke modele često izvedene iz dinamike fluida. Svako vozilo se tretira jednako i koriste se ulazne i izlazne varijable kao što su brzina, protok i gustoća. Ovakav pristup je dobar kod proučavanja prometnog sustava na širokom području kod kojeg

nisu toliko potrebni detalji.

Mikroskopski: Kod ovog pristupa svako vozilo se tretira kao individua sa velikim brojem detalja. Svako vozilo i njegove interakcije sa ostalima se prate. Modeli koji se koriste kod mikroskopskog pristupa su realniji od onih u makroskopskom upravo zbog velikog broja detalja koji se koriste.

Kinetički: Kod ovog, trećeg, pristupa definira se funkcija f(t,x,V) koja iskazuje vjerojatnost da se u vremenu t na mjestu x nađe vozilo sa brzinom V.

Cilj teorije protoka prometa jest pronaći model koji će omogućiti vozilima da

stignu na svoje odredište u najkraćem mogućem vremenu maksimalno koristeći

kapacitet ceste.

RASKRIŽJE KAO VIŠEAGENTNI SUSTAV

Promotrimo li vozila kao agente, a raskrižje i ceste koje se susreću u raskrižju kao okoline u kojima se nalaze agenti, uvidjet ćemo da imamo višeagentni sustav. Ali gdje se u raskrižju očituje ta interakcija? Najlakše ju je uočiti između vozila koja se spremaju na skretanje i onih koji u tom trenutku dolaze iz suprotnog smjera. Kada interakcija ne bi bila prisutna vrlo vjerojatno bi se dogodio sudar pa bi došlo do zagušenja, a možda i do potpunog zastoja. Interakcija koja se u ovom slučaju javlja nije interakcija u smislu da dva vozila razgovaraju, ali svojom brzinom, akceleracijom i usporavanjem, vozilo iz suprotnog smjera šalje signal vozilu koje se sprema skrenuti smije li ono to učiniti ili ne smije.

Zadovoljava li ovaj sustav obilježja višeagentnog sustava: autonomiju, lokalni pogled i decentralizaciju?

Page 37: Uvod u umjetnu inteligenciju                         2012

Strana 33 od 295

Autonomija i decentralizacija se očituju u činjenici da vozila sama donose odluku o tome kako će reagirati. Može se dogoditi da vozilo prođe kroz raskrižje unatoč tome što nije imalo dozvolu za to. Pitanje koje se intuitivno nameće jest: „Koja je onda razlika

između decentralizacije i autonomije?“ Naime, ako sustav ne bi bio decentraliziran postojalo bi jedno vozilo koje bi upravljalo ostalima. Izostanak autonomije ne mora biti povezan uz postojanje takvog vozila. Lokalni pogled se očituje u tome što vozilo može percipirati samo okolinu u određenom radijusu od sebe, ono ne zna kakvo je stanje cijele okoline u kojoj se nalazi. Sada smo utvrdili da uistinu imamo jedan višeagentni sustav. Vozila koja su dio tog sustava se ponašaju kao reaktivni agenti zato što se prilagođavaju stanju okoline u kojoj se nalaze. Uočimo da sve ovo što smo rekli vrijedi za oba modela koja ćemo promatrati, onaj sa semaforom i onaj bez semafora.

SIMULACIJE PROMETA

Budući da promet možemo promatrati kao kompleksan sustav, simulacije su prikladan alat za proučavanje istog. Istraživanje koje je provelo sveučilište u Leeds-u je pokazalo da simulacije prometa koriste istraživačke organizacije, upravitelji cesta, savjetnici i proizvođači. Aplikacije koje simuliraju promet najčešće služe za dizajniranje i

testiranje strategija upravljanja i evaluacije velikih sustava. Ostale aplikacije služe za evaluaciju performansi produkta, istraživanje i edukaciju. Većina korisnika smatra da su simulacije nužno ili korisno sredstvo za navedene aplikacije. Scenariji koji se najčešće simuliraju uključuju koridore i raskrižja, a slijede ih scenariji gradova i simulacije s jednom cestom.

MODEL SVIJETA

Scenarij koji ćemo mi promatrati uključuje jedno raskrižje i nekoliko vozila, odnosno agenata. Broj agenata koji će se nalaziti u modelu je konstantan, a izabire se prije nego se u aplikaciji kreira svijet. Prije izrade simulacije treba definirati model, odlučiti kako prikazati objekte i okolinu u simulaciji, te odrediti parametre svakog objekta i utjecaj okoline na iste. Mi ćemo definirati dva modela, jedan kojim ćemo simulirati raskrižje gdje suradnju diktira semafor, a drugim ćemo simulirati raskrižje u kojem je suradnja dobrovoljna. Objekti koje bismo mogli imati su vozač i vozilo, ali zbog jednostavnosti ćemo vozilo i vozača definirati kao jedan objekt. Sva vozila će biti istog tipa s istim pravilima i parametrima. Okolina će se sastojati od dviju cesta koje se susreću u raskrižju, a svaka cesta se sastoji od dviju traka suprotnog smjera. U jednome modelu okolina će još sadržavati i semafor, a u drugome neće. Sada treba razmisliti kako bismo modelirali vozilo. Parametri koje vozila u našim modelima, intuitivno, moraju imati su: zadana brzina, akceleracija i retardacija. Promjenom ovih parametara utječemo na simulaciju i njezine rezultate. Vozila koja se nalaze u modelu sa semaforom će o dostupnosti raskrižja prosuditi temeljem svjetla na semaforu. Ona u drugom modelu će ići naprijed dok god to mogu, a jedina prepreka koja im se može naći na putu jest drugo vozilo. Nadalje, radi jednostavnosti modela svakom vozilu je dozvoljeno da se kreće isključivo u smjeru koji mu je određen prilikom generiranja svijeta u aplikaciji. Dakle, nemamo lijeva i desna skretanja.

Page 38: Uvod u umjetnu inteligenciju                         2012

Strana 34 od 295

J E Z I C I I A L A T I Z A R A Z V O J

Simulaciju možemo implementirati koristeći višeagentne sustave. Ovakva simulacija se naziva višeagentna simulacija (eng. Multi-agent simulation) ili modeliranje temeljeno na agentima (eng. Agent-based modelling). Dizajn i razvoj višeagentnih simulacija je

sam po sebi drugačiji od dizajna i razvoja tradicionalnih sustava. Fokusira se na precizno modeliranje individualnih agenata, a ne na dizajn pasivnih funkcija. Prilikom dizajniranja agenta važno je njegovo ponašanje, akcije, planovi, ciljevi i oblik interakcije s ostalim agentima i okolinom. Višeagentni sustavi se često rade u objektno orijentiranim jezicima kao što su Java ili C++ zato što se agenti mogu promatrati kao ekstenzija objekata. Prilikom razvoja višeagentne simulacije logično je da se koriste pomoćni paketi kako bi se osoba koja izrađuje simulaciju mogla koncentrirati na preciznost modela i njegovih parametara te ponašanje agenata, a ne na same probleme u kodiranju. Postoje razna integrirana razvojna okruženja (eng. Integrated Development Environments) i biblioteke koje pomažu osobi u razvoju modela i simulacija temeljenim na agentima. Integrirana razvojna okruženja pružaju podršku za razvoj modela, pisanje potrebnog koda i izvršavanje simulacije sve u jednom. Pristupačnija su korisniku i jednostavnija za rad od biblioteka koje postoje za C++ ili Javu. To je zbog toga što su razvijena s ciljem da se olakša modeliranje temeljeno na agentima, pa već imaju integrirane grafičke alate, a jezik kodiranja je apstrahiran. Neki primjeri biblioteka za Javu su: Swarm, Repast, Cybele, Jas i Mason. Neka od razvojnih okruženja koja služe za razvoj modela i simulacija temeljenih na agentima su: NetLogo, Breve, SB-MASE i SeSAm.

Page 39: Uvod u umjetnu inteligenciju                         2012

Strana 35 od 295

NetLogo

NetLogo je jedno od razvojnih okruženja koja služe za izradu modela baziranih na agentima, a razvijen je s ciljem simulacije kompleksnih prirodnih i društvenih fenomena. Budući da je pisan u Javi može se koristiti na bilo kojoj platformi, besplatan je i ima veliku skupinu korisnika. Omogućuje korisniku da modelira neograničen broj agenata u okolini varijabilne veličine koristeći jednostavni programski jezik izveden iz Logo-a. Dizajniran je na način da ga mogu koristiti studenti i istraživači u svrhu proučavanja ponašanja programskih agenata u različitim uvjetima. NetLogo dolazi sa iscrpnom dokumentacijom, vodičem i preko tristo primjera koji se nalaze u model library. Bitno je naglasiti da su svi modeli napravljeni u NetLogo-u otvorenog koda što znači da ih bilo tko može mijenjati. Ovo je veliki plus jer korisnik na taj način može proučavati kako određeni dio koda utječe na simulaciju. Modeli se mogu spremiti kao Java Appleti i pokrenuti na web pregledniku bilo kojeg korisnika koji ima instaliran javin virtualni stroj (eng. Java Virtual Machine). Trenutno stanje agenata i okoline se može vidjeti u 2D ili 3D prikazu. Naredbe se mogu unositi u naredbenu konzolu ili u obliku procedura pozivati pritiskom na botun. Jezik koji se koristi je dosta intuitivan i podsjeća na engleski govorni jezik. Primjer: ask

turtle 4 [right 90]. Ovo se čita: „Zamoli kornjaču broj 4 da se okrene u desno za devedeset stupnjeva.“

U NetLogo-u je vrlo jednostavno napraviti sučelje kao na slici poviše. Naime, ako želimo ubaciti dugme u sučelje, dovoljno je u padajućem izborniku odabrati Button i kliknuti na Add, a zatim kliknuti na poziciju u sučelju gdje ga želimo postaviti. Padajući izbornik nam za našu aplikaciju nudi i sljedeće elemente:

Slider – koji nam omogućava da tijekom izvođenja simulacije mijenjamo parametre. Slider se smatra globalnom varijablom.

Prekidač – koji vraća vrijednost true ili false, a omoućuje nam da uključimo ili isključimo neku funkcionalnost simulacije tijekom njenog izvođenja.

Padajući izbornik

Okvir za unos – je globalna varijabla koja sadrži vrijednost koju korisnik unese.

Page 40: Uvod u umjetnu inteligenciju                         2012

Strana 36 od 295

Monitor – služi za prikaz vrijednosti nekog izraza.

Plot – služi za crtanje grafova tijekom izvođenja simulacije.

Okvir za ispis – je područje u kojem možemo ispisati nekakav tekst, a obično se koristi za izradu zapisnika aktivnosti u simulaciji.

Okvir za bilješke

NetLogo svijet se sastoji od 3 vrste entiteta i promatrača. Promatrač nije dio svijeta, ali nadzire sve što se u svijetu događa i može utjecati na entitete. Entiteti su:

Kornjače (eng. Turtles), koje predstavljaju agente.

Pločice (eng. Patches), koje sačinjavaju NetLogo svijet. Posložene su u koordinatni sustav kojemu možemo mijenjati veličinu.

Linkovi (eng. Links), su agenti koji spajaju dvije kornjače.

Velika prednost koju NetLogo ima u odnosu na konkurenciju jest alat koji se zove BehaviorSpace. On nam omogućuje veliki broj izvođenja simulacije, pri čemu sustav mijenja vrijednosti parametara, onako kako mu je zadano, i bilježi rezultate u .csv datoteku. To nam uvelike pomaže da pročešljamo sve kombinacije parametara uz velik broj ponavljanja za svaku kombinaciju. Ovaj alat se detaljnije obrađuje jer je izabran za izradu simulacija. Izabrao je upravo zbog intuitivnog jezika programiranja, jednostavne izrade sučelja i postojanja BehaviorSpace-a. Sada ćemo malo analizirati i ostale alate slične NetLogo-u. Ovladavanje ovim alatom ne zahtijeva klasičan pristup učenja sintakse, a tek potom izradu programa, već se zahvaljujući velikom broju modela možete odmah početi „igrati“ sa „ozbiljnim“ modelima.

Ali, ja nikada nisam programirao u ovom jeziku, a još mi se i ne sviđa!

Ovaj jezik temelji se na LOGO jeziku, koji je jedan od programskih jezika koji se prema programu rade u osnovnoj školi. Ipak, jezik je dovoljno proširen elementima koji sakrivaju složenost pisanja koda u drugim programskim jezicima.

Za rješavanje zadataka predviđenih na ovom kolegiju možete izabrati i neki drugi programski jezik, ali budite sigurni da s odabranim jezikom dobro baratate. Nemojte se naknadno žaliti kako je jezik koji ste odabrali teži, pa vam treba više vremena za rješavanje zadataka.

Ako mislite kako se jezik ne obrađuje dovoljno, sjetite se kako za učenje stranog jezika nije dovoljno slušati strane riječi na satu ili jednostavno učiti njihove definicije već ih treba primijeniti u govoru i pismu. Isto vrijedi i za ovaj jezik.

Rješavajte zadane zadatke i naučite rješavati probleme, a ne usvajati tuđa rješenja.

Page 41: Uvod u umjetnu inteligenciju                         2012

Strana 37 od 295

Nadam se kako ste se uvjerili da programiranje višeagentnih simulacija nije tako teško, ako koristite NetLogo. Za one koji se u to još nisu uvjerili, evo pregleda još nekoliko okruženja koji se koriste u iste svrhe.

Breve

Breve je alat za izradu 3D simulacijskih okruženja za simuliranje decentraliziranih sustava i umjetnog života. Pruža mogućnost simuliranja kontinuiranog prostora i vremena,

Page 42: Uvod u umjetnu inteligenciju                         2012

Strana 38 od 295

detekciju sudara i omogućuje da je realistična 3D simulacija lako definirana ponašanjem agenata. Simulacije se programiraju u objektno orijentiranom jeziku koji se zove „steve“. Taj jezik je posebno dizajniran za izradu 3D simulacija i koristi prirodne strukture jezika kako bi pojednostavnio kodiranje. Dosta njegovih mogućnosti je preuzeto iz C-a i Perl-a. Breve je besplatan, može se koristiti na bilo kojoj platformi (Linux, Mac, Windows) i dolazi sa četrdeset primjera.

Grafičko korisničko sučelje se sastoji od prozora za svaki dio simulacije. Jedan pokazuje 3D prikaz svijeta s kontrolama simulacije i sistemskim opcijama. A ostali služe za pisanje simulacijskog koda, zapisnik naredaba i inspekciju objekata. Breve ima opsežnu arhitekturu priključaka koja omogućuje korisniku izradu vlastitih dodataka i interakciju s već postojećim kodovima i projektima te ima ugrađenu podršku za programski jezik Push koji služi za evolucijsko izračunavanje. Ovaj sofisticirani sustav je najbolji za simuliranje fizikalnih entiteta u opsežnom 3D svijetu. Posljednja stabilna verzija je izdana 25.2.2008.

SB-MASE

Subsuption-Based Multi Agent Simulation Environment (SB-MASE) je aplikacija pisana u Javi dizajnirana da pomogne u razvoju programske podrške koja bi upravljala simuliranim i realnim agentima, kao što su roboti. Dozvoljava da se kompleksno ponašanja razbije u slojeve sve apstraktnijeg ponašanja, gdje svaki sloj može koristiti onaj ispod sebe. SB-MASE dozvoljava da se zadaci agenata modeliraju kao proces, gdje senzori pružaju ulazne vrijednosti, a izlazne vrijednosti su različiti pogoni.

Page 43: Uvod u umjetnu inteligenciju                         2012

Strana 39 od 295

SB-MASE sučelje se sastoji od nekoliko prozora koji se nalaze unutar glavnog okvira. Neki od njih su: uređivač mape, uređivač agenata, simulirani svijet itd. Unatoč tome što ih u simulaciji može biti mnogo više, koristi se samo zadani broj agenata zbog toga što je aplikacija napravljena s ciljem da simulirani agenti budu u interakciji s onima u realnom sustavu. Agenti se mogu umetnuti ili ukloniti iz svijeta izričito od strane korisnika. Ponašanje se modelira povuci-ispusti (eng. drag-and-drop) metodom gdje se izlaz iz jednog procesa može usmjeriti na ulaz drugog. Ovaj sustav je najbolje koristiti pri razvoju sustava za upravljanje fizičkim agentima kao što su roboti.

SeSAm

SeSAm (Shell for Simulated Agent Systems) je okruženje pisano u Javi namijenjeno za opće modeliranje i simuliranje bazirano na agentima. Dizajniran je da omogući jednostavnu izradu kompleksnih modela. Ponašanje agenata je prikazano koristeći dijagrame aktivnosti kakve nalazimo u UML-u (Unified Modeling Language). Svaka aktivnost je zapravo skripta radnji koje pokreću predefinirane funkcije, a trenutno stanje je određeno pravilima. Sva funkcionalnost može biti dizajnirana kroz grafičko sučelje odabirom operatora i metoda. Alat trenutno dolazi sa sedam primjera.

Sučelje se sastoji od nekoliko prozora koji se nalaze unutar glavnog okvira, kao što je i slučaj kod SB-MASE. Svi dijelovi koji čine model su navedeni s lijeve strane, uključujući agente, okolinu, funkcije, varijable i simulacijske scenarije. Dvostrukim klikom na element otvara se novi prozor u kojem se on može urediti. Sučelje agenta omogućuje jednostavan uvid u moguća stanja i akcije istog, no uređivanje akcija je malo složenije.

Page 44: Uvod u umjetnu inteligenciju                         2012

Strana 40 od 295

Kako do inteligencije?

Jedna od zdravorazumskih pretpostavki je zaključiti kako rješavanjem problema koji

se već dulje vrijeme „opiru“ rješavanju pomoću računala, a uporabom osnovnih

postavki umjetne inteligencije, možemo reći kako je napravljen inteligeni

program. Postavlja se pitanje kako odabrati primjereni problem za rješavanje?

Dobar kandidat su P i NP problemi. Neformalno, "P ili NP?" pitanje ispituje može li se svaki problem optimizacije čija se ispravnost/optimalnost odgovora može učinkovito provjeriti, može riješiti optimalno učinkovitim algoritmom.

The Clay Mathematics Institute of Cambridge, Massachusetts (CMI), matematički institut, naveo je sedam milenijskih problema, važnih matematičkih pitanja koja se već dugo opiru rješavanju. Za rješenje bilo kojeg od njih dodjeljuje se nagrada od milijun dolara a jedan od tih problema je i tzv. “P vs. NP”. Radi se o problemu iz teorije složenosti koji se može laički interpretirati na sljedeći način: “postoje li, za naizgled složene probleme, jednostavni algoritmi koji ih rješavaju?”

Definirati ćemo P i NP probleme te navesti neke slavne primjere NP-potpunih problema – najtežih problema za koje nisu poznati „jednostavni“ algoritmi. Postoji više od 3000 poznatih NP-potpunih problema. Mnoge od tih problema već smo susretali, a da nismo bili svjesni kako spadaju u najveće probleme matematike i računarstva. Također ćemo navesti neke od tehnika kojima su se do sada takvi problemi rješavali. Nakon toga, kroz primjer realizacije rješenja NP potpunog problema upoznat ćemo način na koji tehnike umjetne inteligencije mogu pomoći pri rješavanju problema.

R A Č U N S K A T E O R I J A S L O Ž E N O S T I

ačunska teorija složenosti opisuje skalabilnost algoritama, te inherentnu teškoću u pružanju skalabilnih algoritama za specifične računske probleme. Skaliranje je sposobnost sustava da se učinkovito i elegantno prilagodi promjenjivim uvjetima. Teorija odgovara na pitanje: "Kako se veličina ulaza algoritma povećava, kako se mijenjaju vrijeme izvršavanja i memorijski zahtjevi algoritma?". Teorija određuje praktične

granice na ono što računala mogu obaviti.

remenska složenost problema predstavlja broj koraka potreban da bi se instanca problema riješila kao funkcija veličine ulaza (obično mjerenog u bitovima) koristeći najučinkovitiji algoritam. Da bi se ovo intuitivno razumjelo, može se razmotriti primjer instance duljine n bitova koja može biti riješena u n² koraka. U ovom primjeru kažemo da je problem vremenske složenosti O(n²). Prostorna složenost problema je povezan koncept, koji mjeri količinu prostora, ili memorije koju algoritam zahtijeva. Neformalna bi analogija bila količina papira korištenog za skiciranje prilikom rješavanja problema olovkom i papirom. Prostorna se složenost također mjeri velikom O notacijom.

R

V

Page 45: Uvod u umjetnu inteligenciju                         2012

Strana 41 od 295

Na internetskoj stranici matematičkog instituta Clay11 problem “P=NP?” opisan je sljedećim slikovitim primjerom:

retpostavimo da želimo organizirati smještaj za grupu od 400 studenata. Prostor je ograničen, te samo 100 studenata može dobiti sobu. Naš zadatak je odabrati tih 100 studenata. Da zadatak ne bi bio prejednostavno, dekan je dao listu

parova “nekompatibilnih” studenata, onih koji ne mogu zajedno biti u domu tj. ako jedan dobije smještaj, drugi ga ne smije dobiti.

Kada netko ponudi gotovo rješenje jednostavno je provjeriti zadovoljava li dane uvjete, ali do samog rješenja općenito nije jednostavno doći.

ko je zadana lista parova pojednostavljena (npr. skoro prazna ili sadrži skoro sve parove studenata), vodit će nas gotovo deterministički prema nekom rješenju. Ipak, kada radimo programsko rješenje mora se pretpostaviti kako se može dogoditi da moramo iskušati sve kombinacije. Matematički, to znači da treba pogledati sve 100-člane podskupove skupa studenata, te provjeriti koji od njih, (ako takav student uopće postoji), zadovoljava uvjet “nekompatibilnosti”. Iz kombinatorike, poznato je da m-članih podskupova n-članog skupa12 ima ukupno

(

)

( )

U zadanom primjeru to znači da traženih podskupova ima ukupno

(

)

( )

Za usporedbu, danas najbrže računalo uspjelo je postići oko 2.33 · 1015 operacija s pomičnim zarezom u sekundi. Provjera uvjeta za svako od 3 · 1027 mogućih rješenja nužno zahtijeva puno više od jedne operacije s pomičnim zarezom, no čak i kad bi nam jedna operacija bila dovoljna, navedenom super-računalu trebalo bi više od 1012 sekundi, odnosno više od 30000 godina, da riješi zadani problem. Opisani način rješavanja problema naziva se rješavanje grubom silom (eng. brute force) i često je neizvedivo zbog ogromnog vremena izvršavanja.

odine 1971., neovisno jedan o drugome, Cook i Leonid definirali su P probleme kao “one koje je jednostavno riješiti” i NP-probleme kao “one čije je rješenje

jednostavno provjeriti”.

11 http://www.claymath.org/ 12 Kombinacije bez ponavljanja

P

G

A

Page 46: Uvod u umjetnu inteligenciju                         2012

Strana 42 od 295

Do danas nije poznato je li riječ o istoj klasi problema ili postoji problem čije je

rješenje jednostavno provjeriti, ali ga nije jednostavno naći. To pitanje zovemo “P=NP?” problem.

Stephen Arthur Cook je istaknuti američki računalni znanstvenik. Cook je formalizirao pojam NP-potpunosti u poznatom radu iz 1971. "The Complexity of Theorem Proving Procedures", koji je ujedno i sadržavao Cookeov teorem, dokaz da je problem bulovske ispunjivosti NP-potpun. Ovaj znanstveni rad ostavio je neriješenim najveći otvoreni problem teoretskog računarstva - jesu li klase složenosti P i NP istovjetne. Za ovo otkriće Cook je primio Turingovu nagradu. Turingova nagrada (engl. A.M. Turing Award) je godišnja nagrada koju dodjeljuje organizacija ACM odabranim osobama za njihove tehničke doprinose računarskoj zajednici. Doprinosi bi trebali biti od trajne i tehničke važnosti na polju računarstva.

Leonid Anatolievich Levin doktoritao je pri Moskovskom sveučilištu 1972 i pri Massachusetts Institute of Technology (MIT) 1979. Poznat je po svom radu o slučajnosti u računalstvu, algoritamskoj složenost i neukrotivosti, prosječnom složenosti slučaja, temeljima matematike i informatike, algoritamske vjerojatnosti, teoriji računanja i teoriji informacija. Nezavisno je od Cook-a otkrio postojanje NP-potpunih problema. Za ovo otkriće Levin je primio Turingovu nagradu.

itanje „P=NP?“ nije samo matematička zagonetka za čije rješenje možete dobiti milijun dolara. Odgovor na ovu zagonetku daje odgovor na pitanje: Koji se problemi mogu riješiti računalom, a koji ne?

Što u ovom kontekstu znači “jednostavno”? To se zapravo odnosi na učinkovitost algoritama. Nije rijetkost da su poneki algoritmi za rješavanje zadanog problema u praksi gotovo beskorisni. Naime, osim što je bitno znati kako riješiti problem, tj. imati sami algoritam, od velike važnosti je i to koliko je naš algoritam učinkovit.

Svakom algoritmu potrebno je određeno vrijeme i memorijski prostor za izvršavanje, a svakako da nam je u cilju imati one što brže sa što manjom potrošnjom memorije. Ovdje na vrijeme gledamo kao na broj operacija koje algoritam mora izvršiti u ovisnosti o n, gdje je n neka mjera za veličinu skupa ulaznih podataka.

P

Page 47: Uvod u umjetnu inteligenciju                         2012

Strana 43 od 295

lgoritam smatramo učinkovitim ako je vrijeme koje troši pri izvršavanju polinomno s obzirom na n (tj. ako mu je potrebno najviše C∙nk koraka, gdje je C konstanta te k prirodan broj). Traganje za efikasnim algoritmom sastoji se od pronalaska pametnog načina kojim se izbjegne proces iscrpljujuće pretrage, koristeći tragove koji su nam dani u podacima na ulazu i koji mogu značajno suziti prostor pretrage.

ačunala se razvijaju velikom brzinom i novi modeli dolaze na tržište svakodnevno. Kako bi se izbjegla potreba stalnog biranja idealne platforme za testiranja algoritama (što bi opet onemogućilo usporedbe starih i novih testova), analiza algoritama temelji se na

teorijskom računalu koje je 1936. godine predstavio Alan Turing. To računalo zovemo Turingov stroj.

T U R I N G O V S T R O J

uringovi strojevi su iznimno jednostavni apstraktni uređaji za manipulaciju znakovima (simbolima) koji se, unatoč jednostavnosti dizajna, mogu prilagoditi za simuliranje logike bilo kojeg računalnog algoritma. Opisao ih je 1936. Alan Turing. Turingovi strojevi ne koriste se u praktične svrhe, već u misaonim eksperimentima, gdje najvažniju primjenu nalaze u istraživanju granica mogućnosti izračunavanja računalnim algoritmima. Proučavanje njihovih svojstava pruža dalekosežne uvide u pitanja računarske znanosti i teorije složenosti.

Turingov stroj zamišljamo kao računalo s beskonačnom trakom po kojoj čita i piše

glava stroja, koja se u svakom koraku (izvršavanju jedne naredbe) može pomaknuti jedno mjesto lijevo ili desno ili može ostati na mjestu. Stroj prati i stanje u kojem se nalazi, svojevrstan pandan vrijednostima varijabli u programima. U svakom koraku, Turingov stroj nalazi se u nekom stanju q, te čita s trake (na mjestu na kojem se nalazi glava stroja) znak x. Ovisno o stanju i pročitanom znaku, stroj prelazi u stanje q′, na traku zapisuje znak x′, te glava vrši pomak p (za jednom mjesto lijevo ili desno ili ostaje na mjestu). Matematički zapisano, jedan korak je zapravo obično pridruživanje:

( ) ( )

Kad popišemo sve takve korake, definirali smo Turingov stroj. PRIMIJETIMO: ako su svi parovi ( ) međusobno različiti, opisani Turingov stroj je zapravo matematička funkcija.

o znači da ponašanje stroja ovisi isključivo o njegovom stanju i znaku pročitanom na traci. Takve strojeve zovemo deterministički Turingovi strojevi. Ako se neki od parova ( ) preslikavaju u više različitih trojki ( ), opisani skup pravila nije funkcija, nego samo relacija. Za takav stroj kažemo da je nedeterministički. Iako je to naizgled u koliziji sa zahtjevom da koraci algoritma moraju jednoznačno opisivati što algoritam treba raditi, kod nedeterminističkih Turingovih strojeva pretpostavljamo da će stroj „pogoditi“ točno na svakom koraku izvršavanja. Recimo da se stroj nalazi u stanju q, te je s trake pročitao znak x i pravila dopuštaju korake

( ) (

) za neki

A

R

T

Page 48: Uvod u umjetnu inteligenciju                         2012

Strana 44 od 295

Tada pretpostavljamo da će stroj odabrati upravo takav i da ga prelazak u stanje uz

zapisivanje znaka i pomak glave vode prema rješenju.

Zanimljivo je da su nedeterministički Turingovi strojevi ekvivalentni

determinističkima (tj. mogu riješiti iste probleme): dovoljno je napraviti deterministički stroj koji će nekim redom isprobati sve mogućnosti kroz koje bi mogao proći njegov nedeterministički ekvivalent. Naravno, stroj koji isprobava sve mogućnosti obavlja posao puno sporije od onoga koji odmah pogađa ispravni put. Upravo to će biti bitna razlika izmedu P i NP problema.

P- i NP-problemi obično se definiraju kao problemi odlučivanja.

Problem odluke je problem koji uvijek ima odgovor da ili ne. Teorija složenosti razlikuje probleme koji verificiraju odgovore da i one koji verificiraju odgovore ne. Problem koji invertira da i ne odgovore drugog problema se zove komplement tog problema.

Na primjer, poznati problem odluke IS-PRIME vraća odgovor da kad je dani ulaz prost, a inače ne odgovor, dok problem IS-COMPOSITE određuje nije li dani cijeli broj prost broj (tj. složen broj). Kad IS-PRIME vrati da, IS-COMPOSITE vraća ne i obrnuto. Stoga je IS-COMPOSITE komplement problema IS-PRIME i obratno. Problemi odluke se često razmatraju budući da se proizvoljan problem uvijek može svesti na problem odluke.

Temeljem čega donijeti odluku? Kako uopće predstaviti problem?

Page 49: Uvod u umjetnu inteligenciju                         2012

45

PRETRAGE U

UMJETNOJ

INTELIGENCIJI

Neki od algoritama

Page 50: Uvod u umjetnu inteligenciju                         2012

Strana 46 od 295

P R I M J E N A P R E T R A Ž I V A N J A U U M J E T N O J I N T E L I G E N C I J I

zme li se u razmatranje definicija funkcije agenta tada se rješavanje problema može svesti na traženje niza akcija koje iz početnog stanja agenta vode do cilja.

očetno stanje i skup akcija definiraju skup svih stanja do kojih je moguće doći iz početnog stanja koji se naziva prostor stanja problema.

Pretraživanje prostora stanja čest je zadatak u sustavima koji se temelje na umjetnoj inteligenciji.

od problema kod kojih nije moguć precizan matematički opis, opis se svodi na

definiranje skupa stanja u kojima se sustav može nalaziti.

Agent iz početnog stanja, prolaskom kroz određeni broj stanja dolazi u konačno stanje koje predstavlja rješenje problema. Problem ovakvog pristupa je slučaj za koji skup stanja između početnog i konačnog stanja nije jednoznačno određen, već postoji više

različitih, pa i različito učinkovitih puteva koji od početnog vode do krajnjeg stanja. Kod ovakvih problema potrebno je definirati algoritme pretrage spomenutih puteva. Otežavajuća okolnost kod izrade spomenutih algoritama je nepostojanje formalnih postupaka koji bi na temelju početnog i krajnjeg stanja sustava određivali skup stanja na putu između njih. U takvim je slučajevima potrebno pribjeći najprimitivnijoj, ali zato i najmanje učinkovitoj metodi, pretraživanju prostora stanja.

retraživanje prostora stanja je postupak koji slijedno prolazi kroz stanja u kojima bi se mogao nalaziti sustav, te uspoređivanjem trenutnog stanja s ciljnim stanjem utvrđuje je li postupak došao do kraja.

Skup stanja je organiziran u strukturu grafa ili stabla pa je pretraživanje

pronalaženje puta kroz graf ili stablo. Algoritam za rješavanje problema na svom ulazu dobije problem, a kao izlaz daje rješenje u obliku niza akcija.

Dobro definiran problem treba sadržavati:

Početno stanje: stanje od kojeg se započinje pretraživanje

Skup dozvoljenih akcija (operatora): prijelazi iz određenog stanja u skup stanja. Početno stanje i skup dozvoljenih akcija definiraju prostor stanja problema kao skup svih stanja do kojih se može doći iz početnog stanja bilo kojim nizom akcija. Put u prostoru stanja je niz akcija koje vode iz jednog stanja u neko drugo.

U P

K

P

Page 51: Uvod u umjetnu inteligenciju                         2012

Strana 47 od 295

Test na ciljno stanje: provjera zadovoljava li stanje ciljno stanje. Test na ciljno stanje može biti jednostavna provjera pripada li stanje skupu ciljnih stanja. Kod primjer uzmimo igru šaha kod koje je broj ciljnih stanja je prevelik, pa se umjesto provjere pripadnosti skupu ciljnih stanja provjerava zadovoljava li trenutno stanje po svojim svojstvima ciljne uvjete.

Funkcija cijene puta: pridružuje cijenu putu, kako bi se iz skupa pronađenih rješenja moglo odrediti najbolje.

ješenja ili ciljna stanja mogu ponekad biti objekti, ciljevi, pod-ciljevi ili put do tražene točke.

Pretrage s ciljem rješavanja problema zahtijevaju primjenu metode pokušaja i pogreške, s obzirom da pretrage uglavnom ne vode izravno do rješenje. Do rješenja se najčešće dolazi prolaskom i povratom iz nekih „slijepih prolaza“ kojih ponekad ima malo, a ponekad mnogo. Kada osoba dolazi do rješenja izravno, bez povrata iz slijepih ulica, skloni smo reći kako za rješavanje zadanog problema uopće nije trebalo razmišljati. Kažemo: "Znao je odgovor." ili "Nije morao razmišljati, učinio je to po sjećanju."13

Čemu pretraživati, ako postoji mogućnost jednostavno znati?

ez obzira kako je algoritam kodiran, može se svesti na nizu ako-onda izraza u petlji. Ako-onda izrazi mogu se predstaviti u preglednoj tablici (eng. lookup table), u kojoj svaki redak u tablici predstavlja drugačije stanje. Dakle, čak i složen algoritam pretrage može se svesti na preglednu tablicu, uz pretpostavku da postoje svi potrebni podaci za izrade takve tablice.

Na primjer, možemo osmisliti algoritam pretrage koji će igrati jako dobro igru Križić-kružić. Već su 1300. godine prije Kr. stari Egipćani kratili vrijeme igrajući križić-kružići. Ova vrlo jednostavna igra ima čak 26.000 mogućih rješenja, što znači da biste idućih 70 godina svaki dan mogli odigrati jednu partiju, i to s novim ishodom. Igru u kojoj je cilj imati zaredom tri križića ili kružića vodoravno, okomito ili dijagonalno u anglosaksonskim zemljama nazivaju “tic-tac-toe”.

13 Herbert A. Simon "Thinking by Computers" Mind And Cosmos: Essays In Contemporary Science And

Philosophy 3, 1966

R

B

Page 52: Uvod u umjetnu inteligenciju                         2012

Strana 48 od 295

Američki studenti su 1980-ih izradili prvo računalo koje igra tu stratešku igru, a izloženo je u Muzeju prirodnih znanosti u Bostonu14. Više detalja možete pronaći na internetskoj adresi: http://www.rci.rutgers.edu/~cfs/472_html/Intro/TinkertoyComputer/TinkerToy.html

Nasuprot algoritmu, možemo izraditi tablicu (s manje od 1024 unosa) koja opisuje što odigrati ovisno o trenutnoj konfiguraciji na igraćoj ploči.

Čemu pretraživati, ako postoji mogućnost jednostavno znati? Postoje tri razloga: dva praktična i jedan intelektualni.

Praktični razlog 1. – Prostor

regledna tablica može biti prevelika kada je u potpunosti proširena. Tipična igra šaha traje oko 40 poteza. Kako bi predstavili sve moguće poteze i protu-poteze potrebna je pregledna tablica sa 10120 unosa. Kreiranje ovolike tablice nije moguće bez neke iznimno mudre sheme kodiranja, jer za usporedbu, procjenjuje se da svemir sadrži manje od 1081 atoma. Uporaba algoritma pretrage koji generira moguće poteze samo kada se to traži izbjegava navedeni prostorni problem. Na taj način, pregledna tablica nikada nije dostupna u cijelosti. Umjesto toga, svaki mogući potez i pripadajuća akcija generira se prema potrebi.

Praktični razlog 2. – Nepredvidiv ulaz

rirodni svijet, za razliku od šaha, ne pokorava se jednostavnom skupu pravila. Zamislite robota u slučajno odabranoj zgradi, robot nema načina mapiranja zgrade prije nego što u nju uđe, tako da se ne može napraviti pregledna tablica svih različitih pomaka koje može učiniti za vrijeme prolaza kroz zgradu.

Izrada pregledne tablice nije moguća, ali je pretraga nužna.

Intelektualni razlog – Kod može imati značenje

onačno, pregledna tablica ne govori nam ništa o tome kako je problem riješen. Tablica koja sadrži sve poteze igre Križić-kružić, dame ili šah ne daje uvid o tome kako dobro igrati igru. Mogu postojati razlozi zbog kojih su neki potezi bolji od drugih, ali pregledna tablica ne nudi uvid u takvo što. Algoritam za pretraživanje, s druge strane, opisuje inteligentno ponašanje, uz pretpostavku da inteligentno pretraživati.

14 A. K. Dewdney, A Tinkertoy computer that plays tic-tac-toe by SCIENTIFIC AMERICAN October

1989, pp 120

P

K

P

Page 53: Uvod u umjetnu inteligenciju                         2012

Strana 49 od 295

Na primjer, možemo pročitati izvorni kôd Google tražilice i vidjeti da je stranica rangirana više ako druge visoko rangirane stranice sadrže poveznicu prema toj stranici. Algoritam ne može biti prikladan (iako je Google tražilica prilično uspješna, tako da vjerojatno kako je navedeni algoritam prikladan), ali ipak kôd opisuje određeni postupak koji mi, kao programeri, možemo ocijeniti smislenim i eventualno inteligentnim.

Križić-kružić

aspišite samo prve tri razine za igru Križić-kružić. Igri je cilj imati zaredom tri križića ili kružića vodoravno, okomito ili dijagonalno. Svaki od igrača ima svoju oznaku (križić ili kružić). Naizmjenično povlače potez, tako da stavljaju svoju oznaku na jedno od preostalih praznih mjesta na ploči.

Definirajte problem pomoću četiri komponente:

1. Početno stanje (stanja)

2. Opis mogućih akcija: par <akcija, slijedeće stanje> Prostor stanja = početno stanje + <akcija, slijedeće stanje> Graf: čvorovi (stanja), grane (akcija) Put: niz stanja povezan nizom akcija

3. Test cilja: provjerava je li agent dostigao cilj (stanje = ciljno stanje)

4. Cijena puta: funkcija koja pridružuje numeričku vrijednost pojedinom putu

Jesu li ovo svi potezi? – ne, ima ukupno 9! = 362,880 poteza Koja su pravila koja diktiraju igru? – dodaj oznaku igrača na prazno mjesto, naizmjence Koji je test cilja? – tri iste oznake istog igrača u vrsti Postoji li cijena puta? – ne, traži se cilj

R

Page 54: Uvod u umjetnu inteligenciju                         2012

Strana 50 od 295

Pogledajmo kako izgleda igra dva igrača:

1. Izradite igru u NetLogo okruženju koja igra ovu igru protiv čovjeka.

2. Gdje je inteligencija?

3. Jeste li koristili stabla pretrage ili nešto drugo?

Pogledajmo još neke primjere kako bi bolje upoznali način na koji se problem može formalizirati kako bi se primijenili algoritmi pretrage. Primjeri koje ćemo obraditi u literaturi su poznati pod nazivom „toy problems“ jer ističu ideju nekog problema, ali bez klasične primjene u konkretnom životu. Ipak, iako su to problemi za koje vam se čini kako nemaju primjenu u životu, vrijedi ista napomena kao i za slučaj razmatranja prometnih gužvi o kojima smo raspravljali ranije. Potrebno je shvatiti bit problema, a tada je jednostavno pronaći analogije pri rješavanju stvarnih (eng. real world) problema.

vi navedeni primjeri možda su poznati iz drugih kolegija, ali ih na ovom kolegiju gledate drugim očima. Ne zaboravite kako imate na raspolaganju NetLogo okruženje, ali i robote pomoću kojih možete isprobati valjanost vaših ideja.

S

Page 55: Uvod u umjetnu inteligenciju                         2012

Strana 51 od 295

Misionari i kanibali

Definicija problema:

3 misionara i 3 kanibala se nalaze na jednoj strane rijeke, zajedno s brodom

koji može primiti najmanje jednu, a najviše dvije osobe.

Potrebno je pronaći način kako ih sve premjestiti na drugu stranu rijeke,

s time da broj misionara ni na jednoj strani ne smije biti manji od broja kanibala jer će ih u protivnom kanibali pojesti.15

Definirajte problem pomoću četiri komponente

1. Početno stanje (stanja): 3 misionara i 3 kanibala se nalaze na jednoj strane rijeke, zajedno s brodom

2. Opis mogućih akcija: par <akcija, slijedeće stanje> brod može primiti min. 1 i max 2 osobe broj misionara ni na jednoj strani ne smije biti manji od broja kanibala ukrcaj misionara u brod...prevezi...iskrcaj ukrcaj kanibala u brod... prevezi...iskrcaj ukrcaj misionara i kanibala u brod... prevezi...iskrcaj ukrcaj dva misionara u brod... prevezi...iskrcaj ukrcaj dva kanibala u brod... prevezi...iskrcaj Prostor stanja = početno stanje + <akcija, slijedeće stanje> Graf: čvorovi (stanja), grane (akcija) Put: niz stanja povezan nizom akcija

15 http://www.learn4good.com/games/puzzle/boat.htm

Page 56: Uvod u umjetnu inteligenciju                         2012

Strana 52 od 295

3. Test cilja: provjerava je li agent dostigao cilj (stanje = ciljno stanje) sve premjestiti na drugu stranu rijeke

4. Cijena puta: funkcija koja pridružuje numeričku vrijednost pojedinom putu ne postoji, traži se cilj.

Pokušajte sami doći do rješenja prije nego pogledate kako se rješava problem.

1. Zašto iz nekih stanja nema dalje račvanja?

2. Koliko rješenja ima ovaj problem?

3. Ako postoji više ispravnih rješenja, kako bi odredili koje je bolje?

4. Možete li se zapetljati u beskonačnu petlju?

5. Ako se možete zapetljati u beskonačnu petlju pojasnite zašto, a ako ne možete objasnite kako ste to postigli.

6. Izradite program u NetLogo okruženju i pojasnite kako dolazite do rješenja.

Problem Hanojskih tornjeva

Definicija problema:

roblem Hanojskih tornjeva izmislio je francuski matematičar Edouard Lucas 1883. godine. Inicijalno su zadana tri diska postavljena padajućim redosljedom prema veličini na jedan od tri štapa. Zadatak je prebaciti cijeli toranj (tri diska) na jedan od preostala dva štapa pomičući u jednom trenutku samo jedan disk, pri čemu je zabranjeno staviti veći disk na manji.

P

Page 57: Uvod u umjetnu inteligenciju                         2012

Strana 53 od 295

Definirajte problem pomoću četiri komponente

1. Početno stanje (stanja): sva tri diska se nalaze na lijevom štapu

2. Opis mogućih akcija: par <akcija, slijedeće stanje> u jednom trenutku je moguće pomaknuti samo jedan disk i prilikom pomicanja diska ne smije se veći disk staviti na manji Prostor stanja = početno stanje + <akcija, slijedeće stanje> Graf: čvorovi (stanja), grane (akcija) Put: niz stanja povezan nizom akcija

3. Test cilja: provjerava je li agent dostigao cilj (stanje = ciljno stanje) svi diskovi se nalaze na desnom štapu

4. Cijena puta: funkcija koja pridružuje numeričku vrijednost pojedinom putu ne postoji, traži se cilj.

Pokušajte sami doći do rješenja prije nego pogledate kako se rješava problem.

Page 58: Uvod u umjetnu inteligenciju                         2012

Strana 54 od 295

Problem: Vuk, ovca i kupus

edna od starijih i uvjek popularnih zagonetki. Zadatak datira iz VIII. Stoljeća, a zadaje se djeci kao matematička mozgalica u šestom razredu osnovne škole. Ipak, ne zaboravite, nije bitno samo rješenje već način rješavanja problema poštujući pri tom principe umjetne inteligencije. Pokušajte sami riješiti zadatak, prije nego pogledate rješenje.16

Definicija problema:

Čovjek mora preko rijeke prevesti vuka, ovcu i kupus.

U čamac se može smjestiti samo čovjek, a s njim ili vuk, ili ovca, ili kupus.

Ali, ako čovjek ostavi vuka s ovcom, tada će vuk pojesti ovcu; ako ostavi ovcu s kupusom, tada će ovca pojesti kupus, a u prisutnosti čovjeka „nitko nikog ne jede“.

Može li čovjek prevesti preko rijeke vuka, ovcu i kupus?

Definirajte problem pomoću četiri komponente

1. Početno stanje (stanja): svi su na desnoj strani rijeke. 2. Opis mogućih akcija:

par <akcija, slijedeće stanje> u jednom trenutku je moguće prevoziti samo vuka, ovcu ili kupus ukrcaj kupus u brod...prevezi...iskrcaj ukrcaj ovcu u brod... prevezi...iskrcaj ukrcaj vuka... prevezi...iskrcaj Prostor stanja = početno stanje + <akcija, slijedeće stanje> Graf: čvorovi (stanja), grane (akcija) Put: niz stanja povezan nizom akcija

3. Test cilja: provjerava je li agent dostigao cilj (stanje = ciljno stanje) brod, kupus, ovca i vuk nalaze se na drugoj strani rijeke.

4. Cijena puta: funkcija koja pridružuje numeričku vrijednost pojedinom putu ne postoji, traži se cilj.

16 http://www.plastelina.net/game1.html

J

Page 59: Uvod u umjetnu inteligenciju                         2012

Strana 55 od 295

okušajte sami doći do rješenja prije nego pogledate kako se rješava problem.

Jasno je kako nije teško riješiti problem, ali je nešto zahtjevnije rješenje pretvoriti u program, pri tome se vodeći prethodnom definicijom problema pomoću četiri komponente.

odelirajte stanje u kojem se program nalazi koristeći četiri oznake, po jednu za brod/čovjek, kupus, ovcu i vuka.

Uočite kako nije potrebno posebno modelirati čovjeka, a posebno brod, jer čovjek mora veslati, a jedino se tako brod može pomaknuti s jedne na drugu stranu obale. Isto tako, pomicanje čovjeka s jedne na drugu stranu rijeke nije moguće, ako nema broda. Kako bi pojednostavili način označavanja uzmimo neka je predmet na početnoj strani rijeke označen brojem 1, a predmet na drugoj strani rijeke brojem 0.

Sada nacrtajte graf koji će pokazati što se sve može dogoditi, ali pri tome pazeći da posebno označite nedozvoljena stanja. Podsjetimo se kako su nedozvoljena stanja ona u kojima ovca pojede kupus ili vuk pojede ovcu ili pak u brod ukrcate više od jednog predmeta.

Ako ste riješili problem, onda možda rješenje izgleda ovako:

1. Koliko rješenja ima ovaj problem?

2. Ako postoji više ispravnih rješenja, kako bi odredili koje je bolje?

3. Ako se možete zapetljati u beskonačnu petlju pojasnite zašto, a ako ne možete objasnite kako ste to postigli.

4. Je li ovakav način rješavanja problema u kojem raspisujete stablo ili graf igre uvijek dobar način rješavanja problema?

5. Ako mislite da ovaj način rješavanja problema nije dobar, navedite primjer.

6. Kakav bi način rješavanja problema predložili za „stvarni svijet“?

7. Izradite program u NetLogo okruženju i pojasnite kako dolazite do rješenja.

8. Usporedite ovu implementaciju rješenja sa rješenjem „Misionara i kanibala“.

ogledajte sada kako izgleda stablo igre i provjerite jeste li dobro razmišljai!

P

M

P

Page 60: Uvod u umjetnu inteligenciju                         2012

Strana 56 od 295

ko postoji stablo koje predstavlja sva moguća stanja u nekoj igri tada je logično pretpostaviti kako je moguće sustavnom pretragom doći do cilja. Ako pri tome definiramo cijenu puta, moguće je doći i do optimalnog rješenja.

Naravno, postoji i loša strana ovakvog načina rješavanja problema, a to je prostorna i vremenska kompleksnost. Ipak, algoritmi pretrage jedan su od standardnih načina rješavanja problema u umjetnoj inteligenciji, pa ćemo u ovom kolegiju obraditi nekoliko najčešće korištenih.

Za ilustraciju algoritama pretrage koristiti će primjer rješavanja problema punjenja vrčeva. Ovaj problem, također spada u skupinu logičkih zagonetki, a zgodan je jer se jednostavnom promjenom broja vrčeva ili njihovog kapaciteta mogu dobiti vrlo različiti zadaci. Jedan od takvih zadataka možete očekivati i na nekoj od provjera znanja.

Zanimljivo je da se prilikom zapošljavanja u svrhu testiranja kandidata za poslove menadžera u nekim zemljama koriste upravo ovakvi i slični logički zadaci.17

17 http://djallyn.org/archives/46

A

Page 61: Uvod u umjetnu inteligenciju                         2012

Strana 57 od 295

Problem punjenja vrčeva18

Definicija problema:

mamo dva vrča, jedan od 4 (veći) i jedan od 3 litre (manji). Niti jedan od njih nema oznake o količini vode u vrču i jedina pouzdana informacija o količini vode u vrču je kada su vrčevi potpuno prazni ili potpuni puni. Vrčevi se mogu puniti na način da se voda može uliti iz beskonačnog izvora (slavine) i/ili prelijevati iz vrča u vrč, a prazniti se mogu izlijevanjem na pod ili prelijevanjem iz vrča u vrč.

Zadatak je krenuti od situacije praznih vrčeva te u vrč od 4 litre napuniti točno 2 litre vode.

Definirajte problem pomoću četiri komponente

1. Početno stanje (stanja): oba vrča su prazna

2. Opis mogućih akcija: par <akcija, slijedeće stanje> vrčeve je moguće u cijelosti napuniti iz izvora, vrčeve je moguće u cijelosti isprazniti na pod, vodu je iz jednog moguće prelijevati do vrha drugog vrča Prostor stanja = početno stanje + <akcija, slijedeće stanje> Graf: čvorovi (stanja), grane (akcija) Put: niz stanja povezan nizom akcija

3. Test cilja: provjerava je li agent dostigao cilj (stanje = ciljno stanje) U većem vrču nalazi se točno dvije litre vode, a količina vode u manjem vrču nije važna.

4. Cijena puta: funkcija koja pridružuje numeričku vrijednost pojedinom putu ne postoji, traži se cilj.

Pokušajte sami doći do rješenja prije nego pogledate kako se rješava problem.

Potrebno je formalizirati prikaz prostora stanja, prije nego se krene u programsku izvedbu. Prostor stanja rješavanja problema možemo za konkretni slučaj definirati uređenim parom (x,y) gdje x može poprimiti vrijednosti 0,1,2,3 ili 4, a y može poprimiti vrijednosti 0,1,2 ili 3. Vrijednosti x i y predstavljaju broj litara vode u vrču odgovarajućeg kapaciteta. Važno je uočiti kako su vrijednosti diskretne, a vode u vrčeve možemo uliti manje ili više od cijelog broja litara.

Iz kojeg je razloga dozvoljeno diskretizirati vrijednosti utočene vode?

18 http://www.otkrij-igre.net/igra/109/water-jars

I

Page 62: Uvod u umjetnu inteligenciju                         2012

Strana 58 od 295

Odgovor se krije u samom zadatku. Traži se uliti vodu do vrha nekog vrča, a nakon toga dozvoljeno je volu preliti u drugi vrč. Kako je volumen vrčeva prikazan cijelim

brojem, tada i ostatak vode u vrču nakon prelijevanja iz većeg u manji vrč (ili

obrnuto), opet mora biti cijeli broj. Ova značajka olakšava postavljanje problema, pa formalno možemo pisati: x∈{0,1,2,3,4}; y ∈{0,1,2,3}.

Početno stanje koje predstavlja prazna oba vrča može se predstaviti uređenim parom (0,0) gdje prvo mjesto predstavlja prvi (veći), a drugo predstavlja drugi (manji) vrč.

Ciljno stanje formalno se može napisati kao: (2,y) gdje je y bilo koja vrijednost iz skupa {0,1,2,3}.

Pravila koja vrijede za punjenje i pražnjenje vrčeva također je potrebno formalizirati. Kako ne možemo vidjeti koliko je točno vode ostalo ili doliveno u vrč (ne postoje oznake na vrčevima) količinu vode procjenjujemo isključivo temeljem pamćenja o tome koliko smo vode izlili. Jedino što se sa sigurnošću može utvrditi je činjenica da je vrč pun (4 litre u većem, a 3 litre u manjem) ili da li je neki od vrčeva prazan (0 litara). Ovo znanje o punjenju i pražnjenju vrčeva potrebo je iskazati na formalan način kako bi ga mogli primijeniti prilikom prijelaza iz jednog stanja napunjenosti vrčeva u drugo.

Najpogodniji način formalnog zapisa dozvoljenih načina punjenja i pražnjenja je u obliku pravila prijelaza koja matematički prikazujemo relacijom implikacije. Na lijevoj strani implikacije je stanje u kojem se dotično pravilo može primijeniti, a na desnoj stanje koje će se dobiti nakon primjene tog pravila.

Ukupno je 8 dozvoljenih pravila prijelaza:

1. Napuni 4-litarski vrč. (x, y | x < 4)→(4, y)

2. Napuni 3-litarski vrč. (x, y | y < 3)→(x, 3)

3. Isprazni 4-litarski vrč na zemlju. (x, y | x > 0)→(0, y)

4. Isprazni 3-litarski vrč na zemlju. (x, y | y > 0)→(x, 0)

5. Isprazni svu vodu iz 4-litarskog (x, y | x + y ≤ 3 & x > 0)→(0, x+y) vrča u 3-litarski.

6. Isprazni svu vodu iz 3-litarskog (x, y | x + y ≤ 4 & y > 0)→(x+y,0) vrča u 4-litarski.

7. Izliti vodu iz 4-litarskog vrča (x, y | x + y ≥ 3 & x > 0)→(x-(3-y),3) u 3-litarski dok nije pun.

8. Izliti vodu iz 3-litarskog vrča (x, y | x + y ≥ 4 & y > 0)→(4,y-(4-x)) u 4-litarski dok nije pun.

Kako bi se riješio zadani zadatak osim pravila prijelaza koja predstavljaju znanje o prijelazu iz jednog stanja u drugo, potrebno je definirati i upravljačku strategiju koja

vodi kroz pravila. Za ovaj konkretni slučaj moguće je koristiti jednostavnu upravljačku strategiju: Usporedi lijevu stranu implikacije s trenutnim stanjem te ukoliko je zadovoljena primjeni to pravilo. Ciklički prolazi kroz sva pravila od prvog do osmog.

Navedena strategija odgovara postupku koji se zove pretraživanje po dubini (depth-first search). Efikasnost postupka rješavanja postavljenog zadatka ovisi o efikasnosti

Page 63: Uvod u umjetnu inteligenciju                         2012

Strana 59 od 295

strategije upravljanja. Strategija treba biti efikasna, a efikasna je prije svega ukoliko uzrokuje kretanje po prostoru stanja ali bez kretanja u krug. Neuspješna strategija bi bila ona koja bi se prolazom kroz nekoliko stanja ponovo vratila u početno stanje, a da niti jedno od prijeđenih stanja nije bilo ciljno stanje. Takva strategija nikada ne bi došla do rješenja.

Drugi je zahtjev prema strategiji: sustavnost tj. sistematičnost. Uzmimo za primjer nešto drugačiju strategiju od prethodno navedene. Na svakom koraku slučajno odabiremo pravilo koje se testira. Ova strategija uzrokuje kretanje i možda dovodi do rješenja, ali to nije moguće sa sigurnošću utvrditi, istovremeno je vrlo vjerojatno kako će se napraviti cijeli niz nepotrebnih koraka prije dolaska do cilja. Strategija nije sustavna.

Sustavna strategija je izgradnja cijelog prostora mogućih rješenja kojeg možemo prikazati grafom tipa stabla. Na vrhu, u početnom ili korijenskom čvoru je početno stanje, a ciljno stanje će, ukoliko do njega dođemo, biti negdje pri dnu, a pojaviti će se nakon prolaska kroz određeni broj razina stabla.

Pogledajte sada kako izgleda stablo igre i provjerite jeste li dobro razmišljai!

Page 64: Uvod u umjetnu inteligenciju                         2012

Strana 60 od 295

Za razliku od dosadašnjeg načina crtanja stabla igre, osim samog ciljnog stanja na grane stabla zapisivati će se broj primijenjenog pravila. Primijenjeno pravilo predstavlja funkciju prijelaza iz jednog stanja u drugo. Graf tipa stablo nema petlji, pa se pojedina stanja u stablu mogu pojaviti i nekoliko puta. Na primjer stanje (0,0) koje je ujedno i početno stanje, ali ono se i dva puta javlja u drugom redu razvoja.

fikasna strategija formiranja prostora rješenja je ona koja će čvorove koji se ponavljaju isključiti iz daljnjeg razvoja.

vakvi tipovi zadataka nemaju samo jedno rješenje, a ona mogu biti jednako vrijedna.

Na ovakav način raspisuje se stablo igre, a jednostavnosti radi, kada se iz stabla izbace vrčevi, dobije se stablo koje se onda programski implementria. Pri tome nemojte zaboraviti kako nije cilj samo riješiti konkretan problem, već riješiti problem koristeći se primjenom pretraživanja.

E

O

Page 65: Uvod u umjetnu inteligenciju                         2012

Strana 61 od 295

Ukoliko rješenje zadatka dva vrča vrednujemo po broju prijeđenih koraka od početka do cilja, postoje dva moguća, jednako vrijedna, rješenja. Broj iznad strelice primijenjeno pravilo. U oba slučaja, do rješenja se dolazi nakon šest koraka, pa su, što se brzine dolaska od početnog do ciljnog čvora tiče, identični. Međutim, postoji razlika u postupku kojim se dolazi do ovog slijeda koraka. Jedno od mogućih rješenja se može pronaći brže, uz manji razvoj prostora rješenja. Takvo je rješenje, sa stajališta rješavanja zadatka, pogodnije zato jer se do njega dolazi brže i sa manje truda.

osta mi je teorije! Želim programirati!#?*!

Programsku implementaciju problema vrčeva, ali i problema misionara i kanibala imate priliku raditi na vježbama. Ne zaboravite kako vježba čini znalca, pa pokušajte implementirati još neki od problema. U nastavku slijede opisi nekih od problema.

Zadaci za vježbu

Nakon što ste se upoznali sa načinom rješavanja problema primjenom pretraživanja prostora stanja, pokušajte postaviti i programski implementirati sljedeće probleme:

Prelazak preko mosta

U ovoj igri morate pomoći ljudima da prijeđu preko mosta. Svjetiljka se mora prenjeti svaki put kad se prelazi preko mosta i traje 30 minuta. Preko mosta istovremeno mogu prijeći dvije osobe, a svaka osoba hoda različitom brzinom. Morate pronaći kombinaciju osoba tako da svi prijeđu preko mosta prije nego se svjetiljka ugasi.

Problem pješčanog sata

Na raspolaganju su dva pješčana sata, jedan od sedam minuta i jedan od jedanaest minuta. Zadatak je koristeći ta dva pješčana sata izmjeriti vrijeme od 15 i 24 minute. Je li to moguće učiniti?

D