Problem plecakowy (KNAPSACK PROBLEM).



Podobne dokumenty
Wykład 2: Uczenie nadzorowane sieci neuronowych - I

Projekt 6 6. ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH CAŁKOWANIE NUMERYCZNE

Wykład 2: Uczenie nadzorowane sieci neuronowych - I

Sortowanie szybkie Quick Sort

Badania operacyjne w logistyce i zarządzaniu produkcją

Przykład 5.1. Kratownica dwukrotnie statycznie niewyznaczalna

11/22/2014. Jeśli stała c jest równa zero to takie gry nazywamy grami o sumie zerowej.

Twierdzenie Bezouta i liczby zespolone Javier de Lucas. Rozwi azanie 2. Z twierdzenia dzielenia wielomianów, mamy, że

Poszukiwanie optymalnego wyrównania harmonogramu zatrudnienia metodą analityczną

ZAGADNIENIE TRANSPORTOWE

Zestaw zadań 4: Przestrzenie wektorowe i podprzestrzenie. Liniowa niezależność. Sumy i sumy proste podprzestrzeni.

7. Wykład VII: Warunki Kuhna-Tuckera

STATYSTYKA MATEMATYCZNA WYKŁAD 5 WERYFIKACJA HIPOTEZ NIEPARAMETRYCZNYCH

MIKROEKONOMIA Prof. nadzw. dr hab. Jacek Prokop

RÓWNOWAGA STACKELBERGA W GRACH SEKWENCYJNYCH

Laboratorium ochrony danych

W praktyce często zdarza się, że wyniki obu prób możemy traktować jako. wyniki pomiarów na tym samym elemencie populacji np.

Stanisław Cichocki. Natalia Nehrebecka. Wykład 7

CAŁKOWANIE NUMERYCZNE całki pojedyncze

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 1. Układy równań liniowych

Zarządzanie ryzykiem w przedsiębiorstwie i jego wpływ na analizę opłacalności przedsięwzięć inwestycyjnych

Sztuczne sieci neuronowe

Krzysztof Borowski Zastosowanie metody wideł cenowych w analizie technicznej

ZASTOSOWANIE KLASYCZNEGO ALGORYTMU GENETYCZNEGO DO ROZWIĄZANIA ZBILANSOWANEGO ZAGADNIENIA TRANSPORTOWEGO

Temat: Algorytmy zachłanne

Stanisław Cichocki. Natalia Nehrebecka. Wykład 6

BADANIA OPERACYJNE ANALITYKA GOSPODARCZA

KRZYWA BÉZIERA TWORZENIE I WIZUALIZACJA KRZYWYCH PARAMETRYCZNYCH NA PRZYKŁADZIE KRZYWEJ BÉZIERA

Algorytmy. i podstawy programowania. eci. Proste algorytmy sortowania tablic. 4. Wskaźniki i dynamiczna alokacja pami

Definicje ogólne

Algorytmy szukania równowag w grach dwumacierzowych

Rozwiązywanie zadań optymalizacji w środowisku programu MATLAB

WikiWS For Business Sharks

MATEMATYKA POZIOM ROZSZERZONY Kryteria oceniania odpowiedzi. Arkusz A II. Strona 1 z 5

Portfele zawierające walor pozbawiony ryzyka. Elementy teorii rynku kapitałowego

Diagonalizacja macierzy kwadratowej

Oligopol dynamiczny. Rozpatrzmy model sekwencyjnej konkurencji ilościowej jako gra jednokrotna z pełną i doskonalej informacją

Stanisław Cichocki. Natalia Nehrebecka. Wykład 6

p Z(G). (G : Z({x i })),

Zaawansowane metody numeryczne

KURS STATYSTYKA. Lekcja 1 Statystyka opisowa ZADANIE DOMOWE. Strona 1

Analiza danych OGÓLNY SCHEMAT. Dane treningowe (znana decyzja) Klasyfikator. Dane testowe (znana decyzja)

Algorytmy i struktury danych.

Stanisław Cichocki Natalia Nehrebecka. Zajęcia 4

Stanisław Cichocki. Natalia Nehrebecka. Wykład 6

(Dantzig G. B. (1963))

6. ANALIZA POST-OPTYMALIZACYJNA analiza wrażliwości rozwiązania optymalnego

Wykład 1 Zagadnienie brzegowe liniowej teorii sprężystości. Metody rozwiązywania, metody wytrzymałości materiałów. Zestawienie wzorów i określeń.

SZACOWANIE NIEPEWNOŚCI POMIARU METODĄ PROPAGACJI ROZKŁADÓW

Proste modele ze złożonym zachowaniem czyli o chaosie

ZESTAW ZADAŃ Z INFORMATYKI

Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: Badania operacyjne. Temat ćwiczenia: Problemy rozkroju materiałowego, zagadnienia dualne

Wprowadzenie do Sieci Neuronowych Sieci rekurencyjne

BADANIA OPERACYJNE. Podejmowanie decyzji w warunkach niepewności. dr Adam Sojda

Dobór procesora sygnałowego w konstrukcji regulatora optymalnego

Badanie współzależności dwóch cech ilościowych X i Y. Analiza korelacji prostej

Problemy jednoczesnego testowania wielu hipotez statystycznych i ich zastosowania w analizie mikromacierzy DNA

n liczba zmiennych decyzyjnych c współczynniki funkcji celu a współczynniki przy zmienych decyzyjnych w warunkach

SZTUCZNA INTELIGENCJA

Regulamin promocji 14 wiosna

Natalia Nehrebecka. Zajęcia 4

5. OPTYMALIZACJA GRAFOWO-SIECIOWA

Podejście zachłanne, a programowanie dynamiczne

I. Elementy analizy matematycznej

Wstęp Funkcja pliki nagłówkowe i typ tablicowy. Wstęp Pliki nagłówkowe i typ tablicowy. Wstęp Funkcja fill_array() Wstęp. Notatki. Notatki.

Podstawy teorii falek (Wavelets)

STATYSTYCZNA ANALIZA WYNIKÓW POMIARÓW

METODA UNITARYZACJI ZEROWANEJ Porównanie obiektów przy ocenie wielokryterialnej. Ranking obiektów.

Stateczność układów ramowych

Modele wieloczynnikowe. Modele wieloczynnikowe. Modele wieloczynnikowe ogólne. α β β β ε. Analiza i Zarządzanie Portfelem cz. 4.

Statystyka Opisowa 2014 część 2. Katarzyna Lubnauer

OPTYMALIZACJA ALGORYTMÓW WYZNACZANIA RUCHU CIECZY LEPKIEJ METODĄ SZTUCZNEJ ŚCIŚLIWOŚCI

1. SPRAWDZENIE WYSTEPOWANIA RYZYKA KONDENSACJI POWIERZCHNIOWEJ ORAZ KONDENSACJI MIĘDZYWARSTWOWEJ W ŚCIANIE ZEWNĘTRZNEJ

OPTYMALIZACJA KOSZTÓW PRZEBUDOWY PORTFELA JAKO ZADANIE TRANSPORTOWE. 1. Problem badawczy

XLI OLIMPIADA FIZYCZNA ETAP WSTĘPNY Zadanie teoretyczne

STARE A NOWE KRAJE UE KONKURENCYJNOŚĆ POLSKIEGO EKSPORTU

ZASADY PRZYJĘĆ NA I ROK STUDIÓW STACJONARNYCH I NIESTACJONARNYCH W POLITECHNICE KOSZALIŃSKIEJ W ROKU AKADEMICKIM 2007/2008

PODSTAWA WYMIARU ORAZ WYSOKOŚĆ EMERYTURY USTALANEJ NA DOTYCHCZASOWYCH ZASADACH

D Archiwum Prac Dyplomowych - Instrukcja dla studentów

Zmodyfikowana technika programowania dynamicznego

Prawdopodobieństwo geometryczne

Regulamin promocji upalne lato

) będą niezależnymi zmiennymi losowymi o tym samym rozkładzie normalnym z następującymi parametrami: nieznaną wartością 1 4

Wyszukiwanie. Wyszukiwanie

Weryfikacja hipotez dla wielu populacji

XXX OLIMPIADA FIZYCZNA ETAP III Zadanie doświadczalne

Diagnostyka układów kombinacyjnych

ZASADA ZACHOWANIA MOMENTU PĘDU: PODSTAWY DYNAMIKI BRYŁY SZTYWNEJ

ANALIZA HARMONOGRAMÓW POWYKONAWCZYCH W BUDOWNICTWIE

1.1 Analiza decyzji- tablica decyzyjna, klasyfikacja

Metoda wyznaczania najtańszych 1-diagnozowalnych struktur opiniowania diagnostycznego

4. OPTYMALIZACJA WIELOKRYTERIALNA

KINEMATYKA MANIPULATORÓW

Ćwiczenie 10. Metody eksploracji danych

Sprawozdanie powinno zawierać:

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

ZASTOSOWANIE DZIANIN DYSTANSOWYCH DO STREFOWYCH MATERACY ZDROWOTNYCH. Bogdan Supeł

Proces narodzin i śmierci

Zapis informacji, systemy pozycyjne 1. Literatura Jerzy Grębosz, Symfonia C++ standard. Harvey M. Deitl, Paul J. Deitl, Arkana C++. Programowanie.

Procedura normalizacji

Transkrypt:

Problem plecakowy (KNAPSACK PROBLEM). Zagadnene optymalzac zwane problemem plecakowym swą nazwę wzęło z analog do sytuac praktyczne podobne do problemu pakowana plecaka. Chodz o to, by zapakować maksymalne cenny zbór przedmotów ne przekraczaąc ładownośc (nośnośc lub poemnośc) bagażu. Można tu wyróżnć klka sposobów rozumowana. Ops rozpoczynamy od zagadnena nabardze ogólnego. Ogólny problem plecakowy Przedmoty które oprócz unkatowe nazwy P posadaą dwe cechy: 1. masę m lub eśl kto wol obętość (bo pakowane plecaka możemy optymalzować ze względu na masę (cężar) lub ze względu na obętość 2. cenę c. Wynk: lośc k poszczególnych przedmotów (mogą być zeram) Formuła problemu: Nech: o W est wartoścą wszystkch przedmotów spakowanych w plecaku. o M max est maksymalną masą (obętoścą) plecaka Znaleźć wartośc k, take aby:. = było możlwe nawększe, oraz =1. =1. 0 Rozwązanam dopuszczalnym nazywać będzemy wszystke zbory lośc k spełnaące warunek. Rozwązanem optymalnym będze ten zbór lośc k, który spełn warunek. - nazwemy funkcą optymalzac oraz - nazwemy ogranczenam lub warunkam brzegowym. Zagadnene w swe prostoce sformułowana wydawać by sę mogło łatwym do rozwązana problemem. Nc bardze mylnego. Wbrew pozorom problem plecakowy wygenerował wele dość skomplkowanych algorytmów rozwązuących go. Strona 1

Algorytm zachłanny dla ogólnego zagadnena plecakowego. Dzałane zachłanne przypomna naturalne podeśce człoweka do zagadnena pakowana plecaka. Pakuąc plecak tak aby pomeścć w nm ak nawększą wartość człowek kerowałby sę - ednym z lub w sposób meszany - następuącym kryteram: 1) Starałby sę wyberać rzeczy nacennesze w kolenośc od nadroższe do natańsze. 2) Starałby sę zaberać rzeczy ak namnesze poczynaąc od nalżeszego przedmotu, na nacęższym skończywszy. 3) Starałby sę wyberać przedmoty w kolenośc ustawone nerosnąco ze względu na loraz ceny do wag przedmotu. Tak loraz stanow bowem ednostkową wartość przedmotu (wartość przypadaącą na ednostkę masy lub obętośc). Człowek dzałaąc strategczne po kole, podemue decyze optymalne z punktu wdzena danego kroku. Tak węc w perwszym kroku wg planu nr 1 wząłby rzecz nadroższą, wg planu nr 2 wząłby dużo lekkch, zaś wg strateg nr 3 występue uż element wyważena choć tym razem wząłby maksymalna lość przedmotów o nawększe wartośc ednostkowe. Właśne take dzałane nazywamy dzałanem zachłannym. Zbadamy teraz do akch rezultatów doprowadz nas postępowane według każde z trzech strateg zachłannych podczas pakowana 6 przedmotów do plecaka o nośnośc M max =10 m 1, przy czym każdego przedmotu mamy dowolną lość k. P c [zł] m [m] 1 Koszula flanelowa 75 7 2 Spodne dżnsowe 150 8 3 Sweter 250 6 4 Czapka baseballowa 35 4 5 Kąpelówk 10 3 6 Obuwe sportowe 100 9 Ad.1 Tabela 1. Dane do analzy rozwązań problemu plecakowego. 1 m ednostka mary umowna ednostka mary dla potrzeb przykładu. Strona 2

Zaczynamy od wybrana rzeczy nadroższe. Jest ną sweter, czyl przedmot o ndekse 3. Sweter waży 6 m, a węc możemy zapakować ch co nawyże 1 szt. Zatem k 3 =1. Wypełnony swetram plecak waży 6 m, musmy zatem eszcze doładować 4 m. Nadroższy przedmot ne przekraczaący te wag to czapka baseballowa o ndekse 4. Do plecaka zmeśc sę dokładne edna k 4 =1 szt. Plecak mamy pełen. Nasz wynk zatem to: zaś uzyskana wartość plecaka, wynos: Ad.2 k 1 =0, k 2 =0, k 3 =1, k 4 =1, k 5 =0, k 6 =0 W=k 3 c 3 +k 4 c 4 = 1 * 250 zł + 1 * 35 zł = 285 zł Teraz pakować będzemy dużo zaczynaąc od rzeczy nalżesze. Nalżesze w naszym zestawe są kąpelówk o ndekse =5. Masa m 5 =3 m. W plecaku zmeścmy ch aż k 5 =3szt. Plecak ne będze wypełnony do końca, brakue 1 m ale ne ma towaru, który małby co nawyże taką masę. Wartość plecaka w tym przypadku wynese: W=k 5 c 5 =3 * 10 zł = 30 zł Jak wdać mne nż w poprzednm przypadku, a węc ne optymalne. Wypróbumy teraz sposób trzec. Ad.3 Wylczmy wartośc ednostkowe poszczególnych przedmotów. W tym celu uzupełnmy tabelę 1 o kolumnę c /m. P c [zł] m [m] c /m 1 Koszula flanelowa 75 7 10,71 2 Spodne dżnsowe 150 8 18,75 3 Sweter 250 6 41,67 4 Czapka baseballowa 35 4 8,75 5 Kąpelówk 10 3 3,33 6 Obuwe sportowe 100 9 11,11 Tabela 2. Wartośc ednostkowe. Plecak zacznemy zapełnać swetram, gdyż one maą nawększą wartość ednostkową. Do plecaka uda nam sę zapakować 1 tak sweter. Da to łączną masę 6 m. Musmy węc zapełnć eszcze 4 m. Zmeszczą sę eszcze kąpelówk lub czapka baseballowa. Wyberamy czapkę Strona 3

baseballową (4 m) gdyż e wartość ednostkowa est wyższa od wartośc ednostkowe kąpelówek. Sprawdźmy aką uzyskalśmy wartość plecaka? W=k 3 c 3 +k 4 c 4 =1 * 250zł + 1 * 35zł = 285 zł Tym sposobem otrzymalśmy wartość taką samą ak w metodze 1, Ale ta metoda wydae sę nabardze logczna. Należy uznać, ze metoda optymalzac poprzez porządkowane wg. wartośc ednostkowe przynos nalepszy rezultat. Czy ednak est to wartość optymalna? W naszym przykładze tak ale można wykazać, że ne zawsze ten sposób rozumowana prowadz do wynku optymalnego 2. Wynk metod 1 2 ne są optymalne zaś dzałaąc wg metody 3 często otrzymuemy wynk przyblżony. Mmo to metoda nr 3 wydae sę edyną spośród rozważanych, godną uwzględnena w metodach zachłannych rozwązuących problem plecakowy. GREEDY-GENERAL-KNAPSACK,, =1,2,, ; gdze P przedmot, m masa -tego przedmotu, c cena -tego przedmotu Uporządkowane tak, aby: M max nośność (poemność) plecaka. Wynk:,,, take, że 0 oraz =1 1) Dla kolenych przedmotów, =1,2,3,.., wykona krok 2). 2) Określ nawększą wartość, spełnaącą nerówność Przym =. 3) Znalezona wartość plecaka wynos: = + + + KONIEC 2 Patrz Mace M. Sysło Algorytmy WSIP Warszawa 2002 s.217-218 Strona 4

Programowane dynamczne dla ogólnego problemu plecakowego Metoda programowana dynamcznego zapewna znalezene optymalnego rozwązana problemu plecakowego. Polega ona na umeętnym zastosowanu zasady dzel zwycęża. Generalne chodz o to aby podzelć zagadnene, na problemy mnesze łatwesze do rozwązana. Fane byłoby, gdyby poemność plecaka była mała mała była także lczba rodzaów przedmotów do upakowana. No to znadźmy rozwązana dla sytuac ak gdyby trzeba było wypełnć plecak tylko ednym rodzaem przedmotów. Dodatkowo nech poemność maksymalna plecaka zmena sę od ednostkowe, do maksymalne co 1. Wartośc wpsywać będzemy w tabel w które numer wersza odpowadać będze numerow przedmotu z tabel1 3 zaś numer kolumny nech będze koleną całkowtą poemnoścą plecaka. Wartość P defnuemy ako wartość optymalne wypełnonego plecaka o poemnośc przedmotam, których ndeksy meszczą sę mędzy 1, a. Perwszy wersz wypełnć nałatwe albowem mamy do dyspozyc tylko przedmot ednego rodzau, którym napełnamy plecak o kolenych (1, 2 10) poemnoścach. W kolene rubryczk wpsuemy wartośc plecaka. Perwszych sześć pozyc ma wartość 0 gdyż koszula waży 7 m. Dopero od poemnośc plecaka równe 7 możemy ą do nego wpakować. P c m P koszula flanelowa 75 7 1 0 0 0 0 0 0 75 75 75 75 spodne dżnsowe 150 8 2 sweter 250 6 3 czapka baseballowa 35 4 4 kąpelówk 10 3 5 obuwe sportowe 100 9 6 Tabela 3a. Tablca P wartośc upakowań plecaka wygenerowanych przez algorytm programowana dynamcznego perwszy wersz. W drugm werszu do dyspozyc mamy uż dwa cuchy. Nestety w naszym przykładze ch łączna waga przekracza dopuszczalną ładowność plecaka. Wyberamy zatem cuch droższy (spodne dżnsowe 150 zł), który zmeśc sę w plecaku począwszy od =8. Podobne w przypadku trzecego wersza, gdze do dyspozyc dochodz sweter, ale tylko on meśc sę w maksymalnym dla każdego plecaku. Wypełnmy zatem wartoścam wersze 2 3. 3 W algorytme programowana dynamcznego, koleność przedmotów ne ma znaczena, dlatego tabela nr 1 ne mus być sortowana. Przyp. aut. Strona 5

P c m P koszula flanelowa 75 7 1 0 0 0 0 0 0 75 75 75 75 spodne dżnsowe 150 8 2 0 0 0 0 0 0 75 150 150 150 sweter 250 6 3 0 0 0 0 0 250 250 250 250 250 czapka baseballowa 35 4 4 kąpelówk 10 3 5 obuwe sportowe 100 9 6 Tabela 3b. Tablca P wartośc upakowań plecaka wygenerowanych przez algorytm programowana dynamcznego drug trzec wersz. W czwartym werszu sytuaca sę neco komplkue. Do plecaka począwszy od pozyc =4 meśc sę czapka baseballowa, w pozyc =6 droższy ednak będze sweter, a w kolumne =10 zmeśc sę czapka sweter. P c m P koszula flanelowa 75 7 1 0 0 0 0 0 0 75 75 75 75 spodne dżnsowe 150 8 2 0 0 0 0 0 0 75 150 150 150 sweter 250 6 3 0 0 0 0 0 250 250 250 250 250 czapka baseballowa kąpelówk 10 3 5 obuwe sportowe 100 9 6 35 4 4 0 0 0 35 35 250 250 250 250 285 Tabela 3c. Tablca P wartośc upakowań plecaka wygenerowanych przez algorytm programowana dynamcznego czwarty wersz. Jeśl poszerzymy asortyment o kąpelówk, to tabela przyme koleną postać: Strona 6

P c m P koszula flanelowa 75 7 1 0 0 0 0 0 0 75 75 75 75 spodne dżnsowe 150 8 2 0 0 0 0 0 0 75 150 150 150 sweter 250 6 3 0 0 0 0 0 250 250 250 250 250 czapka baseballowa 35 4 4 0 0 0 35 35 250 250 250 250 285 kąpelówk 10 3 5 0 0 10 35 35 250 250 250 260 285 obuwe sportowe 100 9 6 Tabela 3d. Tablca P wartośc upakowań plecaka wygenerowanych przez algorytm programowana dynamcznego pąty wersz. I wreszce wypełnamy ostatn wersz. Buty dla każdego wedą do plecaka tylko one wcale to ne będze nawększa wartość. Zatem szósty wersz będze wyglądał tak samo ak pąty. P c m P koszula flanelowa 75 7 1 0 0 0 0 0 0 75 75 75 75 spodne dżnsowe 150 8 2 0 0 0 0 0 0 75 150 150 150 sweter 250 6 3 0 0 0 0 0 250 250 250 250 250 czapka baseballowa 35 4 4 0 0 0 35 35 250 250 250 250 285 kąpelówk 10 3 5 0 0 10 35 35 250 250 250 260 285 obuwe sportowe 100 9 6 0 0 10 35 35 250 250 250 260 285 Tabela 3. Tablca P wartośc upakowań plecaka wygenerowanych przez algorytm programowana dynamcznego kompletne wypełnona. Optymalna wartość otrzymana w pozyc P 6,10 wynos 285. Jest to ta sama wartość którą otrzymalśmy stosuąc algorytm zachłanny, tyle, że tu mamy pewność, że est to wartość nawększa. Podczas wypełnana tabel rozpoczęlśmy od sytuac naprostsze. Jeden przedmot rosnąca co eden poemność plecaka. Jeśl przedmot ne meścł sę w plecaku, to plecak pozostawał pusty (wartość 0), eśl natomast meścł sę, to przypsywalśmy wartośc plecaka krotność wartośc przedmotu (u nas krotność w całym zadanu wynosła 1). Strona 7

W następnym werszu moglśmy uż wypełnać plecak korzystaąc z wersza perwszego. 4 Podemowalśmy edną z następuących decyz: wyberz upakowane rzeczam z wersza poprzednego, dołóż rzecz o numerze 2 eśl sę zmeśc, zastąp rzecz nr 1 rzeczą nr 2 eśl e wartość est wększa meśc sę tylko edna spośród nch. Jeśl to wyberamy wększa spośród,, + Podobne w werszach następnych. Tabela P przechowue edyne wartośc optymalne spakowanego plecaka. Aby móc pokazać zestaw rzeczy składaących sę na optymalne spakowany plecak pownnśmy zbudować tabelę Q skoarzoną z tabelą P, w które przechowywać będzemy ndeksy rzeczy pakowanych do plecaka ako ostatne. To pozwol na wyznaczene zestawu rzeczy w plecaku. koszula flanelowa P c m Q 75 7 1 0 0 0 0 0 0 1 1 1 1 spodne dżnsowe 150 8 2 0 0 0 0 0 0 1 2 2 2 sweter 250 6 3 0 0 0 0 0 3 3 3 3 3 czapka baseballowa 35 4 4 0 0 0 4 4 3 3 3 3 4 kąpelówk 10 3 5 0 0 5 4 4 3 3 3 5 4 obuwe sportowe 100 9 6 0 0 5 4 4 3 3 3 5 4 Tabela 4. Tablca Q numerów rzeczy wkładanych do plecaka ako ostatne. Na pozyc Q[6,10] znadue sę numer rzeczy włożone do plecaka na końcu. Rzecz o ndekse = 4 (czapka baseballowa) waży 4 m. Zatem cofamy sę w werszu do pozyc Q[6,10-4]=Q[6,6]. Tam zapsano rzecz o ndekse =3 (sweter), który waży 6 m. W takm raze pownnśmy przeskoczyć do kolumny 6-6, ale to dae zero (wyczerpała sę poemność plecaka). Zatem w plecaku znadue sę sweter czapka baseballowa wkładane doń właśne w take kolenośc. DYNAMIC-GENERAL-KNAPSACK,, =1,2,, ; gdze P przedmot, m masa -tego przedmotu, c cena -tego przedmotu M max nośność (poemność) plecaka. Wynk: 4 Zasadę polegaącą na podemowanu nalepsze decyz z uwzględnenem stanu wynkaącego z poprzednch decyz nazywamy zasadą optymalnośc Bellmana. Strona 8

Tablca wartośc P, nalepszych upakowań plecaka o poemnośc rzeczam rodzaów od 1 do ; dla =1,2,.,n oraz =1,2, M max. Tablca Q, skoarzona z P, rzeczy P pakowanych do plecaka w ostatnm ruchu. 1) {Ustalene wartośc początkowych tablc P Q rozszerzonych dla uednolcena oblczeń o wersze kolumny zerowe.} Dla =1,2,, M max przypsz P 0, :=0, Q 0, :=0 Dla =1,2,,n przypsz P,0 :=0, Q,0 :=0. 2) Dla kolenych rzeczy =1,2,,n wykona krok 3. 3) Dla kolenych poemnośc plecaka =1,2, M max wykona krok 4. 4) Jeśl {Czyl poemność plecaka est wystarczaąca, by pomeścć rzecz } oraz, <, + to przypsz, =, + oraz, =, a w przecwnym raze pozostaw wartośc z poprzednego wersza, czyl przypsz, =, oraz, =,. KONIEC Decyzyny problem plecakowy Problem różn sę tym od ogólnego, że każda rzecz pakowana do plecaka może wystąpć tylko eden raz. Podemuemy węc decyzę pakować = 1 ne pakować = 0. Tak zdefnowany problem bardze odzwercedla rzeczywstą sytuacę pakowana plecaka. Podobne ak w przypadku możemy mówć o algorytmach zachłannych dynamcznych które przytaczam tu uż bez szerszego omówena, ze względu na duze podobeństwo do wcześne omówonych. GREEDY-DECIDE-KNAPSACK,, =1,2,, ; gdze P przedmot, m masa -tego przedmotu, c cena -tego przedmotu Uporządkowane tak, aby: M max nośność (poemność) plecaka. Wynk:,,, take, że =0 =1 oraz =1 1. Dla kolenych rzeczy = 1,2,,n wykona krok 2. 2. Jeśl,to przym k =1 przypsz M max = M max -m, a w przecwnym raze przym k =0. Strona 9

3. Utworzony ładunek plecaka ma wartość =. KONIEC =1 DYNAMIC-DECIDE-KNAPSACK,, =1,2,, ; gdze P przedmot, m masa -tego przedmotu, c cena -tego przedmotu M max nośność (poemność) plecaka. Wynk: Tablca wartośc P, nalepszych upakowań plecaka o poemnośc rzeczam rodzaów od 1 do ; dla =1,2,.,n oraz =1,2, M max. Tablca Q, skoarzona z P, rzeczy P pakowanych do plecaka w ostatnm ruchu. 1) {Ustalene wartośc początkowych tablc P Q rozszerzonych dla uednolcena oblczeń o wersze kolumny zerowe.} Dla =1,2,, M max przypsz P 0, :=0, Q 0, :=0 Dla =1,2,,n przypsz P,0 :=0, Q,0 :=0. 2) Dla kolenych rzeczy =1,2,,n wykona krok 3. 3) Dla kolenych poemnośc plecaka =1,2, M max wykona krok 4. 4) Jeśl {Czyl poemność plecaka est wystarczaąca, by pomeścć rzecz } oraz, <, + to przypsz, =, + oraz, =1, a w przecwnym raze pozostaw wartośc z poprzednego wersza, czyl przypsz, =, oraz, = 0. KONIEC Uwag końcowe Złożoność oblczenowa obydwu algorytmów zachłannych est proporconalna do n log. Podobne oba algorytmy dynamczne maą złożoność oblczenowa rzędu n M max. Należy zwrócć uwagę, że programowane dynamczne będze sprawdzać sę przy newelke lośc elementów newelke poemnośc plecaka. Dla wększych lczb algorytmy programowana dynamcznego staa sę mało praktyczne. Strona 10