Estrtéis Bus m Espços Estos Intliêni Artiiil Bus não inorm Em prouni vriçõs Em lrur Bus inorm Gulos A* Hill-limin Estrtéis Bus m Espços Estos Intliêni Artiiil Bus não inorm Em prouni vriçõs Em lrur Bus inorm Gulos A* Hill-limin 1
Bus m Espço Estos Um ro po sr uso pr rprsntr um spço stos on: Os nós orrsponm situçõs um prolm As rsts orrsponm movimntos prmitios ou çõs ou pssos solução Um o prolm é soluiono nontrno-s um minho no ro Um prolm é inio por Um spço stos (um ro) Um sto (nó) iniil Um onição término ou ritério pr; stos (nós) trminis são quls qu stiszm onição término S não houvr ustos, há intrss m soluçõs minho mínimo No so m qu ustos são iionos os movimntos, normlmnt há intrss m soluçõs usto mínimo O usto um solução é o usto s rsts o lono o minho solução 3 Exmplo: Qur-Cç-8 4
Exmplo: Qur-Cç-8 Estos: posiçõs intirs os quros (inorr posiçõs intrmiáris) Oprors: movr rno pr squr, irit, im, mixo Esto Finl: = sto ornio (únio) Custo o minho: 1 por movimnto 5 Exmplo: 8 Rinhs Estos? Oprors? Esto Finl? Custo o minho? 6 3
Exmplo: 8 Rinhs Esto: qulqur rrnjo 0 8 rinhs no tuliro Opror: iionr um rinh qulqur quro Esto Finl: 8 rinhs no tuliro, sm tqu (múltiplos stos) Custo o minho: zro (pns o sto inl é intrssnt) 7 Exmplo: Missionários Cniis Estos? Oprors? Esto Finl? Custo o minho? 8 4
Exmplo: Missionários Cniis Estos um sto é um squêni orn três númros rprsntno o númro niis, missionários ot n mrm o rio n qul ls iniim Assim, o sto iniil é [3,3,squr] Oprors prtir sto os oprors possívis são: tomr um nil, um missionário, um missionário um nil, ois missionários ou ois niis Há no máximo 5 oprors, mor luns stos tnhm mnos oprors um vz qu s v vitr stos inválios Esto Finl: [3,3,irit] (únio) Custo o minho: númro trvssis 9 Exmplo: Missionários Cniis 10 5
Exmplo: Montm om Roô Estos: oorns vlor rl ânulos s junçõs o roô prts o ojto sr monto Oprors: movimntos ontínuos s junçõs o roô Esto Finl: montm omplt (únio) Custo o minho: tmpo pr montm 11 Exmplo: Pilh Bloos Consir o prolm nontrr um plno (strtéi) pr rrrnjr um pilh loos omo n iur Somnt é prmitio um movimnto por vz Um loo somnt po sr movio s não há n m su topo Um loo po sr oloo n ms ou im outro loo C A B? A B C 1 6
Exmplo: Pilh Bloos N situção iniil o prolm, há pns um movimnto possívl: olor loo C n ms Dpois qu C oi oloo n ms, há três ltrntivs Color A n ms ou Color A im C ou Color C im A (movimnto qu não v sr onsiro pois rtorn um situção ntrior o prolm) A? A B B C C 13 Exmplo: Pilh Bloos sto iniil C A B B A C A B C A B C C B A B A C A B C C A B B C A B A C C A B A B C A C B 14 7
Espço Estos Árvor ou Gro? Nst so, um ro po sr trnsormo m um árvor, om um msmo nó oorrno m irnts suárvors, inino qu s po pssr por um sto por irnts minhos prtir o nó iniil (riz). 15 Bus m Espço Estos Estrtéis Básis Bus (Uniorm, Exustiv ou C) não utiliz inormçõs sor o prolm pr uir us strtéi us xustiv pli té um solução sr nontr (ou lhr) Prouni (Dpth-irst) Prouni limit (Dpth-irst Limit) Lrur (Brth-irst) Biirionl Estrtéis Hurístis Bus (Bus Inorm) utiliz inormçõs spíis o omínio pr jur n isão Gulos A* 16 8
Prurso m Prouni Insrir n rnt, rmovr rnt: 17 Prurso m Prouni Insrir n rnt, rmovr rnt:, 18 9
Prurso m Prouni Insrir n rnt, rmovr rnt:,, 19 Prurso m Prouni Insrir n rnt, rmovr rnt: h,, 0 10
Prurso m Prouni Insrir n rnt, rmovr rnt:, 1 Prurso m Prouni Insrir n rnt, rmovr rnt: i, j, 11
Prurso m Prouni Insrir n rnt, rmovr rnt: j, 3 Prurso m Prouni Insrir n rnt, rmovr rnt: 4 1
Prurso m Prouni Insrir n rnt, rmovr rnt:, 5 Prurso m Prouni Insrir n rnt, rmovr rnt: k, 6 13
Prurso m Prouni Insrir n rnt, rmovr rnt: 7 Bus m Espço Estos O prorm us srá implmnto omo rlção: rsolv(iníio,soluo) on Iníio é o nó iniil no spço stos Soluo é um minho ntr Iníio qulqur nó inl. 8 14
Bus m Prouni Esto iniil: Estos inis: j,?- rsolv(, Soluo). Soluo = [,,,j] Após ktrkin, outr solução é nontr: [,,] 9 Bus m Espço Estos Vmos rprsntr um spço stos pls rlçõs s(x,y) qu é vrir s há um movimnto prmitio no spço stos o nó X pr o nó Y; nst so, Y é um sussor X inl(x) qu é vrir s X é um sto inl S houvr ustos nvolvios, um triro rumnto srá iiono: o usto o movimnto s(x,y,custo) A rlção s po sr rprsnt xpliitmnt no prorm por um onjunto tos Entrtnto, pr spços sto omplxos, rlção s é usulmnt ini impliitmnt trvés rrs qu prmitm lulr o sussor um o nó 30 15
Exríio: prt 1 Rprsnt o spço stos o lo! 31 Exríio: prt 1 s(x, Y) :- rst(x, Y). rst(, ). rst(, ). rst(, ). rst(, ). rst(, ). rst(, ). rst(, h). rst(, i). rst(, j). rst(, k). inl(j). inl(). 3 16
Exríio: prt Implmnt m Prolo us m prouni, orm qu, prtir um nó iniil, rtorn o minho solução. 33 Bus m Prouni Pr nontrr Soluo prtir um nó N (té um nó inl): S N é um nó inl, ntão Soluo = [N] S N tm um sussor N1, tl qu há um minho N1 um nó inl, ntão Soluo = [N Cminho N1 no_inl] (orm invrs) Em Prolo: rsolv(n,[n]) :- inl(n). rsolv(n,[n Cminho]) :- s(n,n1), rsolv(n1,cminho). % lnçou mt % ç um movimnto válio % rursivi A us m prouni é mis nturl quno s us rursão 34 17
Bus m Prouni rsolv(n, [N]) :- inl(n). rsolv(n, [N Cminho]) :- s(n, N1), rsolv(n1, Cminho). s(n, N1) :- rst(n, N1). rst(, ). rst(, ). rst(, ). rst(, ). rst(, ). rst(, ). rst(, h). rst(, i). rst(, j). rst(, k). inl(j). inl(). 35 Bus m Prouni: Cilos 36 18
Bus m Prouni: Cilos 37 Bus m Prouni: Cilos 38 19
Bus m Prouni rsolv(n, [N]) :- inl(n). rsolv(n, [N Cminho]) :- s(n, N1), rsolv(n1, Cminho). s(n, N1) :- rst(n, N1). rst(, ). rst(, ). rst(, ). rst(, ). rst(, ). rst(, ). rst(, h). rst(h, ). rst(, i). rst(, j). rst(, k). inl(j). inl(). 39 Bus m Prouni?- rsolv(, Soluo). ERROR: Out o lol stk Exption: (340,306) rsolv(h, _G10097)? Como rsolvr? 40 0
Bus m Prouni: sm ilos % rsolv(no,soluo) Soluo é um minho ílio (n orm % rvrs) ntr nó iniil No um solução rsolv(no,soluo) :- pthfirst([],no,soluo). % pthfirst(cminho,no,soluo): No é o sto prtir o qul s qur lnçr o sto inl; Cminho é o minho s o sto iniil té No; Soluo é o Cminho té um nó inl, stnio om No. pthfirst(cminho,no,[no Cminho]) :- inl(no). pthfirst(cminho,no,soluo) :- s(no,no1), \+ prtn(no1,cminho), % vit ilo pthfirst([no Cminho],No1,Soluo). prtn(e,[e _]). prtn(e,[_ T]) :- prtn(e,t). 41 Bus m Prouni Rpr qu o ktrkin o Prolo z om qu não sj nssário o uso um pilh pr urr os stos ntriors Um prolm om us m prouni é qu xistm spços sto nos quis o loritmo s pr: quno há rmos ininitos no spço stos O loritmo ntão xplor st prt ininit o spço, nun hno prto um nó inl Por xmplo, o prolm s 8 Rinhs é sustívl st tipo rmilh, ms omo o spço é inito, s rinhs pom sr olos m surnç no tuliro, ou sj, um solução é nontr Pr vitr minhos ininitos, um rinmnto po sr iiono à us m prouni: limitr prouni us 4 1
Bus m Prouni Limit (L=0) Insrir n rnt, rmovr rnt: 43 Bus m Prouni Limit (L=1) Insrir n rnt, rmovr rnt: 44
Bus m Prouni Limit (L=1) Insrir n rnt, rmovr rnt:, 45 Bus m Prouni Limit (L=1) Insrir n rnt, rmovr rnt: 46 3
Bus m Prouni Limit (L=) Insrir n rnt, rmovr rnt: 47 Bus m Prouni Limit (L=) Insrir n rnt, rmovr rnt:, 48 4
Bus m Prouni Limit (L=) Insrir n rnt, rmovr rnt:,, 49 Bus m Prouni Limit (L=) Insrir n rnt, rmovr rnt:, 50 5
Bus m Prouni Limit (L=) Insrir n rnt, rmovr rnt: 51 Bus m Prouni Limit (L=) Insrir n rnt, rmovr rnt:, 5 6
Bus m Prouni Limit (L=) Insrir n rnt, rmovr rnt: 53 Bus m Prouni Limit % rsolv(no,soluo,l) Soluo é um minho ílio omprimnto L % (n orm rvrs) ntr nó iniil No um solução rsolv(no,soluo,l) :- pthfirstlimit([],no,soluo,l). % pthfirstlimit(cminho,no,soluo,l) stn o minho % [No Cminho] té um nó inl otno Soluo om % prouni não mior qu L pthfirstlimit(cminho,no,[no Cminho],_) :- inl(no). pthfirstlimit(cminho,no,soluo,l) :- L > 0, % limit us s(no,no1), /+ prtn(no1,cminho), % vit um ilo L1 is L - 1, pthfirstlimit([no Cminho],No1,Soluo,L1). 54 7
Bus m Prouni Limit Um prolm om us m prouni limit é qu não s tm prvimnt um limit rzoávl S o limit or muito pquno (mnor qu qulqur minho té um solução) ntão us lh S o limit or muito rn, us s torn muito omplx Pr rsolvr st prolm, us m prouni limit po sr xut orm itrtiv, vrino o limit: om om um limit prouni pquno umnt rulmnt o limit té qu um solução sj nontr Est téni é nomin us m prouni itrtiv 55 Sntio Bus Bus orwr us kwr Em muitos prolms o ojtivo stá pns implíito (x. plvrs ruzs) Existm sos m qu mos os nós iniil ojtivo são onhios Movr o sto iniil pr o sto inl ou vivrs Bus kwr é mis iint quno o númro possívis minhos o nó ojtivo pr o nó iniil é mnor qu o númro possívis minhos no sntio ontrário Movr m ms s irçõs (us iirionl) 56 8
Bus Biirionl 57 Bus m Lrur Em ontrst om us m prouni, us m lrur solh primiro visitr quls nós mis próximos o nó iniil O loritmo não é tão simpls, pois é nssário mntr um onjunto nós nitos ltrntivos não pns um únio, omo n us m prouni Além isso, só o onjunto não é suiint s o minho solução tmém or nssário Assim, o invés mntr um onjunto nós nitos, é nssário mntr um onjunto minhos nitos 58 9
Bus m Lrur Insrir no inl, rmovr rnt: 59 Bus m Lrur Insrir no inl, rmovr rnt:, 60 30
Bus m Lrur Insrir no inl, rmovr rnt:,, 61 Bus m Lrur Insrir no inl, rmovr rnt:,,, 6 31
Bus m Lrur Insrir no inl, rmovr rnt:,,, h 63 Bus m Lrur Insrir no inl, rmovr rnt:,, h, i, j 64 3
Bus m Lrur Insrir no inl, rmovr rnt:, h, i, j, k 65 Bus m Lrur Insrir no inl, rmovr rnt: h, i, j, k 66 33
Bus m Lrur Insrir no inl, rmovr rnt: i, j, k 67 Bus m Lrur Insrir no inl, rmovr rnt: j, k 68 34
Bus m Lrur Insrir no inl, rmovr rnt: k 69 Bus m Lrur Esto iniil: Estos inis: j, Nós visitos n orm:,,,,, A solução mis urt [,,] é nontr nts mis lon [,,,j] 70 35
Bus m Lrur m Prolo rthfirst(cminhos,solução) é vriro s lum minho prtir o onjunto nitos Cminhos po sr stnio pr um nó inl; Solução é o minho stnio O onjunto minhos nitos srá rprsnto omo um list minhos minho srá um list nós n orm rvrs A us inii om um onjunto um únio nito: [ [iníio] ] O loritmo é o suint: S ç o primiro minho é um nó inl ntão st minho é um solução; so ontrário Rmov o primiro minho o onjunto nitos r o onjunto tos s xtnsõs m um psso prtir st minho; iion st onjunto xtnsõs o inl o onjunto nitos xut us m lrur pr tulizr st onjunto 71 Bus m Lrur Com om o onjunto nitos iniil [ [] ] Gr xtnsõs [] (not qu stão m orm rvrs) tst 1o. nó o 1o. minho: [ [,], [,] ] Rmov o primiro nito [,] o onjunto nitos r xtnsõs st minho, iionno-s o inl o onjunto nitos [ [,], [,,], [,,] ] Rmov [,] iion s xtnsõs o inl [ [,,], [,,], [,,], [,,] ] Estnno [,,] [ [,,], [,,], [,,], [h,,,] ] Estnno [,,] [ [,,], [,,], [h,,,], [i,,,], [j,,,] ] A us nontr [,,] qu ontém um nó inl, portnto o minho é rtorno omo um solução s(n, N1) :- rst(n, N1). rst(, ). rst(, ). rst(, ). rst(, ). rst(, ). rst(, ). rst(, h). rst(h, ). rst(, i). rst(, j). rst(, k). inl(j). inl(). 7 36
Bus m Lrur Implmntr us m lrur m Prolo 73 Bus m Lrur % rsolv(no,soluo) Soluo é um minho ílio % (n orm rvrs) ntr nó iniil No um solução rsolv(no,soluo) :- rthfirst([[no]],soluo). % rthfirst([cminho1,cminho,...],soluo), Soluo é um % xtnsão pr um nó inl um os minhos rthfirst([[no Cminho] _],[No Cminho]) :- inl(no). rthfirst([cminho OutrosCminhos],Soluo) :- stnr(cminho,novoscminhos), ontnr(outroscminhos,novoscminhos,cminhos1), rthfirst(cminhos1,soluo). stnr([no Cminho],NovosCminhos) :- inll([novono,no Cminho], (s(no,novono), /+ prtn(novono,[no Cminho])), NovosCminhos). 74 37
Bus m Lrur inll(+trmo, +Mt,-List) Finll/3 us n s por tos s oorrênis o Trmo qu stiszm à Mt, rtorn s instânis m um list não orn ontno tmém s rptiçõs. Exs: ost(mri, joo). ost(n, pro). ost(lr, joo).?-inll(x, ost(x,joo), List). List = [mri, lr] 75 Bus m Lrur rsolv(no,soluo) :- rthfirst([[no]],soluo). rthfirst([cminho OutrosCminhos],Soluo) :- stnr(cminho,novoscminhos), ontnr(outroscminhos,novoscminhos,cminhos1), rthfirst(cminhos1,soluo). stnr([no Cminho],NovosCminhos) :- inll([novono,no Cminho], (s(no,novono), not prtn(novono,[no Cminho])), NovosCminhos). s(, X):- rst(,x). rst(,). rst(,). =============================================================================?-rsolv([[]], Soluo). => rthfirst([[] []], Soluo) %Cminho = []; Cminhos=[] => stnr([], NovoCminhos) => inll([novono, []], s(, NovoNo), /+ prtn(novono, [ []], NovosCminhos) => NovosCminhos= [[,],[,]] => ontnr ([],[[,],[,]], Cminhos1) => Cminhos1=[[,], [,]] => rthfirst([[,],[,]], Soluo)... 76 38
Aloritmos Bus São vlios pls suints imnsõs: Complxi tmpo númro xpnsõs nós Complxi spço - númro máximo nós n mmóri Compltz - o loritmo smpr nontr um solução s l xist? Amissiili - um loritmo é missívl s l rnt nontrr um solução ótim, quno l xist 77 Complxi os Aloritmos Bus = númro minhos ltrntivos/tor iurção/rmiição (rnhin tor) = prouni solução h = prouni máxim árvor us l = limit prouni Tmpo Espço Amissívl? (solução mis urt) Prouni O( h ) O(h) Não Complt? (nontr um solução quno l xist) Sim (spços initos) Não (spços ininitos) Prouni limit O( l ) O(l) Não Sim s l Lrur O( ) O( ) Sim Sim Biirionl O( / ) O( / ) Sim Sim 78 39
Bus Inorm A us m ros po tinir um omplxi lv vio o númro ltrntivs Estrtéis us inorm utilizm inormção hurísti sor o prolm pr nurtr us no spço stos Ess stimtiv ini o qunto o nó é promissor om rlção tinir mt stli 79 Bus Inorm Estrtéis us hurísti utilizm onhimnto spíio o prolm n solh o próximo nó sr xpnio plim um unção vlição nó n rontir o spço stos. Ess unção vlição stim o usto minho o nó tul o ojtivo mis próximo utilizno um unção hurísti Qul os nós supostmnt é o mis próximo o ojtivo 80 40
Bus Inorm Função hurísti h(n) stim o usto o minho ntr o nó n o ojtivo pn o prolm Exmplo: nontrr rot mis urt ntr São Crlos Porto Alr h (n) = istâni irt ntr o nó n o nó inl. Como solhr um o unção hurísti? l v sr missívl i.., nun suprstimr o usto rl solução h(n) h* (h* é o usto rl solução) Distâni irt (h ) é missívl porqu o minho mis urto ntr ois pontos é smpr um linh rt 81 Bus Inorm O nó mnor usto n rontir o spço stos é xpnio primiro Dus orns ásis st-irst srh: 1. Bus Gulos (Gry srh). Aloritmo A* 8 41
Bus Gulos Smlhnt à us m prouni om ktrkin Tnt xpnir o nó mis próximo o nó inl om s n stimtiv it pl unção hurísti h Custo us é minimizo não xpn nós or o minho Esolh o minho qu é mis onômio à primir vist Não é ótim... (smlhnt à us m prouni) porqu só olh pr o uturo!... nm é omplt: po ntrr m loop s não ttr xpnsão stos rptios po tntr snvolvr um minho ininito Custo tmpo mmóri: O() ur toos os nós xpnios n mmóri 83 Bus Gulos Distâni m linh rt pr Buhrst: 84 4
Bus ulos O qu ontu? Por qu não solhu o mlhor minho? 85 Exríio m upls Implmntr us ulos 86 43
Consirno tmém o minho psso... Vmos ssumir qu há um usto nvolvio ntr ro: s(x,y,c) é vrir s há um movimnto prmitio no spço stos o nó X pr o nó Y, usto C; nst so, Y é um sussor X Sjm os um nó iniil s um nó inl t Sj o stimor hurístio unção tl qu, pr nó n no spço, (n) é stimtiv o usto o minho mis rto s té t, vi n. s n t 87 Consirno tmém o minho psso... A unção (n) srá onstruí omo: (n) = (n) + h(n) (n) é um stimtiv o usto o minho ótimo s té n h(n) é um stimtiv o usto o minho ótimo n té t s (n) n h(n) t 88 44
Consirno tmém o minho psso... Quno um nó n é nontro plo prosso us tmos suint situção Um minho s té n já oi nontro su usto po sr lulo omo som os ustos os ros no minho Est minho não é nssrimnt um minho ótimo s té n (po xistir um minho mlhor s té n in não nontro pl us) ms su usto srv omo um stimtiv (n) o usto mínimo s té n O outro trmo, h(n) é mis prolmátio pois o muno ntr n t não oi in xploro Portnto, h(n) é tipimnt um hurísti, s no onhimnto rl o loritmo sor o prolm m qustão Como h pn o omínio o prolm, não há um métoo univrsl pr onstruir h 89 Aloritmo A* A* xpn o nó mnor vlor n rontir o spço stos. Olh o uturo sm squr o psso! S h é missívl, (n) nun irá suprstimr o usto rl mlhor solução trvés n. (n) * (* é o usto ótimo) Nst so, po-s nontrr rot to mis urt ntr Ar Burst. 90 45
Aloritmo A* Distâni m linh rt pr Buhrst: 449 75 + 374 118 + 39 447 0 39 366 393 413 317 140 + 53 417 415 455 496 336 + 160 418 39 + 178 0 + 193 317 + 98 91 A* É onvnint rlmrr qu um strtéi us é ini por mio orm xpnsão os nós Em strtéis us st-irst (o mlhor primiro), iéi ási é prossuir om us smpr prtir o nó mis promissor Bst-First é um rinmnto us m lrur Ams strtéis omçm plo nó iniil mntêm um onjunto minhos nitos Bus m lrur xpn o minho nito mis urto Bst-First rin st prinípio lulno um stimtiv hurísti pr nito solh xpnir o mlhor nito suno st stimtiv 9 46
A* O prosso us po sr visto omo um onjunto su-prossos, um xplorno su própri ltrntiv, ou sj, su própri su-árvor Su-árvors têm su-árvors qu são xplors por su-prossos os su-prossos, t. Dntr toos os prossos pns um nontr-s tivo momnto: qul qu li om ltrntiv tul mis promissor (qul om mnor vlor ) Os prossos rstnts urm silniosmnt té qu stimtiv tul s ltr lum outr ltrntiv s torn mis promissor Então, tivi é omut pr st ltrntiv 93 A* Distâni ntr us is trvés um minho (roovi) s 5 7 5 4 4 4 Distâni ntr i m qustão i stino (t) m linh rt 3 3 3 t 94 47
A* Do um mp, o ojtivo é nontrr o minho mis urto ntr i iniil s i stino t Pr stimr o usto o minho rstnt i X té i t utilizrmos istâni m linh rt not por ist(x,t) (X) = (X) + h(x) = = (X) + ist(x,t) 3 s 4 5 3 3 7 5 4 4 t 95 A* Nst xmplo, pomos iminr us st-irst onsistino m ois prossos, um xplorno um os minhos ltrntivos Prosso 1 xplor o minho vi Prosso xplor o minho vi 3 s 4 5 3 3 7 5 4 4 t 96 48
A* ()=()+ist(,t)=+5=7 ()=()+ist(,t)=+7=9 Como o vlor- é mnor o qu, o prosso 1 (us vi ) prmn tivo nqunto o prosso (us vi ) i m sto spr 3 s 4 5 3 3 ()=7 4 7 ()=9 5 4 t 97 A* ()=()+ist(,t)=+5=7 ()=()+ist(,t)=+7=9 Como o vlor- é mnor o qu, o prosso 1 (us vi ) prmn tivo nqunto o prosso (us vi ) i m sto spr ()=()+ist(,t)=4+4=8 3 s 4 5 3 3 7 ()=7 4 ()=8 ()=9 5 4 t 98 49
A* ()=()+ist(,t)=+5=7 ()=()+ist(,t)=+7=9 Como o vlor- é mnor o qu, o prosso 1 (us vi ) prmn tivo nqunto o prosso (us vi ) i m sto spr ()=()+ist(,t)=4+4=8 s 4 5 ()=7 4 7 ()=9 5 4 ()=()+ist(,t)=6+4=10 Como ()<() or o prosso prossu pr i ()=10 3 3 3 ()=8 t 99 A* ()=()+ist(,t)=7+4=11 Como ()>() or o prosso spr o prosso 1 prossu s 5 ()=7 7 ()=9 5 4 4 ()=11 4 ()=10 3 ()=8 3 3 t 100 50
A* ()=()+ist(,t)=7+4=11 Como ()>() or o prosso spr o prosso 1 prossu ()=()+ist(,t)=9+3=1 Como ()>() o prosso rinii s 5 4 ()=10 3 7 ()=7 4 ()=8 ()=9 5 ()=11 4 3 ()=1 3 t 101 A* ()=()+ist(,t)=7+4=11 Como ()>() or o prosso spr o prosso 1 prossu ()=()+ist(,t)=9+3=1 Como ()>() o prosso rinii hno té o stino t ()=()+ist(,t)=9+=11 s 5 4 ()=10 3 3 3 ()=1 7 ()=9 5 ()=7 ()=11 4 4 ()=8 ()=11 t 10 51
A* ()=()+ist(,t)=7+4=11 Como ()>() or o prosso spr o prosso 1 prossu ()=()+ist(,t)=9+3=1 Como ()>() o prosso rinii hno té o stino t ()=()+ist(,t)=9+=11 (t)=(t)+ist(t,t)=11+0=11 s 5 4 ()=10 3 3 3 ()=1 7 ()=9 5 ()=7 ()=11 4 4 ()=8 ()=11 t (t)=11 103 A* A us, omçno plo nó iniil ontinu rno novos nós sussors, smpr xpnino n irção mis promissor oro om os vlors- Durnt st prosso, um árvor us é r tno omo riz o nó iniil o loritmo st-irst ontinu xpnino árvor us té qu um solução sj nontr 104 5
A* s ()=7 ()=9 105 A* s ()=7 ()=9 ()=8 106 53
A* s ()=7 ()=9 ()=8 ()=10 107 A* s ()=7 ()=9 ()=8 ()=11 ()=10 108 54
A* s ()=7 ()=9 ()=8 ()=11 ()=10 ()=1 109 A* s ()=7 ()=9 ()=8 ()=11 ()=10 ()=11 ()=1 110 55
A* s ()=7 ()=9 ()=8 ()=11 ()=10 ()=11 ()=1 t (t)=11 111 O qu us ulos ri? s 5 7 5 4 4 4 3 3 3 t 11 56
Aloritmo A* : nális o omportmnto Custo tmpo: xponnil om o omprimnto solução, porém os unçõs hurístis iminum siniitivmnt ss usto Custo mmóri: O () ur toos os nós xpnios n mmóri pr possiilitr o ktrkin Eiiêni ótim só xpn nós om (n) *, on * é o usto o minho ótimo é não rsnt nnhum outro loritmo ótimo rnt xpnir mnos nós. 113 Exríio m upls Implmntr us A* Tnt ltrr implmntção us ulos 114 57
Bus lol Até or, vimos métoos us qu xplorm o spço us sistmtimnt Muits vzs, urm o minho pr solução S o minho não intrss, loritmos us lol são útis Consirm somnt o sto tul Movm-s pr stos vizinhos o sto tul Usm pou mmóri Pom nontrr um o solução m spços us rns ou ininitos, nos quis s uss sistmátis lhrim Útis m prolms sin iruitos intros, lyout hão ári, otimizção rs tlomuniçõs, prolms otimizção m rl, t. 115 Hill-Climin É omo slr o mont Evrst m um nvoiro nso om mnési É omo usr óulos qu limitm su visão 3 mtros Hill-Climin: unção vlição é vist omo quli Tmém onhio omo rint snnt 116 58
Hill-Climin Aloritmo Esolh um sto iniil o spço us orm ltóri Consir toos os vizinhos (sussors) no spço us Esolh o vizinho om mlhor quli mov pr qul sto Rpit os pssos té 4 té qu toos os stos vizinhos tnhm mnos quli qu o sto tul Rtorn o sto tul omo sno solução S há mis um vizinho om mlhor quli: Esolhr o primiro mlhor Esolhr um ntr toos orm ltóri 117 Hill-Climin unção vlição máximo lol sto tul spço stos 118 59
Hill-Climin unção vlição omro máximo lol máximo lol máximo lol plno sto tul spço stos 119 Hill-Climin: Prolms Máximo lol: um vz tinio, o loritmo trmin msmo qu solução stj lon sr stistóri Pltôs (riõs plns): riõs on unção vlição é ssnilmnt pln; us torns omo um minh ltóri Cums ou omros : riõs qu são lnçs ilmnt ms té o topo unção vlição rs orm mn; us po tornr-s mor 10 60
Hill-Climin: Anális O loritmo é omplto? SIM, um vz qu nó trto plo loritmo é smpr um sto omplto (um solução) O loritmo é ótimo? TALVEZ, quno itrçõs suiints orm prmitis... O susso st métoo pn muito o ormto supríi o spço stos: S há pouos máximos lois, o riníio ltório nontr um o solução rpimnt 11 Hill-Climin % rsolv(no,soluo) Soluo é um minho % ílio (n orm rvrs) ntr nó % iniil No um solução % l(n,f/g) not o nó N om vlors F=(n) % G = (N) rsolv(no,soluo) :- hilllimin([],l(no,0/0),soluo). hilllimin(cminho,l(no,f/g),[no Cminho]) :- inl(no). hilllimin(cminho,l(no,f/g),s) :- inll(no1/custo, (s(no,no1,custo),\+ prtn(no1,cminho)), Vizinhos ), vli(g,vizinhos,vizinhosavlios), mlhor_quli(vizinhosavlios,mlhorno), hilllimin([no Cminho],MlhorNo,S). mlhor_quli([no Nos],Mlhor) :- minimo_(nos,no,mlhor). minimo_([],no,no). minimo_([no Nos],MinAtul,Min) :- t(no,minatul),!, minimo_(nos,minatul,min). minimo_([no Nos],MinAtul,Min) :- minimo_(nos,no,min). t(l(_,f1/_),l(_,f/_)) :- F1 > F. vli(_,[],[]). vli(g0,[no/custo NoAvlios],[l(No,F/G) Avlios]) :- G is G0 + Custo, h(no,h), % H = h(no) unção hurísti F is G + H, vli(g0,noavlios,avlios). 1 61
Hill-limin Exmplo prolm Trução utomáti 13 Exríio Implmntção m prolo o prolm o joo 8-puzzl Rprsntção o sto Bus inorm Função vlição 14 6