TINR Skripta Predavanj 5

Embed Size (px)

Citation preview

  • 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).