1 / 32

Bakpokaverkefnið

Bakpokaverkefnið. 4. apríl 2002. Bakpokaverkefnið. Fyrir ferðalag með geimskutlunni Megum taka með okkur muni að eigin vali Munirnir hafa mismikið gildi fyrir okkur Munirnir hafa einnig mismikla þyngd Viljum hámarka ‘gildi’ hluta sem við tökum Takmörk fyrir heildarvigt:.

morley
Download Presentation

Bakpokaverkefnið

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bakpokaverkefnið 4. apríl 2002

  2. Bakpokaverkefnið • Fyrir ferðalag með geimskutlunni • Megum taka með okkur muni að eigin vali • Munirnir hafa mismikið gildi fyrir okkur • Munirnir hafa einnig mismikla þyngd • Viljum hámarka ‘gildi’ hluta sem við tökum • Takmörk fyrir heildarvigt:

  3. Dæmi 2: Fjárfestingar • Fyrirtæki hefur úr 1 milljarði úr að spila • Fjárfesta má í misarðbærum rekstri: • Gagnagrunnur: 400 millj, væntiarður: 40mill. • Hótel: 500 millj, væntiarður: 50mill. • Frystihús: 200 millj, væntiarður: 20 millj. • Sjónvarpsstöð: 400 millj, væntiarður: 30 millj. • Bílasölu: 100 millj, væntiarður: 20 millj

  4. Bakpokaverkefnið: Skilgreining • Gefið: n “hlutir” með • Kostnaður s1, s2, ..., sn ( kostnaður) • Framlegð f1, f2, ..., fn ( hagnaður) • Kostnaðarþak B • Finna: Mengi S af þessum hlutum þ.a. • Heildarvægi hlutanna sé minni en B iS si  B • Heildarframlegð iS fisé hámarkað

  5. 0-1 Bestunarverkefni max i fixi subject to i sixi B xi{0,1}, i=1, 2, ..., n • LP slökun: 0  xi  1, i=1, 2, ..., n

  6. Dæmi 3: • Höfum 800MB geisladisk til að skrifa á • Viljum troða eins miklu á hann og hægt er • Þetta er sértilfelli þar sem fi=si • “Subset Sum problem” = “Hlutasumma” • Einbeitum okkur að þessu, til einföldunar.

  7. Eðlileg gráðug aðferð • Gráðugt val: • Bætum við stærsta staki sem kemst fyrir • Gráðug aðferð: • Endurtekið gráðugt val, uns engu má við bæta • Kostir: • Virkar almennt vel • Dýnamískt, þ.e. bæta má við eftir þörfum • Hversu góðri lausn skilar hún? Bestu??

  8. Mótdæmi B=1 0.55 0.5 *2

  9. Lausn með kvikri bestun • Virkar þegar þakið B er ekki of stórt • Lykilhugmynd: • Síðasta stakið/hluturinn er annað hvort valinn í pokann eður ei! • Ef við neglum niður þetta val, hvað fáum við þá til að kljást við? Hvað er eftir?

  10. Stak n með?? Já Nei Poki rúmar nú B – sn til. Stök 1, ..., n-1 eftir. Poki rúmar enn B. Stök 1, ..., n-1 eftir.

  11. Inntak: s1 s2 s3 s4 s5 s6 Bakpoki: B

  12. a) Stak 6 valið með: s6 B - s6 b) Stak 6 ekki valið: B

  13. a1) Stök 6 og 5 með: B – s6 – s5 a2) Stak 6 með, ekki 5: B - s6

  14. b1) Stak 5 með: B – s5 b2) Hvorki stak 5 né 6: B

  15. Aðalverkefni nB • Stök með vægi/umtak s1, s2, ..., sn • Kostnaðarþak B Undirverkefni: Stak n með • Stök með vægi/umtak s1, s2, ..., sn-1 • Kostnaðarþak B – sn n-1B-sn Undirverkefni: Stak n ekki með • Stök með vægi/umtak s1, s2, ..., sn-1 • Kostnaðarþak B n-1B

  16. 1 j B j-si 1 i n Bp(i,j) = Hámarks afrakstur af s1...si, þegar þak er j max(fi + Bp(i-1, j-si), Bp(i-1, j)), j  si Bp(i-1, j), annars Bp(i,j) =

  17. Neðansækin aðferð For j=0 to B do A[0,j] = 0 For i=1 to n do for j=1 to B do A[i,j] = A[i-1,j] if (j  si AND fi + A[i-1, si ]  A[i,j]) A[i,j] = fi + A[i-1, si ] return A[n,B]

  18. Tímaflækja • O(n^2) ? • Fylkið er n * B. • Hvað er B?? • Er þetta margliðubundið? • Hvað táknar það?

  19. Margliðubundin reiknirit • Reiknirit er margliðubundið, ef tímaflækja þess er efri mörkuð af margliðu í stærð inntaks. • Hver er stærð inntaksins hér? • s1, s2, ..., sn = n tölur minni en B • B • B er táknað með log B bitum • Stærð inntaks = O(n * log B).

  20. Meira um tímaflækju • Reiknirit krefst O(n * B) tíma. • Inntaksstærð = O(n * log B). • Hversu stórt getur B orðið? • Af hverju ekki 2^n ? • Þá er aðferð okkar alls ekki margliðubundin • “Pseudopolynomial time” = Margliða af stærð inntaks og stærsta gildis.

  21. Flækjustigshópurinn NP • NP = flokkur ákvörðunarverkefna sem eru leysanleg á margliðubundnum tíma af brigðgengri vél (non-deterministic polynomial time)

  22. Brigðgeng vél • Giskar á n^t bita (eða tölur), t einhver fasti • Vinnur þaðan í frá eins og venjuleg tölva. • (“tölvur” eru allar jafnöflugar, innan margliðu) • Leysir verkefnið rétt, ef fyrir einhverja af þessum ágiskunum, þá skilar hún réttri lausn.

  23. NP • NP = flokkur þeirra ákvörðunarverkefna þar sem sannreyna má tillögu að lausn á margliðutíma. • “Tillaga að lausn” : “certificate” • Sannreyning: • Prófa að tillagan sé gild lausn • Prófa að lausnin uppfylli kröfur verkefnisins

  24. Sannreyning á 3-Litun • 3-Litun: Gefið net, má lita það með 3 litum? 3LitaPróf(G, Litur[]) // Gefin ‘litun’ á G fyrir hvern hnút v í V ef (Litur[v] > 3 || Litur[v]<1) skila “Ósatt” fyrir hvern u granna v ef (Litur[u] == Litur[v]) skila “Ósatt” skila “Satt”

  25. Ákvörðunarverkefnið Bakpoki • Gefið: n “hlutir” með • Kostnaður s1, s2, ..., sn ( kostnaður) • Framlegð f1, f2, ..., fn ( hagnaður) • Kostnaðarþak B • Hagnaðarlágmark F • Spurning: Er til mengi S af hlutum þ.a. • Heildarvægi hlutanna sé minni en B: iS si  B • Heildarframlegð sé allavega F: iS fi  F

  26. Bakpoki er í NP • “Certificate”: Hlutmengi S af hlutum • Sannprófun: Prófa hvort • iS si  B • iS fi  F

  27. Subset Sum • Gefið: n “hlutir” með • Stærð s1, s2, ..., sn • Kostnaðarþak B • Finna: Mengi S af þessum hlutum þ.a. • Heildarvægi hlutanna sé minni en B iS si  B • Heildarvægi sé hámarkað

  28. Subset Sum ákvörðunarverkefni • Gefið: n “hlutir” með • Stærð s1, s2, ..., sn • Kostnaðarmark L • Finna: Mengi S af þessum hlutum þ.a. • Heildarvægi hlutanna sé nákvæmlegaL iS si=L

  29. Umbreyting með sértekningu • Fullyrðing: SubsetSum p Bakpoki • Gefið inntak I f. SS, útbúum inntak I’ f. BP: • n hlutir sem áður • Sömu stærðir s1, s2, ..., sn • Framlegðir sama og stærðir, fi = si • B og F bæði gerð jöfn L • Nú er Bakpoki(I’) = SubsetSum(I)

  30. Umbreyting með sértekningu • Fullyrðing: SubsetSum p Bakpoki • Gefið inntak I f. SS, útbúum inntak I’ f. BP: • Inntak I f. SubsetSum • n hlutir • Stærðir s1, s2, ..., sn • Kostnmark L • Inntak I’ f. Bakpoka • Sömu n hlutir • Sömu s1, s2, ..., sn • Framlegðir f1, ..., fn • Jafnar stærðum, fi = si • B = L, F = L • Nú er Bakpoki(I’) = SubsetSum(I)

  31. Ákvörðunarverkefnið 2-Hlutun • Gefið: Mengi U með n “hlutum” með kostnað s1, s2, ..., sn • Finna: Skiptingu í mengin S og S’ • U = S  S’, og S  S’ =  • Skorða: Dreifa kostnaðinum allveg jafnt • iS si = iS’ si

  32. Önnur einföld umbreyting • Fullyrðing: 2-Hlutun p SubsetSum • Gefið inntak I f. 2H, útbúum inntak I’ f. SS: • n hlutir sem áður • Sömu stærðir s1, s2, ..., sn • Setjum L = (i=1,...,n si) / 2 • SubsetSum(I’) = “já”  2Hlutun(I) = “já”

More Related