У н и в е р з и т е т у Б е о г р а д у Математички факултет. Семинарски рад. Методологија стручног и научног рада. Тема: НП-тешки проблеми паковања

Σχετικά έγγραφα
налазе се у диелектрику, релативне диелектричне константе ε r = 2, на међусобном растојању 2 a ( a =1cm

Теорија електричних кола

7. ЈЕДНОСТАВНИЈЕ КВАДРАТНЕ ДИОФАНТОВE ЈЕДНАЧИНЕ

Tестирање хипотеза. 5.час. 30. март Боjана Тодић Статистички софтвер март / 10

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА МАТЕМАТИКА ТЕСТ

г) страница aa и пречник 2RR описаног круга правилног шестоугла јесте рац. бр. јесу самерљиве

1.2. Сличност троуглова

2. EЛЕМЕНТАРНЕ ДИОФАНТОВЕ ЈЕДНАЧИНЕ

СИСТЕМ ЛИНЕАРНИХ ЈЕДНАЧИНА С ДВЕ НЕПОЗНАТЕ

2.3. Решавање линеарних једначина с једном непознатом

b) Израз за угиб дате плоче, ако се користи само први члан реда усвојеног решења, је:

1. 2. МЕТОД РАЗЛИКОВАЊА СЛУЧАЈЕВА 1

Први корак у дефинисању случајне променљиве је. дефинисање и исписивање свих могућих eлементарних догађаја.

8. ПИТАГОРИНА ЈЕДНАЧИНА х 2 + у 2 = z 2

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

6.2. Симетрала дужи. Примена

предмет МЕХАНИКА 1 Студијски програми ИНДУСТРИЈСКО ИНЖЕЊЕРСТВО ДРУМСКИ САОБРАЋАЈ II ПРЕДАВАЊЕ УСЛОВИ РАВНОТЕЖЕ СИСТЕМА СУЧЕЉНИХ СИЛА

2. Наставни колоквијум Задаци за вежбање ОЈЛЕРОВА МЕТОДА

Анализа Петријевих мрежа

Положај сваке тачке кружне плоче је одређен са поларним координатама r и ϕ.

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

6. ЛИНЕАРНА ДИОФАНТОВА ЈЕДНАЧИНА ах + by = c

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Скупови (наставак) Релације. Професор : Рака Јовановић Асиситент : Јелена Јовановић

Семинарски рад из линеарне алгебре

ВОЈИСЛАВ АНДРИЋ МАЛА ЗБИРКА ДИОФАНТОВИХ ЈЕДНАЧИНА

КРУГ. У свом делу Мерење круга, Архимед је први у историји математике одрeдио приближну вред ност броја π а тиме и дужину кружнице.

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Теорија електричних кола

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ТРАПЕЗ РЕГИОНАЛНИ ЦЕНТАР ИЗ ПРИРОДНИХ И ТЕХНИЧКИХ НАУКА У ВРАЊУ. Аутор :Петар Спасић, ученик 8. разреда ОШ 8. Октобар, Власотинце

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Вектори vs. скалари. Векторске величине се описују интензитетом и правцем. Примери: Померај, брзина, убрзање, сила.

Аксиоме припадања. Никола Томовић 152/2011

Предмет: Задатак 4: Слика 1.0

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ЛИНЕАРНА ФУНКЦИЈА. k, k 0), осна и централна симетрија и сл. 2, x 0. У претходном примеру неке функције су линеарне а неке то нису.

Факултет организационих наука Центар за пословно одлучивање. PROMETHEE (Preference Ranking Organization Method for Enrichment Evaluation)

Cook-Levin: SAT је NP-комплетан. Теодор Најдан Трифунов 305M/12

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА

ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА ПРЕГЛЕДАЊЕ

МАТРИЧНА АНАЛИЗА КОНСТРУКЦИЈА

ЗАШТИТА ПОДАТАКА Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

4. Троугао. (II део) 4.1. Појам подударности. Основна правила подударности троуглова

Једна од централних идеја рачунарства Метода која решавање проблема своди на решавање проблема мање димензије

РЕШЕЊА ЗАДАТАКА - IV РАЗЕД 1. Мањи број: : x,

6.1. Осна симетрија у равни. Симетричност двеју фигура у односу на праву. Осна симетрија фигуре

I Линеарне једначине. II Линеарне неједначине. III Квадратна једначина и неједначина АЛГЕБАРСКЕ ЈЕДНАЧИНЕ И НЕЈЕДНАЧИНЕ

Слика 1. Слика 1.2 Слика 1.1

ЕНЕРГЕТСКИ ПРЕТВАРАЧИ 2 (13Е013ЕП2) октобар 2016.

ПРИЈЕМНИ ИСПИТ. Јун 2003.

4. ЗАКОН ВЕЛИКИХ БРОЈЕВА

8.2 ЛАБОРАТОРИЈСКА ВЕЖБА 2 Задатак вежбе: Израчунавање фактора појачања мотора напонским управљањем у отвореној повратној спрези

3.1. Однос тачке и праве, тачке и равни. Одређеност праве и равни

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Хомогена диференцијална једначина је она која може да се напише у облику: = t( x)

Примена првог извода функције

6.5 Површина круга и његових делова

5.2. Имплицитни облик линеарне функције

ЛАБОРАТОРИЈСКЕ ВЕЖБЕ ИЗ ФИЗИКЕ ПРВИ КОЛОКВИЈУМ I група

Ротационо симетрична деформација средње површи ротационе љуске

ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА ПРЕГЛЕДАЊЕ

ОБЛАСТИ: 1) Тачка 2) Права 3) Криве другог реда

Писмени испит из Метода коначних елемената

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Ваљак. cm, а површина осног пресека 180 cm. 252π, 540π,... ТРЕБА ЗНАТИ: ВАЉАК P=2B + M V= B H B= r 2 p M=2rp H Pосн.пресека = 2r H ЗАДАЦИ:

Теорија одлучивања. Циљеви предавања

TAЧКАСТА НАЕЛЕКТРИСАЊА

Динамика. Описује везу између кретања објекта и сила које делују на њега. Закони класичне динамике важе:

МАСТЕР РАД УНИВЕРЗИТЕТ У БЕОГРАДУ МАТЕМАТИЧКИ ФАКУЛТЕТ. Тема: ГОРЊА И ДОЊА ГРАНИЧНА ВРЕДНОСТ НИЗА И НИЗА СКУПОВА И ЊИХОВЕ ПРИМЕНЕ У РЕЛНОЈ АНАЛИЗИ

ИЗВОД ИЗ ИЗВЕШТАЈА О ЦЕНАМА КОМУНАЛНИХ УСЛУГА - УДРУЖЕЊЕ ЗА КОМУНАЛНЕ ДЕЛАТНОСТИ -

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ЗАВРШНИ РАД КЛИНИЧКА МЕДИЦИНА 5. школска 2016/2017. ШЕСТА ГОДИНА СТУДИЈА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ЗАШТИТА ПОДАТАКА. Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

Писмени испит из Теорије површинских носача. 1. За континуалну плочу приказану на слици одредити угиб и моменте савијања у означеним тачкама.

ПОВРШИНа ЧЕТВОРОУГЛОВА И ТРОУГЛОВА

Математички факултет у Београду

I Тачка 1. Растојање две тачке: 2. Средина дужи y ( ) ( ) 2. II Права 1. Једначина прамена правих 2. Једначина праве кроз две тачке ( )

Сваки задатак се бодује са по 20 бодова. Израда задатака траје 150 минута. Решење сваког задатка кратко и јасно образложити.

Упутство за избор домаћих задатака

ВИСОКА ТЕХНИЧКА ШКОЛА СТРУКОВНИХ СТУДИЈА У НИШУ

4.4. Паралелне праве, сечица. Углови које оне одређују. Углови са паралелним крацима

ЕЛЕКТРОНИКЕ ЗА УЧЕНИКЕ ТРЕЋЕГ РАЗРЕДА

Данка Вујанац. Бојење графова. мастер рад

Универзитет у Београду, Саобраћајни факултет Предмет: Паркирање. 1. вежба

Слика 1 Ако се са RFe отпорника, онда су ова два температурно зависна отпорника везана на ред, па је укупна отпорност,

Математика Тест 3 Кључ за оцењивање

РЕШЕНИ ЗАДАЦИ СА РАНИЈЕ ОДРЖАНИХ КЛАСИФИКАЦИОНИХ ИСПИТА

ТРЕЋЕ ОТВОРЕНО ПРВЕНСТВО СРБИЈЕ У РЕШАВАЊУ ОПТИМИЗАТОРА 29. НОВЕМБАР ДЕЦЕМБАР ГОДИНЕ

Стручни рад ПРИМЕНА МЕТОДЕ АНАЛИТИЧКИХ ХИЕРАРХИJСКИХ ПРОЦЕСА (АХП) КОД ИЗБОРА УТОВАРНО -ТРАНСПОРТНЕ МАШИНЕ

6.3. Паралелограми. Упознајмо још нека својства паралелограма: ABD BCD (УСУ), одакле је: а = c и b = d. Сл. 23

Тест за 7. разред. Шифра ученика

Количина топлоте и топлотна равнотежа

ТЕЗИ ОПШТА В Ш Т 1 - Е М Ј Е Д Н А Ч И Н «Л Р В О Г А Р Ш ФИЛ030ФСК0Г ФАКУЛТЕТА УНИВЕРЗИТЕТА У A Ù y'..' Х СИМЕ М. МАРКОВИЋА ПРИМЉЕНА ЗА

7.3. Површина правилне пирамиде. Површина правилне четворостране пирамиде

Универзитет у Крагујевцу Факултет за машинство и грађевинарство у Краљеву Катедра за основне машинске конструкције и технологије материјала

Погодност за одржавање, Расположивост, Марковљеви ланци

2.1. Права, дуж, полуправа, раван, полураван

Transcript:

У н и в е р з и т е т у Б е о г р а д у Математички факултет Семинарски рад из предмета Методологија стручног и научног рада Тема: НП-тешки проблеми паковања Професор: др Владимир Филиповић Студент: Владимир Бошковић 1134-2012

1. Увод У овом раду најпре ће бити описане класе сложености алгоритама. Биће више речи о класама проблема П, НП, као и о НП-комплетним и НП-тешким проблемима. Потом следе описи НП-тешких проблема паковања као и нека њихова решења. Биће описани алгоритми за решавање једнодимензионалног и вишедимензионалног bin-packing проблема, као и алгоритам динамичког програмирања за решавање проблема 0-1 паковања ранца. 2. Класе сложености Груба подела алгоритамских проблема би могла да буде на лаке и тешке проблеме, при чему би се под лаким проблемима подразумевали они проблеми за које постоје алгоритми полиномског времена који их исправно решавају, док за тешке проблеме такав алгоритам не постоји. За алгоритам А, временске сложености Т А (n), се каже да је алгоритам полиномског времена ако постоји полином p(n) такав да је Т А (n) p(n), за свако n N, тј. Т А (n) = O(p(n k )), за неку константу k и величину улаза n. Ипак, у циљу добијања финије структуре посматраних проблема, постављају се додатни услови на алгоритме који решавају проблеме и на тај начин се проблеми који задовољавају одређене критеријуме групишу у тзв. Класе сложености. Класа сложеноси П обухвата оне алгоритамске проблеме који се могу решити у полиномском времену. У ову групу алгортиама спадају многи познати проблеми као што су алгоритми сортирања (сортирање обједињавањем, сортирање раздвајањем...), минимална повезујућа стабла, најкраћи путеви код тежинских графова итд. Класа сложености НП обухвата оне проблеме чија се решења могу верификовати (проверити) у полиномском времену. Сваки проблем који припада класи П, припада 1

такође и класи НП, али је још увек нерешено питање да ли су та два скупа једнака. Заправо, питање односта класа сложености Н и П је најважнији неразјашњен проблем теоријског рачунарства. Неки од познатих проблема који припадају класи НП су САТ проблем (проблем утврђивања да ли је нека формула исказана буловским променљивама задовољива), проблем трговачког путника итд. Пре саме дефиниције класа НП-комплетних и НП-тешких проблема, потребно је увести појам редукције проблема, односно свођења једног проблема на други. Ако су дата два проблема Р 1 и Р 2, Р 1 се своди на Р 2 ако се ефикасни алгоритам за Р 2 може искористити као потпрограм у ефикасном алгоритму за Р 1. НП-комплетни проблеми (НП-Ц) представљају скуп проблема који припадају класи НП и који су намање тешки колико и било који други проблем из класе НП. Заправо НП-комплетни проблеми представљају класу најтежих НП проблема и уколико би постојало полиномско решење било ког НП-комплетног проблема, тада би сви проблеми у класи НП били полиномски решиви и обрнуто, уколико би се доказало да неки НП-комплетан проблем није решив у полиномском времену, тада ниједан НП-комплетан проблем не би био решив у полиномском времену. Већина научника сматра да класе проблема НП и П нису једнаке. Понекад није јасно да ли проблем припада класи НП, али ипак задовољава услов да се сваки проблем из НП може свести на њега. Такви проблеми се називају НП-тешки проблеми. У наставку рада биће описани неки од НП-тешких проблема паковања. 3. НП-тешки проблеми паковања Проблеми паковања спадају у оптимицазионе проблеме, односно проблеме код којих је заједничко проналажење екстремних вредности функције дефинисане на коначном скупу. Другим речима, оптимизациони проблеми се баве проналаском оптималног решења, где се под појмом оптимално сматра најбоље решење, тако да је најпре неопходно одредити меру којом се одређује квалитет неког решења. Неки од НП-тешких проблема паковања су једнодимензионални bin-packing проблем, вишедимензионални bin-packing проблем, проблем 0-1 паковања ранца, проблем паковања ранца итд. У оквиру овог рада биће приказана нека од решења за једнодимензионални и вишедимензионални bin-packing проблем, као и за проблем 0-1 паковања ранца. 2

С обзиром да се ради о НП-тешким проблемима, не постоје ефикасни оптимални алгоритми који их решавају, већ се увек прави компромис између оптималности и ефикасности решења неки алгоритми су ефикаснији, али имају у просеку нешто лошија решења, док код неких алгоритама важи супротно. 3.1 Једнодимензионални bin-packing проблем Формални опис проблема гласи: дата је величина контејнера V и листа а 1, а 2...а n величина које треба спаковати у контејнере. Потребно је пронаћи цели број В, као и скупове Si (i=1,2...b), такве да је ai V. Решење је оптимално ако је В минимално. i Sk Постоје различити алгоритми којима се решава овај проблем, а у овом раду биће приказан алгоритам први најбољи (енгл. first-fit). Алгоритам не захтева да величине које треба спаковати у контејнере треба сортирати, међутим, показује се да ће алгоритам нешто боље резултате постићи уколико се оне најпре сортирају. Поступак решавања проблема је следећи: сваку величину треба сместити у први контејнер који има довољно простора за њу. У случају да се посматрана величина не може сместити ни у један искоришћени контејнер, отворити контејнер и у њега сместити величину. Следи алгоритам који описује решење овог проблема. Претпоставка је да је капацитет контејнера већи или једнак највећој величини коју треба сместити у контејнере. Algoritam FF.1BPP 1. S(i) = 0, i=1,2,...n; 2. Bin(i) = 0, i=1,2...n; 3. Sortirati objekte po njihovim veličinama u nerastućem poretku; 4. For i = 1 to n do 5. For j = 1 to n do 6. If S(j) + a(i) V then 7. S(i)+=a(i); 8. Bin(i)=j; 9. Break; Низ S чува информације о попуњености сваког контејнера (максимлано их може бити онолико колико има објеката које треба распоредити), па тако резултат представљеног алгоритма ће бити број елемената овог низа чија је вредност већа од 0. У низу Bin чувају се информације о томе где је који елемент распоређен (у који контејнер). 3

Основна карактеристике овог решења су једностваност и ефикасност, по цену не увек оптималног решења. Када је реч о оптималности, треба приметити да се у било ком тренутку не може десити да два или више контејнера буду до пола или мање попуњени, односно ако је крајњи резултат В искоришћених контејнера, најмање В-1 контејнер је више од половине свог капацитета попуњен. Показује се да представљено решење не користи више од 11/9OPT +1 контејнера, где је OPT оптимално решење. У случају да нема почетног сортирања елемената, граница најгорег случаја износи 17/9OPT +2 контејнера. 3.2 Вишедимензионални bin-packing проблем Вишедимензионални bin-packing проблем представља уопштење једнодимензионалног bin-packing проблема. Формални опис проблема гласи: нека је дато m различитих типова контејнера, где је сваки тип i (i=1,2...m) дефинисан капацитетом W i и фиксном ценом C i. Нека је дат скуп ствари Ј, величине n, где свака ствар ј (1 j n) има тежину w i. Потребно је спаковати све ствари у скуп контејнера, тако да укупна цена искоришћених контејнера буде минимална, при чему треба водити рачуна да укупна тежина ствари у једном контејнеру не прелази његов капацитет. У оквиру овог рада биће представљена два решења прво решење користи једнодимензионални bin-packing проблем, док се друго решење базира на проблему збира подскупова (енгл. Subset problem). 3.2.1 Решење базирано на једнодимензионалном bin-packing проблему Резултат рада овог алгоритма јесте m изводљивих решења која представљају резултат комбиновања више различитих типова контејнера. На крају је потребно само изабрати најбоље решење међу њима. Поступак рада алгоритма је следећи: у свакој итерацији алгоритма i (i=1,2...m), иницијализује се вредност k = i, као и скуп неспакованих ствари J = J и одреди се скуп Ј k ствари које могу бити спаковане у контејнер k (скуп ствари чији капацитет није већи од капацитета контејнера W k ). Потом је потребно решити једнодимензионални bin-packing проблем над скупом ствари Ј k и контејнерима капацитета W k. За решавање једнодимензионалног проблема, у овом решењу, користи се алгоритам из одељка 3.1. На крају итерације, потребно је ажурирати скуп Ј - Ј = J \ J k.уколико је скуп Ј празан, добијено је решење π i, док се у супротном инкрементира вредност k (k=k+1) и понавља 4

поступак. Резултат алгоритма је m решења (π 1, π 2,... π m ) од којих треба изабрати најбоље (решење код којих је укупна цена искоришћених контејнера најмања). Следи алгоритам који представља описано решење. Претпоставка је да важи W 1 W 2... W m и c 1 c 2... c m. Algoritam 1DIM.BPP 1. For i = 1 to m do 2. J = J; 3. k = i; 4. Jk = {j J wj Wk}; 5. Rešiti jednodimenzionalni bin-packing problem nad Wk i Jk; 6. J = J \ Jk; 7. If J then k = k+1; skoči na liniju 4; 8. Sačuvaj podelu π i ; 9. End For 10. Prikazati najbolju podelu; 3.2.2 Решење базирано на проблему збира подскупова Основна идеја овог решења је следећа: за сваки тип контејнера, контејнер се пуни елементима из скупа нераспоређених ствари тако да укупна тежина распоређених ствари контејнера буде максимална, уз услов да тежина распоређених ствари не пређе капацитет контејнера. На почетку, скуп нераспоређених ствари једнак је скупу свих ствари. Потом се, за сваки тако распоређени тип контејнера, рачуна однос цене и укупне тежине распоређених ствари у том контејнеру и за коначни распоред се бира онај код кога је тај однос најмањи, док се скуп нераспоређених ствари умањује за скуп ствари смештених у тај контејнер. Поступак се понавља док се не распореде све ствари. Следи алгоритам који представља описано решење. Algoritam SS.BPP 1. J = J; 2. For i = 1 to m do 3. Z(i) = Maksimizuj w( j) tako da w( j) W(j); j J ' 4. U S(i) smesti stvari određene u koraku 3; 5. U i* smestiti indeks i za koji je odnos c(i)/z(i) minimalan; 6. U kontejner označen sa i* smestiti stvari iz S(i*) i J = J \ S(i*); 7. Ukoliko J nije prazno, skoči na liniju 2; j J ' 5

3.3 Проблем 0-1 паковања ранца Проблем 0-1 паковања ранца такође спада у НП-тешке проблеме паковања и основна разлика овог проблема у односу на bin-packing проблеме је у томе што нам је на располагању један ранац (контејнер), одређеног капацитета, док су ствари које треба спаковати означене тежином и вредношћу, па је циљ спаковати ствари тако да укупна вредност спакованих ствари буде максимална, а да укупна тежина спакованих ствари не пређе капацитет ранца. Ознака проблема 0-1 наглашава да свака ствар мора бити узета или одбачена у целости приликом паковања ранца. Постоји и друга верзија овог проблема у којој је могуће узети део u i ствари i чија вредност у укупном збиру учествује са v i *(u i /w i ), где је v i вредност ствари i и w i тежина ствари i. Формални опис проблема гласи: нека W капацитет ранца и нека је на располагању n ствари, нумерисаних са 1,2...n, где је њихов скуп означен са S ={1,2,...n}. Нека ствар i S има тежину w i и вредност v i. Потребно је одредити вредност М тако да је M = max T S { W }. Наивно решење проблема би било генерисање свих могућих подскупова ствари и одабрати међу њима онај који има највећу цену, а чији укупни капацитет не прелази капацитет ранца. Међутим, такво решење има експоненцијалну сложеност. Применом динамичког програмирања може се добити доста бржи алгоритам, уколико је број W релативно мали. Нека је S i подскуп скупа S који садржи све ствари 1,2...n и нека је S 0 =. Нека је најбољи подскуп ствари делимичног скупа S i онај за који се постиже максимална вредност циљне суме, при чему се масимум узима преко свих подскупова оних ствари скупа S i чија укупна тежина не прелази W. За свако i=0,1...n и j=0,1...w, нека је M(i,j) максимална укупна вредност неког подскупа делимичног скупа S i који имају укупну тежину тачно једнаку ј. Дакле, за i=0 M(0,j) = 0, за свако ј W. За i=1, M(i, j) = С обзиром да је тражена вредност М једнака M = max M(n, j), за ј = 0,1,...W, потребно је одредити вредности М(n, j), за свако ј = 0,1,...W и узети највеће од њих. 6

Следи алгоритам који представља описано решење. Algoritam KNAPSACK(v, w, W) 1. For j = 0 to W do M(j) = 0; 2. For i = 0 to n do 3. For j = W downto w(i) do 4. If M(j-w(i)) + v(i) > M(j) then 5. M(j) = M(j w(i)) + v(i); 6. M = max M(j), j = 0,1,...W; 7. Return M; Укупно време извршавања алгоритма износи О(W) + O(n*W) + O(W) (прва for петља, друга for петља и линија 6). Ово време зависи од променљиве W која је део улаза, па у најгорем случају укупна сложеност овог решења може бити веома лоша (нпр. за W=2 n ). Због тога технички овај алгоритам није ефикасан, али је у пракси овај алгоритам доста бржи од алгоритма грубе силе. 4. Закључак Као што је већ речено, карактеристика НП-тешких проблема јесте да не постоји оптималан и ефикасан алгоритам који их решава, већ се мора правити компромис између ефикасности и оптималности решења. Идеја рада је била да се представе неки НП-тешки проблеми паковања и покажу нека од решења за њихово решавање. Нека решења су ефикасна, али не увек и оптимална као што је случај са описаним алгоритмима за решавање bin-packing проблема, док су нека решења мање ефикасна (барем у теорији), али увек оптимална као код приказаног решења проблема 0-1 паковања ранца. 7

Литература: [1] Mohamed Haouari, Mehdi Serairib Heuristics for the variabled sized bin-packing problem, 2009 [2] Thomas C. Cormen, Charles E. Liesorson, Ronald L. Rivest, Clifford Stein Introduction to Algorithms, The MIT Press, 2009 [3] Dejan Živković Osnove dizajna i analize algoritama, CET, 2007 [4] http://en.wikipedia.org/wiki/bin_packing_problem 8