RÓWNOLEGŁY ALGORYTM PRZESZUKIWANIA Z ZABRONIENIAMI DLA CYKLICZNEGO PROBLEMU GNIAZDOWEGO Wojciech BOŻEJKO, Andrzej GNATOWSKI, Mieczysław WODECKI Streszczenie: W pracy rozpatrujemy cyliczny problemem gniazdowy, polegający na wytwarzaniu w ustalonych odstępach czasu pewnego zestawu elementów. Optymalizacja procesu sprowadza się do minimalizacji czasu cylu, tj. czasu, po tórym może nastąpić wyonywanie następnej partii tych samych elementów. Ponieważ problem jest silnie NPtrudny, więc do jego rozwiązywania będziemy stosowali algorytm przybliżony zaprojetowany do pracy w środowisu wieloprocesorowym. Słowa luczowe: szeregowanie zadań, algorytm równoległy, poszuiwanie z tabu 1. Wstęp Problemy cyliczne stanowią unialną, stosunowo mało zbadaną podlasę problemów szeregowania zadań. Jedna ostatnio cieszą się one znacznie więszym zainteresowaniem zarówno pratyów ja i teoretyów, głównie ze względu na ich duże znaczenie pratyczne oraz trudności z onstruowaniem odpowiednio efetywnych algorytmów rozwiązywania. Silna NP-trudność już wielu najprostszych wersji badanego problemu ogranicza zares stosowania algorytmów doładnych wyłącznie do instancji o niewielim rozmiarze. W rozpatrywanym wielomaszynowym systemie producji cylicznej dowolny element z ustalonej partii (mieszani) przechodzi w zadanej olejności technologicznej przez maszyny. Problem polega na minimalizacji czasu cylu, tj. czasu po tórym może nastąpić wyonywanie następnej partii tych samych elementów. Formalnie można go sformułować następująco: rozważany jest system wytwórczy złożony z m stanowis (maszyn o jednostowej przepustowości) oznaczonych M = {1,2,,m}. W systemie należy wyonywać cylicznie (w sposób powtarzalny) n zadań danych zbiorem N = {1,2,,n}. Zadanie j-te wymaga sewencji n j operacji indesowanych olejnymi liczbami naturalnymi (l j-1+1,,l j-1+n j), wyonywanych w podanej olejności, gdzie l = n jest całowitą liczbą operacji pierwszych j zadań, j=1,2,,n, l 0 = 0, oraz n = o. Operacja i O = {1,2,,o} ma być wyonywana na maszynie v im w nieprzerywalnym czasie p i > 0. Należy wyznaczyć cyliczny harmonogram pracy systemu przy następujących ograniczeniach: (1) ażda maszyna może wyonywać co najwyżej jedną operację w ażdej jednostce czasu, (2) ażda operacja może być wyonywany na co najwyżej jednej maszynie w ażdej jednostce czasu, (3) wyonywanie operacji nie może być przerwane. Zbiór zadań wyonywanych w pojedynczym cylu nazywany jest MPS-em (ang. Minimal Part Set). MPS-y są przetwarzane jeden po drugim w sposób cyliczny, dostarczając partię zadań (mieszanę produtów) w ilościach odpowiedniej dla ażdego cylu. Problem sprowadza się więc do ustalenia momentów rozpoczęcia wyonywania zadań na maszynach, aby czas cylu (czas po tórym zadanie jest wyonywane w olejnym MPSie) był minimalny. 622
Przegląd stanu wiedzy dotyczącego cylicznych zagadnień szeregowania zadań znaleźć można w pracy Levner i in. [1], a taże w rozprawie dotorsiej Kampmeyera [2]. Przegląd zagadnień producji cylicznej z zadaną liczbą MPS znaleźć można w pracach Sawia [3, 4]. Nowe własności harmonogramów cylicznych zaproponował Smutnici [5-7] oraz Pempera i Smutnici [8] i Dąbrowsi, Pempera, Smutnici [9]. Wstępne wynii badań autorów nad problemami cylicznymi opubliowane zostały w pracach Bożejo, Gniewowsi, Pempera, Wodeci [10], Bożejo, Kacprza, Wodeci [11] oraz Bożejo i Wodeci [12]. 2. Model matematyczny Zbiór operacji O w pojedynczym MPS może być w naturalny sposób zdeomponowany na podzbiory O = {j O : v j = }, z tórych ażdy odpowiada operacjom wyonywanych na maszynie ; niech m = O, M. Kolejność wyonywania operacji na maszynach jest definiowana jao m-rota π = (π 1,,π m), gdzie π = (π (1),,π (m )) jest permutacją elementów zbioru O, M; π (i) oznacza element O, tóry jest na pozycji i w π. Niech będzie zbiorem wszystich permutacji elementów z O. Stąd olejność wyonywania π 1 2 m. Harmonogram dla olejności wyonywania -tego MPS (według olejności wyonywania π) opisujemy zasadniczo przez dwa wetory zdarzeń S = (S,, S ), C = (C,, C ), gdzie S i C oznaczają odpowiednio termin rozpoczęcia i zaończenia operacji j w -tym MPS. Zdarzenia te muszą spełniać następujące ograniczenia: C C i Si 1, i = l j1 1,, l j 1, j =1,, n, (1) S, i = 1,, m 1, = 1,,, (2) ( i) ( i 1) m Ci = Si pi, i =1,, o, S i (3) 0, i =1,, n, (4) gdzie =1,2,. Ograniczenie (1) wynia z porządu technologicznego wyonywania operacji wewnątrz zadań, podczas gdy (2) z sewencyjnego charateru pracy maszyn. Równania (3) oraz (4) są oczywiste. Mówimy, że olejność wyonywania π jest dopuszczalna, jeśli istnieje co najmniej jeden harmonogram S, C, =1,2,, spełniający ograniczenia (1) (4). Zauważmy, że używając (3) możemy reprezentować harmonogram dla -tego MPS przez jeden wetor S. Wtedy ograniczenia (1) (4) przyjmą następującą postać: S S i pi Si 1, i = l j1 1,, l j 1, j =1,, n, (5) p S, i =1,, m 1, = 1,,, (6) ( i) ( i) ( i1) m S i 0, i = 1,, n. (7) W proponowanym modelu możliwe są przeploty zadań z olejnych MPS, tj. wyonywanie operacji z olejnego, +1-go MPS przed zaończeniem wyonywania wszystich operacji z -tego MPS na danej maszynie. Przeploty taie mogą zostać 623
zabronionie (z różnych względów, m.in. technologicznych lub organizacyjnych) poprzez dodanie do modelu ograniczenia: lub równoważnego: 1 C ( m ) S (1), = 1,, m, (8) S 1 ( m ) p ( m ) S (1), =1,, m. (9) Definicja 1 Czas cylu T w fazie ustalonej harmonogramu, tj. gdy różnica momentów rozpoczęcia operacji w olejnych ich powtórzeniach jest stała, wynosi T = S S, =1,2,. Czas cylu T jest liczbą rzeczywistą i zależy od π, a oczywiście nie ażda jego wartość jest dopuszczalna, bowiem momenty rozpoczęcia wyonywania zadań S, j=1,2,,o, =1,2,, muszą taże spełniać ograniczenia (5) (7). Przez T(π) będziemy oznaczać minimalną wartość czasu cylu, spełniającą ograniczenia (5) (7). 2. Model grafowy Niech grafy H(π) i G(π) będą zdefiniowane w następujący sposób [13]: G(π) = (O, R ℇ(π)), (10) H(π) = (O, R ℇ(π) ℇ (π)), (11) gdzie O jest zbiorem wierzchołów, a R ℇ(π) ℇ (π) to zbiory łuów: R = {(i, i + 1)}, (12) ℇ(π) = {(π (i), π (i + 1))}, (13) ℇ (π) = π (m ), π (1). (14) Łui olejności technologicznej oznaczmy przez R, łui olejności maszynowej przez ℇ(π), a łui cyliczne przez ℇ (π). Niech wierzchołe j O reprezentuje j-tą operację i posiada wagę 0. Łui ze zbioru R reprezentują olejność technologiczną wyonywania operacji w zadaniu; łui ze zbioru ℇ(π) olejność wyonywania operacji na maszynach, a łui ze zbioru ℇ (π) ograniczenie poprzedzania w olejnych cylach: S ( ) + p ( ) T S (). (15) Każdy łu (i, j) R ℇ(π) obciążony jest wagą p, łui (i, j) ℇ (π) posiadają wagę p T. Własność 1 [15] Kolejność wyonywania π jest dopuszczalna wtedy i tylo wtedy, gdy graf G(π) nie zawiera cylu oraz T zostało wybrane ta, że H(π) nie zawiera cylu o dodatniej długości. 624
3. Przeszuiwanie z zabronieniami Metoda poszuiwania z zabronieniami (tabu search, TS) została pierwotnie zaproponowana przez Glovera [14]. Jest ona modyfiacją metody przeszuiwania loalnego. Dopuszcza się możliwość zwięszania wartości funcji celu (przy wyznaczaniu nowego rozwiązania generującego otoczenie), aby w ten sposób zwięszyć szansę na osiągnięcie minimum globalnego. W celu uninięcia cylicznego odwiedzania rozwiązań, sierowania poszuiwań w obiecujące regiony przestrzeni oraz umożliwienie wyjścia z estremum loalnego wprowadza się tzw. mechanizm zabronień. Wyonując ruchy zapamiętuje się rozwiązania, atrybuty rozwiązań lub ruchów na liście tabu (LT). Generując otoczenie nie rozpatrujemy rozwiązań znajdujących się na tej liście chyba, że spełniają ryterium aspiracji, to jest waruni, przy tórych ograniczenia tabu można pominąć. Na Rysunu 1 przedstawione zostały olejne roi równoległego algorytmu przeszuiwania z zabronieniami. Algorytm 1. Przeszuiwanie z zabronieniami π * najlepsze znalezione dotychczas rozwiązanie, LT := ; Kro 0: Wyznacz rozwiązanie startowe π 0 ; π := π 0 ; Kro 1: Wyznacz sąsiedztwo N(π) bieżącego rozwiązania π; Usuń z sąsiedztwa N(π) elementy zabronione przez listę LT; Kro 2: Podziel N(π) na = () grup; Każda grupa zawiera co najwyżej p elementów; Kro 3: Dla ażdej grupy s=1,2,, znajdź (używając p procesorów) uszeregowania π s o najmniejszej wartości minimalnego czasu cylu T Kro 4: Znajdź uszeregowanie z N(π) dla tórego z=arg min{t(π s ): s=1,2,,} Kro 5: Jeśli T(z) < T(π * ) to π * := z; Umieść atrybuty ruchu prowadzącego z π do z na liście LT; Kro 6: Jeśli (warune stopu jest spełniony) to Stop; w przeciwnym wypadu idź do rou 1.; Rys. 1. Pseudood dla algorytmu przeszuiwania z zabronieniami W drugim rou algorytmu sąsiedztwo N(π) jest dzielone na rozłączne zbiory. Dla ażdej grupy wartość funcji celu jest wyznaczana przy użyciu p procesorów. Liczba procesorów użytych w rou trzecim może być stałą lub uzależniona od rozmiaru sąsiedztwa. Mechanizm zabronień realizowany jest za pomocą listy tabu stanowiącej rótoterminową historię przeszuiwań. Dodawane są do niej odwiedzone przez algorytm rozwiązania. Gdy długość listy osiągnie masymalną ustaloną wartość L przed dodaniem olejnego rozwiązania usuwane jest najstarsze. W przypadu gdy w danym rou wszyscy sąsiedzi znajdują się na liście tabu, usuwane są z niej olejne rozwiązania, począwszy od najstarszego, ta długo, aż co najmniej jeden z sąsiadów nie jest zabroniony. Dodatowo wprowadzono ryterium aspiracji: ażdy sąsiad o wartości funcji celu mniejszej od dotychczasowego najlepszego rozwiązania nie jest zaazany, nawet jeśli znajduje się na liście tabu. Sąsiedztwo. Atrybuty ruchu prowadzącego do rozwiązania sąsiedniego opisywane są nieuporządowaną parą zadań {i, j}, M(i) = M(j) = m, tórych olejność wyonywania na 625
maszynie m jest zamieniana. W algorytmie przyjęto strategię wyboru sąsiada o najmniejszej wartości funcji celu. Sąsiedztwo tworzone jest w oparciu o teorię bloów: bloiem B dla ścieżi µ w grafie H(π) nazywa się taą podścieżę o masymalnej długości, tóra zawiera tylo łui olejności maszynowej R. Ja poazano w [16], czas cylu może ulec poprawie tylo jeśli modyfiuje się pierwszy lub ostatni łu blou B. W badaniach esperymentalnych w [16] opisane sąsiedztwo oazało się być najlepsze z rozważanych, stąd zdecydowano się na jego zastosowanie. Procedura startowa. Do rozpoczęcia działania algorytmu TS potrzebne jest dopuszczalne rozwiązanie początowe. Tworzone jest ono za pomocą prostego algorytmu ustalającego taą olejność wyonywania operacji na maszynach, w tórej wszystie operacje z zadania i są wyonywane przed operacjami zadania j, jeśli i < j. 3.1. Funcja celu Funcja celu f(π) dla zadanej olejności wyonywania operacji π zwraca minimalny czas cylu T(π), f(π) = T(π). Do tej pory do jej wyznaczania w literaturze stosowana była metoda Howarda [17] (używano jej między innymi w [16]). W niniejszej pracy użyto rozwiązania własnego opartego o metodę bisecji oraz algorytm Bellmana-Forda. Znane są sposoby oszacowania wartości długości czasu cylu celu z góry (T (π)) i z dołu (T (π)). Oszacowaniem górnym może być T (π) = C (π), a oszacowaniem dolnym masimum sum czasów wyonywania operacji na maszynach w pojedynczym MPSie: T (π) = ma p 626 (i). (16) Ponieważ suma p (i) nie zależy od olejności π, również ta zdefiniowane dolne oszacowanie nie zależy od π, czyli T = T (π). 3.2. Zmodyfiowany algorytm Bellmana-Forda (B-F) Za pomocą zmodyfiowanego algorytmu Bellmana-Forda możliwe jest wyznaczenie cylu o najwięszej wadze w grafie H(π) przechodzącego przez zadany wierzchołe reprezentujący operację i. Algorytm Bellmana-Forda [18] umożliwia wyznaczenie najrótszej ścieżi pomiędzy dwoma wierzchołami w grafie ważonym. W grafie nie może występować cyl o ujemnej wadze osiągalny ze źródła. W zastosowaniu do rozważanego problemu należy zmodyfiować algorytm Bellmana- Forda ta, aby znajdował najdłuższą ścieżę w grafie H(π) pomiędzy wierzchołami i i j. Warune nie występowania cylu o łącznej ujemnej wadze zostaje zastąpiony waruniem nie występowania cylu o łącznej dodatniej wadze osiągalnej ze źródła. W grafie H(π) ażdy z wierzchołów ma co najwyżej dwa łui wychodzące. Stąd najdłuższy cyl przechodzący przez wierzchołe i ma wagę: L (T, π) = ma{bf(i, j ) + δ(j, i), BF(i, j ) + δ(j, i)}, (17) gdzie BF(i, j ) oznacza najdłuższą ścieżę między wierzchołami j i i, a δ(j, i) wagę łuu (j, i). Jeśli graf H(π) posiada dodatni cyl osiągalny z wierzchoła i, algorytm B-F znaleźć może ścieżę o najwięszej wadze i długości rzędu O( V[H(π)] E[H(π)] ). Ścieżę taą oznaczono dalej jao L (π, T).
Z własności cylicznego problemu gniazdowego wynia, że ażdy cyl grafu H(π) musi zawierać łu cyliczny (π (m ), π (1)). Stąd wiadomo, że cyl o najwięszej wadze w grafie zawierać będzie operację: i O = {π (1), π (1),, π (1)}. (18) Niech L(T, π) oznacza cyl o najwięszej wadze w grafie H(π). Uruchamiając zmodyfiowany algorytm Bellmana-Forda dla grafu H(π) i operacji ze zbioru O można więc wyznaczyć: L(T, π) = ma {L (π, T)}. (19) Analogiczne rozumowanie przeprowadzić można gdy graf H(π) zawiera cyl o dodatniej wadze, otrzymując L (π, T). 3.3. Metoda równego podziału (bisecji) Dla ustalonego π, T(π) szacować można za pomocą metody równego podziału, szuając ja najmniejszego T taiego, że L(π, T) 0. Jao przedział startowy należy przyjąć [T, T (π)]. Opis algorytmy można znaleźć w [19]. Ponieważ: oraz: L(T, π) = L (π, T) dla T T(π) (20) L(T, π) > 0 L (π, T) > 0 dla T < T(π), (21) w poszuiwaniu minimalnego czasu cylu metodą bisecji funcje L (π, T) i L(T, π) można stosować zamiennie. Ponieważ funcja L (T, π) jest ciągła na przedziale [T, T (π)], oraz: L (T, π) > 0 L (T (π), π) < 0, (22) dozwolone jest użycie metody równego podziału. W przypadu gdy L (T, π) = 0 L (T (π), π) = 0 stosowanie bisecji nie jest zasadne, bo znane jest rozwiązanie optymalne. Dodatowo ścisła monotoniczność funcji L (T, π) gwarantuje istnienie jednego pierwiasta równania L (T, π) = 0, dla zadanego π. 3.4. Wersja równoległa algorytmu Obliczanie wartości funcji oceniającej zabiera najwięszą część czasu pojedynczej iteracji TS (patrz Rysune 2), stąd obszar ten zbadano pod ątem możliwości przyspieszenia algorytmu. Zrównoleglić można obliczenia związane z wyznaczaniem funcji oceniającej, bądź obliczać ją dla wielu permutacji jednocześnie. W pracy tej przyjęto drugie z wymienionych rozwiązań. 627
Rys. 2. Uproszczony schemat pętli algorytmu TS W ażdej iteracji algorytmu TS generowane jest otoczenie rozwiązania. Następnie obliczana jest wartość funcji oceniającej dla ażdego z sąsiadów. W zrównoleglonym algorytmie obliczania te wyonywane są równolegle. Ze względu na architeturę sprzętu na jaim przeprowadzane były esperymenty, wybrano technologię implementacji OpenMP. Pozwala ona tworzyć wieloplatformowe apliacje dla systemów wieloprocesorowych ze współdzieloną pamięcią. Do zrównoleglenia użyto lauzuli pozwalającej na wybór liczby wątów obliczeniowych: #pragma omp parallel for num_threads(liczba_watkow). Umożliwia ona równoczesne wyonywanie przez wiele wątów pętli for. Procedura przydziału zadań do wątów jest realizowana automatycznie przez OpenMP. 4. Wynii esperymentalne Algorytm został zaimplementowany w języu C++ w środowisu Visual Studio 2013. Testy przeprowadzono na omputerze z 6-cio rdzeniowym (12 wątów) procesorem Intel Core i7-4930k 3.90 GHz, systemie Windows 8.1 Pro z 32GB pamięci RAM. 4.1. Instancje testowe Użyto przyładów ze zbioru OR-Library po raz pierwszy opisanego w [20], do tórych dostęp można uzysać na stronie internetowej [21]. Wybrano instancje dla problemu gniazdowego. Zmieniono go w problem cyliczny przyjmując, że zadania z instancji tworzą pojedynczy MPS. Listę problemów testowych zawiera Tabela 1. 628
Tab. 1. Instancje testowe dla problemu gniazdowego. Instancja liczba liczba liczba liczba liczba liczba instancja zadań maszyn operacji zadań maszyn operacji la01 10 5 50 la23 15 10 150 la02 10 5 50 la24 15 10 150 la03 10 5 50 la25 15 10 150 la04 10 5 50 la26 20 10 200 la05 10 5 50 la27 20 10 200 la06 15 5 75 la28 20 10 200 la07 15 5 75 la29 20 10 200 la08 15 5 75 la30 20 10 200 la09 15 5 75 la31 30 10 300 la10 15 5 75 la32 30 10 300 la11 20 5 100 la33 30 10 300 la12 20 5 100 la34 30 10 300 la13 20 5 100 la35 30 10 300 la14 20 5 100 la36 15 15 225 la15 20 5 100 la37 15 15 225 la16 10 10 100 la38 15 15 225 la17 10 10 100 la39 15 15 225 la18 10 10 100 la40 15 15 225 la19 10 10 100 ft06 6 6 36 la20 10 10 100 ft10 10 10 100 la21 15 10 150 ft20 20 5 100 la22 15 10 150 4.2. Parametry Wstępnie sprawdzono dla jaich długości listy tabu uzysiwano najlepsze wynii. Wybrano L = 7. Aby porównać czas wyonywania algorytmu z [16], ustalono liczbę iteracji Iter na 200 i 800. Dodatowo wyonano symulacje dla Iter = {3200, 6400, 12800, 50000}. Wersję zrównolegloną algorytmu uruchamiano dla ilości wątów TH = {2,4,6,8,10,12} i Iter = 200 dla wszystich instancji testowych. Mierzone były: średnie odchylenie względne czasu cylu; odchylenie zdefiniowano jao: T = 100%, (23) gdzie T oznacza czas cylu obliczony przez algorytm heurystyczny TS, a T dolne oszacowanie czasu cylu; średni czas wyonywania algorytmu t ; dla wersji równoległej średnie przyspieszenie: s =, (24) gdzie t oznacza średni czas wyonywania algorytmu przy wyorzystaniu wątów; dla różnych liczby iteracji lub wątów. 629
4.3. Wynii Ze względu na różne założenia dotyczące rozłączności MPS, wartości T nie mogą być bezpośrednio porównywane z wyniami pracy [16]. W pracy [16] dla H = 1 gwarantowana jest rozłączność MPS, jedna wprowadzone jest dodatowe ograniczenie C S. Co więcej, w pracy tej zastosowano inne oszacowania dolne rozwiązań - sorzystano z literaturowych oszacowań dla porewnego problemu gniazdowego. Dla H = 2 dolne oszacowanie budowano w ten sam sposób co w niniejszej pracy, nie jest jedna gwarantowana rozłączność MPS. Aby móc porównać czasy działania algorytmu zaproponowanego w [16], oszacowano różnicę mocy obliczeniowej procesorów użytych w esperymentach. Na podstawie porównania wydajności rdzeń-na-rdzeń [22] oszacowano t t 0.25, gdzie t oznacza przybliżony czas wyonywania algorytmu z [16] na procesorze użytym w niniejszym esperymencie. Wersja sewencyjna algorytmu. Rezultat esperymentu numerycznego poazano w Tabeli 2. Algorytm wymagał średnio więszej liczby iteracji do uzysania wyniu zbliżonego do tego z [16]. Dopiero przy Iter = 6400 uzysano rezultat T < 6. Jednocześnie poszczególne iteracje algorytmu własnego wyonywały się szybciej (również po przeliczeniu czasu na t ). Pozwoliło to na zbadanie zachowania algorytmu dla więszych Iter. Zwięszanie Iter powyżej 12800 powodowało niewielie poprawienie T. Dla wielu z instancji problemu udało się uzysać czas cylu równy dolnemu jego oszacowaniu. W podobnym czasie taie samo zjawiso zaobserwowano w [16]. Tab. 2. Wynii obliczeń sewencyjnego algorytmu TS. Brucer, Kampmeyer [16], Brucer, Kampmeyer [16], TS H Iter = 1 H = 2 T t T t t T t t [%] [s] [%] [s] [s] [%] [s] [s] 200 69.71 6 14.42 317 78.25 12.69 436 109 800 27.57 19 5.83 567 141.75 5.42 623 155.75 3200 12.08 57 - - - - - - 6400 5.7 107 - - - - - - 12800 4.63 178 - - - - - - 50000 4.38 524 - - - - - - Wersja równoległa algorytmu. Dla liczby iteracji Iter = 200 uruchomiono sewencyjną oraz równoległą wersję algorytmu. Liczbę wątów ograniczono do 12, ze względu na parametry techniczne procesora. Rysune 3 przedstawia wynii esperymentu. Instancje testowe podzielono na 3 grupy według liczby operacji. Wartość przyspieszenia zależy od liczby sąsiadów w otoczeniu w ażdej z iteracji algorytmu TS oraz czasu potrzebnego do wyznaczenia wartości funcji oceniającej. W więszych instancjach testowych otoczenia są przeciętnie więsze oraz wyliczanie funcji oceniającej zabiera więcej czasu. Stąd przyspieszenie dla grupy (200 300) jest najwięsze. Spade przyspieszenia dla więszej ilości wątów dla grupy (36 100) wynia z narzutu wiążącego się z użyciem równoległej pętli for z OpenMP. 630
5. Wniosi Rys. 3. Zależność przyspieszenia od liczby wątów dla Iter = 200. W pracy przedstawiono równoległy algorytm przeszuiwania z zabronieniami dla cylicznego problemu gniazdowego. Badania przeprowadzono na literaturowych danych testowych. Zrównoleglona wersja algorytmu TS pozwala na wyonywanie więszej liczby iteracji w tym samym czasie, w porównaniu do algorytmu sewencyjnego, co prowadzi to do uzysiwania mniejszych czasów cylu. Czynniiem ograniczającym przyspieszenie jest wielość sąsiedztwa. W badanych instancjach problemu, w celu uzysania więszego przyspieszenia należałoby zrównoleglić inną część algorytmu, np. algorytm Bellmana-Forda lub bisecji. Dla zaproponowanego algorytmu, przy wyorzystaniu więszej liczby procesorów, możliwe byłoby zastosowanie innych strategii tworzących więsze sąsiedztwa. Praca została częściowo sfinansowana ze środów Narodowego Centrum Naui przyznanych na podstawie decyzji numer DEC-2012/05/B/ST7/00102. Bibliografia 1. Levner E., Kats V, Lopez A.P., Cheng T.C.E. Compleity of cyclic scheduling problems: A state-of-the-art survey. Computers and Industrial Engineering, 59, 2010, 352-361. 2. Kampmeyer T., Cyclic Scheduling Problems, Ph.D. Dissertation, Universitat Osnabruc, 2006. 3. Sawi T., A mied integer program for cyclic scheduling of fleible flow lines, Bulletin of the Polish Academy of Sciences, Technical Sciences, Vol. 62, No. 1, 2014, 121 128. 4. Sawi T., Batch vs. cyclic scheduling in fleible flow shops by mied integer programming, International Journal of Production Research 50(18), 2012, 5017 5034. 5. Smutnici C.: Scheduling with high variety of customized compound products. Decision Maing in Manufacturing and Services, 1, 1/2, 2007, 91-110. 6. Smutnici C., Smutnici A.: Nowe własności harmonogramów cylicznych w systemie przepływowym, Automatya, t. 11, z. 1/2, 2007, 275-285. 631
7. Smutnici C., Smutnici A.: Harmonogramowanie cyliczne w systemie gniazdowym, Zastosowania teorii systemów, AGH, 2007, 105-115. 8. Pempera J., Smutnici C., Minimalizacja czasu cylu wytwarzania na linii: Podejście genetyczne z espresją genów. Automatya 2005, t. 9, z. 1/2, 189-199. 9. Dąbrowsi P., Pempera J., Smutnici C.: Minimizing cycle time of the flow line-genetic approach with gene epression, Lecture Notes in Computer Science, vol. 4431, 2007, 194-201. 10. Bożejo W., Gniewowsi Ł., Pempera J., Wodeci M., Cyclic hybrid flow-shop scheduling problem with machine setups, Procedia Computer Science Vol. 29, 2014, 2127 2136. 11. Bożejo W., Kacprza Ł., Wodeci M., Cyliczny problem przepływowy z przezbrojeniami maszyn, Innowacje w Zarządzaniu i Inżynierii Producji (red. R. Knosala), Oficyna Wydawnicza Polsiego Towarzystwa Zarządzania Producją, Opole 2014, 484-493. 12. Bożejo W., Wodeci M., Problemy cyliczne z równoległymi maszynami, w: Automatyzacja procesów dysretnych, Teoria i zastosowania (red. A. Świernia, J. Kryste), Gliwice 2014, 27-36. ISBN 978-83-62652-67-9. 13. Smutnici C., Nowici E.: A fast taboo search algorithm for the job shop problem. Management science, Issue 42.6, 1996, 797-813. 14. Glover F., Laguna M., Tabu Search, Kluwer, 1997. 15. Smutnici C.: Opracowanie metod efetywnego wyznaczania czasu cylu dla zadanej olejności wyonywania zadań w systemie gniazdowym, Raport PREPRINTY nr 78/2013. 16. Brucer P., Kampmeyer T.: Tabu search algorithms for cyclic machine scheduling problems. Journal of Scheduling, Issue 8.4, 2005, 303-322. 17. Dasdan A., Irani S. S., Gupta R. K.: Efficient algorithms for optimum cycle mean and optimum cost to time ratio problems. Proceedings of the 36th annual ACM/IEEE Design Automation Conference, 1999, 37-42. 18. Cormen T. H., Leiserson C. E., Rivest R. L., Clifford, S.: Introduction To Algorithms. MIT Press, 2001, 588-592. 19. Burden R. L., Faires J. D.: Numerical Analysis (9th ed.), Broos/Cole, Cengage Learning, 2011, 48-54. 20. Beasley J. E.: OR-Library: distributing test problems by electronic mail. Journal of the Operational Research Society, Issue 41(11), 1990, 1069-1072. 21. OR-LIBRARY, dostęp: http://people.brunel.ac.u/~mastjjb/jeb/info.html [09 01 2015]. 22. Geebench Browser, dostęp: http://browser.primatelabs.com/ [09 01 2015]. Dr hab. Wojciech BOŻEJKO, prof. nadzw. Mgr inż. Andrzej GNATOWSKI Wydział Eletronii, Politechnia Wrocławsa 50-370 Wrocław, ul. Wyb. Wyspiańsiego 27, e-mail: wojciech.bozejo@pwr.wroc.pl andrzej.gnatowsi@pwr.wroc.pl Dr hab. Mieczysław WODECKI, prof. nadzw. Instytut Informatyi, Uniwersytet Wrocławsi 50-383 Wrocław, ul. Joliot-Curie e-mail: mwd@ii.uni.wroc.pl 632