Extnsions: Mtin Rsints to Hospitls CS 580: Aloritm Dsin n Anlysis Ex: Mn ospitls, Womn m sool rsints. Vrint 1. Som prtiipnts lr otrs s unptl. 1.2 Fiv Rprsnttiv Prolms Vrint 2. Unqul numr o mn n womn. rsint A unwillin to work in Clvln Jrmi Bloki Puru Univrsity Sprin 18 Vrint. Limit polymy. ospitl X wnts to ir rsints Gl-Sply Aloritm Still Works. Minor moiitions to o to nl vritions! Rp: Stl Mtin Prolm Extnsions: Mtin Rsints to Hospitls Dinition o Stl Mtin Stl Roomt Mtin Prolm Stl mtin os not lwys xist! Gl Sply Aloritm (Propos-An-Rjt) Proo tt Aloritm Trmints in stps Proo tt Aloritm Outputs Stl Mtin Mtin is ml-optiml I tr r multipl irnt stl mtins mn t s is st vli prtnr Mtin is ml-pssiml I tr r multipl irnt stl mtins mn t s r worst vli prtnr 2 4 Ex: Mn ospitls, Womn m sool rsints. Vrint 1. Som prtiipnts lr otrs s unptl. Vrint 2. Unqul numr o mn n womn. Vrint. Limit polymy. ospitl X wnts to ir rsints D. Mtin S unstl i tr is ospitl n rsint r su tt: n r r ptl to otr; n itr r is unmt, or r prrs to r ssin ospitl; n itr os not v ll its pls ill, or prrs r to t lst on o its ssin rsints. rsint A unwillin to work in Clvln 0 1 2 4 5 7 8 9 10 jos on't ovrlp Tim Copyrit 00, Kvin Wyn 1
jos on't ovrlp jos on't ovrlp jos on't ovrlp Gry Coi. Slt jo wit rlist inis tim n limint inomptil jos. Gry Coi. Slt jo wit rlist inis tim n limint inomptil jos. Cptr 4: W will prov tt tis ry loritm lwys ins t optiml solution! 0 1 2 4 5 7 8 9 10 Tim 0 1 2 4 5 7 8 9 10 Tim 0 1 2 4 5 7 8 9 10 Tim 7 9 Wit Input. St o jos wit strt tims, inis tims, n wits. Gol. Fin mximum wit sust o mutully omptil jos. jos on't ovrlp Gry Coi. Slt jo wit rlist inis tim n limint inomptil jos. jos on't ovrlp Gry Coi. Slt jo wit rlist inis tim n limint inomptil jos. Gry Aloritm No Lonr Works! 2 12 2 1 0 1 2 4 5 7 8 9 10 Tim 0 1 2 4 5 7 8 9 10 Tim 1 0 1 2 4 5 7 8 9 10 Tim 8 10 12 Copyrit 00, Kvin Wyn 2
Wit Biprtit Mtin Inpnnt St Input. St o jos wit strt tims, inis tims, n wits. Gol. Fin mximum wit sust o mutully omptil jos. Input. Biprtit rp. Gol. Fin mximum rinlity mtin. Input. Grp. Gol. Fin mximum rinlity inpnnt st. Gry Aloritm No Lonr Works! 2 A 1 1 sust o nos su tt no two join y n 2 12 B 2 4 5 2 C 7 1 D 4 Brut-For Aloritm: Ck vry possil sust. RunninTim: 2 stps 1 0 1 2 4 5 7 8 9 10 Tim E 5 Dirnt rom Stl Mtin Prolm! How? NP-Complt: Unlikly tt iint loritm xists! Positiv: Cn sily k tt tr is n inpnnt st o siz k 1 15 17 Wit Biprtit Mtin Comptitiv Fility Lotion Input. St o jos wit strt tims, inis tims, n wits. Gol. Fin mximum wit sust o mutully omptil jos. Input. Biprtit rp. Gol. Fin mximum rinlity mtin. Input. Grp wit wit on no. Gm. Two omptin plyrs ltrnt in sltin nos. Not llow to slt no i ny o its niors v n slt. Prolm n solv usin tniqu ll Dynmi Prormmin A 1 Gol. Slt mximum wit sust o nos. 2 B 2 12 C 2 1 D 4 E 5 Son plyr n urnt, ut not 25. 0 1 2 4 5 7 8 9 10 1 Tim Prolm n solv usin Ntwork Flow Aloritms 14 1 18 Copyrit 00, Kvin Wyn
Comptitiv Fility Lotion Comptitiv Fility Lotion Comptitiv Fility Lotion Input. Grp wit wit on no. Gm. Two omptin plyrs ltrnt in sltin nos. Not llow to slt no i ny o its niors v n slt. Gol. Slt mximum wit sust o nos. Input. Grp wit wit on no. Gm. Two omptin plyrs ltrnt in sltin nos. Not llow to slt no i ny o its niors v n slt. Gol. Slt mximum wit sust o nos. Input. Grp wit wit on no. Gm. Two omptin plyrs ltrnt in sltin nos. Not llow to slt no i ny o its niors v n slt. Gol. Slt mximum wit sust o nos. PSPACE-Complt: Evn rr tn NP-Complt! No sort proo tt plyr n urnt vlu B. (Unlik prvious prolm) Son plyr n urnt, ut not 25. Son plyr n urnt, ut not 25. Son plyr n urnt, ut not 25. 19 21 2 Comptitiv Fility Lotion Comptitiv Fility Lotion Fiv Rprsnttiv Prolms Input. Grp wit wit on no. Gm. Two omptin plyrs ltrnt in sltin nos. Not llow to slt no i ny o its niors v n slt. Gol. Slt mximum wit sust o nos. Input. Grp wit wit on no. Gm. Two omptin plyrs ltrnt in sltin nos. Not llow to slt no i ny o its niors v n slt. Gol. Slt mximum wit sust o nos. Vritions on tm: inpnnt st. Intrvl sulin: n lo n ry loritm. Wit intrvl sulin: n lo n ynmi prormmin loritm. Biprtit mtin: n k mx-low s loritm. Inpnnt st: NP-omplt. Comptitiv ility lotion: PSPACE-omplt. Son plyr n urnt, ut not 25. Son plyr n urnt, ut not 25. 22 24 Copyrit 00, Kvin Wyn 4
Computtionl Trtility Worst-Cs Anlysis Cptr 2 Bsis o Aloritm Anlysis As soon s n Anlyti Enin xists, it will nssrily ui t utur ours o t sin. Wnvr ny rsult is sout y its i, t qustion will ris - By wt ours o lultion n ts rsults rriv t y t min in t sortst tim? - Crls B Worst s runnin tim. Otin oun on lrst possil runnin tim o loritm on input o ivn siz N. Gnrlly pturs iiny in prti. Dronin viw, ut r to in tiv ltrntiv. Avr s runnin tim. Otin oun on runnin tim o loritm on rnom input s untion o input siz N. Hr (or impossil) to urtly mol rl instns y rnom istriutions. Aloritm tun or rtin istriution my prorm poorly on otr inputs. Slis y Kvin Wyn. Copyrit 05 Prson-Aison Wsly. All rits rsrv. Crls B (184) Anlyti Enin (smti) 25 27 29 Polynomil-Tim Worst-Cs Polynomil-Tim 2.1 Computtionl Trtility "For m, rt loritms r t potry o omputtion. Just lik vrs, ty n trs, llusiv, ns, n vn mystrious. But on unlok, ty st rillint nw lit on som spt o omputin." - Frnis Sullivn Brut or. For mny non-trivil prolms, tr is nturl rut or sr loritm tt ks vry possil solution. Typilly tks 2 N tim or wors or inputs o siz N. Unptl in prti. n! or stl mtin wit n mn n n womn Dsirl slin proprty. Wn t input siz ouls, t loritm soul only slow own y som onstnt tor C. Tr xists onstnts > 0 n > 0 su tt on vry input o siz N, its runnin tim is oun y N stps. D. An loritm is poly-tim i t ov slin proprty ols. oos C = 2 D. An loritm is iint i its runnin tim is polynomil. Justiition: It rlly works in prti! Altou.02 10 2 N is tnilly poly-tim, it woul uslss in prti. In prti, t poly-tim loritms tt popl vlop lmost lwys v low onstnts n low xponnts. Brkin trou t xponntil rrir o rut or typilly xposs som ruil strutur o t prolm. Exptions. Som poly-tim loritms o v i onstnts n/or xponnts, n r uslss in prti. Som xponntil-tim (or wors) loritms r wily us us t worst-s instns sm to rr. simplx mto Unix rp 28 0 Copyrit 00, Kvin Wyn 5
Wy It Mttrs Asymptoti Orr o Growt Proprtis Uppr ouns. T(n) is O((n)) i tr xist onstnts > 0 n n 0 0 su tt or ll n n 0 w v T(n) (n). Lowr ouns. T(n) is ((n)) i tr xist onstnts > 0 n n 0 0 su tt or ll n n 0 w v T(n) (n). Tit ouns. T(n) is ((n)) i T(n) is ot O((n)) n ((n)). Ex: T(n) = 2n 2 + 17n + 2. T(n) is O(n 2 ), O(n ), (n 2 ), (n), n (n 2 ). T(n) is not O(n), (n ), (n), or (n ). Trnsitivity. I = O() n = O() tn = O(). I = () n = () tn = (). I = () n = () tn = (). Aitivity. I = O() n = O() tn + = O(). I = () n = () tn + = (). I = () n = O() tn + = (). 1 5 Nottion Asymptoti Bouns or Som Common Funtions 2.2 Asymptoti Orr o Growt Slit us o nottion. T(n) = O((n)). Not trnsitiv: (n) = 5n ; (n) = n 2 (n) = O(n ) = (n) ut (n) (n). Bttr nottion: T(n) O((n)). Mninlss sttmnt. Any omprison-s sortin loritm rquirs t lst O(n lo n) omprisons. Sttmnt osn't "typ-k." Us or lowr ouns. Polynomils. 0 + 1 n + + n is (n ) i > 0. Polynomil tim. Runnin tim is O(n ) or som onstnt inpnnt o t input siz n. Loritms. O(lo n) = O(lo n) or ny onstnts, > 0. n voi spiyin t s Loritms. For vry x > 0, lo n = O(n x ). lo rows slowr tn vry polynomil Exponntils. For vry r > 1 n vry > 0, n = O(r n ). vry xponntil rows str tn vry polynomil 4 Copyrit 00, Kvin Wyn
Linr Tim: O(n) Qurti Tim: O(n 2 ) 2.4 A Survy o Common Runnin Tims Mr. Comin two sort lists A = 1, 2,, n wit B = 1, 2,, n into sort wol. Qurti tim. Enumrt ll pirs o lmnts. Closst pir o points. Givn list o n points in t pln (x 1, y 1 ),, (x n, y n ), in t pir tt is losst. i = 1, j = 1 wil (ot lists r nonmpty) { i ( i j ) ppn i to output list n inrmnt i ls( i j )ppn j to output list n inrmnt j ppn rminr o nonmpty list to output list Clim. Mrin two lists o siz n tks O(n) tim. P. Atr omprison, t lnt o output list inrss y 1. O(n 2 ) solution. Try ll pirs o points. min (x 1 - x 2 ) 2 + (y 1 - y 2 ) 2 or i = 1 to n { or j = i+1 to n { (x i - x j ) 2 + (y i - y j ) 2 i ( < min) min Rmrk. (n 2 ) sms invitl, ut tis is just n illusion. s ptr 5 on't n to tk squr roots 9 41 Linr Tim: O(n) O(n lo n) Tim Cui Tim: O(n ) Linr tim. Runnin tim is proportionl to input siz. Computin t mximum. Comput mximum o n numrs 1,, n. mx 1 or i = 2 to n { i ( i > mx) mx i O(n lo n) tim. Ariss in ivi-n-onqur loritms. lso rrr to s linritmi tim Sortin. Mrsort n psort r sortin loritms tt prorm O(n lo n) omprisons. Lrst mpty intrvl. Givn n tim-stmps x 1,, x n on wi opis o il rriv t srvr, wt is lrst intrvl o tim wn no opis o t il rriv? O(n lo n) solution. Sort t tim-stmps. Sn t sort list in orr, intiyin t mximum p twn sussiv tim-stmps. Cui tim. Enumrt ll tripls o lmnts. St isjointnss. Givn n sts S 1,, S n o wi is sust o 1, 2,, n, is tr som pir o ts wi r isjoint? O(n ) solution. For pirs o sts, trmin i ty r isjoint. or st S i { or otr st S j { or lmnt p o S i { trmin wtr p lso lons to S j i (no lmnt o S i lons to S j ) rport tt S i n S j r isjoint 8 40 42 Copyrit 00, Kvin Wyn 7
Polynomil Tim: O(n k ) Tim Hp Dt Strutur Hp Insrtion Inpnnt st o siz k. Givn rp, r tr k nos su tt no two r join y n? k is onstnt Hp.Insrt() O(n k ) solution. Enumrt ll susts o k nos. or sust S o k nos { k wtr S in n inpnnt st i (S is n inpnnt st) rport S is n inpnnt st Ck wtr S is n inpnnt st = O(k 2 ). Numr o k lmnt susts = n O(k 2 n k / k!) = O(n k ). n (n 1) (n 2) (n k 1) k k (k 1) (k 2) (2) (1) poly-tim or k=17, ut not prtil nk k! 44 5 10 Nxt Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu Mx Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu 9 44 5 10 9 Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu 4 45 47 Exponntil Tim Hp Insrtion Hp Insrtion Inpnnt st. Givn rp, wt is mximum siz o n inpnnt st? Hp.Insrt() O(n 2 2 n ) solution. Enumrt ll susts. Hp.Insrt() 9 S* or sust S o nos { k wtr S in n inpnnt st i (S is lrst inpnnt st sn so r) upt S* S 44 5 10 Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu 44 5 10 9 Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu 44 4 48 Copyrit 00, Kvin Wyn 8
Hp Insrtion Hp Extrt Minimum Hp Extrt Minimum Hp.Insrt() Hp.ExtrtMin() Hp.ExtrtMin() 44 5 10 9 44 5 10 9 44 5 10 9 Nxt Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu Torm 2.12 [KT]: T prour Hpiy-up ixs t p proprty n llows us to insrt nw lmnt into p o n lmnts in O(lo n) tim. Nxt Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu Torm 2.1 [KT]: T prour Hpiy-own ixs t p proprty n llows us to lt n lmnt in p o n lmnts in O(lo n) tim. Nxt Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu Torm 2.1 [KT]: T prour Hpiy-own ixs t p proprty n llows us to lt n lmnt in p o n lmnts in O(lo n) tim. 49 51 5 Hp Extrt Minimum Hp Extrt Minimum Hp Extrt Minimum Hp.ExtrtMin() Hp.ExtrtMin() Hp.ExtrtMin() 9 44 5 10 9 44 5 10 9 44 5 10 Nxt Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu Torm 2.1 [KT]: T prour Hpiy-own ixs t p proprty n llows us to lt n lmnt in p o n lmnts in O(lo n) tim. Nxt Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu Torm 2.1 [KT]: T prour Hpiy-own ixs t p proprty n llows us to lt n lmnt in p o n lmnts in O(lo n) tim. Nxt Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu Torm 2.1 [KT]: T prour Hpiy-own ixs t p proprty n llows us to lt n lmnt in p o n lmnts in O(lo n) tim. 50 52 54 Copyrit 00, Kvin Wyn 9
Hp Extrt Minimum Hp.ExtrtMin() 9 44 5 10 Nxt Min Hp Orr: For no v in t tr Prnt v. Vlu v. Vlu Torm 2.1 [KT]: T prour Hpiy-own ixs t p proprty n llows us to lt n lmnt in p o n lmnts in O(lo n) tim. 55 Hp Summry 44 5 10 9 Insrt: O(lo n) FinMin: O(1) Dlt: O(lo n) tim ExtrtMin: O(lo n) tim Tout Qustion: O(n lo n) tim sortin loritm usin ps? 5 Copyrit 00, Kvin Wyn 10