Sing: Dtministi singl-gnt Atully, tis is otimiztion ov tim wit ist vils Anw W. Moo Posso Sool o Comut Sin Cngi Mllon Univsity www.s.mu.u/~wm wm@s.mu.u -6-7 ot to ot ts n uss o ts slis. Anw woul ligt i you oun tis sou mtil usul in giving you own ltus. Fl to us ts slis vtim, o to moiy tm to it you own ns. PowPoint oiginls vill. I you mk us o signiint otion o ts slis in you own ltu, ls inlu tis mssg, o t ollowing link to t sou ositoy o Anw s tutoils: tt://www.s.mu.u/~wm/tutoils. Commnts n otions gtully iv. Sli Ovviw Dtministi, ist, singl-gnt, s olms Uninom s t Fist S Otimlity, Comltnss, Tim n S omlxity S Ts Dt Fist S Ittiv Dning st Fist Gy S Sli A s olm How o w gt om S to G? An wt s t smllst ossil num o tnsitions? Sli Fomlizing s olm A s olm s iv omonnts:, S, G, sus, ost is init st o stts. S is non-mty st o stt stts. G is non-mty st o gol stts. sus : P() is untion wi tks stt s inut n tuns st o stts s outut. sus(s) mns t st o stts you n om s in on st. ost :, Positiv um is untion wi tks two stts, s n s, s inut. It tuns t on-st ost o tvling om s to s. T ost untion is only in wn s is susso stt o s. Sli Ou S Polm = {,,,,,,,,,,, } S = { } G = { } sus() = { } sus() = {, } sus() = U t. ost(s,s ) = o ll tnsitions Sli Ou S Polm = {,,,,,,,,,,, } S = { } G = { } sus() = { } sus() = {, } sus() = U t. ost(s,s ) = o ll tnsitions Wy o w? Wt olms lik tis? Sli 6
S Polms Mo S Polms Suling -uns Wt nxt? Sli 7 Sli Mo S Polms ut t lnty o tings wi w nomlly ll s olms tt on t it ou Suling igi inition A s olm s iv omonnts:, S, G, sus, ost -uns is init st o stts. S is non-mty st o stt stts. G is non-mty st o gol stts. sus : P() is untion wi tks stt s inut n tuns st o stts s outut. sus(s) mns t st o stts you n om s in on st. ost :, Positiv um is untion wi tks two stts, s n s, s inut. It tuns t on-st ost o tvling om Wt snxt? to s. T ost untion is only in wn s is susso stt o s. Cn you tink o xmls? Ou inition xlus Sli Sli 0 Gm ginst vsy Ou inition xlus Cn Hin Stt t Fist S Continuum (ininit num) o stts All o t ov, lus istiut tm ontol Sli l ll stts tt l om S in st ut n t l in lss tn st. Tn ll ll stts tt l om S in sts ut n t l in lss tn sts. Tn ll ll stts tt l om S in sts ut n t l in lss tn sts. Et until Gol stt. Sli
t-ist S st om stt t-ist S 0 sts om stt 0 sts om stt Sli Sli st om stt t-ist S st om stt t-ist S 0 sts om stt 0 sts om stt sts om stt sts om stt sts om stt Sli Sli 6 st om stt 0 sts om stt t-ist S sts om stt sts om stt sts om stt Sli 7 Rmm t t! Also, wn you ll stt, o t sso stt. Tis o is ll koint. T istoy o ssos is us to gnt t solution t, on you v oun t gol: I v got to t gol. I s I ws t o tis. An I ws t o I ws t. An I ws. so solution t is S G Sli
st om stt koints sts om stt st om stt koints sts om stt 0 sts om stt 0 sts om stt sts om stt sts om stt sts om stt sts om stt Sli Sli 0 Stting t Fist S Fo ny stt s tt w v ll, w ll mm: vious(s) s t vious stt on sotst t om stt to s. On t kt ittion o t lgoitm w ll gin wit V k in s t st o tos stts o wi t sotst t om t stt osts xtly k sts Tn, uing tt ittion, w ll omut V k+, in s t st o tos stts o wi t sotst t om t stt osts xtly k+ sts W gin wit k = 0, V 0 = {} n w ll in, vious() = U Tn w ll in tings on st om t into V. An w ll k going. V 0 Sli Sli V 0 V 0 V V V Sli Sli
V V V V V V V V 0 V 0 Sli Sli 6 t Fist S V 0 := S (t st o stt stts) vious() := I k := 0 wil (no gol stt is in V k n V k is not mty) o V k+ := mty st Fo stt s in V k Fo stt s in sus(s) I s s not ly n ll St vious(s ) := s A s into V k+ k := k+ I V k is mty signl FAIURE Els uil t solution t tus: t S i t it stt in t sotst t. Din S k =, n oll i <= k, in S i- = vious(s i ). V V 0 Suos you s s onvnintly llow you to otin ssos(stt). Cn you tink o int wy to o? An woul you l to voi stoing somting tt w viously to sto? V V V Sli 7 Sli Anot wy: Wok k l ll stts tt n G in st ut n t it in lss tn st. l ll stts tt n G in sts ut n t it in lss tn sts. Et. until stt is. num o sts to gol lls tmin t sotst t. Don t n xt ookking ino. Sli t Fist Dtils It is in o t to mo tn on gol stt. It is in o t to mo tn on stt stt. Tis lgoitm woks ows om t stt. Any lgoitm wi woks ows om t stt is si to ow ining. ou n lso wok kws om t gol. Tis lgoitm is vy simil to Dijkst s lgoitm. Any lgoitm wi woks kws om t gol is si to kw ining. kw vsus ow. Wi is tt? Ckmt xml Sli 0
Costs on tnsitions oti tt ins t sotst t in tms o num o tnsitions. It os not in t lst-ost t. W will uikly viw n lgoitm wi os in t lst-ost t. On t kt ittion, o ny stt S, wit g(s) s t lst-ost t to S in k o w sts. Sli st Cost t Fist V k = t st o stts wi n in xtly k sts, n o wi t lstost k-st t is lss ost tn ny t o lngt lss tn k. In ot wos, V k = t st o stts wos vlus ng on t vious ittion. V 0 := S (t st o stt stts) vious() := I g() = 0 k := 0 wil (V k is not mty) o V k+ := mty st Fo stt s in V k Fo stt s in sus(s) I s s not ly n ll OR i g(s) + Cost(s,s ) < g(s ) St vious(s ) := s St g(s ) := g(s) + Cost(s,s ) A s into V k+ k := k+ I not ll, xit signling FAIURE Els uil t solution t tus: t S k t kt stt in t sotst t. Din S k =, n oll i <= k, in S i- = vious(s i ). Sli Uniom-Cost S A ontully siml o wn t osts on tnsitions It uss ioity uus Pioity uu Rs A ioity uu is t stutu in wi you n inst n tiv (ting, vlu) is wit t ollowing otions: Init-Piuu(P) initilizs t P to mty. Inst-Piuu(P, ting, vlu) insts (ting, vlu) into t uu. Po-lst(P) tuns t (ting, vlu) i wit t lowst vlu, n movs it om t uu. Sli Sli Pioity uu Rs A ioity uu is t stutu in wi you n inst n tiv (ting, vlu) is wit t ollowing otions: Pioity uus n imlmnt in su wy tt t ost o t inst n o otions Fo mo tils, s Knut o Sgwik o silly ny ook wit t wo lgoitms ominntly ing in t titl. Init-Piuu(P) initilizs t P to mty. Inst-Piuu(P, ting, vlu) insts (ting, vlu) into t uu. Po-lst(P) tuns t (ting, vlu) i wit t lowst vlu, n movs it om t uu. O(log(num o tings in ioity uu)) Vy (toug not solutly, inily!) Sli Uniom-Cost S A ontully siml o wn t osts on tnsitions It uss ioity uu P = St o stts tt v n xn o witing xnsion Pioity o stt s = g(s) = ost o gtting to s using t imli y koints. Sli 6 6
Stting Ittions P = { (S,0) } Sli 7 P = { (S,0) } Ittion:. Po lst-ost stt om P. A sussos Sli Ittions Ittions P = { (,), (,), (,) } Ittion:. Po lst-ost stt om P. A sussos Sli P = { (,), (,), (,6) } Ittion:. Po lst-ost stt om P. A sussos Sli 0 Ittions Ittions P = { (,), (,), (,), (,6) } Ittion:. Po lst-ost stt om P. A sussos Sli P = { (,), (,), (,), (,6) } ot wt n : liz tt gtting to vi ws tt tn t viously st-known wy to gt to n so s ioity ws ng Ittion:. Po lst-ost stt om P. A sussos Sli 7
Ittions Ittions P = { (,), (,6), (,), (,6) } Ittion:. Po lst-ost stt om P. A sussos Sli P = { (,6),(,6),(,),(,),(,6) } Ittion:. Po lst-ost stt om P. A sussos Sli Ittions Ittions P = { (,6),(,),(,),(,6) } Ittion:. Po lst-ost stt om P. A sussos Sli P = { (,0), (,),(,) } Ittion:. Po lst-ost stt om P. A sussos Sli 6 Ittions ot wt n : oun nw wy to gt to ut it ws mo ostly tn t st known wy n so s ioity ws unng P = { (,0), (,),(,) } Ittion:. Po lst-ost stt om P. A sussos Sli 7 Ittions P = { (,),(,) } Ittion:. Po lst-ost stt om P. A sussos Sli
Ittions Ittions P = { (,) } Ittion:. Po lst-ost stt om P. A sussos Sli P = { (,) } Ittion:. Po lst-ost stt om P. A sussos Sli 0 Ittions Ittions ustion: Is tmint s soon s you isov t gol t igt stoing ition? P = { (G,) } Ittion:. Po lst-ost stt om P. A sussos Sli P = { (G,) } Ittion:. Po lst-ost stt om P. A sussos Sli tmints P = { } Tmint only on t gol is o om t ioity uu. Els w my miss sot t. Ittion:. Po lst-ost stt om P. A sussos Sli Juging s lgoitm Comltnss: is t lgoitm gunt to in solution i solution xists? Gunt to in otiml? (will it in t lst ost t?) Algoitmi tim omlxity S omlxity (mmoy us) Vils: num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts How woul w jug ou lgoitms? Sli
Juging s lgoitm Juging s lgoitm num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts t vg siz o t ioity uu num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts t vg siz o t ioity uu Algoitm C st Cost t Fist S Uniom Cost S Com Otiml Tim lt i ll tnsitions sm ost S O(log() * min(, )) Algoitm C st Cost t Fist S Uniom Cost S Com Otiml Tim lt i ll tnsitions sm ost S O(log() * min(, )) Sli Sli 6 S T Rsnttion Wt o o w go toug t s t wit? Sli 7 Dt Fist S An ltntiv to. Alwys xn om t mostntly-xn no, i it s ny unti sussos. Els ku to t vious no on t unt t. Sli in tion S t tvsl Cn you w in t o in wi t s-t nos visit? Sli Sli 60 0
Algoitm W us t stutu w ll ll Pt to snt t,, t om t to t unt stt. E.G. Pt P = <,,, > Along wit no on t t, w must mm wi sussos w still v vill to xn. E.G. t t ollowing oint, w ll v P = < (xn=, ), (xn = U), (xn = ), (xn = ) > Algoitm t P = < (xn = sus())> Wil (P not mty n to(p) not gol) i xn o to(p) is mty tn mov to(p) ( o t stk ) ls lt s mm o xn o to(p) mov s om xn o to(p) mk nw itm on t to o t P: s (xn = sus(s)) I P is mty tun FAIURE Els tun t t onsisting o stts in P Tis lgoitm n wittn ntly wit usion, i.. using t ogm stk to imlmnt P. Sli 6 Sli 6 Juging s lgoitm Juging s lgoitm num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts t vg siz o t ioity uu num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts t vg siz o t ioity uu Algoitm C st Cost t Fist S Uniom Cost S Dt Fist S Com Otiml Tim lt i ll tnsitions sm ost S O(log() * min(, )) /A /A Algoitm C st Cost t Fist S Uniom Cost S Dt Fist S Com Otiml Tim lt i ll tnsitions sm ost S O(log() * min(, )) /A /A Sli 6 Sli 6 Juging s lgoitm num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts MAX ngt o longst t om stt to nyw t vg siz o t ioity uu Juging s lgoitm num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts MAX ngt o longst t om stt to nyw t vg siz o t ioity uu Algoitm t Fist S Com Otiml Tim lt i ll tnsitions sm ost S Algoitm Com Otiml Tim lt C st Cost C st Cost Uniom O(log() * min(, )) O(min(, Cost S )) Uniom Cost S O(log() * min(, )) ** Dt Fist O( MAX S ) ** Dt Fist S O( MAX ) Assuming Ayli Assuming Ayli S S Sli 6 S S Sli 66 t Fist S i ll tnsitions sm ost S
ustions to on How woul you vnt om looing? How oul you o it to giv n otiml solution? ustions to on How woul you vnt om looing? How oul you o it to giv n otiml solution? Answ : PC- (Pt Cking ): Don t us on stt i tt stt is ly in t unt t Answ : MEM (Mmoizing ): Rmm ll stts xn so. v xn nyting twi. Sli 67 Sli 6 ustions to on How woul you vnt om looing? How oul you o it to giv n otiml solution? Answ : PC- (Pt Cking ): Don t us on stt i tt stt is ly in t unt t Answ : MEM (Mmoizing ): Rmm ll stts xn so. v xn nyting twi. ustions to on How woul you vnt om looing? A t osions wn PC is tt tn MEM? How oul you o it to giv n otiml solution? A t osions wn MEM is tt tn PC? Answ : PC- (Pt Cking ): Don t us on stt i tt stt is ly in t unt t Answ : MEM (Mmoizing ): Rmm ll stts xn so. v xn nyting twi. Sli 6 Sli 70 MAX Algoitm PC Pt Ck Juging s lgoitm num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts ngt o longst yl- t om stt to nyw t vg siz o t ioity uu t Fist S C st Cost Uniom Cost S MEM Mmoizing Com Otiml Tim lt i ll tnsitions sm ost O(log() * min(, )) O( MAX ) O(min(, MAX )) S O(min(, MAX )) Sli 7 Juging s lgoitm num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts MAX ngt o longst yl- t om stt to nyw Algoitm PC Pt Ck t vg siz o t ioity uu t Fist S C st Cost Uniom Cost S MEM Mmoizing Com Otiml Tim lt i ll tnsitions sm ost O(log() * min(, )) O( MAX ) O(min(, MAX )) S O(min(, MAX )) Sli 7
Juging s lgoitm num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts MAX ngt o longst yl- t om stt to nyw t vg siz o t ioity uu Mz xml Imgin stts lls in mz, you n mov, E, S, W. Wt woul lin o, ssuming it lwys xn t E susso ist, tn, tn W, tn S? Algoitm C st Cost t Fist S Uniom Cost S PC Pt Ck MEM Mmoizing Com Otiml Tim lt i ll tnsitions sm ost O(log() * min(, )) O( MAX ) O(min(, MAX )) S O(min(, MAX )) Sli 7 S Ot ustions: G Exnsion o E,, W, S Wt woul o? Wt woul PC o? Wt woul MEM o? Sli 7 S Two ot xmls G O:, E, S, W? Fow o kw I you v ssos() untion s wll s sussos() untion you n gin t t gol n t-ist-s kws until you it stt. G O:, E, S, W wit loos vnt Wy/Wn migt tis goo i? S Sli 7 Sli 76 Invnt An Algoitm Tim! H s wy to mtilly s osts somtims. iitionl S. Cn you guss wt tis lgoitm is, n wy it n ug ost-sv? num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts MAX ngt o longst yl- t om stt to nyw Algoitm MEM Mmoizing I iition F S t vg siz o t ioity uu t Fist S C st Cost Uniom Cost S PC Pt Ck Com Otiml Tim lt i ll tnsitions sm ost O(log() * min(, )) O( MAX ) O(min(, MAX )) O(min(, / )) S O(min(, MAX )) O(min(, / )) Sli 77 Sli 7
MAX Algoitm C st Cost PC Pt Ck MEM Mmoizing I iition F S num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts ngt o longst yl- t om stt to nyw t vg siz o t ioity uu t Fist S Uniom Cost S Com Otiml Tim lt i ll tnsitions sm ost All tns sm ost O(log() * min(, )) O( MAX ) O(min(, MAX )) O(min(, / )) S O(min(, MAX )) O(min(, / )) Sli 7 Ittiv Dning Ittiv ning is siml lgoitm wi uss s suoutin:. Do wi only ss o ts o lngt o lss. ( givs u ny t o lngt ). I il, o wi only ss ts o lngt o lss.. I il, o wi only ss ts o lngt o lss..n so on until suss Cost is O( + + + + ) = O( ) Cn mu tt tn gul. ut ost n mu gt tn t num o stts. Sli 0 Mz xml Imgin stts lls in mz, you n mov, E, S, W. Wt woul Ittiv Dning o, ssuming it lwys xn t E susso ist, tn, tn W, tn S? S G Exnsion o E,, W, S Sli MAX Algoitm C st Cost PC Pt Ck MEM Mmoizing I iition F S Ittiv ID Dning num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts ngt o longst yl- t om stt to nyw t vg siz o t ioity uu t Fist S Uniom Cost S Com Otiml Tim lt i ll tnsitions sm ost All tns sm ost i ll tnsitions sm ost O(log() * min(, )) O( MAX ) O(min(, MAX )) O(min(, / )) O( ) S O(min(, MAX )) O(min(, / )) O() Sli num o stts in t olm t vg ning to (t vg num o sussos) (>) t lngt o t t om stt to gol wit t sotst num o sts MAX ngt o longst yl- t om stt to nyw Algoitm PC Pt Ck MEM Mmoizing I iition F S Ittiv ID Dning t vg siz o t ioity uu t Fist S C st Cost Uniom Cost S Com Otiml Tim lt i ll tnsitions sm ost All tns sm ost i ll tnsitions sm ost O(log() * min(, )) O( MAX ) O(min(, MAX )) O(min(, / )) O( ) S O(min(, MAX )) O(min(, / )) O() Sli st Fist Gy S s uisti. A uisti untion ms stt onto n stimt o t ost to t gol om tt stt. Cn you tink o xmls o uistis? E.G. o t -uzzl? E.G. o lnning t toug mz? Dnot t uisti y untion (s) om stts to ost vlu. Sli
Huisti S Suos in ition to t stn s siition w lso v uisti. A uisti untion ms stt onto n stimt o t ost to t gol om tt stt. Cn you tink o xmls o uistis? E.G. o t -uzzl? E.G. o lnning t toug mz? Dnot t uisti y untion (s) om stts to ost vlu. Euliin Huisti = = = = = = =6 = = =0 = =6 Sli Sli 6 Euliin Huisti =0 = = = = = = =6 = = =6 = Sli 7 Anot ioity uu lgoitm. ut tis tim, ioity is t uisti vlu. st Fist Gy S Init-Piuu(P) Inst-Piuu(P,,()) wil (P is not mty n P os not ontin gol stt) (s, ) := Po-lst(P) o s in sus(s) i s is not ly in P n s nv viously n visit Inst-Piuu(P,s,(s )) Algoitm stfs st Fist S Com Otiml Tim lt O(min(, MAX )) S O(min(, MAX )) A w imovmnts to tis lgoitm n mk tings mu tt. It s littl ting w lik to ll: A*. to ontinu! Sli Wt you soul know Tooug unstning o, C,. PC, MEM Unstn t onts o wt s is omlt, otiml, its tim n s omlxity Unstn t is in ittiv ning n iitionl s l to isuss t oktil tis t os n ons o t ov ss Sli