heurystyczny algorytm szeregowania zadań w systemie maszyn
Transkrypt
heurystyczny algorytm szeregowania zadań w systemie maszyn
HEURYSTYCZNY ALGORYTM SZEREGOWANIA ZADAŃ W SYSTEMIE MASZYN RÓWNOLEGŁYCH Z KRYTERIUM MINIMALNO-CZASOWYM Zbigniew BUCHALSKI Streszczenie: Artykuł dotyczy zagadnienia czasowo-optymalnego przydziału zasobu podzielnego w sposób ciągły i n zadań do m maszyn równoległych. Założono, że zadania są niezależne i niepodzielne. Dla zadanej funkcji czasu realizacji zadań sformułowano model formalny zagadnienia i zaproponowano pewien algorytm heurystyczny wyznaczający czasowo-optymalne szeregowanie zadań i przydział zasobów do maszyn równoległych. Przed-stawiono wyniki eksperymentów obliczeniowych przeprowadzonych na tym algorytmie. Słowa kluczowe: systemy maszyn równoległych, szeregowanie zadań, rozdział zasobów, algorytmy heurystyczne. 1. Wstęp Odczuwalny od wielu lat gwałtowny rozwój równoległych systemów przetwarzania informacji pociągnął za sobą potrzebę rozwiązywania problemów czasowo-optymalnego szeregowania zadań i rozdziału zasobów [1, 2, 3, 4, 5]. Znaczenie praktyczne rozwiązywania tych problemów jest bezsporne w wielu dziedzinach życia. Problemy te mogą być związane przykładowo ze sterowaniem procesem produkcyjnym, wyznaczaniem kolejnych etapów montażu urządzeń, harmonogramowaniem zadań transportowych, itp. Zadania optymalizacji zarówno dyskretnej, jak i ciągłej należą do klasy problemów bardzo trudnych zarówno z teoretycznego, jak i obliczeniowego punktu widzenia i najczęściej należą do klasy problemów NP- zupełnych [6, 7, 8]. Doświadczenia z podejmowania prób optymalizacji tego typu problemów wskazują na możliwość osiągnięcia tą drogą znacznych efektów ekonomicznych. Istnieje więc pilna potrzeba prowadzenia badań w tym zakresie i to zarówno podstawowych, jak i stosowanych. W systemach maszyn równoległych spotykamy się z szeregowaniem zadań na maszynach oraz przydziałem zasobów do maszyn. Przy rozwiązywaniu tych problemów występują istotne trudności natury obliczeniowej w związku z czym eliminuje się z rozważań algorytmy dokładne, pozostawiając do zastosowania praktycznego jedynie algorytmy heurystyczne umożliwiające rozwiązanie postawionych problemów w krótkim czasie z zadowalającą dokładnością [9, 10, 11]. W niniejszym artykule przedstawiono pewien algorytm heurystyczny wyznaczający czasowo-optymalny rozdział n zadań niezależnych niepodzielnych i N jednostek zasobu nieodnawialnego podzielnego w sposób ciągły do m maszyn pracujących równolegle. Przedstawiono wyniki eksperymentów obliczeniowych przeprowadzonych na tym algorytmie dla losowo generowanych danych. 548 2. Sformułowanie problemu Rozpatrzmy dyskretny system produkcyjny zawierający maszyny połączone równolegle przedstawiony na poniższym rysunku: Rys. 1. System maszyn równoległych Na system maszyn równoległych nakładamy następujące założenia: (i) posiada m różnych maszyn M = {1, 2,..., k,... , m}, na których należy wykonać n niezależnych zadań Z = {1, 2,..., i,..., n}, (ii) zadanie może być wykonywane na dowolnej maszynie i w trakcie jego wykonywania nie może być przerywane, (iii) liczba zadań do wykonania jest większa od liczby maszyn n > m, (iv) realizacja każdego z zadań na maszynach musi następować niezwłocznie po zakończeniu wykonywania poprzedniego zadania lub nastąpić w chwili zerowej, gdy za-danie realizowane jest jako pierwsze na jednej z maszyn. Niech N oznacza globalną ilość zasobów nieodnawialnych, a przez uk oznaczmy tą część zasobów, które zostaną przydzielone k-tej maszynie w trakcie wykonywania zadań uszeregowanych na tej maszynie. Ograniczenie dotyczące zasobów jest następujące: Czas wykonywania i-tego zadania na k-tej maszynie określony jest przez następującą funkcję Ti(uk, k): 549 (1) Parametry aik > 0 i bik > 0 charakteryzują i-te zadanie i k-tą maszynę. Należy znaleźć takie uszeregowanie zadań na maszynach i taki przydział ograniczonych zasobów do maszyn równoległych, aby minimalizować czas zakończenia wykonania całego zbioru zadań Tzak. 3. Model formalny zagadnienia Jeżeli oznaczymy przez Zk Z zbiór zadań uszeregowanych na k-tej maszynie, to Tzak znajdziemy rozwiązując następujący problem minimalizacyjny: (2) Ograniczenia nałożone na rozwiązanie tego problemu są następujące: Dla uproszczenia problemu przyjmiemy najpierw, że zasoby nieodnawialne u1, u2, ..., um są typu ciągłego. Przy tym założeniu wyznaczymy rozwiązanie optymalne, a następnie zaokrąglimy otrzymane wartości zasobów do najbliższych liczb naturalnych. Czas Tzak znajdziemy rozwiązując następujący problem minimalizacji dyskretno-ciągłej: przy następujących ograniczeniach: 550 Do rozwiązania postawionego problemu pomocny będzie następujący lemat: LEMAT 1 Jeżeli uk* , Zk* , k 1,2,...,m są rozwiązaniami optymalnymi zadania (3), to: Warunek (i) w LEMACIE 1 oznacza, że w przydziale czasowo-optymalnym zasobów i zadań do maszyn wykorzystuje się wszystkie jednostki zasobów, a warunek (ii), że czasy pracy tych maszyn, na których wykonywane są jakieś zadania, są identyczne. Zdefiniujmy funkcję F(Z1, Z2, ..., Zm) określoną dla m zbiorów Z1, Z2, ..., Zm , dla których zachodzi ograniczenie (i) dla wzoru (3). Wartość tej funkcji jest rozwiązaniem następującego układu równań: Wykorzystując LEMAT 1 oraz (5) zadanie minimalizacji (3) można przedstawić w następującej postaci: przy następujących ograniczeniach: 551 Jeżeli Z1* , Z 2* ,..,Zm* jest rozwiązaniem zadania (6), to uk* , Zk* , k 1,2,...,m , gdzie: jest rozwiązaniem zadania (3). 4. Algorytm heurystyczny Maszyny wchodzące w skład systemu maszyn równoległych różnią się pod względem szybkości wykonywanych zadań. Na szybkość tą wpływ ma ilość zasobów przydzielonych poszczególnym maszynom. Im więcej zasobów zostanie przydzielonych k-tej maszynie, tym będzie ona szybsza. Zasoby przydzielone zostają do maszyn w następujący sposób: miarą szybkości realizacji i-tego zadania przez k-tą maszynę jest tzw. współczynnik podziału zasobów ; > 1, zakładamy, że maszyną najszybszą jest maszyna pierwsza, a maszyną najwolniejszą jest maszyna m-ta, maszynie m-tej przydzielamy um zasobów wg następującej zależności: pozostałym maszynom przydzielamy zasoby wg następującej zależności: Przedstawiony powyżej sposób przydziału zasobów do maszyn wykorzystany zostanie w zaproponowanym heurystycznym algorytmie szeregowania zadań na równoległych maszynach. Algorytm ten skonstruowany został w taki sposób, że najpierw szereguje on zadania na jednakowych maszynach, tj. takich, do których przydzielona została jednakowa N liczba dostępnych zasobów, czyli uk , k 1, 2, ..., m (Kroki 411). Po tym m uszeregowaniu następuje zróżnicowanie maszyn pod względem liczby przydzielanych im zasobów i sprawdzenie czy skrócony został czas zakończenia wykonywania wszystkich zadań Tzak (Kroki 1215). Algorytm heurystyczny wyznaczający czasowo-optymalne szeregowanie zadań niezależnych na maszynach równoległych ma następującą postać: 552 Krok 1. Oblicz czasy wykonywania zadań na poszczególnych maszynach b Ti (u k , k ) aik ik , i = 1, 2, ... , n, k = 1, 2, .., m dla losowo generowanych uk N parametrów aik, bik i zadanej wartości uk . m Krok 2. Uszereguj malejąco czasy wykonywania poszczególnych zadań i utwórz listę L tych zadań. Krok 3. Oblicz średni czas Tśr wykonywania zadań przez każdą z maszyn wg wzoru: Krok 4. Przydzielaj kolejno najdłuższe i najkrótsze zadania z listy L do pierwszej wolnej maszyny aż do momentu, gdy suma czasów wykonywania zadań przydzielonych tej maszynie nie przekroczy czasu Tśr. Przydzielone zadania usuń z listy L. Krok 5. Jeżeli są jeszcze maszyny na których nie uszeregowano żadnych zadań to wróć do Kroku 4. W przeciwnym wypadku przejdź do Kroku 6. Krok 6. Przydzielaj kolejno najkrótsze zadania z listy L do kolejnych maszyn od pierwszej poczynając a na m-tej kończąc aż do momentu, gdy suma czasów realizacji zadań przez kolejne maszyny nie przekroczy czasu Tśr. Przydzielone zadania usuń z listy L. Krok 7. Jeżeli lista L nie została jeszcze wyczerpana to pozostałe zadania przydziel do maszyn wg algorytmu LPT.. W przeciwnym wypadku przejdź do Kroku 8. Krok 8. Oblicz czas zakończenia wykonywania wszystkich zadań Tzak dla uszeregowania N . m uszeregowanych zadań na maszynach utworzonego w Krokach 4÷7 i dla uk Krok 9. Oblicz sumaryczne czasy wykonywania zadań na poszczególnych maszynach. Krok 10. Usuń najkrótsze zadanie z maszyny o najdłuższym sumarycznym czasie wykonywania zadań i przydziel je do maszyny o najkrótszym sumarycznym czasie wykonywania zadań. Krok 11. Oblicz czas zakończenia wykonywania wszystkich zadań Tzak po zamianie zadań w Kroku 10. Jeżeli czas ten ulegnie skróceniu, to wróć do Kroku 9. W przeciwnym wypadku anuluj ostatnio wykonaną czynność w Kroku 10 i zakończ szeregowanie zadań na maszynach. Krok 12. Dla zadanego współczynnika przydziel zasoby uk, k = 1, 2,…, m poszczególnym maszynom wyliczone z zależności (8) i (9). Krok 13. Dla uszeregowania zadań na maszynach utworzonego w Krokach 4÷11 i dla liczby zasobów uk przydzielonych maszynom w Kroku 12 oblicz czas zakończenia wykonywania wszystkich zadań Tzak. 553 Krok 14. Powtórz Krok 12 i Krok 13 dla następnych siedmiu zwiększających się kolejno wartości współczynnika . Po zakończeniu tych prób przejdź do Kroku 15. Krok 15. Porównaj wartości czasów zakończenia wykonywania zadań Tzak z kolejnych prób i wybierz najkrótszy z tych czasów. Krok 16. Wyznacz dyskretne ilości zasobów uˆ ( k ) , k 1, 2, ..., m według zależności: u ( k ) 1; k 1,2,...,, uˆ ( k ) k 1, 2, ... , m, u ( k ) gdzie N m u oraz jest taką permutacją elementów zbioru M = {1, 2, ... , m}, że j j 1 u (1) u (1) u ( 2) u ( 2) ... u ( m) u ( m) . Jeżeli istnieją takie maszyny, którym przydzielono zerowe ilości zasobów, to przydziel każdej z tych maszyn po jednej jednostce zasobu pobierając je z kolejnych maszyn poczynając od maszyny, której przydzielono największą ilość zasobów. 5. Wyniki eksperymentów obliczeniowych Na bazie przedstawionego w poprzednim punkcie pracy algorytmu heurystycznego przeprowadzono eksperymenty obliczeniowe. Algorytm wykonuje za każdym razem osiem prób znalezienia najlepszego, z punktu widzenia czasu realizacji zbioru zadań, rozwiązania. Po wykonaniu serii prób z różnymi wartościami współczynnika podziału zasobów , porównywane są ze sobą czasy realizacji zbioru zadań i wybierany jest najkrótszy z nich. Eksperymenty obliczeniowe przeprowadzono dla ośmiu zwiększających się kolejno wartości współczynnika podziału zasobów ze zbioru {4, 8, … , 32}. Parametry aik, bik, charakteryzujące i-te zadanie i k-tą maszynę wylosowane zostały ze zbioru {5, 10, … , 50} przez generator o jednostajnym rozkładzie prawdopodobieństwa. Obliczenia przeprowadzono dla zadanej liczby zadań n = 40, 80, 120, 160, 200, liczby maszyn m = 5, 10, 15, 20, 25 oraz dla ograniczonej liczby zasobów N = 10.000. Dla każdej kombinacji n i m wygenerowano 40 instancji. Następnie dokonano analizy porównawczej zaproponowanego w pracy algorytmu heurystycznego ze znanym z literatury algorytmem LPT (Longest Processing Time). Rezultaty tej analizy zostały przedstawione w Tabeli 1. Tab. 1.Wyniki analizy porównawczej algorytmu heurystycznego i algorytmu LPT Liczba instancji, dla których: n/m H LPT H LPT Tzak Tzak Tzak Tzak H SH SLPT H LPT Tzak Tzak % sek sek 40/5 20 1 19 2,4 2,7 2,2 40/10 22 0 18 2,7 2,9 2,5 40/15 21 2 17 3,4 4,2 3,8 554 40/20 23 2 15 3,7 4,9 4,3 40/25 24 3 13 3,9 6,3 5,9 80/5 21 1 18 2,0 2,9 2,3 80/10 22 0 18 2,7 3,8 3,4 80/15 23 0 17 3,8 5,1 4,2 80/20 24 2 14 4,9 6,7 5,8 80/25 25 3 12 5,3 8,4 6,7 120/5 22 1 17 2,9 4,1 3,7 120/10 23 1 16 3,1 6,8 5,9 120/15 24 1 15 3,8 7,9 6,8 120/20 25 2 13 4,9 8,9 7,6 120/25 26 1 13 5,7 9,9 8,6 160/5 22 0 18 2,9 5,9 5,2 160/10 23 1 16 3,2 6,7 6,2 160/15 23 2 15 3,8 9,2 8,4 160/20 25 1 14 4,7 10,2 9,3 160/25 26 1 13 6,3 12,8 10,9 200/5 22 1 17 2,9 6,3 5,7 200/10 23 2 15 3,3 6,9 6,2 200/15 25 2 13 3,9 9,1 8,2 200/20 26 2 12 5,2 10,5 9,6 200/25 27 3 10 6,9 12,6 11,4 W Tab.1 występują następujące wielkości: n – liczba zadań, m – liczba maszyn, H T zak – czas zakończenia wykonywania wszystkich zadań ze zbioru Z przy wykorzystaniu algorytmu heurystycznego, 555 LPT T zak – czas zakończenia wykonywania wszystkich zadań ze zbioru Z przy wykorzystaniu algorytmu LPT, H LPT H – średnia procentowa poprawa czasu T zak w stosunku do T zak : SH – średni czas obliczeń dla algorytmu heurystycznego, SLP T – średni czas obliczeń dla algorytmu LPT. 6. Uwagi końcowe Przedstawione w poprzednim punkcie eksperymenty obliczeniowe wykazały, że jakość szeregowania zadań na równoległych maszynach na bazie zaproponowanego w pracy algorytmu heurystycznego uległa poprawie w stosunku do szeregowania za pomocą H znanego z literatury algorytmu LPT. Kilkuprocentowa poprawa czasu T zak w stosunku do LPT T zak może być zachętą do dalszych prac nad efektywnymi algorytmami heurystycznymi. Zastosowanie podanego w pracy algorytmu heurystycznego jest wskazane przede wszystkim dla systemów produkcyjnych o dużej liczbie zadań, gdyż wówczas średnia procentowa poprawa jest największa. Zaproponowany algorytm może służyć zarówno do rozdziału operacji na stanowiska produkcyjne wyposażone w odpowiednie maszyny w dyskretnych systemach produkcyjnych, jak i do szeregowania programów w wieloprocesorowych systemach komputerowych. Literatura 1. 2. 3. 4. 5. 6. 7. Błażewicz J., Dell’Olmo P., Drozdowski M., Speranza M. G. : Scheduling multiprocessor tasks on three dedicated processors. Information Processing Letters 41, 1992, pp. 275-280. Janiak A.: Single machine scheduling problem with a common deadline and resource dependent release dates. European Journal of Operational Research, Vol. 53, 1991, pp. 317-325. Janiak A., Kovalyov M.: Single machine scheduling subject to deadlines and resources dependent processing times. European Journal of Operational Research, 1996, Vol. 94, pp. 284-291. Nowicki E., Smutnicki C.: The flow shop with parallel machines. A Tabu search approach. European Journal of Operational Research 106, 1998, pp. 226-253. Buchalski Z.: A Program Scheduling Heuristic Algorithm in Multiprocessing Computer System with Limited Memory Pages. Polish Journal of Environmental Studies, Vol. 15, No. 4C, 2006, pp. 26-29. Józefowska J., Węglarz J.: On a methodology for discrete-continuous scheduling. European Journal of Operational Research, Vol. 107, 1998, pp. 338-353. Józefowska J., Mika M., Różycki R., Waligóra G., Węglarz J.: Rozwiązywanie dyskretno-ciągłych problemów rozdziału zasobów przez dyskretyzację zasobu ciągłego. Zeszyty Naukowe Politechniki Śląskiej Nr 1474, seria Automatyka, Gliwice, 2000, z. 129, s. 221-229. 556 8. Kubale M., Giaro K.: Złożoność zwartego szeregowania zadań jednostkowych w systemie otwartym, przepływowym i mieszanym. Uczelniane Wydawnictwo Naukowo-Dydaktyczne AGH, seria-Automatyka, półrocznik, tom 5, zeszyt ½, Kraków, 2001, s. 329-334. 9. Boctor F. F.: A new and efficient heuristic for scheduling projects with resources restrictions and multiple execution models. European Journal of Operational Research, Vol. 90, 1996, pp. 349-361. 10. Buchalski Z.: An heuristic solution procedure to minimize the total processing time of programs in multiprocessing computer system. Information Systems Architecture and Technology ISAT 2005, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław, 2005, pp. 20-26. 11. Buchalski Z.: An Heuristic Algorithm for Solving the Scheduling Problem in Multiprocessing Computer System. Polish Journal of Environmental Studies, Vol. 16, No. 4A, 2007, pp. 44-48. Dr inż. Zbigniew BUCHALSKI Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska 50-372 Wrocław, Janiszewskiego 11/17 tel.: (0 71) 320 32 92 e-mail: [email protected] 557