Algorytm y heurystyczne dla problemu minimalizacji sumy kosztów zadań opóźnionych

Podobne dokumenty
Metody optymalizacji dyskretnej

Schemat programowania dynamicznego (ang. dynamic programming)

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Metody Optymalizacji: Przeszukiwanie z listą tabu

Rozdział 1 PROGRAMOWANIE LINIOWE

5. Rozwiązywanie układów równań liniowych

Sterowanie procesami dyskretnymi

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

Programowanie liniowe

Programowanie celowe #1

9.9 Algorytmy przeglądu

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Optymalizacja. Wybrane algorytmy

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Układy równań i nierówności liniowych

Optymalizacja. Przeszukiwanie lokalne

Algorytm. Krótka historia algorytmów

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

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

HEURYSTYCZNY ALGORYTM SZEREGOWANIA ZADAŃ W SYSTEMIE MASZYN RÓWNOLEGŁYCH Z KRYTERIUM MINIMALNO-CZASOWYM

Algorytm simplex i dualność

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

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

Programowanie liniowe

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Zaawansowane algorytmy i struktury danych

ZESZYTY NAUKOWE POLITECHNIKI ŚLĄSKIEJ 2008 Seria: AUTOMATYKA z. 199 Nr kol. 1999

1 Działania na zbiorach

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Rozwiązywanie problemów z użyciem Solvera programu Excel

TOZ -Techniki optymalizacji w zarządzaniu

Programowanie liniowe

Uczenie sieci typu MLP

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Metody Numeryczne Optymalizacja. Wojciech Szewczuk

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Optymalizacja ciągła

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Efektywność Procedur Obliczeniowych. wykład 5

Metody numeryczne w przykładach

NIETYPOWE WŁASNOŚCI PERMUTACYJNEGO PROBLEMU PRZEPŁYWOWEGO Z OGRANICZENIEM BEZ PRZESTOJÓW

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

Zaawansowane programowanie

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

Układy równań liniowych. Krzysztof Patan

Wybrane podstawowe rodzaje algorytmów

Algorytmy heurystyczne w UCB dla DVRP

ALGORYTM PERTURBACYJNY DLA PROBLEMU PRZEPŁYWOWEGO

Analiza wielokryterialna wstęp do zagadnienia

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

HARMONOGRAMOWANIE ROBÓT BUDOWLANYCH Z MINIMALIZACJĄ ŚREDNIEGO POZIOMU ZATRUDNIENIA

PROBLEM ROZMIESZCZENIA MASZYN LICZĄCYCH W DUŻYCH SYSTEMACH PRZEMYSŁOWYCH AUTOMATYCZNIE STEROWANYCH

Analiza stanów gry na potrzeby UCT w DVRP

Programowanie liniowe. Tadeusz Trzaskalik

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytmy konstrukcyjne dla problemu harmonogramowania projektu z ograniczonymi zasobami. Marcin Klimek *

Metody numeryczne I Równania nieliniowe

Optymalizacja. Przeszukiwanie tabu

Optymalizacja ciągła

Programowanie liniowe metoda sympleks

Tabu Search (Poszukiwanie z zakazami)

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Dystrybucje, wiadomości wstępne (I)

1 Równania nieliniowe

Algorytmy metaheurystyczne podsumowanie

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

NOWE WARIANTY OPERATORÓW GENETYCZNYCH DLA PROBLEMÓW Z KRYTERIUM SUMACYJNYM

Optymalizacja harmonogramów budowlanych - szeregowanie zadań. Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie

Elementy Modelowania Matematycznego

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

1 Programowanie całkowitoliczbowe PLC

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

ALGORYTM PERTURBACYJNY DLA PROBLEMU PRZEPŁYWOWEGO

Zestaw A-1: Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb i.ads)!!! Zad. 1: 4,3,3 2,2,1 Zad. 2: 3,3,3 Zad.

III. ZMIENNE LOSOWE JEDNOWYMIAROWE

Programowanie w Baltie klasa VII

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

n=0 (n + r)a n x n+r 1 (n + r)(n + r 1)a n x n+r 2. Wykorzystując te obliczenia otrzymujemy, że lewa strona równania (1) jest równa

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

SZTUCZNA INTELIGENCJA

Optymalizacja. Przeszukiwanie tabu

Rozwiązywanie układów równań liniowych

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Zestaw 1: Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb i.ads)!!! Zad. 1: Zad. 2: 2,2,2 5,5,5,5,5,5 Zad.

Techniki optymalizacji

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Luty 2001 Algorytmy (7) 2000/2001

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Programowanie dynamiczne (optymalizacja dynamiczna).

Zadanie 1: Piętnastka

Przeszukiwanie lokalne

AUTOMATYZACJA PROCESW DYSKRETNYCH 2012 ZASTOSOWANIE TECHNIK RÓWNOLEGŁYCH W SZEREGOWANIU ZA- DAŃ Z KRYTERIUM MINIMALIZACJI SUMY SPÓŹNIEŃ

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

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

Matematyka dyskretna dla informatyków

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

TEORETYCZNE PODSTAWY INFORMATYKI

Transkrypt:

ROCZNIKI POLSKIEGO TOWARZYSTWA MATEMATYCZNEGO Seria III: MATEMATYKA STOSOWANA XXXXI (1999) M ie c z y s ł a w W odecki Wrocław Algorytm y heurystyczne dla problemu minimalizacji sumy kosztów zadań opóźnionych (Praca wpłynęła do Redakcji 19 czerwca 1998) A b stra ct. W pracy rozpatrujemy problem minimalizacji sumy kosztów opóźnień zadań wykonywanych na jednej maszynie, który jest oznaczany przez 1 y^wjtj. Należy on do klasy problemów silnie NP-zupełnych. Zamieszczone w literaturze wyniki obliczeniowe wskazują, że w rozsądnym czasie można uzyskać jego rozwiązanie optymalne jedynie dla przykładów o niewielkich rozmiarach. Z tego właśnie powodu proponujemy szybki algorytm heurystyczny oraz algorytm typu popraw oparty na metodzie tabu search. 1. W s t ę p. W pracy zajmujemy się zagadnieniem optymalizacji kolejności wykonywania zadań na jednej maszynie, w którym kryterium optymalności jest suma kosztów zadań wykonanych nieterminowo (opóźnionych). W problemie tym, każde z n zadań (ponumerowanych liczbami 1, 2,...,n) należy wykonać, bez przerywania, na jednej maszynie. Maszyna ta, w dowolnej chwili, może wykonywać co najwyżej jedno zadanie. Dla zadania i (i = 1,2,...,n), niech pi, Wi, di będą odpowiednio: czasem wykonywania, wagą funkcji kosztów oraz wymaganym terminem zakończenia (linią krytyczną). Jeżeli ustalona jest kolejność wykonywania zadań oraz Ci jest terminem zakończenia wykonywania zadania i (i = 1,2,..., n), to Ti = max{0, Ci di} nazywamy opóźnieniem, a fi(ci) = Wi * Ti kosztem opóźnienia zadania. Rozważany problem polega na wyznaczeniu takiej kolejności wykonywania zadań, która minimalizuje sumę kosztów opóźnień, tj. YhwiTi. W literaturze jest on oznaczany przez 1 Y^wiTi- Problem minimalizacji sumy kosztów opóźnień zadań wykonywanych na jednej maszynie należy do klasy problemów silnie NP-zupełnych (Lawler [7], Lenstra i inni [9]). Emmons w pracy [5] sformułował tak zwane reguły dominacji (dominance rules) - kryteria pozwalające na ustalenie relacji czę-

36 M. Wodecki ściowego porządku na zbiorze zadań. Korzystając z nich skonstruowano wiele algorytmów rozwiązywania rozpatrywanego problemu opartych na metodzie podziału i ograniczeń Fisher [6], Potts i Van Wassenhove [10], Rinnoy Kan i inni [13], Adrabiński i inni [3], a także na metodzie programowania dynamicznego Schrage i Baker [14], Lawler [8]. Algorytmy te pozwalają rozwiązywać (w rozsądnym czasie) przykłady, w których liczba zadań jest nie większa niż 40 (Potts i Van Wassenhove [10]) oraz dla pewnych danych 50 (Adrabiński i inni [3]). Osobną grupę stanowią algorytmy wykorzystujące elementy programowania dynamicznego, na przykład do obliczania dolnych ograniczeń (Potts i Van Wassenhove [11]). Jednak ze względu na gwałtowny wzrost zapotrzebowania na pamięć stosowanie metod programowania dynamicznego dla rozwiązywania przykładów o rozmiarze większym niż 50 wydaje się wielce problematyczne. Inne jeszcze algorytmy dokładne są omówione w pracy przeglądowej Abdul-Razaq i inni [2]. Ze względu na małą efektywność tych algorytmów, w praktycznych zastosowaniach dużą rolę odgrywają algorytmy heurystyczne, które mogą być wykorzystywane między innymi do wyznaczania górnych ograniczeń oraz rozwiązań początkowych. Nie zawsze satysfakcjonująca jakość rozwiązań wyznaczonych przez nawet najlepsze algorytmy heurystyczne (Potts i Van Wassenhove [12]) oraz bardzo interesujące wyniki otrzymane dla wielu zagadnień przez zastosowanie techniki tabu search, były inspiracją do konstrukcji zupełnie nowych algorytmów. W niniejszej pracy przedstawiamy nowy algorytm heurystyczny oraz algorytm popraw (którego punktem startowym jest rozwiązanie wyznaczone przez algorytm heurystyczny) dla rozwiązywania problemu minimalizacji sumy kosztów zadań wykonanych nieterminowo na jednej maszynie. Algorytm heurystyczny jest oparty na regule lokalnej optymalizacji zadań, tj. takim uszeregowaniu, w którym zamiana miejscami dowolnych dwóch sąsiednich zadań nie zmniejsza wartości funkcji celu. Zamieszczone w Rozdziale 4. wyniki obliczeniowe tego algorytmu są porównywalne z przedstawionymi w pracy Potts i Van Wassenhove [12]. Pomimo tego, w przypadku, gdy mamy możliwość zwiększenia czasu obliczeń, proponujemy zastosowanie algorytmu popraw opartego na metodzie tabu search. Wówczas rozwiązanie wyznaczone przez algorytm heurystyczny będzie punktem startowym dla algorytmu popraw. W konstrukcji tego algorytmu wykorzystuje się specyfikę rozwiązania początkowego oraz rozpatruje się jedynie permutacje lokalnie optymalne (minima lokalne), dzięki czemu istotnie poprawia się lokalne przeszukiwanie i zwiększa prędkość działania algorytmu. Pozwala to na przejrzenie (bezpośrednio lub pośrednio), w krótkim czasie, znacznej części zbioru rozwiązań, a co za tym idzie wyznaczenie rozwiązania globalnie optymalnego lub też dobrego rozwiązania lokalnego. Przedstawione w Rozdziale 4. wyniki wskazują, że dzięki temu można średnio jeszcze o kilka procent poprą-

Algorytmy heurystyczne dla problemu minimalizacji 37 wić wyznaczone przez algorytm heurystyczny rozwiązanie. Oba algorytmy są bardzo szybkie i nie wymagają zbyt wiele pamięci. 2. A lg o ry tm heurystyczny. Niech N = {l,2,...,n} będzie zbiorem wszystkich zadań, a 77 zbiorem permutacji elementów z N. Dla permutacji 7T G 77 przez: 71 F (n) = ) oznaczamy wagę permutacji (tj. sumę kosztów opóźnień, gdy zadania są wykonywane w kolejności występowania w 7r), gdzie: Łatwo zauważyć, że rozważany problem minimalizacji sumy kosztów opóźnień zadań jest równoważny problemowi wyznaczenia permutacji optymalnej (o minimalnej wadze) w zbiorze wszystkich permutacji 77. Dla dowolnego zbioru zadań S C N wprowadzamy oznaczenie: to istnieje permutacja optymalna, w której zadanie i występuje po wszystkich zadaniach z S. Powyższe twierdzenie zwane jest w literaturze lematem Elmaghrabyego [4]. Mówimy, że uszeregowanie (permutacja zadań) jest lokalnie optymalne, jeżeli zamiana miejscami dowolnych dwóch sąsiednich zadań nie generuje uszeregowania o mniejszej wadze. T w i e r d z e n i e 2 (O lokalnej optymalności). Uszeregowanie ir jest lokalnie optymalne wtedy i tylko wtedy, gdy: (l) fn{i 1) (^7r(i 1)) T fir(i) (^ir(i) ) fn (i-l) (^ 7r(i 1) T Pn(i) ) T fn(i) (^Or (ż) PTv(i 1) ) dla i 2,3,...,71. Dowód twierdzenia pomijamy, bowiem jest on natychmiastowy. Rozpatrzmy problem, w którym funkcje kosztów są liniowe to jest, dla każdego zadania i G N jego koszt: jes T w i e r d z e n i e 1. Jeżeli dla zadania i G S (S C N ) zachodzi: di > P(S), fi{ci) = Wi* {Ci - di).

38 M. Wodecki Dla liniowych funkcji kosztów zadań, nierówności (1) przyjmują postać: ^7r(ż 1) ^ ^ 7r(ż) Pn(i 1) Pir(i) dla i = 2,3,..., n. Ponieważ powyższy warunek jest stały i nie zależy od czasu (momentów zakończenia wykonywania zadań), wobec tego łatwo udowodnić następujący lemat. L e m a t 1 (Smith [15]). Dla liniowych funkcji kosztów, uszeregowanie zadań według nierosnących wartości ilorazów Wi/pi (i = 1,2,...,n), jest uszeregowaniem optymalnym. W oparciu o powyższe własności przedstawimy opis konstrukcji algorytmu heurystycznego dla rozważanego zagadnienia. Wynikiem jego działania będzie uszeregowanie lokalnie optymalne (tj. zamiana miejscami dowolnych dwóch sąsiednich zadań nie zmniejszy wartości funkcji celu). W działaniu algorytmu można wyróżnić dwa etapy: 1. Wyznaczanie uszeregowania dla liniowych funkcji kosztów (Lematem 1). 2. Zmiana uszeregowania (rozpoczynając od ostatniego zadania) wynikająca z nieliniowych funkcji kosztów zadań, polegająca na: sprawdzeniu, czy zadanie spełnia warunki Twierdzenia 1, oraz jeżeli nie są spełnione warunki lokalnej optymalności (nierówności (1) z Twierdzenia 2), zamiana miejscami zadań sąsiednich w permutacji. Bardziej formalnie, korzystając z elementów języka Pascal, algorytm ten można zapisać następująco: A lg o ry tm O P T S { Wyznaczenie rozwiązania lokalnie optymalnego} K r o k 1: {Ustalenie wstępnej kolejności zadań} Ponumerować zadania według nierosnących w artości ilorazów W/Pi, i = l,2,...,n; {Zapoczątkowanie obliczeń} U ^ N -, i * - n -,T ^ Y,? = ip i K ro k 2: {Iteracja} repeat Wyznaczyć: dw = max{d* : i [/}; Ustawić zadanie w na p o z y c ji l; J e ż e li dw < T wówczas: (i) 3 l] (ii) dopóki j < n wykonać: przestaw ić zadania znajdujące s ię na pozycjach j, j + 1, j e ż e l i n ie sp e łn ia ją nierów ności (1) oraz j j + i ;

Algorytmy heurystyczne dla problemu minimalizacji 39 { Uaktualnienie wartości} U <- U \ M ; Z< Z 1; T < T pw\ until Z= 0; Złożoność obliczeniowa algorytmu O P T S wynosi 0 (n 2). Można przy tym łatwo wykazać, że wyznaczona przez ten algorytm permutacja (rozwiązanie heurystyczne) jest lokalnie optymalna (spełnia nierówności Twierdzenie 2). Wyniki obliczeniowe tego algorytmu są zamieszczone w Rozdziale 4. 3. A lg o ry tm p op raw oparty na m etod zie tabu search. Z przeprowadzonych w Rozdziale 1. rozważań wynika, że stosowanie algorytmów dokładnych do rozwiązywania rozpatrywanego zagadnienia jest niemożliwe - szczególnie dla problemów o średnim i dużym rozmiarze. Dlatego w pełni uzasadnionym jest stosowanie algorytmów heurystycznych wyznaczających zazwyczaj pewne minimum lokalne. Nie zawsze satysfakcjonująca jakość uzyskanego w ten sposób rozwiązania oraz bardzo interesujące wyniki otrzymane przy zastosowaniu metod popraw, przedstawione w opracowaniu Aarts E., Lenstra J.K. [1], były inspiracją do konstrukcji algorytmu przeszukiwania tabu (tabu search, w skrócie TS) dla rozpatrywanego zagadnienia. Zazwyczaj, w literaturze, punktem startowym dla algorytmów opartych na technice TS jest losowo generowane rozwiązanie dopuszczalne lub też rozwiązanie wyznaczone przez dowolny algorytm heurystyczny. Przedstawiony w dalszej części pracy algorytm oparty na metodzie TS w sposób istotny wykorzystuje fakt, że jego punktem startowym jest permutacja wyznaczona przez algorytm O P T S, tj. spełniająca warunki lokalnej optymalności. Dzięki temu, w krótkim czasie, można uzyskać dalsze polepszenie wejściowego rozwiązania heurystycznego. Generalnie, przeszukiwanie tabu należy do klasy metod iteracyjnych polegających na polepszaniu bieżącego rozwiązania poprzez lokalne przeszukiwanie. Rozpoczyna się ono od pewnego rozwiązania początkowego (startowego) tt. Następnie, generuje się jego otoczenie Vn oraz wyznacza najlepsze rozwiązanie 8 z tego otoczenia (jeżeli F(8) < F ( tt *), to 8 jest przyjmowane za najlepsze do tej pory wyznaczone rozwiązanie 7r*). Rozwiązanie 8 przyjmuje się za rozwiązanie startowe t t w następnej iteracji. Aby zapobiec generowaniu w nowych iteracjach rozwiązań, niedawno rozpatrywanych, zapamiętuje się je na tzw. liście rozwiązań zabronionych (liście tabu). Przy czym, generując otoczenie nie rozpatruje się rozwiązań znajdujących się na tej liście. Jej długość jest jednym z parametrów algorytmu. Warunkiem zakończenia jest zazwyczaj maksymalna liczba iteracji algorytmu lub też brak poprawy wartości funkcji celu w z góry określonej liczbie iteracji. Sposób określania sąsiedztwa oraz organizacja listy ruchów (rozwiązań) zabronionych są podstawowymi elementami algorytmu TS. Poniżej określimy oba te elementy.

40 M. Wodecki Niech t t = (7r(l), t t ( 2),..., t t (n)) będzie permutacją startową wyznaczoną przez algorytm O P T S (opisany w poprzednim rozdziale), a t t * permutacją o najmniejszej wadze spośród do tej pory rozpatrywanych. Na początek za t t * przyjmujemy permutację t t. Dalej załóżmy, że tr ( k ) jest zadaniem o największym koszcie opóźnienia spośród 7r(l), 7t (2),..., 7r(n), to jest: (2) /^(fc)(^7r(fc)) max{y7r(j)(c77r(j)). i 1,2,..., n{. Przez 7rf (l = 1,2,..., n) oznaczmy permutację otrzymaną z t t przez zamianę miejscami elementu tt ( k ) z tt (1), tj. permutację, w której 7rf(ż) = 7r(ż), i 1, 2,..., n, i / k, l oraz 7rf ( k ) = 7r(Z), 7rf(/) = 7r ( k ). Niech: (3) K = {tt? : l = 1,2,..., k - 2, k + 2,..., n}. Zbiór ten nazywamy otoczeniem permutacji t t. Z otoczenia Vn wybieramy permutację o najmniejszej wadze i modyfikujemy ją (zgodnie z Twierdzeniem 2) tak, aby spełniała warunki lokalnej optymalności (1). Oznaczmy tak wyznaczoną permutację przez j3. Jeżeli F{(3) < F ( t t * ), to za t t * przyjmujemy permutację /3. Permutację tą traktujemy jako nowe rozwiązanie startowe i rozpoczynamy następną iterację algorytmu od określenia otoczenia permutacji (5. Każde rozwiązanie startowe jest pamiętane na liście ruchów zakazanych (cykliczna lista o ustalonej długości LTmax), zawierającej ostatnio rozpatrywane permutację startowe. Przy realizacji algorytmu na liście pamiętane są nie całe permutację, ale jedynie pewne ich atrybuty (pozycje zamienianych zadań) przez co zajmuje ona niewiele pamięci. Wyznaczając otoczenie permutacji eliminujemy rozwiązania, które aktualnie są na liście. Uniemożliwia to generowanie rozwiązań niedawno rozpatrywanych, a więc szybki powrót do lokalnego minimum. Liczba elementów otoczenia jest nie większa niż n 2, a złożoność obliczeniowa operacji związanych z jego wygenerowaniem wynosi 0 (n * LTmax). Algorytm kończy działanie (warunek końca), jeżeli: wykonał z góry określoną LImax liczbę iteracji, w kolejnych BPmax iteracjach nie uzyskano poprawy wartości funkcji celu, - aktualne otoczenie jest zbiorem pustym. Niech t t będzie rozwiązaniem heurystycznym wyznaczonym przez algorytm O P T S oraz LTS listą permutacji zakazanych. Za t t * - najlepszą do tej pory wyznaczoną permutację przyjmujemy na początek t t. A lg o ry tm A T S {Algorytm popraw - tabu search} repeat Wyznaczyć otoczenie Vv permutacji 7r, zgodnie z (2) i (3); Usunąć z otoczenia elementy znajdujące się na liście LTS; Wybrać permutację 6 taką, że: F(6) = min{.f(/?) :(3 G V*}

Algorytmy heurystyczne dla problemu minimalizacji 41 oraz zmodyfikować ją ta k, aby b y ła lo k a ln ie optymalna; J e ż e li F(ó)<F(ir*), to 7r* ó; Umieść ó na liście LTS; 7r < 6; until Warunek_Końca. Algorytm A T S ma pseudowielomianową złożoność obliczeniową 0(LIm ax * n * LTmax), zależną od liczby zadań n, maksymalnej liczby iteracji LImax oraz długości listy ruchów zakazanych LTmax. 4. W y n ik i obliczen iow e algorytm ów. Przedstawione w poprzednich rozdziałach algorytmy zostały zaprogramowane w języku Pascal i były testowane na wielu przykładach generowanych losowo. Sposób generowania danych został dokładnie przedstawiony i przedyskutowany w pracy Potts i Van Wassenhove [12]. Każdy przykład składa się z n trójek (Wi,pi,di), gdzie n jest liczbą zadań, a Wi, pi, di są odpowiednio: wagą funkcji kosztów, czasem wykonywania oraz wymaganym terminem zakończenia dla i-tego zadania. Waga funkcji kosztów oraz czas wykonywania są realizacją zmiennych losowych o rozkładzie jednostajnym odpowiednio na przedziale [1,10] oraz [1,100]. Wartości wymaganych terminów zakończenia zależą od dwóch parametrów RDD (relative of due dates) oraz TF (average tardiness factor), które przyjmują wartości ze zbioru {0.2, 0.4, 0.6, 0.8, 1.0}. Terminy te są realizacją zmiennej losowej o rozkładzie jednostajnym na przedziale [P( 1 - TF - R D D /2), P( 1 - TF + RDD/2)], gdzie P = Dla każdej pary parametrów RDD i TF (w sumie 25 par) generowano 5 przykładów, czyli dla ustalonego n generowano 125 przykładów. T A B E L A 1 Porównanie wyników algorytmu dokładnego i heurystycznego. liczba zadań liczba przykładów liczba rozwiązań optymalnych średni błąd (% ) 10 125 75 5.99 20 125 40 5.51 30 125 37 7.76 40 125 18 4.38* 50 125 22 2.17* * Średni błąd w stosunku do najlepszego rozwiązania (niekoniecznie optymalnego) wyznaczonego przez algorytm dokładny Adrabióski i inni [3], przy ograniczeniu czasu obliczeń do 3 minut. W Tabeli 1 przedstawiono i porównano wyniki uzyskane przez algorytm dokładny zamieszczony w pracy Adrabiński i inni [3] oraz algorytm heurystyczny O P T S przedstawiony w Rozdziale 2. Błąd każdego rozwiązania

42 M. Wodecki (heurystycznego) liczono według następującego wzoru: ((Fo p t s -Fo p t V ^ o p t ) * 100%, gdzie Fo p t jest wartością rozwiązania dokładnego, a Fo p t s wartością rozwiązania wyznaczonego przez algorytm heurystyczny. Średnią tych błędów przedstawiono w kolumnie czwartej tabeli, a w kolumnie trzeciej liczbę przykładów (spośród wygenerowanych), dla których algorytmem O P T S wyznaczono rozwiązanie dokładne. Z Tabeli 1 wynika, że algorytmem O P T S dla 30% przykładów wyznaczono rozwiązanie dokładne, a średni błąd rozwiązania wynosi 5.16% (błąd maksymalny nie przekracza 67%). Algorytm ten jest porównywalny z innymi, najlepszymi znanymi w literaturze algorytmami heurystycznymi, na przykład zamieszczonymi w pracy Potts i Van Wassenhove [12]. Czas obliczeń jednego przykłady, na mikrokomputerze z procesorem Pentium 166 MHz, nie przekraczał kilkudziesięciu sekund. Eksperymenty obliczeniowe dla algorytm popraw ATS, opartego na metodzie tabu search, przeprowadzono w dwóch etapach. Celem pierwszego było wyznaczenie poszczególnych parametrów algorytmu dla uzyskania jak najlepszej jego efektywności. Analiza otrzymanych wyników pozwoliła na ustalenie następujących wartości parametrów: maksymalnej liczby iteracji LImax = 100 * n, liczby iteracji bez popraw BPmax = 2 * n, długość listy ruchów zakazanych LTmax = 10 * n, gdzie n jest liczbą zadań. Przy zwiększaniu wartości tych parametrów wzrastał także i czas obliczeń, ale poprawa jakości rozwiązania była już niewielka. T A B E L A 2 Poprawa rozwiązania heurystycznego - wyniki algorytmu popraw A T S Liczba liczba liczba rozwiązań średnia zadań przykładów optymalnych poprawa (% ) 10 50 20 1.43 20 85 15 1.94 30 110 17 9.01 40 125 19 3.24 50 38 23 5.14 60 125 8.37 80 125 5.42 100 125 3.17 200 125 4.26 500 125 5.73 W drugim etapie, dokonano obliczeń jedynie na tych spośród wygenerowanych przykładów, dla których algorytm heurystyczny O P T S nie wy-

Algorytmy heurystyczne dla problemu minimalizacji 43 znaczył rozwiązania dokłądnego. Otrzymane wyniki są przedstawione w Tabeli 2. Wyniki zamieszczone w tabeli wskazują, że stosując algorytm popraw A TS, w krótkim czasie, uzyskano dalsze znaczne polepszenie wstępnego rozwiązania - średnio o 4,77%. Z analizy kolumny trzeciej wynika, że dla 21.7% przykładów (o liczbie zadań nie przekraczającej 50), startując z rozwiązania różnego od dokładnego, algorytm popraw wyznaczył rozwiązanie optymalne. Czas obliczeń jednego przykładu nie przekraczał kilkudziesięciu sekund. W sumie, stosując kolejno oba algorytmy uzyskano dla około 44% generowanych przykładów rozwiązanie optymalne, a średni błąd wyznaczonego rozwiązania wynosi około 4.6%. Czas obliczeń jednego przykładu (obu algorytmów) nie przekraczał 2 minut. Na podstawie uzyskanych wyników można jednoznacznie stwierdzić, że oba algorytmy mogą być z powodzeniem stosowane do rozwiązywania problemów o praktycznych (dużych) rozmiarach. Zarówno czas obliczeń jak i jakość uzyskanych rozwiązań są w pełni zadawalające. 5. W n io sk i i uw agi. Wiele eksperymentowano dobierając różne parametry algorytmu popraw A T S jak i na różny sposób definiowano otoczenie punktu przestrzeni rozwiązań dopuszczalnych. Poza sporadycznymi przykładami, generalnie nie prowadziło to do polepszenia wartości uzyskiwanych rozwiązań. Otrzymane wyniki w pełni potwierdziły słuszność założenia, że należy konstruować algorytm popraw dla rozwiązań wyznaczonych przez konkretny algorytm heurystyczny. W naszym przypadku rozwiązania te były lokalnie optymalne. Również przyjęcie permutacji lokalnie optymalnej (minimum lokalnego) za rozwiązanie startowe w każdej iteracji algorytmu TS znacznie zwiększyło efektywność jego działania. Algorytm popraw testowano także przyjmując jako punkt startowy inne rozwiązania. Między innymi wielokrotnie go uruchamiano dla różnych permutacji generowanych losowo. Prowadziło to do znacznego zwiększenia czasu obliczeń, a otrzymane wyniki były znacznie gorsze. Dalsze zwiększenie efektywności działania obu algorytmów można uzyskać poprzez zastosowanie kryteriów eliminacyjnych (Emmons [5]), ustalając relację częściowego porządku na zbiorze zadań, dzięki czemu można z góry ustalić pewne sekwencje zadań a co za tym idzie, zmniejszyć przestrzeń rozwiązań dopuszczalnych. Literatura [1] E. A a r t s, J. K. L e n s tr a (edited), Local Search in Combinatorial Optimization, John W iley & Sons Ltd., 1997. [2] T. S. A b d u l -R a z a q, C. N. P o t t s, L. N. V a n W a s s e n h o v e, A Survey of Algorithms for the Single Machine Total Weighted Tardiness Scheduling Problem, Discrete Applied Mathematics 26 (1990), 235-253.

44 M. Wodecki [3] A. A d r a b iń s k i, J. G r a b o w s k i and M. W o d e c k i, Algorytm rozwiązywania zagadnienia kolejnościowego postaci 1 ^ WjTj, Archiwum Automatyki i Telemechaniki, Tom X X X III (1988), 623-636. [4] S. E. E lm a g h r a b y, The One-Machine Sequencing Problem with Delay Costs, Journal of Industrial Engineering, 19 (1968), 105-108. [5] H. E m m o n s, One-Machine Sequencing Problem with Delay Costs, Journal of Industrial Engineering, 19 (1968), 701-705. [6] M. J. F ish e r, A Dual Algorithm for the One-Machine Scheduling Problem, Mathematical Programming, 11 (1976), 229-252. [7] E. L. L a w le r, A Pseudopolinomial Algorithm for Sequencing Jobs to Minimize Total Tardiness, Annals of Discrete Mathematics, 1 (1977), 331-342. [8] E. L. L a w le r, Efficient Implementation of Dynamic Programming Algorithms for Sequencing Problems, Report B W 106, Mathematisch Centrum, Amsterdam (1979). [9] J. K. L e n s tr a, A. H. G. R in n o y K a n and P. B ru c k e r, Complexity of Machine Scheduling Problems, Annals of Discrete Mathematics, (1977), 343-362. [10] C. N. P o ttsa n d L. N. V a n W a s s e n h o v e, A Branch and Bound Algorithm for the Total Weighted Tardiness Problem, Operations Research, 33 (1985), 177-181. [11],, Dynamic Programming and Decomposition Approaches for the Single M a- chine Total Tardiness Problem, The European Journal of Operational Research, 32 (1987), 40 5-41 4. [12],, Single Machine Tardiness Sequencing Heuristics, HE Transactions, Volume 23, Number 4 (1991), 346-354. [13] A. H. G. R in n o y K a n, B. J. L a g e w e g and J. K. L e n s tr a, Minimizing total costs in one-machine scheduling, Operations Research, 25 (1975), 908-927. [14] L. S c h ra g e and K. R. B a k er, Dynamic Programming solution of Sequencing Problems with Precedence Constraints, Operational Research, 26 (1978), 444-449. [15] W. E. S m ith, Various Otimizers for Single-Stage Production, Naval Research Logistics Quarterly,3 (1956), 59-6 6. Abstract. Heuristics algorithms for the single machine total tardiness problem This paper presents approximations algorithms for the single machine total weighted tardiness problems. The algorithms is based on a tabu search technique with a specific neighborhood definition. Results of testing the algorithms on large number of randomly generated examples are also given and analysed.