tinr skripta predavanj 5
TRANSCRIPT
-
7/25/2019 TINR Skripta Predavanj 5
1/26
TINR@FRI,draftv09,PeterPeer++ 71
Poglavje#5(odzivniagenti/umetnainteligenca)
Aktualnekatlice:
agentio enostavniodzivniagentio agentisstanjio
ciljnoorientiraniagenti preiskovanje
o iskanjevglobino,irino,A*o minmax,alphabetaprunningo iskanjepoti
1.Agenti
Vigrahjenavadnokvalitetauporabnikeizkunjeodvisnaodizziva,kigaigraponujaigralcu.Ena
izmedbistvenihsestavin,kibotrujedobremuizzivu,jeuporabaraunalnikihnasprotnikov,
zaveznikov,kisosposobniinteligentnegaigranjaigre(NPCnonplayercharacter).Sevedatoni
trivialnanaloga,nasreopaselahkoponasvetezateemokumetniinteligenci(UI).
Agentisotakodejanskolikivigrah,kisonekaknosredieUIvigrah.Tiagentizaznavajosvetv
kateremso,seustrezno,inteligentnonanjodzivajo,seprilagajajoigralcu.
UIvigrahsezelorazlikujeodveineostalihaplikacijUI,recimozavojakoobrambo,robotikoali
podatkovnorudarjenje.Bistvenarazlikajevciljih,kiimajopriigrahnaslednjihpetzahtev:
1.
Agentimorajobitiinteligentni,vendarmorajoimetinapake.
Nasprotnikmorapredstavljatiizziv. Nasprotnikmoraohranjatizanimivostigre,zabavo.
-
7/25/2019 TINR Skripta Predavanj 5
2/26
TINR@FRI,draftv09,PeterPeer++ 72
Nasprotnikmoraizgubitibitkozigralcemnaizvireninzabavennain.
2. Agentinesmejoimetinobenihnamernihibkosti.
Agentanemoremoporazitivednonatonoenaknain.
Agentnesmeizgubitiprelahko,nesmedajatiobutkabebavosti.
3. Agentisemorajoizvajatiznotrajomejitevigre,kijihpostavljataCPEinpomnilnik.
Veinaigerjerealnoasovnih,torejsemorajoagentjeodzivativrealnemasu.
CelotnaUIvigriredkokdajzasedeve kot10do20odstotokovasanamenjenega
vsakisliici(frame).
4. Agentimorajobitifleksibilnitako,dalahkooblikovalcialiigralcispreminjajonjihovo
izvajanje.
Oblikovalci(stopenj,igralnosti)morajoimetimonostnastavljanjateavnostne
stopnje,ustreznonastavljatiparametreUIalgoritmov(tunning),obasnopatudi
spisatikaknoskriptozaspecifinointerakcijo.
ejeigrarazirljiva,nastavljivatudisstraniigralca,potemselahkotudiigralec
ustreznopoigrazUIdelom.5. UIdeligrenesmepodaljatirokaizdajeigre.
UporabljeneUItehnikenesmejoogrozitiizdajeigre.
Eksperimentalnetehnikemorajobitipotrjenezgodajvpredprodukciji.
eUItehnikaomogoarazvoj,evolucijo,spreminjanjedelovanja,potemmorabiti
ustreznotestirana.
UIvigritorejninujnopopolna,zadovoljitimoraprimarnoigralca.Takodobimomaneverskiprostor,
danajdemobljinice,kirecimoreijoproblemdovoljdobrovrealnemasu,alipazahtevajoveliko
manjraunskemoi.
Vzadnjemdesetletjusejerazvojigerkonkretnospremenil,kaesedramatinaspecializacija
disciplin.EnaizmednjihjetudivlogarazvijalcaUItehnik.Vasihsotetehnikebiledelzadolitev
splonegaprogramerjaiger,danespajepodrojepostalove kotdovoljkompleksnozapovsem
loenovlogo.Dejstvojetudi,dasepotrebnespretnostirazvijalcaUIkrepkorazlikujejoemed
samimianri.Recimostrategijezahtevajodobroanalizobojiainnartovanjestrategije,nadrugi
stranipaFPS(firstpersonshooter)igrezahtevajotaktinoanalizoenanaenaininteligentno
premikanjenanivojuposameznihlovekihkorakov.RTS(realtimestrategy)igreveljajoza
najzahtevnejezvidikaUI.TipineRTSAAAigretakodaneszahtevajotripolnozaposlenerazvijalce
UI,nadrugistranipadirkake,pretepakealimiselnelahkozahtevajoleenegadelnozaposlenega
razvijalcaUI.
Vsakagentdelujealgoritminovtrehkorakihvzanki.Tekorakenavadnoimenujemozaznaj,razmisli,
odzovise(sensethinkactcycle).Opcijskosevednopogostejedodajatudikoraknauise,zapomnisi
(learning,remembering),sajzagotavljadodatenizzivzaigralce,sajseodzivUItakospreminjaglede
nanabraneizkunje.
Zaznavanje:
Vsvetuigreninegotovosti,karpomeni,davsakagentlahkovtrenutkupoznacelotnostanjetega
sveta,karpabiveinaigralcevoznailazagoljufijo.Takojetrebavigrovgraditismiselneomejitve,
kajinkakojesmiselnozaznavati.Torejkakoagentlahkovidi,sliiinsesporazumevavtemsvetu.
-
7/25/2019 TINR Skripta Predavanj 5
3/26
TINR@FRI,draftv09,PeterPeer++ 73
Otestiranjuvidnostismoevelikopovedali,vemotudi,dajetozelodragaoperacija.Zatonavadno
testiranjeomejimonaledoloeneagente,izvajamopagaperiodinovnaslednjihkorakih,ki
minimizirajoprocesiranje:
1.
Jeobjekt(recimonalik)narazdaljinakateriagentjasnoloistvarivvidnempolju?
2.
Jeobjektvvidnemkotuagenta?3.
Jekajmedobjektominagentom,karbiagentuzastiralopogled?(Takorakjeseveda
najdraji,zatojenazadnjemmestu.)
Vzaznavanjelahkovpletemotudidetekcijogibanja,sajkotvemo,jevelikolajezaznatigibajoise
objektkotstatien.
Sevedajesmiselnotudi,daagentuomogoimozaznavanjeprekosluha.Najverjetnejenivseeno,e
mimospeegasovranikagremopoprstih,alipaletimomimoterstreljamonazasledovalce.Sluhje
navadnomedeliranskozisporoilaodogodkih(eventdrivennotification),naprimer,eigralec
naredinekoakcijo,kipovzroihrup,potemigraizraunakambitazvoklahkopotovalinustreznoobvestivseagentenaizraunanirazdalji.
Tudisamakomunikacijamedagentimorabitiustreznoomejena.erecimoenvarnostnik(agent)
vidiigralca,tonepomeni,dabodovsivarnostnikivtrenutkuzaeliteiprotiigralcu,pa pamora
najprejvarnostnikletetidopreostalihkolegovoz.jimtosporoitinaigralcurazumljivnain.
Insevedajepomembentudireakcijskias,sajagentjelahkoreagirajoeistitrenutek,kopridedo
ustreznespremembevsvetu,vendartoneodsevarealnostiigralca.Takojnjozaznavanjetorej
nadomestimozustreznimiasovnimizamiki.
Razmiljanje:
Sedajlahkoocenimokvalitetozaznaneinformacijetersenapodlagileteodloimozaakcijo.Ta
korakveinaljudiobravnavakottistipraviUIdel.
Vsplonempoznamodvapristopaksprejemanjuodloitevagentov.Prvitemeljinavnaprejznanem
ekspertnemznanju,kijetipinooblikovanoskoziserijoepotempravilinnekonakljunostjo,ki
zagotavljamanjopredvidljivostagentov.Pridrugempristopupaagentuporabljaiskalnialgoritem,
danajde(skoraj)optimalnoreitev,torejzaporedjekorakov(nart),kigapripeljejodoeljenega
cilja.epoznamomonegibeinpravilagibanja,lahkonamre algoritemraziecelotneprostor,svet
igre.Kobemapristopomasebomovnadaljevanjuevrnili.
eekspertnegaznanjanemoremozagotoviti,iskanjepanereujeproblemadovoljdobro,potemse
lahkozateemoektretjemupristopu:strojnemuuenju.Vendar,epravtehnikestrojnegauenja
izgledajoobetavne,sevpraksivigrahzeloredkouporabljajo.Tialgoritmisonavadnokompleksni,
zahtevajopoglobljenoznanjeinletaizkuenj,eelimo,dadelujejodobro.Dodatopavelja,dati
postopkivigrineprekosijodrugihpostopkovzvidikauinkovitosti,robustnosti,enostavnosti
testiranja,enostavnostiprogramiranjainenostavnostinastavljanjaparametrovpostopkov.
Negledenapristoppasemoramozavedati,dasemoramosprejeteodloitvedratidoloenas.
Takozagotovonesprejemamoodloitvezvsakonovosliico(frame).Vnasprotnemprimerulahko
-
7/25/2019 TINR Skripta Predavanj 5
4/26
TINR@FRI,draftv09,PeterPeer++ 74
pridedoparalizacijeagenta,sajsezvsakonovosliicolahkoodloidrugae.Temureemoproblem
neodlonosti(flipflopping).
Odziv:
Prejnjihdvehkorakovseigralecnezaveda,zatomoramovtemkorakuposkrbeti,daseigraleczavedaagentoveinteligence.Odvisnoodigre,lahkoagentsproimalomorjeakcij,recimo:
spremembalokacije,animacijadogodka,proenjezvoka,pobiranjepredmeta,pogovorzigralcem,
uporabaoroja.Prilagodljivostinfinostskateroagentizvedeakcijovplivanaigralevodojemanje
agentoveinteligence.Todejanskopredstavljavelikobremezaraznolikostinestetskokvaliteto
animacij,zvonihefektov,ustvarjenihdialogovzaagenta.
Skritoprocesiranje,odloitevvprvihdvehkorakihmoramotakovtretjempokazatiigralcunanain,
daobogatimoigralnost(gameplay).erecimoagentizinformacijizve,dabozelokmaluzaradirafala
metkovumrl,potemnajbrzvidikaigralnostinidobro,dasepredavusodo,ampakdatodejansko
davedeti,reerecimoOhno!.Natanainagentdobroilustrira,dasezavedasvojesituacije,torej,dajepameten,inteligenten.
Spodajbomoopisalitriosnovneshemedelovanjaagentov.Osnovnoogrodjevsehjeenako:na
vhoduobravnavajoletrenutnoinformacijo(percepcijo)izokoljatervrnejoakcijonatoinformacijo.
(Vprimeru,dabiobravnavalicelotnozgodovino,bisimoralinajmanjvsastanjaezapomniti.)
Optimalnobisevedabilo,abilahkoagentoveakcijeopisalitabelarinovsmislupercepcijaakcija
(tabledrivenagent)(primersesanjadvehprostorov):
Vendarvsplonemvelja,dajevelikosttaknihtabelprevelikazauporabo.Takenagentnamre
zadricelotnovhodnosekvencozaassvojegaobstojavspominu.ezaah,kijemajhen,dobro
definiranfragmentrealnegasveta,velja,dabitaknatabelaimelanajmanj10150vnosov.(Za
primerjavo:teviloatomovvvidnemvesoljujemanjeod1080,avtomatskitaksipabizaurovonje
-
7/25/2019 TINR Skripta Predavanj 5
5/26
TINR@FRI,draftv09,PeterPeer++ 75
(30sliknasekundo,loljivost640480,24bitnabarvnainformacija)potrebovalve kotneverjetnih
10250.000.000.000).Zatomoramonajtivelikokratustreznealternative.Bistvenizzivpripisanjuagentovje
torejnajtipravipristopkpisanjuprogramov(agentov),kiposnemajorealnoobnaanjemajhni
programiinneveliketabele:
Enostavniodzivniagenti(simplereflexagents):
Zgornjaslikaodsevazapistabelesesanjasprogramomenostavnegaodzivnegaagenta.Taprincip
zapisanamjenajboljznanpodimenomepotempravila(ifthenrules,conditionactionrules,
situationactionrules,productions).
Vsplonembishematiendiagramenostavnegaodzivnegaagentabilslede:
Pravokotnikioznaujejotrenutnointernostanjeprocesaodloanjaagenta,ovalipapredstavljajo
informacijo,kiseuporabljavprocesuodloanja.
Takniagentisoresenostavni,vendarimajotemuprimernoomejenointeligenco.Enostavenodzivniagentbodelovalpravilnolevprimeru,elahkopridemodopraveodloitvenaosnovilevedenjao
trenutnemstanjuvcelemokolju(percepciji).Recimo,davnaemsvetusesalcanepoznamolokacije.
PremikvlevoizlokacijeAsedajnikolineuspe,karpovzroiujetostvneskonnozanko,katerise
velikokratnemoremoizognitiprienostavnihodzivnihagentih,kidelujejovdelnopoznanemokolju.
Lahkopasipomagamoznakljunostjoakcijintakoprekinemoneskonnozanko.Sesalecserecimo
enostavnoodloamedpremikomavlevoindesno,torejboprielnapravolokacijovpovprejuv
dvehkorakihintamzakljuilsvojedelo.
Primeriiziger:o
Pong
-
7/25/2019 TINR Skripta Predavanj 5
6/26
TINR@FRI,draftv09,PeterPeer++ 76
enostavnafunkcija,kiizpozicijeogicepove,kamnajsepremakne(http://gameteam.fri.unilj.si/spacepong/)
o SpaceInvaders,SuperMarioBros,milijondrugih premikajseveno(nakljuno)smer esezaletivzidalipridedokoncaplatforme
premaknisedolSpaceInvaders(http://www.youtube.com/watch?v=FYUFN0Ed9wk) spremenismer
o Nespomnimsekonkretnegaprimeratrenutno:)??? sleposepremikajmedvnaprejdoloenimitokami.
Agentisstanji(stateagents,finitestatemachines):
PristopzagentisstanjijeedenizmednajpogostejihpristopokkgradnjiUIigre.Razlogizatoso:
enostavnojihjesprogramirati,soenostavnizarazumevanje,enostavnisozarazhroevanje,hkrati
pasosploniintakoaplikativninapoljubenproblem.Sevedapristopnezagotavljavednonajbolje
reitve,vendarnaspripeljekciljuintozminimalnimtveganjemzaprojekt.Temnastranpristopajasnoobstajainbijolahkopovzelitakole:agentsstanjinavadnonastaneskoziadhocmodeliranje,
brezkonsistentestrukture,hkratipaskoziasrazvojalahkopostaneneobvladljivzaradisvoje
velikosti.
Formalnosotiagentjeavtomatstanj,karpomeni,dagrezaabstraktenraunskimodel,kije
sestavljenizzaetnega(inkonnega)stanja,mnoicevmesnihstanjinprehodovmedstanji,kislediju
nekigramatiki(torejpravilomzaprehajanjemedstanjinapodlaginekegavhoda).Zapotreberazvoja
igerformalnodefinicijoustreznoprilagodimo:
1.
Stanjaopisujejo
obnaanje,
ki
vsebuje
specifi
no
kodo
za
to
stanje.
2.
Nekprehodjelahkotipinorazdeljenmedve stanj.(Takovsakostanjeve,kajlahko
povzroiprehodiztegastanjavnekodrugostanje.)
3. Akcijaselahkoproitakoznotrajstanjakottudimedprehodom.
4.
Priprehoduvnovostanjeseopiramonaverjetnostinnakljuje.(Recimo,daimaagentpo
napadunanjle10%monostpobega.)
5.
Priodloitvahoprehodihpogostouporabljamododatnoinformacijoostanju.(Recimo
informacijoozdravju.)
AgentisstanjilahkotorejelegantnoopiejoobnaanjeintrenutnostanjeUIlikovvigri,vizualnopa
jihlahko
nazorno
prikaemo
z
diagramom
stanj
UML
(unified
modeling
language)
(kjer,
mimogrede,
jevsakostanjeenostavenodzivniagent):
Najvekratjenajlajeagentasstanjidefiniratikarvkodiigre,primerzazgornjiavtomatbibil:
-
7/25/2019 TINR Skripta Predavanj 5
7/26
TINR@FRI,draftv09,PeterPeer++ 77
voidRunLogic(int*state){switch(state){case0: //WanderWander();
if(SeeEnemy()) {*state=1;}break;case1: //AttackAttack();if(LowOnHealth()){*state=2;}if(NoEnemy()) {*state=0;}break;
case2: //FleeFlee();if(NoEnemy()) {*state=0;}break;
}}Sevedapatakenpristopnineproblematien:
1.
Programskijeziknevsiljujestrukture,kodajetorejadhoc,vsakjolahkodograjuje.
2. Kodanidogodkovnognana,sajzvsakosliicorecimopogledamo,alijesovraniknapadel.
3. Nienostavneganaina,kibinampovedal,dasmovdoloenostanjepriliprvi.Recimo,ko
gremoprvi vnapad,bimogoemoraliizvleime iznonice.Problembilahkoreilis
stanjemPreAttack,vendartolahkopripeljedoeksplozijestanjinzakomplicirastrukturo.
4. Oblikovalciigralnostinimajovplivanaagenta.ebiagentbilpodatkovnovoden(data
driven)zunajkodeigre,bioblikovalacilahkonadzorovalitudiagente,karjeprivelikihigrah
pomembnalastnost.
Alternativadirektnemuzapisuvkodijeskriptanje,navadnovigrilastnemskriptnemjeziku,ki
odpravljazgornjeprobleme.alpaustvarjanjetaknegajezikaniravnotrivialenproces.
Vekratuporabljenametodaimplementacijeagentadirektnovkodisenaslanjanakonceptrazredov
objektnousmerjenegaprogramskegajezika.Tukajjeagentzbirkarazredovstanj,kivsebujejo
metodezainicializacijoobvhoduvstanje,izhoduizstanjaterfunkcionalnostposodobitve(enter,
exit,update).Takenpristoppredstavljakompromismedzgorajprikazanoimplementacijoin
skriptanjem,sajjetaknokodonaelomatejerazumetiodskriptnekode,hkratipasostanja
nemalokratopisanazve datotekami.
Dodatneraziritveinrazhroevanjeagentovsstanji:
Daliksledispremembamstanja,vzdrujeskladpreteklihstanj.Takolahkorecimoizstanja
popravljanjahiepreidevstanjenapada,komugroziogenj,poodpraviognjapaselahko
brezpotrebepoanalizicelotnesituacijevrnevstanjepopravljanja.
Hierarhiniagentjedelujenapodobnemprincipu,kjerpaskladpredstavljahierarhino
urejeneavtomate,karomogoabolji,preglednejiopisobnaanjainnalog.Podobno
hierarhinemumodelulahkoimatudiposameznostanjeagentakopicopodstanj,kiobstajajo
znotrajtegastanja.
-
7/25/2019 TINR Skripta Predavanj 5
8/26
TINR@FRI,draftv09,PeterPeer++ 78
Liklahkosoasnodelujetudinapodlagiveihavtomatov,torejagentovsstanji,recimo
enegazarazmiljanje,drugegazapremikanje.Aliparecimoenegazaizogibanjeoviram
(kratkoroneodloitve),drugegazaiskanjecilja(dolgoroneodloitve)(subsumption
architecture).
Razhroevanjeinterakcijemedkopicoagentijeevednolahkoproblematino,kljubtemu,
dajerazhroevanjeenegaagentapreprosto.Vtanamensenajvekratuporabljajodnevniki
(logfiles)stanjvsakegaagentaskozias,obtestiranjupaseizpisujeprejnjeintrenutno
stanjeagentarecimonadnjegovoglavo.
Agentjesstanjipaalgledenadefinicijonisosposobniiskanjapoti,sklepanjainuenja(pathfinding,
reasoning,learning),zatobomovtenamenemoralivpetidrugetehnike.Kljubvsemupabinaredili
napako,enebiposkusilizagentisstanjireitivsajdelnaihUIpotreb.
Primeriiziger:
duhcivPacManu(http://www.youtube.com/watch?v=Zo0YujjX1PI)
o
duhcevostanjezasledovanja Galaxian(http://www.youtube.com/watch?v=7i4aF50hopo&feature=related)
o enostanjeistokotSpaceInvaderso
drugostanjepikiranjevsmeriigralca
Galaga(http://www.youtube.com/watch?v=S_lE_L0UtkQ)o slediskriptipriletanascenoo postavisenasvojemestovformacijio istidvestanjikotGalaxian.
Agentizmodeli(modelbasedreflexagents):
Najboljipristopkodloanjuvdelnopoznanemokoljuje,dasiagentzapomnistanjedelovsveta,kijihtrenutnonevidi(jihjepasevedaevidelvasusvojegaobstoja).Torejagentvzdrujenekakno
internostanje.Hkratipamoraimetiinformacijeotem,kakosesvetrazvijaneodvisnoodagentater
kakoakcijesamegaagentavplivajonasvet.Toznanjeokakosvetdelujeimenujemomodel.
Shematiendiagramagentazmodeli:
Vidimolahko,kakojetrenutnapercepcijakombiniranasstariminternimstanjemznamenomposodobitvetrenutnegastanjanapodlagiagentovegamodeladelovanjasveta.Detajliokolitega,
-
7/25/2019 TINR Skripta Predavanj 5
9/26
TINR@FRI,draftv09,PeterPeer++ 79
kakosostanja,modelipredstavljeni,selahkozelorazlikujejomedseboj,pristopovjenamre veliko,
ktempristopompasebomoevrnili.Neodvisnoodpredstavitvepajemalokdajmonodobititono
slikosvetavkateremseagentnahaja.TorejkatlicaWhattheworldislikenowdejansko
predstavljaagentovonajboljomonopredstavo,pribliek(bestguess).
Ciljnousmerjeniagenti(goalbasedagents):
Informacijaointernemstanjapaznabitivelikokratnezadostnazasprejemodloitve.Takoserecimo
taksinakriiulahkoodpravilevo,desnoalinaravnost,vendarzapravoodloitevbomopotrebovali
tudidestinacijo,cilj.Torej,agentpotrebujeinformacijoocilju,kiopieeljenesituacije.Agenttako
zdruimodelsciljemintakolajesprejmeodloitevopotrebniakciji.
Shematiendiagramciljnousmerjenegaagenta:
Vasihjelahkociljdoseenzgoljzenoakcijo,velikokratpabociljdoseenpoizvedbidolgega
zaporedjaakcij.Iskanjetaknihzaporedij,kivodijokcilju,bomonaslovilivpoglavjihUIo
preiskovanjuprostorainnartovanjupoti.
Bistvenarazlikamedzadnjimadvemashemamajetudivnainusprejemanjaodloitve.Dosedajsmo
baziraliodloanjenaepotempravilih,zdajpadejanskovodloitevvpeljujemotudirazmiljanjeo
prihodnosti:Kajsebozgodilo,enaredimtointo?,Mebotoosreilo?Konkretenprimer:Avto,
kijeimplementirankotenostavenodzivniagent,bozaviral,kobovidelzavornolu avtaspredaj.
Ciljnousmerjeniagentpabolahkosklepal,damoravtemprimeruzavirati,sajjetorecimoedinaakcija,kiizpolniciljnepokodovanjaavta.
epravsenaprvipogledciljnousmerjeniagentjezdijomanjuinkoviti,zagotovokompleksneji,so
tudiboljfleksibilni.eserecimovremenskespremembezavonjospremenijo,zanepadatide,
lahkociljnousmerjeniagentprilagodisvojeznanjeouinkovitostizavor,medtemkojepotrebnoza
enostavnoodzivnegaagentaspisatikopiconovihpravil.Podobnoveljazadestinacijo.Ciljno
usmerjeniagentlahkoenostavnospremeniobnaanje,komupodamonovodestinacijo.Vprimeru
enostavnoodzivnegaagentapamoramovsapravilazadospetjenanovodestinacijo(kjezaviti,kjeiti
naravnost)napisatinanovo.
2.Preiskovanje
-
7/25/2019 TINR Skripta Predavanj 5
10/26
TINR@FRI,draftv09,PeterPeer++ 80
Iskanjepotidocilja,torejpreiskovanjeprostoranitrivialnanaloga.Daagent,UIlikvigriizgleda
kompetenten,morapoznatisvetigre,karmuomogoapreiskovanjetegasveta:
Sevedasemorazavedatilebistvenihinformacij.Tudizaloveka,igralcarecimoteviloobjektovv
posameznisobinavadnonepredstavljakljuneinformacije,pravtakonebarvasten.;)Svetsimora
agentsevedapredstavitivnekipodatkovnistrukturi,medkaterimisovigrahnajpopularnejemree
(grid),grafismernihtok(waypointgraphs)innavigacijskaomreja(navigationmeshes).Preden
spoznamotestrukturepasioglejmoosnovnepreiskovalnealgoritme.
ZanajpopularnejipreiskovalnialgoritemvigrahveljaA*(Astar).Dagabomodobrorazumeli,simoramoprejogledatialgoritmenajprejvirino(breathfirst),najprejnajbolji((greedy)bestfirst)ter
Dijkstrinalgoritem(najprejvirinoobrazlinihcenahpoti)(uniformcostsearch).A*jenamre
kombinacijaalgoritmovnajprejnajboljiinDijkstrinegaalgoritma,tadvapagraditanaalgoritmu
najprejvirino.Zaelipabomoznjegovoprotiutejo,algoritmomnajprejvglobino(depthfirst).
Nekajosnovnihpojmovzazaetek:
Kdajjealgoritempopolen(completeness)?Konajdereitev,etaobstaja.
Kdajjealgoritemoptimalen(optimality)?Koobstajastrategija,kinajdeoptimalnoreitev
najcenejopot. asovnakompleksnost(timecomplexity)odgovarjanavpraanjekolikoasapotrebuje
algoritem,danajdereitev.
Prostorskakompleksnost(spacecomplexity)odgovarjanavpraanjekolikospomina
potrebujealgoritemzaiskanje.
Zaocenokompleksnostiuporabljamotrikoliine:bfaktorvejitveoziromamaksimalno
tevilopotomcevvsakegavozlia,dglobinanajplitvejegaciljnegavozliaoziromatevilo
korakovnapotiodkorenadocilja,mnajdaljapotvpredstavitvisvetaigre.
Postopekiskanje(negledenaiskalnialgoritem)vdrevesualigrafujerazlino:Drevonavadno
elimozgradimitako,danimaredundantnihpoti.Tosopoti,kipravtakovodijokcilju,aniso
takodobre.Posebenprimerredundantnihpotisotudizanke.Prigrafupamoramo
nadzorovatieobiskanomnoicovozli (algorithmsthatforgettheirhistoryaredoomedto
repeatit).Ravnozatojekompleksnostiskanjavgrafihtejedololjiva,sajjeodvisnaod
koliineredundantihpoti.Grafisotorejboljsploniinzatozanasboljzanimivi,ocene
kompleksnostipabodopodanezadrevesa.
Predstavljajmosicestnoomrejemedmestiiniskanjepotimednjimi:
-
7/25/2019 TINR Skripta Predavanj 5
11/26
TINR@FRI,draftv09,PeterPeer++ 81
Slikapredstavljazaporedjeustvarjanjaiskalnihdrevesziskanjempografu.Navsakem
korakurazirimovsakopotsskokomdososednjihmest.Pritretjemkorakulahkoopazimo,
danajboljsevernomestopredstavljaslepoulico,obenjemusosednjimestistanamre e
raziskaniprekodrugihpoti.
Mejnavozlia(frontier,openlist)sotista,kisovnekemtrenutkunavoljozaraziritev
preiskanihvozli.Vprimeruiskanjaredundantnihpotipapoznamoemnoicoraziskanih
vozli (exploredset,closedlist),kivsebujevsarazirjenavozlia.Novavozlia,aktualnaza
preiskovanje,kiustrezajovozliemvmnoiciraziskanihvozli alimnoicimejnihvozli
lahkoenostavnozanemarimoinjihnedodamovmnoicomejnihvozli.
Spodnjaslikaprikazujelastnostloevanjapriiskanjuvgrafu,ilustriranemnaenostavnem
problemumree:
Mejnavozlia(bela)vednoloijoraziskanavozlia(rna)odeneraziskanih(siva).V
primeru(a)smoraziskalilekorenskovozlie,vprimeru(b)smoraziskaliprvovozlieiz
mejnemnoice,vprimeru(c)pavsepreostalepotomcekorenskegavozliavsmeriurinega
kazalca.
estategijapreiskovanjanimanobenedodatneinformacijeostanjih,razentisteizdefinicije
problema,potemtaknimstrategijampravimoneinformiranoiskanje(uninformed,blind,
exhaustivesearch)(najprejvglobino,najprejvirino,Dijkstrinalgoritem).Strategije,kivedo,
alije
neko
neciljno
stanje
bolje,
bolj
obetajo
e
od
drugega
pa
imenujemo
informirano
iskanje(informed,heuristicsearch)(najprejnajbolji,A*).
Splonastrukturavsehalgoritmov:
1. Createstartpointnode,pushontoopenlist
2. Whileopenlistisnotempty
A. Popnodefromopenlist(callitcurrentNode)
B. IfcurrentNodecorrespondstogoal,breakfromstep2
C. Createnewnodes(successorsnodes)forcellsaroundcurrentNodeandpushthem
ontoopenlist
D. PutcurrentNodeontoclosedlist
-
7/25/2019 TINR Skripta Predavanj 5
12/26
TINR@FRI,draftv09,PeterPeer++ 82
Algoritmisedejanskomedsaborazlikujejopoodloitvi,katerovozlieizmnoicemejnihvozli bo
raziskalvnaslednjemprehoduskozizanko.Najprejvglobinobotakovzeltistovozlie,kiaka
najmanjasa.Najprejvirinotistovozlie,kiakanajve asa.Najprejnajboljitistovozlie,kije
najblijecilju.Dijkstrinalgoritembovzeltistovozlie,kijenajceneje.A*patistovozlie,kijeblizu
ciljuinpoceni.
Najprejvglobino
Iskanjesetakojpodavnajglobjidelsveta,vsedoklernepridevvozlie,kjernimamonaslednika.
Ilustrirajmokonkretenprimernaenostavnembinarnemdrevesu:
IskanjeseizvajapoprincipuLIFO(lastinfirstout)vrste(sklad),sajsenazadnjeobiskanovozlie
vzamekotizhodiezaiskanjenovegavozlia.Tojezagotovonajglobje,sajjezaennivoglobjeod
stara,kijebilprejnajglobjevozlie.Svetlosiveregijeoznaujejodelesveta,kienisobilipreiskani.
Preiskanavozlia,kinimajonepreiskanihpotomcevzbriemoizspomina.Vozlianaglobini3
nimajopotomcev,Mpajeciljnovozlie.
Kajlahkosklepamoizprikazanega?
eniredundantnihpotiinsenahajamovkonnemsvetu,potemjealgoritempopolen,sajboslejali
prejraziskalvsavozlia.Vprimeruneskonnegasveta,kjernaletimonaneskonnopot,kine
vsebujeciljnegavozlia,algoritemsevedanipopolen.
Algoritemnioptimalen,sajboraziskalcelotnolevopoddrevokorenskegavozlianazgornjisliki,pa
epravjeciljvozlieCpolegrecimovozliaJ.AlgoritembotorejnaelkotciljvozlieJ,kini
najbolja,najceneja,optimalnareitev.
-
7/25/2019 TINR Skripta Predavanj 5
13/26
TINR@FRI,draftv09,PeterPeer++ 83
asovnakompleksnostjeO(bm),karnispodbudno.Jepazatospodbudnaprostorskakompleksnost,
kijeO(bm).
Najprejvirino
Grezaenostavnostrategijo,kjernajprejraziemokorenskovozlie,natovsenjegovepotomce,natopotomcepotomcevitd.Torej,predenraziemokaterokolivozlienanaslednjiglobini,
raziemovsavozlianatrenutniglobini.Oglejmosituditukajprimernaenostavnembinarnem
drevesu:
Tukajsezamnoicomejnihvozli uporabljaFIFO(firstinfirstout)vrsta,torejnovavozliagredo
vednonakonecvrste,staravozlia,kiimajonijoglobinoodnovih,paraziemonajprej.
Kajlahkosklepamoizprikazanega?
Algotitemjepopolen,sajejenajplitvejeciljnovozlienanekikonniglobinid,gaboalgoritem
nael,obpredpostavki,dajevejitvenifaktorbkonen.
Algoritemjeoptimalen,ejecenavsakepoti,vejitveenaka.
TakoasovnakotprostorskakompleksnoststaO(bd).Tonispodbudnainformacija.Velja,dajeza
algoritemspominskazahtevnostcelovejiproblemodasaizvajanja.Vzemimo,daimamob=10,na
sekundoustvarimo1milijonvozli,vozliepazahteva1000Bspomina.Potempriglobinid=12ustvarimo1012vozli,porabimo13dniter1PB(petabajt=1000terabajt)spomina.Torej,lahko
akamo13dni,vendartaknegaspominanimamonavoljo.
Vsplonemvelja,daiskalnihproblemov,kiimajoeksponentnokompleksnostnemoremoreitiz
neinformiranimimetodami,izjemasomajhniprimeri.
Oglejmosieenprimerdelovanjaalgoritmanajprejvirinovenostavnemsvetuigre:
Iskanjesejezaelovsredini,ciljjeoznaenzX.Algoritemnajprejpregledavsavozlia(mone
premikemedcelicami),kisonarazdaljienegakorakaodsredia,natovsavozlianarazdaljidveh
korakovintakovsedocilja.Svetlosivecelicenaslikisovmnoicimejnihvozli,temnosivepav
-
7/25/2019 TINR Skripta Predavanj 5
14/26
TINR@FRI,draftv09,PeterPeer++ 84
mnoiciraziskanihvozli.Puicepredstavljajokazalcenastarastrukture,kibijolahkozapisalo
kot:
classPlannerNode
{
public:PlannerNode*m_pParent;
int m_cellX,m_cellY;
}
Naslikisoodebeljenoprikazanepuice,kipredstavljajoreitevpreiskovanja,gledenazgornjo
strukturopasousmerjeneodciljakizhodinicelici.
Sevedaobstajajotudidrugeneinformiranemetode(najprejvglobinozomejitvijoglobine(depth
limitedsearch),iterativnopoglabljanje(iterativedeepening),dvosmernoiskanje(bidirectionalsearch)),kipanasvtemtrenutkunezanimajo(vnadaljevanjusibomoogledalieobljubljen
neinformiranDijkstrinalgoritem),sajteimoktemu,dabomorazumelialgoritemA*,kateregabomo
spoznalidetaljno.Opisanaalgoritmanamre edovoljdobroosvetlitaosnove,kisopotrebneza
razumevanjepreiskovanja.
Najprejnajbolji
Taalgoritemspadatorejmedinformiranemetodeingradinaalgoritmunajprejvirino.Uporablja
namre specifinoznanjeoproblemu,dapospeiprocesiskanja:izraunarazdaljovsakegavozlia
docilja(tojehevristinafunkcija)innarediprioritetnovrsto,kjeruredivozliagledenatorazdaljo.
Vpovprejujevelikohitrejiodalgoritmanajprejvirino,hkratipapotrebujetudidostimanj
spomina.Pokaimotonaeuporabljenemprimeru:
Sevedapaalgoritemlenitakoidealen,sajselahkousmeripopoti,kininujnonajbolja:
-
7/25/2019 TINR Skripta Predavanj 5
15/26
TINR@FRI,draftv09,PeterPeer++ 85
Iskanjevstrukturibrezredundantnihpotioziromaobizloevanjuletehjepopolno,esenahajamo
vkonnemsvetu.Algoritemvtemprimeruvednonajdereitev.
Algoritemtorejnioptimalen,sajnejami,dabonaeloptimalno,najboljopot.Vveiniprimerovpa
jeuinkovit.
VnajslabemprimerustaasovnainprostorskakompleksnostO(bm),karnezveniravnospodbudno,
vendarlahkozdobro,ustreznohevristinofunkcijokompleksnostve kotoitno(dokazanona
primerih)zmanjamo.Vsplonemjesevedavelikostniredzmanjanjaodvisenodkonkretnega
problemainsamehevristinefunkcije.
Dijkstrinalgoritem
Dijkstrinalgoritemimenujemotudialgoritemnajprejvirinoobrazlinihcenahpoti(uniformcost
search).Zarazlikoodalgoritmanajprejvirino,Dijkstrinalgoritemnajdeoptimalnoreitevtudi,e
cenevejitevnisoenake.Taalgoritemvodievidencoocenipotiodzaetnegavozliadodanega
vozliaintakovednovnadaljevanjuiskanjaizberetistovozlieizmnoicemejhnihvozli,kidodanajmanjoceno.Mnoicamejnihvozlijetorejurejenaprioritetno.Takobirecimovprej
uporabljenistrukturiPlannerNodemoralidodatispremenljivko,kibihranilavrednost,cenood
zaetnegavozliadotegavozlia.
Vkontekstuprejprikazanegasvetaigre,bitakodiagonalniprehodlahkopredstavljaldodatnoceno,
sajdejanskoprepotujemovejorazdaljo.BistvenaprednostDijkstrinegaalgoritmapaje,dasezna
spopadatizrazlinouteenimiregijamivnaemsvetu.Takolahkorecimorazlineuteinaterenu
pomagajoagentu,daseizognedoloenimdelomsveta.Tiuteenidelilahkopredstavljajopotrebo
pododatniporabivirovalipakaknotveganje,recimo,danaslahkotamvidisovranik.Algoritma
najprejvirinoinnajprejnajboljipoznatazgoljkonceptprehodnihinneprehodnihregij,kjerimajoprehodneregijeenakoute,ceno.Slednjaalgoritmalahkoenostavnoreeta:ejevozlieebilo
ustvarjenozanekdel,recimoceliconaegasveta,potemnipotrebepoponovnempregledutega
vozlia.Dijkstrinalgoritemteganemorerei,namestotegamorapreveriti,alijenovapotdotega
vozliabolja,torejcenejakotprejnjapot.
Primer?Recimo,daimamonaslednjecestnepovezaveinelimopritiizskrajnolevegamestav
skrajnodesnega:
-
7/25/2019 TINR Skripta Predavanj 5
16/26
TINR@FRI,draftv09,PeterPeer++ 86
NaslednikaodmestaAstamestiBinC,kiimataceno(recimorazdaljovkm)80in90.Kerimapot
skozimestoCzaenkratnajcenejoceno,nadaljujemoiskanjeiznjegadalje.DapridemovmestoD
nastakostane80+97=177.SedajjenajcenejapottistadomestaB,zatoiemoiznjegadaljein
dobimo99+211=310.CiljnovozlieEsmotorejustvarili,vendarnaalgoritemenikonalzdelom,
zatorazieepotizmestaDnaprejindobiceno80+97+101=278zapotdociljnegavozliaE.Sedaj
algoritempreveri,alijetapotboljaodprejnje.Kerje,prejnjopotzanemari.
Algoritemjetorejvsplonemoptimalen.
Popolnostjezajamenale,ejevsakacenavejaodnekemajhnepozitivnekonstante.Kerje
algoritmupomembnalecenapoti,nepatuditevilokorakov,senamre lahkoobcenahpoti0
ujamevneskonnozanko.Sevedapamorabitifaktorvejitvebkonen.
Kompleksnostizaradilastnostialgoritma,dagavodicenainneglobina,nemoremoenostavno
izrazitiskoliinamabind.ZatosC*oznaimocenooptimalnepotiterpredvidevajmo,davsaka
povezavastanevsaj.Potemjevnajslabemprimeruasovnainprostorskakompleksnostenaka
/,karpajelahkovelikove kotO(bd).Zakaj?Taalgoritemlahkorecimopreievelika
poddrevesazmajhnimicenami,predenbozaelpreiskovatipotizvelikimi,amogoeuporabnimi
cenami.e
bi
vse
cene
bile
enake,
potem
iz
/dobimo
b
1+d
,kar
pomeni,
da
dobimo
ve
jo
kompleksnostkotprialgoritmunajprejvirinoinsicerzaradidejstva,daDijkstrinalgoritempreveri
tudivsavozlianaglobinid+1,ebisluajnonaelnatejglobiniekaknocenejoreitev.
A*
AlgoritemA*reiveinoproblemovalgoritmovnajprejvirino,najprejnajboljiinDijkstrinega
algoritma.Vosnoviporabivelikomanjspomina,zaiskanjereitvepapotrebujevelikomanjasa
(manjciklovCPE).Polegtegajami,danajdeoptimalnoreitev,obpredpostavki,dauporabljamo
sprejemljivohevristinofunkcijo.Sprejemljivahevristinafunkcijajefunkcija,kinikolinepreceni
dejanskecenepotidocilja.(Priiskanjuvgrafujepogojmalostroji,sajpravi,damorabiti
hevristinafunkcijatudikonsistentna:zavsakovozlieninvsakeganjegoveganaslednikanvelja,
daocenaceneizvozliandociljanini vejakotcenakorakaiznvnplusocenjenacenaizndo
cilja.)Nasreoocenarazdaljenikolineprecenidejanskecenepoti.Takoborecimocilj,kijedvecelici
stranodnaetrenutnepozicijebildoseenvdvehalive korakih(ejerecimovmesovira),zagotovo
panevmanjkorakih.Obtaknihevristinifunkcijijealgoritemtudipopoln.
A*torejzdruujealgoritmanajprejnajboljiinDijkstrinalgoritemtako,dapriizraunucene
upotevatakodanocenokottudihevristinoceno.Danacenajedejanskacenapotiodzaetnega
vozliapavsedotrenutnegavozlia,torejdovozlia,kjersetrenutnonahajamo(toizhajaiz
Dijkstrinegaalgoritma).Hevristinacenapapodajaocenjenocenoiztrenutnegavozliadocilja(to
-
7/25/2019 TINR Skripta Predavanj 5
17/26
TINR@FRI,draftv09,PeterPeer++ 87
sevedaizhajaizalgoritmanajprejnajbolji).A*imatakomnoicomejhnihvozli sortiranopokonni
ceni,kijodobimopoenabi:
konnacena=danacena+(hevristinacena*hevristinaute)
Utenamdajemonost,daposameznicenidamovejoteo.Vsplonembomozutejovejoodenadalivejoteohevristinioceni,zutejomanjoodenapadanioceni.
esedajpogledamodelovanjealgoritmaA*naproblemu,kjerjealgoritemnajprejnajboljizatajil,
dobimooptimalnoreitev:
AlgoritemA*vpsevdokodibiizgledaltakole:
1)createtherootNode: setitsxandytothestartPoint setitsparenttoNULL setitsfinalCost=givenCost+heuristicCost
2)pushrootNodeintoopen
3)whileopenisnotempty
a)popthenodewiththebestfinalCostfromopenandassignittocurrentNode
b)ifcurrentNode'sxandyareequaltothegoalPoint,then//Note:wecantraversethroughtheparentsofcurrentNode pushthenodesthatarepartofthepathintosolution breakfromstep3
//Note:anodehas8pointsarounditwhichcanbeusedtocreateminof0and// maxof8successorc)foreverynearbyPointaroundthecurrentNodedothefollowing
i)ifthisnearbyPointisinaspotthatisillegalsuchasawall,then skiptothenextnearbyPoint
ii)createsuccessorNode: setitsxandytothenearbyPoint setitsparenttobecurrentNode
setitsfinalCost=givenCost+heuristicCost
-
7/25/2019 TINR Skripta Predavanj 5
18/26
TINR@FRI,draftv09,PeterPeer++ 88
iii)ifanodeforthisnearbyPointhasbeencreatedbefore,then//Note:toseewhetherornotanodeisinfactbetterthantheother,// wehavetocomparetheirgivenCost ifsuccessorNodeisbetterthanoldNode,then
poptheoldNodeanddeleteit
elseskiptothenextnearbyPoint
iv)pushsuccessorNodeintoopen
d)pushthecurrentNodeintoclosed
4)ifthewhileloopcompleteswithoutfindingthegoal,thegoalPointisunreachable
KompleksnostbilahkopoenostavljenozapisalikotO(bd),kjerjerelativnanapakameddejansko
cenoh*inocenjenocenoh:=(h*h)/h*.Zapisanosamoposebiniravnospodbudno,vendarvpraksiuporabadobrehevristinefunkcijezagotavljaneverjetneprihrankevasuinprostoru.
Bimalopotestiralialgoritme?
assamposebininajvejapomanjkljivostalgoritmaA*.Kerhranivsavozliavspominu(kotvsi
algoritmi,ki
preiskujejo
grafe),
algoritmu
A*
veliko
prej
zmanjka
prostora
kot
asa.
A*
tako
ni
primerenzazeloobseneprobleme.Sevedapaobstajajoeboljialgoritmi,kireijoproblem
prostora,obtemostajajooptimalniinpopolni,porabijopanekajve asa.Dajmojihnekajlenateti:
A*ziterativnimpoglabljanjem(iterativedeepeningA*IDA*),rekurzivninajprejnajboljialgoritem
(recursivebestfirstsearchRBFS),prostorskoomejenA*(memoryboundedA*MA*),
poenostavljenMA*(simplifiedMA*).
Minimaxiskanje
Torejzakajeenalgoritemiskanja,ejeA*tistipravi?Pridebatioagentihsmoizpostavilidejstvo,
daupotevamotudistanjeokolja,kipaselahkomedagentovimiakcijamispreminja.Takovelja,da
eigramoprotinasprotniku(alizzaveznikom)vrecimoizmenjujoemsizaporedjuakcij(turntaking,
-
7/25/2019 TINR Skripta Predavanj 5
19/26
TINR@FRI,draftv09,PeterPeer++ 89
twoplayer,deterministicgame,zerosumgameofperfectinformation(fullyobservable
environments))(recimokriciinkroci,ah),potemakcijenasprotnikavplivajonastanjeokolja,
slednjesejenapodlaginasprotnikoveakcijespremenilointakoagentovaodloitevizprejnjega
korakamogoenive optimalna.
Taknemuiskanjupravimosovranoiskanje(adversialsearch,games(mathematicalgametheory),economies),skaterimreujemoprobleme,kinastanejoprinartovanjuvsvetu,kjerostaliagentjes
svojiminartiruijonartnenaegaagenta.Opravkaimamotorejznepredvidljiviminasprotniki,zato
moramopoiskati(re)akcijonavsakomonoakcijonasprotnika.Hkrativelja,daesmoasovno
omejeniinzatonemoremonajtioptimalnereitve,jomoramoaproksimirati.Tostabistvenirazlikis
prejspoznanimialgoritmizaiskanje.
Iskalnodrevoprirecimoahuima35100vozli (povprenotevilomonihpoteznavsakemkorakuje
35,igrapatrajapovpreno50potezvsakegaigralca).Pritaknihigrah,kotmarsikdajvrealnem
svetu, moramozatozagotovitinekosmiselnoreitev,keroptimalnereitvenimogoedobitiv
doglednemasu.
Minimaxiskanjejetorejtehnika,kiomogoaizbordobrereitveobomejenemasu.Imejedobilapo
konceptudvehigralcev,edenjeMax,drugiMin.Maxjevednoprvinavrsti,potempastanavrsti
edenzadrugim,vsedoklernepridemodokoncaigre,kjerustreznonagradimozmagovalca,
kaznujemoporaenca.Iskalniproblemlahkoformalnopredstavimoznaslednjimielementi:
Zaetnostanje.
Definiranigralec,kijenavrstivdoloenemstanju.
Mnoicamonihakcijvdoloenemstanju.
Definiranrezultatakcije.
Testkonnosti(terminaltest),kipove,alisejeigrakonalaaline.Stanjavkaterihseigra
konaimenujemokonnastanja.
Ocenjevalnafunkcija(utility,objective,payofffunction)definirakonnonumerinovrednost
igre,kisezakljuivkonnemstanju.Ocenarazkrijezmagovalca.(Prikricihinkrocihsoto
recimovrednosti0,1ali1,priahu0,1,1/2.)
Zaetnostanje,akcijeinrezultatiakcijdefinirajodrevoigrevozliasostanjaigre,povezavepaso
moneakcije.Zaprimerkricevinkrocevbidrevoizgledalotakole:
-
7/25/2019 TINR Skripta Predavanj 5
20/26
TINR@FRI,draftv09,PeterPeer++ 90
IzzaetnegastanjaimaMax9monihakcij.VisokevrednostiocenjevalnefunkcijesodobrezaMaxa,
nizkevrednostipazaMina(karjerazlogzapoimenovanje).Relativnogledanojedrevoigremajhno:
9!=362.880konnihvozli.Zaahjihjeetoliko,dalahkonataknodrevogledamolekotna
teoretinikontrukt,kigavpraksi nimogoerealizirati.NegledenavelikostdrevesapaimaMax
nalogopoiskatidobropotezo.
Globinopritehdrevesihpojmujemomalcedrugae,sajglobinoeneakcije(onemovedeep)
okarakteriziramozenoakcijoMaxainenoMina(halfmove,ply).
Minimaxvrednost(minimaxvalue)lahkoizrazimokot:
njevozlie,stanjedrevesa,sjenaslednikvozlianponekiakciji.Strategijaminimaxaseobnese
dobro,eobaigralcaigrataoptimalno,eMinrecimoigraneoptimalno,boMaksigralebolje.e
torejigramoprotineoptimalnimnasprotnikom,jemogoeboljeuporabitikaknodrugostategijoin
neminimax.Sevedapatedrugestategijepotemigrajoslabeprotioptimalnimnasprotnikom.
Dapridemodozapisaalgoritma,sinajprejoglejmoprimernanekitrivialniigri,kiimaleglobinoene
akcijedokonnihvozli:
-
7/25/2019 TINR Skripta Predavanj 5
21/26
TINR@FRI,draftv09,PeterPeer++ 91
KonnavozliaprikazujejoocenezaMaxa,ostalavozliasooznaenazminimaxvrednostmi
(slednjepripiemo,kogremopopotinazajnavzgor,rekurzivno).Najboljapoteza(minimaxdecision)
Maxajea1,sajvodidostanjaznajvejominimaxvrednostjo,najboljapotezaMinapajenatob1,saj
vodidostanjaznajmanjominimaxvrednostjo.
Algoritemtorejizraunaminimaxodloitev(najboljopotezo)izdanegastanjazenostavnimrekurzivnimizraunomminimaxvrednostinadsvojiminasledniki.Algoritemvosnovinaredipopolno
iskanjepoprincipunajprejvglobino(temuprimernesopotemtudinjjegovekarakteristike,sto
razliko,dajetaalgoritemoptimalen).Zaradiznaneasovnekompleksnostijezaveinoiger(zaah
zagotovo)algoritemnepraktien,vendarpostavljadobretemeljezamatematinoanalizoigerter
boljpraktinealgoritme.
Algoritemminimaxiskanja:
Alfabetarezanje
Problemminimaxiskanjajetorej,dajetevilostanjigre,kijihmorapreiskati,eksponentnogledena
globinodrevesa.aleksponentanemoremoeliminirati,vendargalahkouinkovitorazpolovimo.
Rezanje(pruning)namnamre omogoa,daignoriramodeledrevesa,kinevplivajonaodloitev.Takozagotovopospeimosamoizvajanje,najdemopaenakoreitevkotminimaxmagoritem.
Oglejmosi,karnazgornjemprimeru,kakolahkonapodlagiuporabeznaneinformacijepridemodo
reitve,nedabimoralipregledaticelodrevo:
-
7/25/2019 TINR Skripta Predavanj 5
22/26
TINR@FRI,draftv09,PeterPeer++ 92
Zaradilastnostiminimaxavprimeru(d)nimasmislagledativrednostipreostalihdvehvozli.V
primeru(f)paimamovkorenskemvozliukljubvsemuenakoreitevkotprejzuporabominimax
algoritma.(Vidimopalahkotudi,dajemonostrezanjaodvisnatudiodvrstnegaredaobiska
naslednikov.)Nacelotolahkogledamotudikotnapoenostavitevenabeminimaxa:
minimax(koren)=max(min(3,12,8),min(2,x,y),min(14,5,2))
=max(3,z,2) z2
=3.
Zdrugimibesedamijevrednostkorenainstemodloitevalgoritmaneodvisnaodxiny.Sploenkonceptalfabetarezanjatakopravi,daejepotskozivozliemzaigralcaboljaodpotiskozin,
potemdovozlianvigrinebomonikoliprili:
Algoritemzaalfabetarezanje,iskanjejedobilsvojeimepodvehparametrih,kiopisujetaomejitve
obrekurzivnemvraanjupodrevesunavzgor:
alfa()najvijavrednostigralcaMax,kismojonalidosedajnatokahodloitve
beta()najnijavrednostigralcaMin,kismojonalidosedajnatokahodloitve.
Algoritemiskanjavzdrujetidvevrednostiintakojprekinerekurzijovvozliih,kjerjevrednost
trenutnegavozliaslabaodtrenutnoznanealfaoziromabetavrednosti.enazgornjislikireemo,dajeMax=Player,m=,potemvozliannebomoobiskali,e>n.
-
7/25/2019 TINR Skripta Predavanj 5
23/26
TINR@FRI,draftv09,PeterPeer++ 93
Algoritemalfabetaiskanja:
Bistvenarazlikamedteminprejnjimalgoritmomjetorejvvzdrevanjuvrednostiinter
posredovanjuthedvehvrednostiskozidrevesnostrukturo.
Minimaxalgoritemustvaricelotenpreiskovalniprostorigre,alfabetaalgoritemnamomogoa
rezanjevelikihdelovdrevesa,evednopamoravsajdeldrevesapreiskatidokonnihstanj.Ta
globinavelikokratevednonipraktina,sajsmolahkoomejenisasom.Takoobstajajorecimotudi
iskalnialgoritmi,kinanekiglobiniuporabijonekohevristinoocenjevalnofunkcijoinsenespuajo
vglobino.Alirecimoalgoritmivnaprejnjegarezanja(forwardpruning).Vendarotemmogoekdajdrugi.
3.Predstavitevpreiskovalnegaprostora
Kotsmoreklinazaetkutegapoglavjasimorasvetagentpredstavitivnekipodatkovnistrukturi,
medkaterimisovigrahnajpopularnejemree(grid),grafismernihtok(waypointgraphs)in
navigacijskaomreja(navigationmeshes).Vsakaimasvojeprednostiinslabosti,naprimernost
uporabepalahkovplivajotudiparametrikotsoanr,tipsveta,teviloagentovipd.
Mree
-
7/25/2019 TINR Skripta Predavanj 5
24/26
TINR@FRI,draftv09,PeterPeer++ 94
2Dmreesozelointuitivennainopisasveta,ravnozatopatudizelovelikokratuporabljenkonceptv
igrah.RecimoRTSigrikotstaAgeofempiresinWarcraftIIIuporabljatamreo.Vsakocelicomree
oznaimokotprehodnoalineprehodno.Vsakobjektvsvetuigrelahkozavzameenoalive celic.Ker
jemrea2D,toenepomeni,dajenemoremouporabititudiza3Digre(recimoWarcraftIII).V
taknemprimeruimamopa leenoviino;takorecimovWarcraftIIInemoremoitipodmostomali
ezmost(leenoalidrugo).
Bistveneprednostimreeso:
Negledenalokacijolikavsvetu,takojvemo,katericelicipripadatalokacija.
Izpoljubnecelicelahkozeloenostavnodostopamodososednjihcelic.
Mreedelujejodobrovsvetovih,kjersoobjektilahkodokajdobroporavnaniscelicami.
Primerevednodobreporavnaveobjektovscelicami:
Grafismernihtok
Namestoprehodnikinneprehodnihcelicgrafsmernihtokpodapovezavevsvetu,kisovarneza
prehod.Takoseagentupripotovanjupotehpovezavahnitrebaobremenjevati,alibonaletelna
ovire,padelvjarekalizmosta.Smernetokedejanskopredstavljajovozliagrafa,povezavapa
poveenatannodvevozliiindefiniravarnopotmedtemadvemavozliema.
Grafzasvet,kigabibilotejeopisatizmreo:
-
7/25/2019 TINR Skripta Predavanj 5
25/26
TINR@FRI,draftv09,PeterPeer++ 95
Vsakacelicaimatipinoosemsosedov,medtemkojelahkovozliepovezanospoljubnimtevilom
drugihvozli.Torejsografismernihtokboljfleksibilni.Pravzapravlahkozavsakomreoustvarimo
ekvivalentengrafsmernihtok,evozliepostavimovcenterprehodnihcelic,vozliapapotem
poveemozvozliivsosednjihcelicah.
Sevedapatonepomeni,dajegrafsmernihtokvednoboljaizbira.Vmreinipotrebepododatniinformacijizavodenjeevidenceososednjihcelicah,koordinatitrenutnecelicestadovolj.Vprimeru
grafasmernihtokpatemunitako(naelomapotrebujemodvapovezanarazredaGraphNodein
GraphLink),zatolahkozuporabomreezagotovokrepkopriparamopriporabipomnilnika.
Vozliapalahkohranijotudidodatnoinformacijo,recimoradij,kilahkodefinirairinopovezave,da
lahkoagenthodipopotimaloboljfleksibilno(nestrogopopovezavi),mogoezintegriranokakno
nakljunovrednostjo.Obtemrazirjenepovezave,koridorjievednoopisujejopovsemvarnopot.
Vendarpaveinaigerrajekotirinopotiuporabljapristopohlapnegasledenjapotivpovezaviz
detekcijotrkov,kiagentaobvarujepredrecimotrkomzoviramialipadcemvluknje.Zatopamorajo
oblikovalcisvetasevedazagotovitidodatneinformacijeomonihtrkih,recimonevidneravninealiomejujoepovrine/volumne(boundingsurface/volume).
Enaizmedbistvenihprednostigrafovsmernhtokje,dalahkoenostavnopredstavljajopoljubne3D
svetove.VelikoFPSiger,kotrecimoUnrealtournamentinHalflife,uporabljapravgrafesmernih
tok.
Navigacijskaomreja
Navigacijskaomrejasopostalavzadnjihletihzelopopularna,sajzdruujejodobrestranimrein
grafovsmernihtok.
Izhajajmoizpredstavitvesvetazgrafomsmernihtoknazgornjislikiterpredstavimotasvetz
navigacijskimomrejem:
Navigacijskoomrejejesestavljenoizkopicekonveksnihpoligonov(vtemprimerutrikotnikov,nipa
tonujno).Prednostuporabekonveksnegapoligonajeta,dalahkopoljubnidvetokiznotrajpoligona
poveemobrezprehodaskozirobpoligona.Torejvsepotiznotrajpoligonapredstavljajovarnepoti
(kotprimreah).Vsakrobpoligonajealideljenzdrugimpoligonomalipaznobenim.Vprvem
primeruroboznaujemoenvarenprehod,vdrugempaneprehodnost.
-
7/25/2019 TINR Skripta Predavanj 5
26/26
Odvsehtrehspoznanihstrukturtorejlegrafismernihtoknedefinirajoprehodnihinneprehodnih
regij.Zatojihoznaimokotnepopolnepredstavitvesveta.Posledinonavigacijskaomrejaoznaimo
kotpopolnepredstavitvesveta.
Dodatnaprednostnavigacijskihomreijpredgrafismernihtokjeta,dapovezujejoiskanjepotiin
detekcijotrkov.Obuporabiohlapnegasledenjavgrafusmernihtoksmoizpostavili,damoramouporabljatidetekcijotrkov.Cenadetekcijesevedastevilomagentovnaraa.Priuporabi
navigacijskihmrepaselahkozadetekcijotrkanaslonimonaenostavnotestiranjeprehodaez2D
robpoligona.
Dodatniviri:
[1]StuartRussell,PeterNorvig:ArtificialIntelligence:AModernApproach,Pearson,2010.
http://aima.cs.berkeley.edu
Naloganavajah:
Zanalogomorateoddatisvojrazredzascenoinposnetekigralnosti,kjersenasceno
dodajajoinodstranjujejostvari.Lahkosiceruporabitekakrenkolipristophoete,vanoje,
davamarhitekturaomogoatakododajanjekotodstranjevanjestvaritekomigranjainnele
obinicializaciji.
Vigrododajtevsajenegaagenta(tokedobitezamaksimalnotriagente).
Vigrododajtepreiskovanjeprostora(neobveznanaloga).