Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z poprzednich zada«problemu 1 r i, q i C max. Dodatkowo pokazany b dzie pokrewny problem 1 r i, q i, pmtn C max i sposób na jego rozwi zanie w czasie wielomianowym. 2 Algorytm Schrage (S) Algorytm Schrage to algorytm 2-aproksymacyjny dla problemu 1 r i, q i C max. Oznacza to,»e warto± funkcji oceniaj cej dla kolejno±ci wykonywania π S zwróconej przez algorytm, jest co najwy»ej dwukrotnie wi ksza od tej dla kolejno±ci optymalnej π : C max (π S ) 2C max (π ). (1) Zasad dziaªania algorytmu obja±nia pseudokod 1. W linii 2 nast puje inicjalizacja algorytmu. N G to zbiór zada«gotowych do uszeregowania, N N to zbiór zada«nieuszeregowanych, σ oznacza cz ±ciow kolejno± skªadaj c si z uszeregowanych zada«, i oznacza numer kolejno±ci zadania dodawanego do σ, a t to zmienna pomocnicza (czas). P tla z linii 4 do 7 sªu»y do budowania zbioru zada«gotowych do uszeregowania N G. S to jeszcze nieuszeregowane zadania, których czasy przygotowania r j pozwalaj im na rozpocz cie wykonywania do czasu t, czyli: r j t. (2) Warunek z linii 8 aktualizuje chwil czasow t w przypadku gdy nie ma zada«gotowych do uszeregowania. Je±li zbiór N G nie jest pusty, do cz ±ciowego uszeregowania σ dodawane jest zadanie z tego zbioru o najdªu»szym czasie dostarczenia q j. Nast pnie aktualizowana jest chwila czasowa t i numer zadania w kolejno±ci i. W linii 17 cz ±ciowa kolejno± σ zawiera wszystkie zadania ze zbioru N, st d mamy gotow kolejno± zada«π S b d c wynikiem algorytmu. andrzej.gnatowski@pwr.edu.pl 1
Algorytm 1 Pseudokod dla algorytmu Schrage. 1: procedure Schrage(N ) 2: Podstaw i 1, σ (), N G, N N N, t min r j 3: while N G N N do 4: while N N min r j t do 5: j arg min r j 6: N G N G {j }, N N N N \ {j } 7: end while 8: if N G = then 9: t min r j 10: else 11: j arg max q j 12: N G N G \ {j } 13: σ(i) j 14: i i + 1, t t + p j 15: end if 16: end while 17: π S σ 18: return π S 19: end procedure 3 Model matematyczny problemu 1 r i, q i, pmtn C max Problem 1 r i, q i, pmtn C max ró»ni si od omawianego wcze±niej problemu 1 r i, q i C max dopuszczeniem mo»liwo±ci przerywania wykonywania zadania przed jego zako«- czeniem. Taka relaksacja problemu pozwala na stworzenie algorytmu wielomianowego rozwi zuj cego go optymalnie. Ze wzgl du na mo»liwo± przerywania zada«, reprezentacja w postaci kolejno±ci wykonywania zada«π nie jest u»yteczna. St d operuje si bardziej zªo»on wersj harmonogramu S. Wektor S deniuje si w nast puj cy sposób: S = (S 1,..., S j,..., S n ) (3) S j = ((S 1 j, C 1 j ), (S 2 j, C 2 j ),..., (S i j, C i j),..., (S lj j, Clj j )). (4) Ka»da para liczb (Sj i, Ci j ) oznacza przedziaª czasu, w którym zadanie j jest wykonywane. Elementy wektora S musz oczywi±cie speªnia ograniczenia: j N l j i=1 (C i j S i j) = p j (5) 2
j N, j N r j S 1 j, (6) Cj i S i+1 j, (7) 1 i<l j oraz podobnie jak dla problemu 1 r i, q i C max, maszyna mo»e w danym momencie przetwarza tylko jedno zadanie. Warunek z równania 5 mówi o tym,»e suma przedziaªów czasowych w których wykonywane jest zadanie j musi wynosi jego czas wykonywania p j. Warunek 6 wymusza rozpocz cie wykonywania zadania po momencie czasowym r j, warunek 7 mówi o kolejno±ci zapisywania przedziaªów czasowych w S j - od najwcze±niejszego do najpó¹niejszego. 4 Algorytm Schrage dla problemu z podziaªem zada«(schrage pmtn) Algorytm Schrage pmtn podaje dla problemu 1 r i, q i, pmtn C max rozwi zanie optymalne, dostarczaj c dobrego dolnego oszacowania dla algorytmów B&B sªu-» cych do rozwi zywania problemu 1 r i, q i C max. Wªa±nie w taki sposób b dzie on wykorzystywany na tym kursie. St d zrezygnowano z wyznaczania harmonogramu S, poprzestaj c na obliczaniu warto±ci funkcji celu dla harmonogramu optymalnego. Pseudokod 2 pokazuje zasad dziaªania algorytmu Schrage pmtn. Podstawow ró»nic pomi dzy pseudokodami 1 i 2 jest dodanie w tym drugim linii od 7 do 13 odpowiadaj cych za przerywanie zada«. Linie 7 do 13 odpowiadaj za przerywanie obecnie wykonywanego zadania l, gdy gotowe do wykonania zadanie j ma dªu»szy czas dostarczenia q j. Wtedy, je±li zadanie l nie jest jeszcze wykonane (sprawdzane w linii 10), zadanie odkªadane jest do zbioru zada«gotowych do wykonywania (z odpowiednio zredukowanym czasem wytwarzania p j ). Nale»y pami ta,»e algorytm Schrage pmtn zapisany w taki sposób modykuje warto±ci p j i nie wyznacza wektora S. 5 Wymagania i sposób oceny Zadanie nale»y odda w podobnej formie co zadanie pierwsze. Czas realizacji zadania to 2 tygodnie (nale»y odda najpó¹niej w trakcie zaj ). Ka»dy rozpocz ty tydzie«spó¹nienia obni»a ocen o 0.5. Przykªady testowe takie same jak dla zadania 1, prawidªowe wyniki dla algorytmów zamieszczono w tabeli 1. Kryteria oceny: 3 - dziaªaj cy algorytm Schrage podaj cy kolejno± wykonywania zada«π S oraz C max. 4 - dziaªaj cy algorytm Schrage podaj cy kolejno± wykonywania zada«π S oraz C max ; oraz Schrage dla problemu z podziaªem zada«podaj cy C max. 3
Algorytm 2 Pseudokod dla algorytmu Schrage pmtn. 1: procedure SchragePmtn(N ) 2: Podstaw C max 0, N G, N N N, t 0, l 0, q 0 3: while N G N N do 4: while N N min r j t do 5: j arg min r j 6: N G N G {j }, N N N N \ {j } 7: if q j > q l then 8: p l t r j 9: t r j 10: if p l > 0 then 11: N G N G {j } 12: end if 13: end if 14: end while 15: if N G = then 16: t min r j 17: else 18: j arg max q j 19: N G N G \ {j } 20: l j, t t + p j, C max max {C max, t + q j } 21: end if 22: end while 23: return C max 24: end procedure 5 - dziaªaj cy algorytm Schrage podaj cy kolejno± wykonywania zada«π S oraz C max ; oraz Schrage dla problemu z podziaªem zada«podaj - cy C max. Oba w dwóch wersjach, o zªo»ono±ciach obliczeniowych caªego algorytmu: O(n log n) oraz O(n 2 ). St d odda nale»y cztery algorytmy. Podczas sprawdzania programu krótka rozmowa o ró»nicy pomi dzy implementacjami o ró»nej zªo»ono±ci obliczeniowej. Wskazówka: w celu uzyskania zªo»ono±ci O(n log n) mo»na zastosowa struktury danych przechowuj ce uporz dkowany zbiór o czasie budowy/ dost pu O(log n). Tak struktur mo»e by na przykªad kopiec lub kolejka priorytetowa. Uwaga! Je±li kto± jest zainteresowany materiaªami dotycz cymi kursu, ksi»ka prowadz cego wykªad prof. Smutnickiego wydaje si by dobrym pomysªem. Mo»na j znale¹ w internecie pod adresem: http://www.kierunkizamawiane. pwr.wroc.pl/materialy/smut.pdf. 4
Tabela 1: Prawidªowe wyniki dla alg. Schrage i Schrage Pmtn. algorytm instancje 50 100 200 suma Schrage 1513 3076 6416 11005 Schrage Pmtn 1492 3070 6398 10960 W przypadku znalezienia bª du w niniejszym dokumencie, prosz o kontakt mailowy. 5