INF 3/4130 19. oktor 2006 Dgns: Kpittl 10 og 23 i hovok Fr kp 10 : Dyførst og rnhnoun søk Fr kp 23: A*søk Olig 2 hr liggt ut n stun. Frist 27 oktor. Konkurrns: Kommr i løpt v n uk (15spill? Frist. 20 novmr Forlsning nst uk: Dino Krg strtr om NPkomplttht, uvgjørrht, t. NB: På rommt AlfOmg i 4. tsj (NR 1 Søk i tilstnsrom Kp 10: Hrfr skl vi minn om (fr INF 1020 Bktring lgorithms y først søk i tilstnsrommt Trngr lit lgrplss Brnh n oun (l knskj ikk klt t i INF 1020? Br først søk, m vrintr Trngr my plss: Må hol i lgrt ll nor (tilstnr som r stt, mn som ikk r sturt Vrintr: Kn f.ks. gi hvr no n lovnht, og gå vir lngs n non som r mst lovn (huristikk. Dtstruktur: Priorittskø, liknr på Dijkstrs kortst vi Et ltrntiv til å gjør rnt rførstsøk (ikk i ok: jør yførstsøk til nivå 1, så nytt søk til nivå 2, osv. Om t r stor forgrningsfktor tr ikk tt så my mr ti nn vnlig rførst Og t krvr my minr plss Kp 23: Hrfr skl vi t om A*søk. Liknr my på rnhnoun m priorittskø Mn om vi sttr viss krv til huristikkn, så får vi n lgoritm lis Dijkstrs Kortst vi lgoritm Mollr for vgjørlssskvnsr Mollr for vgjørlssskvnsr Dt r flr måtr å mollr vgjørlssskvnsr for t gitt prolm itt mollringsmåt: D mulig skvnsn nnr t tr Eksmpl, finn mulig Hmiltonin Cyl (innom ll non én og r én gng: Hmiltonin Cyl Hr opplgt ingn Hmiltonin Cyl To måtr å mollr tt på: Strt vi i tilflig no og forlng vin på ll mulig måtr Mulig vlg i stgt i lgoritmn: All kntr (ut fr sist vino så lngt som ikk går tilk til llr rukt no. Strt m n knt, og lgg stig til n knt til: Mulig vlg i stgt i lgoritmn: All ikkvlgt kntr som gjør t ll smmnhngn komponntn v vlgt kntr frmls forlir nkl vir Førr til forskjllig stt sp tr = tilstnsromtrt Prolm stt : Tilstnr r n l vlg r gjort ol stts : Dt gjort t ntll vlg, og vi står m n løsning. Trstruktur ut fr først moll: Vlg n no og forlng vin fr nn på ll mulig måtr Mulig vlg i stgt i lgoritmn: All kntr (ut fr sist vino så lngt som ikk går tilk til llr rukt no.
Mollr for vgjørlssskvnsr Tilstnstr ut fr nr molln: Strt m n knt, og lgg stig til n knt til: Mulig vlg i stgt i lgoritmn: All ikkvlgt kntr som gjør t ll smmnhngn komponntn v vlgt kntr frmls forlir nkl vir C B D F A E B C E D A E F B C D E F Forskjllig mollr kn gi r/årligr mulightr for vskjæring. Eksmplr fr ok: Figur 10.3 og 10.4 (Sust sum Si 719 (8spill, litn utgv v 15spill Dyførst søk/tilksporing jnnomsøkr tilstnsromstrt yførst, til vi kommr til n måltilstn Brukr grist n rkursiv prosyr, som hr slv prolmstillingn som glol t. Tr litn plss: Holr r non mllom rotn og n non mn r i Kn ruk huristikk til å først vlg mst lovn vi ut v n non vi nå står i (f.ks. nærmstkntførst, om mn vil finn kortst Hm. Cyl. Må ruk vskjæring så got som mulig (pruning, ouning: Ikk gå n i sutrær som umulig kn innhol n måltilstn. Hr: Kn vær lur F.ks.: Når mn hr vlgt, og, kn mn s t ll tilkkntr til r sprrt, og t tt ikk kn før til n Hm. Cyl. Brnh n oun Brukr n llr nnn form for rførstsøk Blir n mng v nor som ok kllr Liv Nos Dtt r som r stt, mn ikk fulgt opp. NB: Kn li stor! Liv nos vil vær t snitt gjnnom tilstnsromtrt (grønn All ovr (nærmr rotn r mn frig m (lå All unr r ikk stt n (gul Stgt: Vlg n no N fr mngn LivNos Er N n målno? Om j: Frig! Om ni: T N ut v livnos køn Stt ll N s rn inn i Liv Nos køn Tr strtgir: LNmngn r n FIFOkø Ekt r først LNmngn r n LIFOkø Liknr på yførst LNmngn r prioritskø, m n psslig huristikk som prioritt (hvor lovn r non Liknr my på A*søk (kommr Kn slvfølglig også ruk trisjonll vskjæring (ouning, pruning Søk ttr st løsning, ié 1 For nklhts skyl: Bst løsning r n målnon som r nærmst rotn, rgnt i ntll kntr (mn lr sg ltt gnrlisr D måvi ikk tnk på Hm. Cyl som ksmpl (ll målnor lik yp Ié1: Bruk y først, og ruk ll vnlig vskjæring slik som før Hol n glol vril hittil kortst lng : HKL å lri ypr n t st vi hr stt til nå, s tgning Om vi også kn rgn t minstmål for hvor lngt t r til nærmst målno får vi n r vskjæring Kn oft på forhån rgn n øvr grns for hvor lngt unn st målno r. Stts som strtvri for HKL. HKL x y x x
Søk ttr st løsning, ié2 Litt fornrt fr forlsningn SOM FØR: Bst løsning r n målnon som r nærmst rotn, rgnt i ntll kntr. Ié 2: Bruk rn r først. Dtt vil hlt rtt frm gi st løsning utn non gng å gå for ypt Altrntiv, om optimlittskritrit r litt mr komplisrt nn r nærmst mulig rotn : Bruk prioritrt rførst søk. Prioritt: Estimt for hvor snnsynlig t r t st no liggr i mitt sutr. Også hr: Hol n glol vril hittil st no : HBN Om u kommr til n no r t r sikkrt t ingn i hl nons sutr r r nn HBN, så skjær v. MEN: Mn må gnrlt fortstt søkt inntil ll grnr r vskårt som skrvt i forrig punkt, ltså til prioritskøn v stt, mn ikk hnl nor r tom. Hr vil A*søk gi r løsning. x y HBN x x Itrtiv r først (ikk i ok Et ltrntiv om mn vil gjør rnt rførstsøk Brukr lik lit plss som y først søk Mn må gjør litt ri om igjn Ié: jør yførstsøk til nivå 1, så t hlt nytt søk til nivå 2, osv. Om t r stor forgrningsfktor tr ikk tt så my mr ti nn vnlig rførst Og t krvr ltså my minr plss Kn også ruks m priorittr/huristikkr t. A*søk Ellr: Dijkstrs kortst vi lgoritm, m huristikk! A*søk gnr sg for prolmr r vi hr n (ksplisitt llr implisitt grf v tilstnr, M n strttilstn, og t ntll måltilstnr Mulig tilstnsovrgngr (rtt kntr m n gitt kost. Og: Skl finn n vi fr strt til n måltilstn m, m miniml kost. Altså logisk stt: kortstviprolmt r S si 728/29, figurr 23.8 23.10. Hr r h(x = vstnn i rtt linj Strtgin r t rførstsøk, m huristikk Vi rukr n huristikkfunksjon h(x for stig å vlg mst lovn vi Altså rførstsøk m n prioritskø for vlg v nst fr LivNos Mn: Må h spsill krv på h(x for t lgoritmn skl li lik nkl som Dijkstr Finns vrintr til fullt A*søk (Asøk, A*søk utn ll h(xkrv oppfylt PQ Krv til h(x Krv (monotonitt: 1. Huristikkfunkjsonn h(x r minrllrlik lngn v fktisk kortst vi fr x til nærmst målno 2. Om t r knt fr x til y m vkt w(x,y, så skl gjl: h(x <= h(y+w(x,y 3. All målnor m hr h(m = 0, og llrs må vi h h(m>= 0. Om h(x llti r 0, så r iss oppfylt. D får vi Dijkstrs lgoritm. Dt fin r t krv 2 og 3 mførr krv 1, så vi slippr å tnk på krv 1. Bvis: Vi ntr t x > y > > målno r kortst vi fr x til nærmst målno: x h(x <= h(y + w(x,y Nærmst målno m y h(y <= h( + w(y, h( <= h(mål + w(,mål = w(,mål Kominrr vi iss får vi: h(x <= w(x,y + w(y, + w(, m Altså: h(x <= kortst vi til nærmst målno.
Om Asøk og vrintr v A*søk Om u hr n huristikk h(v for hvor lngt t r til n målno Og h(v kn vær å litt for stor og litt for litn D klls tt Asøk (vlig likt prioritrt rførstsøk Om vi vt t h(x lri vil vær størr nn n virklig kortst vi til målt Mn ikk tilfrstillr t full monotonitskrv Og vi rukr n Dijkstrliknn lgoritm, m psslig ruk v h(x D vil vi llti til slutt få riktig rsultt (kortst vi fr strt til nærmst mål Mn vi må stig gå tilk til nor vi tro vi vr frig m og opptr lngn, og rm få my kstrri! Hr r ok ssvrr ikk hlt go hr (s trykkfillistn. Vi tr rfor ikk tt m som pnsum Dt for slv A* lgoritmn (si 725/726 Vi hr n rttt grf m kntvktr w(x,y, n strtno og t ntll målnor, smt n monoton huristikkfunksjon h(x. Hvr no x hr i tillgg følgn vril: g(x = forløpig kortst vi fr strtnon. Dnn vil stig fornr sg unr lgoritmn, mn vil til slutt få lngn v kortst vi fr strtnon til x. prnt(x som skl li forlrpkr i t tr v kortst vir fr strtnon f(x som hl tin r lik g(x+h(x, ltså t stimt v vilngn fr strt til t mål gjnnom x. Vi hr n priorittskø PQ v nor, r priorittn går på vrin v f(x Dnn initilisrs m r strtnon s, m g(s=0, og h(s vilkårlig. (Dtt mnglr i slv prosyrskrivlsn i ok, si 725 D non som for øylikkt ikk r i PQ ls i to typr Trnor: Diss hr n forlrpkr i t tr m strtnon som rot (kortst vi til rotntrt. Diss hr ll vært i PQ, og v strtn r t ingn slik trnor. Ustt nor ( vi ikk hr kommt orti så lngt Figur for A* lgoritmn Trnor: Blå PQnor: rønn Ustt nor: ul All nor v hr: h(v: En fst huristikkvri for hvr no g(v: Forløpig kortst vi fr r (fornrr sg forlrpkr: Visr vi tilk til r, ut fr nåværn gvri f(v: g(v + h(v r PQ All nor m pkr fr lå nor, må vær grønn llr lå Slv lgoritmn PQ initilisrs ltså m r strtnon, m g(s = 0 (ll nr r ustt Stgt, som gjnts så lng PQ ikk r tom llr vi trffr n målno: Plukk n st prioritrt non x ut fr PQ (m minst fvri Drsom x r n målno, sluttr hrv lgoritmn g(x og prnt(x ngir kortst vi fr strtnon og n ktull vin (klngs. T ny mist ut v PQ, kll n x, og l n li n trno Dn hr ll nå sin forlrpkr og g(x stt riktig, vis kommr S på ll nor til x lnt ustt nor, og for hvr slik y: Stt g(y = g(x + w(x,y, f(y = g(y + h(y smt prnt(y = x og stt y inn i PQ S på ll nor til x i PQ, og for hvr slik y: Drsom g(y > g(x + w(x,y så stt g(y = g(x + w(x,y og prnt(y= x Vi sr ltså ikk på non til x som r trnor! At t går r krvr t vis som kommr på nst foiln. Algoritmn kn ltså slutt på to måtr: V t PQ lir tom. Dt tyr t t ikk går non vi fr strtnon til n målno V t vi kommr til n målno m, og r g(m lngn v kortst vi fr strtnon til m og prnt(m ngir slv vin. Om h(x = 0 for ll nor, så lir tt ltså Dijkstrs kortstvilgoritm
A*søk går utn tilklgging m monoton h(x Om vi rukr h(x = 0 for ll nor, så lir tt Dijkstrs kortstvilgoritm. V å ruk huristikkn håpr vi å konsntrr oss mr om vin som førr til t mål, slik t lgoritmn går rskr. Mn, vi tr non ut v PQ i n nnn rkkfølg nn i Dijkstrlgoritmn Dtt kunn før til t riktig vilng ikk r kommt inn i n no x når n ts ut v PQ og ovr i trt (slik t vi stig mått gå tilk og opptr g(v og prnt(v for nor y i trt (som hr forltt PQ Hligvis gjlr (proposition 23.3.2 i ok: Om h(x r monoton, så vil vrin v g(x og prnt(x llti h litt riktig i t øylikk x ts ut v PQ ovr i trt. Drm høvr vi lri gå tilk i trt og opptr no. Og lgoritmn lir v smm orn som Dijkstrlgoritmn Bvis på nst foil. Mrk: Dt r n viktig trykkfil på si 724, forml 23.3.7: Dr t står: h(v + h(v skl t stå h(v <= g(v + h(v Figur til vist for t nor hr fått riktig gvri når ts ut v PQ r=v 0 v k v k+1 Vi visr ssnsilt t ll iss må h smm f vri, og rm også smm gvri x lir nå vlgt som nst no som skl ut PQ, og x kn rfor ikk h størr fvri nn v k+1 x=v j Trnor PQ og ustt nor Bvis: Jg mnr vi må ruk inuksjon (ikk i ok: Inuksjonshypots: Stningn gjlr for ll y som r flyttt fr PQ til trt før x. Vi visr t gjlr n også for x. Vi lr gnrlt g*(v vær lngn v kortst vi fr strtnon til non v. Vi sr på situsjonn når x ts ut v PQ, og vi sr på n noskvns P: strtnon = v 0, v 1, v 2,, v j = x som r n kortst vi fr strtnon til x (m lng g*(x Vi ntr t v 0, v 1,, v k (mn ikk v k+1 r litt trnor når x ts ut v PQ. Non v k+1 r ltså i PQ når x lir ttt ut v køn. Ut fr monotonittn vt vi (for i = 0, 1,, j1 g*(v i + h(v i <= g*(v i + h(v i+1 + w(v i, v i+1 Sin kntn fr v i til v i+1 r m i n kortst til v i+1, gjlr g*(v i+1 = g*(v i + w(v i, v i+1 Til smmn gir to sist: g*(v i + h(v i <= g*(v i+1 + h(v i+1 som så gir, v å l i vær k+1, k+2,, j1 g*(v k+1 + h(v k+1 <= g*(v j + h(v j = g*(x + h(x Ut fr inuksjonshypotsn vt vi t g(v k = g*(v k, og rm må også (ut fr ksjonn når v k l ttt ut v PQ g(v k+1 = g*(v k+1, slv om n liggr i PQ Drv hr vi: f(v k+1 = g(v k+1 +h(v k+1 = g*(v k+1 +h(v k+1 <= g*(x+h(x <= g(x+h(x = f(x Hr må imilrti ll <= vær likhtr, llrs vill f(v k+1 < f(x, og vill ikk x litt ttt ut v køn før v k+1. Drv r g*(x+h(x = g(x+h(x og ltså g*(x = g(x. Eksmplr på A*søk (kopirt opp på tr. foil Eksmpl i kp. 23.3.2: Finn kortst løsning i 8spill Figurr si 719 og 727