AUTOMATYKA 2009 Tom 13 Zeszyt 2 Wojciech Bo ejko*, Micha³ Czapiñski**, Mieczys³aw Wodecki** Równoleg³y algorytm hybrydowy dla problemu przep³ywowego z kryterium C sum 1. Wstêp W permutacyjnym problemie przep³ywowym (permutation flow shop) dany jest zbiór zadañ oraz zbiór maszyn. Ka de z zadañ nale y wykonaæ kolejno na wszystkich maszynach, przy czym kolejnoœæ wykonywania zadañ na ka dej maszynie musi byæ taka sama. Optymalizacja polega na wyznaczeniu kolejnoœci wykonywania zadañ na maszynach, która minimalizuje sumaryczny czas ich zakoñczenia. W literaturze problem ten jest oznaczany prze F C sum (w skrócie SFS) i nale y on do klasy problemów silnie NP-trudnych. Jak do tej pory opublikowano niewiele algorytmów rozwi¹zywania omawianego problemu. W zdecydowanej wiêkszoœæ prac dotycz¹cych problemu przep³ywowego, jako kryterium przyjmuje siê minimalizacjê terminu zakoñczenia wszystkich zadañ C max. Problem ten jest powszechnie uznawany za prostszy w rozwi¹zywaniu z uwagi na pewne szczególne w³asnoœci, na przyk³ad tzw.,,w³asnoœci blokowe (Nowicki i Smutnicki [8], Grabowski i Wodecki [5]). Dla problemu z kryterium C sum w³asnoœci tych niestety nie mo na zastosowaæ, co znacznie zwiêksza czas obliczeñ algorytmów (tak e i tych aproksymacyjnych). St¹d rosn¹ce zainteresowanie metodami programowania równoleg³ego cechuj¹cymi siê o wiele wiêkszymi mo liwoœciami w tej dziedzinie. Algorytmy konstrukcyjne (LIT i SPD zamieszczone w pracy Wang i in. [12] oraz NSPD z pracy Liu [7]) rozwi¹zywania problemu SFS cechuje bardzo s³aba efektywnoœæ. Reeves i Yamada [10] przedstawili hybrydowy algorytm genetyczny posiadaj¹cy elementy algorytmu przeszukiwania z zabronieniami (tabu serach) i symulowanego wy arzania (simulated annealing) oraz technikê œcie ek ³¹cz¹cych (path relinking). Wykonuj¹c bardzo du ¹ liczbê iteracji, algorytmem tym wyznaczono najlepsze rozwi¹zania dla referencyjnych przyk³adów. G³ówn¹ wad¹ algorytmu jest czasoch³onnoœæ obliczenia dla zestawów o rozmiarze 50 5 trwa³y 45 minut, a dla zestawów o rozmiarze 50 10 a 90 minut. W pracach Bo ejko i Pempera [1] oraz Bo ejko i Wodecki [2], przedstawiono szybkie i efektywne * Instytut Informatyki, Automatyki i Robotyki Politechniki Wroc³awskiej ** Instytut Informatyki, Uniwersytet Wroc³awski 199
200 Wojciech Bo ejko, Micha³ Czapiñski, Mieczys³aw Wodecki algorytmy równoleg³e oparte na metodzie przeszukiwania z tabu oraz poszukiwañ rozproszonych (scatter search) z ³¹czeniem œcie ek. Wyznaczono wiele lepszych od dotychczasowych rozwi¹zañ. Zastosowanie metod programowania wieloprocesorowego pozwala przyœpieszyæ obliczenia. Efektywnoœæ procesu znacznie wzrasta, gdy istnieje mo liwoœæ komunikowania siê procesorów. Wymiana informacji pozwala na wspóln¹ strategiê prowadzenia obliczeñ i w zwi¹zku z tym, znaczne ich skrócenie. Jednak w przypadku obliczeñ rozproszonych, komunikacja mo e nawet przekroczyæ efektywny czas pracy procesorów. St¹d w algorytmie zastosowaliœmy sposób realizacji wspó³pracy (komunikacji), w którym procesory s¹ czêœciowo niezale ne (semi-independent), tj. komunikacja wystêpuje rzadko co okreœlon¹ liczbê iteracji. Metoda symulowanego wy arzania (w skrócie SW) jest prosta w implementacji i szczególnie w swej klasycznej postaci (z funkcj¹ akceptacji Boltzmanna) nie wymaga czêstej komunikacji. Jest wiêc idealna do realizacji w œrodowisku obliczeñ rozproszonych. Stosuj¹c odpowiednie otoczenia oraz zmiany temperatury, w sposób naturalny mo na tak e intensyfikowaæ i dywersyfikowaæ obliczenie. W pracy przedstawiamy ideê konstrukcji wielow¹tkowego algorytmu symulowanego wy arzania dla problemów optymalizacji dyskretnej, których rozwi¹zaniami dopuszczalnymi s¹ permutacje. Idea algorytmu rozproszonego jest zbli ona do wyspowego algorytmu genetycznego. Realizuje siê niezale ne w¹tki algorytmy SW z ró nymi parametrami, które podobnie jak w algorytmie genetycznym s¹ zmieniane co pewn¹ liczbê iteracji. Dzia³anie algorytmu wielow¹tkowego ilustrujemy na przyk³adzie permutacyjnego problemu przep³ywowego z kryterium C sum. Otrzymane wyniki porównujemy z najlepszymi znanymi w literaturze. Algorytm wieloprocesorowy nie tylko przyœpiesza obliczenia, ale tak e poprawia wartoœci rozwi¹zañ (przy takiej samej liczbie iteracji, jak algorytm sekwencyjny) oraz wykazuje znacznie szybsz¹ zbie noœæ. 2. Definicje i oznaczenia Permutacyjny problem przep³ywowy mo na sformu³owaæ nastêpuj¹co. Dany jest zbiór n zadañ J = {1, 2,, n} oraz zbiór m maszyn M = {1, 2,, m}. Zadanie j J jest ci¹giem m operacji O j1, O j2,, O jm. Operacjê O jk nale y wykonaæ, bez przerywania, na maszynie k w czasie p jk. Wykonywanie zadania na maszynie k (k = 2,..., m) mo e siê rozpocz¹æ dopiero po zakoñczeniu wykonywania tego zadania na maszynie k 1. Nale y wyznaczyæ kolejnoœæ, minimalizuj¹c¹ sumê czasów zakñczenia wykonania zadañ. Niech π = (π(1), π(1),..., π(n)) bêdzie permutacj¹ zadañ {1, 2,..., n}, a Π zbiorem wszystkich takich permutacji. Ka da permutacja π Π wyznacza jednoznacznie kolejnoœæ wykonywania zadañ na maszynach (na ka dej maszynie tak¹ sam¹). W omawianym problemie nale y wyznaczyæ permutacjê π * Π tak¹, e: Csum ( π *) = min Csum ( π), π Π
Równoleg³y algorytm hybrydowy dla problemu przep³ywowego... 201 gdzie C sum m ( π ) = C ( π), j= 1 n, j a C i,j (π) jest czasem zakoñczenia wykonywania zadania i na maszynie j, gdy s¹ one wykonywane w kolejnoœci π (tj. zadanie π(i) jest wykonywane jako i-te w kolejnoœci, i = 1, 2,..., n). Czasy wykonywania zadañ mog¹ byæ wyznaczane z nastêpuj¹cej zale noœci rekurencyjnej: C = max{ C, C } + p, i = 1, 2,..., n, j = 1, 2,..., m, π(), i j π( i 1), j π(), i j 1 π(), i j z warunkami poczatkowymi: Cπ (0), j = 0, j = 1, 2,..., m oraz Cπ (),0 i = 0, i = 1, 2,..., n. 3. Metoda symulowanego wy arzania Ze wzglêdu na prostotê implementacji, a jednoczeœnie jej uniwersalizm, metoda symulowanego wy arzania jest z powodzeniem stosowana do rozwi¹zywania wielu problemów optymalizacji dyskretnej. Po raz pierwszy zosta³a zastosowana przez Kirkpatricka [6] oraz Èerny ego [3]. Jej idea pochodzi z termodynamiki. Polega ona na iteracyjnym polepszaniu bie ¹cego rozwi¹zania poprzez lokalne przeszukiwanie. Rozpoczyna siê od pewnego rozwi¹zania startowego. Nastêpnie generuje siê jego otoczenie (s¹siedztwo) oraz wyznacza losowo pewne rozwi¹zanie z tego otoczenia, które przyjmuje siê (z pewnym prawdopodobieñstwem) za rozwi¹zanie startowe w nastêpnej iteracji. Podstawowymi elementami algorytmu opartego na metodzie symulowanego wy arzania s¹: 1) otoczenie podzbiór zbioru rozwi¹zañ dopuszczalnych, generowany przez ruchy (przekszta³cenia) z rozwi¹zania startowego, 2) funkcja akceptacji okreœla prawdopodobieñstwo, z jakim s¹ akceptowane (za rozwi¹zania startowe) elementy otoczenia, 3) schemat ch³odzenia funkcja generuj¹ca parametr zwany temperatur¹, maj¹cy bezpoœredni wp³yw na funkcjê akceptacji. Niech π Π bêdzie dowoln¹ permutacj¹ startow¹, N π jej otoczeniem, a π * najlepszym do tej pory znalezionym rozwi¹zaniem (na pocz¹tek przyjmujemy za π * permutacjê π). Przez ϕ(t) oznaczmy schemat ch³odzenia (t temperatura) oraz przez Ψ t (π, β) (β N π ) funkcjê akceptacji. Zmiana temperatury (parametru t, maj¹cego wp³yw na funkcjê akceptacji Ψ t (π, β)) nastêpuje po wykonaniu pewnej liczby iteracji zwanych pêtl¹. W opisie algorytmu jest to parametr R, który zazwyczaj przyjmuje wartoœæ równ¹ liczbie elementów otoczenia.
202 Wojciech Bo ejko, Micha³ Czapiñski, Mieczys³aw Wodecki Warunkiem zatrzymania jest w praktyce maksymalna liczba iteracji lub czas obliczeñ. Poszczególne elementy algorytmu mog¹ byæ realizowane na wiele sposobów. W konstrukcji algorytmu przyjêto: otoczenie N π zbiór permutacji generowany z π przez ruchy typu wstaw (insert), zobacz Grabowski i Wodecki [5], funkcjê akceptacji Boltzmanna, postaci: Ψt ( π, β ) = exp[ ( F( β) F( π))/], t geometryczny schemat ch³odzenia, postaci: tk+ 1 =α tk, gdzie parametr 0 < α < 1 jest wyznaczany eksperymentalnie. Schemat algorytmu symulowanego wy arzania jest zamieszczony poni ej. Standardowy algorytm symulowanego wy arzania. repeat i 0; while i R do begin i i+1; Wyznaczyæ losowo z otoczenia N π element β; if F(β) < F(π * ) then π * β; if F(β) < F(π) then π β else if Ψ t (π, β) > random[0,1) then π β end;{i} zmodyfikowaæ parametr kontrolny t, zgodnie ze schematem ch³odzenia ϕ(t); until Warunek zatrzymania; 4. Równoleg³y algorytm hybrydowy Równoleg³y algorytm hybrydowy (w skrócie) HSA bazuje na standardowym algorytmie symulowanego wy arzania. Zawiera mechanizm wyznaczania parametrów algorytmu SA oparty na idei algorytmu genetycznego. Na konfiguracjê algorytmu SA sk³adaj¹ siê nastêpuj¹ce parametry: temperatura maksymalna (pocz¹tkowa), temperaturê minimalna (koñcowa), wspó³czynnik ch³odzenia α (schematu geometrycznego), tempo ch³odzenia, tj. co ile iteracji algorytmu nastêpuje obni enie temperatury.
Równoleg³y algorytm hybrydowy dla problemu przep³ywowego... 203 W algorytmie HSA, kompletna informacja o konfiguracji algorytmu SA bêdzie nazywana osobnikiem. Dodatkowo, ka dy osobnik ma przypisany czas ycia (nieujemn¹ liczbê ca³kowit¹). Jeœli czas ten osi¹gnie wartoœæ zero, wówczas podczas ewolucji taki osobnik jest usuwany. W równoleg³ym algorytmemie HSA, jeden wyró niony procesor nazywany zarz¹dc¹ organizuje pracê pozosta³ych procesów robotników. Schemat dzia³ania algorytmu HSA jest przedstawiony na rysunku 1. Rys. 1. Algorytm równoleg³y HSA Na pocz¹tku obliczeñ zarz¹dca wyznacza rozwi¹zanie startowe i rozsy³a je do pozosta- ³ych procesorów. Ka dy robotnik generuje losowego osobnika i ustala czas jego ycia. Nastêpnie wykonywana jest pewna ustalona liczba g³ównych pêtli programu zwanych dalej generacjami. Ka da generacja sk³ada siê z nastêpuj¹cych kroków: 1. Jeœli rozwi¹zanie bazowe zmieni³o siê od ostatniej generacji, to jest ono rozsy³ane do wszystkich robotników. 2. Ka dy robotnik uruchamia algorytm SA na zadan¹ liczbê iteracji, zaczynaj¹c od rozwi¹zania startowego (ka dy robotnik ma potencjalnie inn¹ konfiguracjê algorytmu SA). Otrzymane najlepsze rozwi¹zania s¹ odsy³ane do zarz¹dcy. 3. Zarz¹dca wybiera najlepsze rozwi¹zanie spoœród nades³anych. Jeœli jest gorsze od bie- ¹cego, to jest ono ignorowane. W przeciwnym wypadku zastêpuje ono rozwi¹zanie bazowe. Na pocz¹tku nastêpnej generacji zostanie ono rozes³ane, jako nowe rozwi¹zanie startowe, do wszystkich robotników. 4. Wykonywana jest ewolucja osobników. Ka dy robotnik, który po uruchomieniu algorytmu SA otrzyma³ rozwi¹zanie lepsze od rozwi¹zania bazowego, przywraca czas ycia swojego osobnika do stanu pocz¹tkowego. W przeciwnym wypadku czas ycia osobnika jest zmniejszany o jeden. Jeœli czas ycia osobnika siê wyzeruje, to jest on zastêpowany nowym, losowym osobnikiem.
204 Wojciech Bo ejko, Micha³ Czapiñski, Mieczys³aw Wodecki 5. Eksperymenty obliczeniowe Algorytm równoleg³y HSA zaimplementowano w jêzyk C++ z wykorzystaniem biblioteki MPI. Obliczenia wykonano na klastrze Astral posiadaj¹cym 856 procesorów Intel Xeon 3 GHz z pamiêci¹ lokaln¹ o wielkoœci 2 GB, zainstalowanym na Uniwersytecie Cranfield. Parametrami algorytmu HSA s¹: liczba generacji liczba g³ównych przebiegów algorytmu, rozmiar populacji liczba osobników bior¹cych udzia³ w ka dej kolejnej generacji, liczba iteracji algorytmu SA wykonywanych w ka dej generacji, minimalny czas ycia czas (liczba generacji), po których osobnik jest usuwany, je eli nie poprawiono rozwi¹zania. Wszystkie parametry algorytmu s¹ dok³adnie opisane w pracy Czapiñskiego [4]. Na czas dzia³ania algorytmu decyduj¹cy wp³yw ma liczba ewaluacji funkcji celu, która jest iloczynem liczby generacji, rozmiaru populacji oraz liczby iteracji w generacji. Testy przeprowadzono na 30 przyk³adach Taillarda [10] (ta31 ta50) o rozmiarze n m 50 5, 50 10, 50 20 zamieszczonych na stronie [9]. Otrzymane wyniki s¹ przedstawione na rysunku 2. Rys. 2. Wyniki algorytmu równoleg³ego HSA Ju przy 2,5 milionach ewaluacji funkcji celu maksymalny b³¹d wzglêdny nie przekracza 1%, a b³¹d œredni jest poni ej 0,5%. Dziesiêciokrotne zwiêkszenie liczby ewaluacji daje znaczn¹ poprawê wyników. Œredni b³¹d jest o ponad po³owê mniejszy. Dla dwóch przyk³adów ta36 i ta39 otrzymano lepsze od referencyjnych rozwi¹zania. Œwiadczy to o dobrej zbie noœci algorytmu.
Równoleg³y algorytm hybrydowy dla problemu przep³ywowego... 205 Niech T(p) bêdzie czasem dzia³ania algorytmu równoleg³ego na p procesorach. Wówczas S( p) = T(1)/T( p) jest przyœpieszeniem, a E( p) = (S( p)/p) 100% efektywnoœci¹ algorytmu. Przyœpieszenie oraz efektywnoœæ algorytmu HSA, dla przyk³adu problemu przep³ywowego z n = 50 zadaniami i m = 10 maszynami, przedstawiono w tabeli 1. Liczba procesorów p Tabela 1 Przyœpieszenie oraz efektywnoœæ algorytmu równoleg³ego Przyœpieszenie S(.p) 128k ewaluacji Efektywnoœæ E(.p) 12.8M ewaluacji Przyœpieszenie S(.p) Efektywnoœæ E(.p) 1 1.00 100.00% 1.00 100.00% 2 2.00 100.00% 2.00 99.78% 4 3.92 98.00% 3.99 99.83% 8 7.84 98.00% 7.87 98.32% 16 14.00 87.00% 15.73 98.32% 6. Podsumowanie W pracy przedstawono metodê rozwi¹zywania permutacyjnego problemu przep³ywowego z kryterium C sum opart¹ na równoleg³ym algorytmie symulowanego wy arzania z elementami algorytmu genetycznego. Przeprowadzono eksoerymenty obliczeniowe na reprezentatywnej grupie danych referencyjnych. Otrzymane w krótkim czasie rozwi¹zania tylko nieznacznie ró ni¹ siê od najlepszych obecnie znanych w literaturze. Literatura [1] Bo ejko W., Pempera J., Parallel Tabu Search Algorithm for the Permutation Flow Shop Problem with Criterion of Minimizing Sum of Job Completion Times. 2008, Conference on Human System Interaction HSI 08, IEEE Computer Sciety, 283 332. [2] Bo ejko W., Wodecki M., Parallel path-relinking method for the flow shop scheduling problem. 2008, International Conference on Computational Science (ICCS 08) LNCS 5101, 264 273. [3] Èerny V., Thermodynamical approach to travelling salesman problem: An efficient simulation algorithm. J. Optim. Theory Appl., 45, 1985, 41 51. [4] Czapiñski M., Parallel simulated annealing with geneticenhancement for flowshop problem with C sum. 2009 (w redakcji). [5] Grabowski J., Wodecki M., A very fast tabu search algorithm for the permutation flow shop problem with makespan criterion. Computers & Operations Research, 31 (2004), 1891 1909. [6] Kirkpatrick S., Gellat C.D., Vecchi M.P., Optimization by simulated annealing. Science, 220, 1983, 671 680. [7] Liu J., A new heuristic algorithm for csum flowshop scheduling problems. Personal Communication, 1997.
206 Wojciech Bo ejko, Micha³ Czapiñski, Mieczys³aw Wodecki [8] Nowicki E., Smutnicki C., A fast tabu search algorithm for the permutation flow-shop problem. European Journal of Operational Research, 91, 1996, 160 175. [9] OR-Library: http://people.brunel.ac.uk/~mastjjb/jeb/info.html. [10] Reeves C.R., Yamada T., Solving the Csum Permutation Flowshop Scheduling Problem by Genetic Local Search. IEEE International Conference on Evolutionary Computation, 1998, 230 234. [11] Taillard E., Benchmarks for basic scheduling problems. European Journal of Operational Research, 64, 1993, 278 285. [12] Wang C., Chu C., Proth J., Heuristic approaches for n/m/f/sc i scheduling problems. European Journal of Operational Research, 1997, 636 644.