PROBLEM PAKOWANIA (BIN-PACKING PROBLEM)

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

METODA PODZIAŁU I OGRANICZEŃ (Branch and Bound Method)
Joanna Sawicka Wydział Nauk Ekonomicznych, Uniwersytet Warszawski
Planowanie bezkolizyjnego ruchu w środowisku wielu robotów z wykorzystaniem gier niekooperacyjnych OWD
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Wybrane zastosowania programowania liniowego
IV Tutorial z Metod Obliczeniowych
Grażyna Mirkowska PJWSTK 15 listopad 2000
Metoda elementów skończonych cd.
Techniki konstrukcji algorytmów
Badania operacyjne. Wykład 1
Badania operacyjne. Wykład 2
Modelowanie konstrukcji z uwzględnieniem niepewności parametrów
Wykład no 11.
Programowanie liniowe całkowitoliczbowe
ZŁOŻONOŚĆ OBLICZENIOWA
ALGORYTMY GEOMETRYCZNE.
WYKŁAD 7. Spójność i rozpięte drzewa
Statystyka w doświadczalnictwie
Zagadnienie transportowe
PROPOZYCJA PROJEKTÓW hp1d, hp2d, hp3d
Rozpoznawanie Twarzy i Systemy Biometryczne, 2005/2006
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz,
Wykład 2: Upraszczanie, optymalizacja i implikacja
Podstawy projektowania i grafika inżynierska
Podstawy projektowania i grafika inżynierska
Rzędy wielkości funkcji
Algorytmy i struktury danych
dr inż. Piotr Muryjas Wyższa Szkoła Przedsiębiorczości i Administracji
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
O relacjach i algorytmach
Przegląd podstawowych algorytmów
Algorytmy i struktury danych
Ocena przydatności algorytmu – czas działania (złożoność czasowa)
Podstawy analizy matematycznej II
Obserwatory zredukowane
Stabilność Stabilność to jedno z najważniejszych pojęć teorii sterowania W większości przypadków, stabilność jest warunkiem koniecznym praktycznego zastosowania.
Algorytmy i struktury danych
Równania rekurencyjne
ALGORYTMY OPTYMALIZACJI
Technika optymalizacji
Modelowanie i identyfikacja 2010/2011Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz, Katedra.
Teoria sterowania 2011/2012Stabilno ść Kazimierz Duzinkiewicz, dr hab. in ż. Katedra In ż ynierii Systemów Sterowania 1 Stabilność Stabilność to jedno.
Podstawy analizy matematycznej I
Dana jest sieć dystrybucji wody w postaci: Ø      m- węzłów,
Sterowanie – metody alokacji biegunów II
Źródła błędów w obliczeniach numerycznych
Maciej Paszyński Katedra Informatyki Akademia Górniczo-Hutnicza
MS Excel - wspomaganie decyzji
Algorytmika.
Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne.
Grafika i komunikacja człowieka z komputerem
EXCEL Wstęp do lab. 4. Szukaj wyniku Prosta procedura iteracyjnego znajdowania niewiadomej spełniającej warunek będący jej funkcją Metoda: –Wstążka Dane:
Metody matematyczne w inżynierii chemicznej
I T P W ZPT 1 Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. b =  log 2 |S|  Problem kodowania w automatach Minimalna.
WYKŁAD 06 Programowanie dynamiczne Grażyna Mirkowska.
NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)
Wstęp do programowania Wykład 4
Zarządzanie projektami
Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Treść dzisiejszego wykładu l Postać standardowa zadania PL. l Zmienne dodatkowe w zadaniu PL. l Metoda simpleks –wymagania metody simpleks, –tablica simpleksowa.
Treść dzisiejszego wykładu l Analiza wrażliwości –zmiana wartości współczynników funkcji celu, –zmiana wartości prawych stron ograniczeń. l Podejścia do.
Metody optymalizacji Materiał wykładowy /2017
Efektywność algorytmów
Co do tej pory robiliśmy:
Problem ustalania grafiku ciąg dalszy
ALGORYTMY I STRUKTURY DANYCH
Własności asymptotyczne ciągów zmiennych losowych
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

PROBLEM PAKOWANIA (BIN-PACKING PROBLEM) 1. Sformułowanie problemu pakowania 2. Zastosowania problemu pakowania 3. Złożoność obliczeniowa 3.1. NP-zupełność problemu 3.2. Silna NP-zupełność problemu 4. Metody zachłanne oparte na strategii listowej 5. Asymptotyczne oszacowanie algorytmu 6. Asymptotyczny schemat obliczeń 7. Problem rozkroju

PROBLEM PAKOWANIA Dane jest n elementów o zadanych rozmiarach wi i m pudełek o jednakowej pojemności b. Należy przydzielić elementy do pudełek nie przekraczając ich rozmiaru, tak aby liczba wykorzystanych pudełek była minimalna. przy ogr.:

Można założyć, że pudełka mają rozmiar jednostkowy (przeskalowanie) Problem pakowania cd. Można założyć, że pudełka mają rozmiar jednostkowy (przeskalowanie) Dla listy nieujemnych liczb a1, ..., an, gdzie ai  1 dla i = 1, ..., n, należy znaleźć kN i przyporządkowanie f:{1, ..., n}  {1, ..., k} takie że dla j = 1, ..., k i k jest minimalne. elementy ai 0,2 0,2 0,25 0,25 0,3 0,3 0,3 0,4 0,4 0,5 0,6 pudełka 0,4 0,2 0,25 0,25 0,3 0,6 0,3 0,5 0,4 0,3 0,2 k=5

Zastosowania problem cięcia materiału - cięcie odcinków o zadanej długości z rur, kłód, prętów, ... transmisja danych - wysyłanie określonych porcji danych w minimalnej liczbie pakietów planowanie załadunku - załadunek produktów o określonej wadze na samochody, wagony, ... przydział pamięci w systemach ze stronicowaniem pamięci planowanie projektów, produkcji – minimalizacja liczby osób (maszyn) koniecznych do wykonania zbioru zadań o określonej pracochłonności w założonym horyzoncie czasowym ... Problem pakowania można uogólnić do przypadku pakowania elementów wielowymiarowych. Jest to przypadek szczególny problemu rozkroju (cutting problem).

NP-zupełność problemu pakowania 1. Problem pakowania, BP, należy do klasy NP, BPNP. 2. Wersja decyzyjna problemu pakowania jest NP-zupełna. Problem podziału zbioru (partition problem, PP) Dany jest zbiór elementów A = {a1, ..., an} o rozmiarach s(ai) > 0. Czy istnieje A’A taki że ? Transformacja wielomianowa PP  BP Elementom ai o rozmiarze s(ai) w problemie podziału zbioru odpowiadają elementy ai w problemie pakowania o rozmiarze ŝi(ai)= . Czy istnieje rozwiązanie problemu pakowania o liczbie pudełek nie przekraczającej y = 2 ?

Brak metody dokładnej wielomianowej dla problemu pakowania Jeśli istnieje rozwiązanie problemu podziału zbioru to a zbiory A’ i A\A’ wyznaczają zawartość 2 pudełek, każde o łącznym rozmiarze równym 1 . Dla A’ (i analogicznie dla A\A’) zachodzi: Czyli problem pakowania ma również rozwiązanie. Jeśli problem pakowania ma rozwiązanie to z uwagi na łączny rozmiar elementów i dostępny limit 2 pudełek, oba pudełka są wypełnione. Załóżmy, że zawartość jednego z nich wyznacza zbiór A’. Wówczas: Czyli problem podziału zbioru ma również rozwiązanie. Brak metody dokładnej wielomianowej dla problemu pakowania (przy założeniu P  NP).

Brak metody dokładnej pseudowielomianowej dla problemu pakowania Silna NP-zupełność problemu pakowania Problem 3-podziału (3-partition problem) Dany jest skończony zbiór elementów A = {a1, ..., a3n} o rozmiarach s(ai) takich że gdzie =nB. Czy zbiór A może zostać podzielony na n rozłącznych podzbiorów A1, ..., An takich że dla j = 1, ..., n? Problem 3-podziału jest silnie NP-zupełny Problem 3-podziału jest przypadkiem szczególnym problemu pakowania (podzbiory Aj pełnią rolę pudełek) Problem pakowania jest silnie NP-zupełny Brak metody dokładnej pseudowielomianowej dla problemu pakowania (przy założeniu P  NP).

algorytmy aproksymacyjne (przybliżone) Algorytmy zachłanne algorytmy aproksymacyjne (przybliżone) algorytmy listowe - pakowane elementy umieszczane są na liście, k-ty element listy jest umieszczany w pudełkach przed elementem k+1 Next Fit (NF) k=1 s=0 for i=1 to n do if (s+ai > 1) then k=k+1 and s=0 f(i)=k s=s+ai I: 0,5 0,8 0,3 0,5 0,1 0,2 0,9 0,7 złożoność: O(n) 0,5 0,3 0,2 0,1 0,1 0,9 k=6 0,9 0,8 0,5 0,8 0,7 NF(I)=6 0,7 OPT(I)=4 0,5 0,5 0,3 0,2

Oszacowanie jakości rozwiązań metody Next Fit Górne oszacowanie błędu dla dowolnej instancji IDBP wynosi: NF(I)  2OPT(I)-1 gdzie NF(I), OPT(I) oznaczają liczbę pudełek w rozwiązaniu przybliżonym i optymalnym. Dowód (k=NF(I)) zawartość 2 kolejnych pudełek musi przekraczać 1 sumowanie nierówności po wszystkich pudełkach k/2 jest liczbą całkowitą czyli zaokrąglenie w górę sumy ai i pomniejszenie o 1 nie spowoduje odwrócenia nierówności dla dowolnej instancji

Podane górne oszacowanie błędu jest ścisłe ponieważ istnieje instancja dla której jest osiągane n elementów o rozmiarach: 2, -1, 2, -1, ..., 2 gdzie  jest dowolnie małą liczbą dodatnią: 2 1- 2 1- . . . 2 NF: OPT: 1- 1- 1- 1- 2 n/2 2 2 2 . . . 2 2 2 + (1-) = 1+ > 1 n/2 NF(I)=n OPT(I)= n/2+1  OPT(I)-1= n/2  (n-1)/2 2OPT(I)-1  n NF(I)  2OPT(I)-1

algorytm pierwszego dopasowania First Fit (FF) algorytm pierwszego dopasowania złożoność O(n2) górne oszacowanie błędu nie gorsze niż dla NF: FF(I)  2OPT(I)-1 oszacowanie Garey’a-Johnson’a (1976): FF(I)  17/10 OPT(I) for i=1 to n do I: 0,5 0,8 0,3 0,5 0,1 0,2 0,9 0,7 0,2 0,5 0,3 0,2 0,1 0,1 0,9 k=5 0,9 0,3 0,8 0,8 OPT(I)=4 0,7 FF(I)=5 0,7 0,5 0,5 0,5

algorytm najlepszego dopasowania Best Fit (BF) algorytm najlepszego dopasowania złożoność O(n2) górne oszacowanie błędu nie gorsze niż dla FF for i=1 to n do 0,5 0,8 0,3 0,5 0,1 0,2 0,9 0,7 I: 0,2 0,5 0,3 0,2 0,1 0,1 0,9 k=5 0,9 0,3 0,8 0,8 0,7 BF(I)=5 0,7 OPT(I)=4 0,5 0,5 0,5

First Fit (FF) vs.Best Fit (BF) 0,5 0,6 0,2 0,3 0,4 I’: 0,5 0,6 0,4 0,2 0,3 0,3 0,4 k=2 FF(I)=2 OPT(I)=2 k=3 0,4 0,2 FF(I’)=3 0,2 0,6 0,6 0,5 0,5 0,3 k=3 0,3 0,4 0,3 0,2 BF(I)=3 0,2 k=2 BF(I’)=2 OPT(I’)=2 0,6 0,6 0,5 0,5 0,4

Metody zachłanne typu First Fit (FF), Next Fit (NF), Best Fit (BF) to metody typu on-line nie wymagające znajomości całej listy elementów a priori. Metody te zachowują się dobrze dla dużej liczby małych elementów i preferują sytuacje, gdy elementy duże są analizowane przed małymi. Poszukiwanie efektywnych metod: konstrukcja heurystyki analiza zachowania metody w najgorszym przypadku propozycja nowej heurystyki eliminującej zachowania niekorzystne Metody zachłanne oparte na posortowanej liście elementów: First Fit Decreasing (FFD) Best Fit Decreasing (BFD) są metodami typu off-line. Polegają one na uruchomieniu metod FF i BF dla listy elementów posortowanej według ich nierosnących rozmiarów.

First Fit Decreasing (FFD) 0,9 0,8 0,7 0,5 0,5 0,3 0,2 0,1 0,1 0,2 0,3 0,5 FFD(I)=4 BFD(I)=4 0,5 0,3 0,2 0,1 OPT(I)=4 0,9 0,9 0,8 0,8 0,7 0,7 0,5 0,5 Dla przedstawionego przykładu działanie metody BFD jest analogiczne do FFD.

First Fit Decreasing (FF) vs.Best Fit Decreasing(BF) 0,7 0,4 0,4 0,15 0,15 0,1 0,1 I’: 0,7 0,4 0,4 0,2 0,15 0,15 0,15 0,1 k=2 FFD(I)=2 OPT(I)=2 k=3 FFD(I’)=3 0,15 0,1 0,2 0,15 0,4 0,4 0,7 0,7 0,4 0,4 0,15 k=3 BFD(I)=3 0,15 0,2 0,1 0,15 k=2 BFD(I’)=2 OPT(I’)=2 0,15 0,15 0,4 0,4 0,7 0,7 0,4 0,4 0,1

OCENA NAJGORSZEGO PRZYPADKU Ocena jakości rozwiązań generowanych przez heurystykę A odbywa się m.in. w oparciu o asymptotyczne oszacowanie . Dla problemu optymalizacyjnego  definiujemy: - OPT(I) jako optymalną wartość funkcji celu dla instancji ID, A(I) jako wartość funkcji celu dla rozwiązania wygenerowanego przez algorytm aproksymacyjny A dla instancji ID, - (dla problemu minimalizacji funkcji celu). Asymptotycznym oszacowaniem algorytmu aproksymacyjnego A rozwiązującego problem  nazywamy: = inf{r1: dla pewnej liczby KN, SA(I)  r dla każdego konkretnego problemu ID spełniającego warunek OPT(I)  K} Jest to jednoznaczna miara jakości algorytmu, im bliższa jedności tym lepiej, .

Oszacowanie jakości rozwiązań metody First Fit Decreasing Oprócz oszacowania górnego błędu określa się także oszacowanie dolne I={a1, ..., a30n} 6n 6n 6n 12n ½+ ¼+2 ¼+ ¼-2 ¼-3 ¼-3 8 ¼-2 ¼-2 ¼+2 ¼+ ¼-2 ¼+ ¼-2 1 1 ¼-2 ¼+2 ¼+ ½+ ¾+3 ¾+3 1-8 ½+ ¼-2 ¼+2 ¼+ ¼-2 6n 2n 3n 6n 3n OPT(I)=9n FFD(I)=11n rozwiązanie może być dowolnie duże (ze wzrostem n)

ASYMPTOTYCZNE APROKSYMACYJNE SCHEMATY OBLICZEŃ Asymptotycznym aproksymacyjnym schematem obliczeń (asymptotic approximation scheme) dla problemu optymalizacyjnego  nazywamy parę algorytmów A i A’, takich że: A’ jest algorytmem wielomianowym, który dla zadanej dokładności  > 0 oblicza liczbę c A jest algorytmem, który dla zadanej instancji z dziedziny problemu ID oraz  > 0 znajduje rozwiązanie, takie że Algorytm A jest wielomianowym asymptotycznym aproksymacyjnym schematem obliczeń (polynomial-time asymptotic approximation scheme) jeśli dla każdego ustalonego  > 0, A jest algorytmem wielomianowym. Algorytm A jest w pełni wielomianowym asymptotycznym aproksymacyjnym schematem obliczeń (fully polynomial-time asymptotic approximation scheme) jeśli funkcja złożoności obliczeniowej jest ograniczona od góry przez wielomian zależny od rozmiaru instancji N(I) oraz .

Asymptotyczny schemat aproksymacyjny dla problemu pakowania (Fernandez de la Vega & Leuker 1981) idea metody: - grupowanie n elementów w m+2 grupach według ich rozmiaru - umieszczenie największych elementów z pierwszej grupy po jednym elemencie w pudełku - zapakowanie m grup elementów po zaokrąglenie rozmiarów elementów w danej grupie do największego (rozwiązanie dla niewielkiej liczby różnych rozmiarów elementów znajdowane jest przez rozwiązanie zadania programowania liniowego) - uzupełnienie wykorzystanych pudełek (w miarę możliwości) najmniejszymi elementami z ostatniej grupy metoda gwarantuje dla dowolnego  > 0 rozwiązanie o liczbie pudełek otrzymane w czasie (dla ustalonego  jest to metoda wielomianowa, czas obliczeń rośnie ze wzrostem dokładności)

Asymptotyczny schemat aproksymacji umożliwia uzyskanie dla dowolnego  > 0 wyniku o błędzie mieszczącym się w określonych granicach zależnych od . (schemat wielomianowy pozwala na jego uzyskanie w czasie wielomianowym, a schemat w pełni wielomianowy w czasie ograniczonym przez rozmiar instancji i odwrotność ). Wielomianowe asymptotyczne schematy aproksymacji pozwalają uzyskać rozwiązania o gwarantowanej jakości w czasie wielomianowym. Zwiększanie dokładności wyniku wpływa na wydłużenie czasu obliczeń.

PROBLEM ROZKROJU (CUTTING PROBLEM) Problem pakowania może być postrzegany jako jednowymiarowy problem rozkroju. Problem rozkroju – umieszczanie mniejszych obiektów geometrycznych o skończonych (niezerowych) rozmiarach wewnątrz większych obszarów o również ograniczonych (niezerowych) rozmiarach.

Sformułowanie problemu zależy od: liczby wymiarów (1, 2, 3, ..., -wymiarowy rozkrój) funkcji celu (np. minimalizacja strat materiału, maksymalizacja liczby rozmieszczonych elementów) kształtu obiektu - regularne np. prostokąty, koła, kostki - nieregularne (wypukłe lub wklęsłe) - występowanie dziur i możliwość umieszczania obiektu w obiekcie dodatkowych ograniczeń: - dopuszczalność obrotu obiektów - minimalne odległości między obiektami - sposób cięcia np. tylko cięcia gilotynowe (od krawędzi do krawędzi materiału) - dopuszczalna liczba cięć - ...

Problemy rozkroju sklasyfikowane są wg własnej notacji (Dyckhoff 1990). Większość problemów rozkroju to problemu silnie NP-trudne. (jeden z najprostszych wariantów, problem 1-wymiarowego rozkroju, czyli problem pakowania jest już silnie NP-trudny) Zastosowania w: przemyśle stoczniowym, papierniczym, drzewnym, tekstylnym, obuwniczym,... telekomunikacji (np. umieszczanie przewodów w osłonach) architekturze, geodezji logistyce (np. załadunek samochodów, statków) wykorzystaniu zasobów komputerowych (np. pamięci) równoważeniu obciążeń linii produkcyjnych ...