Algorytm hybrydowy dla problemu pakowania

Podobne dokumenty
Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Optymalizacja. Wybrane algorytmy

Techniki optymalizacji

Dobór parametrów algorytmu ewolucyjnego

Algorytm genetyczny (genetic algorithm)-

Algorytmy metaheurystyczne podsumowanie

ALGORYTM EWOLUCYJNY DLA PROBLEMU SZEREGOWANIA ZADAŃ W SYSTEMIE PRZEPŁYWOWYM

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Optymalizacja. Przeszukiwanie lokalne

Zadania laboratoryjne i projektowe - wersja β

Metody Optymalizacji: Przeszukiwanie z listą tabu

Optymalizacja. Symulowane wyżarzanie

Heurystyki w podejmowaniu decyzji

Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski

Metody Programowania

Algorytmy heurystyczne w UCB dla DVRP

SZTUCZNA INTELIGENCJA

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Techniki optymalizacji

Aproksymacja funkcji a regresja symboliczna

Przeszukiwanie lokalne

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Politechnika Wrocławska Wydział Elektroniki INFORMATYKA SYSTEMÓW AUTONOMICZNYCH. Heurystyka, co to jest, potencjalne zastosowania

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu dla odczytu Australia Employment Change

Algorytmy genetyczne dla problemu komiwojażera (ang. traveling salesperson)

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

ALGORYTMY GENETYCZNE ćwiczenia

Metody optymalizacji dyskretnej

Wybrane podstawowe rodzaje algorytmów

Spacery losowe generowanie realizacji procesu losowego

ZASTOSOWANIE METOD OPTYMALIZACJI W DOBORZE CECH GEOMETRYCZNYCH KARBU ODCIĄŻAJĄCEGO

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

Heurystyczne metody przeszukiwania

Wykorzystanie nowoczesnych technik prognozowania popytu i zarządzania zapasami do optymalizacji łańcucha dostaw na przykładzie dystrybucji paliw cz.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Problemy z ograniczeniami

Tomasz M. Gwizdałła 2012/13

ALGORYTM EWOLUCYJNY DLA PROBLEMU SZEREGOWANIA ZADAŃ W SYSTEMIE PRZEPŁYWOWYM 1. WPROWADZENIE

Ewolucja Różnicowa Differential Evolution

Zaawansowane programowanie

Efektywność algorytmów

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Zastosowanie algorytmów heurystycznych do rozwiązywania problemu układania tras pojazdów

WAE Jarosław Arabas Pełny schemat algorytmu ewolucyjnego

LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE

METODY OPTYMALIZACJI. Tomasz M. Gwizdałła 2018/19

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

ALGORYTM EWOLUCYJNY DLA PROBLEMU GRUPOWANIA WYROBÓW Z ALTERNATYWNYMI MARSZRUTAMI

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

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

Algorytmy genetyczne w interpolacji wielomianowej

Optymalizacja optymalizacji

Techniki optymalizacji

Metody przeszukiwania

Wybór / ocena atrybutów na podstawie oceny jakości działania wybranego klasyfikatora.

ALGORYTM PERTURBACYJNY DLA PROBLEMU PRZEPŁYWOWEGO

Algorytmy mrówkowe. P. Oleksyk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Uczenie sieci typu MLP

Algorytm memetyczny dla rzeczywistego problemu planowania tras pojazdów

4.3 Grupowanie według podobieństwa

Podstawy OpenCL część 2

dr inż. Jarosław Forenc

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Algorytmy genetyczne

Algorytmy ewolucyjne Część II

Algorytmy genetyczne

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Grupowanie Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633

Strategie ewolucyjne (ang. evolu4on strategies)

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

LABORATORIUM 2: Wpływ wielkości populacji i liczby pokoleń na skuteczność poszukiwań AE. opracował: dr inż. Witold Beluch

METODY SZTUCZNEJ INTELIGENCJI algorytmy ewolucyjne

ALGORYTM PERTURBACYJNY DLA PROBLEMU PRZEPŁYWOWEGO

Techniki optymalizacji

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2009, Oeconomica 275 (57), 53 58

Testy De Jonga. Problemy. 1 Optymalizacja dyskretna i ciągła

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

Modelowanie niezawodności prostych struktur sprzętowych

Strategie ewolucyjne (ang. evolution strategies)

1 Programowanie całkowitoliczbowe PLC

dr inŝ. Jarosław Forenc

BADANIA OPERACYJNE i teoria optymalizacji. Prowadzący: dr Tomasz Pisula Katedra Metod Ilościowych

Rozdział 2: Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów

Algorytmy genetyczne w optymalizacji

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

[1] E. M. Reingold, J. Nievergelt, N. Deo Algorytmy kombinatoryczne PWN, 1985.

AUTOMATYZACJA PROCESÓW DYSKRETNYCH 2016

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Znajdowanie wyjścia z labiryntu

PORÓWNANIE ALGORYTMÓW OPTYMALIZACJI GLOBALNEJ W MODELOWANIU ODWROTNYM PROCESÓW SUSZENIA PRODUKTÓW ROLNICZYCH

Generowanie i optymalizacja harmonogramu za pomoca

PROBLEM PAKOWANIA - BIBLIOTEKA ALGORYTMÓW

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Program MC. Obliczyć radialną funkcję korelacji. Zrobić jej wykres. Odczytać z wykresu wartość radialnej funkcji korelacji w punkcie r=

INSTRUKCJA DO ĆWICZENIA NR 1

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Transkrypt:

Adam Stawowy Algorytm hybrydowy dla problemu pakowania Summary: We present a meta-heuristic to combine simulated annealing (SA) with local search technique for Bin Packing Problem. The main idea is to embed local search algorithm into SA so that the chain explores only local optima. Tests on instances from Beaysley's library quantify the power of the technique. 1. Wprowadzenie Problem pakowania pudełek (ang. Bin Packing Problem - BPP) ma wielkie znaczenie praktyczne, stąd jest szeroko badany przez teoretyków i praktyków zarządzania. Najlepszy algorytm dla tego zagadnienia - GGA (ang. Grouping Genetic Algorithm) został opracowany przez E. Falkenauera [2] dla potrzeb przemysłu metalowego. Prace nad tworzeniem i badaniem algorytmów dla trudnych problemów optymalizacji kombinatorycznej zmierzają w dwóch kierunkach. Pierwszy stawia sobie za cel opracowanie algorytmów rozwiązujących dokładnie problemy o coraz większych rozmiarach. Jednakże idą z tym w parze coraz większe nakłady obliczeniowe, czemu sprzyja dokonujący się nieustannie postęp w technice komputerowej. Praktycy uważają te algorytmy za zbyt trudne, czasochłonne i niestabilne (nie dają dokładnych rozwiązań dla problemów o różnych rozmiarach). W konsekwencji daje się zauważyć drugi kierunek zmierzający do znalezienia prostych i szybkich heurystyk dających dobre (niekoniecznie optymalne) rozwiązania, o zagwarantowanej jakości. Praca niniejsza jest próbą połączenia tych dwóch trendów: nasz algorytm ma dawać rozwiązania optymalne lub niewiele od niego odbiegające, bez wielkich nakładów obliczeniowych. Co więcej algorytm powinien dawać rozwiązania prawie powtarzalne o zagwarantowanej dokładności tak, by w dowolnym momencie procesu obliczeniowego można było stwierdzić, o ile aktualny wynik odbiega od optymalnego. Ma to niebagatelne znaczenie praktyczne, gdy istniejące ograniczenia mogą narzucić przerwanie obliczeń po zadanym okresie czasu. dr inż., Wydział Zarządzania, Akademia Górniczo-Hutnicza, Kraków

2. Problem pakowania pudełek Problem pakowania pudełek (ang. Bin Packing Problem - BPP) należy do dużej rodziny zagadnień grupowania elementów, które polegają na podziale zbioru elementów na rozdzielne podzbiory. Problemy te należą do NP-trudnych problemów optymalizacji kombinatorycznej. BBP formułujemy następująco: mamy n niepodzielnych obiektów, każdy o wadze (wartości) wi, (1 i n) oraz n pudełek (ang. bins) każde o pojemności C (wi<c); należy tak rozmieścić obiekty w pudełkach, by liczba użytych pudełek była minimalna, przy założeniu, że pojemność pudełek nie będzie przekroczona. Proste algorytmy rozwiązujące w sposób przybliżony problem pakowania pudełek podali Garey i Johnson [6]; spośród nich algorytm First Fit Decreasing (FFD), daje w wyniku rozwiązanie nie gorsze niż 22% od rozwiązania optymalnego. W 1990 roku Martello i Toth zaproponowali algorytm przeglądu z nawrotami osiągając bardzo dobre rezultaty. W ostatnim okresie trwają intensywne prace nad zastosowaniem algorytmów ewolucyjnych do różnych problemów optymalizacji kombinatorycznej. W przypadku BBP pojawił się specjalizowany algorytm genetyczny Falkenauera GGA [3] bazujący na specjalizowanej reprezentacji problemu oraz specjalnie skonstruowanych operatorach pseudogenetycznych. 3. Algorytm CLO dla zagadnienia pakowania pudełek Nasze poprzednie prace skupiały się na wykorzystaniu algorytmów ewolucyjnych dla analizowanego problemu [5]. Stosowane algorytmy dawały bardzo dobre rezultaty, jednakże dla części problemów testowych dawały wyniki zbliżone do algorytmu konstrukcyjnego FFD, co nie jest wynikiem zadowalającym. Dalsze prace musiałyby doprowadzić do znacznego skomplikowania algorytmu, co nie jest zgodne z naszymi zapatrywaniami na to, w jaki sposób konstruować dobre algorytmy. Stąd próba wykorzystania nowego podejścia tj. mataheurystyki o nazwie łańcuchowa optymalizacja lokalna (ang. CLO - Chained Local Optimization) przedstawionej przez Martina i Otto dla problemu komiwojażera [4]. Podstawowym założeniem techniki CLO jest ograniczenie przestrzeni badanych rozwiązań do obszaru lokalnych optimów; samo przeszukiwanie odbywa się na zasadzie łańcuchów Markowa. Proces ten schematycznie przedstawia rysunek 1.

Funkcja kryterium Rozwiązanie pośrednie Optymalizacja lokalna Perturbacja Stan i Stan i+1 Dopuszczalne rozwiązania Rys. 1 Schematyczne przedstawienie procedury łańcuchowej optymalizacji lokalnej Źródło: opracowanie własne na podstawie [4] Załóżmy, że Stan i oznacza lokalne optimum osiągnięte w kroku i. Po wykonaniu silnie zaburzającego ruchu (nazwanego tu perturbacją) osiągamy rozwiązanie pośrednie, które poprawiane jest przy użyciu wybranego algorytmu optymalizacji lokalnej. W konsekwencji przechodzimy do rozwiązania w stanie i+1, które poddawane jest procedurze testowej identycznej jak w algorytmie symulowanego wyżarzania. Jeśli rozwiązanie zostanie zaakceptowane, staje się nowym rozwiązaniem startowym, w przeciwnym razie - wracamy do stanu i. W przeciwieństwie do symulowanego wyżarzania procedura testowa wykonywana jest dla lokalnego optimum, a nie dla każdego kolejno wygenerowanego rozwiązania. Przyśpiesza to działanie algorytmu i zapewnia ominięcie nieefektywnych fragmentów przestrzeni przeszukiwań. Dla prawidłowego działania, algorytm CLO potrzebuje dobrej techniki lokalnego przeszukiwania oraz wyboru ruchu perturbacyjnego. Oba zagadnienia są specyficzne dla rozpatrywanego problemu. W przypadku BPP nie istnieje dobra technika optymalizacji lokalnej, stąd wykorzystano propozycję Falkenauera [3]. Algorytm ten polega na wykreśleniu z rozwiązania wylosowanych grup i ponownym włączeniu skreślonych obiektów do niepełnych pudełek. Gdy dalsze włączanie nie jest możliwe, dla pozostałych obiektów stosowany jest algorytm FFD w celu uzyskania prawidłowego rozwiązania. W przypadku ruchu perturbacyjnego zdecydowano się na ruch typu wstawianie (insertion). Pozostałe elementy algorytmu przedstawiono poniżej.

Reprezentacja rozwiązania problemu Dopuszczalne rozwiązania są reprezentowane w sposób proponowany przez nas dla strategii ewolucyjnej [5] tj. przez listę n elementów i s separatorów grup, przy czym wartość j (1 j n) określająca numer elementu może wystąpić na liście tylko jeden raz, podobnie jak wartość i (n+1 i n+s) określająca numer separatora. W algorytmie przyjęto s = ROUND(0.7*n). Tak więc dla 7 elementów i 3 separatorów grup, rozwiązanie postaci R1 = (1,3,9,8,5,2,7,10,6,4) oznacza, że elementy spakowane są do trzech pudełek (1,3), (5,2,7) i (6,4), natomiast rozwiązanie R2 = (1,10,3,8,5,2,9,7,6,4) oznacza, że elementy mieszczą się w czterech pudełkach (1), (3), (5,2) i (7,6,4). Ruchowi perturbacyjnemu podlegają zarówno elementy jak i separatory. Sposób generowania rozwiązania początkowego Populację początkową stanowi rozwiązanie otrzymane algorytmem FF [6]. Postać funkcji dopasowania FD W algorytmie maksymalizowano następującą funkcję: gdzie: N - liczba grup w danym rozwiązaniu, F i - suma wag elementów upakowanych w pudełku i, i=1,..., N, C - pojemność pudełka, s - stała kary, taka że: 1 jeśli Fi C s 1000 jeśli Fi C Kryterium akceptacji Rozwiązania lepsze od startowego w danym kroku są bezwzględnie akceptowane, natomiast gorsze są akceptowane z prawdopodobieństwem zależnym od względnej różnicy wartości funkcji kryterium: P N i 1 2 Fi s C N FDSt FD 0.0001 (2) FD akcp 1 (1)

4. Badania eksperymentalne Do badań wzięto 8 zestawów po 20 przykładowych problemów zawartych w bibliotece Beasley a [1]. Problemy te podzielone są na dwie grupy: elementy o wagach wylosowanych z rozkładu równomiernego z przedziału [20..100] mają być umieszczone w pudełkach o rozmiarach 150, przy czym liczba elementów wynosi 120, 250, 500 i 1000, elementy o wartościach z przedziału [0,25..0,50] mają być umieszczone w pudełkach o rozmiarach 1, przy czym liczba elementów wynosi 60, 120, 249 i 501, z czego 1/3 ma duże wagi a 2/3 - małe (poniżej 1/3 rozmiaru pudełka). Dla każdego zestawu danych wykonywano trzy przebiegi, z których wybierano najlepsze rozwiązanie. W jednym przebiegu algorytm badał 450 000 rozwiązań, co stanowi znikomą część przestrzeni poszukiwań i jest wartością porównywalną ze stosowaną przez Khuriego i zespół (1000 generacji po 500 rozwiązań) w ich algorytmie [3]. Ogólnie rzecz biorąc problemy oznaczone binpack1-binpack3 oraz binpack5-binpack7 okazały się łatwe dla naszego algorytmu: w każdym przypadku osiągano rozwiązania optymalne. W tabeli 1 zaprezentowano wyniki osiągnięte przez znane algorytmy przybliżone dla 2 pozostałych zestawów z biblioteki Beasley a: binpack4 dla 1000 elementów oraz binpack8 dla 501 elementów, które stanowią największe i najtrudniejsze problemy odpowiednio z pierwszej i drugiej grupy zestawów. W zestawieniu nie ujęto propozycji Khuriego i zespołu ze względu na znacząco gorsze wyniki osiągane przez ten algorytm w porównaniu z innymi. Wyniki badań potwierdziły dominację algorytmu GGA Falkenauera, szczególnie dla problemów o dużych rozmiarach. Algorytmy Martello i Totha oraz FFD radzą sobie dobrze z problemami pierwszej grupy, natomiast zawodzą dla trudniejszych - wg Falkenauera - problemów drugiej grupy. Algorytm CLO daje tylko nieznacznie gorsze wyniki niż GGA Falkenauera, dominując nad pozostałymi technikami, szczególnie dla problemów drugiej grupy. Na uwagę zasługuje fakt, że osiągane rezultaty są lepsze niż nasza poprzednia propozycja, którą była prosta strategia ewolucyjna (w tabeli oznaczona jako ES-S).

Tabela 1. Wyniki osiągnięte przez FFD, GGA, MTP (Mortello i Toth), CLO oraz ES-S (Strategia ewolucyjna Stawowego); OPT - optimum globalne BINPACK4 BINPACK8 Lp OPT FFD GGA MTP ES-S CLO Lp. OPT FFD GGA MTP ES-S CLO. 1 399 403 399 403 403 401 1 167 190 167 184 168 167 2 406 411 406 410 409 407 2 167 191 167 181 168 168 3 411 416 411 416 415 413 3 167 190 167 177 168 168 4 411 416 411 416 417 413 4 167 190 167 180 168 167 5 397 402 397 401 402 398 5 167 191 167 181 168 168 6 399 404 399 402 403 401 6 167 190 167 183 168 168 7 395 399 395 398 400 397 7 167 190 167 183 169 168 8 404 408 404 406 411 407 8 167 189 167 183 169 168 9 399 404 399 402 406 400 9 167 191 167 177 168 168 10 397 404 397 402 403 398 10 167 190 167 185 168 168 11 400 404 400 404 403 401 11 167 190 167 179 168 168 12 401 405 401 404 405 403 12 167 190 167 178 168 168 13 393 398 393 396 397 394 13 167 190 167 187 168 167 14 396 401 396 401 400 398 14 167 190 167 181 168 168 15 394 400 394 399 398 395 15 167 189 167 183 169 168 16 402 408 402 407 408 405 16 167 190 167 181 168 167 17 404 407 404 407 407 405 17 167 189 167 183 168 168 18 404 409 404 407 408 406 18 167 191 167 183 168 168 19 399 403 399 403 403 400 19 167 189 167 180 169 168 20 400 406 400 405 404 401 20 167 191 167 188 168 168

5. Wnioski końcowe Przeprowadzone badania eksperymentalne wykazały dużą przydatność techniki CLO dla problemu pakowania pudełek, zaproponowany algorytm daje tylko nieznacznie gorsze rozwiązania niż, o wiele bardziej skomplikowany, GGA, natomiast dużo lepsze niż inne algorytmy przybliżone. Nasz algorytm bada tylko okolice optimów lokalnych, co znacząco redukuje przestrzeń poszukiwań. Kluczowym elementem sukcesu nowej techniki jest zastosowanie dobrego algorytmu optymalizacji lokalnej oraz dobrego ruchu perturbacyjnego. Zagadnienia te są specyficzne dla rozpatrywanego problemu. Zastosowane przez nas rozwiązania nie są prawdopodobnie najlepsze dla problemu pakowania pudełek, stąd konieczne są dalsze prace zmierzające do doboru optymalnych elementów algorytmu CLO. Literatura [1] Beasley J.: "OR-Library: Distributing test problems by electronic mail". Journal of the Operational Research Society, vol. 41, no. 11, 1990, str. 1069-1072. [2] Falkenauer E.: "A new representations and operators for genetic algorithms applied to grouping problems". Evolutionaty Computations, vol. 2, no. 2, 1994, str. 123-144. [3] Khuri S., Schütz M., Heitkötter J.: "Evolutionary heuristics for the bin packing problem". Proceedings of ICANNGA 95, April 1995. [4] Martin O., Otto S.: "Combining simulated annealing with local search heuristics". Artykuł przeznaczony dla Metaheuristics in Combinatoric Optimization pod redakcją Laporte'a i Osmana. [5] Stawowy A.: "Algorytm ewolucyjny dla problemu pakowania". Kwartalnik AGH - Mechanika, Wydawnictwa AGH, Kraków 1997, str. 593-598. [6] Sysło M., Deo N., Kowalik J.: Algorytmy optymalizacji dyskretnej, PWN, Warszawa 1995.