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źć kN 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, BPNP. 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 IDBP 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 ID, A(I) jako wartość funkcji celu dla rozwiązania wygenerowanego przez algorytm aproksymacyjny A dla instancji ID, - (dla problemu minimalizacji funkcji celu). Asymptotycznym oszacowaniem algorytmu aproksymacyjnego A rozwiązującego problem nazywamy: = inf{r1: dla pewnej liczby KN, SA(I) r dla każdego konkretnego problemu ID 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 ID 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 ...