AUTOMATYZACJA PROCESW DYSKRETNYCH 2012 Mariusz MAKUCHOWSKI, Jarosław PEMPERA Politechnika Wroclawska ZASTOSOWANIE TECHNIK RÓWNOLEGŁYCH W SZEREGOWANIU ZA- DAŃ Z KRYTERIUM MINIMALIZACJI SUMY SPÓŹNIEŃ Streszczenie. Praca poświęcona jest permutacyjnemu problemowi przepływowemu z kryterium minimalizacji sumy spóźnień. W pracy proponujemy nowy algorytm bazujący na metodzie symulowanego wyżarzania. Dodatkowo, proponujemy pewne modyfikacje metody symulowanego wyżarzania, które pozwoliły na znalezienie dobrej jakości rozwiązań w krótszym czasie. Algorytm został zaimplementowany w wersji sekwencyjnej i trzech wersjach równoległych. Efektywność algorytmów została przeanalizowana na literaturowych przykładach testujących. APPLICATION OF PARALLEL TECHNIQUES IN SCHEDULING OF JOBS WITH TOTAL TARDINESS CRITERION 1. Wstęp Summary. This work deals with permutation flow shop problem with total tardiness criterion. We propose a new multirun algorithm based on simulated annealing method. We propose some modification of original simulated annealing method, which allows to find good quality solution in the shortest time. We have implemented sequential version and three parallel versions of algorithm and we have analysed their performance under the benchmarks taken from literature. Problem przepływowy cieszy się dużym zainteresowaniem ze strony teoretyków oraz praktyków od kilkudziesięciu lat. Z praktycznego punktu widzenia stanowi on podstawowy model dla szerokiej klasy rzeczywistych systemów produkcyjnych. W problemie przepływowym należy wykonać określoną liczbę zadań produkcyjnych. Maszyny w systemie produkcyjnym ustawione są w tzw. ciągu technologicznym. Każda maszyna odpowiedzialna jest za wykonanie określonego etapu produkcyjnego. Zadania wykonywane są na wszystkich maszynach, przy czym marszruta technologiczna (kolejność odwiedzania maszyn przez zadanie) jest identyczna dla wszystkich zadań i jest zgodna z numeracją maszyn. W permutacyjnym problemie przepływowym dodatkowo wymaga się aby kolejność wykonywania zadań na wszystkich maszynach była jednakowa. Harmonogramowanie zadań w systemie przepływowym polega na wyznaczeniu dopuszczalnych momentów rozpoczęcia oraz zakończenia wykonywania zadań na poszczególnych maszynach. Dodatkowo żąda się aby harmonogram minimalizował zadanie kryterium optymalizacyjne. Poszukiwania badaczy koncentrują się na poszukiwaniach efektywnych algorytmów heurystycznych, ponieważ dla większości kryteriów
M. MAKUCHOWSKI, J. PEMPERA optymalizacyjnych problem przepływowy jest NP-trudny dla m > 2. Spośród istniejących kryteriów jednym z najczęściej badanych jest kryterium minimalizacji czasu zakończenia realizacji wszystkich zadań. Jednakże we współczesnych systemach produkcyjnych elastycznie reagujących na żądania odbiorców dóbr kryteria bazujące na żądanych terminach odbioru są bardziej pożądane. W literaturze rozpatruje się kryteria optymalizacyjne związane zarówno z karą za przedterminowe jak i spóźnione zakończenie wykonywania zadań. Skonstruowanie efektywnych algorytmów heurystycznych dla w/w kryteriów, w szczególności z kryteriów sumacyjnym jest powszechnie uważane za trudne. Związane jest to z brakiem udowodnionych własności pozwalających na efektywne wyeliminowanie rozwiązań gorszych bez obliczania wartości funkcji celu. W pracy rozważa się problem minimalizacji sumy spóźnień realizacji zadań w przepływowym problemie permutacyjnym. Do rozwiązania problemu proponuje się nowy wielowątkowy algorytm oparty na metodzie symulowanego wyżarzania. 2. Opis problemu W problemie przepływowym należy wykonać n zadań ze zbioru J = {1,.., n} na m maszynach ze zbioru M = {1,..., m}. Maszyny w systemie produkcyjnym ustawione są w tzw. ciągu technologicznym. Każda maszyna odpowiedzialna jest za wykonanie określonego etapu produkcyjnego. Czas wykonania zadania j J na maszynie k M wynosi p jk 0. Zadania wykonywane są na wszystkich maszynach, przy czym marszruta (kolejność odwiedzania maszyn przez zadanie) jest identyczna dla wszystkich zadań i jest zgodna z numeracją maszyn. Kolejność wykonywania zadań na wszystkich maszynach jest identyczna. Dla każdego zadania j J zdefiniowany jest żądany termin odbioru d j 0. Kolejność wykonywania zadań na maszynach możemy opisać przy pomocy permutacji π elementów zbioru {1,..., n}. Harmonogram wykonywania zadań na maszynach możemy opisać przy pomocy momentów ich rozpoczęcia i zakończenia. Niech C jk (S jk ) będzie momentem zakończenia (rozpoczęcia) wykonywania zadania j J na maszynie k M. Najwcześniejsze momenty zakończenia dla zadanej kolejności π można wyznaczyć ze znanego wzoru: C π(j),k = max{c π(j 1),k, C π(j),k 1 } dla j = 1,..., n, k = 1,..., m, (1) gdzie π(0) = 0, C j,0 = 0, j = 1,..., n, C 0,k = 0, k = 1,..., m. Spóźnienie wykonywania zadania j J wynosi T j = max{0, C j d j }, gdzie C j = max k M C jk oznacza moment zakończenia realizacji zadania j J. Zadnie optymalizacji polega na wyznaczeniu permutacji wykonywania zadań dla której harmonogram wykonywania zadań minimalizuje sumę spóźnień zadań tj. chcemy znaleźć permutację π taką, że T (π ) = min T (π), (2) π Π gdzie T (π) = n j=1 T j oraz Π jest zbiorem wszystkich permutacji określonych na zbiorze {1,..., n}. Rozważany problem jest problemem NP-trudnym [1]. Do rozwiązania problemu zaproponowano szereg algorytmów dokładnych opartych na metodzie B&B, przy czym
Zastosowanie technik równoległych w szeregowaniu zadań... zdecydowana większość dotyczy przypadku dwumaszynowego np. [2, 3, 4]. Algorytmy dokładne dla wielomaszynowego problemu przepływowego zostały zaproponowane między innymi w pracach [5, 6]. Z badań algorytmów dokładnych wynika, że mogą one być z powodzeniem stosowane dla liczby zadań nie większej od 20. Dla większej liczby zadań czas obliczeń jest niedopuszczalny w przypadku zastosowań praktycznych. Spośród szerokiej gamy konstrukcyjnych algorytmów heurystycznych skupimy się na algorytmie EDD i NEH EDD [3]. Pierwszy z nich jest intuicyjnym algorytmem często stosowanym w problemach z kryterium minimalizacji spóźnień, natomiast drugi z nich jest jednym z najefektywniejszych w tej klasie algorytmów. W algorytmie EDD zadanie wykonywane są zgodnie z niemalejącym żądanym terminem realizacji. Algorytm NEH EDD jest adaptacją znanego algorytmu NEH [7] dla problemu przepływowego z kryterium minimalizacji czasu zakończenia realizacji zadań. W oryginalnym algorytmie N EH zadania wstępnie są porządkowane zgodnie niemalejącą sumą czasów wykonywania na wszystkich maszynach. W algorytmie NEH EDD kolejność wstępna generowana jest przez algorytm EDD oraz w fazie wstawiania brane jest pod uwagę kryterium minimalizacji sumy czasów spóźnień. W literaturze są również propozycje innych algorytmów przybliżonych dedykowanych rozważanemu w pracy problemowi. Algorytmy bazujące na metodzie poszukiwania z zabronieniami proponowane są w pracach [8, 3, 9]. W pracach [10, 11, 12] proponowane są algorytmy oparte na metodzie symulowanego wyżarzania. Równoczesne zastosowanie wymienionych dwóch technik do stworzenia hybrydowych algorytmów podjęto w pracach [13, 14]. W pracach [15, 16] do stworzenia algorytmów zastosowano podejście ewolucyjne. 3. Algorytm oparty na metodzie symulowanego wyżarzania Idea algorytmu opartego na metodzie symulowanego wyżarzania po raz pierwszy została zaproponowana w pracy [17]. Algorytmy oparte na tej metodzie należą do klasy algorytmów popraw. W każdej iteracji algorytmu z sąsiedztwa rozwiązania bieżącego π wybierane jest w sposób losowy rozwiązanie α, które staje się rozwiązaniem bieżącym dla kolejnej iteracji z pewnym prawdopodobieństwem P. Prawdopodobieństwo to wynosi 1, gdy nowe rozwiązanie nie jest gorsze od rozwiązania bieżącego. W przeciwnym przypadku z prawdopodobieństwem P (π, α) = exp( /t), gdzie = T (α) T (π), a t jest parametrem (zwanym temperaturą), malejącą podczas każdej iteracji algorytmu. Algorytm rozpoczyna działanie od pewnego rozwiązania początkowego wygenerowanego najczęściej szybkim algorytmem konstrukcyjnym. Parametrami algorytmu jest temperatura początkowa t 0, końcowa t k, liczba iteracji iter oraz współczynnik schematu chłodzenia. Algorytm zwraca najlepsze rozwiązanie znalezione podczas pracy. W pracy proponujemy nowy algorytm dla rozważanego problemu oparty na metodzie symulowanego wyżarzania. Algorytm został zaprojektowany w wersji sekwencyjnej i trzech wersjach równoległych różniących się sposobami komunikacji pomiędzy wątkami. Skupimy się teraz na przedstawieniu definicji podstawowych elementów algorytmu. Rozwiązaniem w bieżącym problemie jest permutacja określająca kolejność wykonywania wszystkich zadań ze zbioru J. Sąsiedztwo składa się z rozwiązań generowanych przez zbiór ruchów typy wstaw (ang. insert). Wybór losowego rozwiązania
M. MAKUCHOWSKI, J. PEMPERA realizowany jest w następujący sposób : losowane są dwie różne pozycje (a 1,..., n, b 1,..., n, a b) w bieżącej permutacji α a następnie zadanie z pozycji a przekładane jest na pozycję b. W algorytmie zastosowano geometryczny schemat chłodzenia, przy czym współczynnik schematu był wyznaczany na podstawie wartości parametrów t 0, t k oraz iter. Podczas wstępnych testów komputerowych badane były także inne rodzaje losowych ruchów, między innymi wybór najlepszego z pośród kilku losowych ruchów typu wstaw oraz najlepszy ruch typu insert dla losowego zadania. Badane były także inne wersje sposobu obniżania temperatury, np. chłodzenie logarytmiczne. Jednakże w ten sposób zaprojektowane algorytmy charakteryzowały się znacznie mniejszą efektywnością. Ponadto przebadano różne wersje doboru temperatury początkowej, np. uwzględniając ilość zadań, maszyn czy operacji występujących instancji problemu. Nie udało się jednak nam znaleźć, automatycznego doboru temperatury znacząco podnoszącego efektywność algorytmu. Pewnym ewenementem, zaobserwowanym podczas testów wstępnych, jest fakt, że algorytm cechował się najwyższą skutecznością dla stosunkowo wysokiej temperatury końcowej. Ewenement ten można częściowo wytłumaczyć, bardzo dużym zróżnicowaniem wartości funkcji celu wśród rozwiązań otaczających rozwiązanie bazowe. Typowy dla większości problemów dryft w niskiej temperaturze (przeszukiwanie podzbioru rozwiązań o wartości funkcji celu zbliżonej do lokalnie optymalnej) praktycznie nie występuje, zatem przeszukiwanie w niskiej temperaturze nie jest skuteczne. Co więcej rozwiązanie wygenerowane przez algorytm często nie leży w minimum lokalnym i potencjalnie można je łatwo polepszyć. Dodatkowo, w celu zwiększenia efektywności algorytmu został zaimplementowany w wersji wielostartowej (ang. multirun), przy czym rozwiązaniem początkowym dla kolejnego uruchomienia jest najlepsze rozwiązanie wygenerowane w poprzednim. Parametrem wynikającym z wielokrotnego uruchomienia jest liczba restartów r (a dokładniej liczba uruchomień procedury ). Dalej pojedyncze wykonywanie jednego uruchomienia będziemy nazywali wątkiem. W celu uniezależnienia jakości generowanych rozwiązań od temperatury początkowej każdy z wątków startuje z innej temperatury początkowej. 3.1. Wersje równoległe algorytmu Podczas zrównoleglenia algorytmu zastosowano podejście wielościeżkowe. Podejście to jest stosunkowo proste w realizacji i może być implementowane na komputery PC wyposażone w powszechnie stosowane procesory wielordzeniowe. W podejściu wielościeżkowym każda z równoległych jednostek obliczeniowych realizuje algorytm z innymi parametrami. W określonych momentach czasowy procesory komunikują i wymieniają informację o stanie przeszukiwań pomiędzy sobą. W pierwszej wersji równoległej algorytmu nie zastosowano żadnego mechanizmu wymiany danych. W drugiej wersji wszystkie wątki startują zawsze z tego samego najlepszego znalezionego do tej pory rozwiązania. W trzeciej wersji algorytmu najsłabszy wątek (wątek, który znalazł najgorsze rozwiązanie) startuje z najlepszego dotychczas znalezionego rozwiązania. Pozostałe wątki nie zmieniają swoich bieżących rozwiązań. Parametrem wersji równoległej jest liczba jednocześnie działających wątków w. W dalszej części pracy algorytm sekwencyjny będziemy oznaczać symbolem S, natomiast wersje równoległe odpowiednio P 1, P 2 oraz P 3.
Zastosowanie technik równoległych w szeregowaniu zadań... Na rysunku 1 przedstawiono schematy wersji sekwencyjnej, wersji równoległych algorytmu oraz komunikację pomiędzy wątkami. S P1 P2 P3 IN IN IN IN * * * x r * * * * * x x * * * * x OUT OUT OUT OUT w w w Rys. 1. Strategie komunikacji występujące pomiędzy wątkami w algorytmach 4. Badania eksperymentalne Eksperyment obliczeniowy zrealizowano na komputerze PC wyposażonym w czterordzeniowy procesor i7 2.6GHz działającym pod systemem operacyjnym Windows Server 2008. Algorytmy równoległe zaprogramowano wielowątkowo w środowisku Visual Studio 2010. Badania przeprowadzono na zestawie 540 literaturowych przykładów testowych [18, 19]. Przykłady te tworzą 12 grup po 45 instancji o jednakowych rozmiarach. Grupy nazywane są odpowiednio n m gdzie n to liczba zadań, a m liczba maszyn w instancjach. Temperatura początkowa dla pierwszego uruchomienia wynosi t 0 = 800, w kolejnych uruchomieniach zmniejszana jest o 100 jednostek. Temperatura końcowa dla wszystkich wątków jest jednakowa i wynosi t k = 10. Wszystkie wersje algorytmów startowały z rozwiązania początkowego wygenerowanego algorytmem NEH EDD z liczbą restartów r = 8. W każdej wersji równoległej jednocześnie pracowało w = 4 wątki. W celu oceny jakości dostarczanych przez algorytm rozwiązania posłużono się wskaźnikiem RDI (ang. Relative Deviation Index) [20] wykorzystywanym między innymi w pracach [3, 14, 19]. Wskaźnik RDI rozwiązania α A generowanego przez algorytmu A obliczany w następujący sposób T (α RDI(α A A ) T (α ) ) = T (α ) T (α 100%, (3) ) gdzie α oraz α odpowiadającym najlepszemu i najgorszemu rozwiązaniu uzyskanemu zestawem algorytmów. W naszym opracowaniu wartości najlepszych i najgorszych rozwiązań zaczerpnięto z pracy [19] (pliki z danymi znajdują się pod adresem [18]). Wartość wskaźnika RDI w pobliżu 0% oznacza, iż badany algorytm uzyskał rozwiązanie tak dobre jak najlepsze rozwiązanie uzyskane zestawem wzorcowych algorytmów,
M. MAKUCHOWSKI, J. PEMPERA wartość w okolicy 100% oznacza, iż uzyskane rozwiązanie jest na poziomie najsłabszego rozwiązania. Wskaźnik RDI przyjmuje wartości ujemne, gdy badany algorytm dostarczy rozwiązania lepszego niż najlepsze otrzymane całym zestawem algorytmów. Średnia wartość wskaźnika RDI [%] badanych algorytmów Tabela 1 Grupa NEH EDD GA T SB SRH S P 1 P 2 P 3 50 10 17.52 12.55 6.42 2.12 1.49 1.10 1.12 1.13 50 30 19.88 35.00 26.41 2.37 2.94 2.00 2.17 2.10 50 50 18.21 35.77 25.73 2.67 3.04 2.09 2.46 2.16 150 10 13.65 3.53 0.65 2.52 1.16 0.67 1.01 0.78 150 30 20.39 8.44 5.37 1.76 2.96 2.00 3.02 2.20 150 50 21.88 10.82 8.97 2.08 4.12 2.81 3.91 3.12 250 10 10.04 3.70 0.52 2.56 0.45 0.12 0.31 0.18 250 30 17.44 8.22 2.34 2.81 1.18 0.56 1.26 0.75 250 50 20.10 10.06 5.91 3.01 2.17 1.31 2.74 1.64 350 10 9.06 5.16 0.78 3.03 0.13-0.26 0.06-0.21 350 30 15.53 9.77 1.63 2.97 0.58-0.03 0.83 0.11 350 50 17.43 10.72 3.77 2.76 1.27 0.48 1.33 0.81 Wszystko 16.76 12.81 7.38 2.55 1.79 1.07 1.69 1.23 Średni czas działania badanych algorytmów [s] Tabela 2 Grupa NEH EDD GA T SB SRH S P 1 P 2 P 3 50 10 0.0 22.5 22.5 22.5 2.2 2.5 2.5 2.5 50 30 0.0 67.5 67.5 67.5 7.6 8.6 8.7 8.6 50 50 0.0 112.5 112.5 112.5 11.9 13.4 13.6 13.6 150 10 0.2 67.5 67.5 67.5 4.9 5.8 5.8 5.8 150 30 0.8 202.5 202.5 202.5 19.1 22.0 22.4 22.4 150 50 0.5 337.5 337.5 337.5 35.4 40.6 40.3 40.9 250 10 0.3 112.5 112.5 112.5 7.8 9.0 9.1 8.9 250 30 1.0 337.5 337.5 337.5 26.5 31.9 31.8 32.0 250 50 1.9 562.5 562.5 562.5 51.9 60.2 59.9 60.3 350 10 0.7 157.5 157.5 157.5 8.8 10.8 10.8 10.9 350 30 2.7 472.5 472.5 472.5 33.5 39.6 40.3 40.5 350 50 5.1 787.5 787.5 787.5 63.5 74.1 74.0 74.1 W tabeli 1 zestawiono średnie wartości współczynnika RDI algorytmów literaturowych oraz proponowanych algorytmów. Współczynniki algorytmów literaturowych zostały zaczerpnięte z pracy [19]. Spośród szerokiej gamy algorytmów wybrano trzy
Zastosowanie technik równoległych w szeregowaniu zadań... reprezentujące różne metody optymalizacyjne. Algorytm GA [15] jest algorytmem genetycznym, z kolei algorytm T S [9] bazuje na metodzie poszukiwania z zabronieniami. Na obecną chwilę najefektywniejszym z literaturowych algorytmów jest algorytm SRH [12] bazujący na metodzie symulowanego wyżarzania. Z analizy rezultatów badań wynika, że zaproponowany algorytm znacznie przewyższa skutecznością działania algorytmy proponowane w literaturze. Na podstawie wyników badań wersji sekwencyjnej wnioskujemy, że wykorzystanie zaobserwowanego ewenementu korzystnie wpłynęło na efektywność. W przypadku większości grup testowych algorytm S znajdował lepsze w sensie średnim rozwiązania niż najlepszy z algorytmów literaturowych - algorytm SRH. Uwaga ta dotyczy w szczególności grup instancji o dużych rozmiarach. Średnia wartość RDI dla SRH waha się w granicach 1.7 3.1% i wynosi średnio 2.55% dla wszystkich instancji. W przypadku S wartość średnia RDI waha się w granicach 0.1 3.0% i wynosi średnio 1.79% dla wszystkich instancji tj. o przeszło 0.7 % mniej. Co więcej, algorytm P 1 w czasie niecałych 4 godzin znalazł nowych 76 lepszych rozwiązań dla badanego zestawu danych testowych. Wysoka efektywność algorytmu S szczególnie widoczna jest podczas analizy czasów działania algorytmów, patrz Tabela 2. W przypadku S czas działania jest blisko 10 krotnie krótszy od działania algorytmów literaturowych. Obliczenia w obu przypadkach zostały przeprowadzone na komputerach o porównywalnej prędkości przetwarzania jednowątkowego (komputer z procesorem Pentium IV 3.0GHz w przypadku SRH i innych). Równoległe wersje algorytmu generują istotnie lepsze rozwiązania od wersji sekwencyjnej. Wartość średnia dla całej grupy instancji współczynnika RDI dla najlepszej wersji równoległej wynosi 1.07 % i jest o ponad 0.7 % mniejsza od tej wartości dla wersji sekwencyjnej. Wyniki badań jednoznacznie wskazują, że najlepszą wersją algorytmu jest P 1 (bez komunikacji). Współpraca procesów prowadząca do intensyfikacji przeszukiwania wokół rozwiązań najlepszych nie jest najlepszą w tym wypadku metodą poprawy efektywności algorytmu. Czas działania algorytmów równoległych jest porównywalny z czasem działania algorytmu sekwencyjnego. Zatem wykorzystując nowe możliwości techniczne wielordzeniowych procesorów możemy istotnie zwiększyć jakość generowanych rozwiązań nie zwiększając czasu oczekiwania na wynik. 5. Podsumowanie W pracy zaproponowano nowy algorytm oparty na metodzie symulowanego wyżarzania. W jego konstrukcji wykorzystano pewne własności rozwiązywanego problemu, które w efekcie pozwoliły na poprawę efektywności algorytmu. W celu zwiększenia efektywności realizacji algorytmu zastosowano przetwarzanie równoległe realizowanie w kilku wariantach. Z analizy rezultatów badań eksperymentalnych wynika, że zaproponowany algorytm już w wersji sekwencyjnej jest znacznie efektywniejszy od algorytmów literaturowych. Przetwarzanie równoległe przewagę tą istotnie powiększa. Dalsza część pracy, powinna być ukierunkowana na dalsze podniesienie efektywności algorytmów równoległych poprzez opracowanie nowych metod wykorzystania informacji pomiędzy działającymi wątkami ukierunkowaną na na dywersyfikację poszukiwań. W szczególności przekazywane pomiędzy wątkami informacje pozwalały by eliminować te z nich które dublują przeszukiwaną części przestrzeni rozwiązań.
M. MAKUCHOWSKI, J. PEMPERA LITERATURA 1. Du J., Leung JYT.: Minimizing total tardiness on one machine is NP-hard. Operations Research (1990), 38, p. 22 36. 2. Sen T, Dileepan P, Gupta JND. The two-machine flowshop scheduling problem with total tardiness. Computers and Operations Research 1989;16:333 40. 3. Kim YD. A new branch and bound algorithm for minimizing mean tardiness in 2-machine flowshops. Computers and Operations Research 1993;20:391-401. 4. Pan JCH, Chen JS, Chao CM. Minimizing tardiness in a two-machine flow-shop. Computers and Operations Research 2002;29:869-85. 5. Kim YD. Minimizing total tardiness in permutation flowshops. European Journal of Operational Research 1995;85:541-55. 6. Chung CS, Flynn J, Kirca O. A branch and bound algorithm to minimize the total tardiness for m-machine permutation flowshop problems. European Journal of Operational Research 2006;174:1-10. 7. Nawaz M, Enscore Jr. EE, Ham I. A heuristic algorithm for the m-machine, n-job flow-shop sequencing problem. OMEGA, The International Journal of Management Science 1983;11:91-5. 8. Adenso-Díaz B. Restricted neighbourhood in the tabu search for the flowshop problem. European Journal of Operational Research 1992;62: 27-37. 9. Armentano VA, Ronconi DP. Tabu search for total tardiness minimization in flowshop scheduling problems. Computers and Operations Research 1999;26:219-35. 10. Parthasarathy S, Rajendran C. Asimulated annealing heuristic for scheduling to minimize mean weighted tardiness in a flowshop with sequencedependent setup times of jobs a case study. Production Planning and Control 1997;8:475 83. 11. Parthasarathy S, Rajendran C. Scheduling to minimize mean tardiness and weighted mean tardiness in flowshop and flowline-based manufacturing cell. Computers and Industrial Engineering 1998;34:531-46. 12. Hasija S, Rajendran C. Scheduling in flowshops to minimize total tardiness of jobs. International Journal of Production Research 2004;42:2289 301. 13. Adenso-Díaz B. An /TS mixture algorithm for the scheduling tardiness problem. European Journal of Operational Research 1996;88: 516-24. 14. KimYD, Lim HG, ParkMW. Search heuristics for a flowshop scheduling problem in a printed circuit board assembly process. European Journal of Operational Research 1996;91:124-43. 15. Onwubolu GC, Mutingi M. Genetic algorithm for minimizing tardiness in flowshop scheduling. Production Planning and Control 1999;10: 462-71. 16. Onwubolu G, Davendra D. Scheduling flow shops using differential evolution algorithm. European Journal of Operational Research 2006;171:674 92.
Zastosowanie technik równoległych w szeregowaniu zadań... 17. Kirkpatrick S., Gelatt C.D., Vecchi M.P. Optimisation by simulated annealing, Science 220, 1983, 671-680. 18. http://soa.iti.es/files/eva_instances.zip. 19. Vallada E, Ruiz R, Minella G. Minimising total tardiness in the m-machine flowshop problem: A review and evaluation of heuristics and metaheuristics. Computers and Operations Research 2008; 35:1350 1373. 20. Zemel E. Measuring the quality of approximate solutions to zero one programming problems. Mathematics of Operations Research 1981;6:319 32.