Problém batohu. Zdeněk Hanzálek hanzalek@fel.cvut.cz. ČVUT FEL Katedra řídicí techniky. 5. dubna 2011



Podobné dokumenty
DYNAMICKÉ PROGRAMOVÁNÍ A PROBLÉM BATOHU

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) 9. dubna Filip Železný (ČVUT) Vytěžování dat 9.

12. Aproximační algoritmy

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Binární vyhledávací stromy pokročilé partie


Univerzita Karlova v Praze Matematicko-fyzikální fakulta. Vedoucí práce: RNDr. Martin Pergel, Ph.D.

1. Nejkratší cesta v grafu

Experimentální hodnocení kvality algoritmů

Stromy, haldy, prioritní fronty

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

ČVUT FEL X36PAA - Problémy a algoritmy. 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu

Rekurentní rovnice, strukturální indukce

Kombinatorická optimalizace

skladbu obou směsí ( v tunách komponenty na 1 tunu směsi):

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

8) Jaké jsou důvody pro použití víceprůchodového překladače Dříve hlavně kvůli úspoře paměti, dnes spíše z důvodu optimalizace

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Lineární programování

Dynamické programování

ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

Plánování úloh na jednom stroji

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

Anotace. Dynamické programování, diskrétní simulace.

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Celočíselné lineární programování(ilp)

2 Spojité modely rozhodování

Paralelní LU rozklad

bfs, dfs, fronta, zásobník, prioritní fronta, halda

bfs, dfs, fronta, zásobník

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

ENVIRONMENTÁLNÍ OPTIMALIZACE KOMŮRKOVÉ ŽELEZOBETONOVÉ DESKY

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

PLÁNOVÁNÍ CESTY MOBILNÍHO ROBOTU POMOCÍ MRAVENČÍCH ALGORITMŮ MOBILE ROBOT PATH PLANNING BY MEANS OF ANT ALGORITHMS

TGH09 - Barvení grafů

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Problém obchodního cestujícího

Rekurentní rovnice, strukturální indukce

13. Lineární programování

Paralelní grafové algoritmy

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Elegantní algoritmus pro konstrukci sufixových polí

Základní datové struktury III: Stromy, haldy

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Řešení problému vážené splnitelnosti booleovské formule pokročilou iterativní metodou

Informační systémy pro podporu rozhodování

k-dimenzionálním prostoru. problém: Zkonstruovat strom, který rozděluje prostor polorovinami

Základní grafové algoritmy

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

ŘEŠENÍ PROBLÉMU LOKACE HUBŮ POMOCÍ GENETICKÉHO ALGORITMU SOLVING THE SINGLE ALLOCATION HUB LOCATION PROBLEM USING GENETIC ALGORITHM

Y36BEZ Bezpečnost přenosu a zpracování dat. Úvod. Róbert Lórencz. lorencz@fel.cvut.cz

Složitost a NP-úplnost

Přiřazovací problém. Přednáška č. 7

Metody operačního výzkumu cvičení

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

BAKALÁŘSKÁ PRÁCE. Numerické metody jednorozměrné minimalizace

Vyhodnocování dotazů slajdy k přednášce NDBI001. Jaroslav Pokorný MFF UK, Praha

2. úkol MI-PAA. Jan Jůna (junajan)

ˇ razen ı rychlejˇ s ı neˇ z kvadratick e Karel Hor ak, Petr Ryˇsav y 20. dubna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Základy vytěžování dat

Dynamické programování

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) 9. ledna 2017

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

12. Globální metody MI-PAA

Informatika Algoritmy

Evolučníalgoritmy. Dále rozšiřována, zde uvedeme notaci a algoritmy vznikléna katedře mechaniky, Fakulty stavební ČVUT. Moderní metody optimalizace 1

Osvětlování a stínování

Algoritmizace. 1. Úvod. Algoritmus

Ekonomická formulace. Matematický model

Anotace. Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj

Úvod do celočíselné optimalizace

5 Rekurze a zásobník. Rekurzivní volání metody

Přílohy smlouvy o poskytování energetických služeb se zaručeným výsledkem

PARALELNÍ PROCESY A PROGRAMOVÁNÍ

Výpočet globálního stavu

Třídy složitosti P a NP, NP-úplnost

Operační výzkum. Přiřazovací problém.

SYNTÉZA AUDIO SIGNÁLŮ

Testování prvočíselnosti

Komplexní analýza. Laplaceova transformace. Martin Bohata. Katedra matematiky FEL ČVUT v Praze

Na začátku rozdělíme práci a určíme, které podproblémy je potřeba vyřešit. Tyto

NPRG030 Programování I, 2018/19 1 / :03:07

Metoda hrubé sily, backtracking a branch-and-bound

Ing. Ladislav Musil ČVUT FEL v Praze, Katedra Elektroenergetiky, Technická 2, Praha 6 Tel.: musill@fel.cvut.

Numerická realizace metod. lineárního a kvadratického

Vývojové práce v elektrických pohonech

Euklidovský prostor Stručnější verze

III. MKP vlastní kmitání

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Jednoznačné a nejednoznačné gramatiky

Asistivní technologie

BRZDOVÉ DESKY MERITOR PREMIUM

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

Principy indukce a rekursivní algoritmy

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

Transkript:

Problém batohu Zdeněk Hanzálek hanzalek@fel.cvut.cz ČVUT FEL Katedra řídicí techniky 5. dubna 2011 Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 1/ 15

1 Obsah přednášky 2 Úvod Formulace problému Relaxace na nedělitelnost předmětů 3 Řešení a algoritmy Řešení 4 Závěr Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 2/ 15

Formulace problému Problém batohu(knapsack problem) Instance:Nezápornáceláčíslan,c 1,...,c n,w 1,...,w n,w,kdenje početpředmětů,c 1,...,c n jsoucenypředmětů,w 1,...,w n jsou hmotnosti předmětů a W je nosnost batohu. Cíl:NaléztpodmnožinuS {1,...,n}takovou,že j S w j Wa j S c jjemaximální. Jde o jeden z nejjednodušších NP-obtížný problém. Též se někdy nazývá 0/1 Knapsack problem. Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 3/ 15

Relaxace na nedělitelnost předmětů Fractional Knapsack problem Instance:Nezápornáceláčíslan,c 1,...,c n,w 1,...,w n,w,kdenje početpředmětů,c 1,...,c n jsoucenypředmětů,w 1,...,w n jsou hmotnosti předmětů a W je maximální hmotnost batohu. Cíl:Naléztracionálníčíslax 1,...,x j,...,x n taková,že0 x j 1a n j=1 x j w j Wa n j=1 x j c j jemaximální. díkymožnostidělitpředměty(reálnéproměnnéx j )jetentoproblém řešitelný v polynomiálním čase Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 4/ 15

Řešení Fractional Knapsack problému- Dantzing[1957] pokudplatí n j=1 w j >W(opačnýpřípadjetriviální) setřiď a přeindexuj předměty podle relativní ceny, neboli aby platilo c 1 w 1 c 2 w 2... cn w n v setříděné sekvenci { nalezni index prvku, který se do batohu nevejde, nebolih :=min j {1,...,n} : } j i=1 w i >W prooptimálnířešeníjeoddělenatačásth-téhoprvku,kterásedo batohu vejde: x j :=1proj =1,...,h 1 x h := W h 1 i=1 wi w h x j :=0proj =h +1,...,n třídění prvků zabere O(nlogn) času, výpočet h se provede jednoduchým průchodem v O(n), takže tento postup vyřeší Fractional Knapsack problém v O(nlogn) existuje i algoritmus([1] str. 440), který dokáže tento problém vyřešit v O(n) převodem na Weighted Median problem Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 5/ 15

2-aproximační algoritmus pro Knapsack r-aproximační algoritmus pro maximalizaci Algoritmus A pro problém s maximalizací kriteriální funkce J se nazývá r-aproximačnípokudexistuječíslor 1takové,žeJ A (I) 1 r J (I)pro všechny instance I daného problému. Věta Nechťn,c 1,...,c n,w 1,...,w n,w,hjsounezápornáceláčísla,prokterá platí: w j Wproj =1,...,n n i=1 w i >W c 1 w 1 c 2 h =min w 2... cn w { n j {1,...,n} : j i=1 w i >W Potomvýběrlepšíhozedvouřešení {1,...,h 1}a{h}je2-aproximační algoritmus pro Knapsack problém s časovou náročností O(n). } Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 6/ 15

2-aproximační algoritmus pro Knapsack Důkaz: V libovolné instanci Knapsack problému mohou být vyřazeny prvky jejichž hmotnost je větší než nosnost batohu. Pokudje n i=1 w i W,potomcelámnožinapředmětůtvoří optimální řešení. Jelikož h i=1 c ijehornímezoptima,taklepšízedvouřešení {1,...,h 1}a{h}dosahujevícenežpolovinyoptima. Poznámka k aproximačním algoritmům: Aproximační algoritmy dávají garanci, že i v nejhorším případě bude hodnota kriteriální funkce nalezeného řešení v určité proporci k optimu. Četnost výskytu tohoto nejhoršího případu aproximační algoritmus nestuduje. Někdy namísto výkonnostního poměru r(asymptotic performance ratio) uvádíme poměrnou odchylku od optima ǫ, přitom platí r =1 + ǫ. Uvádět absolutní chybu nemá smysl. Proč? Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 7/ 15

Dynamické programování(celočíselné ceny) pro Knapsack Vstup:Cenyc 1,...,c n Z + 0,váhyw 1,...,w n,w R + 0. Výstup:S {1,...,n}taková,že j S w j Wa j S c jjemaximální. NechťCjelibovolnáhornímezoptima,např.C = n j=1 c j; x0 0 :=0;x0 k := prok=1,...,c; forj:=1tondo fork:=0tocdo s j k :=0;xj k :=xj 1 k ; fork:=c j tocdo ifx j 1 k c j +w j min{w,x j 1 k }then s j k :=1;xj k :=xj 1 k c j +w j ; end end end i :=max{k {0,...,C} :xk n < };S:= ; forj:=ndownto1do ifs j i =1thenS:=S {j};i:=i c j ; end Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 8/ 15

Dynamické programování(celočíselné ceny) pro Knapsack Pseudopolynomiální algoritmus s časovou náročností O(nC). Proměnnáx j k představujeminimálníhmotnostoceněk,jakoulze dosáhnoutvýběrempředmětůzmnožiny {1,...,j} (*)Předmětjjedándovýběruzpředmětů1,...,j,pokudprodanou cenu k dosáhne tento výběr nižší nebo stejné hmotnosti než výběr zpředmětů1,...,j 1.Algoritmuspočítátytohodnotysvyužitím rekurentní rovnice: x j k = x j 1 k c j +w j pokudpředmětjbyldándovýběru; x j 1 k pokud předmět j nebyl dán do výběru. Doproměnnés j k zapisujeme,kterýztěchtodvoupřípadůnastal. Použije se pro rekonstrukci výběru. Příklad řešený na tabuli(celočíselné ceny): n =4,w = (21,35,52,17),c = (10,20,30,10),W =100 Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 9/ 15

Dynamické programování pro Knapsack Dynamické programování obecně pseudopolynomiální algoritmus stavový prostor je konstruován díky celočíselným vstupům stavový prostor není strom, jsou v něm diamanty (též se nazývá overlaping structures, neboli v tomto místě st.prostoru si ze dvou možných řešení ponecháme pouze to výhodnější- viz(*)) tím nedochází k exponenciálnímu růstu jeho velikosti Pokud jsou váhy celočíselné, můžeme problém řešit pomocí dynamického programování, kde pro danou váhu vybereme řešení s větší cenou(*). Příklad(celočíselné váhy) na tabuli pomocí nejkratších cest a pomocí dynamického programování. Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 10/ 15

Redukce složitosti zaokrouhlením vstupních dat Časová náročnost algoritmu Dynamického programování pro Knapsack je závislánac. Myšlenka Vydělímevšechnycenyc 1,...,c n číslem2azaokrouhlímejedolů. To zrychlí algoritmus, ale může to vést na suboptimální řešení. Takto můžeme volit mezi mírou rychlosti a optimality. Zavedením cj c j := proj=1,...,n t se časová náročnost algoritmu Dynamického programování pro Knapsack sníží t-krát. Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 11/ 15

Aproximační schéma pro Knapsack Vstup:Nezáp.celáčíslan,c 1,...,c n,w 1,...,w n,w.číslo ǫ >0. Výstup:PodmnožinaS {1,...,n}taková,že j S w j Wa j S c j 1 1+ǫ j S c jprovšechnys {1,...,n}splňující j S w j W. 1 proveď 2-aproximační algoritmus pro Knapsack; řešeníoznačs 1 oceněc(s 1 ) = j S 1 c j ; 2 t :=max{1, ǫc(s 1) n }; c j := c j t proj=1,...,n; 3 proveď algoritmus Dynamického programování pro Knapsack na instanci (n, c 1,..., c n,w 1,...,w n,w)shornímezíc := 2c(S 1) t ; řešeníoznačs 2 oceněc(s 2 ) = j S 2 c j ; 4 ifc(s 1 ) >c(s 2 )thens :=S 1 elses :=S 2 Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 12/ 15

Aproximační schéma pro Knapsack Důkaztoho,ževolbaděliteletvkroku2(t :=max{1, ǫc(s 1) n })vede na(1 + ǫ)-aproximační algoritmus lze nalézt v[1]. ČasovánáročnostjeO(nC) =O(n c(s 1) t ) =O(n c(s 1)n ǫc(s 1 ) ) =O(n2 1 ǫ ). Knapsack je jeden z mála problémů pro něž existuje aproximační algoritmus s libovolně malou poměrnou odchylkou od optima ǫ. Pro určitémalé ǫ = n c(s 1 ) jet=1ajdevpodstatěoalgoritmus Dynamického programování pro Knapsack s horní mezí z 2-aproximační algoritmus pro Knapsack. Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 13/ 15

Knapsack- Shnutí Jeden z nejjednodušších NP-obtížných problémů Základ pro řadu dalších optimalizačních problémů(bin packing, container loading, 1-D, 2-D, 3-D cutting problem) Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 14/ 15

Literatura B.H.KorteandJensVygen. Combinatorial Optimization: Theory and Algorithms. Springer, fourth edition, 2008. Z. Hanzálek (ČVUT FEL) Problém batohu 5. dubna 2011 15/ 15