A Gntl Introution to Aloritms: Prt III Contnts o Prt I: 1. Mr: (to mr two sort lists into sinl sort list.). Bul Sort 3. Mr Sort: 4. T Bi-O, Bi-Θ, Bi-Ω nottions: symptoti ouns Contnts o Prt II: 5. Bsis o nlysis o omplxity 5.1. Itrtions 5.. Rurrns W in tis stion wit n xmpl tt sows wy it is importnt to sin oo loritms. Hvin stlis tis, w will mov on to stuy t most ommon tniqus us in vlopin loritms or vrious prolms. Ts inlu itrtion, rursion, ivi-n-onqur, ry, n ynmi prormmin. I will try to iv xmpls o tkn rom spts o M Sys Dsin, tou, s I si, ts r vry ommon vrywr. 6. Importn o loritms T Mximum ontiuous su-rry prolm. Tis prolm n mol s ollows: Givn n rry A = [1,, n], in t sum Sij = sum( A[i] + + A[j]) Fin: (i, j) su tt S(i, j) Applitions: T prolm s svrl pplitions, or xmpl, to omput prios o mximum nt xpnss or sin prtmnt. Sin A[i],,A[j] is su-rry o A, w ll tis t mximl su-rry (MS) prolm. Lt s try simpl, rut-or loritm or MS: Aloritm: MS-rut ( A) 1. S = Smx = = = 0;. or i = 1 to n {.1 or j = i to n {. S = lultsum( A, i, j);.3 i (S > Smx) { Smx = S; = i; = j; 3. rturn Smx,, ; Anlysis o MS-rut: stp 1: onstnt tim. stp : T two or loops xut n tims, n tim ty run stp.. stp.. lultsum tks worst s n units o tim to lult t sum o t su-rry A[i] A[j]. Tus, worst s tim or stp is Θ(n 3 ). stp 3. rturns t inxs n vlu o t mximl su-rry, in onstnt tim.
Now w try to it smrtr. Noti t work on y t lultsum untion tim tt t inx j is inrmnt. For xmpl, wn i=1, w n to omput, in squn, S(1, 1), tn S(1, ), tn S(1, 3) till S(1, n). But S(i, j) = S(i, j-1) + A[j]. Tror, w n moiy t loritm to r-us t prviously omput vlu o t sum in stp, to t ttr loritm. Aloritm: MS-rus ( A) 1. Smx = = = 0;. or i = 1 to n {.1 S = 0;. or j = i to n {.3 S = S + A[j];.4 i (S > Smx) { Smx = S; = i; = j; 3. rturn Smx,, ; Anlysis o MS-rus: Noti tt t stps.3 n.4 only rquir onstnt tim now. Ts r omput Θ(n ) tims, ivin totl omplxity o Θ(n ). Cn w o vn ttr? Lt us try ivi-n-onqur loritm. Now w will n to o som plnnin to st it up. T ivi stp is sy: rk t rry into two (rouly) qul lvs: L = A[1,,m ] n R = A[m+1,, n], wr m = (n+1)/. Tr r tr possiilitis: (i) Smx or A lis ntirly in L; (ii) Smx or A lis ntirly in R; n (iii) Smx is m up o two omponnts, pritl-sum-lt, PL = A[, m] n prtil-sum-rit, PR = A[m+1,, ]. Lt s ous on t tir possiility, in prtiulr ow to omput SL (or SR): Clrly tis n on in O(m) tim s ollows: untion inltsum( A, m) 1. PL = PLmx = 0;. or i = m to 1 {.1. PL = PL + A[i];.. i (PL Similrly untion inritsum n in, wi lso runs in O(m) tim. Exmpl: A = [ 1, -5,4,, -, 3, 6, -1,, -4,, -,, 6, 1, -3]; ( n = 16) L = [ 1, -5,4,, -, 3, 6, -1 ], R = [, -4,, -,, 6, 1, -3]; I mx-sum lis ntirly in L, w n in it s: 6+3 = (s t lmnts in r olor). I mx-sum lis ntirly in R, w n in it s: +6+1 = (s t lmnts in r olor).
I mx sum is m up rom sris spnnin ross L n R, tn: PL =, (s r portions) rom: [ 1, -5,4,, -, 3, 6, -1 ] PR = 5, (s r portions) rom [, -4,, -,, 6, 1, -3]; n t mximl sum o tis mi portion = PL + PR = 13. Tus t ist o ts tr is t rquir nswr, nmly Smx = 13. Now w r ry to writ our MS-_n_ loritm: Aloritm: MS-_n_( A, i, j) 1. m = (i+j)/ ;. i ( i == j) rturn A[i]; ls.1. LS = MS-_n_( A, 1, m);.. RS = MS-_n_( A, m+1, n);.3. MS = inltsum( A, m) + inritsum( A, m); 3. rturn mx( LS, RS, MS). Anlysis o MS-_n_: Lt T(n) not t tim rquir to run MS-_n_ on input o siz n; Stp 1: onstnt tim; Stps.1 n.. rquir T(n/) Stp.3 rquirs O(n) tim, s isuss ov. Stp 3. onstnt tim. Tror w n writ: T(n) = T(n/) + O(n), n so (s t nots on rurrns) tt T(n) = O(n l n). So w s tt wit just littl tout, w v mn to ru rut or O(n 3 ) loritm to simpl O(n l n) on. Wit som intllint insits, w n somtims o ttr still, s w sll s in inl ttmpt to solv tis prolm. Din T(i) = A[1] + + A[i]. Tn: S(i, j) = T(j) T( i-1) [Wy?] Consir S(i, j): or ix j, S(i, j) will mximum wn T(i-1) is minimum. Tis ivs us int or linr tim loritm tt mrs ross t rry, n kps uptin t st urrnt solution till it rs t n. Lt us look t t ort involv in t i-t stp o tis loritm: Prprtion: w n omput n stor, in O(n) ll lmnts T[i] o t rry T. (i) At t n o itrtion (i-1), w know Smx(i-1) n Tmin(i-1). (ii) T[i] = T[i-1] + A[j]; (iii) MS(i) = T[i] Tmin(i-1) (iv) i T[i] < Tmin(i-1), tn upt Tmin = T[i] (v) I Smx < MS(i), tn upt t Smx = MS(i); E o ts stps tks onstnt tim, n tror t totr ty tk onstnt tim. Tror t ovrll loritm runs in O(n) tim! Hr is t psuo-o:
Aloritm: MS-linr( A) 1. T = A[1]; Smx = A[1]; Tmin = min( 0, T);. or i = to n {.1. T = T + A[j]; i ( (T Tmin) > Smx) Smx = (T Tmin); i (T < Tmin) Tmin = T 3. rturn Smx; Tis xmpl monstrts utiully wy it is ssntil to put mor tout in t sin o loritms. Rll tt vn n rom O(n ) to O(n l n) mks trmnous irn in t siz o input w n nl. T ov xmpl is mu mor rmti. Not: Tis prolm is ll t mximl su-rry prolm, n oo rrn to it is Jon Bntly s ook, Prormmin Prls.]. Grps Up till now, w v mn to stuy prolms wr t t ws in stor itr s list, or in rrys. In som ss, ts r not t st wy to stor inormtion out t prolm w r solvin. T most powrul tools, spilly or ll omintoril prolms (wi inlus mny M Sys Dsin prolms), r Grps. Grps r strt ojts, wi v n stui xtnsivly y mtmtiins, n mny o wos proprtis r wll unrstoo. As onsqun, i you n mol your prolm s prtiulr typ o rp, you n us proprtis known out su rps to lp you solv t prolm it str tn usul. Sin vry ours in rp tory ins wit t story o Eulr n t Konisur prolm, r is link. Tis stion is orniz s ollows: (i) rp trminoloy (ii) si rp t struturs (iii) xmpls o M Sys Ds prolms n ow to mol tm s rp prolms..1. Grp trminoloy A rp is in y two sts: st V o vrtis, n st E o s. E vrtx is rprsnt y nm,.. v 1,, v n. E is rprsnt y pir, (v, v ), wr v, v V. W sll not V s t numr o vrtis in t rp; E s t numr o s in t rp. Somtims, w will ssoit irtion wit. In tis s, (v, v ) rprsnts n oin rom v (ll t til) to v (ll t ). I ll s r irt, w ll t rp Dirt rp, or Dirp. Otrwis, ll s will ssum to unirt, n w will ll tis n unirt rp, or just rp.
Unlss spiilly mntion, w will ssum tt tr is no sl-loopin: s o t orm (, ) r not llow. W will lso ssum no prlll s (tt is, w nnot v two istint s (, ), n (, )). A wit rp (or wit irp) is rp wit numr ssoit wit. Most mnuturin pplitions us tis rprsnttion. i 1 3 3 3 1 (i) Grp (ii) Dirp (iii) Wit Dirp Som xmpls: Filitis lyout: Fility is no, t wit o sows t ost o trnsportin mtrils twn t two ilitis tt rprsnt its n vrtis. Trnsporttion: E lotion is vrtx; wit o n is t istn twn t two lotions rprsnt y its vrtis. Mtril Hnlin: E vrtx is sour (ur, or wrous); wit o sows t pity o t MH systm joinin t two sours rprsnt y its vrtis. An is si to inint on t vrtis tt r t its ns. In irp, w sy t is inint rom t til, n inint to t. In irp, vrtx u is jnt to vrtx v i tr is n rom v to u in E. In rp, u n v r jnt i (u, v) E. Dr o vrtx v = numr o s inint on v. Dr o t rp = sum o t r o ll vrtis in t rp. Tus r(g) = E. In irp: outr = numr o s inint rom it, inr = numr o s inint to it; r = outr + inr. For irp, Σ(outr) = Σ ( inr) = E. A pt is squn o vrtis <v 1, v,, v k > su tt (v i, v i+1 ) E or ll i = 1,,k-1. T lnt o t pt = k-1 = numr o s in t pt. A pt is simpl i it s no loops, tt is, i ll vrtis r istint. A vrtx w is rl rom vrtx v i tr is pt rom v to w. A yl is pt o t orm <v 1, v,, v k, v 1 >, tt is, t irst n lst vrtis r intil. A yl is simpl i v 1, v,, v k r ll istint. Spil typs o rps: A onnt rp is on in wi vry pir o vrtis s pt onntin tm. A stronly onnt irp is on in wi vry vrtx is rl rom vry otr vrtx.
A rp wit no yls is ll yli. A irt yli rp is not s DAG. A orst is n yli, unirt rp. A tr is n unirt, yli, onnt rp. (i) Unonnt rp (ii) Connt rp (iii) Stronly Connt Dirp 3 3 1 (iv) Wit DAG (v) Forst (vi) Tr Trs r oun vrywr, so it is usul to mmoriz t ollowin proprtis o trs; I G is rp, t ollowin sttmnts r quivlnt: (i) G is tr; (ii) Any two vrtis in G r onnt y uniqu, simpl pt. (iii) G is onnt, n E = V - 1 (iv) G is yli, n E = V - 1.. Grp t struturs T two most ommon wys o rprsntin rps r (i) usin mtris, n (ii) usin lists link wit pointrs. Oviously, t son mto is mor suit or prormmin lnus tt provi irt support or pointr oprtions...1. Grp t struturs: Ajny Mtris Dirps: Lt G = ( { v 1, v,, v n, E ) irp. Tn w n us nxn mtrix A to rprsnt it s ollows: A[u][v] = w uv i (u,v) E; A[u][v] = 0 i t rp is unwit, n i it is wit. Hr, w uv is t wit o (u,v) i t rp is wit, otrwis it is 1. T mtrix A or irp my or my not symmtri. Unirt rps: Lt G = ( { v 1, v,, v n, E ) rp. W us nxn mtrix A to rprsnt it s ollows:
A[u][v] = A[u][v] = w uv i (u,v) E; A[u][v] = 0 i t rp is unwit, n i it is wit. Clrly, A is symmtri i t rp is unirt. Noti tt i t rp is unwit, tn w n just us 1/0 to not wtr two vrtis r onnt or not. Howvr, i t rp is wit, w nnot us 0 to not unonnt vrtis (sin it my onus wit n o zro wit). Hn w must us spil rtr (usully vry lr numr) to not tis. Tis my lso pn on t pplition: in trvlin slsmn prolm, two nos (itis) r isonnt => t istn twn tm is, wil in ntwork low prolm, wit o 0 nots zro pity, or isonnt vrtis).... Grp t struturs: Ajny lists An jny list is n rry A o n pointrs. Elmnt A[i] points to link list o vrtis {v k, su tt (v i, v k ) E. T two t struturs rquir irnt mount o stor, n lso v n t on t iiny o t loritm usin tm. Tror, pnin on wt you wnt to o, you v to i wi strutur is ttr or your prolm. Hr is simpl omprison: Oprtion Ajny Mtrix Ajny List Initiliztion/Sp Θ( V ) Θ( V + E ) Sn ll s on Θ( V ) Θ( V + E ) Ck i (u, v) E Θ (1) Θ( V ) Noti tt i t rp is vry nsly onnt (lmost ll vrtis onnt to lmost ll otrs), tn E. So or ns rps, t mtrix my ttr, wil or sprs rps wit only w s, t jny list is proly ttr..3. Grp pplitions in Mnuturin Systms Dsin Exmpl 1. You work in t oi o lr mnuturin ompny. T uilin s ois spr ovr two loors, n you n to onnt ommunition twn t onrn room on Floor wit t rption room on Floor 1. T wirs must o trou t ntwork o onuits tt is uilt wit t uilin. Wt is t lnt o wir you must purs? A typil pttrn o onuits my look lik t ollowin:
Floor Floor 1 Conrn room outlt Rption outlt Tis typ o prolm is vry ommon in mny pplitions o sin. It oms up in iruit sin, pt sin or AGV on sop loor, t. Anotr xmpl is in ilitis lyout sin: suppos tt w v omplt t sin o t lyout s purly on t siz o t prtmnts. Nxt, w n to sin t isls, or psss. T siz o t psswy twn two prtmnts pns on t mtril low volum. T isl n sin lon ny o t ounris o t prtmnts. Su prolm n otn mol s t ollowin: Givn rp G, n two nos, s n v, in t sortst pt twn t two nos. T rp n irt, unirt, or vn mix. Exmpl. A minry ompny s svrl prtmnts. Mtrils r osionlly trnsport in stl-ox twn prtmnts n t ompny is onsirin instllin n ovr ril-rn. Tr is no rstrition on t sp o t rils; t rnin points, it is possil to mov t stl-ox to spii rn. T min ost in t projt is t ost o t ovr rils, wi r proportionl to t totl lnt o t ril systm. How n w trmin t sp o t optimum ril-lins tt minimiz t ost, ut llow us to trnsport mtrils twn ny two spii prtmnts? For xmpl, in t iurs low, i t r ots not possil juntion points, n t lins not t rils, tn is option () ttr or ()? How o w know wi option is t st mon ll possiilitis? () () Not: Tis prolm, s stt, is irt pplition o prolm ll t Minimum Spnnin Tr (MST) o rp. T MST prolm s vrious pplitions, spilly in t sin o iruits (.. in PCB iruit, tr r n trminls tt must roun y in onnt totr; ow to join tm ll iintly?), sin o omputr n ommunition ntworks, t.
Exmpl 3. Filitis sin. W know t mount o mtril low twn pir o prtmnts in ility. E unit o mtril low rquirs us to llot som isl pity (.. xprss in t o isl wit). For prtmnt, t mtril inlow/outlow point is ivn, n t isls n run lon ny ounry sprtin two prtmnts. I tr is n isl lon n, w must py ix stup ost, plus vril ost proportionl to t wit. Dsin t isls (i.. wi s will us to orm isls, n t isl wit). Tis is vrsion o t ntwork pity plnnin prolm. Tis prolm n otr ntwork low prolms r ommonly stui in trnsporttion mols. Ts v mny pplitions rnin rom sin o ros, sin o piplins, wtr-supply, sw systms, n so on. W sll inor tis topi r, ut you will stuy it in your trministi OR (or ntwork low mols) ours.. Most Importnt Prims W soul know ts iv si tniqus: itrtions, rursions, ivi-n-onqur, ry, n DP. W v lry sn xmpls o t irst tr. Now w ous on Gry n on DP..1. Gry T ry uristi is on tniqu tt solvs som sminly omplx prolms in rmrkly iint wy. I will iv tr xmpls r, two wr it works rt, n tir wr it ils..1.1. Dijkstr s sortst pt Dijkstr s loritm uss ry ppro to in sortst pts on rps in O( V ). Not tt Dijkstr s loritm only works wn ll wits. Tr r wys to implmnt it tt r mor iint, ut you n in out out tos yoursl. Givn wit, irt rp G = ( V, E), n two vrtis s, v V, in t sortst pt rom s to v (wr sortst is msur y t sum o t wits o t s in t pt). W will omit t proo o orrtnss, n lso t nlysis prts (you n rr tm rom [CLR]). I will iv ri sription, t psuo-o, n n xmpl. Dsription: Essntilly, t loritm uss two si is: ry sltion, n rlxtion. Rlxtion: At stp o t loritm, w ssoit wit no v numr, [v], wi is t uppr oun on t sortst pt istn o no v rom t sour s. For xmpl, in t innin, [s] = 0, n [v] = or ll v. Now ssum tt tr is n, (s, u), wit ost. Tn [u] n rs rom to. Tis is us o t ollowin: w n r rom s to u in two wys:
(i) irtly; s u in wi s it will ost us units to trvrs tis. (ii) vi otr routs o t orm: s v k v r u. In tis s, itr t totl ost o t s on ts routs is lss tn (sy t sum o wits o ts s is 6), tn rtinly w n r rom s to u wit ost 6 < ; on t otr n, i t totl wits o ts s up to, sy 14; tn rtinly w oul just o irtly rom s u wit wit. Tis i n xtn to ny vrtx v: Assum tr is n (u, v) E, wit wit w(u, v). Assum [u] n [v] r t urrntly known uppr ouns on u n v rsptivly. Tn w n rlx t uppr oun on v s ollows: i [v] > [u] + w( u, v), tn st [v] = [u] + w( u, v); otrwis, it is unn. Wn w o rlxtion, w lso will kp trk o t tt us rs in t uppr oun or v; tis is t prssor o v in t (urrnt) sortst known pt rom s to v, n w not it s π[v]. Gry sltion: Tis will om lr s w sri t loritm, low. W strt wit two lists: V = st o ll vrtis S = st o vrtis, u i, or wi [u i ] = inl sortst pt istn rom s to u i = δ(s, u i ) Initilly, S is mpty. At ny st, onsir ll t vrtis u i, or wi t sortst istn rom s s not yt n trmin, n pik t on wit t lst [u i ]. For tis vrtx, [u i ] = δ(s, u i ) [you soul try to prov tis: it is t rson tt ry strty works or Dijkstr!]. W rlx tis (rily slt) vrtx, n it to S. W rpt ts two stps o ry sltion n rlxtion until t ol vrtx, v, is to S. Tn w r on!. Aloritm: Dijkstr s sortst pt( G, s, v) 1. For vrtx v i V, [v i ] = ;. [s] = 0; 3. S = {; Q = V[G]; 4. rpt { 4.1. u = in_minimum_wit_vrtx( Q) 4.. rmov u rom Q, n u to S; 4.3. or vrtx v i in Aj[u] { 4.3.1. i ( [v i ] > [u] + w( u, v) ) { 4.3.. [v i ] = [u] + w( u, v); 4.3.3. π[v i ] = u; 4.3.4 until (u == v); 5. rturn [v], sortst-pt( v, u); Nots: T stps 4.3, 4.3.1, 4.3., n 4.3.3 r t rlxtion stps; T stp 4.1 is t ry sltion stp.
Stps 1 n 5 tk O( V ) tim. Stp 4.1. tks O( V ) tim, n in t worst s, it will xut O( V ) tims; so t totl omplxity is O( V ) Stps 4.3.x: Not tt vrtx, u, is insrt into S xtly on, so ts rlxtion stps xmin oin out o vrtx u xtly on. For, tr is onstnt ort in t rlxtion stps. Hn totl ort u to rlxtion is O(E). Tror, totl loritm omplxity is O( V + E ) = O( V ) [sin E = O( V )]. Exmpl: [sour: CLR] s 5 u 3 x 1 v 4 6 y G = (V, E) Ajny list t strutur: [ [ [s]->[u,1]->[x,5]] [ [u]->[x,]->[v,1]] [ [x]->[u,3]->[y,]->[v,]] [ [y]->[s,]->[v,6]] [ [v]->[y,4]] ] s 0 u 3 1 v 4 6 Stp 1. or vrtx v i, [v i ] = ; [s] = 0; 5 x y s 0 u 3 1 v 4 6 S = {s; V-S = {u, x, y, v rlx(s): [u] = ; [x] = 5; 5 x 5 y
s 0 5 u 3 x 5 1 v 14 4 6 y S = {s; V-S = { u, x, y, v minimum-ost( V-S) = x; S = { s, x; V-S = { u, v, y rlx(x): [u] = ; [y] = ; [v] = 14; s 0 5 u 3 x 5 1 v 13 4 6 y S = {s, x; V-S = { u, y, v minimum-ost( V-S) = y; S = { s, x, y; V-S = { u, v rlx(y): [s] = 0; // no n [v] = 13; s 0 5 u 3 x 5 1 v 4 6 y S = { s, x, y; V-S = { u, v minimum-ost( V-S) = u; S = { s, x, y, u; V-S = { v rlx(u): [x] = 5; // no n [v] = ; // T loritm trmints in // t nxt itrtion..1.. Minimum Spnnin Tr Anotr prolm or wi ry works is inin t minimum spnnin tr o rp. Tis prolm, ll MST, s pplitions in optimiztion o ommunition/omputr ntworks onntin svrl prtmnts or nos, livry routin pts twn prtmnts, t. Anotr pplition is in ormin t lst lnt wir to onnt ll t roun trminls on omplx PCB iruit or. Finlly, t MST s som tortil importn s tool to provi uppr ouns on optiml solutions to tour prolm: TSP (s nxt stion). W r ivn n unirt, wit, (onnt) rp G = (V, E), n n to in surp MST G = (V, E ), su tt: V = V (tis mns tt t su-rp spns G, i.. vrtx is rl rom vry otr. E E Sum o t wits o E is minimiz. T ov inition is tt o minimum spnnin su-rp. Howvr, s lon s ll wits r positiv, tis su-rp must tr, sin otrwis, tr is yl, n w n ru t totl wit y uttin wy t most xpnsiv on tis yl.
T iur low sows n xmpl o rp, wit t s o n MST mrk in r olor. 4 11 4 i 14 6 1 Grp G MST mrk in r Not: MST is not uniqu.. rpl (, ) wit (, ) Dsription: T si i o t solution w us is s ollows: W strt wit n mpty st o vrtis, S, n in stp, w will on vrtx, v i, to it rom V-S. Imin tt t s r m o rur-ns, n st S, V-S s ounry lin rwn roun it. Consir wt ppns to onnt to v i wn w sit it into S. Eitr (i) tis will now ross ross t ounry o S, or (ii) it ws rlir rossin t ounry o S, n will now ompltly insi t ounry o S. At ny st, w slt t pst (tt s ry sltion) tt os ross rom S to V-S, n pull t vrtx onnt to it rom V-S into S. T proo o orrtnss o tis ppro is omitt [rr to CLR]. T prtiulr implmnttion o t MST loritm ivn r is ll Prim s loritm. W ssum tt t root o t tr, no r, is n input. Aloritm: MST-Prim( G, r) 0. V = st o vrtis o G; 1. or vrtx v V {ky[v] = ;. ky[r] = 0; π[r] = nil; 3. wil V 3.1. u = xtrt-minimum( V); 3.. or v Aj[u] { 3..1. i v V n w(u, v) < ky[v] { 3..1.1. π[v] = u; 3..1.. ky[v] = w(u, v); In t ov, ky[u] is t priority vlu ssin to t no u. Look t t wy tis vlu is st (in stp 3..1): or no tt is rmov rom t st V (n to t tr rown low t root, r), lin rom it to sussor is now potntil rossin ovr twn t st o unssin nos to t st o nos in t tr. T wit o t is ssin s t ky vlu o t nos on wi t is inint (unlss tr ws n rlir lry lin to tt vrtx rom prviously ssin no, wit lowr ost).
Anlysis: I will skip t nlysis, us it rquirs som kroun on t us o spil t struturs tt llow us to iintly prorm t xtrt-min(v) in O( l V) tim. Givn tt, sin t min ort is in t stp 3. tt loop is xut O( E ) tims. Omittin tils o t nlysis, w will just stt tt t loritm runs in O( E l V) tim. Exmpl: T ollowin xmpl uss t rp us rlir or t illustrtion o MST, sowin t stps o Prim s loritm. 4 11 i 4 14 6 1 () Grp G MST-Prim( G, ) R-s: s o MST Es rossin t rn loop r nits or nxt stp. 4 11 4 i 14 6 1 () 4 11 4 i 14 6 1 () 4 11 4 i 14 6 1 () 4 11 4 i 14 6 1 () 4 11 4 i 14 6 1 4 11 4 i 14 6 1 () ()
4 11 4 i 14 6 1 () 4 11 4 i 14 6 1 (i).1.3. Trvlin Slsmn Prolm Tis is proly on o t most wily stui prolms. T prolm n stt s ollows: Givn st o n nos (or itis), wit t wit o t twn ny pir o itis = t istn twn tm. Givn om, or strt no. Fin t minimum lnt yl tt strts orm t om no, visits no xtly on, n inlly rturns to t strt no. No known ry loritm is known to solv t TSP. Lt s try trivil mto: strt t om, n t stp, pik t nrst nior o t lst no visit. Tis ppro os not work; or instn, in t xmpl low t nrst nior (ry) uristi ivs t TSP tour mrk in lu olor, wi is lrly lonr tn t tour mrk in r. H Tr is trmnous mount o rsr rlt to solvin TSP. You n sily in, usin w-sr, w-ps tt list ll usul rrns to it. T st-known mtos to solv it us som uristi, n tniqus su s lol optimiztion (.. -opt, 3-opt, or k-opt), simult nnlin, nti loritms t v ll n tri. Sour o or svrl su ttmpts is vill on t w. Anotr wll stui vrition o t TSP is ll t Asymmtri TSP, in wi t istn twn nos is not symmtri, i.. (i, j) in nrl. Som trms rlt to t TSP: Eulr tour: An Eulr tour o rp is tour tt trvrss vry xtly on (ut my ross no on or mor tims). Not ll rps v n Eulr tour (s t nots on t Konisur puzzl). I n Eulr tour xists, it n oun quit iintly, in O( E ) tim!
Hmiltonin Cyl: Givn rp G = (V, E), Hmiltonin yl is simpl yl tt visits vrtx in V. Tis is t sis o som ilrn s ms. T iur low sows mous xmpl. Not ll rps ontin Hmiltonin yl (HC). A rp tt ontins t lst on HC is ll miltonin; otrwis, it is ll nonmiltonin. T r s pit n HC on t rp pitin oron T iur low sows iprtit rp (iprtit: rp wos vrtis n prtition into two non-ovrlppin sts o vrtis, su tt no vrtx witin prtition srs n ). I n unirt, iprtit rp s o numr o vrtis, it s no HC s [prov it!]. (An unirt i-prtit rp: no HC xists or su rps. HC s ol n importnt position in t tory o NP-ompltnss. Givn rp, tr is no known polynomil tim loritm, to isovr i it is Hmiltonin (mtmtiins v work on tis prolm or my 0 yrs). At tis point, w onlu t stion on t isussion o t Gry prim. T min points r tt wn Gry works (i.. ry strty n us to onvr to optimlity), it yils vry iint loritms, ut otn it ils. W sw two xmpls wr it work: Prim s MST n Dijkstr s sortst pt loritm. W sw two xmpls wr it os not urnt optimlity: TSP, n rlir, t COVERT sulin poliy... Dynmi Prormmin Dynmi prormmin, or DP, is n xtrmly importnt tool in inin optiml solutions to mny typs o prolms. By workin wit w xmpls, you soul try to t oo insit into wn you n us DP to solv prolm, n ow to st up t DP. Bkroun: Rll tt w wr l to solv som prolms iintly y t us o ivi-n-onqur (in prtiulr, t prolm o sortin list o numrs usin Mrsort). DP prolms v similr rtristi in, w sll us tis i o somow
omputin t solution to t i prolm y ominin solutions o proprly onstrut su-prolms. Howvr, tr is on ky irn twn ivi-n-onqur o Mrsort n DP: in t ormr s, o t su-prolms s solutly no rltion to ny o t otr suprolms, n su-prolm must solv iniviully. Howvr, prolm tt quliy or us o DP v t rtristi tt t solution o mny o t su-prolms v, rursivly, ommon su-prolms. In solvin or t min prolm, tim w v solv su-prolm, w will tror stor its solution, n t nxt tim w nountr t sm su-prolm, w just look-up t prviously omput vlu, try svin som ort. Bor oin into n xmpl, it is oo to rmmr wt typ o prolms DP is ppli to: it is us mostly in solvin optimiztion prolms (prolms wr som ojtiv untion vlu must mximiz; ontrst tis,.., to t prolm o sortin st o numrs). In prtiulr, it is us on isrt optimiztion prolms, wr w r srin or solution ovr rp tt rows xponntilly wit t prolm siz. In summry, som ky rtristis o DP: () DP is ppli most ommonly to optimiztion prolms () T prolm must xiit optiml su-strutur. In otr wors, t optiml solution to prolm ontins (s its susts) optiml solutions to su-prolms. () T min prolm is solv y solvin su-prolms (similr to t ivi stp o ivin-onqur), n mny su-prolms ontin t sm su-prolms witin tm. Tis proprty is ll t ovrlppin su-prolm proprty. Exmin t prolm you r solvin to s i you n intiy l tr o ts proprtis. I ys, tr is oo n you n us DP to solv it. In orr to pply DP, you n to o t ollowin: (1) Crtriz t strutur o n optiml solution () Rursivly in t vlu o n optiml solution (3) Comput t vlu o n optiml solution, strtin rom solvin t smllst suprolms, n workin upwrs. Tis is ll ottom-up omputtion. (4) I t omplt solution orrsponin to t optiml vlu is rquir, onstrut t optiml solution rom t omput inormtion. Not tt in stp 3, you only omput t optiml vlu o t ojtiv untion; in stp 4, you will nrt t vlus o t iniviul vrils tt mk up t optiml solution. Exmpl: T mnr o your ompny llot ut, W, wit wi you must uy on or mor mins. Tr r n irnt typs o mins in t mrkt, n min s rtin ost; w not t ost o min o typ i s w i. E min will nrt som nit vlu, not s v i. Your ojtiv is to uy tos mins tt will totlly mximiz your nit, wil not spnin mor tn your ut. W n mol tis s n optimiztion prolm: Lt xi = 1, i min i is purs, n 0 i it is not purs. W n to: mximiz Σ x i v i
su tt Σ 1,,n w i x i W x i { 0, 1, or ll i. Tis is n intr prorm, n tror not sy to solv or lr prolms. Lt us xplor t possiility o solvin it usin DP. Crtinly proprty () is tru: it is n optimiztion prolm. Bor w pply DP, w xmin potntil mto to solv tis prolm y numrtion: W onstrut two imnsionl rry: V[0..n][0..W] to stor som potntil solutions vlus. For 1 i n, n 0 w W, t lmnt V[i][w] stors t mximum vlu mon ny sust o mins { 1,,, i tt n purs wit ut = w. For onvnin, w will lso us nottion tt V[i, w] = - i w < 0; tis urnts tt ny oniurtion tt uss ntiv vlu ut will not our. W will us inution to ill t lmnts o t rry V, s ollows: Stp 1. V[0][j] = 0 or 0 w W. [i tr r no mins, w will t no vlu]. Stp. To omput V[i][w], onsir two ss: (i) Min i is not purs; in tis s, t st vlu is riv y mkin n optimum sltion rom mins { 1,,, i-1 wit ut o w, wi is intil to V[i-1][w]. (ii) Min i is purs; in tis s, t vlu rom min i = v i. Tror, t rminin mins in t optimum sltion r t st sust rom mins { 1,,, i-1 wit ut = W w i. Tis is t sm s: v i + V[i-1][W-w i ]. Ts r t only possiilitis. Tror, w n onstrut t omplt rry V y usin t ollowin ruls: V[0][w] = 0 or 0 w W, V[i][w] = - or w < 0, V[i][w] = mx{ V[i-1][w], v i + V[i-1][W-w i ] or 1 i n, 0 w W Lt s s numril xmpl or onntin tis to DP: Consir possil st o 4 mins, n ut o. T min osts r: { 5, 4, 6, 3, n t min vlus r: {, 40, 30, 50. T rry V is: w=0 1 3 4 5 6 i=0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 40 40 40 40 40 50 50 3 0 0 0 0 40 40 40 40 40 50 0 4 0 0 0 50 50 50 50 0 0 0 0 T inl output is V[4][] = 0, wi will our wn w slt to uy mins n 4, spnin 4 + 3 = <, wi ws our ut. Now w not tt our ormultion ov xiit ll t rquirmnts o oo nit or DP: () It is n optimiztion prolm
() T optiml prolm ontins optiml solutions to su-prolms; tis is lr rom Stp ov. () Mny su-prolms ovrlp: wn omputin t lmnts o t rry, w n to rr to prviously omput lmnts svrl tims. Tis prolm is known y mor mous nm: t 0-1 Knpsk prolm. Hr is t 0-1 knpsk DP loritm: Aloritm: Knpsk( v, w, n, W) Inputs: rry v o vlus; rry w o osts; n = totl numr o ojts; W = ut. 1. or v = 0 to W, V[0][w] = 0;. or i = 1 to n {.1. or w = 0 to W {.1.1. witout-i-vl = V[i-1][w];.1.. i ( w > w[i]) { wit-i-vlu = v[i] + V[i-1][w w[i]].1.3. ls { wit-i-vlu = - ;.1.4. V[i][w] = mx( witout-i-vl, wit-i-vl);.. rturn V[n][V]; Anlysis: Stp 1. O( W+1). Stp. T stp.1. totlly tks onstnt tim; ts stps r xut n(w+1) tims. Tus t loritm is O(nW). Su n loritm is ll psuo-polynomil loritm, sin its run tim is oun y polynomil o som prmtr o t prolm (in tis s, W) otr tn t prolm siz (wi is n). Som onluin rmrks: It tks quit it o rul tout to st up DP ormultions. T 0-1 knpsk prolm is oo introution, sin t rursiv nlysis o t vlus in t rry V n xplin rltivly sily. In mny prtil prolms, it tks som ort n insit to iur out wtr DP n ppli, n to ormult it. Lukily, sin ormultin DP s rquirs som lvrnss, mny pprs pulis out irnt mnuturin systms sin (or oprtions) prolms us DP, n s you will r mor pprs rlt to your tsis rsr, you will surly s mny irnt DP ormultions n t mor xprin wit it.. Complxity lsss: P, NP, NP-omplt Tis topi is ovr in IEEM 6.
Biliorpy: Ts nots wr prpr usin t ollowin sours: [1],[CLR]: Introution to Aloritms, TH Cormn, CE Lisrson, RL Rivst, MIT Prss, Cmri MA [] Ltur Nots o Prossor Dvi Mount, Univrsity o Mryln, Computr Sin Dpt. [3] Ltur Nots o Prossor Mori Golin, HKUST, Computr Sin. [4] Oprtions Rsr, F. S. Hillir n G. J. Lirmn, Holn-Dy [*] I pik up t Konisur im rom t w i you know t sour, pls inorm m.