Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

203
Na prawach rękopisu INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCLAWSKIEJ Raport serii: PREPRINTY nr 37/2004 Problemy gniazdowe z operacjami wielomaszynowymi. Wlasności i algorytmy (praca doktorska) Mariusz MAKUCHOWSKI PROMOTOR: Prof. dr hab. inż. Czeslaw Smutnicki Slowa kluczowe: – optymalizacja – algorytm – szeregowanie – operacje wielomaszynowe – problem gniazdowy WROCLAW czerwiec 2004

Transcript of Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Page 1: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Na prawach rękopisu

INSTYTUT CYBERNETYKI TECHNICZNEJPOLITECHNIKI WROCŁAWSKIEJ

Raport serii: PREPRINTY nr 37/2004

Problemy gniazdowe zoperacjami wielomaszynowymi.Własności i algorytmy

(praca doktorska)

Mariusz MAKUCHOWSKI

PROMOTOR:Prof. dr hab. inż. Czesław Smutnicki

Słowa kluczowe:

– optymalizacja– algorytm– szeregowanie– operacje wielomaszynowe– problem gniazdowy

WROCŁAWczerwiec 2004

Page 2: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Motto:

„Nie dane by mi było tyle osiągnąć,gdybym nie stał na ramionach herosów.”

Albert Einstein

Tą drogą pragnę podziękować

Ś.p. profesorowi Eugeniuszowi Nowickiemu za cenne sugestie i rady,rzetelne wprowadzenie do tematu oraz moralne wsparcie podczas przewodudoktorskiego. Nie dane mu było doczekać mojej obrony, jednak na kartachtej pracy przetrwa cząstka jego osobowości i wiedzy. Dziękuję mu serdecznieza poświęcony mi czas.Dziękuję również profesorowi Czesławowi Smutnickiemu za wskazówki

merytoryczne, zaangażowanie oraz stworzenie przyjaznej atmosfery, któraułatwiła mi funkcjonowanie w tym trudnym dla mnie okresie.Wszystkim pracownikom Zakładu Systemów Dyskretnych, Politechniki

Wrocławskiej dziękuję za atmosferę życzliwości.

Gorąco dziękuję także mojej żonie Renacie i córce Agnieszce za cierpli-wość, wyrozumiałość oraz stworzenie sprzyjających do pracy warunków.

Page 3: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Spis treści

1 Wprowadzenie 1

1.1 Tezy pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Cel i zakres pracy . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Problemy szeregowania w praktyce 5

2.1 Problem gniazdowy . . . . . . . . . . . . . . . . . . . . . . . 62.2 Ograniczenia technologiczne . . . . . . . . . . . . . . . . . . 102.3 Problemy ogólniejsze . . . . . . . . . . . . . . . . . . . . . . 13

2.3.1 Wiele sposobów wykonywania . . . . . . . . . . . . . 132.3.2 Operacje wielomaszynowe . . . . . . . . . . . . . . . 142.3.3 Wielosposobowe operacje wielomaszynowe . . . . . . 15

2.4 Metody rozwiązywania . . . . . . . . . . . . . . . . . . . . . 162.4.1 Metody dokładne . . . . . . . . . . . . . . . . . . . . 162.4.2 Metody przybliżone . . . . . . . . . . . . . . . . . . 172.4.3 Algorytmy typu wstaw . . . . . . . . . . . . . . . . . 192.4.4 Algorytmy typu symulowanego wyżarzania . . . . . 202.4.5 Algorytmy typu poszukiwania z zabronieniami . . . 22

3 Operacje wielomaszynowe. Klasyfikacja, modele grafowe 25

3.1 Parametry operacji wielomaszynowych . . . . . . . . . . . . 263.2 Klasyfikacja operacji wielomaszynowych . . . . . . . . . . . 283.3 Modele grafowe operacji wielomaszynowych . . . . . . . . . 30

3.3.1 Nieprzesuwalne czynności synchroniczne . . . . . . . 313.3.2 Nieprzesuwalne czynności asynchroniczne . . . . . . 313.3.3 Przesuwalne czynności bez dodatkowych ograniczeń 353.3.4 Przesuwalne czynności z dodatkowymi ograniczeniami 38

3.4 Modele ograniczeń występujących pomiędzy operacjami . . 403.4.1 Ograniczenia technologiczne . . . . . . . . . . . . . . 403.4.2 Ograniczenia kolejnościowe . . . . . . . . . . . . . . 41

i

Page 4: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

ii Spis treści

4 Problemy gniazdowe z operacjami wielomaszynowymi. Mo-dele grafowe 43

4.1 Nieprzesuwalne czynności asynchroniczne – jeden sposób wy-konywania . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.1.1 Sformułowanie problemu . . . . . . . . . . . . . . . . 444.1.2 Model matematyczny i reprezentacja grafowa . . . . 454.1.3 Ścieżka krytyczna . . . . . . . . . . . . . . . . . . . . 51

4.2 Nieprzesuwalne czynności asynchroniczne – wiele sposobówwykonywania . . . . . . . . . . . . . . . . . . . . . . . . . . 534.2.1 Sformułowanie problemu . . . . . . . . . . . . . . . . 544.2.2 Model matematyczny i reprezentacja grafowa . . . . 55

4.3 Czynności przesuwalne . . . . . . . . . . . . . . . . . . . . . 564.3.1 Czynności bez dodatkowych ograniczeń . . . . . . . 574.3.2 Czynności z dodatkowymi ograniczeniami . . . . . . 62

4.4 Porównanie modeli . . . . . . . . . . . . . . . . . . . . . . . 66

5 Algorytmy wyznaczania wartości najdłuższej drogi w gra-fach cyklicznych 71

5.1 Przegląd algorytmów literaturowych . . . . . . . . . . . . . 725.2 Detektory cykli w algorytmach MB, MBEP . . . . . . . . . 745.3 Algorytm MDSP . . . . . . . . . . . . . . . . . . . . . . . . 78

5.3.1 Opis algorytm MDSP . . . . . . . . . . . . . . . . . 795.3.2 Detektor cykli w algorytmie MDSP . . . . . . . . . . 84

5.4 Analiza eksperymentalna . . . . . . . . . . . . . . . . . . . 875.4.1 Sposób generowania przykładów . . . . . . . . . . . 875.4.2 Wyniki testów . . . . . . . . . . . . . . . . . . . . . 88

5.5 Wnioski i uwagi . . . . . . . . . . . . . . . . . . . . . . . . . 92

6 Jednosposobowy problem gniazdowy z czynnościami asyn-chronicznymi 93

6.1 Własności problemu w kontekście metod LS . . . . . . . . . 946.1.1 Ruch . . . . . . . . . . . . . . . . . . . . . . . . . . . 956.1.2 Ocena ruchu . . . . . . . . . . . . . . . . . . . . . . 98

6.2 Eliminacyjne własności ścieżki krytycznej . . . . . . . . . . 1066.3 Sąsiedztwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

6.3.1 Sąsiedztwo pełne . . . . . . . . . . . . . . . . . . . . 1076.3.2 Sąsiedztwo zredukowane . . . . . . . . . . . . . . . . 1076.3.3 Dominacje ruchów . . . . . . . . . . . . . . . . . . . 1116.3.4 Sąsiedztwo bazowe . . . . . . . . . . . . . . . . . . . 1146.3.5 Zredukowane sąsiedztwo bazowe . . . . . . . . . . . 1176.3.6 Relacje między sąsiedztwami . . . . . . . . . . . . . 120

Page 5: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

SPIS TREŚCI iii

6.4 Algorytmy konstrukcyjne . . . . . . . . . . . . . . . . . . . 1226.4.1 Permutacyjne algorytmy konstrukcyjne . . . . . . . 1246.4.2 Niepermutacyjne algorytmy konstrukcyjne . . . . . . 131

6.5 Algorytm typu tabu . . . . . . . . . . . . . . . . . . . . . . 1366.5.1 Sąsiedztwo . . . . . . . . . . . . . . . . . . . . . . . 1366.5.2 Akceleratory wyboru reprezentanta . . . . . . . . . . 1376.5.3 Postać listy tabu . . . . . . . . . . . . . . . . . . . . 1386.5.4 Techniki wspierające . . . . . . . . . . . . . . . . . . 1396.5.5 Rozwiązanie początkowe . . . . . . . . . . . . . . . . 139

6.6 Algorytm symulowanego wyżarzania . . . . . . . . . . . . . 1406.6.1 Sąsiedztwo . . . . . . . . . . . . . . . . . . . . . . . 1416.6.2 Rozwiązanie startowe . . . . . . . . . . . . . . . . . 1416.6.3 Techniki wspierające . . . . . . . . . . . . . . . . . . 141

6.7 Badania testowe . . . . . . . . . . . . . . . . . . . . . . . . 1416.7.1 Przykłady testowe . . . . . . . . . . . . . . . . . . . 1426.7.2 Algorytmy konstrukcyjne . . . . . . . . . . . . . . . 1436.7.3 Algorytmy popraw . . . . . . . . . . . . . . . . . . . 1476.7.4 Problem gniazdowy bez czekania . . . . . . . . . . . 149

6.8 Wnioski i uwagi . . . . . . . . . . . . . . . . . . . . . . . . . 154

7 Wielosposobowy problem gniazdowy z czynnościami asyn-chronicznymi 1557.1 Własności problemu . . . . . . . . . . . . . . . . . . . . . . 1567.2 Algorytmy konstrukcyjne . . . . . . . . . . . . . . . . . . . 1647.3 Algorytm M-MTS typu tabu . . . . . . . . . . . . . . . . . 167

7.3.1 Sąsiedztwo . . . . . . . . . . . . . . . . . . . . . . . 1677.3.2 Lista tabu . . . . . . . . . . . . . . . . . . . . . . . . 1687.3.3 Techniki wspierające . . . . . . . . . . . . . . . . . . 169

7.4 Badania testowe . . . . . . . . . . . . . . . . . . . . . . . . 1707.4.1 Przykłady testowe . . . . . . . . . . . . . . . . . . . 1707.4.2 Algorytmy konstrukcyjne . . . . . . . . . . . . . . . 1717.4.3 Algorytmy popraw . . . . . . . . . . . . . . . . . . . 1717.4.4 Wielosposobowy problem gniazdowego z nieprzesu-

walnymi czynnościami synchronicznymi . . . . . . . 1747.5 Wnioski i uwagi . . . . . . . . . . . . . . . . . . . . . . . . . 178

8 Zastosowania praktyczne 179

9 Wnioski końcowe 183

Literatura 185

Page 6: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

iv Spis treści

Page 7: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Rozdział 1

Wprowadzenie

Teoria szeregowania zadań stanowi bazę dla rozwiązania problemówoptymalizacji, planowania i sterowania w konwencjonalnych i elastycznychsystemach wytwórczych (nazywanych także dyskretnymi systemami pro-dukcyjnymi). Generowane przez praktykę zagadnienia, dla przypadku de-terministycznego, należą do obszaru badań operacyjnych, programowaniadyskretnego i kombinatorycznego. Zagadnienia te są intensywnie badaneod wielu lat, przy czym można wymienić co najmniej kilka powodów takwielkiego nimi zainteresowania.

Po pierwsze sformułowane problemy modelują wiele procesów prze-mysłowych charakteryzujących się dyskretnym przepływem zadań. Są toprzede wszystkim zagadnienia optymalizacji przydziału dostępnych zaso-bów (maszyn, personelu, energii) do zadań oraz ustalenia harmonogramuwykonywania tych zadań, w taki sposób aby optymalizować żądane kryte-rium (minimalizować czas wykonania zlecenia, minimalizować zużycie ener-gii itp.).

Po wtóre, zdecydowana większość problemów optymalizacji kombinato-rycznej należy do klasy problemów NP-trudnych, zatem najprawdopodob-niej nie będzie można skonstruować dla nich algorytmów czasowo efektyw-nych (jeśli P6=NP). Istniejące algorytmy dokładne o złożoności wykładni-czej, rozwiązują w sensownym czasie tylko problemy o niewielkim, z prak-tycznego punktu widzenia, rozmiarze. Te dwa powody (praktyczne zasto-sowanie problemów oraz trudność w znalezieniu rozwiązania optymalnego)skierowały w ostatnich latach badania w stronę poszukiwania efektywnychalgorytmów przybliżonych. Miarą ich efektywności jest zarówno czas dzia-łania jak i dokładność określająca odległość wygenerowanego rozwiązaniaod rozwiązania optymalnego (w sensie różnicy wartości optymalizowanegokryterium).

1

Page 8: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2 Rozdział 1. Wprowadzenie

Jednym z istotniejszych zagadnień w teorii harmonogramowania zadańprodukcyjnych jest problem gniazdowy z kryterium będącym terminem za-kończenia wykonania wszystkich zadań. Znaczenie tego zagadnienia wynikaz faktu, że już jego „klasyczne” sformułowanie modeluje szereg rzeczywi-stych procesów produkcyjnych. Dodatkowo, różnorodne uogólnienia takiejak: wprowadzenie czasów przezbrojeń, ograniczonej pojemności buforów,ograniczonej liczby palet, uwzględnienie transportu, itp. powodują, że ob-szar jego stosowania staje się jeszcze większy. Jednym z ważnych kierun-ków uogólnień jest wprowadzenie operacji wielomaszynowych modelującychprocesy, w których do wykonywania poszczególnych operacji zaangażowa-na jest nie jedna (tak jak w modelu klasycznym) lecz kilka maszyn. Tymwłaśnie problemom poświęcona jest moja praca.

1.1 Tezy pracy

Oczywiste jest, że stosowanie bardziej precyzyjnych modeli operacji wie-lomaszynowych, generuje nową rodzinę problemów szeregowania, bliższychrealiom produkcyjnym. Efektem ubocznym dokładniejszego modelowaniajest zwykle znaczny wzrost rozmiaru oraz złożoności modelu matematycz-nego opisywanych procesów, a co za tym idzie pogorszenie własności nu-merycznych algorytmów rozwiązywania. W tym kontekście wysuwam na-stępujące tezy:

• możliwa jest budowa bardziej precyzyjnych modeli operacji wieloma-szynowych w systemach wytwórczych, poprzez umiejętne rozszerzenieklasycznych modeli znanych w teorii szeregowania, przy nieznacznymwzroście rozmiaru i stopniu skomplikowania modelu,

• w rozpatrywanej klasie problemów istnieją własności, analogiczne dotych znanych z problemów klasycznych oraz nowe własności charak-terystyczne dla formułowanych zagadnień,

• efektywność algorytmów przybliżonych można znacząco poprawić po-przez wykorzystanie szczególnych własności problemu,

• w klasie metod lokalnego przeszukiwania (ang. local search) metodaprzeszukiwania z zabronieniami (ang. tabu search) jest szczególniepolecana do rozwiązywania postawionych zagadnień.

Bezpośrednią konsekwencją udowodnienia postawionych tez jest nastę-pująca, dość oczywista, własność: przybliżone rozwiązania otrzymane szyb-kimi algorytmami popraw, problemu precyzyjnie modelującego proces prze-mysłowy, mogą okazać się istotnie lepsze (w sensie danego kryterium) niż,

Page 9: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

1.2. Cel i zakres pracy 3

rozwiązanie optymalne problemu modelującego w sposób przybliżony tensam proces.

1.2 Cel i zakres pracy

Zasadniczym celem pracy jest dowiedzenie postawionych tez. Cel tenzamierzam osiągnąć, poprzez:

• opracowanie nowych modeli operacji wielomaszynowych,

• opracowanie sposobu konstrukcji modeli permutacyjno-grafowych pro-blemów szeregowania (na przykładzie problemu gniazdowego) z zasto-sowaniem prezentowanych modeli operacji wielomaszynowych,

• wykrycie i udowodnienie specyficznych własności badanego problemu,pozwalających na budowę efektywnych algorytmów konstrukcyjnychoraz algorytmów popraw,

• implementację algorytmów i przeprowadzenie eksperymentów oblicze-niowych,

• ocenę jakości proponowanych algorytmów oraz przedstawienie wnio-sków wynikających z przeprowadzonych badań.

Organizacja przedstawianej pracy została dostosowana odpowiednio do za-planowanych badań.W rozdziale 2 podaję znane z literatury odpowiedniki prezentowanych

problemów bazujące na klasycznych modelach operacji. Ponadto dokonujęprzeglądu algorytmów literaturowych dedykowanych opisanym problemom.Kolejne rozdziały 3-7 stanowią w całości mój oryginalny dorobek.W rozdziale 3 opisuję uogólnione operacje wielomaszynowe. Rozważam

i analizuję cztery niżej wymienione sytuacje: (i) operacja jest wykonywa-na jednocześnie na wszystkich maszynach, (ii) operacja wykonywana jestna poszczególnych maszynach, gdzie położenia przedziałów czasowych sąwzględem siebie ustalone, (iii) operacja wykonywana jest na poszczegól-nych maszynach, gdzie położenia przedziałów czasowych nie są względemsiebie ustalone jednak muszą się mieścić w ściśle określonym przedzialeczasowym, (iv) operacja wykonywana jest tak jak w przypadku (iii), gdziepołożenia poszczególnych przedziałów czasowych, nie są względem siebieustalone z tym, że są nałożone na nie dodatkowe ograniczenia. Dla każdej zwymienionych sytuacji prezentuję opracowane modele grafowe, szczególniewygodne przy analizie własności teoretycznych i konstrukcji algorytmówprzybliżonych.

Page 10: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4 Rozdział 1. Wprowadzenie

W rozdziale 4 prezentuję sposób tworzenia modeli permutacyjno–grafo-wych na przykładzie gniazdowego problemu z operacjami wielomaszynowy-mi. Podaję modele permutacyjno-grafowe czterech problemów gniazdowychróżniących się między sobą modelami operacji wielomaszynowych.W rozdziale 5 prezentuję, niezbędne do dalszej pracy narzędzie jakim

jest szybka procedura wyznaczająca długość najdłuższej ścieżki w grafiemodelującym rozważany problemy. Odpowiadający rozważanemu proble-mowi graf jest wyjątkowo trudnym do tego typu analizy, a istniejące proce-dury literaturowe działają zbyt wolno by na ich podstawie możliwe byłobykonstruowanie efektywnych algorytmów optymalizacyjnych.W rozdziale 6 badam jednosposobowy problem gniazdowy z nieprzesu-

walnymi czynnościami asynchronicznymi. Najpierw dowodzę szeregu bar-dzo użytecznych z praktycznego punktu widzenia własności pozwalającychna efektywne konstruowanie algorytmów. Następnie na ich podstawie pro-ponuję szereg algorytmów konstrukcyjnych oraz algorytmy popraw. Zwra-cam szczególną uwagę na definicję sąsiedztwa, atrybuty zapisywane na li-ście tabu (dla algorytmu poszukiwania z zabronieniami) oraz zaawansowanetechniki poprawiające efektywność algorytmów. Na zakończenie rozdziału,przeprowadzam wyczerpujące badania testowe prezentowanych algorytmówna odpowiednio zmodyfikowanych przykładach literaturowych.W rozdziale 7 badam wielosposobowy wariant zagadnienia z rozdziału

6. Wykazuję własności szczególne przez analogię do jego prostszego odpo-wiednika. Rozdziałowi temu towarzyszą także obszerne badania ekspery-mentalne proponowanych algorytmów.Rozdział 8 zawiera przykład rzeczywistego systemu produkcyjnego, w

którym operacje przemysłowe można opisać przy pomocy prezentowanychw pracy nowych modeli operacji wielomaszynowych.W rozdziale 9 podsumowuję największe osiągnięcia mojej pracy, oce-

niam z teoretycznego punktu jakość oraz z praktycznego punktu stosowal-ność proponowanych modeli operacji wielomaszynowych, w stosunku domodeli klasycznych. Podsumowuję jakość proponowanych algorytmów dlabadanych w pracy problemów gniazdowych. Na zakończenie tego rozdziałusugeruję kierunki dalszych badań naukowych związanych z zagadnieniamiprezentowanymi w mojej pracy.

Page 11: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Rozdział 2

Problemy szeregowania wpraktyce

Praktyka szeregowania zadań (w zakresie modeli deterministycznych dlapotrzeb konwencjonalnych i elastycznych systemów wytwórczych) uznaje zafundamentalne zagadnienie o praktycznej stosowalności problem występu-jący w literaturze pod nazwą problemu gniazdowego (ang. job-shop pro-blem). Kolejne, bardziej zaawansowane modele problemów praktycznychpowstają poprzez odpowiednie modyfikacje modelu bazowego, zmierzającew kilku wymienionych poniżej kierunkach:

1. uwzględnienie specyficznych ograniczeń, takich jak np. transport,przezbrojenia, pojemność systemu, ograniczenia czasu oczekiwaniaitp.,

2. budowa modeli ogólniejszych, uwzględniających m.in. alternatywnemarszruty zadań, złożone żądania zasobowe, dystrybucje zasobówitp.,

3. wprowadzenie funkcji kryterialnych odzwierciedlające m.in. potrzebyekonomiczne,

4. uwzględnienie niepewności, losowości, rozmytości danych.

Ponieważ znaczące rezultaty dla problemu bazowego (ang. job-shop) osią-gnięto zaledwie 2–8 lat temu, to kierunki (1)–(4) są ciągle w fazie rozwoju,przy czym obszary (3)–(4) w odniesieniu do problemów bardziej złożonychpozostają prawie niezbadane. W tym rozdziale zawarta jest krótka cha-rakterystyka (wraz z referencjami do literatury) problemu bazowego orazproblemów w kierunkach (1)–(2), ze szczególnym uwzględnieniem kierunku(2), stanowiącego centralny obszar badań zawartych w mojej rozprawie.

5

Page 12: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6 Rozdział 2. Problemy szeregowania w praktyce

2.1 Problem gniazdowy

Klasyczny problem gniazdowy modeluje szeroką klasę praktycznych pro-cesów produkcyjnych oraz stanowi bazę wyjściową do opisu działania bar-dziej skomplikowanych systemów wytwarzania opartych na przepływie za-dań. Praktycznie każda nowa metoda jego rozwiązania może być w łatwysposób zaadoptowana do rozwiązywania innych problemów szeregowania[39]. Ten NP-trudny problem jest jednym ze sztandarowych zagadnień sze-regowania zadań produkcyjnych, często traktowany jest przez badaczy jakoproblem do testowania efektywności nowo powstających metod optymali-zacji dyskretnej.

Sformułowanie problemu

W gniazdowym systemie produkcyjnym znajduje się określona liczbamaszyn, na których należy wykonać, określoną liczbę zadań produkcyjnych.Niech J = 1, ..., r oznacza zbiór zadań, O = 1, 2, ..., n zbiór operacjioraz M = 1, 2, ...,m zbiór maszyn. Zbiór operacji jest podzielony na rrozłącznych podzbiorów J1, J2, . . . , Jr odpowiadających poszczególnym za-daniom. Zadanie k, k ∈ J utożsamia się z zadaną sekwencją ok operacjize zbioru Jk, gdzie |Jk| = ok oraz

k∈J ok = n. Sekwencja ta określawymaganą kolejność wykonywania operacji zadania k, bez straty ogólnościprzyjmuje się, że ma ona następująca postać: jk+1, jk+2, . . . , jk+ok, gdziejk =

∑k−1i=1 oi jest liczbą operacji w zadaniach 1, 2, . . . , k − 1 oraz j1 = 0.

Ponadto dla każdej operacji j ∈ O określona jest jedna maszyna µ(j) ∈M ,na której operacja ta ma być wykonywana w czasie pj > 0. Przyjmuje się,że: (i) każda maszyna może wykonywać w danej chwili nie więcej niż jednąoperację, (ii) nie można jednocześnie wykonywać więcej niż jednej operacjidanego zadania w danej chwili oraz (iii) wykonywanie operacji na maszy-nie nie może być przerywane. Uszeregowanie dopuszczalne jest definiowaneprzez momenty rozpoczęcia wykonywania S(j) ­ 0 operacji j ∈ O takie,że wszystkie powyższe ograniczenia są spełnione. Problem polega na znale-zieniu uszeregowania dopuszczalnego minimalizującego wybrane kryteriumoptymalności, będące niemalejącą funkcją terminów S(j), j ∈ O. Jednym znajczęściej stosowanych w literaturze kryteriów jest długość uszeregowaniamaxj∈O C(j), gdzie C(j) = S(j) + pj .Istnieje kilka różnych technik modelowania opisanego problemu. Należą

do nich m.in (i) model dysjunktywny, (ii) model PLC, (iii) model dual-ny. Jednakże najlepsze algorytmy dla tego problemu (i jego różnorodnychuogólnień) bazują na (iv) modelu permutacyjno-grafowym [77], przytoczo-nym poniżej.

Page 13: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2.1. Problem gniazdowy 7

W modelu tym rozwiązanie reprezentowane jest w postaci zestawu per-mutacji operacji wykonywanych na poszczególnych maszynach, a wartośćfunkcji celu wykorzystuje właściwości pewnego grafu skojarzonego z danymzestawem permutacji. Zbiór operacji O można podzielić na m rozłącznychpodzbiorów O1, O2, . . . , Om takich, że zbiór Ol = j ∈ O : µ(j) = l(o liczności oznaczanej przez nl) określa operacje wykonywane na maszyniel, l ∈ M ;

l∈M nl = n. Niech π = (π1, . . . , πm) oznacza zestaw permutacji

taki, że πl = (πl(1), . . . , πl(nl)) jest pewną permutacją operacji ze zbioruOl, l ∈M ; zbiór wszystkich takich zestawów będziemy oznaczać przez Π.Dla zestawu permutacji π ∈ Π definiujemy skierowany graf

G(π) =(

O,ET ∪ EK(π))

(2.1)

ze zbiorem wierzchołków O oraz zbiorem łuków ET ∪EK(π). Wierzchołekj ∈ O reprezentuje operacje j i obciążony jest wartością pj . Łuki

ET =⋃

k∈J

jk+ok⋃

j=jk+2

(j − 1, j)

(2.2)

określają kolejność wynikającą z technologii, zaś

EK(π) =⋃

l∈M

nl⋃

i=2

(πl(i− 1), πl(i))

(2.3)

wybraną kolejność wykonywania operacji. Ze sposobu konstrukcji grafuG(π) wynika, że jest on acykliczny wtedy i tylko wtedy gdy rozwiązanie re-prezentowane przez zestaw permutacji π jest dopuszczalne. Ponadto, wtedywartości S(j) rozpoczęcia wykonywania operacji j ∈ O równe są długościąnajdłuższych dróg dochodzących do odpowiednich wierzchołków w grafieG(π) i ostatecznie na ich podstawie obliczana jest wartość funkcji celu.Problem gniazdowy pomimo stosunkowo prostego sformułowania należy doproblemów trudnych obliczeniowo.

Przegląd literatury

Problem gniazdowy z kryterium Cmax (termin zakończenia wszystkichoperacji) jest w ogólnym przypadku NP-trudny. Istnieją nieliczne, bardzospecyficzne przypadki szczególne, rozwiązywane w czasie wielomianowym.Przykładowo dla dwumaszynowego problemu gniazdowego z kryterialnąfunkcją Cmax oraz co najwyżej dwoma operacjami w każdym zadaniu, znanyjest wielomianowy algorytm dokładny [46]. Podobnie dla dwumaszynowe-go problemu gniazdowego z jednostkowymi czasami wykonywania operacji

Page 14: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

8 Rozdział 2. Problemy szeregowania w praktyce

znane są algorytmy wielomianowe [109, 53]. Te dwa problemy wytaczajągranicę pomiędzy problemami klasy P a problemami NP-trudnymi. Pro-blem z trzema maszynami i z trzema operacjami w zadaniu jest już pro-blemem NP-trudnym co zostało udowodnione w pracy [106]. Podobnie,jeżeli zrezygnujemy z ograniczenia na ilość operacji w zadaniu, to już dwu-maszynowy problem gniazdowy, ograniczony do sytuacji jednostkowych idwujednostkowych czasów wykonywania wszystkich operacji lub trójma-szynowy problem ograniczony tylko do jednostkowych czasów wykonywaniaoperacji jest problemem NP-trudnym, co udowodniono w pracy [59]. Je-żeli ograniczymy się do problemów w których marszruta zadań przechodzikolejno przez wszystkie maszyny (problem przepływowy, ang. flow-shop) totylko dla dwumaszynowego problemu znany jest algorytm wielomianowy[47], natomiast problem trójmaszynowy jest już problemem NP-trudnym,co pokazano w pracy [58].Negatywne doświadczenia z algorytmami dokładnymi w latach 90-tych

skierowały poszukiwania w kierunku algorytmów przybliżonych i schema-tów aproksymacyjnych. Podobnie jak dla większości problemów szeregowa-nia, algorytmy przybliżone dedykowane dla problemu gniazdowego dzieląsię na dwie klasy: algorytmy konstrukcyjne oraz algorytmy popraw. Dopierwszej klasy należą algorytmy które konstruują rozwiązanie końcoweszeregując zadanie po zadaniu (operację po operacji). Działają one bardzoszybko, są stosunkowo proste w implementacji komputerowej lecz nieste-ty dostarczają rozwiązań dość odległych (w sensie wartości funkcji celu)od rozwiązań optymalnych. Działanie algorytmów popraw popiera się nasystematycznym poprawianiu pewnych rozwiązań. W tym celu w każdejiteracji algorytmu przeglądane jest otoczenie tego rozwiązania (zbiór bli-skich w pewnym sensie rozwiązań) w celu wyznaczenia nowego rozwiązaniabazowego. Najczęściej jako nowe rozwiązanie bazowe wybiera się najlep-sze rozwiązanie z otoczenia. Ze szkicu algorytmu popraw przedstawionegopowyżej wynika, że algorytmy te mogą przeglądać w trakcie pracy wielerozwiązań kończąc swoje działanie na życzenie użytkownika lub w wyni-ku ustalonego kryterium zatrzymania. Z reguły dłuższe działanie takiegoalgorytmu, oznacza znalezienie lepszego w sensie wartości funkcji celu roz-wiązania. Własność ta pozwala użytkownikowi na kreowanie rozsądnego dodanej sytuacji praktycznej, kompromisu pomiędzy czasem obliczeń a jako-ścią otrzymywanych rozwiązań.

Page 15: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2.1. Problem gniazdowy 9

Algorytmy konstrukcyjne

Dla problemu gniazdowego algorytmy konstrukcyjne możemy podzielićna dwie zasadnicze grupy (i) algorytmy priorytetowe, (ii) algorytmy ty-pu wstaw. Algorytmy priorytetowe ze zbioru operacji nieuszeregowanychwybierają według pewnej zasady (priorytetu) operację i wstawiają ją jakokolejną do realizacji na maszynę, na której ma być ona wykonywana. Donajczęściej stosowanych reguł priorytetowych należą:

• SPT – operacja o najkrótszym czasie trwania (ang. shortest proces-sing time),

• LPT – operacja o najdłuższym czasie trwania (ang. longest processingtime),

• LWR – operacja o najkrótszym pozostałym czasie wykonania (ang.least work remaining),

• MWR – operacja o najdłuższym pozostałym czasie wykonania (ang.most work remaining),

• Random – operacja wybrana losowo.

Szerszą listę reguł stosowanych w tym przypadku można znaleźć w pra-cy [39]. Znane są też w literaturze [5, 42, 93], algorytmy z tzw. dynamicz-nymi priorytetami. W przypadku tych algorytmów priorytety wszystkichnieuszeregowanych operacji uaktualniane są po każdej fazie algorytmu.Algorytmy z drugiej grupy, opierają się na tak zwane technice wsta-

wień. Główna idea jej działania polega na tym, że szeregowana operacjanie jest umieszczana na końcu uszeregowania częściowego, tak jak to miałomiejsce w przypadku algorytmów priorytetowych, lecz próbnie wstawianajest na wszystkie pozycje i ostatecznie wstawiana na najlepszą pozycję spo-śród testowanych. W pracy [84] zaproponowano modyfikację polegającą napowtórnym szeregowaniu wcześniej już uszeregowanych operacji. Pozwoli-ło to na poprawienie efektywności metody o ponad 5% w sensie jakościprodukowanych rozwiązań.Na pograniczu algorytmów popraw działa algorytm oparty na metodzie

przesuwania wąskiego gardła SB (ang. shifting bottleneck algorithm) [3].Algorytm w m krokach poprawia rozwiązanie startowe. W każdym krokuze zbioru jeszcze nie wybranych maszyn, wyznaczona jest według pewnejreguły maszyna nazywana wąskim gardłem. Na tej maszynie szereguje sięoperacje, zgodnie z permutacją będącą rozwiązaniem jednomaszynowegoproblemu z czasami gotowości i dostarczania. Dane instancji tego proble-mu zależą od danych pierwotnego problemu gniazdowego. W dalszej częściiteracji przeprowadza się określoną liczbę cykli popraw.

Page 16: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

10 Rozdział 2. Problemy szeregowania w praktyce

Algorytmy popraw

W pracy [77], przedstawiono wyniki badań porównujących, szybkośćdziałania oraz jakość generowanych rozwiązań 20 najlepszych algorytmówdedykowanych problemowi gniazdowemu. Opierają się one na czterech pod-stawowych metodach. Poniżej zostały one wymienione, dodatkowo lista tazostała uzupełniona o najnowsze algorytmy bazujące na wspomnianych me-todach:

• metodzie symulowanego wyżarzania – Aarts i in. [1]; Matsuo i in. [72],Yamada i in. [118],

• metodzie tabu – Barnes i Chambers [8], Dell’Amico i Trubian [24],Nowicki i Smutnicki (TSAB) [86],

• metodzie genetycznej – Dell Croce i in. [23], Dorndorf i Pesch [27],Pesch [98], Aarts i in. [1]

• metoda SB – Adams i in. [3], Balas i Vazacopoulos [6].

Z przeprowadzonych testów wynika, że najlepsze rezultaty otrzymano al-gorytmem TSAB. Algorytm ten jest w dalszym ciągu rozwijany, w tymtakże przez jego twórców. W pracy [89] zaproponowano nową metodę dy-wersyfikacji przeszukiwań, wykorzystującą wiedzę o krajobrazie przestrzenirozwiązań, która dla rozważanego problemu była rozważana w pracy [82].Algorytm TSAB jest również inspiracją dla algorytmów prezentowanych wdalszej części pracy.

2.2 Ograniczenia technologiczne

Jak już wspominałem klasyczne sformułowanie problemu patrz 2.1przyjmuje wiele założeń upraszczających takich jak: (i) dowolnie długi czasoczekiwania zadania w kolejce pomiędzy zakończeniem danej operacji iprzed rozpoczęciem następnej, (ii) nieograniczona możliwość magazyno-wania zadań (iii) zerowe lub pomijalne czasy transportu, (iv) zerowe lubpomijalne czasy przezbrojeń maszyn, (v) nieograniczona pojemność bufo-rów, (vi) nieograniczona liczba palet. Utrzymanie tych założeń w modelumatematycznym często prowadzi do modeli nieadekwatnych do rzeczywi-stości. Przeciwnie, uwzględnienie tych realnych ograniczeń generuje noweklasy problemów szeregowania.

Bez czekania

Ograniczenie „bez czekania” jest szczególnym przypadkiem ogólniejsze-go ograniczenia „czasu oczekiwania”. Przy ograniczeniu tego typu dla każ-

Page 17: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2.2. Ograniczenia technologiczne 11

dej pary kolejnych operacji (j, j + 1) tego samego zadania określony jestminimalny αj oraz maksymalny βj czas zwłoki pomiędzy momentem za-kończenia operacji j a momentem rozpoczęcia wykonywania operacji j+1;

αj ¬ S(j + 1)− C(j) ¬ βj . (2.4)

Parametr αj często jest utożsamiany z opóźnieniem wynikającym np. zczasu transportu lub czasu schnięcia malowanego elementu. Parametr βjnatomiast utożsamiany jest z czasem po jakim dany element traci swojeniezbędne do dalszej obróbki własności fizyczno-chemiczne, może to byćnp. czas stygnięcia obrabianego na gorąco elementu.Ograniczenie „bez czekania” należy rozumieć jako sytuację, w której

czas oczekiwania musi wynosić dokładnie zero; αj = βj = 0. Oznacza towymóg ciągłego wykonywania danego zadania, operacja po operacji, bezmożliwości przestoju. Sytuacja tak zachodzi w wielu praktycznych proce-sach, w których wykonuje się operacje na materiałach zmieniających swojewłasności fizyczno-chemiczne. Przykładem może być produkcja żywności[40] czy produkcja lekarstw [99]. W pracy [100] pokazano, że problem tenjest NP-trudny już dla przypadku dwumaszynowego. W pracy [54] propo-nowany jest pseudo-wielomianowy algorytmy dla dwumaszynowego proble-mu gniazdowego z ograniczeniem bez czekania przy dodatkowym założeniujednostkowych czasów wykonywania operacji.Próby skonstruowania różnych algorytmów (dokładnych, popraw bazu-

jących na zróżnicowanych technikach) dla tego problemu były podejmo-wane przez wielu badaczy. Dla małych przykładów rozważanego problemuzaproponowany jest w pracy [64] algorytm oparty na metodzie podziału iograniczeń. W pracy [99] prezentuje się algorytmy popraw oparte na meto-dzie symulowanego wyżarzania. Algorytmy poszukiwania z zabronieniamiprzedstawiony jest w pracy [63], natomiast prace [13, 103] prezentują algo-rytmy genetyczne.

Bufory

Ograniczenie rozważane w tej sekcji odnosi się do skończonej pojemnościbuforów wejściowych maszyn. W praktyce ograniczona pojemność buforówmaszyn występuje najczęściej w przepływowych systemach produkcyjnych,ponieważ obrabiane detale, przesuwają się np. przy pomocy taśmociągu, afragment taśmociągu pomiędzy kolejnymi maszynami może pomieścić tylkoniewielką liczbę obrabianych elementów. W jednej z pierwszych prac [94]pokazano, że już dla dwumaszynowego problemu przepływowego rozważanyproblem należy do klasy problemów NP-trudnych.

Page 18: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

12 Rozdział 2. Problemy szeregowania w praktyce

W monografii [104] zaprezentowano algorytm wykorzystujący technikęposzukiwania z zabronieniami dla problemu przepływowego z maszynamirównoległymi (w stanowisku obsługi znajduje się kilka maszyn), przy do-datkowym ograniczeniu pojemności buforów (bufory mają co najwyżej jed-nostkową pojemność). Szczegółowe modele zasobów buforowych podane sąw pracy [110] oraz [88]. Problemu przepływowego z buforami analizowanybył w pracy [57], natomiast w pracy [79] zaproponowano dla niego algorytmoparty na metodzie poszukiwania z zabronieniami.

Transport

Ograniczenie te polega na uwzględnieniu czasów transportów zadań po-między poszczególnymi maszynami. Ponieważ czas transportu może byćzależny od drogi dzielącej poszczególne maszyny, w problemach gniazdo-wych z transportem konieczne jest również uwzględnienie geometrycznegoukładu maszyn. Najczęściej spotykane układy maszyn wymienia się m. in.w pracy [55]. Należą do nich układy typu linia, pętla i drabinka. Systemytransportowe o nieograniczonej przepustowości mogą być modelowane jakoograniczenia czasu oczekiwania. Inaczej jest z systemami transportowymio ograniczonej liczbie środków przewozowych.Systemy o strukturze gniazdowej wykorzystujące ograniczoną liczbę

wózków AGV możemy zróżnicować ze względu na liczbę oraz tryb pra-cy wózków. Wózki mogą pracować w dwóch trybach. Tryb pierwszy „stój ijedź” polega na tym, że dany środek transportu jest związany z konkretnymzadaniem przez cały czas pobytu zadania w systemie. W takim przypadku,po wykonaniu operacji załadowczej, wózek jedzie do zadanej maszyny, poczym staje i czeka aż operacja wykonywana przez maszynę zakończy się.Drugi tryb pracy „zabierz i zostaw” polega na tym, że po zostawieniu danejczęści buforze maszyny, wózek może wykonać tzw. przejazd pusty w kierun-ku innej maszyny i tam zabrać inną część z bufora wyjściowego maszyny,rozpoczynając kolejny transport.W problemach gniazdowych z transportem i ograniczoną liczbą wózków

pracujących w trybie „zabierz i zostaw”, wózki traktuje się jak zbiór do-datkowych maszyn (transportowych) [44, 45, 90, 111]. W przypadku gdyprzydział operacji do poszczególnych maszyn transportowych jest znany,problem można przetransformować do problemu gniazdowego z przezbroje-niami w przeciwnym wypadku, problem jest transformowalny do problemugniazdowego z przezbrojeniami i maszynami wielofunkcyjnymi. Algorytmykonstrukcyjne dla tego problemu przedstawiono w pracy [7, 90] zaś algo-rytmy popraw bazujące na technice poszukiwania z zabronieniami przed-stawione są w pracach [44, 45, 81].

Page 19: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2.3. Problemy ogólniejsze 13

Palety

Na początku zaznaczę, że palety często odgrywają istotną rolę w pro-cesie produkcyjnym jako platforma do przenoszenia obrabianych detali[101, 19, 112]. Wykorzystanie palet w rzeczywistym procesie produkcyj-nym polega na tym, że w gnieździe załadowczym na paletę ładowana jestczęść bazowa danego zadania i następnie paleta jest transportowana po-między odpowiednimi gniazdami. Przez cały proces wykonywania danegozadania przyporządkowana jest mu jedna paleta, tzn czynności technolo-giczne wykonywane są bez zdejmowania części bazowej z palety. Po zakoń-czeniu procesu technologicznego, gotowe zadanie jest zdejmowane z paletyw gnieździe wyładowczym i paleta może ponownie być wykorzystana dlapotrzeb kolejnego zadania.Do modelowania tego ograniczenia można wykorzystać rozszerzony mo-

del permutacyjno-grafowy [80] lub konkurencyjny model paleto-zadaniowyopisany w pracy [97]. Algorytm tabu dla problemu przepływowego z pale-tami zaproponowano w pracy [78].

2.3 Problemy ogólniejsze

Pomimo iż, klasyczne sformułowanie problemu gniazdowego, modelu-je szereg praktycznych procesów produkcyjnych, wprowadza się jego dalszeuogólnienia, które rozszerzają obszar stosowalności na bardziej złożone pro-cesy przemysłowe. Do najczęściej stosowanych uogólnień problemu gniazdo-wego należy wprowadzenie modelu operacji wielomaszynowych (ang. multi-procesor task) oraz uwzględnienie alternatywnych sposobów wykonaniaoperacji (ang. multi-purpose machines). Problem, w którym występują rów-nocześnie dwa wyżej wymienione uogólnienia nazywany jest wielotrybowym(ang. multi-mode).

2.3.1 Wiele sposobów wykonywania

Wielosposobowy problem gniazdowy spotykany jest także pod nazwąproblemu gniazdowego z maszynami wielofunkcyjnymi. Problem ten mode-luje sytuacje, gdy w procesie przemysłowym istnieją pewne operacje mogącebyć wykonane na różnych maszynach. Słowo „różnych” należy rozumieć za-równo jako różne egzemplarze takiej samej maszyny, (maszyny identyczne)jak i różne typy maszyn (np. robot uniwersalny i wiertarka).Ponieważ wielosposobowy problem gniazdowy, formułowany jest bardzo

podobnie jak klasyczny problem gniazdowy, ograniczę się tylko do podaniaróżnicy. W klasycznym problemie każda operacja j ∈ O była skojarzona z

Page 20: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

14 Rozdział 2. Problemy szeregowania w praktyce

konkretną jedną maszyną µ(j) ∈M . W rozważanym problemie dla operacjij ∈ O zdany jest zbiór Mj alternatywnych maszyn. Realizacja operacji jwymaga użycia jednej, dowolnie wybranej maszyny i ∈ Mj , z tego zbio-ru przez zadany czas pi,j (ogólnie różny dla różnych maszyn). Ponadto wproblemie tym obowiązują wszystkie inne ograniczenia występujące w kla-sycznym problemie gniazdowym.Pewnym, często spotykanym, przypadkiem szczególnym opisanego pro-

blemu, jest problem gniazdowy z maszynami równoległymi. Modeluje onproces przemysłowy, w którym zamiast jednej maszyny występuje gniazdoprodukcyjne wyposażone w kilka identycznych maszyn (maszyny dedyko-wane [11]). Wtedy oczywiście dla każdej operacji przypisany jest indeksgniazda, a operacja realizowana jest na dowolnej maszynie z tego gniazda.Pomimo iż, problem należy dla klasy problemów NP-trudnych, w li-

teraturze znane są algorytmy dokładne bazujące na metodzie podziału iograniczeń. Niestety najlepszy algorytm tego typu zaproponowany w pracy[48] jest w stanie rozwiązać problem o rozmiarze kilku maszyn i kilkunastuoperacji, co jest niewystarczające dla praktycznych zastosowań. Algorytmykonstrukcyjne zaproponowane zostały w pracach [43], [77], algorytmy po-praw oparte na technice przeszukiwania z zabronieniami przedstawione sąw pracach [43], [22], [76].

2.3.2 Operacje wielomaszynowe

Problem gniazdowy z operacjami wielomaszynowymi znany jest takżejako problem gniazdowy z równoległym wykorzystaniem maszyn [37]. Pro-blem ten modeluje procesy produkcyjne, w których występuje koniecznośćużycia kilku maszyn jednocześnie, np. w celu wymiany tłumika należy użyćpodnośnika i spawarki. W pracy [41] pokazano, że już dwustanowiskowyproblem (przepływowy) z maszynami równoległymi na jednym ze stano-wisk jest problemem NP-trudnym.Ze względu na duże podobieństwo rozważanego problemu w stosunku do

problemu klasycznego, poniższe sformułowanie ograniczę tylko do podaniaróżnic względem problemu gniazdowego. Podobnie jak przy wcześniejszymuogólnieniu, dla każdej operacji j ∈ O zamiast jednej maszyny, dany jestzbiór maszyn Mj . Tym razem do realizacji operacji j ∈ O należy użyćjednocześnie wszystkich maszyn Mj przez czas pj . Wszystkie dodatkoweograniczenia występujące w klasycznym problemie przenoszą się w całościna rozważany problem.Pierwsza prace [37] dotycząca operacji wielomaszynowych pochodzi z

końca lat siedemdziesiątych. W pracy [52] rozważa się wiele specyficznychbardzo zredukowanych (np. do dwóch maszyn, jednostkowych czasów wyko-

Page 21: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2.3. Problemy ogólniejsze 15

nywania) przypadków rozważanego problemu. Podobnie w pracy [29] ana-lizuje się różne uproszczenia rozważanego problemu (np. zakłada się po-dzielność operacji). W pracach tych przeprowadzona jest analiza złożonościobliczeniowej uproszczonych problemów, a co za tym idzie wytyczona jestgranica pomiędzy problemami wielomianowymi a NP-trudnymi.Algorytm dokładny dla tego problemu został przedstawiony w pracy

[52]. Bazuje on na ogólnej metodzie podziału i ograniczeń. Niestety prak-tyczna czasochłonność algorytmu jest na tyle duża, że można nim rozwiązaćw sensownym czasie instancje przykładów zawierające maksymalnie do 40operacji.

2.3.3 Wielosposobowe operacje wielomaszynowe

Problem ten łączy w sobie dwa wcześniej opisane uogólnienia problemugniazdowego. Modeluje on najszerszą klasę procesów produkcyjnych, leczjest jednocześnie najbardziej złożonym z obliczeniowego punktu widzenia.W rozważanym problemie szeregowania zadań produkcyjnych, realiza-

cja operacji j odbywa się pewnym (dowolnie wybranym) sposobem f nale-żącym do zbioru Fj wszystkich sposobów jakimi można wykonać tę opera-cję. Natomiast każdy sposób realizacji definiuje precyzyjnie zbiór wykorzy-stywanych maszyn oraz czas pj,f realizacji operacji j sposobem f .Rozważany problem, jest na tyle trudnym problemem z praktycznego

punktu widzenia, że wyklucza stosowanie jakichkolwiek metod dokładnychnawet dla niewielkich rozmiarów instancji. Jakość priorytetowych algoryt-mów literaturowych jest bardzo słaba, np. algorytm prezentowany w pracy[17] generuje rozwiązania średnio o 100% gorsze (w sensie wartości funk-cji celu) niż rozwiązania referencyjne otrzymane algorytmami typu prze-szukiwania z zabronieniami. W pracy [12] proponowany jest algorytm napograniczu, algorytmu priorytetowego i algorytmu popraw (cyklicznie do-konuje: przydziału wszystkim operacją sposobu i szeregowania wybranychsposobów). Jakość dostarczanych rozwiązań jest na poziomie 50% (w sen-sie odległości wartości funkcji celu od rozwiązań referencyjnych.) W grupiealgorytmów konstrukcyjnych najlepszym jest algorytm typu wstaw zapro-ponowany w monografii [77]. Analogiczna jakość generowanych rozwiązańjest na poziomie 25% od rozwiązań referencyjnych. Pierwszym algorytmempopraw jest algorytm typu przeszukiwania z zabronieniami opisany w pracy[17]. Niestety prędkość jego działania jest bardzo wolna tzn. dla najwięk-szych przykładów wykonuje on około jedną iterację na minutę (na kom-puterze o prędkości odpowiadającej komputerowi klasy PC z procesoremPentium 120). Kolejny algorytm typu tabu opisany w pracy [77] jest znacz-nie lepszy zarówno pod względem prędkości jak i jakości dostarczanych

Page 22: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

16 Rozdział 2. Problemy szeregowania w praktyce

rozwiązań.

2.4 Metody rozwiązywania

Problemy optymalizacji dyskretnej charakteryzują się tym, że zmiennedecyzyjne (wszystkie lub część) przyjmują wartości dyskretne, najczęściejcałkowitoliczbowe lub binarne. Ze względu na to, że przestrzeń rozwią-zań nie jest ciągła i różniczkowalna, zawiera ogromną liczbę ekstremówlokalnych oraz jej rozmiar jest ogromny, znalezienie rozwiązania optymal-nego jest dość kłopotliwe (w wielu przypadkach praktycznie niemożliwe).Zdecydowania większość tych problemów należy do klasy problemów NP-trudnych, dlatego przy obecnym stanie wiedzy, nie będzie można ich rozwią-zać dokładnie wykorzystując algorytmy o złożoności wielomianowej. Pro-ponowane dla tej klasy problemów algorytmy dokładne o złożoności po-nadwielomianowej, oparte najczęściej o schemat podziału i ograniczeń, po-trafią rozwiązać (w sensownym czasie) tylko problemy o niewielkich rozmia-rach. Fakt ten przyczynił się do powstania algorytmów rozwiązujący danyproblem w sposób przybliżony. Algorytmy te zwane przybliżonymi, z defi-nicji nie znajdują rozwiązań optymalnych, lecz tylko rozwiązania „w miarędobre” w sensie wartości funkcji celu. Tak więc o ile algorytmy dokładnemożna porównywać ze sobą na podstawie czasu działania (dostarczane roz-wiązania były jednakowo dobre (optymalne)), miarą efektywności algoryt-mów przybliżonych jest zarówno czas działania oraz dokładność (odległośćotrzymanego rozwiązania od rozwiązania optymalnego w sensie wartościfunkcji celu).Opisywane w dalszym ciągu metody, będą dotyczyły problemu optyma-

lizacyjnego zapisanego w formie

x∗ = argminx∈XF (x) (2.5)

gdzie x∗ – jest rozwiązaniem optymalnym, x – rozwiązaniem, X – zbioremrozwiązań dopuszczalnych, F – funkcją celu. Jest powszechnie znane, żeinne typy problemów optymalizacji można sprowadzić do postaci 2.5.

2.4.1 Metody dokładne

Metody dokładne znajdują zastosowanie w rozwiązywaniu problemówklasy P, dla których istnieją różne specjalistyczne algorytmy dokładne ozłożoności wielomianowej. W klasie problemów NP-trudnych zastosowaniemetod dokładnych praktycznie jest ograniczone do instancji o niewielkich

Page 23: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2.4. Metody rozwiązywania 17

rozmiarach, ponieważ czas pracy tych algorytmów rośnie wykładniczo wrazz wzrostem rozmiaru problemu.Najbardziej znanymi metodami dokładnymi są:

• algorytmy dedykowany dla problemów klasy P, np. algorytm John-son’a [47]

• metody specjalizowane oparte na schemacie podziału i ograniczeń(ang. Branch and Bound), [16], np. algorytm Carlier’a [18],

• schemat programowania dynamicznego (PD),

• metody programowania liniowego całkowitoliczbowego (PLC), np. al-gorytm Gilmora-Gomory’ego, [31]

• metody programowania liniowego binarnego (PLB), np. algorytm Ba-lasa,

• metody subgradientowe.

2.4.2 Metody przybliżone

Metod przybliżonych, rozwiązujących problemy optymalizacji dyskret-nej jest bardzo dużo. Wiele z nich naśladuje Naturę, np. algorytmy ewolu-cyjne, czy algorytmy mrówkowe. Inne używają komputerów biologicznych,tzn. problem matematyczny kodowany jest za pomocą sekwencji DNA wformie łańcuchów, które pasują do siebie w ściśle określony sposób. Rozwią-zaniem jest sekwencja połączonych elementarnych łańcuchów. Stwierdzenieczy znaleziono wymagane rozwiązanie wykonywane jest w teście bioche-micznym wykrywającym szukaną cząsteczkę DNA. Kolejne, np. eksperto-we bazują na zgromadzonej wiedzy ludzi zawodowo zajmujących się danymproblemem. Jeszcze inne metody, np. oparte na sieciach neuronowych wy-magają do poprawnego funkcjonowania procesu uczenia. Lista metod przy-bliżonych jest bardzo długa i w skróconej wersji przedstawiona jest poniżej:

• algorytmy konstrukcyjne (ang. constructive methods)

– reguły priorytetowe (ang. dispatching rules)– algorytmy oparte na technice wstawiania (ang. insert algori-thms)

• obcięte B&B (ang. truncated B&B)

– poszukiwanie adaptacyjne (ang. adaptation algorithms)

• metody AI (ang. artificial inteligence)

Page 24: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

18 Rozdział 2. Problemy szeregowania w praktyce

– metody ekspertowe (ang. expert systems)– metody wieloagentowe (ang. multi agents)

• metoda geometryczna (ang. geometric search)

• poszukiwania biochemiczne (ang. DNA method)

• sieci neuronowe (ang. neural networks)

• metody hybrydowe (ang. hybrid methods)

– algorytmy naśladujące (ang. memetic algorithms)

• spełnienie ograniczeń (ang. constraints satisfaction)

• poszukiwanie lokalne (ang. local search) zwane też metodami popraw(ang. improvement methods)

– poszukiwanie zstępujące (ang. descending search)– sterowane poszukiwanie lokalne (ang. guided local search)– poszukiwania ewolucyjne (ang. evolutionary, genetic search)

∗ ewolucja różnicowa (ang. differential evolution)∗ algorytmy kulturowe (ang. cultural algorithms)

– poszukiwania ścieżkowe (ang. path search)

∗ ścieżki przejściowe (ang. path relinking)∗ celowe ścieżki śledzące (ang. goal-oriented tracing paths)

– poszukiwanie mrówkowe (ang. ant search)– poszukiwania rozproszone (ang. scatter search)– poszukiwanie progowe (ang. threshold search)

∗ symulowane wyżarzanie (ang. simulated annealing)∗ symulowane wstrząsanie (ang. simulated jumping)∗ poszukiwanie losowe (ang. random search)

– poszukiwanie z zakazami (ang. taboo search)

∗ poszukiwanie z pamięcią adaptacyjną (ang. adaptive memo-ry search)

Krótki opis z każdej z wymienionej tu metody znajduje się w pracy [105].Problemy optymalizacji dyskretnej którymi zajmuje się w pracy należą doobszaru szeregowania zadań produkcyjnych, dokładniej są to uogólnioneproblemy gniazdowe. Dla tych właśnie problemów najskuteczniejsze okaza-ły się dwie klasy algorytmów przybliżonych. Są to szybkie i z reguły mniejdokładne algorytmy konstrukcyjne oraz wolniejsze i zazwyczaj dokładniej-sze algorytmy popraw.

Page 25: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2.4. Metody rozwiązywania 19

Moim zdaniem odpowiedź na pytanie, który z algorytmów jest efek-tywniejszy, ten działający 1s i generujący rozwiązanie odległe o 20% czyten działający 10h i dostarczający rozwiązanie odległe o 0,1%, zależy tylkood praktycznego zastosowania. W przypadku awarii, gdzie trzeba podjąćnatychmiast decyzję, a uzyskane rozwiązanie będzie wykorzystywane tyl-ko przez 1 dzień, zdecydowanie pierwszy algorytm jest lepszy. Jednak wplanowaniu produkcji długo terminowej, np projektowanie parku maszynw zakładach produkujących samochody, zdecydowanie lepszy jest algorytmdostarczający lepsze rozwiązanie nawet kosztem kilku-godzinnych obliczeń.Wśród algorytmów konstrukcyjnych dla problemów szeregowania naj-

lepsze rezultaty osiągane są przez algorytmy typu wstaw, natomiast wśródalgorytmów popraw najlepiej spisuje się algorytm typu poszukiwania z za-bronieniami oraz algorytm typu symulowanego wyżarzania. Ponieważ wswojej pracy będę korzystać z tych trzech wymienionych schematów, przej-dę do dokładniejszego ich opisania.

2.4.3 Algorytmy typu wstaw

Algorytmy typu wstaw dedykowane są tylko tym problemom optymali-zacji dyskretnej w których rozwiązanie może być reprezentowane w postacipermutacji bądź zestawu permutacji. Z tego powodu algorytm typu wstawomówię na przykładzie problemu gniazdowego zdefiniowanego w rozdziale2.1, w którym rozwiązanie reprezentowane jest w postaci zestawu permu-tacji operacji wykonywanych na poszczególnych maszynach.Prekursorem algorytmów typu wstaw był algorytm NEH, [74], zapropo-

nowany dla klasycznego problemu przepływowego. Ogólna idea algorytmówkonstrukcyjnych typu wstaw w klasycznym problemie gniazdowym (każdaoperacja jest wykonywana tylko na jednej określonej maszynie) polega natym, że na danym kroku iteracyjnym, dysponując częściowym uszeregowa-niem (lub inaczej - częściową kolejnością), wstawia się próbnie na wszyst-kie możliwe pozycje w permutacji częściowej na maszynie l jedną z jeszczenieuszeregowanych operacji j, maszyna l oznacza tutaj maszynę, na któ-rej należy wykonać operację j. Dla każdej z takich pozycji wyznacza siędolne ograniczenie wartości funkcji celu i następnie wybiera się pozycję onajmniejszej wartości tego ograniczenia. Na tę pozycję wstawia się osta-tecznie operację j. Tym samym zbiór nieuszeregowanych operacji zostajepomniejszony o operację j. Postępowanie jest kontynuowane, aż wszystkieoperacje zostaną uszeregowane. Problem wyboru operacji j ze zbioru ope-racji nieuszeregowanych, rozwiązuje się przez ustalenie w fazie początkowejalgorytmu pewnej kolejności, najczęściej według nierosnących czasów wy-konywania. Schemat algorytmu typu wstaw przedstawiony jest na rys. 2.1.

Page 26: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

20 Rozdział 2. Problemy szeregowania w praktyce

Algorytmu typu wstaw

Krok 1. Podstaw za x częściowe puste uszeregowanie, oraz wyznaczpermutację γ wszystkich operacji wg. nierosnących czasówwykonywania.

Krok 2. Dla i = 1 . . . o wykonaj kroki 3–5.

Krok 3. Włóż próbnie operację j = γ(i) do na wszystkie możliwe po-zycje w uszeregowaniu częściowym x, dla każdego powstałe-go dopuszczalnego uszeregowania wyznacz dolne ogranicze-nie wartość funkcji celu.

Krok 4. Z powstałych częściowych uszeregowań wybierz uszeregowa-nie x′ najlepsze w sensie dolnego ograniczenia wartości funk-cji celu.

Krok 5. Podstaw x := x′.

Rysunek 2.1: Schemat algorytmu typu wstaw

2.4.4 Algorytmy typu symulowanego wyżarzania

Metoda symulowanego wyżarzania została zaprezentowana po raz pierw-szy w pracy [49]. Nazwa metody wynika z faktu iż metoda ta nawiązu-je do termodynamicznego procesu studzenia (wyżarzania) ciała stałego.Metoda ta jest dość powszechnie stosowana ze względów na dość łatwąimplementację oraz dobrą jakość generowanych rozwiązań. W literaturze[2, 21, 72, 56, 91, 92, 118] prezentowane są liczne algorytmy oparte natej metodzie dla różnych problemów szeregowania. Ogólna idea algorytmusymulowanego wyżarzania polega na ciągłym losowym przechodzeniu z roz-wiązania bieżącego do rozwiązania sąsiedniego, przy czym decyzja o przej-ściu do rozwiązania sąsiedniego zależy od jego jakości (w sensie wartościfunkcji celu). Intuicyjne jest, że prawdopodobieństwo przejścia do rozwią-zania zwiększa się z jakością tego rozwiązania. W miarę działania algorytmuprawdopodobieństwo akceptacji rozwiązań gorszych maleje.W celu precyzyjnego omówienia przyjmijmy następujące oznaczenia:

X – zbiór wszystkich rozwiązań rozważanego problemu,

x ∈ X – bieżące rozwiązanie problemu,

F (x) – wartość funkcji celu dla rozwiązania x,

Page 27: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2.4. Metody rozwiązywania 21

Algorytmu symulowanego wyżarzania (x, Tstart, Tstop, n, η)

Krok 1. Podstaw x∗ := x, T := Tstart, na podstawie parametrówTstart, Tstop), η oblicz λ zgodnie zgodnie z przyjętym sche-matem chłodzenia,

Krok 2. Zwiększ licznik iteracji i := i+ 1,Wybierz losowo rozwiązanie x′ z sąsiedztwa Nx,oraz liczbę R z przedziału [0, 1).

Krok 3. Jeżeli F (x′) < F (x∗) wtedy połóż x∗ := x′.

Krok 4. Oblicz wartość ∆ = F (x′)−F (x) i jeżeli R < e−∆/T to połóżx := x′

Krok 5. Jeżeli i mod n = 0 wtedy zmniejsz temperaturę T wedługprzyjętego schematu chłodzenia

Krok 6. Jeżeli i < n · η) to idź do kroku 2.

Rysunek 2.2: Schemat algorytmu symulowanego wyżarzania

Nx ⊂ N – sąsiedztwo rozwiązania x czyli zbiór rozwiązań bliskich w pew-nym sensie rozwiązaniu x,

x′ ∈ Nx – pewne wylosowane rozwiązanie z sąsiedztwa Nx.

Jeżeli wartość funkcji celu wylosowanego rozwiązania jest mniejsza (wprzypadku minimalizacji) niż rozwiązania bazowego, F (x′) < F (x), przej-ście do tego rozwiązania jest bezwarunkowe x := x′. W przeciwnym wy-padku prawdopodobieństwo P (x, x′) przejścia do wylosowanego rozwiąza-nia zależy od jakości rozwiązań F (x′) i F (x) oraz parametru T zwane-go temperaturą. Najczęściej stosowana postać funkcji prawdopodobieństwaakceptacji przejścia z rozwiązania x do rozwiązania x′ ma postać:

P (x, x′) = min(1, e−∆/T ) (2.6)

gdzie ∆ = F (x′) − F (x). Co pewien etap algorytmu (najczęściej po usta-lonej liczbie iteracji) parametr t jest zmniejszany. W literaturze znane jestkilka schematów chłodzenia (zmniejszania parametru T ) jednak najczę-ściej stosowane są dwa schematy: geometryczny T := λT i logarytmicznyT := T/(1 + λT ), gdzie λ jest pewnym parametrem najczęściej oblicza-nym na początku algorytmu na podstawie temperatury początkowej Tstart,

Page 28: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

22 Rozdział 2. Problemy szeregowania w praktyce

temperatury końcowej Tstop oraz ilości η wykonywanych zmian temperatu-ry. Dla schematu logarytmicznego λ = (Tstart−Tstop)/(η ·Tstart ·Tstop), dlageometrycznego (Tstop/Tstart)1/η. Istnieją jednak algorytmy symulowanegowyżarzania, w których parametr λ zmienia się podczas pracy algorytmu,np. na podstawie odchylenia standardowego wartości funkcji celu przeglą-danych rozwiązań.W schemacie algorytmu symulowanego wyżarzania przedstawionym na

rys. 2.2 parametr n oznacza liczbę iteracji wykonywanych przy jednej tem-peraturze, η jest liczbą faz algorytmu (fazą nazywamy iteracje algorytmuwykonane przy tej samej temperaturze).

2.4.5 Algorytmy typu poszukiwania z zabronieniami

Metoda poszukiwania z zakazami została zaprezentowana po raz pierw-szy w pracach [32, 33], a następnie była rozwijana przez jej twórcę w pracach[34, 35, 36]. Metoda ta w pewnym stopniu naśladuje naturalne zachowaniesię szukającego człowieka. Ogólna idea algorytmu polega na systematycz-nym przechodzenia z rozwiązania bieżącego x do rozwiązania najlepszegow sąsiedztwie x′ = argminx∈Nx F (x)

1 (przy założeniu minimalizacji funk-cji kryterialnej F ). W celu wymuszenia opuszczania ekstremów lokalnychalgorytm wyposażony jest w pamięć historii poszukiwań, zapisującej odwie-dzane rozwiązania, atrybuty rozwiązań, lub atrybuty ruchów prowadzącychdo tych rozwiązań. Dwie ostatnie techniki zmniejszają znacznie pracochłon-ność metody. Algorytm pamiętając pewne atrybuty ostatnio przeglądanychrozwiązań (lub atrybuty ruchów do nich prowadzących) unika ich w ko-lejnych krokach. Zazwyczaj w algorytmach poszukiwania z zabronieniamistosuje się pamięć krótko terminową (pamięta się atrybuty rozwiązań i/lubatrybuty ruchów od kilku do kilkunastu iteracji wstecz). Dobrze dobraneatrybutu, pamiętane na liście tabu gwarantują nie tylko odrzucanie roz-wiązań ostatnio przeglądanych, ale także zabraniają zbliżania się do tychrozwiązań, odrzucają rozwiązania w pewnym sensie bliskie tym pierwszym.Praktycznie działanie algorytmu można zatrzymać w dowolnym momen-cie. Umożliwia to swobodne kształtowanie kompromisu pomiędzy czasemobliczeń a jakością produkowanych rozwiązań. Najczęściej spotykane kry-teria stopu to: wykonanie pewnej liczby iteracji bez poprawy najlepszegoznalezionego rozwiązania, wykonanie określonej liczy iteracji, przekroczenielimitu czasu przeznaczonego na pracę algorytmu.Algorytmy typu przeszukiwania należą do najefektywniejszych algoryt-

mów dla problemów szeregowania zadań. Wyniki porównawcze algorytmów

1Wielkości Nx, x, F (x) opisano w rozdziale 2.4.4.

Page 29: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

2.4. Metody rozwiązywania 23

Algorytmu poszukiwania z zabronieniami

Krok 1. Podstaw x∗ := x.

Krok 2. Wybierz najlepsze niezabronione przez listę tabu LT roz-wiązanie x′ z sąsiedztwa Nx.

Krok 3. Jeżeli F (x′) < F (x∗) wtedy połóż x∗ := x′.

Krok 4. Umieść atrybuty rozwiązania x′ na liście LT .Podstaw x := x′.

Krok 5. Jeżeli na nachodzi warunek STOP’u to idź do kroku 2.

Rysunek 2.3: Schemat algorytmu poszukiwania z zabronieniami

bazujących na różnych metodach dla dwóch najbardziej sztandarowych pro-blemów szeregowania (problem przepływowy i problem gniazdowy) zawartesą w pracach [2, 114]. Duża liczba artykułów np. [4, 60, 62, 51, 86, 87, 104,108, 113, 115, 117] prezentujących algorytmy oparte na metodzie poszuki-wania z zabronieniami świadczy o ciągłym zainteresowaniu tą metodą.Pomimo dość prostego ogólnego schematu algorytmu poszukiwania z

zabronieniami rys. 2.3, wymaga on dobrze przemyślanego wyboru atrybu-tów zapisywanych na liście tabu, opracowania dobrego sąsiedztwa (tzn. nieza duże, ze stosunkowo dobrymi rozwiązaniami), bardzo szybkich metodobliczania wartości funkcji kryterialnej F (x), x ∈ X oraz łatwego wyzna-czania statusu rozwiązania (zabronione, nie zabronione). Włożona praca wdopracowanie algorytmu typu poszukiwania z zabronieniami, może jednakzaowocować algorytmem o efektywności znacznie przewyższającej algoryt-my oparte na innych metodach.

Page 30: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

24 Rozdział 2. Problemy szeregowania w praktyce

Page 31: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Rozdział 3

Operacje wielomaszynowe.Klasyfikacja, modele grafowe

Powszechnie stosowane modele matematyczne operacji wielomaszyno-wych zakładają użycie wszystkich potrzebnych maszyn przez cały czas wy-konywania określonej operacji. W praktyce tego typu założenie jest jednaknadmiarowe. Często występują sytuacje, w których niektóre maszyny wy-korzystywane są tylko w pewnych przedziałach czasowych, a nie w całymokresie wykonywania danej operacji. Długość tych przedziałów z reguły jestistotnie mniejsza niż czas wykonywania całej operacji. Co więcej, położeniatych przedziałów są względem siebie ustalone lub też mogą być zmienia-ne. Zastosowanie dla tego typu sytuacji, literaturowych modeli z jednocze-snym użyciem wszystkich maszyn powoduje nałożenie dodatkowych dośćsilnych (fikcyjnych) ograniczeń na rozwiązania dopuszczalne. Ograniczeniate, powodują sztuczne zapotrzebowanie na daną maszynę przez cały okreswykonywania danej operacji. Oznacza to, że podczas wykonywania ope-racji, maszyna teoretycznie potrzebna do jej realizacji w danej chwili niejest wykorzystywana, a nie może być użyta do wykonania operacji innegozadania. W konsekwencji dodatkowe fikcyjne ograniczenia, wynikające tyl-ko z zastosowanego modelu, a nie z sytuacji rzeczywistej, przyczyniają siębezpośrednio do wydłużenia harmonogramu, niezależnie od zastosowanychmetod rozwiązywania poszczególnych problemów. W rzeczywistości jednakopisany czas przestoju maszyny można zagospodarować.W rozdziale tym przedstawiam klasyfikację operacji wielomaszynowych,

która pozwoliła mi wyspecyfikować cztery grupy operacji. Następnie dlakażdej grupy podaję odpowiedni model grafowy, który jest szczególnie przy-dany przy konstrukcji algorytmów popraw oraz uzasadniam jego popraw-ność. Model dla jednej z tych grup jest już znany w literaturze, zaś trzy

25

Page 32: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

26 Rozdział 3. Operacje wielomaszynowe. Klasyfikacja, modele grafowe

pozostałe są moim dorobkiem. Dodatkowo podaję sposoby uwzględnieniaograniczeń technologicznych i kolejnościowych występujących pomiędzy po-szczególnymi operacjami. Rozważania ilustruję odpowiednimi przykładami.Oprócz modelu klasycznego, w którym operacja jest wykonywana jed-

nocześnie na wszystkich maszynach, rozpatruję trzy dodatkowe modele cha-rakteryzujące się kolejno tym, że (i) położenia przedziałów czasowych, wktórych operacja jest wykonywana na wymaganych maszynach są wzglę-dem siebie ustalone, (ii) położenia tych przedziałów nie są względem siebieustalone, ale muszą mieścić się w pewnym przedziale czasowym o zada-nej długości oraz (iii) tak jak w przypadku (ii) z tym, że na położenietych przedziałów nałożone są dodatkowe ograniczenia. Niestety efektemubocznym bardziej precyzyjnego modelowania rzeczywistości jest wzrostrozmiaru oraz złożoności modelu. Wydaje się jednak, że zniesienie ogra-niczeń narzuconych przez model klasyczny, umożliwi generowanie lepszychrozwiązań w stosunku do zaawansowanych algorytmów pracujących na mo-delu klasycznym, nawet przez mało dokładne, ale szybkie algorytmy kon-strukcyjne, nie mówiąc już o algorytmach popraw.

3.1 Parametry operacji wielomaszynowych

Operacja wielomaszynowa j jest częściowo określona przez maksymalnyczas tj przeznaczony do jej wykonania oraz mj elementowy zbiór maszynMj , na których jest ona wykonywana. Proces wykonywania operacji j namaszynie l będziemy nazywać czynnością i notować jako parę u = (j, l).Wszystkie czynności operacji j tworzą zbiór Nj = (j, l) : l ∈ Mj, mj =|Mj | = |Nj |.Czynność u ∈ Nj scharakteryzowana jest przez trzy wielkości: głowę

rau ­ 0, ciało pu > 0 i ogon qau ­ 0, które spełniają następujące zależności:

rau + pu + qau ¬ tj , u ∈ Nj (3.1)

oraz∃u∈Nj rau = 0, ∃u∈Nj qau = 0. (3.2)

Warunek (3.1) oznacza, że suma głowy, ciała i ogona każdej czynności da-nej operacji nie może być większa niż jej maksymalny czas wykonywania.Z kolei warunek (3.2) mówi, że dla danej operacji istnieje co najmniej jed-na czynność z zerową głową oraz co najmniej jedna czynność z zerowymogonem.Niech s(u) określa moment rozpoczęcia wykonywania czynności u ∈

Nj . Wtedy moment rozpoczęcia S(j) wykonywania operacji j definiujemy

Page 33: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

3.1. Parametry operacji wielomaszynowych 27

czas

l

pu rau

tj

C ( j )

Maszyny Mj

s ( u ) S ( j )

qau

u

Rysunek 3.1: Dopuszczalny harmonogram wykonywania operacji wieloma-szynowej j

następująco:S(j) = min

s(u)− rau : u ∈ Nj

, (3.3)

zaś moment zakończenia

C(j) = max

s(u) + pu + qau : u ∈ Nj

. (3.4)

Ciało pu oznacza czas wykonywania czynności u ∈ Nj operacji j. Gło-wa rau określa minimalne opóźnienie momentu s(u) rozpoczęcia wykony-wania czynności u w stosunku do momentu S(j) rozpoczęcia wykonywaniaoperacji j, tzn. s(u) ­ S(j) + rau. Symetrycznie, ogon qau określa mini-malne przyśpieszenie momentu c(u) = s(u) + pu zakończenia wykonywaniaczynności u w stosunku do momentu C(j) zakończenia operacji j, tzn.c(u) ¬ C(j)− qau, rys. 3.1.Uszeregowanie czynności u ∈ Nj , określone przez zestaw s(u), u ∈ Nj ,

jest dopuszczalne wtedy i tylko wtedy, gdy spełniony jest następujący wa-runek:

C(j)− S(j) ¬ tj ,

czyli

max

s(u) + pu + qau : u ∈ Nj

−min

s(u)− rau : u ∈ Nj

¬ tj , (3.5)

zwany dalej ograniczeniem operacyjnym 1. Warunek ten narzuca ograni-czenia na momenty s(u) rozpoczęcia wykonywania się czynności u ∈ Nj ,

1Spełnienie warunków s(u) ­ S(j) + rau, c(u) ¬ C(j) − qau wynika bezpośrednio zdefinicji S(j) oraz C(j).

Page 34: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

28 Rozdział 3. Operacje wielomaszynowe. Klasyfikacja, modele grafowe

wynikające z zadanego maksymalnego czasu tj przeznaczonego do wykona-nia operacji j oraz wartości głów rau, ciał pu i ogonów qau poszczególnychczynności tej operacji. Ograniczenia te, można także przedstawić w bardziej„bezpośredniej” postaci: s(u) + pu + qau ¬ s(v)− rav + tj , u, v ∈ Nj .Z powyższego opisu wynika, że operacja wielomaszynowa j jest w pełni

scharakteryzowana za pomocą 2 + 3mj parametrów: tj , Mj oraz rau, pu,qau, u ∈ Nj . Ustalenie momentów s(u) rozpoczęcia wykonywania poszcze-gólnych czynności pozwala na wyznaczenie momentu rozpoczęcia i zakoń-czenia wykonywania operacji j (zależności (3.3)-(3.4)) oraz na weryfikację,czy harmonogram wykonywania tej operacji jest dopuszczalny (warunek(3.5)), rys. 3.1.Nałożenie dodatkowych ograniczeń na parametry określające poszcze-

gólne czynności operacji pozwala wyspecyfikować typowe sytuacje wystę-pujące w praktyce przemysłowej, opisane w następnej sekcji.

3.2 Klasyfikacja operacji wielomaszynowych

Operacje wielomaszynowe można ogólnie podzielić na dwie klasy w za-leżności od tego czy położenia przedziałów czasowych, w których wykony-wane są poszczególne czynności są względem siebie ustalone czy też mogąbyć zmieniane. W pierwszym wypadku będziemy mówić o operacjach z nie-przesuwalnymi czynnościami, a w drugim - o operacjach z przesuwalnymiczynnościami.Klasa operacji z nieprzesuwalnymi czynnościami jest określona przez

nałożenie na parametry charakteryzujące operacje następującego warunku:

rau + pu + qau = tj , u ∈ Nj , (3.6)

Warunek (3.6) oznacza oczywiście, że przedziały czasowe, w których wyko-nywane są poszczególne czynności są względem siebie ustalone.Klasę operacji z nieprzesuwalnymi czynnościami możemy podzielić na

dwie grupy: (grupa I) operacje z czynnościami synchronicznymi oraz (grupaII) operacje z czynnościami asynchronicznymi. W pierwszym przypadkuzakłada się, że głowy i ogony każdej czynności są równe zero

rau = 0, qau = 0, u ∈ Nj , (3.7)

lub równoważnie, uwzględniając (3.6), że każda czynność trwa dokładnieprzez cały czas tj przeznaczony do wykonywania operacji

pu = tj , u ∈ Nj .

Page 35: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

3.3. Modele grafowe operacji wielomaszynowych 29

Mamy tu więc do czynienia z klasycznym model operacji wielomaszyno-wych. Przypadek drugi ma miejsce, gdy istnieje przynajmniej jedna czyn-ność z niezerową głową lub ogonem,

∃u∈Nj (rau > 0) ∨ (qau > 0), (3.8)

tzn. że nie wszystkie maszyny muszą być użyte przez cały czas tj , lubrównoważnie, czas wykonywania niektórych czynności jest mniejszy niż tj ,

∃u∈Nj pu < tj ,

Klasa operacji z przesuwalnymi czynnościami jest określona przez na-łożenie na parametry charakteryzujące operacje następującego warunku:

∃u∈Nj rau + pu + qau < tj . (3.9)

Warunek ten oznacza, że przedziały czasowe, w których wykonywane sąniektóre czynności mogą być względem siebie przesuwane, w przedziale ozadanej długości tj . Klasę tych operacji dzielimy na dwie grupy: (grupa III)operacje bez dodatkowych ograniczeń oraz (grupa IV) operacje z dodatko-wymi ograniczeniami. W pierwszym przypadku, położenia wspomnianychwyżej przedziałów czasowych nie są ograniczone przez głowy i ogony czyn-ności, czyli

rau = qau = 0, u ∈ Nj . (3.10)

Z kolei w drugim przypadku przynajmniej jedna z wartości głów lub ogonówjest dodatnia, co oznacza nałożenie dodatkowych ograniczeń na położenietych przedziałów,

∃u∈Nj (rau > 0) ∨ (qau > 0), (3.11)

Przedstawiona klasyfikacja operacji wielomaszynowych została zilustrowa-na na rys. 3.2. W dolnej jego części podano przykładowe dopuszczalne har-monogramy wykonywania czynności danej operacji j. Przyjęto, że operacjata potrzebuje do wykonania trzech maszyn Mj = 1, 2, 3.Pewnego komentarza wymaga jeszcze wprowadzone na początku klasy-

fikacji ograniczenie (3.2) mówiące, że istnieje przynajmniej jedna czynnośćo zerowej głowie i przynajmniej jedna czynność o zerowym ogonie. W konse-kwencji pominąłem sytuację taką, że rau > 0, u ∈ Nj lub qau > 0, u ∈ Nj .Zrobiłem to jednak świadomie, ponieważ sytuacja ta rzadko występuję wprocesach przemysłowych. Co więcej, można ją w prosty sposób sprowadzićdo grupy II lub IV (przez dodanie fikcyjnej czynności u′ na fikcyjnej ma-szynie); z definicji grup wynika, że nie może ona wystąpić dla grupy I i III.Parametry tej fikcyjnej czynności są następujące: rau′ = 0, qau′ = 0 orazpu′ = tj (grupa II) lub pu′ = minu∈Nj pu (grupa IV).

Page 36: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

30 Rozdział 3. Operacje wielomaszynowe. Klasyfikacja, modele grafowe

operacje wielomaszynowe

∀u∈Nj rau + pu + qau ¬ tj∃u∈Nj rau = 0, ∃u∈Nj qau = 0

czynności nieprzesuwalne

∀u∈Nj rau + pu + qau = tj

czynności przesuwalne

∃u∈Nj rau + pu + qau < tj

Grupa I

czynnościsynchroniczne

∀u∈Nj rau = 0∀u∈Nj qau = 0

Grupa II

czynnościasynchroniczne

∃u∈Nj rau > 0lub

∃u∈Nj qau > 0

Grupa III

brakograniczeń

∀u∈Nj rau = 0∀u∈Nj qau = 0

Grupa IV

dodatkoweograniczenia

∃u∈Nj rau > 0lub

∃u∈Nj qau > 0

@@

@R

@@

@R

@@

@R

1 2

3

czas czas czas czas

1 2

3

1 2

3

1 2

3

Rysunek 3.2: Klasyfikacja operacji wielomaszynowych

3.3 Modele grafowe operacji wielomaszynowych

W tej sekcji przedstawiam modele grafowe dla wszystkich czterech grupoperacji wielomaszynowych, wyspecyfikowanych poprzednio. Pozwolą onena zbudowanie permutacyjno–grafowego modelu dla problemów szeregowa-nia z operacjami wielomaszynowymi, przedstawionych w następnym roz-dziale. Modele te wyrażane w postaci odpowiedniego grafu GO(j) zostanąpodane dla operacji oznaczanej przez j. W szczególności dla wygody czytel-

Page 37: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

3.3. Modele grafowe operacji wielomaszynowych 31

nika, przedstawiony zostanie również, znany wcześniej z literatury, modeloperacji wielomaszynowej z nieprzesuwalnymi operacjami synchronicznymi(grupa I).W dowodach poprawności wprowadzanych modeli, jak i w dalszych roz-

działach tej pracy będę wykorzystywał pojęcie ograniczeń łukowych. NiechG = (W,A) oznacza dowolny skierowany graf, gdzie W jest zbiorem wierz-chołków, a A ⊂ W ×W – zbiorem łuków; każdy wierzchołek u ∈ W jestobciążony przez pu, zaś każdy łuk (u, v) ∈ A przez wu,v. Będę mówić, żezestaw liczb z(u) ­ 0, u ∈ W , spełnia ograniczenia łukowe grafu G, jeżelidla każdego łuku (u, v) ∈ A zachodzi

z(u) + pu + wu,v ¬ z(v). (3.12)

Formalnie rzecz biorąc, dla każdej z grup I, II, III można zastosowaćmodel grafowy operacji z grupy IV z odpowiednim obciążeniem węzłów iłuków. Jednakże model ten jest dość skomplikowany i dlatego starałem się,wykorzystując specyfikę poszczególnych grup operacji, zaproponować mo-dele stosunkowo prostsze; dotyczy to szczególnie grupy II. Prostota modelumierzona liczbą węzłów i łuków ma istotny pozytywny wpływ na ogólny(grafowy) model problemu, co w konsekwencji skutkuje dobrą jakością al-gorytmów popraw.Dla każdej z grup operacji przedstawiony jest jeden przykład. Prezento-

wane przykładowe operacje j mimo iż należą do różnych grup mają pewnecechy wspólne. Wymagają użycia trzech maszyn Mj = 1, 2, 3, czyli skła-dają się z trzech czynności Nj = (j, 1), (j, 2), (j, 3). Maksymalny czasprzeznaczony do ich wykonania wynosi tj = 5. Pozostałe parametry rau,pu, qau, u ∈ Nj (decydujące o przynależności do danej grupy) można od-czytać z prezentowanych harmonogramów.

3.3.1 Nieprzesuwalne czynności synchroniczne

Jest oczywiste, że mimo iż operacja j składa się z mj czynności moż-na ją modelować przez graf GO(j) składający się tylko z jednego węzła jobciążonego wartością tj . W grafie tym nie występują żadne łuki. Wynikato z faktu, że pu = tj dla każdego u ∈ Nj . Przykładowa operacja pokazanajest na rys. 3.3(i), a odpowiadający jej graf na rys. 3.3(ii).

3.3.2 Nieprzesuwalne czynności asynchroniczne

Na początek zauważmy, że dla rozważanej grupy operacji (grupa II)nie wszystkie parametry operacji j (tj , Mj oraz rau, pu, qau, u ∈ Nj) sąniezależne. Przykładowo dla zadanych wartości rau, pu, u ∈ Nj wielkości

Page 38: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

32 Rozdział 3. Operacje wielomaszynowe. Klasyfikacja, modele grafowe

Maszyny Mj

operacja j

1 2 3

j,1

j

operacja j

5

( i )

( ii )

czas 5

j,2

j,3

Rysunek 3.3: Operacja wielomaszynowa j z nieprzesuwalnymi czynnościamisynchronicznymi; (i) harmonogram, (ii) graf GO(j)

tj , qau, u ∈ Nj można (korzystając z (3.2), (3.6)) wyznaczyć następująco:tj = maxu∈Nj (rau+ pu), qau = tj − rau− pu. Stąd ograniczenie operacyjne(3.5) przyjmuje wtedy równoważną postać:

max

s(u)− rau : u ∈ Nj

−min

s(u)− rau : u ∈ Nj

¬ 0, (3.13)

czylis(u)− rau = const, u ∈ Nj . (3.14)

Korzystając dalej z założenia, że głowa przynajmniej jednej czynności ope-racji j jest równa zero, (3.2), otrzymujemy ostateczną, równoważną postaćograniczenia operacyjnego, (3.5):

s(u)− rau = min

s(v) : v ∈ Nj

, u ∈ Nj . (3.15)

Warto tu jeszcze zauważyć, że jeżeli ograniczenie powyższe jest spełnione,to moment rozpoczęcia oraz moment zakończenia operacji j jest równyodpowiednio S(j) = mins(u) : u ∈ Nj oraz C(j) = maxs(u) + pu : u ∈

Page 39: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

3.3. Modele grafowe operacji wielomaszynowych 33

Nj. Oznacza to, że ograniczenie operacyjne (3.15) narzuca, aby wszystkieczynności u operacji j rozpoczynały się dokładnie z opóźnieniem rau odmomentu rozpoczęcia tej operacji i co najmniej jedna z nich (z rau = 0)rozpoczęła się w tym momencie.Przejdę teraz do omówienia konstrukcji modelu grafowego operacji j.

Z powyższych rozważań wynika, m. in., że wystarczy aby model ten zale-żał tylko od zmiennych niezależnych, tzn. Mj , rau, pu, u ∈ Nj . Niech dlaoperacji j, zbiór czynności Nj = u1, u2, . . . , umj

2. Proponuję modelowaćoperację j za pomocą grafu GO(j) składającego się z mj = |Nj | wierz-chołków, reprezentujących poszczególne czynności u, u ∈ Nj , obciążonychodpowiednio przez pu oraz 2(mj − 1) obciążonych łuków:

(u1, u2), (u2, u1), ..., (umj−1, umj ), (umj , umj−1).

Łuk z wierzchołka u do wierzchołka v, obciążony jest wartością

wu,v = rav − rau − pu (3.16)

gdzie u = ua, v = ub, |a−b| = 1, a, b ∈ 1, . . . ,mj; wartość tego obciążeniamoże być zarówno dodatnia jak i ujemna, rys. 3.4.Jest oczywiste, że każdy cykl w grafie GO(j) ma długość zero; wystarczy

tutaj zauważyć, że długość cyklu przechodzącego przez wierzchołki u, v, ujest równa:

pu +wu,v + pv +wv,u = pu + (rav − rau − pu) + pv + (rau − rav − pv) = 0.

Przejdę teraz do uzasadnienia poprawności wprowadzonego modelu.Prawdziwa jest następująca własność.

Własność 3.1 Niech operacja j należy do grupy II, tzn. składa się z nie-przesuwalnych czynności asynchronicznych. Zestaw s(u) ­ 0, u ∈ Nj speł-nia ograniczenie operacyjne (3.15) wtedy i tylko wtedy, gdy spełnia ograni-czenia łukowe grafu GO(j).

Dowód. Dowód przeprowadzę w dwóch częściach.

Konieczność. Załóżmy, że zestaw liczb s(u) ­ 0, u ∈ Nj spełnia ogra-niczenie operacyjne (3.15). Rozważmy dowolne dwa „kolejne” wierzchołkiu = ua, v = ua+1 grafu GO(j), a ∈ 1, 2, . . . ,mj − 1. Z zależności (3.14)wynika, że

s(u)− ra(u) = s(v)− ra(v).

2Formalnie zbiór Nj powinien być przedstawiony w postaci uj,1, uj,2, . . . , uj,mj. Jed-nakże dla uproszczenia notacji indeks j będzie pomijany.

Page 40: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

34 Rozdział 3. Operacje wielomaszynowe. Klasyfikacja, modele grafowe

Maszyny Mj

1 2 3 j,3

j,1

-3 -2

-4 -1

j,3

j,2

3

2

3

operacja j

operacja j

( i )

( ii )

czas 5

j,2

j,1

Rysunek 3.4: Operacja wielomaszynowa j z nieprzesuwalnymi czynnościamiasynchronicznymi; (i) harmonogram, (ii) graf GO(j)

Stąd dla łuku (u, v) oraz łuku (v, u) otrzymujemy odpowiednio

s(u) + pu + wu,v = s(u) + rav − rau = s(v),

s(v) + pv + wv,u = s(v) + rau − rav = s(u),

Oznacza to, że dla tych łuków są spełnione ograniczenia łukowe, co kończydowód tej części własności.

Dostateczność. Przyjmijmy, że zestaw liczb s(u), u ∈ Nj spełnia ograni-czenia łukowe grafu GO(j). Wtedy z postaci wag (3.16) wynika, że dla

Page 41: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

3.3. Modele grafowe operacji wielomaszynowych 35

każdych dwóch kolejnych wierzchołków tego grafu u = ua, v = ua+1,a ∈ 1, 2, . . . ,mj − 1 zachodzi

s(u) + pu + wu,v = s(u) + rav − rau ¬ s(v),

s(v) + pu + wv,u = s(v) + rau − rav ¬ s(u).

Z powyższych nierówności bezpośrednio otrzymujemy

s(v) = s(u)− rau + rav, u = ua, v = ua+1, a = 1, . . . ,mj − 1,

co oznacza spełnienie przez zestaw liczb s(u), u ∈ Nj ograniczenia ope-racyjnego (3.14) i jego równoważnej postaci (3.15). Tym samym dowódwłasności został zakończony.

Przykładowy harmonogram operacji wielomaszynowej z nieprzesuwal-nymi czynnościami asynchronicznymi został pokazany na rys. 3.4(i). Odpo-wiadający tej operacji graf przedstawiono na rys. 3.4(ii). Zgodnie z rozwa-żaniami na początku tej sekcji, jako zmienne niezależne przyjęto Mj , rau,pu, u ∈ Nj . Stąd tj = max0+3, 1+2, 2+3 = 5 oraz qa(j,1) = 5−0−3 = 2,qa(j,2) = 5 − 1 − 2 = 2, qa(j,3) = 5 − 2 − 3 = 0. Graf GO(j) składa się ztrzech wierzchołków oraz czterech obciążonych łuków. Przykładowo obcią-żenie łuku (u, v) wynosi wu,v = rav − rau − pu = 1 − 0 − 3 = −2, gdzieu = (j, 1), v = (j, 2).

3.3.3 Przesuwalne czynności bez dodatkowych ograniczeń

W przypadku tej grupy (grupa III), nie można wyspecyfikować– tak jakto zrobiono dla grupy II – pewnych niezależnych parametrów operacji j; wszczególności nie można wyznaczyć tj w funkcji pu, u ∈ Nj . Oznacza tokonieczność wprowadzenia do modelu grafowego GO(j) operacji j dwóchfikcyjnych wierzchołków, tzn. wierzchołków nie reprezentujących żadnychczynności. Graf modelujący operację j składa się więc teraz z mj+2 wierz-chołków

Nj ∪

uSj , uCj

Wierzchołki u ∈ Nj reprezentują poszczególne czynności, wierzchołek uSj- moment rozpoczęcia, zaś wierzchołek uCj - moment zakończenia wykony-wania operacji. Te pierwsze obciążone są odpowiednio czasami wykonywa-nia czynności pu, u ∈ Nj , natomiast wierzchołki uSj i u

Cj są nieobciążone;

puSj= puC

j= 0. W grafie GO(j) jest 2mj nieobciążonych łuków

(uSj , u), (u, uCj ) : u ∈ Nj

Page 42: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

36 Rozdział 3. Operacje wielomaszynowe. Klasyfikacja, modele grafowe

(wuSj,u = wu,uC

j= 0, u ∈ Nj) oraz dodatkowo jeden łuk (uCj , u

Sj ) obciążony

wartością wuCj,uSj= −tj , rys. 3.5.

Łatwo zauważyć, że graf GO(j) nie posiada cykli o dodatniej długości.Rzeczywiście, długość cyklu przechodzącego przez wierzchołki uSj , u, u

Cj ,

uSj jest równa:

puSj+ wuS

j,u + pu + wu,uC

j+ puC

j+ wuC

j,uSj= 0 + 0 + pu + 0 + 0− tj ¬ 0.

Przejdźmy teraz do uzasadnienia poprawności wprowadzonego modelu. Wtym celu zauważmy, że ograniczenie operacyjne (3.5) dla operacji j ma teraznastępującą postać:

max

s(v) + pv : v ∈ Nj

−min

s(v) : v ∈ Nj

¬ tj . (3.17)

Podobnie jak dla grupy II, prawdziwa jest następująca własność.

Własność 3.2 Niech operacja j należy do grupy III, tzn. składa się zprzesuwalnych czynności bez żadnych dodatkowych ograniczeń.

(i) Jeżeli zestaw s(u) ­ 0, u ∈ Nj spełnia ograniczenie operacyjne (3.17),to zestaw ten powiększony o s(uSj ) = mins(v) : v ∈ Nj oraz s(u

Cj ) =

maxs(v) + pv : v ∈ Nj spełnia ograniczenia łukowe grafu GO(j).

(ii) Jeżeli zestaw s(u) ­ 0, u ∈ Nj ∪ uSj , uCj spełnia ograniczenia łukowe

grafu GO(j), to s(u), u ∈ Nj spełnia ograniczenie operacyjne (3.17).

Dowód. Dowód przeprowadzę niezależnie dla dwóch części (i) oraz (ii).

(i). Niech zestaw s(u) ­ 0, u ∈ Nj spełnia ograniczenie operacyjne (3.5)oraz wielkości s(uSj ), s(u

Cj ) są określone, tak jak w założeniach dowodzonej

własności. Z definicji wielkości s(uSj ), s(uCj ) oraz z zerowego obciążenia

węzłów uSj , uCj i łuków (u

Sj , u), (u, u

Cj ), u ∈ Nj wynika, że

s(uSj ) + puSj+ wuS

j,u = min

s(v) : v ∈ Nj

¬ s(u), u ∈ Nj ,

s(u)+pu+wu,uCj= s(u)+pu ¬ max

s(v)+pv : v ∈ Nj

= s(uCj ), u ∈ Nj .

Oznacza to, że ograniczenia łukowe są spełnione dla łuków (uSj , u), u ∈ Njoraz (u, uCj ), u ∈ Nj . Pozostaje do pokazania, że ograniczenie łukowe jestspełnione także dla łuku (uCj , u

Sj ). Z obciążenia tego łuku wartością −tj

oraz nierówności (3.17) wynika, że

s(uCj ) + puCj+ wuC

j,uSj= max

s(v) + pv : v ∈ Nj

− tj

¬ min

s(v) : v ∈ Nj

= s(uSj ),

Page 43: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

3.3. Modele grafowe operacji wielomaszynowych 37

Maszyny Mj

1 2 3

j,1

j,3

j,2

3

2

3

operacja j

operacja j

( i )

( ii )

czas 5

s j u

c j u

-5

j,2

j,3

j,1

Rysunek 3.5: Operacja wielomaszynowa j z przesuwalnymi czynnościamibez dodatkowych ograniczeń; (i) harmonogram, (ii) graf GO(j)

co kończy dowód pierwszej części własności.

(ii) Przyjmijmy, że zestaw s(u), u ∈ Nj ∪ uSj , uCj spełnia ograniczenia

łukowe grafu GO(j). Wynika stąd, że

s(uSj ) = s(uSj ) + puS

j+ wuS

j,u ¬ s(u), u ∈ Nj (3.18)

s(u) + pu = s(u) + pu + wu,uCj¬ s(uCj ), u ∈ Nj (3.19)

Page 44: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

38 Rozdział 3. Operacje wielomaszynowe. Klasyfikacja, modele grafowe

s(uCj )− tj = s(uCj ) + puC

j+ wuC

j,uSj¬ s(uSj ) (3.20)

Z nierówności 3.18 oraz 3.19 otrzymujemy odpowiednio s(uSj ) ¬ mins(u) :u ∈ Nj oraz s(uCj ) ­ maxs(u)+pu : u ∈ Nj. Uwzględniając te zależnościw nierówności 3.20 otrzymamy bezpośrednio nierówność 3.17. Tym samymdowód własności został zakończony.

Podobnie jak poprzednim rozdziale, do zilustrowania modelu operacjiwielomaszynowej z przesuwalnymi czynnościami bez dodatkowych ograni-czeń posłużymy się przykładem. Na rys. 3.5(i) przedstawiono przykładowyharmonogram; każda czynność może być dowolnie przesuwana w przedziale[0, 5]. Odpowiadający tej operacji graf GO(j) pokazano na rys. 3.5(ii). Graften składa się z pięciu wierzchołków (trzy obciążone i dwa nieobciążone)oraz siedmiu łuków (tylko jeden jest obciążony).

3.3.4 Przesuwalne czynności z dodatkowymi ograniczeniami

Graf GO(j) reprezentujący operację z dodatkowymi ograniczeniami(grupa IV) ma taką samą strukturę jak graf dla operacji z III grupy. Je-dyna różnica polega na tym, że łuki (uSj , u), u ∈ Nj , są obciążone odpo-wiednio wartościami wuS

j,u = rau, zaś łuki (u, u

Cj ), u ∈ Nj – wartościami

wu,uCj= qau, rys. 3.6

Podobnie jak poprzednio, łatwo zauważyć, że graf GO(j) nie posiada cy-kli o dodatniej długości. Rzeczywiście, długość cyklu przechodzącego przezwierzchołki uSj , u, u

Cj , u

Sj jest równa:

puSj+wuS

j,u+ pu+wu,uC

j+ puC

j+wuC

j,uSj= 0+ rau+ pu+ qau+0− tj ¬ 0.

Przejdę teraz do uzasadnienia poprawności wprowadzonego modelu. Po-dobnie jak dla grupy II oraz III, prawdziwa jest następująca własność.

Własność 3.3 Niech operacja j należy do grupy IV, tzn. składa się zprzesuwalnych czynności z dodatkowymi ograniczeniami.

(i) Jeżeli zestaw s(u) ­ 0, u ∈ Nj spełnia ograniczenie operacyjne (3.5), tozestaw ten powiększony o s(uSj ) = mins(v) − rav : v ∈ Nj oraz s(u

Cj ) =

maxs(v) + pv + qav : v ∈ Nj spełnia ograniczenia łukowe grafu GO(j).

(ii) Jeżeli zestaw s(u) ­ 0, u ∈ Nj ∪ uSj , uCj spełnia ograniczenia łukowe

grafu GO(j), to s(u), u ∈ Nj spełnia ograniczenie operacyjne (3.5).

Dowód powyższej własności jest bardzo podobny do dowodu własności3.2 i dlatego zostanie pominięty.

Page 45: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

3.3. Modele grafowe operacji wielomaszynowych 39

Maszyny Mj

1 2 3

j,1

j,3

j,2

3

2

3

operacja j

operacja j

( i )

( ii )

czas 5

s j u

c j u

-5

1

1

0

1

0

0

j,2

j,3

j,1

Rysunek 3.6: Operacja wielomaszynowa j z przesuwalnymi czynnościami zdodatkowymi ograniczeniami; (i) harmonogram, (ii) graf GO(j)

Przykład ilustrujący opisywany model jest rozbudowaną wersją przy-kładu dla operacji z grupy III. Wartości głów oraz ogonów wynoszą odpo-wiednio raj,1 = 1, raj,2 = 1, raj,3 = 0 oraz qaj,1 = 1, qaj,2 = 0, qaj,3 = 0.Rysunek 3.6(i) przedstawia przykładowy harmonogram; moment rozpoczę-cia czynności (j, 1) nie może być zmieniany, podczas gdy moment rozpo-częcia czynności (j, 2) może być zmieniany w przedziale [1, 3], zaś czynność(j, 3) – w przedziale [0, 2]. Odpowiadający operacji j graf GO(j) pokazano

Page 46: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

40 Rozdział 3. Operacje wielomaszynowe. Klasyfikacja, modele grafowe

na rys. 3.6(ii). Graf ten składa się z pięciu wierzchołków (trzy obciążone idwa nieobciążone) oraz siedmiu łuków (tylko trzy są obciążone).

3.4 Modele ograniczeń występujących pomiędzyoperacjami

Ograniczenia czasowe występujące w problemach szeregowania pomię-dzy operacjami wykorzystującymi tylko jedną maszynę (operacje jednoma-szynowe) można podzielić na dwa typy: ograniczenia technologiczne orazograniczenia kolejnościowe. Ograniczenia technologiczne wynikają z tech-nologii procesu produkcyjnego. Przykładowo w problemach gniazdowych,każde zadanie jest określone przez pewną zadaną sekwencję operacji, któ-re należy wykonywać zgodnie z tą sekwencją. Powoduje to, że dla dwóchkolejnych operacji j, k danego zadania, w dopuszczalnym harmonogramiezachodzi C(j) ¬ S(k); nierówność ta jest nazywana ograniczeniem techno-logicznym. Z kolei ograniczenia kolejnościowe określają kolejność wykony-wania operacji na maszynach. Kolejność ta nie jest ustalona z góry (jak po-przednio), ale podlega wyborowi; jest zmienną decyzyjną. Przykładowo, dladwóch bezpośrednio po sobie wykonywanych operacji j, k na pewnej ma-szynie, w dopuszczalnym harmonogramie powinno zachodzić: C(j) ¬ S(k);nierówność ta jest nazywana ograniczeniem kolejnościowym.Trochę inna sytuacja występuje w przypadku operacji wielomaszyno-

wych. Wtedy ograniczenia technologiczne, tak jak poprzednio, dotyczą ope-racji, zaś ograniczenia kolejnościowe – czynności. W kolejnych dwóch sek-cjach opiszę sposób modelowania tych ograniczeń dla pary operacji (j, k)(ograniczenia technologiczne) oraz pary czynności (u, v) (ograniczenia kolej-nościowe). W przypadku modelowania ograniczeń technologicznych, ogólnieoperacja j może należeć do innej grupy niż operacja k. Jednakże, dla uprosz-czenia rozważań będziemy zakładać, że obie te operacje należą do jednejgrupy (I,II,III lub IV). W przypadku ograniczeń kolejnościowych jakiekol-wiek założenie upraszczające dotyczące czynności u, v nie jest potrzebne.

3.4.1 Ograniczenia technologiczne

Ograniczenie technologiczne dla pary operacji (j, k) jest modelowaneprzez jeden nieobciążony łuk, zwany łukiem technologicznym. Jego postać,a dokładniej wierzchołki, które on łączy, zależą od grupy do jakiej należąoperacje j, k.W przypadku grupy I, łuk technologiczny łączy wierzchołek j z wierz-

chołkiem k. W przypadku grupy III lub grupy IV musimy zapewnić aby

Page 47: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

3.4. Modelowanie ograniczeń pomiędzy operacjami 41

odpowiednio

max

s(u) + pu : u ∈ Nj

¬ min

s(u) : u ∈ Nk

(3.21)

lub

max

s(u) + pu + qau : u ∈ Nj

¬ min

s(u)− rau : u ∈ Nk

. (3.22)

Oznacza to, że w obu tych przypadkach wystarczy wprowadzić łuk (uCj , uSk )

łączący wierzchołek uCj z wierzchołkiem uSk .

Brak - w przypadku grupy II - wierzchołków reprezentujących „bezpo-średnio” moment rozpoczęcia i moment zakończenia wykonywania operacji,powoduje, iż sposób określenia węzłów łączonych łukiem technologicznymjest bardziej skomplikowany. Niech

u−i = argmin

rau : u ∈ Ni

, u+i = argmax

rau+pu : u ∈ Ni

, (3.23)

oznacza odpowiednio czynność, która rozpoczyna się najwcześniej orazczynność, która kończy się najpóźniej wśród wszystkich czynności Ni ope-racji i. (Z ograniczeń (3.2) i (3.6) wynika, że rau−

i= 0 oraz qau+

i= 0,

Oznacza to, że należy zapewnić aby

s(u+j ) + pu+j¬ s(u−k ). (3.24)

Stąd wynika, że łuk technologiczny dla grupy II powinien łączyć wierzchołeku+j z wierzchołkiem u

−k .

Przykład ilustrujący metodologię wprowadzania łuku technologicznegodla operacji z grupy II przedstawiono na rys. 3.7. Operacje j, k są wykony-wane odpowiednio na maszynach Mj = 1, 2, 3, Mk = 1, 2, 4; wielkościpu, rau można odczytać z harmonogramu, rys. 3.7(i). Stąd u+j = (j, 3) orazu−k = (k, 2), czyli łuk technologiczny ma postać ((j, 3), (k, 2)).

3.4.2 Ograniczenia kolejnościowe

Sposób modelowania ograniczeń kolejnościowych dla pary czynności niezależy (w odróżnieniu od ograniczeń technologicznych) od grupy do jakiejnależą operacje zawierające te czynności. Ograniczenie kolejnościowe dlapary czynności (u, v) oznacza, że

s(u) + pu ¬ s(v). (3.25)

Może ono być reprezentowane przez jeden nieobciążony łuk łączący wierz-chołek u z wierzchołkiem v. Oczywiście w przypadku czynności operacjiz grupy I, wierzchołek reprezentujący tą czynność jest równoważny wierz-chołkowi reprezentującemu operację.

Page 48: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

42 Rozdział 3. Operacje wielomaszynowe. Klasyfikacja, modele grafowe

czas

Maszyny Mj

łuki:

operacyjne

technologiczne

operacja j operacja k

1 2 3 4

j,1

j,1

-3 -2

-4 -1

-1

-3 -2

j,3

k,1

j,2 k,2

k,4

-5

operacja j operacja k

3

2

3 2

3

3

S ( j ) C ( j ) = S ( k )

C ( k )

( i )

( ii )

j,2

j,3

k,4

k,2

k,1

Rysunek 3.7: Ograniczenie technologiczne dla operacji j, k z grupy II; (i)harmonogram, (ii) graf GO(j), GO(k) oraz łuk technologiczny

Page 49: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Rozdział 4

Problemy gniazdowe zoperacjami wielomaszy-nowymi. Modele grafowe

Modele grafowe operacji wielomaszynowych przedstawione w rozdzia-le 3 są podstawą do budowania modeli opisujących różnego rodzaju procesyprzemysłowe. Na ich bazie można modelować np. problemy przepływowe,otwarte, gniazdowe, w których poszczególne operacje wielomaszynowe na-leżą do różnych grup; oczywiście wszystkie te problemy są NP-trudne,ponieważ stanowią uogólnienia odpowiednich NP-trudnych problemów zoperacjami jednomaszynowymi. Z uwagi na fakt, że problemy gniazdowesą najbardziej ogólne, w bieżącym rozdziale ograniczę się tylko do podaniamodeli dla tych problemów z operacjami należącymi do grup II–IV 1. Będęzakładać, że wszystkie operacje należą do jednej grupy. To założenie czyniętylko dla uproszczenia rozważań a nie z przyczyn merytorycznych; odpo-wiednie uogólnienia są dość oczywiste. Jakość uszeregowania jest ocenianaza pomocą jednego z najczęściej stosowanych w praktyce kryterium, jakimjest moment wykonania Cmax wszystkich operacji.We wszystkich rozważanych problemach każda czynność u jest przypi-

sana do konkretnej maszyny, na której jest ona wykonywana; maszynę tąoznaczamy przez µ(u). Przypisanie to pozwala rozbić zbiór wszystkich czyn-ności N =

j∈ONj na m rozłącznych zbiorów Nl = u ∈ N : µ(u) = l,

l ∈M , określających czynności wykonywane na poszczególnych maszynach;∑

l∈M nl = n, gdzie nl = |N l|, l ∈ M oraz n = |N |. W konsekwencji w

prezentowanych modelach, jako zmienną decyzyjną można przyjąć zestaw

1Jak już wielokrotnie wspominałem modele i algorytmy dla problemów gniazdowychz operacjami z grupy I są znane w literaturze.

43

Page 50: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

44 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

permutacji π = (π1, π2, . . . , πm), gdzie πl jest permutacją nl - elementowegozbioru N l, l ∈M . Bazując na takiej zmiennej decyzyjnej, dla każdego pre-zentowanego problemu podany jest model permutacyjno-grafowy. Modele techarakteryzują się tym, że wartość minimalizowanego kryterium jest równawartości najdłuższej drogi w pewnym grafie G(π) skojarzonym z wybranymzestawem permutacji, jeżeli tylko graf ten nie ma cykli dodatniej długości.Dla każdego opisywanego problemu prezentuje się prosty przykład. Każ-

dy z przykładów zawiera kompletne dane problemu oraz pewne wybranerozwiązanie przedstawione w postaci harmonogramu. Dla tego rozwiązaniatworzony jest zestaw permutacji π oraz odpowiadający mu graf G(π).

4.1 Nieprzesuwalne czynności asynchroniczne –jeden sposób wykonywania

W sekcji tej przedstawiony zostanie problem (oraz jego model permuta-cyjno-grafowy) będący głównym obiektem badań w dalszej części pracy.Jest to problem gniazdowy z wielomaszynowymi operacjami z grupy II(nieprzesuwalne czynności asynchroniczne).

4.1.1 Sformułowanie problemu

Dany jest zbiór maszyn M = 1, . . . ,m, zbiór zadań J = 1, . . . , roraz zbiór operacji O = 1, . . . , o. Zadanie k ∈ J składa się z ciągu ok ­ 1operacji indeksowanych kolejno przez jk + 1, jk + 2, . . . , jk + ok, gdzie jk =∑k−1i=1 oi. Wykonanie zadania polega na wykonaniu, w powyższej kolejności(ograniczenia technologiczne), wszystkich jego operacji. Każda operacja j ∈O jest z grupy II, która została szczegółowo opisana w rozdziale 3.1. Tutajograniczę się tylko do przypomnienia, że operacja j jest realizowana namj = |Mj | elementowym zbiorze maszyn Mj i składa się z czynności u ∈Nj = (j, l) : l ∈ Mj. Każda czynność u = (j, l) jest scharakteryzowanaprzez głowę rau i ciało pu oraz przynajmniej jedna z głów rau, u ∈ Njjest równa zero. Wykonanie operacji polega na wykonaniu wszystkich jejczynności, zgodnie z ograniczeniem operacyjnym (3.15).Podobnie jak w klasycznym problemie gniazdowym przyjmuje się, że: (i)

żadna z maszyn nie może wykonywać jednocześnie kilku czynności oraz (ii)wykonywanie czynności na maszynie nie może być przerywane. Uszeregowa-nie jest definiowane przez zestaw s(u) ­ 0, u ∈ N , momentów rozpoczęciawykonywania poszczególnych czynności. Uszeregowanie jest dopuszczalne,jeżeli zestaw ten spełnia ograniczenia (i), (ii), ograniczenia technologiczneoraz ograniczenia operacyjne (3.15). Problem polega na znalezieniu uszere-

Page 51: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.1. Nieprzesuwalne czynności asynchroniczne – jeden sposób. . . 45

gowania dopuszczalnego, minimalizującego moment wykonania wszystkichczynności maxu∈N c(u), gdzie c(u) = s(u) + pu.

4.1.2 Model matematyczny i reprezentacja grafowa

Prezentowany poniżej model permutacyjno–grafowy zbudowany jest nabazie modelu wielomaszynowej operacji z nieprzesuwalnymi czynnościamiasynchronicznymi, przedstawionej w rozdziale 3.3.2, oraz na bazie idei mo-delowania ograniczeń technologicznych i kolejnościowych, przedstawionej wrozdziale 3.4.Jak już wspominałem, jako zmienną decyzyjną przyjmujemy zestaw per-

mutacji π = (π1, . . . , πm), gdzie πl = (πl(1), . . . , πl(nl)) jest permutacjązbioru czynności N l wykonywanych na maszynie l ∈ M ; zbiór wszystkichtakich zestawów, zwanych krótko permutacjami, oznaczamy przez Π. Łatwozauważyć, że dla danej permutacji π ∈ Π, uszeregowanie s(u) ­ 0, u ∈ Njest uszeregowaniem dopuszczalnym wtedy i tylko wtedy, gdy

s(u+j−1) + pu+j−1¬ s(u−j ), jk + 2 ¬ j ¬ jk + ok, k ∈ J, (4.1)

s(πl(i− 1)) + pπl(i−1) ¬ s(πl(i)), 2 ¬ i ¬ |πl| = nl, l ∈M, (4.2)

s(u)− rau = min

s(v) : v ∈ Nj

u ∈ Nj , j ∈ O. (4.3)

Warunek (4.1) określa ograniczenia technologiczne omówione w rozdziale3.4.1 i przedstawione wzorem (3.24). Warunek (4.2) wynika z przyjętej ko-lejności wykonywania czynności na poszczególnych maszynach (ogranicze-nia kolejnościowe), (3.21). Na koniec, warunek (4.3) określa ograniczeniaoperacyjne przedstawione w (3.15).Przeprowadzimy teraz analizę powyższej równoważności. Po pierwsze,

wynika z niej, że jeżeli dla danej permutacji π układ nierówności (4.1)-(4.3)jest sprzeczny, to nie istnieje uszeregowanie dopuszczalne dla permutacji π(mówiąc precyzyjniej nie istnieje uszeregowanie dopuszczalne zgodne z π 2).Po drugie, jeżeli układ ten nie jest sprzeczny, to każde uszeregowanie s(u),u ∈ N , które go spełnia jest uszeregowaniem dopuszczalnym. W klasietych uszeregowań wyspecyfikujmy tzw. uszeregowanie pseudo-aktywne 3.Ostatecznie badany przez nas problem polega na znalezieniu takiej permu-tacji π∗ ∈ Π, dla której: (i) układ nierówności (4.1)-(4.3) nie jest sprzeczny

2Uszeregowanie s(u), u ∈ N jest zgodne z π, jeżeli s(πl(i−1)) ¬ s(πl(i)), 2 ¬ i ¬ |πl|,l ∈M .3Uszeregowanie jest pseudo-aktywne, jeżeli nie można przyspieszyć momentu rozpo-

częcia żadnej czynności, tak aby (i) nie zmienić kolejności wykonywania czynności naposzczególnych maszynach oraz (ii) uszeregowanie pozostało dalej dopuszczalne.

Page 52: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

46 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

oraz (ii) moment zakończenia wszystkich czynności maxu∈N sa(u)+ pu jestjak najmniejszy, gdzie sa(u) jest uszeregowaniem pseudo-aktywnym z klasyuszeregowań zgodnych z π∗ i spełniających ten układ nierówności.Przystąpimy teraz do sformułowania modelu permutacyjno-grafowego.

W tym celu dla permutacji π ∈ Π definiujemy graf

G(π) =(

N, ET ∪ EO ∪ EK(π))

(4.4)

ze zbiorem obciążonych wierzchołków N reprezentujących poszczególneczynności, zbiorem nieobciążonych łuków technologicznych (wynikającychz kolejności wykonywania operacji w poszczególnych zadaniach)

ET =⋃

k∈J

jk+ok⋃

j=jk+2

(u+j−1, u−j )

, (4.5)

nieobciążonych łuków kolejnościowych (wynikających z permutacji π)

EK(π) =⋃

l∈M

nl⋃

i=2

(πl(i− 1), πl(i))

(4.6)

oraz zbiorem obciążonych łuków operacyjnych (odzwierciedlających usta-lone względne położenie czynności poszczególnych operacji)

EO =⋃

j∈O

mj⋃

i=2

(uj,i−1, uj,i), (uj,i, uj,i−1)

; (4.7)

przyjmujemy, że Nj = uj,1, uj,2, . . . uj,mj, j ∈ O. Wierzchołek reprezen-tujący czynność u ∈ N obciążony jest wartością pu. Łuki operacyjne po-szczególnych operacji obciążone są odpowiednimi wartościami, określonymiwzorem (3.16). Łuki technologiczne i kolejnościowe ET ∪EK(π) zawsze łą-czą czynności różnych operacji zaś łuki operacyjne EO – różne czynności tejsamej operacji, więc zbiory te są rozłączne, (ET ∪EK(π))∩EO = ∅. Pozwa-la to na bardzo „przejrzyste” określenie wartości obciążenia wu,v każdegołuku (u, v) w grafie G(π),

wu,v =

rav − rau − pu, (u, v) ∈ EO

0, (u, v) ∈ ET ∪ EK(π).(4.8)

Łatwo zauważyć, że graf G(π) posiada n wierzchołków oraz o − r łukówtechnologicznych, 2(n − o) – luków operacyjnych, n −m – łuków kolejno-ściowych; łącznie 3n− o−m− r łuków.

Page 53: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.1. Nieprzesuwalne czynności asynchroniczne – jeden sposób. . . 47

Z definicji grafu G(π) wynika, że zawiera on cykle; długość tych cyklimoże być dowolna (ujemna, zerowa lub dodatnia). W przypadku kiedy wgrafie G(π) nie ma cykli o dodatniej długości, niech rπ(u) (qπ(u)) oznaczawartość najdłuższej drogi dochodzącej do (wychodzącej z) wierzchołka u,łącznie z wagą tego wierzchołka 4. Prawdziwe jest następujące twierdzenie.

Twierdzenie 4.1 Niech permutacja π ∈ Π oraz wszystkie operacje należądo grupy II.

(i) Jeżeli w grafie G(π) nie ma cykli o dodatniej długości, to uszeregowanies(u) = rπ(u) − pu, u ∈ N jest pseudo-aktywnym uszeregowaniem dopusz-czalnym zgodnym z permutacją π.

(ii) Jeżeli w grafie G(π) występuje cykl o dodatniej długości, to nie istniejeżadne uszeregowanie dopuszczalne zgodne z permutacją π.

Dowód. Dowód przeprowadzimy niezależnie dla dwóch części (i) oraz (ii).

(i). Przyjmijmy, że w grafie G(π) nie ma cykli o dodatniej długości i roz-ważmy uszeregowanie s(u) = rπ(u) − pu, u ∈ N . Dalej pokażemy, że usze-regowanie to spełnia warunki (4.1)–(4.3). Z faktu, że s(u) jest wartościąnajdłuższej drogi dochodzącej do wierzchołka u (bez jego wagi) wynika, żes(u), u ∈ N spełnia ograniczenia łukowe dla grafu G(π)5. W szczególnościoznacza to, że zestaw s(u), u ∈ Nj spełnia ograniczenia łukowe grafuGO(j),j ∈ O. Stąd i z własności 3.1 wynika, iż spełnione są także ograniczeniaoperacyjne (3.15), czyli warunki (4.3). Co więcej, powyższy fakt oraz po-stać łuków technologicznych i kolejnościowych grafu G(π) implikuje praw-dziwość warunków (4.1), (4.2). Tak więc uszeregowanie s(u) = rπ(u)− pu,u ∈ N jest uszeregowaniem dopuszczalnym oraz jest zgodne z permutacją πJednocześnie uszeregowanie to jest pseudo-aktywne, ponieważ dla każdegołuku (v1, v2) łączącego dwa kolejne wierzchołki v1, v2 należące do najdłuż-szej drogi dochodzącej do węzła u zachodzi s(v1) + pv1 + wv1,v2 = s(v2).Kończy to dowód pierwszej części twierdzenia.

(ii) Dowód tej części przeprowadzimy metodą nie wprost. Załóżmy, że: (A)graf G(π) zawiera cykl (u1, u2, . . . , uk, u1), ui ∈ N , i = 1, . . . , k o dodatniejdługości x > 0 oraz (B) istnieje pewne uszeregowanie dopuszczalne s(u),

4Zauważmy, że pojęcia: „długość najdłuższej drogi dochodzącej do pewnego wierz-chołka”, „długość najdłuższej drogi wychodzącej z pewnego wierzchołka” oraz „długośćnajdłuższej drogi” w dowolnym grafie skierowanym są dobrze określone i nie wymagająpodawania: w pierwszym wypadku wierzchołka początkowego, w drugim – wierzchołkakońcowego, zaś w trzecim – wierzchołka początkowego i końcowego.5Dla definicji tego pojęcia patrz (3.12).

Page 54: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

48 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

u ∈ N zgodne z permutacją π. Z założenia (A) wynika, że

x =k∑

i=1

(pui + wui,ui+1), (4.9)

gdzie uk+1 = u1. Z kolei założenie (B) implikuje, iż uszeregowanie s(u),u ∈ N spełnia: (a) ograniczenia technologiczne (4.1), (b) kolejnościowe(4.2) oraz (c) operacyjne (4.3). Z (c) oraz z własności 3.1 wynika jednak, iżs(u), u ∈ Nj spełnia również ograniczenia łukowe grafu GO(j), j ∈ O (tzn.ograniczenia łukowe dla łuków EO). Jednocześnie z (a) oraz (b) otrzymu-jemy, iż odpowiednie elementy s(u), u ∈ N spełniają ograniczenia łukowedla łuków EK(π) ∪ ET . Tak więc zestaw s(u), u ∈ N spełnia ograniczeniałukowe dla grafu G(π). Oznacza to jednak, że jeżeli każdemu wierzchołkowiu tego grafu przypiszemy wartość s(u), to zachodzi

s(u) + pu + wu,v ¬ s(v), (u, v) ∈ ET ∪ EO ∪ EK(π), (4.10)

gdzie wielkości wu,v są określone wzorem (4.8). Stosując teraz nierówności(4.10) do kolejnych par wierzchołków cyklu (u1, u2, . . . , uk, u1) otrzymamys(ui) + pui +wui,ui+1 ¬ s(ui+1), i = 1, . . . , k, . Stąd oraz z (4.9) wynika, że

s(u1) +k∑

i=1

(pui + wui,ui+1) = s(u1) + x ¬ s(u1) (4.11)

czyli x ¬ 0. Otrzymana sprzeczność z założeniem (A) kończy dowód twier-dzenia.

Zdefiniowany graf G(π) oraz twierdzenie 4.1 pozwala na proste sformu-łowanie badanego problemu. Niech Cmax(π) oznacza długość najdłuższejdrogi (ścieżka krytyczna) w grafie G(π) dla permutacji π ∈ Π 6. Rozważanyproblem polega na znalezieniu takiej permutacji π∗ ∈ Π, że odpowiadają-cy jej graf G(π∗) nie ma cykli o dodatniej wartości oraz ma najmniejsządługość ścieżki krytycznej Cmax(π∗).Przedstawiony model permutacyjno-grafowy zilustruję następującym

przykładem:

Przykład 4.1 W systemie produkcyjnym zawierającym m = 3 maszynyM = 1, 2, 3 należy wykonać r = 2 zadania; J = 1, 2. Zadanie pierwszeskłada się z sekwencji o1 = 2 operacji oznaczanych przez 1, 2, zaś zadaniedrugie – także z sekwencji o2 = 2 operacji oznaczonych przez 3, 4; j1 = 0,

6Będziemy przyjmować, że w przypadku gdy graf G(π) posiada cykle o dodatniejdługości, to Cmax(π) =∞.

Page 55: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.1. Nieprzesuwalne czynności asynchroniczne – jeden sposób. . . 49

Tabela 4.1: Dane przykładu problemu z operacjami z grupy II

zadanie 1 zadanie 2

maszyna operacja 1 operacja 2 operacja 3 operacja 4

l ra(1,l) p(1,l) ra(2,l) p(2,l) ra(3,l) p(3,l) ra(4,l) p(4,l)

1 2 2 – – 0 3 0 6

2 0 2 2 6 3 1 – –

3 – – 0 3 – – 1 2

j2 = 2, O = 1, 2, 3, 4 oraz o = 4. Operacje te mają być wykonywaneodpowiednio na maszynach: M1 = 1, 2, M2 = 2, 3, M3 = 1, 2 orazM4 = 1, 3; m1 = m2 = m3 = m4 = 2. Łącznie w systemie należy wyko-nać n = 8 czynności. Zgodnie z przyjętą notacją kolejne operacje 1, 2, 3, 4składają się z następujących zbiorów czynności N1 = (1, 1), (1, 2), N2 =(2, 2), (2, 3), N3 = (3, 1), (3, 2), N4 = (4, 1), (4, 3); N =

⋃4j=1Nj .

Wartości głów rau i ciał pu dla poszczególnych czynności u ∈ N przed-stawiono w tabeli 4.1. Podane przyporządkowanie czynności do poszcze-gólnych maszyn pozwala podzielić zbiór N na m = 3 rozłączne podzbioryN1 = (1, 1), (3, 1), (4, 1), N 2 = (1, 2), (2, 2), (3, 2), N 3 = (2, 3), (4, 3);n1 = n2 = 3, n3 = 2.

Rozważmy permutację π = (π1, π2, π3), gdzie π1 = ((3, 1), (1, 1), (4, 1)),π2 = ((1, 2), (3, 2), (2, 2)), π3 = ((2, 3), (4, 3)). Na rys. 4.1(i) przedstawio-no pseudo-aktywne uszeregowanie dopuszczalne s(u), u ∈ N zgodne z tąpermutacją. Moment zakończenia wszystkich czynności Cmax(π) = 13. Zkolei na rys. 4.1(ii) przedstawiono graf G(π). Graf ten składa się z n = 8węzłów oraz 3n − o − m − r = 3 ∗ 8 − 4 − 3 − 2 = 15 łuków. Dokład-niej, zawiera on 2(n − o) = 2(8 − 4) = 8 łuków operacyjnych (po dwana każdą operację), o − r = 4 − 2 = 2 łuki technologiczne (pomiędzyoperacjami poszczególnych zadań) oraz n − m = 8 − 3 = 5 łuków kolej-nościowych (dwa na maszynie 1 i 2 oraz jeden na maszynie 3). Łuki ope-racyjne, technologiczne oraz kolejnościowe zaznaczono odpowiednio liniącienką, linią grubą oraz linią przerywaną. Obciążenie wierzchołków i łu-ków opisane jest liczbą umieszczoną nad danym wierzchołkiem lub łukiem,zerowe obciążenie łuków technologicznych i kolejnościowych nie było zazna-czane. Łatwo sprawdzić, że graf G(π) nie zawiera cykli o dodatniej długościoraz s(u) = rπ(u) − pu, u ∈ N . Przykładowo s((4, 1)) = 7, podczas gdyrπ((4, 1)) = p(3,1) + w(3,1),(1,1) + p(1,1) + w(1,1),(2,3) + p(2,3) + w(2,3),(4,3) +p(4,3) + w(4,3),(4,1) + p(4,1) = 3 + 0 + 2 + 0 + 3 + 0 + 2 − 3 + 5 = 12, czyli

Page 56: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

50 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

1 2 3

1,1

2,2 1,2

4,3

3,1

3,2

4,1

0 -4 -1 -8

1,2

1,1 2,2

2,3

2

2 3

6

-3 -4

4,3

4,1

5

2 -4 0

3,2

3,1

1

3

2,3

łuki operacyjne, łuki technologiczne, łuki kolejnociowe

czas Cmax = 13

( i )

( ii )

Mj

Rysunek 4.1: Przykład problemu gniazdowego z operacjami wielomaszyno-wymi z grupy II; (i) pseudo-aktywne uszeregowanie dopuszczalne zgodne zpermutacją π, (ii) graf G(π)

rπ((4, 1))− p(4,1) = 12− 5 = 7 = s((4, 1)).

Warto także zauważyć, że jeżeli zmienimy kolejność wykonywania czyn-ności na maszynie 1 z π1 = ((3, 1), (1, 1), (4, 1)) na π′1 = ((3, 1), (4, 1), (1, 1)),

Page 57: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.1. Nieprzesuwalne czynności asynchroniczne – jeden sposób. . . 51

to graf G(α), α1 = π′1, αl = πl dla l = 2, 3 będzie zawierał cykl. Rzeczy-wiście graf G(α) otrzymujemy z grafu G(α) przez usunięcie dwóch łukówkolejnościowych ((3, 1), (1, 1)), ((1, 1), (4, 1)) i dodanie dwóch nowych łu-ków tego typu ((3, 1), (4, 1)) oraz ((4, 1), (1, 1)). Pojawienie się tych nowychłuków generuje cykl w postaci ((1, 1), (2, 3), (4, 3), (4, 1), (1, 1)) o długościp(1,1)+w(1,1),(2,3)+p(2,3)+w(2,3),(4,3)+p(4,3)+w(4,3),(4,1)+p(4,1)+w(4,1),(1,1) =2 + 0 + 3 + 0 + 2− 3 + 5 + 0 = 9; cykl ten przechodzi przez wprowadzonyłuk ((4, 1), (1, 1)). Oznacza to jednak, zgodnie z twierdzeniem 4.1, że nieistnieje żadne uszeregowanie dopuszczalne zgodne z permutacją α (układnierówności (4.1)-(4.3) jest sprzeczny).

Na koniec tego rozdziału chciałbym zwrócić uwagę czytelnika, na sze-rokie spektrum problemów praktycznych, które mogą być traktowane jakoproblem gniazdowy z operacjami wielomaszynowymi typu II i w konse-kwencji modelowane za pomocą zaproponowanego modelu permutacyjno-grafowego, a następnie rozwiązywane metodami podanymi w dalszej częścitej pracy. Należy tu zauważyć, że jest to jedno z najtrudniejszych zagadnieńszeregowania. Klasyczny problem gniazdowy (operacje jednomaszynowe) zograniczeniami typu bez czekania (ang. no-wait) jest szczególnym przypad-kiem rozważanego problemu. Rzeczywiście, wystarczy w klasycznym pro-blemie wszystkie operacje jk+1, . . . , jk+ok danego zadania k potraktowaćjako jedną (oznaczaną przez k) operację wielomaszynową z mk = ok czyn-nościami postaci: (k, µ(jk + 1)), (k, µ(jk + 1)), . . . , (k, µ(jk + ok)), k ∈ J .Czynność u = (k, µ(jk + i)) ma głowę rau oraz ciało pu o wartości odpo-wiednio

rau =jk+i−1∑

j=jk+1

pj , pu = pjk+i, (4.12)

i = 1, . . . , ok, k ∈ J , gdzie pj jest czasem wykonywania operacji j w pro-blemie klasycznym.

4.1.3 Ścieżka krytyczna

Dowolną drogę s = (u1, . . . , uk) w grafie G(π) można opisać jako ciągwierzchołków (czynności) spełniający warunek: (ui, ui+1) ∈ EO ∪ ET ∪EK(π), 1 ¬ i < k, gdzie k jest liczbą jej wierzchołków. Długość d(s) ścieżki

Page 58: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

52 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

s wyraża się wzorem7 :

d(s) =k∑

i=1

pui +k−1∑

i=1

wui,ui+1 (4.13)

Ścieżką krytyczną sc = (sc1, . . . , scls) w grafie G(π) nazywamy naj-dłuższą ścieżkę w tym grafie; liczbę jej wierzchołków oznaczamy przez ls 8.Zgodnie z wcześniej wprowadzoną notacją d(sc) = Cmax(π).Przejdę teraz do krótkiej analizy własności ścieżki krytycznej w grafie

G(π). Rozważania rozpocznę od wprowadzenia dodatkowego pojęcia j[u],które oznacza operację zawierającą czynność u, u ∈ N . Jest oczywiste,że w grafie G(π) może istnieć wiele ścieżek krytycznych. Zachodzi jednaknastępująca własność mówiąca, że zawsze istnieje ścieżka krytyczna taka,że jeżeli przechodzi przez czynności pewnej operacji j, to w trakcie tegofragmentu drogi nie przechodzi przez czynności innych operacji, tzn. jejwierzchołki należące do zbioru sci : j[sci] = j, 1 ¬ i ¬ ls tworzą podciągzwarty.

Własność 4.1 Niech dla permutacji π ∈ Π, graf G(π) nie zawiera cyklio dodatniej długości. Niech w ścieżce krytycznej sc = (sc1, . . . , scls) tegografu istnieje podciąg zwarty z′ = (sca, sca+1, . . . scb), 1 ¬ a < b ¬ ls taki,że j[sca] = j[scb] = j oraz pozycja a < c < b, dla której j[scc] 6= j. Wtedyw grafie G(π) istnieje ścieżka z′′ = (sca, x1, . . . , xk, scb) taka, że j[xi] = j,1 ¬ i ¬ k oraz d(z′) = d(z′′).

Dowód. Z postaci modelu grafowego GO(j) operacji j (patrz rozdział3.3.2) wynika, że dla każdej pary wierzchołków (u, v), u ∈ Nj , v ∈ Nj(reprezentujących czynności tej samej operacji j) zawsze istnieje w grafieGO(j) ścieżka z wierzchołka u do wierzchołka v oraz ścieżka z wierzchołkav do wierzchołka u. Oznacza to, że każdy wierzchołek tych ścieżek odpo-wiada pewnej czynności operacji j oraz każda sąsiednia para wierzchołkówjest połączona łukiem operacyjnym. Z powyższego spostrzeżenia wynika, żeścieżka z′′ zdefiniowana w dowodzonej własności zawsze istnieje. Tak więcpozostaje nam do pokazania, że d(z′) = d(z′′).Z faktu, że z′ jest fragmentem ścieżki krytycznej wynika, że

d(z′′) ¬ d(z′).

7Formalnie ścieżka s jak i jej długość d(s) powinna być indeksowana permutacją π.Jednakże dla prostoty notacji, wtedy gdy nie będzie to prowadziło do niejednoznaczności,indeks ten będzie pomijany.8Oczywiście ścieżka krytyczna istnieje tylko wtedy, gdy graf G(π) nie zawiera cykli o

dodatniej długości.

Page 59: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.2. Nieprzesuwalne czynności asynchroniczne – wiele sposobów. . . 53

Niech z− = (scb, xk, . . . , x1, sca) oznacza ścieżkę „odwrotną” do ścieżki z ′′.Z własności grafu GO(j) wynika, że długość cyklu (sca, x1, . . . , xk, scb, xk,. . . , x1, sca) = (z′′, xk, . . . , x1, sca) jest równa 0, czyli

d(z′′) + d(z−)− pscb − psca = 0.

Jednocześnie długość każdego cyklu nie jest dodatnia. Stąd, w szczególnościdla cyklu (sca, sca+1, . . . , scb, xk, . . . , x1, sca) = (z′, xk, . . . , x1, sca), zacho-dzi

d(z′) + d(z−)− pscb − psca ¬ 0.

Z powyższych zależności wynika, że

d(z′) ¬ d(z′′) ¬ d(z′),

czyli d(z′) = d(z′′), co kończy dowód własności.

Podamy teraz pewną praktyczną interpretację powyższej własności. Bę-dziemy mówić, że operacja j jest „związana” ze ścieżką krytycznej sc wtedy,gdy przynajmniej jedna z jej czynności u ∈ Nj jest wierzchołkiem tej ścież-ki. Ponadto stwierdzenie, że ścieżka sc „przechodzi jeden raz” przez opera-cję j oznacza, że można ją podzielić na takie trzy części, że część pierwsza itrzecia nie zawiera czynności operacji j, zaś druga zawiera tylko czynnościtej operacji. Mówiąc bardziej formalnie oznacza to, że istnieją takie pozycje1 ¬ a ¬ b ¬ ls, że: j[sci] 6= j, i = 1, .., a − 1, j[sci] = j, i = a, .., b orazj[sci] 6= j, i = a+ 1, .., lc. Niech Ω określa zbiór wszystkich operacji j ∈ Ozwiązanych ze ścieżką krytyczną sc,

Ω =

j[sci] : 1 ¬ i ¬ ls

. (4.14)

Wykorzystując wprowadzone pojęcia, z powyższej własności wynika, że je-żeli graf G(π) nie zawiera cykli o dodatniej długości, to istnieje ścieżkakrytyczna, która przechodzi jeden raz przez każdą operację j związaną z tąścieżką. Konkluzja ta będzie wykorzystywana w dalszej części pracy przykonstrukcji sąsiedztwa w metodach popraw.W przedstawionym przykładzie 4.1 ścieżka krytyczna ma postać sc =

((3, 1), (1, 1), (2, 2), (2, 4)), zaś zbiór Ω = 1, 2, 3. Jak widać zbiór ten za-wiera wszystkie operacje oprócz operacji 4, która nie jest związana z tąścieżką, tzn. żadna z jej czynności do niej nie należy.

4.2 Nieprzesuwalne czynności asynchroniczne –wiele sposobów wykonywania

W problemie sformułowanym w poprzednim rozdziale sposób realizacjikażdej operacji jest jednoznacznie określony. W praktyce przemysłowej wy-

Page 60: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

54 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

stępują jednak sytuacje, w których daną operację można wykonywać na wie-le sposobów. Prezentowany dalej problem jest właśnie takim uogólnieniemproblemu z rozdziału 4.1. Mówiąc trochę bardziej precyzyjnie, uogólnienieto polega na tym, że dla każdej z operacji podany jest zbiór alternatywnychsposobów jej wykonania. Operacja powinna być wykonana jednym z nich;jest to dodatkowa zmienna decyzja. W momencie ustalenia sposobu wyko-nania dla każdej z operacji, prezentowany problem sprowadza się jednakdo problemu opisanego w rozdziale 4.1. Dlatego też dalej swoje rozważaniaograniczę tylko do szczegółowego opisu zbioru alternatywnych sposobóworaz krótkiego omówienia konsekwencji dotyczących modelu matematycz-nego oraz modelu permutacyjno-grafowego, wynikających z takiego rozsze-rzenia.

4.2.1 Sformułowanie problemu

Pomijając ogólny opis problemu przejdę bezpośrednio do określeniazbiorów oraz sposobów wykonywania poszczególnych operacji. Dla każ-dej operacji j ∈ O dany jest zbiór Fj = 1, . . . , fj alternatywnych spo-sobów jej wykonywania. Realizacja operacji j polega na wykonaniu jejjednym, dowolnie wybranym, sposobem f ∈ Fj . Dla każdego sposobuf ∈ Fj operacji j ∈ O określony jest zbiór wykorzystywanych maszynMj,f ⊂ M ; mj,f = |Mj,f |. Proces wykonywania operacji j sposobemf na maszynie l ∈ Mj,f nazywamy czynnością i notujemy jako trójkę(j, f, l) 9. Wszystkie czynności sposobu f ∈ Fj operacji j ∈ O tworzązbiór Nj,f = (j, f, l) : l ∈ Mj,f; |Nj,f | = |Mj,f | = mj,f . Czynnośću = (j, f, l) ∈ Nj,f scharakteryzowana jest przez głowę rau i ciało pu orazprzynajmniej jedna z głów rau, u ∈ Nj,f jest równa zero. Wykonanie ope-racji j ∈ O sposobem f ∈ Fj polega na wykonaniu wszystkich czynnościNj,f , zgodnie z ograniczeniem operacyjnym (3.15)10.Podobnie jak w poprzednim rozdziale przyjmuję: (i) żadna z maszyn nie

może wykonywać jednocześnie kilku czynności, (ii) wykonywanie czynnościna maszynie nie może być przerywane oraz (iii) nie można jednocześniewykonywać dwóch operacji tego samego zadania.Wprowadzę teraz pewne dodatkowe oznaczenia wynikające ze specy-

fiki rozważanego problemu (wiele sposobów wykonywania). Po pierwsze,wybrany zestaw sposobów wykonywania f(j) ∈ Fj , j ∈ O będę oznaczaćprzez g = (f(1), f(2), . . . , f(o)). Dla zestawu g, niech N(g) =

j∈ONj,f(j)oznacza zbiór wszystkich czynności.

9W problemie tym czynność jest reprezentowana trójką liczb (j, f, l), a nie jak po-przednio przez dwójkę (j, l).10We wzorze (3.15) wielkość Nj należy zastąpić wielkością Nj,f .

Page 61: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.2. Nieprzesuwalne czynności asynchroniczne – wiele sposobów. . . 55

Uszeregowanie jest definiowane przez dwa zestawy, g = (f(1), . . . , f(o))oraz s(u) ­ 0, u ∈ N(g) gdzie f(j) ∈ Fj jest wybranym sposobem wy-konywania operacji j, zaś s(u), u ∈ Nj,f(j) są momentami rozpoczęciawykonywania poszczególnych czynności Nj,f(j) operacji j. Uszeregowaniejest dopuszczalne, jeżeli zestaw s(u) ­ 0, spełnia ograniczenia (i), (ii), (iii),ograniczenia technologiczne oraz ograniczenia operacyjne (3.15)11. Problempolega na znalezieniu uszeregowania dopuszczalnego, minimalizującego mo-ment wykonania wszystkich czynności maxu∈N c(u), gdzie c(u) = s(u)+pu.

4.2.2 Model matematyczny i reprezentacja grafowa

Na początek zauważmy, że przypisanie każdej czynności u ∈ N(g) ma-szyny µ(u) ∈ M pozwala rozbić zbiór N(g) na m rozłącznych zbiorówN l(g) = u ∈ N(g) : µ(u) = l, l ∈M , określających czynności wykonywa-ne na poszczególnych maszynach; nl(g) = |N l(g)|.W modelu jako zmienne decyzyjne przyjmuję zestaw sposobów wykony-

wania g = (f(1), f(2), . . . , f(o)) oraz permutację π = (π1, π2 . . . , πm), gdzieπl = (πl(1), . . . , πl(nl(g))) jest permutacją zbioru czynności N l(g) wykony-wanych na maszynie l, l ∈ M ; zbiór wszystkich permutacji dla ustalonegog oznaczam przez Π(g). Podobnie jak w rozdziale 4.1 łatwo zauważyć, żedla danego zestawu g oraz permutacji π ∈ Π(g), uszeregowanie s(u) ­ 0,u ∈ N(g) jest uszeregowaniem dopuszczalnym wtedy i tylko wtedy, gdyspełnione są warunki (4.1), (4.2), (4.3); w warunkach tych wielkości nl,Nj oraz u+j−1, u

−j należy zastąpić odpowiednio przez n

l(g), Nj,f(j) orazu+j−1,f(j−1), u

−j,f(j)

12. Problem polega na znalezieniu takiego zestawu g∗ orazpermutacji π∗ ∈ Π(g∗), dla której: (i) układ nierówności (4.1)-(4.3) (po po-wyższych modyfikacjach) nie jest sprzeczny oraz (ii) moment zakończeniawszystkich czynności maxu∈N(g∗) sa(u)+pu jest jak najmniejszy, gdzie sa(u)jest uszeregowaniem pseudo-aktywnym z klasy uszeregowań zgodnych z π∗

i spełniających ten układ nierówności.Ze względu na przyjęte zmienne decyzyjne w dalszej części pracy usze-

regowanie określone przez zestaw sposobów g oraz odpowiedni zestaw per-mutacji π ∈ Π(g) będę oznaczać przez parę (g, π).Przejdę teraz do omówienia reprezentacji grafowej rozważanego proble-

mu. Proponowany dalej graf, przy ustalonym zestawie g, jest identycznyjak graf G(π) z poprzedniego rozdziału. Tym niemniej, dla wygody czytel-nika ze względu na występujące różnice w notacji, jego definicja zostanie

11We wzorze (3.15) wielkość Nj należy zastąpić wielkością Nj,f(j).12Dwie ostatnie wielkości wyznaczamy ze wzoru (3.23), w których Ni oraz u

i , u+i

zastępujemy odpowiednio przez Ni,f oraz u−

i,f , u+i,f dla f = f(i), i = j − 1, j.

Page 62: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

56 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

podana. Dla zestawu g = (f(1), f(2), . . . , f(o)) oraz permutacji π ∈ Π(g)definiujemy graf

G(g, π) =(

N(g), ET (g) ∪ EO(g) ∪ EK(π, g))

(4.15)

ze zbiorem obciążonych wierzchołków N(g), zbiorem nieobciążonych łukówtechnologicznych

ET (g) =⋃

k∈J

jk+ok⋃

j=jk+2

(u+j−1(g), u−j (g))

, (4.16)

i łuków kolejnościowych

EK(π, g) =⋃

l∈M

nl(g)⋃

i=2

(πl(i− 1), πl(i))

(4.17)

oraz zbiorem obciążonych łuków operacyjnych

EO(g) =⋃

j∈O

mj,f(j)⋃

i=2

(uj,f(j),i−1, uj,f(j),i), (uj,f(j),i, uj,f(j),i−1)

; (4.18)

przyjmuję, że Nj,f = uj,f,1, uj,f,2, . . . , uj,f,mj,f , f = f(j), j ∈ O. Obciąże-nia wierzchołków i łuków jest identyczne jak w grafie G(π) z poprzedniegorozdziału.Jest oczywiste, że dla tak zdefiniowanego grafu prawdziwe jest twier-

dzenie 4.1. Stąd ostatecznie wynika, że rozważany problem polega na zna-lezieniu zestawu g∗ = (f∗(1), . . . , f∗(o)), f∗(j) ∈ Fj , j ∈ O sposobówwykonywania poszczególnych operacji oraz takiej permutacji π∗ ∈ Π(g∗),że odpowiadający jej graf G(π∗) nie ma cykli o dodatniej wartości oraz manajmniejszą długość ścieżki krytycznej Cmax(π∗).Powyższe rozważania nie są ilustrowane przykładem. Wynika to z fak-

tu, że po ustaleniu zestawu g oraz wybraniu permutacji π ∈ Π(g), spo-sób konstrukcji odpowiadającego jej uszeregowaniu oraz grafu G(g, π) jestpraktycznie identyczny jak dla jednosposobowego problemu gniazdowego zrozdziału 4.1.

4.3 Czynności przesuwalne

W tej sekcji sformułuję problem gniazdowy z wielomaszynowymi ope-racjami z grupy III oraz IV. Następnie zostanie podany model permutacyj-no-grafowy dla każdej z tych grup. Przypominam, że przynależność danejoperacji j do grupy III lub IV oznacza możliwość względnego przesuwaniajej czynności w przedziale o zadanej długości tj .

Page 63: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.3. Czynności przesuwalne 57

4.3.1 Czynności bez dodatkowych ograniczeń

Problem gniazdowy z wielomaszynowymi operacjami zawierającymiprzesuwalne czynności bez dodatkowych ograniczeń (tzn. z operacjami zgrupy III) formułuje się podobnie jak problem gniazdowy z wielomaszyno-wymi operacjami z grupy II, patrz rozdział 4.1.1. Tym niemniej, ze względuna niewielkie, ale bardzo istotne różnice przedstawimy go w miarę dokładniedokonując czasami niezbędnych powtórzeń.

Dany jest zbiór maszyn M = 1, . . . ,m, zbiór zadań J = 1, . . . , roraz zbiór operacji O = 1, . . . , o. Zadanie k ∈ J składa się z ciągu ok ­ 1operacji indeksowanych kolejno przez jk + 1, jk + 2, . . . , jk + ok, gdzie jk =∑k−1i=1 oi. Wykonanie zadania polega na wykonaniu, w powyższej kolejności(ograniczenia technologiczne), wszystkich jego operacji. Każda operacja j ∈O należy do grupy III, opisanej szczegółowo w rozdziale 3.1. Oznacza to,że operacja j jest realizowana na mj = |Mj | elementowym zbiorze maszynMj , składa się z czynności u ∈ Nj = (j, l) : l ∈ Mj i określony jestmaksymalny czas tj przeznaczony do jej realizacji. Każda czynność u =(j, l) jest scharakteryzowana przez ciało pu; jej głowa rau i ogon qau sązerowe. Wykonanie operacji j ∈ O polega na wykonaniu wszystkich jejczynności, zgodnie z ograniczeniami operacyjnymi (3.17).

Podobnie jak w rozdziale 4.1.1 przyjmuje się, że:(i) żadna z maszyn niemoże wykonywać jednocześnie kilku czynności oraz (ii) wykonywanie czyn-ności na maszynie nie może być przerywane. Uszeregowanie jest definiowaneprzez zestaw s(u) ­ 0, u ∈ N , momentów rozpoczęcia wykonywania po-szczególnych czynności. Uszeregowanie jest dopuszczalne, jeżeli zestaw tenspełnia ograniczenia (i), (ii), ograniczenia technologiczne oraz ogranicze-nia operacyjne (3.17). Problem polega na znalezieniu uszeregowania do-puszczalnego, minimalizującego moment wykonania wszystkich czynnościmaxu∈N c(u), gdzie c(u) = s(u) + pu.

Poniżej przedstawiam model permutacyjno–grafowy zbudowany na ba-zie modelu wielomaszynowej operacji z przesuwalnymi czynnościami bezdodatkowych ograniczeń, przedstawiony w rozdziale 3.3.3 oraz na bazie ideimodelowania ograniczeń technologicznych i kolejnościowych, przedstawio-nej w rozdziale 3.4. Podobnie jak w rozdziale 4.1.1, jako zmienną decyzyj-ną przyjmuję zestaw permutacji π = (π1, . . . , πm), gdzie πl = (πl(1), . . . ,πl(nl)) jest permutacją zbioru czynności N l wykonywanych na maszyniel ∈ M ; zbiór wszystkich takich zestawów, zwanych krótko permutacjami,oznaczamy przez Π. Łatwo zauważyć, że dla danej permutacji π ∈ Π, usze-regowanie s(u) ­ 0, u ∈ N jest uszeregowaniem dopuszczalnym wtedy i

Page 64: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

58 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

tylko wtedy, gdy

max

s(u) + pu : u ∈ Nj−1

¬ min

s(u) : u ∈ Nj

,

jk + 2 ¬ j ¬ jk + ok, k ∈ J, (4.19)

s(πl(i− 1)) + pπl(i−1) ¬ s(πl(i)), 2 ¬ i ¬ |πl| = nl, l ∈M, (4.20)

max

s(u) + pu : u ∈ Nj

−min

s(u) : u ∈ Nj

¬ tj , j ∈ O. (4.21)

Warunek (4.19) określa ograniczenia technologiczne omówione w rozdziale3.4.1 i przedstawione wzorem (3.21). Warunek (4.20) wynika z przyjętej ko-lejności wykonywania czynności na poszczególnych maszynach (ogranicze-nia kolejnościowe). I na koniec, warunek (4.21) określa ograniczenia opera-cyjne przedstawione w (3.17). Problem polega na znalezieniu takiej permu-tacji π∗ ∈ Π, dla której: (i) układ nierówności (4.19)-(4.21) nie jest sprzecz-ny oraz (ii) moment zakończenia wszystkich czynności maxu∈N sa(u) + pujest jak najmniejszy, gdzie sa(u) jest uszeregowaniem pseudo-aktywnym zklasy uszeregowań zgodnych z π∗ i spełniających ten układ nierówności.Przejdziemy teraz do sformułowania modelu permutacyjno-grafowego.

W tym celu dla permutacji π ∈ Π definiuję graf

G(π) =(

N ∪NS ∪NC, ET ∪ EO ∪ EK(π))

(4.22)

ze zbiorem obciążonych wierzchołków N reprezentujących poszczególneczynności, zbiorem nieobciążonych wierzchołków

NS =

uSj : j ∈ O

, NC =

uCj : j ∈ O

(4.23)

reprezentujących momenty rozpoczęcia i zakończenia wykonywania opera-cji, zbiorem nieobciążonych łuków technologicznych

ET =⋃

k∈J

jk+ok⋃

j=jk+2

(uCj−1, uSj )

, (4.24)

nieobciążonych łuków kolejnościowych EK(π) w postaci (4.6) oraz zbioremłuków operacyjnych

EO =⋃

j∈O

u∈Nj

(uSj , u), (u, uCj )

∪⋃

j∈O

(uCj , uSj )

, (4.25)

przy czym obciążone są tylko łuki (uCj , uSj ) j ∈ O. Ogólnie, obciążenie

łuków grafu G(π) ma następującą postać:

wu,v =

−tj , u = uCj , v = uSj , j ∈ O,

0, (u, v) ∈ ET ∪ EK(π) ∪ (EO \⋃

j∈O(uCj , u

Sj )).

(4.26)

Page 65: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.3. Czynności przesuwalne 59

Wierzchołek reprezentujący czynność u ∈ N obciążony jest wartością pu.Łatwo zauważyć, że graf G(π) posiada n + 2o wierzchołków oraz o − rłuków technologicznych, 2n + o) – luków operacyjnych, n − m – łukówkolejnościowych; łącznie 3n+ 2o−m− r łuków.Z definicji grafu G(π) wynika, że może zawierać on cykle o długości

ujemnej, zerowej lub dodatniej. W przypadku kiedy w grafie G(π) nie macykli o dodatniej długości, niech rπ(u) (qπ(u)) oznacza wartość najdłuższejdrogi dochodzącej do (wychodzącej z) wierzchołka u ∈ N∪NS∪NC, łączniez wagą tego wierzchołka. Prawdziwe jest następujące twierdzenie, które jestodpowiednikiem twierdzenia 4.1 dla rozważanej tutaj grupy operacji.

Twierdzenie 4.2 Niech permutacja π ∈ Π oraz wszystkie operacje należądo grupy III.

(i) Jeżeli w grafie G(π) nie ma cykli o dodatniej długości, to uszeregowanies(u) = rπ(u) − pu, u ∈ N jest pseudo-aktywnym uszeregowaniem dopusz-czalnym zgodnym z permutacją π.

ii) Jeżeli w grafie G(π) występuje cykl o dodatniej długości, to nie istniejeżadne uszeregowanie dopuszczalne zgodne z permutacją π.

Dowód. Dowód przeprowadzę niezależnie dla dwóch części (i) oraz (ii).

(i). Przyjmijmy, że w grafie G(π) nie ma cykli o dodatniej długości i rozważ-my uszeregowanie s(u) = rπ(u)−pu, u ∈ N . Dalej pokażę, że uszeregowanieto spełnia warunki (4.19)–(4.21). Z faktu, że s(u) jest wartością najdłuż-szej drogi dochodzącej do wierzchołka u (bez jego wagi) wynika, że zestaws(u), u ∈ N powiększony o s(u) = rπ(u) − pu, u ∈ NS ∪ NC spełniaograniczenia łukowe dla grafu G(π). W szczególności oznacza to, że zestaws(u), u ∈ Nj ∪ uSj , u

Cj spełnia ograniczenia łukowe grafu GO(j), j ∈ O.

Stąd i z własności 3.2 wynika, iż spełnione są także ograniczenia operacyj-ne (3.17), czyli warunki (4.21). Dodatkowo ze spełnienia przez zestaw s(u),u ∈ N ∪NS ∪NC ograniczeń łukowych dla grafu G(π) oraz postaci tegografu otrzymujemy:

s(u) + pu = s(u) + pu + wu,uCj−1¬ s(uCj−1), u ∈ Nj−1, (4.27)

s(uCj−1) = s(uCj−1) + puC

j−1+ wuC

j−1,uSj¬ s(uSj )

= s(uSj ) + puSj+ wuS

j,u ¬ s(u), u ∈ Nj (4.28)

dla każdego j = jk+2, jk+3, . . . , jk+ok, k ∈ J ; nierówności (4.27) wynikająz łuków (u, uCj−1), u ∈ Nj−1 zaś nierówności (4.28) – z łuku (u

Cj−1, u

Sj ) oraz

Page 66: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

60 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

łuków (uSj , u), u ∈ Nj . Stąd bezpośrednio wynika, że spełnione są ograni-czenia technologiczne (4.19). Spełnienie warunków kolejnościowych (4.20)jest oczywiste. Tak więc uszeregowanie s(u) = rπ(u)−pu, u ∈ N jest uszere-gowaniem dopuszczalnym oraz jest zgodne z permutacją π. Używając tychsamych argumentów jak w dowodzie twierdzenia 4.1 łatwo można pokazać,że uszeregowanie to jest uszeregowaniem pseudo-aktywnym, co kończy do-wód pierwszej części twierdzenia.

(ii) Dowód tej części przeprowadzę metodą nie wprost. Załóżmy, że (A)graf G(π) zawiera cykl (u1, u2, . . . , uk, u1), ui ∈ N , i = 1, . . . , k o dodatniejdługości x =

∑ki=1(pui + wui,ui+1) > 0, gdzie uk+1 = u1, oraz (B) istnieje

pewne uszeregowanie dopuszczalne s(u), u ∈ N zgodne z permutacją π.Najpierw pokażę, własność pomocniczą mówiącą, że zestaw s(u), u ∈ N

powiększony o

s(uSj ) = min

s(u) : u ∈ Nj

, j ∈ O,

s(uCj ) = max

s(u) + pu : u ∈ Nj

, j ∈ O

spełnia ograniczenia łukowe dla grafu G(π). W tym celu zauważmy, że usze-regowanie s(u), u ∈ N spełnia: (a) ograniczenia technologiczne (4.19), (b)kolejnościowe (4.20) oraz (c) operacyjne (4.21). Z (c) oraz z własności 3.2wynika jednak, iż zestaw s(u), u ∈ Nj∪uSj , u

Cj spełnia ograniczenia łuko-

we grafu GO(j), j ∈ O. Tak więc pozostaje nam wykazać, że ograniczeniałukowe zachodzą również dla łuków ET ∪EK(π). Spełnienie tych ograniczeńdla łuków technologicznych ET wynika bezpośrednio z (a) oraz z przyję-tych wartości s(uSj ), s(u

Cj ), j ∈ O zaś dla łuków kolejnościowych E

K(π) –bezpośrednio z (b).Wykazana powyżej własność pomocnicza pozwala nam stwierdzić, że

jeżeli każdemu wierzchołkowi u grafu G(π) przypiszemy wartość s(u), tozachodzi

s(u) + pu + wu,v ¬ s(v), (u, v) ∈ ET ∪ EO ∪ EK(π), (4.29)

gdzie wielkości wu,v są określone wzorem (4.26). Dalej postępując identycz-nie jak w dowodzie twierdzenia 4.1 dostaniemy x ¬ 0. Otrzymana sprzecz-ność z założeniem (A) kończy dowód twierdzenia.

Podobnie jak w w rozdziale 4.1.1, grafG(π) oraz twierdzenie 4.2 pozwalana proste sformułowanie badanego problemu. Niech Cmax(π) oznacza dłu-gość ścieżki krytycznej w grafie G(π) dla permutacji π ∈ Π. Rozważanyproblem polega na znalezieniu takiej permutacji π∗ ∈ Π, że odpowiadają-cy jej graf G(π∗) nie ma cykli o dodatniej wartości oraz ma najmniejsządługość ścieżki krytycznej Cmax(π∗).

Page 67: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.3. Czynności przesuwalne 61

1,2

1,1

2

2 u

s 1 u

c 1

2,3

2,2

3 u

s 2 u

c 2

4,3

4,1

6

2 u

s 4 u

c 4

5

-4

-5

-8

3,2

3,1

1 u

s 3 u

c 3

3 -4

1 2 3

1,1

2,2 1,2

4,3

3,1

3,2

4,1

2,3

czas Cmax = 11

( i )

( ii )

Mj

łuki operacyjne, łuki technologiczne, łuki kolejnociowe

Rysunek 4.2: Przykład problemu gniazdowego z operacjami wielomaszyno-wymi z grupy III; (i) pseudo-aktywne uszeregowanie dopuszczalne zgodnez permutacją π, (ii) graf G(π)

Page 68: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

62 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

Tabela 4.2: Dane przykładu problemu z operacjami z grupy III

zadanie 1 zadanie 2

maszyna operacja 1 operacja 2 operacja 3 operacja 4

l t1 = 4 t2 = 8 t3 = 4 t4 = 5p(1,l) p(2,l) p(3,l) p(4,l)

1 2 – 3 5

2 2 6 1 –

3 – 3 – 2

Przykład 4.2 Rozważany tutaj przykład systemu produkcyjnego jestidentyczny jak w przykładzie 4.1. Jedyna różnica wynika z zastąpienia ope-racji typu II operacjami typu III. Dodatkowe dane określające maksymalnyczas tj przeznaczony do wykonywania operacji j przedstawiono w tabeli 4.2;w tabeli tej (dla wygody czytelnika) zamieszczono także czasy wykonywa-nia poszczególnych czynności pu, u ∈ Nj , j ∈ O przedstawione pierwotniew tabeli 4.2.Rozważmy permutację π z przykładu 4.1. Na rys. 4.2(i) przedstawio-

no pseudo-aktywne uszeregowanie dopuszczalne s(u), u ∈ N zgodne ztą permutacją. Moment zakończenia wszystkich czynności Cmax(π) = 11.Z kolei na rys. 4.2(ii) przedstawiono graf G(π). Graf ten składa się zn+2o = 8+2 ·4 = 16 węzłów oraz 3n+2o−m−r = 3 ·8+2 ·4−3−2 = 27łuków. Dokładniej, zawiera on 2n+ o = 2 · 8 + 4 = 20 łuków operacyjnych(po 5 na każdą operację), o − r = 4 − 2 = 2 łuki technologiczne (pomię-dzy operacjami poszczególnych zadań) oraz n − m = 8 − 3 = 5 łukówkolejnościowych (dwa na maszynie 1 i 2 oraz jeden na maszynie 3). Podob-nie jak w przykładzie 4.1 graf G(π) nie zawiera cykli o dodatniej długościoraz s(u) = rπ(u) − pu, u ∈ N . Przykładowo s((4, 1)) = 4, podczas gdyrπ((4, 1)) = p(3,1)+w(3,1),(1,1)+p(1,1)+w(1,1),(4,1)+p(4,1) = 3+0+2+0+5 =10, czyli rπ((4, 1))− p(4,1) = 10− 5 = 5 = s((4, 1)).

4.3.2 Czynności z dodatkowymi ograniczeniami

W tej sekcji omówię problem gniazdowy z operacjami wielomaszynowy-mi z grupy IV. Jak już wielokrotnie wspominaliśmy przynależność operacjido tej grupy oznacza, że na niektóre jej czynności nałożone są dodatkoweograniczenia, dotyczące momentu rozpoczęcia ich wykonywania (względemmomentu rozpoczęcia całej operacji) oraz symetrycznie ograniczenia do-

Page 69: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.3. Czynności przesuwalne 63

tyczące momentu ich zakończenia (względem momentu zakończenia całejoperacji).Rozważany problem formułuje się bardzo podobnie jak problem przed-

stawiony w rozdziale 4.3.1. Różnica występuje tylko w opisie poszczególnychczynności u ∈ N , które charakteryzowane są dodatkowo przez głowę rau iogon qau (patrz rozdział 3.1); poprzednio głowa i ogon każdej operacji byłyrówne zero. W konsekwencji, dla ustalonej permutacji π ∈ Π, zależności(4.19)-(4.21) stanowiące konieczne i wystarczające warunki na dopuszczal-ność uszeregowania s(u) ¬ 0, u ∈ N mają teraz odpowiednio postać:

max

s(u) + pu + qau : u ∈ Nj−1

¬ min

s(u)− rau : u ∈ Nj

,

jk + 2 ¬ j ¬ jk + ok, k ∈ J, (4.30)

s(πl(i− 1)) + pπl(i−1) ¬ s(πl(i)), 2 ¬ i ¬ |πl| = nl, l ∈M, (4.31)

max

s(u) + pu + qau : u ∈ Nj

−min

s(u)− rau : u ∈ Nj

¬ tj ,

j ∈ O. (4.32)

Graf G(π) jest też bardzo podobny do grafu zdefiniowanego w rozdzia-le 4.3.1. Jedyna różnica dotyczy obciążenia łuków operacyjnych EO. Nieobciążone łuki łączące wierzchołek uSj (reprezentujący rozpoczęcie operacjij) z wierzchołkami u ∈ Nj (reprezentującymi czynności operacji j) zosta-ły obciążone wartością głów rau tych czynności. Symetrycznie łuki łączącewierzchołki u ∈ Nj z wierzchołkiem uCj (reprezentującym zakończenie ope-racji j) zostały obciążone wartością ogonów qau odpowiednich czynności.Łuki technologiczne ET i kolejnościowe EK(π) pozostają nadal nieobciążo-ne. Precyzyjnie, obciążenie łuków grafu G(π) ma teraz następującą postać:

wu,v =

−tj , u = uCj , v = uSj , j ∈ O,

rau, u = uSj , v ∈ Nj , j ∈ O,

qav, u ∈ Nj , v = uCj , j ∈ O,

0, (u, v) ∈ ET ∪ EK(π).

(4.33)

Dla tak zdefiniowanego grafu prawdziwe jest twierdzenie 4.2 z oczywi-stą modyfikacją jego sformułowania, polegającą na zastąpieniu grupy IIIprzez grupę IV; podobnie w dowodzie własność 3.2 należy zastąpić własno-ścią 3.3. Ostatecznie rozważany w tej sekcji problem, można sformułowaćnastępująco: Należy znaleźć taką permutację π∗ ∈ Π, że odpowiadający jejgraf G(π∗) nie ma cykli o dodatniej wartości oraz ma najmniejszą długośćścieżki krytycznej Cmax(π∗).

Page 70: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

64 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

1,2

1,1

u s 1 u

c 1

2,3

2,2

u s 2 u

c 2

4,3

4,1

u s 4 u

c 4

-4

-5

-8

3,2

3,1

u s 3 u

c 3

-4

1 2 3

1,1

2,2 1,2

4,3

3,1

3,2

4,1

2,3

czas Cmax = 12

( i )

( ii )

Mj

łuki operacyjne, łuki technologiczne, łuki kolejnociowe

1

1

2

2 3

6

2

5

1

3

Rysunek 4.3: Przykład problemu gniazdowego z operacjami wielomaszyno-wymi z grupy IV; (i) pseudo-aktywne uszeregowanie dopuszczalne zgodnez permutacją π, (ii) graf G(π)

Page 71: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.4. Porównanie modeli 65

Tabela 4.3: Dane przykładu problemu z operacjami z grupy IV

zadanie 1 zadanie 2

operacja 1 operacja 2 operacja 3 operacja 4

l t1 = 4 t2 = 8 t3 = 4 t4 = 5ra(1,l) p(1,l) qa(1,l) ra(2,l) p(2,l) qa(2,l) ra(3,l) p(3,l) qa(3,l) ra(4,l) p(4,l) qa(4,l)

1 0 2 0 – – – 0 3 0 0 5 0

2 0 2 0 1 6 0 0 1 0 – – –

3 – – – 0 3 0 – – – 0 2 1

Przykład 4.3 Rozważany tutaj przykład systemu produkcyjnego jestidentyczny jak w przykładzie 4.1 oraz 4.2. Jedyna różnica wynika z za-stąpienia operacji typu II (lub III) operacjami typu IV. Dodatkowe dane,w stosunku do danych z przykładu 4.2, określające rau, qau, u ∈ Nj , j ∈ Oprzedstawiono w tabeli 4.3; w tabeli tej zamieszczono również maksymalneczasy tj przeznaczone do wykonywania poszczególnych operacji j jak i cza-sy wykonywania poszczególnych czynności pu, u ∈ Nj , j ∈ O przedstawionepierwotnie w tabeli 4.2.Rozważmy permutację π z przykładu 4.1. Na rys. 4.3(i) przedstawio-

no pseudo-aktywne uszeregowanie dopuszczalne s(u), u ∈ N zgodne z tąpermutacją. Moment zakończenia wszystkich czynności Cmax(π) = 12. Zkolei na rys. 4.3(ii) przedstawiono graf G(π). Graf ten jest identyczny zgrafem zamieszczonym na rys. 4.2(ii) i składa się z 16 węzłów oraz 27 łu-ków; jedyna różnica polega na dodatkowym obciążeniu niektórych łukówoperacyjnych przez wartości głów i ogonów poszczególnych czynności. Po-dobnie jak w przykładzie 4.2 graf G(π) nie zawiera cykli o dodatniej długo-ści oraz wartość najdłuższej drogi dochodzącej do wierzchołka u jest równas(u) = rπ(u) − pu, u ∈ N . Przykładowo wartość ta dla wierzchołka (4, 1)wynosi s((4, 1)) = 6, podczas gdy

rπ((4, 1)) = p(3,1) + w(3,1),(1,1) + p(1,1) + w(1,1),uC1 + puC1 + wuC1 ,uS2 +

puS2+ wuS2 ,(2,3) + p(2,3) + w(2,3),(4,3) + p(4,3) + w(4,3),uC4 +

puc4 + wuC4 ,uS4 + puS4 + wuS4 ,(4,1) + p(4,1)= 3 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 3 + 0 + 2 + 1 + 0− 5 +

0 + 0 + 5 = 11,

czyli rπ((4, 1))− p(4,1) = 11− 5 = 6 = s((4, 1)).

Page 72: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

66 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

4.4 Porównanie modeli

W tej sekcji porównam modele problemów gniazdowych z operacjamiwielomaszynowymi z każdej z grup II, III, IV, na tym samym procesieprodukcyjnym, Proces ten został opisany w przykładzie 4.1 dla operacji zgrupy II i był wykorzystywany dalej w przykładach 4.2 oraz 4.3 odpowied-nio dla operacji z grupy III oraz IV. Zauważmy, że maksymalny czas tjprzeznaczony na wykonywanie poszczególnych operacji j oraz czasy wyko-nywania poszczególnych czynności pu, u ∈ Nj , j ∈ O były identyczne wewszystkich tych przykładach. Jedyna różnica dotyczyła wartości głów raui ogonów qau. W celu pełnego porównania proponowanych modeli poniżejprzedstawiamy odpowiedni przykład problemu gniazdowego z operacjamiwielomaszynowymi z grupy I.

Przykład 4.4 Rozważany tutaj system produkcyjnego jest identyczny jakw przykładach 4.1, 4.2, 4.3. Różnica wynika z zastąpienia operacji grupyII, III, IV operacjami grupy I. Dane określające maksymalny czas tj prze-znaczony do wykonywania operacji j ∈ O, podobnie jak zbiory maszyn Mjwykorzystywanych przez operacje j ∈ O są identyczne jak w poprzednichprzykładach. Przypominamy, że w modelu operacji grupy I, wartości puwszystkich czynności danej operacji j wynoszą pu = tj , u ∈ Nj .Graf G(π) modelujący rozważany system produkcyjny, został szczegóło-

wo opisany w pracy [77]. Ogólnie zawiera on o wierzchołków oraz n+o−m−rłuków, w tym o− r łuków technologicznych i n−m łuków kolejnościowych.Ze względu na to, że dla permutacji π, wykorzystywanej we wszystkichdotychczasowych przykładach 4.1, 4.2, 4.3, graf G(π) zawiera cykl o do-datniej długości, czyli nie istnieje dopuszczalne uszeregowanie, permutacjata uległa modyfikacji. Modyfikacja ta polega na zamianie kolejności wy-konywania dwóch pierwszych czynności w permutacji π2 na maszynie 2.W konsekwencji otrzymujemy permutację π′ = (π′(1), π′(2), π′(3)), gdzieπ′1 = π1, π

′2 = ((3, 2), (1, 2), (2, 2)), π

′3 = π3, dla której graf G(π) nie posia-

da cykli o dodatniej długości. Na rys. 4.4(i) przedstawiono pseudo-aktywneuszeregowanie dopuszczalne s(u), u ∈ N zgodne z tą permutacją. Momentzakończenia wszystkich czynności Cmax(π′) = 16. Z kolei na rys. 4.4(ii)przedstawiono graf G(π′). Graf ten składa się z o = 4 wierzchołków orazn + o − m − r = 8 + 4 − 3 − 2 = 7 łuków (o − r = 4 − 2 = 2 łukitechnologiczne i n − m = 8 − 3 = 5 łuków kolejnościowych); dwa łukikolejnościowe łączące wierzchołek 3 z wierzchołkiem 1 są identyczne, po-dobnie jak łuk kolejnościowy i łuk technologiczny łączący wierzchołek 1z wierzchołkiem 2. Ze względu na specyfikę rozważanej grupy czynności,wierzchołek może być notowany tylko przez numer operacji. Dokładniej

Page 73: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.4. Porównanie modeli 67

łuki technologiczne

łuki kolejnociowe

1 2 3

( i )

( ii )

Mj

4 8

4

1 2

3 4 5

1,1

2,2 1,2

3,1

3,2

2,3

czas Cmax = 16

4,3

4,1

Rysunek 4.4: Przykład problemu gniazdowego z operacjami wielomaszyno-wymi z grupy I; t1 = t3 = 4,t2 = 8, t4 = 5; (i) pseudo-aktywne uszeregowa-nie dopuszczalne zgodne z permutacją π′, (ii) graf G(π)

wierzchołki odpowiadające wszystkim czynnością u = (j, l), l ∈ Mj są re-prezentowane przez jeden wierzchołek o numerze j. Oznacza to także, żezamiast permutacji czynności na poszczególnych maszynach wystarczy roz-ważać permutację operacji. W naszym przykładzie dla permutacji π ′ maona postać ((3, 1, 4), (3, 1, 2), (2, 4)).

Na koniec zauważmy, że graf G(π (dla permutacji π z przykładów z4.1, 4.2, 4.3) zawiera cykl o długości 8. Rzeczywiście, graf ten otrzymujesię z grafu G(π′) przez usuniecie jednego z łuków (3, 1) oraz łuku (1, 2) iwprowadzenie łuków (3, 2), (1, 3), co skutkuje powstaniem cyklu (1, 3, 1) otakiej właśnie długości.

Porównania modeli dokonamy dla tej samej permutacji π wykonywaniaczynności na poszczególnych maszynach, wykorzystywanej w przykładach

Page 74: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

68 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

4.1, 4.2, 4.3. Nie dotyczy to grupy I, dla której w przykładzie 4.4 zapropono-waliśmy permutację π′; łatwo sprawdzić, że permutacja ta jest optymalna.W celu ułatwienia czytelnikowi porównania odpowiednich uszeregowań, narysunku 4.5 powtórzono uszeregowania z rys. 4.4(i), 4.1(i), 4.2(i) oraz 4.3(i)kolejno według numeru grupy czynności.

Analizując ten rysunek widzimy, że momenty zakończenia wykonywa-nia wszystkich operacji w przypadku grupy I, II, III oraz IV są równeodpowiednio 16, 13, 11 oraz 12. Jak można było się spodziewać, momentwykonania wszystkich operacji z grupy III jest najkrótszy ze względu nanajmniejsze restrykcje nałożone na wykonywanie czynności tych operacji.Zwiększanie restrykcji zwiększa ten moment. Przykładowo, w grupie IVczynność (2, 2) mogła się rozpocząć dopiero po ra(2,2) = 1 jednostce czasuod momentu s((2, 3)) rozpoczęcia wykonywania czynności (2, 3). Jednakżenie tylko głowa operacji ale i ogon może wpływać na późniejsze rozpoczęciewykonywania pewnych czynności, ma to miejsce w przypadku momentus((4, 1)) rozpoczęcia czynności (4, 1) i głowy qa(4,3) czynności (4, 3). Z koleinajwiększe restrykcje nałożone na czynności z grupy I powodują, iż momentwykonania wszystkich operacji jest najdłuższy mimo, że permutacja π′ jestoptymalna.

Z analizy rys. 4.1, 4.2, 4.3, 4.4 wynika, że wartość najdłuższej drogi do-chodzącej do danego wierzchołka (czynności) jest równa momentowi rozpo-częcia tej czynności; moment ten można odczytać z harmonogramów. Ścież-ki krytyczne w poszczególnych grafach mają następującą postać: (3, 1, 2, 4)– dla grafu grupy I, ((3, 1), (1, 1), (2, 3), (2, 2)), – dla grafu grupy II oraz((3, 1), (1, 1), uC1 , u

S2 , (2, 2)) – dla grafu grupy III oraz IV. Długości tych

ścieżek są równe odpowiednie 16, 13, 11, 12, co oznacza, że są równe mo-mentom zakończenia wykonania wszystkich operacji.

Grafy przedstawione na rys. 4.1(ii), 4.2(ii), 4.3(ii), 4.4(ii) odnoszą siędo ustalonej permutacji a jej zmiana oznacza tylko zmianę łuków kolejno-ściowych. Może to spowodować, że otrzymamy graf z mniejszą wartościąścieżki krytycznej lub graf ten będzie posiadał cykl o dodatniej wartości cojest równoważne, że odpowiadający mu harmonogram jest niedopuszczalny.Jak już wspominaliśmy permutacja π′ jest optymalna dla czynności z grupyI. Łatwo też pokazać, że permutacja π jest optymalna dla czynności z grupyII. W przypadku czynności z grupy III i IV permutacja ta nie jest jednakoptymalna. W tym wypadku permutacja optymalna jest identyczna dlaobydwu grup i ma postać π∗ = (π∗1, π

∗2, π∗3) gdzie π

∗1 = ((1, 1), (3, 1), (4, 1)),

π∗2 = ((1, 2), (3, 2), (2, 2)), π∗3 = ((2, 3), (4, 3)). Uszeregowanie zgodne z tą

permutacją przedstawiono na rys. 4.1; Cmax = 10.

Z porównania przedstawionych harmonogramów i grafów widać wyraź-

Page 75: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

4.4. Porównanie modeli 69

1 2 3

1,1

2,2 1,2

3,1

3,2

2,3

Cmax = 16

( i )

4,1

4,3

1 2 3

1,1

2,2 1,2

4,3

3,1

3,2

4,1

2,3

Cmax = 13

( ii )

1 2 3

1,1

2,2 1,2

4,3

3,1

3,2

4,1

2,3

Cmax = 11

( iii )

1 2 3

1,1

2,2 1,2

4,3

3,1

3,2

4,1

2,3

Cmax = 12

( iv )

czas

czas

czas

czas

Mj

Mj

Mj

Mj

Rysunek 4.5: Porównanie pseudo-aktywnych uszeregowań dopuszczalnychdla problemów gniazdowych z operacjami wielomaszynowymi grupy (I–IV)

Page 76: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

70 Rozdział 4. Modele grafowe z operacjami wielomaszynowymi. . .

1 2 3

2,2

4,3

3,1

3,2

4,1

2,3

Mj

1,2

1,1

Cmax = 10 czas

Rysunek 4.6: Uszeregowanie optymalne dla operacji z grupy III i IV

nie, że klasycznie stosowany model (grupa I) nie uwzględnia żadnych spe-cyficznych własności operacji wielomaszynowej, jak choćby faktu, że jakaśmaszyna może być potrzebna tylko do „zainicjowania” wykonywania opera-cji, po czym nie jest już używana. Zaproponowane w tym rozdziale modeleuwzględniają specyfikę różnych sytuacji produkcyjnych, co bezpośrednioprzenosi się na zmniejszenie momentu zakończenia wykonywania wszyst-kich operacji, nawet przy tej samej ustalonej kolejności ich wykonywania.Niestety uwzględnienie tej specyfiki powoduje, że w modelującym grafiewzrasta liczba wierzchołków i łuków oraz pojawiają się ujemne i dodatnieobciążenia na łukach. Przykładowo, w rozważanych instancjach graf dlagrupy I posiada 4 wierzchołki i 6 nieobciążonych łuków, zaś graf dla grupyIV - 16 wierzchołków i 27 łuków, które są obciążone zarówno dodatnimiujemnymi jak i zerowymi wartościami. Ogólnie dla czynności z grupy I grafG(π) posiada o wierzchołków i n+ o−m− r łuków, z grupy II – n wierz-chołków i 3n− o−m− r łuków, zaś z grupy III i IV – n+2o wierzchołkówi 3n+ 2o−m− r łuków.Podsumowując, zaproponowane modele umożliwiają dokładniejszy opis

rzeczywistości powodując jednocześnie, że nie można zastosować algoryt-mów znanych z literatury. Dlatego też w dalszej części tej pracy będę pro-ponować różnego rodzaju nowe algorytmy bazujące na opisanych tutaj mo-delach operacji, skupiając się przede wszystkim na operacjach wielomaszy-nowych z czynnościami z grupy II.

Page 77: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Rozdział 5

Algorytmy wyznaczaniawartości najdłuższej drogiw grafach cyklicznych

Jednym z najbardziej podstawowych zagadnień przy konstrukcji algo-rytmów heurystycznych w problemach optymalizacji dyskretnej jest szybkieobliczanie wartości funkcji celu dla danego rozwiązania. Przykładowo algo-rytmy popraw typu tabu lub symulowanego wyżarzania, tylko w jednymkroku iteracyjnym, wyznaczają dziesiątki a nieraz i setki takich wartościdla poszczególnych rozwiązań z sąsiedztwa analizowanego rozwiązania. Cowięcej, czas ich działania jest praktycznie zdominowany przez te czynności.Jest więc oczywiste, że przyśpieszenie wyliczenia wartości funkcji celu spo-woduje iż algorytmy te będą działały szybciej, co w przypadku czasowegokryterium stopu oznacza możliwość „przejrzenia” większej liczby rozwiązańi w konsekwencji pozwala znaleźć lepsze rozwiązania.W badanych przeze mnie problemach gniazdowych z operacjami wie-

lomaszynowymi, wartością funkcji celu jest długość uszeregowania równadługości ścieżki krytycznej w odpowiednim grafie G(π). Zastosowanie zna-nych z literatury algorytmów podanych w [30], [73], [9], [96] (szczegóło-wo analizowanych w [75], [20], [61], [107] oraz dokładnie testowanych podwzględem efektywności w [25], [26], [116]) powoduje jednak, że czas obliczeńnie jest satysfakcjonujący. Wynika to z oczywistego faktu, że algorytmy tenie uwzględniają specyfiki grafów G(π). Co więcej istotnym zagadnieniemw moich badaniach jest także możliwie szybkie stwierdzenie, czy graf G(π)posiada cykl dodatniej długości. I w tym wypadku wspomniane wyżej al-gorytmy nie stanowią najlepszego narzędzia. Wobec powyższego, jednym zkierunków badań było zbudowanie odpowiednio szybkiego algorytmu, któ-

71

Page 78: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

72 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

ry wyznaczałby długość ścieżki krytycznej w grafie G(π) lub stwierdzał,że graf ten posiada cykl dodatniej długości (oznacza to, że analizowanapermutacja π nie jest dopuszczalna).W tym rozdziale przedstawię taki właśnie, oryginalny algorytm dla gra-

fu G(π), który modeluje zdefiniowany w rozdziale 4 problem gniazdowyz operacjami wielomaszynowymi z nieprzesuwalnymi czynnościami (grupaII). Ponadto wzbogacę znane z literatury algorytmy o efektywnie działającedetektory wykrywające cykle o dodatniej długości. Proponowany algorytmwykorzystuje specyfikę badanego grafu, może być on jednak (po odpowied-nich drobnych modyfikacjach) interesująca alternatywą dla algorytmów li-teraturowych w sytuacjach ogólnych.Z definicji grafu G(π) wynika, że charakteryzuje się on następującymi

własnościami: (i) wierzchołki są obciążone wartościami dodatnimi, (ii) łukisą obciążone zarówno dodatnimi, zerowymi jak i ujemnymi wartościami,(iii) zawiera cykle, długość tych cykli może być dowolna (ujemna, zerowa,lub dodatnia) oraz (iv) wierzchołki reprezentujące czynności danej opera-cji, wraz z łączącymi je łukami operacyjnymi EO tworzą zawsze cykle odługości 0. Własności (i), (iv) ograniczają ogólną postaci grafu i dlategobędą stanowić istotny czynnik przyspieszający działanie proponowanego wnastępnych sekcjach algorytmu.

5.1 Przegląd algorytmów literaturowych

W literaturze przedmiotu przedstawiane są z reguły algorytmy wy-znaczające wartość najkrótszej drogi pomiędzy wybranym wierzchołkiem szwanym źródłem a wierzchołkiem t zwanym ujściem. Tutaj jednak krótkoomówię ich symetryczne postacie dla problemu wyznaczania długości ścież-ki krytycznej. Zauważmy, że problem ten w odniesieniu do grafu G(π) jestrównoważny znalezieniu wartości najdłuższej drogi pomiędzy pewnymi nie-obciążonymi fikcyjnymi węzłami s oraz t w grafie G′(π) = (N ∪ s, t, U ∪V ∪ET ∪EK(π)∪EO) gdzie U jest zbiorem m nieobciążonych łuków łączą-cych wierzchołek s z wierzchołkami πl(1), l ∈M (reprezentującymi pierwszeczynności na poszczególnych maszynach), U = (s, πl(1)) : l ∈ M. Nato-miast V jest zbiorem m nieobciążonych łuków łączących wierzchołki πl(nl),l ∈ M (reprezentujące ostatnie czynności na poszczególnych maszynach) zwierzchołkiem t; V = (πl(nl), t) : l ∈M.Formalnie rzecz biorąc, nie jest jednak potrzebna opisana powyżej mo-

dyfikacja grafu G(π), ponieważ każdy ze znanych algorytmów wyznaczają-cych wartość najkrótszej (najdłuższej) drogi pomiędzy parą wierzchołkóws, t w grafie G′(π) można łatwo zmodyfikować by wyznaczał wartość naj-

Page 79: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.1. Przegląd algorytmów literaturowych 73

krótszej (najdłuższej) drogi w grafie G(π). W tym celu wystarczy zmienićkroki inicjalizujące obliczenia; do odpowiedniej struktury (kolejka, stos, li-sta), zamiast wierzchołka s należy wprowadzić wszystkie wierzchołki πl(1),l ∈M .Wszystkie znane algorytmy oparte są na obliczaniu dolnego ogranicze-

nia LB(u) (ang. Lower Bound) długości najdłuższej drogi z wierzchołkas do danego wierzchołka u, poprzez systematyczną, tzw. relaksację łuków.Początkowo przyjmuje się, że: LB(s) = 0, LB(u) = −∞, u ∈ N ∪ t.W celu uproszczenia dalszych opisów wprowadzamy pojęcie „zgodności”danego łuku (u, v) (z wartościami dolnych ograniczeń LB(u), LB(v) jegowierzchołków u, v). Łuk (u, v) jest zgodny, jeżeli

LB(u) + wu,v + pv ¬ LB(v). (5.1)

Łuk, który nie jest zgodny będę nazywać łukiem niezgodnym. Relaksacjałuku niezgodnego (u, v) polega na zwiększeniu dolnego ograniczenia wierz-chołka v z wartości LB(v) do wartości LB(u) + wu,v + pv (na podstawiedolnego ograniczenia LB(u) wierzchołka u, wagi wu,v łuku (u, v) oraz wa-gi pv wierzchołka v). W przypadku łuku zgodnego relaksacja nie zmieniawartości LB(v). W konsekwencji po wykonaniu relaksacji łuku (u, v), do-stajemy

LB(v) := max

LB(v), LB(u) + wu,v + pv

, (5.2)

czyli łuk ten, niezależnie od jego poprzedniego stanu (zgodny, niezgodny),staje się łukiem zgodnym. Jeżeli nie istnieje łuk (x, y), którego relaksacjapowoduje zmianę wartości LB(y) (wszystkie łuki są zgodne), to długośćnajdłuższej drogi pomiędzy parą wierzchołków (s, u) jest równa LB(u), u ∈N , czyli

rπ(u) = LB(u), u ∈ N. (5.3)

Sytuacja taka jednak nigdy nie zajdzie, jeżeli graf zawiera przynajmniejjeden cykl o dodatniej długości.Poszczególne algorytmy różnią się między sobą kolejnością wykonywa-

nia relaksacji oraz kryterium stopu. Wśród wielu literaturowych algoryt-mów wyznaczających długość ścieżki krytycznej, trzy z nich są najszybsze ijednocześnie najczęściej stosowane. Jest to algorytm (FB), Forda-Bellmana,[30, 9, 75, 20, 61], algorytm (MB) Moor’e-Bellmana, [73, 9, 95, 75, 107] orazjego przyspieszona wersja (MBEP) zaproponowana przez d’Esopo i Papego,[95, 107].Algorytm FB polega na wykonaniu n − 1 serii relaksacji wszystkich

łuków, realizowanej w arbitralnej kolejności. Oczywiście, jeżeli jakaś seriarelaksacji nie spowoduje zwiększenia dolnego ograniczenia LB(u) żadnego

Page 80: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

74 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

wierzchołka u, to algorytm nie musi być dalej kontynuowany. Cykl o war-tości dodatniej rozpoznawany jest poprzez wykonanie dodatkowo jeszczejednej serii relaksacji wszystkich łuków i stwierdzeniu dalszego zwiększaniasię wartości LB(u) dla przynajmniej jednego wierzchołka u. Złożoność ob-liczeniowa tego algorytmu wynosi O(n ·e), gdzie n jest liczbą wierzchołków,zaś e liczbą łuków.Algorytm MB w każdym kroku iteracyjnym „przegląda” jeden wierz-

chołek u ∈ N . Przeglądnięcie wierzchołka u polega na dokonaniu relaksacjiwszystkich łuków (u, v) z niego wychodzących. Wierzchołki do przeglądnię-cia są pamiętane w kolejce L. Początkowo (przed wykonaniem pierwszegokroku iteracyjnego) w kolejce L znajduje się tylko wierzchołek s. W danymkroku iteracyjnym, wierzchołek u znajdujący się na początku kolejki jestz niej pobierany i następnie przeglądany. Jeżeli w trakcie przeglądania te-go wierzchołka wartość LB(v) zostaje zwiększona, to wierzchołek v zostajeumieszczony na końcu kolejki (pod warunkiem, że już w niej nie występuje).Algorytm kończy swoje działanie, gdy kolejka jest pusta lub liczba wszyst-kich wykonanych relaksacji przewyższa n · e; w tym ostatnim przypadkuw grafie G(π) występuje cykl o dodatniej długości. Podobnie jak algorytmFB, algorytm MB ma złożoność O(n · e).Bardzo efektywną modyfikację MBEP, istotnie poprawiającą „praktycz-

ną” szybkość działania algorytmu MB zaproponowali d’Esopo i Pape. Po-lega ona na tym, że jeżeli w danym kroku iteracyjnym (w trakcie przeglą-dania wierzchołka u) wartość LB(v) została zwiększona oraz wierzchołekv nie występuje aktualnie w kolejce L, a był w niej wcześniej, to jest onzapisywany na początek kolejki, zamiast tradycyjnie na koniec. Powodemtakiej modyfikacji jest to by jak najszybciej został on znowu przeglądniętymając nadzieje, że spowoduje to zwiększenie wartości dolnych ograniczeńjego następników. Mimo iż złożoność obliczeniowa algorytmu MBEP jestwykładnicza, to w większości praktycznych zastosowań (zwłaszcza dla gra-fów rzadkich) działa on znacznie szybciej niż algorytmy FB, MB.

5.2 Detektory cykli w algorytmach MB, MBEP

Z przedstawionego w poprzedniej sekcji opisu algorytmów FB, MB iMBEP wynika, że tylko pierwsze dwa są wyposażone w detektory cykli ododatnich długościach. Co więcej, detektor cyklu w algorytmie MB (kolejkanie jest pusta po wykonaniu n · e relaksacji) jest w praktyce bardzo nie-efektywny. Dlatego też jakakolwiek próba zastosowania do naszych celówalgorytmów MB, MBEP, wymaga zaprojektowania odpowiedniego efektyw-nego detektora. W dalszej części tej sekcji podajemy dla każdego z tych

Page 81: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.2. Detektory cykli w algorytmach MB, MBEP 75

algorytmów takie właśnie detektory.Proponowany detektor cykli w algorytmie MB bazuje na informacji do-

tyczącej globalnego górnego ograniczenia UB długości ścieżki krytycznej,wyliczonego przy założeniu braku dodatnich cykli w grafie;

UB =∑

j∈O

tj .

Algorytm stwierdza istnienie cyklu, gdy zachodzi

∃u∈NLB(u) > UB.

Detektor ten można oczywiście zastosować także w algorytmach FB,MBEP. Dalej jednak proponujemy, dla algorytmu MBEP, detektor znaczniebardziej efektywny. Wykrywa on cykl (jeżeli istnieje) zdecydowanie szybciejniż detektor omówiony wyżej. Zasady jego pracy są jednak dość subtelne ibazują na następującej własności.

Własność 5.1 Niech Z = (z(1), z(2), . . .) będzie listą przeglądanych wierz-chołków w kolejnych krokach algorytmu MBEP. Niech dla dwóch różnychpozycji z tej listy 1 ¬ a < b, zbiór Aa,b = z(a + 1), . . . , z(b − 1) zawierawszystkie wierzchołki z listy Z znajdujące się na pozycjach większych niż ai jednocześnie mniejszych niż b. W grafie G(π) występuje cykl o dodatniejdługości wtedy i tylko wtedy, gdy istnieje taka para pozycji 1 ¬ i < j naliście Z, że:

z(i) = z(j) def= u, (5.4)

u 6∈ A0,i, (5.5)

Ai,j ⊂ A0,i. (5.6)

Dowód. Przed rozpoczęciem zasadniczej części dowodu wykażemy naj-pierw trzy pomocnicze lematy.

Lemat 5.1 Jeżeli w grafie G(π) istnieje cykl o dodatniej długości, to niemożna tak dobrać dolnych ograniczeń jego wierzchołków, by wszystkie jegołuki były zgodne. Przynajmniej jeden łuk pozostanie niezgodny.

Dowód tego lematu jest oczywisty i dlatego zostanie pominięty.

Lemat 5.2 Jeżeli w kolejce L algorytmu MBEP znajdują się pewne wierz-chołki wcześniej już przeglądane oraz pewne wierzchołki, które nie były jesz-cze przeglądane, to te pierwsze znajdują się w kolejce L przed tymi drugimi.

Dowód. Lemat ten wynika bezpośrednio z zastosowanej w algorytmieMBEP poprawki Pape’go.

Page 82: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

76 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

Lemat 5.3 Załóżmy, że pewien wierzchołek v był po raz pierwszy przeglą-dany w kroku k > 1 algorytmu MBEP. Wtedy bezpośrednio przed rozpoczę-ciem tego kroku wszystkie łuki wychodzące z wierzchołków A0,k są zgodne.

Dowód. Dowód przeprowadzimy metodą nie wprost. Niech x ∈ A0,k bę-dzie takim wierzchołkiem, że przynajmniej jeden łuk (x, y) z niego wy-chodzący jest niezgodny bezpośrednio przed rozpoczęciem kroku k. Niecht, 1 ¬ t < k, będzie największą liczbą całkowitą taką, że z(t) = x. Jestoczywiste, że po wykonaniu kroku t, łuk (x, y) jest zgodny1. Dlatego teżjego niezgodność w momencie rozpoczęcia iteracji k musiała być spowo-dowana przez zwiększenie wartości dolnego ograniczenia wierzchołka x wtrakcie przeglądania pewnego innego wierzchołka w co najmniej jednymkroku t < t′ < k. Niech t ¬ t′′ < k określa pierwszy taki krok. Oznacza tojednak, że w kroku t′′ wierzchołek x (już przeglądany) zostaje dodany dokolejki L. Ponieważ nie był on przeglądany (a więc i usuwany) w żadnym zkroków g, t′′ < g < k, to musi znajdować się w kolejce L bezpośrednio przedrozpoczęciem kroku k. Stąd na podstawie lematu 5.2, w kroku k nie możebyć przeglądany wierzchołek v. Otrzymana sprzeczność kończy dowód.

Przechodzę teraz do zasadniczej części dowodu własności 5.1. NiechLBt(v) oznacza wartość dolnego ograniczenia dla wierzchołka v ∈ N , bez-pośrednio przed rozpoczęciem wykonywania kroku t algorytmu MBEP.

Konieczność. Załóżmy, że w grafie G(π) istnieją cykle o dodatniej długości.Zauważmy, że wtedy zawsze istnieje taki cykl c = (c1, . . . , ch−1, ch = c1) ododatniej długości, że algorytm MBEP po wykonaniu odpowiedniej liczbykroków przeglądnie wszystkie jego wierzchołki. Niech u oznacza elementze zbioru C = ci : i = 1, . . . , h − 1, który był pierwszy raz najpóźniejprzeglądany; nie zmniejszając ogólności rozważań przyjmijmy, że u = c12.Niech i oznacza krok iteracyjny, w którym algorytm MBEP pierwszy razprzeglądał wierzchołek u, tzn. u = z(i) oraz u 6∈ A0,i.Ponieważ w iteracji i przeglądany jest po raz pierwszy wierzchołek u,

na bazie lematu 5.3 stwierdzamy, iż wszystkie łuki wychodzące z wierz-chołków A0,i są zgodne. Oznacza to jednak, wykorzystując lemat 5.1, że(W1) w grafie G(π) nie istnieje cykl o dodatniej długości składający się zwierzchołków (niekoniecznie wszystkich) należących do zbioru A0,i.Zauważmy także, że (W2) algorytm MBEP po zakończeniu kroku i,

przegląda tylko wierzchołki ze zbioru A0,i ∪ u. Rzeczywiście, niech t > ioznacza najmniejszą liczbę taką, że z(t) 6∈ A0,i∪u. Stąd na mocy lematu5.3, bezpośrednio przed rozpoczęciem kroku t wszystkie łuki wychodzące

1Graf G(π) nie zawiera łuku (x, x).2Jeżeli jest inaczej wystarczy przenumerować elementy cyklu c.

Page 83: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.2. Detektory cykli w algorytmach MB, MBEP 77

z wierzchołków A0,i ∪ u są zgodne, w szczególności są zgodne wszystkiełuki cyklu c o dodatniej długości. To ostatnie na mocy lematu 5.1 oznaczajednak, iż cykl c nie ma dodatniej długości. Otrzymana sprzeczność kończydowód (W2).Z udowodnionych powyżej stwierdzeń (W1), (W2) wynika, że algorytm

MBEP po wykonaniu skończonej liczby kroków (poczynając od kroku i),w pewnym kroku j > i drugi raz zacznie przeglądanie wierzchołka u orazwszystkie wierzchołki przeglądane od iteracji i+ 1 do iteracji j − 1 należądo zbioru A0,i, czyli Ai,j ⊂ A0,i. Tym samym dowód konieczności zostałzakończony.

Dostateczność. Załóżmy, że na liście Z istnieje para pozycji 1 ¬ i < jtaka, że zachodzą warunki (5.4), (5.5), (5.6). Zauważmy, że (W3) bezpo-średnio przed rozpoczęciem wykonywania i-tego kroku iteracyjnego (tzn.przed przeglądnięciem wierzchołka u = z(i)), kolejka L nie zawiera żadne-go z wierzchołków ze zbioru Ai,j . Rzeczywiście, zgodnie z warunkiem (5.6)wierzchołki te były już przeglądane we wcześniejszych krokach. Fakt tenw połączeniu z występowaniem na początku listy L wierzchołka u, któryzgodnie z (5.5) nie był do tej pory przeglądany, kończy dowód (W3) (patrzlemat 5.2).Pokażę teraz, że istnieje taki podciąg i = i1 < i2 < . . . < ih = j, że

sekwencja c = (u = z(i1), z(i2), . . . , z(ih−1), z(ih) = u) elementów zbioruAi,j ∪ u jest cyklem w grafie G(π) oraz

LBit(z(it)) = LBit−1(z(it−1)) + wz(it−1),z(it) + pz(it), t = 2, . . . , h. (5.7)

W tym celu wystarczy zauważyć, wykorzystując (W3), że wierzchołek z(t),i < t ¬ j został wprowadzony do kolejki L w trakcie przeglądania pewnegowierzchołka z(t′), i ¬ t′ < t (tzn. w kroku iteracyjnym t′) z jednocze-snym zwiększeniem wartości jego dolnego ograniczenia. Następnie wartośćta mogła być jeszcze zwiększana w trakcie wykonywania kolejnych krokówiteracyjnych t′ ¬ k < t. Niech k′ oznacza ostatni z takich kroków. Wte-dy LBt(z(t)) = LBk

(z(k′)) + wz(k′),z(t) + pz(t) oraz wierzchołek z(t) jestbezpośrednim następnikiem wierzchołka z(k′) w grafie G(π).Ostatecznie pokażę, że cykl c = (z(i1), z(i2), . . . , z(ih)) ma dodatnią

długość. Niech d oznacza długość tego cyklu;

d =h∑

t=2

(wz(it−1),z(it) + pz(it)).

Wtedy korzystając z 5.7 oraz z oczywistej nierówności LBi(u) < LBj(u)(wierzchołek u = z(j) został powtórnie wprowadzony do kolejki, po jego

Page 84: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

78 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

Detektor cyklu algorytmu MBEP

Krok 1. Jeżeli u = OPP , to Exit. [występuje cykl o dodatniej warto-ści]

Krok 2. Jeżeli PW [u] = 0, to połóż PW [u] := 1 oraz OPP := u.

Rysunek 5.1: Schemat implementacji detektora cyklu o dodatniej długościdla algorytmu MBEP

usunięciu w i-tym kroku iteracyjnym) dostaniemy

LBi(u) + d = LBj(u) > LBi(u),

czyli d > 0, co kończy dowód własności.

Proponowany detektor cyklu dla algorytmu MBEP wykrywa istnieniecyklu bazując na własności 5.1. Jego implementacja wykorzystuje n ele-mentową tablicę PW oraz dodatkową zmienną OPP ; PW [x] = 1, jeżeliwierzchołek x był już przeglądany lub PW [x] = 0 – w przeciwnym wy-padku, x ∈ N . Początkowo, PW [x] = 0, x ∈ N . Zmienna OPP pamiętawierzchołek, który był pierwszy raz najpóźniej przeglądany.Na początku każdego kroku iteracyjnego k algorytmu MBEP (tzn. przed

przeglądnięciem wierzchołka u = z(k) znajdującego się na początku kolejkiL) detektor wykonuje działania przedstawione na rys. 5.1.Porównanie efektywności działania algorytmówMB,MBEP wykorzy-

stujących proponowane detektory cykli o dodatniej długości zostanie prze-prowadzone w rozdziale 5.4.

5.3 Algorytm MDSP

W tej sekcji przedstawię nowy algorytm do wyznaczania wartości naj-dłuższej drogi w grafie G(π), łącznie z detektorem cyklu o dodatnej dłu-gości. Algorytm ten, zwany dalej algorytmem MDSP, jest pewną (bardzoznaczącą) modyfikacją algorytmu DSP (ang. Dag Shortest Paths), [20, 61],wyznaczającego długość ścieżki krytycznej w acyklicznym grafie skierowa-nym.

Page 85: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.3. Algorytm MDSP 79

5.3.1 Opis algorytm MDSP

W algorytmie MDSP wykorzystuje się zbiór Au bezpośrednich następ-ników technologicznych i maszynowych wierzchołka u ∈ N ; z definicji (4.5),(4.6) wynika, że zbiór Au zawiera co najwyżej dwa wierzchołki.W algorytmie MDSP można wyróżnić dwie fazy: fazę wstępną oraz

fazę zasadniczą. Faza wstępna rozpoczyna się od uszeregowania wierzchoł-ków grafu G(π) na liście L = (L(1), . . . , L(n)) w porządku topologicznymzgodnym z łukami technologicznymi ET i kolejnościowymi EK(π). Jeżelitakie uszeregowanie nie istnieje, to algorytm kończy swoje działanie; wy-stępuje cykl o dodatniej wartości. Następnie wykonuje się podstawieniaLB(u) := pu, u ∈ N . Na koniec, dla każdej operacji j ∈ O dokonuje sięrelaksacji łuków z EO w następującej kolejności: (uj,i−1, uj,i), i = 2, . . . ,mj ,(uj,i, uj,i−1), i = mj , . . . , 2 3. Łatwo zauważyć, że po wykonaniu tej relak-sacji zachodzi

LB(v) = LB(u) + wu,v + pv, (u, v) ∈ EO. (5.8)

W fazie zasadniczej algorytm przegląda wierzchołki z listy L, rozpoczy-nając od wierzchołka L(1). Niech u oznacza aktualnie przeglądany wierz-chołek. Procedura przeglądania wierzchołka u jest odmienna od proceduryprzeglądania stosowanej, w omówionych wcześniej, algorytmach literaturo-wych. Polega ona na wykonaniu następujących działań: Dla każdego wierz-chołka v = (i, l) ∈ Au algorytm oblicza wartość 4

∆v = LB(u) + pv − LB(v) (5.9)

oraz jeżeli ∆v > 0, to zwiększa dolne ograniczenia wszystkich wierzchołkówodpowiadających czynnościom operacji i o ∆v,

LB(x) := LB(x) + ∆v, x ∈ Ni. (5.10)

Zauważmy, że po tej modyfikacji zależność (5.8) pozostaje w dalszym cią-gu prawdziwa. Oznacza to, że proponowana procedura przeglądania wierz-chołka u sprowadza się do relaksacji łuku technologicznego i kolejnościo-wego wychodzącego z wierzchołka u oraz dodatkowo łuków operacyjnychzwiązanych z wszystkimi czynnościami operacji ze zbioru j[v] : v ∈ Auzawierającego co najwyżej dwie operacje, rys. 5.2. Dalej przez

K(u) =

x ∈ Nj[v] : ∆v > 0, v ∈ Au

(5.11)

3Operacja j ∈ O składa się z czynności uj,1, . . . , uj,mj.4Przypominamy, że łuk (u, v) jest łukiem technologicznym lub kolejnościowym, czyli

waga wu,v = 0.

Page 86: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

80 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

u

Rysunek 5.2: Fragment grafu G(π) z wierzchołkami Nj[u], K(u); łuki relak-sowane w tracie przeglądania wierzchołka u oraz wierzchołki Au ⊂ K(u)pogrubiono (∆v > 0, v ∈ Au)

będziemy oznaczać zbiór wszystkich wierzchołków x, których dolne ograni-czenie LB(x) zostało zwiększone w trakcie przeglądania wierzchołka u.Następnym przeglądanym wierzchołkiem jest wierzchołek znajdujący

się w liście L na pozycji

poz = min

L−1(u) + 1, min

L−1(v) : v ∈ K(u)

, (5.12)

gdzie L−1(x) określa pozycję wierzchołka x na liście L 5. Oznacza to, żealgorytm MDSP przechodzi do przeglądania wierzchołka u = L(poz), je-żeli nie zadziałają warunki stopu. Z powyższego wynika, że algorytm poprzeglądnięciu wierzchołka u przechodzi do następnego wierzchołka z listyL lub cofa się do jednego z wcześniejszych wierzchołków tej listy. Jeżelipoz = n+1, to algorytm MDSP kończy swoje działanie. Wtedy LB(x) jestdługością najdłuższej drogi dochodzącej do wierzchołka x ∈ N , zaś długośćścieżki krytycznej jest równa

Cmax(π) = max

LB(x) : x ∈ N

. (5.13)

Możliwa jest jednak sytuacja, kiedy warunek poz ¬ n zachodzi zawsze;oznacza to, że graf G(π) posiada cykl o dodatniej długości. Sytuacja tawystępuje jednak tylko wtedy, jeżeli zajdzie następujące zdarzenie Z.

Zdarzenie Z. Algorytm po pierwszym przeglądnięciu pewnego wierzchołkau będzie przeglądał pewną liczbę wierzchołków v znajdujących się na po-zycjach L−1(v) < L−1(u) a następnie po raz drugi przeglądnie wierzchołek

5Przyjmujemy, że min∅ =∞.

Page 87: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.3. Algorytm MDSP 81

Algorytm MDSP

Krok 1. Połóż poz := 1 oraz pozMax := 0. Utwórz listę L = (L(1),. . . , L(n)) wierzchołków N w porządku topologicznym zgod-nym z łukami ET ∪EK(π). Jeżeli jest to niemożliwe, to Exit.[występuje cykl o dodatniej wartości]

Krok 2. Połóż LB(u) := pu dla u ∈ N . Dla każdej operacji jdokonaj relaksacji łuków z EO w kolejności: (uj,i−1, uj,i),i = 2, . . . ,mj , (uj,i, uj,i−1), i = mj , . . . , 2.

Krok 3. Połóż u := L(poz). Dla każdego wierzchołka v ∈ Au oblicz∆v = LB(u)+pv−LB(v) oraz połóż LB(x) := LB(x)+∆v,x ∈ Nj[v], jeżeli ∆v > 0. Wyznacz zbiór wierzchołków K(u),(5.11), których dolne ograniczenia zostały zwiększone.

Krok 4. Połóż poz := minL−1(u) + 1, minL−1(v) : v ∈ K(u).Jeżeli poz = n+1, to połóż Cmax(π) := maxLB(u) : u ∈ Ni Exit. [graf nie zawiera cykli o dodatniej długości]

Krok 5. Jeżeli L−1(u) = pozMax oraz poz < pozMax, to Exit. [wy-stępuje cykl o dodatniej długości]; w przeciwnym wypadkupołóż pozMax := maxpozMax,L−1(u) i idź do kroku 3.

Rysunek 5.3: Schemat działania algorytmu MDSP

u, by z kolei przejść do przeglądania pewnego wierzchołka v znajdującegosię na pozycji L−1(v) < L−1(u).

Po wykryciu zdarzenia Z algorytm przerywa działanie; wyczerpujące uza-sadnienie takiej postaci detektora cyklu o dodatniej długości przestawionow rozdziale 5.3.2.

Szczegółowy schemat działania algorytmu MDSP wraz detektorem cy-klu przedstawiony jest na rys. 5.3. Faza wstępna realizowana jest w krokach1, 2, zaś faza zasadnicza w krokach 3, 4, 5. Dodatkowa zmienna pozMax ste-ruje procesem wykrywania cyklu o dodatniej długości. Po wykonaniu kroku5 określa ona największą pozycję wśród pozycji wierzchołków na liście L,które były do tej pory przeglądane.

Dalej przez jedną iterację fazy zasadniczej algorytmu MDSP będziemyrozumieć wykonanie kroków 3,4,5 lub tylko 3,4, jeżeli w kroku 4 algorytmkończy swoje działanie. Z analizy rys. 5.3 wynika, że w fazie zasadniczej

Page 88: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

82 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

algorytmu MDSP można wyodrębnić n faz częściowych (jeżeli graf nie za-wiera cykli o dodatniej długości) składających się z odpowiedniej liczbyiteracji. Pierwsza faza częściowa rozpoczyna się bezpośrednio po zakończe-niu fazy wstępnej. Przyjmujemy, że faza częściowa k kończy bezpośrednioprzed momentem, w którym rozpoczyna się po raz pierwszy przeglądaniewierzchołka u = L(k + 1), k = 1, . . . , n − 1. Faza częściowa n kończy sięw momencie zakończenia pracy algorytmu. Jeżeli graf G(π) zawiera cykl ododatniej długości, to algorytm nie wykonuje wszystkich n faz częściowych.W szczególnym wypadku, gdy graf ten pomniejszony o łuki operacyjne jużzawiera cykl, żadna faza częściowa nie jest wykonana, ponieważ sytuacjata jest wykryta w kroku 1.Przejdziemy teraz do uzasadnienia poprawności działania algorytmu

MDSP w przypadku, gdy graf G(π) nie zawiera cyklu o dodatniej dłu-gości. W tym celu na początek wprowadzimy kilka dodatkowych oznaczeńoraz udowodnimy dwa lematy pomocnicze. Dla 1 ¬ k ¬ n niech

Lk =

L(1), . . . , L(k)

. (5.14)

orazFk =

(u, v) : (u, v) ∈ ET ∪ EK(π), u ∈ Lk

(5.15)

gdzie oznacza odpowiednio zbiór pierwszych k elementów listy L oraz zbiórłuków ET ∪ EK)(π) wychodzących z wierzchołków należących do Lk.

Lemat 5.4 Po zakończeniu fazy częściowej k, k ­ 1, przez algorytmMDSP, łuki EO ∪ Fk są zgodne.

Dowód. Rozważmy sytuację, w której algorytm MDSP zakończył pewnąfazę częściową k ­ 1. Dowód składa się z dwóch części. W pierwszej częściwykazana zostanie zgodność łuków EO, a w drugiej zgodność łuków Fk.Pierwsza część dowodu sprowadza się do dwóch spostrzeżeń. Po pierw-

sze, w trakcie fazy wstępnej (krok 2) algorytm doprowadził do zgodnościwszystkie łuki operacyjne EO, patrz (5.8). Po drugie, zwiększenie dolne-go ograniczenia jakiejkolwiek operacji (a dokładniej zwiększenie dolnegoograniczenia wszystkich czynności tej operacji) w trakcie fazy zasadniczej(krok 3) nie generuje żadnego niezgodnego łuku operacyjnego. Jest więcoczywiste, że od momentu zakończenia fazy wstępnej wszystkie łuki opera-cyjne EO po wykonaniu każdej iteracji (każdej fazy częściowej algorytmu)są zgodne. W szczególności są one zgodne po zakończeniu fazy częściowejk, co kończy pierwszą część dowodu.Druga część dowodu przeprowadzimy metodą nie wprost. Załóżmy, że

po zakończeniu fazy częściowej k, istnieje łuk (x, y) ∈ Fk, który jest niezgod-ny. Jest oczywiste, że L−1(x) ¬ k, czyli wierzchołek x był już co najmniej

Page 89: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.3. Algorytm MDSP 83

raz przeglądany. Niech i oznacza numer iteracji, w której wierzchołek x byłprzeglądany po raz ostatni w fazie częściowej k. Po jej wykonaniu wszystkiełuki wychodzące z wierzchołka x były zgodne6; w szczególności łuk (x, y).Jeżeli podczas kolejnych iteracji algorytmu, łuk (x, y) stanie się niezgodny(jest to możliwe tylko poprzez zwiększenie LB(x) w kroku 3), następnymprzeglądanym wierzchołkiem będzie wierzchołek x lub inny, leżący jednakna pozycji wcześniejszej niż L−1(x). Oznacza to, że wierzchołek x będzieponownie przeglądany w pewnej iteracji j > i fazy częściowej k. Otrzymanasprzeczność kończy dowód lematu.

Lemat 5.5 Niech graf G(π) nie zawiera cyklu o dodatniej długości. Pozakończeniu każdej iteracji fazy zasadniczej algorytmu MDSP spełniona jestnierówność

LB(x) ¬ rπ(x) x ∈ N. (5.16)

Dowód. Dowód przeprowadzimy metodą indukcyjną. Oczywiste jest, żenierówność (5.16) jest prawdziwa po zakończeniu fazy wstępnej algorytmu.Dalej pokażemy, że jeżeli zachodzi (5.16), to po relaksacji dowolnego łuku(u, v) nierówności (5.16) pozostaną spełnione. Rzeczywiście, po relaksacjiłuku (u, v) mogło zmienić się tylko dolne ograniczenie LB(v) wierzchołkav. Nowa wartość LB′(v) jest jednak nie większa niż długość d(s) pewnejścieżki s dochodzącej do wierzchołka v; s = (najdłuższa ścieżka dochodzącado wierzchołka u) + wierzchołek v. Korzystając z założenia indukcyjnegoLB(u) ¬ rπ(u), LB(v) ¬ rπ(v) oraz definicji ścieżki s (d(s) = rπ(u) +wu,v + pv ¬ rπ(v)) otrzymujemy

LB′(v) = max

LB(v), LB(u) + wu,v + pv

¬ max

rπ(v), d(s)

= rπ(v),

co kończy dowód lematu.

Bazując na powyższych dwóch lematach możemy już uzasadnić popraw-ność działania algorytmu MDSP w przypadku, gdy graf G(π) nie zawieracyklu o dodatniej długości.

Twierdzenie 5.1 Jeżeli graf G(π) nie zawiera cyklu o dodatniej długości,to algorytm MDSP po wykonaniu skończonej liczby iteracji zakończy swojedziałanie oraz wyznaczone wartości LB(u), u ∈ N będą długościami naj-dłuższych dróg dochodzących do poszczególnych wierzchołków u ∈ N , czyliLB(u) = rπ(u), u ∈ N .

Dowód. Na podstawie lematu 5.4 zauważmy, że w momencie zakończe-nia fazy częściowej n algorytmu MDSP wszystkie łuki w grafie G(π) są6W grafie G(π) nie ma łuku (x, x).

Page 90: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

84 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

zgodne. W szczególności, są zgodne wszystkie łuki występujące w najdłuż-szej drodze dochodzącej do wierzchołka u, czyli zachodzi LB(u) ­ rπ(u),u ∈ N . Jednocześnie z lematu 5.5 otrzymujemy LB(u) ¬ rπ(u), u ∈ N .Stąd LB(u) = rπ(u), u ∈ N .Pokażę teraz, że algorytm MDSP po wykonaniu skończonej liczby ite-

racji zakończy fazę częściową n. Zauważmy najpierw, że po wykonaniu jed-nego kroku iteracyjnego (w którym przegląda się wierzchołek umieszczonyw pozycji poz ¬ n na liście L) mogą wystąpić dwie sytuacje: (i) wartośćdolnego ograniczenia nie została zwiększona dla żadnego z wierzchołkóworaz (ii) wartość dolnego ograniczenia została zwiększona dla przynajmniejjednego z wierzchołków i zwiększenie to jest nie mniejsze niż pewna stałaε 7. Dodatkowo w sytuacji (i) algorytm przechodzi do wierzchołka umiesz-czonego w pozycji poz+1 listy L. Z uwagi jednak na lemat 5.5, zwiększaniewartości dolnego ograniczenia jakiegokolwiek wierzchołka v możliwe jesttylko skończoną liczbę razy. Oznacza to, że algorytm MDSP po wykonaniuskończonej liczby iteracji przejdzie do pozycji poz = n+1, co kończy dowódtwierdzenia.

5.3.2 Detektor cykli w algorytmie MDSP

W tej sekcji omówimy szczegółowo detektor cyklu o dodatniej długości,zastosowany w fazie zasadniczej algorytmu MDSP. Zauważmy, że algorytmMDSP w kroku 1 fazy wstępnej wykrywa ewentualne cykle o dodatniejdługości nie zawierające żadnych łuków operacyjnych. Cykle o dodatniejdługości zawierające przynajmniej jeden z takich łuków są wykrywane wfazie zasadniczej. Prawdziwa jest następująca własność.

Własność 5.2 W graf G(π) występuje cykl o dodatniej długości, zawie-rający przynajmniej jeden łuk operacyjny wtedy i tylko wtedy, gdy istniejetaki wierzchołek u = L(k), że po jego pierwszym i drugim przeglądnięciualgorytm MDSP cofa się do jednego z wcześniejszych wierzchołków listy L.

Dowód. Niech LBt(v) oznacza wartość dolnego ograniczenia dla wierz-chołka v ∈ N , bezpośrednio po zakończeniu iteracji t algorytmu MDSP.

Konieczność. Przyjmijmy, że w grafie G(π) istnieją cykle o dodatniej dłu-gości zawierające przynajmniej jeden łuk operacyjny. Wtedy jednak ist-nieje taki cykl o dodatniej długości, że algorytm MDSP po wykonaniuodpowiedniej liczby kroków przeglądnie wszystkie jego wierzchołki (zbiórwszystkich wierzchołków tego cyklu oznaczmy przez C). Niech u ozna-cza element ze zbioru C, który leży na największej pozycji k w liście L;7Wszystkie dane są liczbami całkowitymi.

Page 91: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.3. Algorytm MDSP 85

L−1(x) < k = L−1(u), x ∈ C \ u. Niech i oznacza numer iteracji, wktórej algorytm MDSP pierwszy raz przeglądał wierzchołek u.Ponieważ w iteracji i przeglądany jest po raz pierwszy wierzchołek u

znajdujący się na pozycji k listy L, iteracja ta rozpoczyna k-tą fazę czę-ściową algorytmu. Na bazie lematu 5.4 stwierdzamy, iż wszystkie łuki wy-chodzące z wierzchołków Lk−1 są zgodne. Oznacza to, wykorzystując lemat5.1, że (W1) w grafie G(π) nie istnieje cykl o dodatniej długości składającysię z wierzchołków (niekoniecznie wszystkich) należących do zbioru Lk−1.Zauważmy także, że (W2) algorytm MDSP po zakończeniu iteracji i,

przegląda tylko wierzchołki ze zbioru Lk. Rzeczywiście, w momencie gdyalgorytm zacznie przeglądać wierzchołek L(k+1) oznacza to, że zakończyłfazę k, co na mocy lematu 5.4 oznacza że wszystkie łuki Fk są zgodne,w szczególności są zgodne wszystkie łuki analizowanego cyklu o dodatniejdługości. To ostatnie jest sprzeczne z lematem 5.1. Otrzymana sprzecznośćkończy dowód (W2).Z udowodnionego powyżej stwierdzenia (W1), wynika, że algorytm

MDSP po wykonaniu skończonej liczby iteracji (poczynając od iteracji i),w pewnej iteracji j > i drugi raz zacznie przeglądanie wierzchołka u. Podrugim przeglądnięciu wierzchołka u w iteracji j, z (W2) wnioskujemy, iżalgorytm zacznie przeglądać wierzchołek znajdujący w liście L na pozycjimniejszej niż k. Tym samym dowód konieczności został zakończony.

Dostateczność. Niech u = L(k) będzie wierzchołkiem, dla którego praw-dziwe są założenia własności. Niech i oraz j będą odpowiednio numeramiiteracji, w których wierzchołek u przeglądany jest po raz pierwszy oraz poraz drugi. Zauważmy, że

LBi(u) < LBj(u). (5.17)

Jest tak dlatego, ponieważ w iteracji i, łuki (u, v), v ∈ Au zostały zrelakso-wane, więc po zakończeniu tej iteracji były zgodne. Następnie bezpośrednioprzed przeglądaniem wierzchołka u w iteracji j, przynajmniej jeden z tychłuków był niezgodny (jest to warunkiem koniecznym na to aby algorytmMDSP po przeglądnięciu u cofnął się do jednego z wcześniejszych wierz-chołków listy L. Oczywisty fakt, iż zgodny łuk (a, b) może przestać byćzgodny tylko poprzez zwiększenie wartości dolnego ograniczenia wierzchoł-ka a pozwala stwierdzić, że wartość LBj(u) jest większa niż LBi(u), codowodzi poprawności (5.17).Niech B oznacza zbiór wierzchołków Au powiększony o wszystkie ich

następniki (niekoniecznie bezpośrednie). Z lematu 5.4 wynika, że (W3) bez-pośrednio przed rozpoczęciem iteracji i (jest to moment zakończenia fazypomocniczej k− 1) wszystkie łuki Fk−1 są zgodne. W trakcie przeglądania

Page 92: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

86 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

wierzchołka u w tej iteracji, musiały zostać zwiększone dolne ogranicze-nia niektórych jego następników, w tym niektórych wierzchołków ze zbioruLk−1∩B (ponieważ po przeglądnięciu wierzchołka u algorytm cofnął się dojednego z wcześniejszych wierzchołków listy L). W iteracji i + 1 algorytmprzegląda jeden z wierzchołków z Lk−1 ∩B, którego dolne ograniczenia zo-stało zwiększone w iteracji i. W trakcie tego przeglądania zwiększa dolneograniczenie tylko (pewnych) wierzchołków ze zbioru B. Ogólnie, w kolej-nych iteracjach i+ 1 < t < j algorytm przegląda wierzchołki ze zbioru: (i)Lk−1∩B lub (ii) Lk−1 \B. Przeglądanie tych pierwszych może spowodowaćzwiększenie dolnych ograniczeń tylko wierzchołków ze zbioru B. Stąd oraz z(W3) wynika, że przeglądanie tych drugich nie powoduje zwiększenia dolne-go ograniczenia żadnego z wierzchołków. Jednocześnie bezpośrednio przed(i po) wykonaniu iteracji j dolne ograniczenie wierzchołka u jest większe niżpo wykonaniu iteracji i, patrz 5.17. Zostało więc ono zwiększone w trakciewykonywania co najmniej jednej z iteracji i < t < j, w której przeglądanowierzchołek L(t) ∈ Lk−1 ∩B.Z powyższego wynika, że w grafie G(π) istnieje cykl o dodatniej długości

zawierający wierzchołek u oraz nie operacyjny łuk (u, v), v ∈ Au; cykl tenoprócz wierzchołka u zawiera tylko wierzchołki ze zbioru B. Ponadto cyklten zawiera przynajmniej jeden łuk operacyjny; w przeciwnym wypadkucykl taki został by wykryty w fazie inicjalizacyjnej algorytmu. Tym samymdowód własności został zakończony.

Detektor cyklu o dodatniej długości zastosowany w fazie zasadniczej al-gorytmu MDSP wykorzystuje bezpośrednio własność 5.2. Jego implemen-tacja składa się z inicjalizacji (w kroku 1) oraz właściwej detekcji (krok 5).Detektor używa zmiennej poz (wykorzystywanej już przez algorytm do okre-ślenia pozycji, na liście L, aktualnie przeglądanego wierzchołka u = L(poz))oraz dodatkowej zmiennej pozMax. Zmienna ta określa największą pozy-cję na liście L przeglądanych dotychczas wierzchołków; jest ona inicjowanawartością zero. Po przeglądnięciu pewnego wierzchołka u = L(poz) w kroku3, położeniu poz := minL−1(u) + 1, minL−1(v) : v ∈ K(u) w kroku4 i nie zadziałaniu warunków stopu z kroków 4 i 5, zmienna pozMax jestmodyfikowana: pozMax := maxpozMax,L−1(u).Właściwa detekcja cyklu o dodatniej długości, odbywa się w kroku 5,

i polega na stwierdzeniu czy zachodzą warunki: (W1) L−1(u) = pozMaxoraz (W2) poz < pozMax. Z własności 5.2 wynika że istnienie cyklu ododatniej długości jest równoważne zajściu zdarzenia Z opisanego w 5.3.1.Dalej pokażemy, że zajście zdarzenia Z jest równoważne spełnieniu warun-ków (W1), (W2) detektora cyklu, w kroku 5 algorytmu. W tym celu przezk = L−1(u) oznaczmy pozycje na liście L wierzchołka u opisywanego w

Page 93: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.4. Analiza eksperymentalna 87

zdarzeniu Z.Najpierw udowodnimy, że jeżeli zajdzie zdarzenie Z, to prawdziwe są wa-

runki (W1), (W2). Zauważmy, że już po pierwszym przeglądnięciu wierz-chołka u i wykonaniu kroku 5 zmienna pozMax = k i nie zmieni swojejwartości aż do zajścia zdarzenia Z, ponieważ algorytm po przeglądnieciutego wierzchołka nie przeglądał żadnego wierzchołka w liście L znajdujące-go się na dalszej pozycji niż k. Stąd wynika, że poczynając od tego momentubędzie zachodził (W1). Drugie przeglądnięcie wierzchołka u oraz przejściedo wierzchołka leżącego na pozycji poz < L−1(u) = k = pozMax impli-kuje bezpośrednio prawdziwość warunku (W2), co kończy dowód w tymprzypadku.Teraz pokażemy, ze spełnienie w kroku 5 warunków (W1), (W2) im-

plikuje zajście zdarzenia Z. Jeżeli w kroku 5 zachodzi warunek (W1) poraz l-ty oznacza to, że algorytm po raz l+1-szy przeglądnął pewien wierz-chołek u = L(pozMax) i jednocześnie do tej pory żaden z wierzchołkówleżących na pozycjach t > pozMax listy L nie był przeglądany. Jeżeli zaj-dzie jednocześnie po raz pierwszy warunek (W2) oznacza to dodatkowo, żealgorytm po przeglądnięciu wierzchołka u w następnej iteracji będzie prze-glądał wierzchołek znajdujący się na pozycji poz < L−1(u) = pozMax wliście L oraz warunek (W1) zaszedł po raz pierwszy (l = 1), co oznacza, żezaszło zdarzenie Z.

5.4 Analiza eksperymentalna

Celem badań jest porównanie szybkości działania zaproponowanego al-gorytmu MDSP w stosunku do znanych z literatury algorytmów FB, MB,MBEP dla grafów G(π) modelujących rozwiązania problemu gniazdowegoz operacjami wielomaszynowymi z nieprzesuwalnymi czynnościami asyn-chronicznymi. Dodatkowo badania dotyczą efektywności zaproponowanychdetektorów cykli o dodatnich długościach dla algorytmów FB, MB, MBEP.Szczegółowy opis sposobu generowania grafów testowych oraz wyniki badańprzedstawiam w dwóch poniższych podrozdziałach.

5.4.1 Sposób generowania przykładów

Porównywane algorytmy testowłem na 3600 przykładowych grafach mo-delujących konkretne rozwiązania (niekoniecznie dopuszczalne) dla 120 in-stancji problemów gniazdowych z operacjami wielomaszynowymi z nieprze-suwalnymi czynnościami asynchronicznymi; dla każdej instancji generowano30 grafów. Problemy gniazdowe użyte w testach są podzielone na 3 klasy

Page 94: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

88 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

SRD, SMD oraz SVD, po 40 instancji w każdej. Instancje problemów w da-nej klasie zróżnicowane są zarówno pod względem liczby maszyn m, zadańr jak i operacji o. Klasy różnią się pomiędzy sobą średnią oraz maksymal-ną liczbą czynności poszczególnych operacji. W kolejnych klasach liczbaczynności przypadająca na jedną operację jest coraz większa, w klasie SRDśrednia liczba wszystkich czynności w klasie SRD waha się od 100 do 600,w SMD – od 85 do 1125 zaś w klasie SVD – od 125 do 1690; patrz [69] lubrozdział 6 tej pracy.Przeprowadzony test składa się z trzech części; w każdej badamy 1200

grafów. W pierwszej części analizujemy czas działania algorytmów dla gra-fów nie zawierających cykli o dodatniej długości, w drugiej i trzeciej – dlagrafów zawierających co najmniej jeden taki cykl.Grafy dla pierwszej części testów generowane są następująco. Dla każdej

z 120 instancji problemu gniazdowego wygenerowano 10 różnych uszerego-wań dopuszczalnych wykorzystując 10 algorytmów konstrukcyjnych, opisa-nych w pracy [70] oraz w rozdziale 6 tej pracy. Następnie dla wszystkichuszeregowań utworzono odpowiadające im grafy G(π) uzyskując po 400grafów dla każdej z trzech klas. Grafy te charakteryzują się brakiem cyklidodatniej długości.Grafy dla drugiej części testów utworzono losując po 10 uszeregowań

dla każdej z instancji problemu w taki sposób, by żadne z uszeregowań niereprezentowało rozwiązania dopuszczalnego. Następnie dla każdego z tychuszeregowań utworzono odpowiadający mu grafow G(π) uzyskując znowupo 400 grafów dla każdej z klas. Każdy z otrzymanych w ten sposób grafówzawiera co najmniej jeden cykl dodatniej długości.Grafy dla trzeciej części testów tworzone są podobnie jak w drugiej

części. Jednakże wszystkie dodatnie cykle w tych grafach posiadają pewnąszczególną własność: żaden z cykli nie jest wykrywany podczas fazy wstęp-nej algorytmu MDSP (krok 1).

5.4.2 Wyniki testów

W przeprowadzonym teście, ocenie podlega czas działania poszczegól-nych algorytmów. Wszystkie badania zostały przeprowadzone na kompu-terze klasy PC z procesorem Athlon z zegarem 1000 MHz. Dalej omówięuzyskane wyniki w kolejności odpowiadającej kolejnym częściom testów.W tabeli 5.1 umieszczone są sumy czasów wyznaczania długości ścieżki

krytycznej w 400 grafach G(π), dla każdej klasy przykładów, przez algo-rytmy literaturowe FB, MB, MBEP oraz zaproponowany nowy algorytmMDSP; wiersz „All” zawiera łączny czas obliczeń dla wszystkich klas. Do-datkowo w tej tabeli, jak i w dwóch następnych, podano odpowiednie wy-

Page 95: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.4. Analiza eksperymentalna 89

Tabela 5.1: Suma czasów wyznaczenia długości ścieżki krytycznej 400 gra-fach G(π) danej klasy przykładów; grafy nie zawierają cykli o dodatniejdługości

KlasaCzas pracy mierzony w [s] dla algorytmów

FB MB MBEP MDSP MDSP∗

SRD 0,29 0,47 0,13 0,06 0,06

SMD 1,43 2,46 1,06 0,19 0,18

SVD 3,98 7,28 4,73 0,35 0,34

All 5,69 10,21 5,92 0,60 0,58

niki dla zmodyfikowanej wersji algorytmu MDSP, zwanej dalej algorytmemMDSP∗. Modyfikacja ta wynika ze spostrzeżenia, że w ramach jednej in-stancji problemu grafy G(π) różnią się jedynie łukami kolejnościowymi;w algorytmach popraw przy rozwiązywaniu konkretnej instancji problemuzmieniają się tylko te łuki. Pozwala to na pominięcie obliczeń w kroku 2.Dokładniej obliczenia te są przeprowadzane tylko raz dla danej instancji ipóźniej przy uruchamianiu algorytmu MDSP dla poszczególnych permuta-cji π tej instancji, nie muszą już być wykonywane.

Z analizy tabeli 5.1 wynika, że w przypadku gdy graf G(π) nie zawieracykli o dodatniej długości, proponowany algorytm MDSP działa ponad 9razy szybciej niż FB. Co więcej, im większa jest liczba wierzchołków (czyn-ności) tym działa szybciej; dla grupy SVD około 11 razy szybciej niż algo-rytm FB. W stosunku do pozostałych algorytmów różnica ta jest jeszczewiększa. Tak duża przewaga algorytmu MDSP wynika, moim zdaniem, z„równoczesnego” zwiększenia wartości dolnych ograniczeń wszystkich czyn-ności danej operacji (w pozostałych algorytmach zwiększenie tych wartościodbywa się poprzez kolejne relaksacje łuków operacyjnych) oraz bardzo do-brej w sensie minimalizacji liczby przeglądanych wierzchołków, kolejnościprzeglądanych wierzchołków.

Zadziwiający fakt jakim jest prawie dwukrotna przewaga (w sensie cza-su) algorytmu FB nad algorytmem MB oraz niewielka, ale zauważalna prze-waga nad algorytmem MBEP, skłoniła mnie do dokładniejszego zbadaniatego zjawiska. Po dodatkowych testach stwierdziłem, że algorytm FB doko-nuje relaksacji jednego łuku (u, v) około cztery razy szybciej niż algorytmyMB, MBEP. Wynika to stąd, że algorytm MB, oprócz bezpośrednich czyn-ności związanych z relaksacją łuku (u, v), musi wykonywać jeszcze czyn-ności ”pośrednie” polegające na obsłudze kolejki L (pobranie wierzchołka

Page 96: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

90 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

Tabela 5.2: Suma czasów wykrycia cyklu o dodatniej długości w 400 grafachG(π) danej klasy przykładów; grafy zawierają cykle o dodatniej długości

Czas pracy mierzony w [s] dla algorytmów

Klasa FB MB MBEP MDSP MDSP∗

I UB I UB UB DW1 DW2 DW2

SRD 3,69 0,11 8,80 2,40 0,05 0,01 0,01 0,01

SMD 13,25 0,25 30,80 5,37 0,13 0,02 0,01 0,01

SVD 29,12 0,43 68,46 8,87 0,28 0,04 0,02 0,02

All 46,06 0,79 108,05 16,64 0,46 0,08 0,04 0,04

u z kolejki, sprawdzenie czy wierzchołek v jest w kolejce oraz ewentualnewprowadzenie go na koniec kolejki). Dodatkowo algorytm MBEP wprowa-dza niektóre wierzchołki na początek kolejki co jeszcze bardziej wydłużaodpowiednie procedury. Jednocześnie moje badania pokazały, że algorytmMB relaksuje prawie o połowę mniej łuków niż algorytm FB, zaś algorytmMBEP – prawie czterokrotnie mniej. Połączenie tych dwóch faktów wy-jaśnia zaobserwowane zjawisko. Warto tu jeszcze zauważyć, że przewagaalgorytmu FB nad algorytmem MB zmniejszy się, jeżeli zwiększy się liczbarelaksowanych przez niego łuków. Liczba ta zależy bardzo istotnie od ko-lejności wykonywanych relaksacji w ramach jednej serii. W obrębie danejoperacji j łuki (j, i) są analizowane w kolejności (j, 1), (j, 2), . . . , (j,mj),natomiast operacje rozpatrywane są w porządku technologicznym). Przy-jęta kolejność okazała się bardzo efektywna. Przykładowo, przy kolejnościlosowej czas pracy algorytmu FB wzrasta z 5,69 [sec] do 7,97 [sec].W tabeli 5.2 umieszczone są sumy czasów wykrycia cyklu o dodatniej

długości w 400 grafach G(π), dla każdej klasy przykładów, przez algorytmyliteraturowe FB, MB, MBEP oraz zaproponowany algorytm MDSP. Trzeciwiersz w tej tabeli (jak i następnej) identyfikuje zastosowany typ detekto-ra cyklu o dodatniej długości. Symbol „I” oznacza zastosowanie detektorazwiązanego z relaksacjami poszczególnych łuków. Dla algorytmu FB jestto klasyczny detektor zliczający liczbę wykonanych serii relaksacji, z ko-lei dla algorytmu MB – oznacza detektor zliczający liczbę relaksowanychłuków. Symbol „UB” zarówno dla algorytmów FB, MB jak i algorytmuMBEP oznacza detektor oparty na porównywaniu aktualnej wartości dol-nego ograniczenia przeglądanego wierzchołka z górnym oszacowaniu UBdługości najdłuższej ścieżki w grafie (patrz rozdział 5.2). Detektor dedyko-wany algorytmowi MBEP oparty na własności 5.1 i opisany w rozdziale 5.2

Page 97: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

5.4. Analiza eksperymentalna 91

oznaczony jest symbolem „DW1”, natomiast detektor dedykowany algoryt-mowi MDSP oparty na własności 5.2 i opisany w rozdziale 5.3.2 oznaczonyjest symbolem „DW2”.

Z tabeli 5.2 wynika, że wśród algorytmów literaturowych z powszech-nie stosowanymi detektorami cyklu (I lub UB) najszybciej wykrywa cyklalgorytm MBEP z detektorem UB. Zastosowanie dedykowanego detektoracyklu DW1 pozwoliło jednak na prawie 6-krotne skrócenie czasu pracy te-go algorytmu; z 0,46 [sec] do 0,08 [sec]. Jednakże proponowany algorytmMDSP działa dwukrotnie szybciej niż MBEP z detektorem DW1; skróce-nie czasu z 0,08 [sec] do 0,04 [sec]. Reasumując oznacza to ponad 11-krotneskrócenie czasu w stosunku do najlepszego algorytmu literaturowego MBEPz detektorem UB; w przypadku klasy SVD z największa liczbą czynności(wierzchołków) skrócenie to jest aż 14-krotne (z 0,28 [sec] do 0,02 [sec]).Jedną z przyczyn tego bardzo pozytywnego zjawiska, jest możliwość wykry-wania cyklu przez algorytm MDSP już w pierwszym etapie fazy wstępnej(krok 1).

Dalsza analiza tabeli 5.2 pozwala stwierdzić, że detektor cyklu I (pro-ponowany w literaturze) do algorytmów FB, MB jest znacznie gorszy niżsugerowany w tej pracy detektor UB. Zdecydowanie krótszy czas wykryciacyklu przez algorytm FB z detektorem UB w stosunku do algorytmu MBz tym samym detektorem wyjaśniamy tym, że algorytm MB potrzebujeprawie 4 razy więcej czasu niż FB do zrelaksowania jednego łuku oraz wodróżnieniu od grafów nie zawierających cykli (pierwsza część testu) relak-suje około 7-razy więcej łuków niż algorytm FB. Z moich badań wynika, żetak mała liczba relaksowanych łuków przez algorytm FB wynika ze struktu-ry grafu G(π) oraz, jak już wspominaliśmy, z właściwie dobranej kolejnościwykonywanych relaksacji w ramach poszczególnych serii.

Część trzecia podobnie jak poprzednia, porównuje czasy pracy algo-rytmów pracujących na grafach zawierających dodatnie cykle. Jednakżetym razem wszystkie grafy testowe tworzone są w taki sposób, aby algo-rytm MDSP nie był w stanie wykryć dodatniego cyklu w kroku 1. Wy-niki przedstawiono w tabeli 5.3. W stosunku do najszybszego algorytmuliteraturowego (algorytm MBEP z detektorem UB), algorytm MDSP jestprawie 3-krotnie szybszy. Najszybszym jest jednak teraz algorytn MBEP zdedykowanym detektorem DW1; algorytm MDSP działa ponad 2-krotniedłużej. Jest to spowodowane tym, że MDSP musi wykonać stosunkowo pra-cochłonne kroki inicjalizacyjne. Jednakże różnica ta (0,04-0,10=-0,06 [sec])jest pomijalnie mała w stosunku do różnicy czasów pracy tych algoryt-mów w pierwszej części testu (5,92-0,60=5,32[sec]). Stąd wynika, że jużprzy prawdopodobieństwie nie istnienia cyklu o dodatniej długości więk-

Page 98: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

92 Rozdział 5. Algorytmy wyznaczania wartości najdłuższej drogi. . .

Tabela 5.3: Suma czasów wykrycia cyklu o dodatniej długości w 400 grafachG(π) danej klasy przykładów; grafy zawierają cykle o dodatniej długości,które nie są wykrywane w fazie wstępnej algorytmu MDSP

Czas pracy mierzony w [s] dla algorytmów

Klasa FB MB MBEP MDSP MDSP∗

I UB I UB UB DW1 DW2 DW2

SRD 3,54 0,37 8,61 2,89 0,05 0,01 0,02 0,02

SMD 13,38 0,50 30,51 5,57 0,10 0,01 0,03 0,02

SVD 29,85 0,30 67,72 8,18 0,13 0,02 0,05 0,03

All 46,77 1,16 106,84 16,63 0,27 0,04 0,10 0,07

szym niż 0,01, przewaga algorytmu MDSP staje się oczywista. Warto tuzauważyć, że w praktycznych zastosowaniach tych algorytmów (w różnychmetodach popraw) wspomniane prawdopodobieństwo jest rzędu 0,5. Po-dobnie jak poprzednio algorytmy FB i MB pracują bardzo wolno.

5.5 Wnioski i uwagi

Z przeprowadzonych badań testowych wynikają trzy następujące kon-kluzje. Po pierwsze, zastosowanie bardzo prostego detektora cyklu UB, za-miast detektora I, znacznie skraca proces detekcji (patrz algorytm FB iMB w tabelach 5.2 i 5.3). Czas ten jednak pozostaje dalej znacznie więk-szy niż czas pracy algorytmu MBEP z tym właśnie detektorem. Po drugie,zaproponowany dedykowany detektor DW1 dla algorytmu MBP, umożliwiłznaczne zmniejszenie czasu detekcji. I wreszcie, po trzecie i najważniejsze,zaproponowany nowy algorytm MDSP z dedykowanym detektorem DW2okazał się, łącznie na wszystkich testach, ponad 8-krotnie szybszy niż ak-tualnie najlepszy algorytm MBEP z detektorem DW1. Modyfikacja algo-rytmu MDSP (algorytm MDSP∗) wynikająca ze specyfiki jego zastosowańpozwoliła przyspieszyć czas pracy jeszcze o 10%.Reasumując zastosowanie nowego algorytmu MDSP∗ pozwoli na bardzo

znaczące skrócenie czasu wykonywania jednego kroku algorytmów popraw(algorytmy tabu i symulowanego wyżarzania) proponowanych w dalszychrozdziałach tej pracy. Co więcej, algorytmy MDSP, MDSP∗ po drobnychmodyfikacjach, mogą stanowić interesującą alternatywę dla algorytmów li-teraturowych w przypadku grafów cyklicznych o ogólnej postaci.

Page 99: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Rozdział 6

Jednosposobowy problemgniazdowy z czynnościamiasynchronicznymi

W aktualnym rozdziale rozważa się problem szeregowania zbioru zadańprodukcyjnych, w którym:

• zadania są ciągami operacji (problem gniazdowy),

• dla każdej operacji określony jest jeden ustalony sposób jej wykonania(jednosposobowy tryb realizacji),

• wykonanie danej operacji może wymagać użycia kilku maszyn (ope-racje wielomaszynowe),

• operacje są dekomponowane na czynności, z których każda angażujejedną dedykowaną maszynę,

• względne położenie czynności danej operacji, jest ustalone (czynnościnieprzesuwalne)

• czynności danej operacji mogą rozpoczynać i/lub kończyć się w róż-nych momentach (czynności asynchroniczne).

Precyzyjne sformułowanie badanego problemu, wraz z odpowiednim mode-lem permutacyjno-grafowym przedstawione zostało w rozdziale 4.1. Szcze-gólnym przypadkiem analizowanego tutaj problemu jest problem gniazdo-wy z (nieprzesuwalnymi) czynnościami synchronicznymi, znany w literatu-rze od kilku lat. Problem ten był dość intensywnie badany z umiarkowanymsukcesem [17]. Mimo przyjęcia silnego ograniczającego założenia o synchro-niczności czynności nie udało się uzyskać rezultatów zadawalających prak-tyków.

93

Page 100: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

94 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

W wyniku tych badań zaproponowano w [17] kilka algorytmów kon-strukcyjnych bazujących na odpowiednio dobranych regułach prioryteto-wych oraz algorytm popraw typu tabu. Niestety proponowane algorytmykonstrukcyjne produkowały rozwiązania bardzo odległe od optymalnych,tj. o błędzie względnym wynoszącym ponad 150%, dla przykładów o prak-tycznych rozmiarach. Z kolei algorytm oparty na technice tabu z pracy [17],dostarczając istotnie lepszych rozwiązań, charakteryzował się czasem obli-czeń rzędu kilkunastu godzin dla stosunkowo niewielkich instancji. Istotnyprzełom nastąpił w momencie pojawienia się monografii Nowickiego [77].Podano tam bazując na specyficznych własnościach problemu z czynnościa-mi synchronicznymi bardzo efektywny czasowo i jakościowo nowy algorytmtypu tabu. Podejście to dało nadzieję na znaczące rozszerzenie rozpatrywa-nych problemów w kierunku zagadnień praktycznych (operacji z czynno-ściami asynchronicznymi).Rozdział ten bazuje na modelu operacji wielomaszynowej z grupy II,

podanym w rozdziale 3.3.2 oraz permutacyjno-grafowym modelu proble-mu zaproponowanym w rozdziale 4.1.2. Struktura bieżącego rozdziału jestnastępująca. Rozpoczynam od przedstawienia i udowodnienia charaktery-stycznych własności problemu. Następnie podaję eliminacyjne własnościścieżki krytycznej oraz wprowadzam cztery definicje sąsiedztw. Pierwsze znich ze względu na swój rozmiar, ma charakter czysto teoretyczny. Drugiestanowi podstawę do budowy dwóch kolejnych sąsiedztw wykorzystywa-nych w dalej proponowanych algorytmach konstrukcyjnych oraz algoryt-mach popraw. Rozdział kończy analiza eksperymentalna przeprowadzonana szerokiej klasie przykładów testowych.

6.1 Własności problemu w kontekście metod LS

Celem tego rozdziału jest zdefiniowanie, dla rozważanego problemu,podstawowych elementów metody LS (ang. local search). Podstawowymelementem metod LS (SA,TS,DS i inne) jest przejście od rozwiązania bie-żącego do rozwiązania kolejnego, wybranego losowo lub deterministycznie.Transformację tą określa się mianem ruchu [2, 77]. Precyzyjnie ruch jestdefiniowany jako wzajemnie jednoznaczna funkcja v taka, że v : X → Xoraz v(x) 6= x, x, v(x) ∈ X. Wartość tej funkcji dla danego rozwiązaniabędziemy oznaczać przez x(v) zamiast tradycyjnie przez v(x). Dla każdegox ∈ X określa się pewien, zbiór ruchów V (x) generujący otoczenie. Przy de-finicji tego zbioru wymaga się, żeby zbiór x(v′) 6= x(v′′) dla każdego v′ 6= v′′,v′, v′′ ∈ V (x). W klasycznych problemach szeregowania, w których rozwią-zanie reprezentowane jest w postaci permutacji lub zestawu permutacji,

Page 101: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 95

najczęściej stosowanymi są ruchy typu „wstaw” (ang. insert), „wymień”(ang. swap) oraz „wymień sąsiednie” (ang. adjacent swap). Przykładowodla rozwiązania reprezentowanego przez permutację π ruch typu insert po-lega na wyciągnięciu pewnego elementu x z tej permutacji i wstawieniu gona pewną nową pozycję. Ruch typu wymień polega na zamianie miejsca-mi dwóch elementów permutacji π, natomiast ruch typu wymień sąsiednie,zamienia dwa elementy znajdujące się na sąsiednich pozycjach w π.Drugim podstawowym pojęciem w algorytmach popraw jest sąsiedz-

two N(x) danego rozwiązania x ∈ X. Jest to zbiór wszystkich rozwią-zań, powstałych wyniku wykonania ruchu v ∈ V (x) z rozwiązania x;N(x) = x(v) : v ∈ V (x).Jak już to opisałem w rozdziale 4.1.1, rozwiązania badanego tutaj pro-

blemu, są reprezentowane przez zestaw permutacji π = (π1, . . . , πm), którybędziemy dalej nazywać kolejnością. Przypominam, że kolejność π repre-zentuje rozwiązanie dopuszczalne wtedy i tylko wtedy, gdy odpowiadającyjej graf G(π) nie zawiera cykli o dodatniej długości.

6.1.1 Ruch

Algorytmy popraw, prezentowane w dalszej części tego rozdziału, wy-korzystują sąsiedztwo kolejności π ∈ Π oparte na ruchach typu wstaw.Jednakże, z definicji ruchów typu zamień oraz zamień sąsiednie wynika, żesą one pewnymi szczególnymi przypadkami ruchów typu wstaw. Dlategowszelkie własności ruchów typu wstaw (po drobnych modyfikacjach), sątakże prawdziwe dla ruchów typu wymień oraz wymień sąsiednie.Przystąpimy teraz do precyzyjnego zdefiniowania ruchu. Niech

zπ,j = (zπ,j1 , . . . , zπ,jm )

oznacza zestaw pozycji czynności operacji j w kolejności π = (π1, . . . , πm),gdzie πl(z

π,jl ) = (j, l) dla l ∈ Mj ; dla prostoty oznaczeń,wektor z

π,j mazawsze m składowych, przy czym przyjmujemy zπ,jl = 0 jeśli maszyna l niejest używana do wykonania operacji j. Niech

Zπ,j =

z = (z1, . . . , zm) : 1 ¬ zl ¬ nl, l ∈Mj , zl = 0, l 6∈Mj

(6.1)

oznacza zbiór wszystkich zestawów pozycji, jakie mogą zajmować czynnościoperacji j w kolejności π. Zachodzi zπ,j ∈ Zπ,j oraz |Zπ,j | =

l∈Mj nl.

Ruch v = (j, z) typu wstaw polega na przesunięciu wszystkich czynnościoperacji j na pozycje określone przez zestaw z = (z1, . . . , zm) ∈ Zπ,j\zπ,j;otrzymaną kolejność oznaczamy przez π(v). Dokładniej, odbywa się to w

Page 102: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

96 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

trzech fazach: (i) pobranie czynności (j, l) z pozycji w = zπ,jl , (ii) przesu-nięcie czynności πl(w + 1), . . . , πl(zl) o jedną pozycję w lewo, jeżeli w < zllub czynności πl(zl), . . . , πl(w − 1) o jedną pozycję w prawo, jeżeli w > zloraz (iii) wstawienie czynności (j, l) na zwolnioną pozycję zl; wyżej opisanedziałania należy wykonać dla każdej z maszyn l ∈ Mj . Zbiór wszystkichruchów typu wstaw dla operacji j, oznaczamy przez

V (π, j) =

v = (j, z) : z ∈ Zπ,j \ zπ,j

(6.2)

Liczność tego zbioru wynosi |V (π, j)| =∏

l∈Mj nl−1 i jest o jeden mniejsza

niż liczność zbioru wszystkich możliwych pozycji operacji j w π, ponieważzakładamy, że każdy ruch musi spowodować przesunięcie co najmniej jednejczynności. Zauważmy, że ruchem nie jest więc zestaw działań polegający nawyciągnięciu operacji j z kolejności π i ponownym wstawieniu jej na zestawpozycji zπ,j . Oznacza to, że dla każdego ruchu v = (j, z) ∈ V (π, j) prze-mieszczającego w kolejności π czynności operacji j na pozycję z zachodzi

∃1¬i¬nl, l∈Mj πl(i) 6= π(v)l(i). (6.3)

Zbiory ruchów V (π, j) wszystkich operacji j ∈ O tworzą zbiór

V (π) =⋃

j∈O

V (π, j). (6.4)

zawierający wszystkie ruch typu wstaw jakie można wykonać z rozwiązaniareprezentowanego kolejnością π.

Przykład 6.1 Przykład ten ilustruje wprowadzone pojęcie ruchu. W sys-temie produkcyjnym należy wykonać 7 operacji numerowanych kolejnymiliczbami 1, 2, . . . , 7; operacja 5 składa się z jednej czynności (5, 1), ope-racja 2 – z dwóch czynności (2, 1), (2, 3), podczas gdy pozostałe operacjek ∈ 1, 3, 4, 6, 7 składają się z trzech czynności (k, 1), (k, 2), (k, 3). Roz-ważmy kolejność π = (π1, π2, π3), gdzie π1 = ((1, 1), (2, 1), . . . , (7, 1)), π2 =((3, 2), (1, 2), (4, 2), (6, 2), (7, 2)) oraz π3 = ((1, 3), (3, 3), (4, 3), (2, 3), (6, 3),(7, 3)). Zwróćmy uwagę na operację j = 2. Dla tej operacji zπ,2 = (2, 0, 4)oraz Zπ,2 zawiera 7 · 6 = 42 zestawy pozycji. Po wykonaniu ruchu v =(2, z), dla z = (3, 0, 2) otrzymujemy kolejność π(v) = (π(v)1, π(v)2, π(v)3),gdzie π(v)1 = ((1, 1), (3, 1), (2, 1), (4, 1), . . . , (7, 1), π(v)2 = π2 oraz π(v)3 =((1, 3), (2, 3), (3, 3), (4, 3), (6, 3), (7, 3)). Kolejność ta została otrzyma z ko-lejności π przez przesunięcie na maszynie 1 czynności (2, 1) o jedną pozycjęw prawo oraz przesunięcie na maszynie 3 czynności (2, 3) o dwie pozycje wlewo. Omawiane w przykładzie kolejności π oraz π(v) zostały przedstawionena rys. 6.1, a przesuwane czynności operacji j zostały wyróżnione poprzezzaciemnienie.

Page 103: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 97

π 1

π 2

π 3

π (v)1

π (v)2

π (v)3

π (v)

π

1,1 2,1 3,1 4,1 5,1 6,1 7,1

3,2 1,2 4,2 6,2 7,2

1,3 3,3 4,3 2,3 6,3 7,3

1,1 2,1 3,1 4,1 5,1 6,1 7,1

3,2 1,2 4,2 6,2 7,2

1,3 3,3 4,3 2,3 6,3 7,3

Rysunek 6.1: Przykładowy ruch v = (j, z), j = 2, z = (3, 0, 2) wykonanyna kolejności π = (π1, π2, π3); zπ,j = (2, 0, 4)

Jak już wspominaliśmy wykonanie ruchu v = (j, z) ∈ V (π, j) (dla ko-lejności π) składa się z trzech faz. Ponieważ takie rozbicie ruchu na fazyjest wykorzystywane do jego oceny omówimy poszczególne fazy bardziejdokładnie. Niech α będzie kolejnością otrzymaną po wykonaniu fazy pierw-szej, tzn. powstałą po usunięciu czynności operacji j z π. Zauważmy, że grafG(α) otrzymujemy zG(π)1 przez usunięcie łuków (πl(z

π,jl −1), πl(z

π,jl )) oraz

(πl(zπ,jl ), πl(z

π,jl + 1)) i dodanie łuku (πl(z

π,jl − 1), πl(z

π,jl + 1)), l ∈Mj . W

sytuacjach szczególnych, jeżeli zπ,jl ∈ 1, nl dla pewnej maszyny l ∈ Mj ,

to tylko jeden łuk „związany” z tą maszyną jest usuwamy i żaden nie jestdodawany. Co więcej, jeżeli nl = 1, to żaden łuk nie jest usuwany ani do-dawany.Wykonanie drugiej i trzeciej fazy ruchu v = (j, z) można interpreto-

wać jako wstawienie czynności operacji j na odpowiednie pozycje określoneprzez zestaw pozycji z = (z1, . . . , zm), odnoszący się do kolejności α. Wsta-wienie to oznacza, że czynności αl(zl), αl(zl + 1), . . . , αl(nl − 1), l ∈ Mj sąprzesuwane o jedną pozycje w prawo, a na zwolnione pozycje wstawiane są

1Definicja grafu G(π) została podana w 4.1.2.

Page 104: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

98 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

czynności operacji j; jeżeli zl = nl = |αl| + 1 to żadne czynności w per-mutacji αl nie są przesuwane. Taka interpretacja ruchu (czynności operacjij są wstawiane na pozycje w kolejności α, a nie w kolejności π) jest bar-dzo wygodna do dalszych rozważaniach, ponieważ czynności są przesuwanezawsze w prawo. Niech dla operacji j

ZP (j) =

z = (z1, . . . , zm) : 1 ¬ zl ¬ nl, l ∈Mj , zl = 0, l 6∈Mj

, (6.5)

oznacza zestaw pozycji w kolejności α na jakie można wstawić czynnościoperacji j 2. Jest oczywiste, że ZP (j) = Zπ,j .Omówione powyższej poszczególne fazy ruchu v = (j, z) zilustrujemy

na danych z rys. 6.1; j = 2, z = (3, 0, 2). Po usunięciu z kolejności π 3

czynności (2, 1), (2, 3) operacji j = 2 (etap pierwszy) dostaniemy kolej-ność α = (α1, α2, α3), gdzie α1 = ((1, 1), (3, 1), (4, 1), . . . , (7, 1)), α2 = π2,α3 = ((1, 3), (3, 3), (4, 3), (6, 3), (7, 3)). Z kolei graf G(α) otrzymujemy z gra-fu G(π) przez: (maszyna 1) usunięcie łuków ((1, 1), (2, 1)), ((2, 1), (3, 1)) idodanie łuku ((1, 1), (3, 1)) oraz (maszyna 3) usunięcie łuków ((4, 3), (2, 3)),((2, 3), (6, 3)) i dodanie łuku ((4, 3), (6, 3)). Graf ten zawiera oczywiściewierzchołki (2, 1), (2, 3) odpowiadające czynnością operacji j. Jednak teraznie dochodzą do nich (ani nie wychodzą z nich) żadne łuki kolejnościowe.Pozostałe łuki „związane” z tymi wierzchołkami (tzn. łuki operacyjne orazłuki technologiczne) są zachowane. Wykonanie drugiej i trzeciej fazy ruchuv = (j, z) polega na wstawieniu czynności (2, 1), (2, 3) odpowiednio na po-zycje określone przez zestaw pozycji z = (3, 0, 2) ∈ ZP (2) w kolejności α,tzn. czynność (2, 1) jest wstawiana na pozycję 3 w α1, zaś czynność (2, 1) –na pozycję 2 w α3. W konsekwencji otrzymujemy kolejność β = π(v) podanąw trakcie omawiania rys. 6.1.

6.1.2 Ocena ruchu

Jakość ruchu v = (j, z) wykonanego dla kolejności π oceniamy na pod-stawie relacji pomiędzy Cmax(π) a Cmax(β), gdzie β = π(v). Ocena ruchupoprzez bezpośrednie wyliczenie wartości Cmax(π(v)) wydaje się oczywistai nie będzie dalej rozważana, ze względu na duży nakład obliczeń. Zamiasttego będziemy oceniać ruch poprzez analizę specyficznych dróg w grafieG(α). Wartość Cmax(β) jest ściśle związana z długością najdłuższej drogiprzechodzącej przez operację j w grafie G(β). Mówimy, że droga w grafie

2Formalnie zbiór ZP (j) powinien być indeksowany przez π. Jednakże dla uproszczenianotacji indeks ten będzie pomijany.3Kolejność ta na maszynie 1 ma n1 = 7 elementów, na maszynie 2 – n2 = 5 elementów,

a na maszynie 3 – n3 = 6 elementów.

Page 105: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 99

G(β) przechodzi przez operację j ∈ O jeśli przechodzi przez co najmniejjeden z wierzchołków odpowiadających czynnościom operacji j. Dalej po-każę, że wyliczenie długości tej drogi można przeprowadzić całkowicie nabazie rα(u), qα(u), u ∈ N (tzn. nie trzeba wyliczać wartości rβ(u), qβ(u),u ∈ N), co przyśpiesza znacząco proces oceny ruchu 4. W tym celu wpro-wadzę dodatkowe oznaczenia oraz udowodnię pewną własności. Niech

rα(αl(i)) = rα(αl(i))− ra(j,l), i = 1, . . . , nl − 1, l ∈Mj , (6.6)

qα(αl(i)) = qα(αl(i))− qa(j,l), i = 1, . . . , nl − 1, l ∈Mj (6.7)

oznaczają odpowiednio długość najdłuższej drogi w grafie G(α) dochodzą-cej do (wychodzącej z) wierzchołka αl(i) łącznie z wagą tego wierzchoł-ka, pomniejszoną o głowę (ogon) wstawianej czynności (j, l)5; qa(j,l) =tj − ra(j,l) − p(j,l), gdzie tj = maxrax + px : x ∈ Nj, patrz rozdział3.3.26. Niech j+ (j−) oznacza operację będącą bezpośrednim następnikiem(poprzednikiem) technologicznym operacji j; jeżeli operacja j nie ma na-stępnika (poprzednika) technologicznego, to przyjmujemy j+ = 0 (j− = 0).Dla każdego zestawu pozycji z = (z1, . . . , zm) ∈ ZP (j) definiujemy wielkość

h(z) = R(z) + tj +Q(z) (6.8)

gdzie

R(z) = max

rα(u+j−), maxl∈Mjrα(αl(zl − 1))

, (6.9)

Q(z) = max

qα(u−j+), maxl∈Mjqα(αl(zl))

; (6.10)

przyjmujemy, że αl(0) = (0, 0), αl(nl) = (0, 1), l ∈ Mj , rα((0, 0)) =qα((0, 1)) = −∞, rα((0, 1)) = qα((0, 0)) = ∞, u+0 = (0, 0), u

−0 = (0, 0)

oraz rα((0, 0)) = qα((0, 0)) = 0. Przypominamy, że u+t (u−t ) jest czynno-

ścią operacji t ∈ O, która kończy się najpóźniej (rozpoczyna się najwcze-śniej), patrz także rozdział 3.3.2, 3.4.1. Stąd u+j− oznacza czynność operacjij− (będącej poprzednikiem technologicznym operacji j), która kończy się

4Przypominam, że rγ(u), (qγ(u)) oznacza wartość najdłuższej drogi w grafie G(γ)dochodzącej do (wychodzącej z) wierzchołka u, łącznie z wagą tego wierzchołka; patrzrozdział 4.1.2.5Jest to czynność operacji j, wykonywana na maszynie l, która będzie wstawiana na

pozycję zl w permutacji αl.6Formalnie wielkości rα(αl(i)), q

α(αl(i)) powinny być indeksowane przez zestaw zpozycji, na które w kolejności α są wstawiane czynności operacji j. Jednakże dla uprosz-czenia notacji indeks ten pomijamy.

Page 106: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

100 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

najpóźniej. Symetrycznie u−j+ oznacza czynność operacji j+ (będącej na-

stępnikiem technologicznym operacji j), która rozpoczyna się najwcześniej.Poniższa własność „wiąże” wielkość h(z) z wartością najdłuższej drogi (wgrafie G(π(v))) przechodzącej przez operację j, której wszystkie czynnościzostały umieszczone na pozycjach zestawu z ∈ ZP (j) w kolejności określo-nej przez α.

Własność 6.1 Niech π ∈ Π jest kolejnością dopuszczalną. Jeżeli ruch v =(j, z), z = (z1, . . . , zm) ∈ ZP (j), j ∈ O generuje dopuszczalną kolejnośćβ = π(v), to długość najdłuższej drogi w grafie G(β), przechodzącej przezoperację j wynosi h(z).

Dowód. Niech Dz oznacza najdłuższą drogę przechodzącą przez operacjęj w grafie G(β), β = π(v), v = (j, z). Dalej podamy odpowiedni wzór okre-ślający długość d(Dz) tej drogi7. Na początek zauważmy, że długość d(Da,b)drogi Da,b = ((j, x1), (j, x2), . . . , (j, xk)) z wierzchołka (j, a) = (j, x1) do(j, b) = (j, xk), przechodzącej tylko przez wierzchołki czynności operacji j,wynosi 8

d(Da,b) =k∑

i=1

p(j,xi) +k∑

i=2

w(j,xi−1),(j,xi) (6.11)

=k∑

i=1

p(j,xi) +k∑

i=2

ra(j,xi) −k∑

i=2

ra(j,xi−1) −k∑

i=2

p(j,xi−1)

= p(j,xk) + ra(j,xk) − ra(j,x1) = −ra(j,a) + ra(j,b) + p(j,b).

Rozważmy najpierw przypadek, gdy operacja j nie posiada następnika ipoprzednika technologicznego; j+ = 0 i j− = 0. Wtedy długość drogi Dzjest określona przez

d(Dz) = maxb∈Mj

maxa∈Mj

rβ(αa(zl − 1)) + d(Da,b)

+ qβ(αb(zl))

= maxb∈Mj

maxa∈Mj

rβ(αa(za − 1))− ra(j,a) + ra(j,b) + p(j,b)

+ qβ(αb(zb))

.

patrz także rys. 6.2. Ponieważ tj = ra(j,b)+p(j,b)+qa(j,b) dla każdego b ∈Mj ,powyższy wzór redukuje się do postaci

d(Dz) = maxb∈Mj

maxa∈Mj

rβ(αa(za − 1))− ra(j,a) + tj − qa(j,b)

+ qβ(αb(zb))

7Przypominamy, że przez d(w) oznaczamy długość pewnej drogi w traktowanej jakociąg pewnej liczby k wierzchołków w = (w1, . . . , wk).8Obciążenie łuku operacyjnego (x, y) jest równe wx,y = ray − rax − px, patrz 3.16.

Page 107: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 101

j

j +

j,a

j,b αb(zb)

αa(za-1) u+

j –

u – j +

j –

Rysunek 6.2: Fragment grafu G(β) z zaznaczonymi ciemnym kolorem czyn-nościami operacji j; czynności operacji j są wstawiane na pozycje w kolej-ności α określone przez zestaw z ∈ ZP (j)

= maxb∈Mj

maxa∈Mj

rβ(αa(za − 1))− ra(j,a)

+ tj + qβ(αb(zb))− qa(j,b)

= maxl∈Mj

rβ(αl(zl − 1))− ra(j,l)

+ tj +maxl∈Mj

qβ(αl(zl))− qa(j,l)

.

Uwzględnimy teraz dodatkowo łuki technologiczne. Zauważmy naj-pierw, że łuk technologiczny (u+j− , u

−j ) łączący poprzednika technologiczne-

go z operacją j, dochodzi do wierzchołka, który ma zerową głowę rau−j= 0.

Podobnie, łuk technologiczny (u+j , u−

j+) łączący operację j z następnikiemtechnologicznym wychodzi z wierzchołka, który ma zerowy ogon qau+

j= 0.

Spostrzeżenie to, wraz z rozumowaniem analogicznym do rozumowaniaprzeprowadzonego na początku dowodu doprowadza nas do ostatecznej po-staci wzoru na długość d(Dz) najdłuższej drogi Dz przechodzącej przez

Page 108: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

102 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

operację j,

d(Dz) = max

rβ(u+j−), maxl∈Mj

rβ(αl(zl − 1))− ra(j,l)

+

tj +max

qβ(u−j+), maxl∈Mj

qβ(αl(zl))− qa(j,l)

(6.12)

Jednak powyższa postać wzoru na d(Dz) różni się od wartości h(z) (patrz(6.8)) tym, że w (6.12) używa się wartości rβ i qβ , zamiast rα i qα. Dalejpokażę jednak następujące równości:

max

rβ(u+j−), maxl∈Mj

rβ(αl(zl − 1))− ra(j,l)

= R(z), (6.13)

max

qβ(u−j+), maxl∈Mj

qβ(αl(zl))− qa(j,l)

= Q(z), (6.14)

z których jednoznacznie wynika, że d(Dz) = h(z).Dowód równości (6.13), (6.14) rozpoczynamy od spostrzeżenia, że jeżeli

grafG(β) nie zawiera cyklu o dodatniej długości, to dla każdego wierzchołkaw grafie G(α) zachodzi

rα(u) ¬ rβ(u), u ∈ N, (6.15)

qα(u) ¬ qβ(u), u ∈ N ; (6.16)

graf G(β) został otrzymany z grafu G(α) przez wykonanie pewnej liczbynastępujących czynności: zastąp nieobciążony łuk, sekwencją: łuk nieobcią-żony, wierzchołek dodatnio obciążony, łuk nieobciążony.Dalej ograniczę się do pokazania równości (6.13), dowód równości (6.14)

ze względu na symetrię można przeprowadzić analogicznie. Rozważmy jesz-cze raz (analizowaną na samym początku przeprowadzanego dowodu) naj-dłuższą drogę Dz przechodzącą przez operację j w grafie G(β). Nie zmniej-szając ogólności przyjmujemy, że droga Dz pierwszy raz przechodzi przezczynności operacji j wchodząc na wierzchołek (czynność) (j, a) i wycho-dząc z wierzchołka (j, b). Oznacza to, że można ją rozbić na trzy fragmentyDz = (A,Da,b, B) takie, że A jest fragmentem dochodzącym do bezpośred-niego poprzednika wierzchołka (j, a), Da,b – fragmentem wychodzącym zwierzchołka (j, a) i dochodzącym do wierzchołka (j, b), zaś B – pozostałączęścią drogi Dz. Z definicji wierzchołka (j, a) wynika, że fragment A nie za-wiera żadnego wierzchołka związanego z czynnościami operacji j. Ponadtodroga (A,Da,b) jest jedną z najdłuższych dróg dochodzących do wierzchoł-ka (j, b). Przeprowadzając takie same rozumowanie jak początku dowodu

Page 109: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 103

zauważmy, że długość najdłuższej drogi dochodzącej do wierzchołka (j, b)łącznie z obciążeniem tego wierzchołka wyraża się wzorem:

rβ(j, b) = max

rβ(u+j−), maxl∈Mjrβ(αl(zl − 1))− ra(j,l)

+ ra(j,b) + p(j,b).

(6.17)Dalej rozpatrzymy trzy przypadki: ostatni wierzchołek fragmentu A dro-gi Dz jest połączony w wierzchołkiem (j, a) (i) łukiem technologicznym(u+j− , (j, a)) lub (ii) łukiem kolejnościowym (αa(za − 1), (j, a)) oraz przy-padek (iii) w którym fragment A nie zawiera żadnego wierzchołka (wierz-chołek (j, a) jest pierwszym wierzchołkiem w drodze Dz).Rozpatrzymy teraz przypadek (i). Jak już zauważyliśmy, droga A (któ-

rej ostatnim wierzchołkiem jest wierzchołek u+j−) nie przechodzi przez żadnąz czynności operacji j, co oznacza, że istniała ona także w grafie G(α). Wy-nika stąd jednak, że najdłuższa droga w grafie G(α) dochodząca do wierz-chołka u+j− jest nie krótsza niż długość drogi A czyli r

α(u+j−) ­ rβ(u+j−). Ta

nierówność, łącznie z (6.15) dla u = u+j− dowodzi, że:

rβ(u+j−) = rα(u+j−). (6.18)

Z faktu, że droga A jest fragmentem najdłuższej drogiDz wynika, iż d(A) =rβ(u+j−). Podobnie droga (A,Da,b) jest fragmentem najdłuższej drogi Dz.

Co więcej obciążenie łuku (u+j− , (j, a)) jest zerowe oraz ra(j,a) = 0 (do

wierzchołka (j, a) dochodzi łuk technologiczny (u+j− , (j, a))). Stąd wartośćnajdłuższej drogi dochodzącej do wierzchołka (j, b) w grafie G(β), łączniez obciążeniem tego wierzchołka wyraża się wzorem

rβ(j, b) = d(A) + d(Da,b) = rβ(u+j−) + ra(j,b) + p(j,b),

co w porównaniu z (6.17) dowodzi nierówności

rβ(u+j−) ­ maxl∈Mj

rβ(αl(zl − 1))− ra(j,l)

. (6.19)

Ostatecznie z zależności (6.15), (6.18) oraz (6.19) wynika prawdziwość rów-ności (6.13), co kończy dowód w przypadku (i).Przejdziemy teraz do analizy przypadku (ii). Wykorzystujemy znowu

fakt, iż droga A (której ostatnim wierzchołkiem jest teraz wierzchołekαl(zl−1)) nie przechodzi przez żadną z czynności operacji j, co oznacza, żeistniała ona także w grafie G(α). Stąd oraz z rozumowania analogicznegodo przeprowadzonego w przypadku (i) wnioskujemy, iż

rβ(αa(za − 1)) = rα(αa(za − 1)). (6.20)

Page 110: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

104 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Dalej, rozumując podobnie jak w przypadku (i), dostajemy równość d(A) =rβ(αa(za − 1)). Co więcej wykorzystując fakt, iż obciążenie łuku (αa(za −1), (j, a)) jest zerowe, wartość najdłuższej drogi dochodzącej do wierzchołka(j, b) w grafie G(β), łącznie z obciążeniem tego wierzchołka wyraża się terazwzorem

rβ(j, b) = d(A) + d(Da,b) = rβ(αa(za − 1))− ra(j,a) + ra(j,b) + p(j,b).

Zależność ta w połączeniu z (6.17) dowodzi nierówności

rβ(u+j−) ¬ maxl∈Mj

rβ(αl(zl − 1))− ra(j,l)

. (6.21)

Z zależności (6.15), (6.20) oraz (6.21) wynika prawdziwość równości (6.13),co kończy dowód w przypadku (ii).Na koniec przejdźmy do analizy przypadku (iii). Z faktu, że droga A

jest pusta oraz Da,b jest początkowym fragmentem najdłuższej drogi Dzwynika natychmiast, że

rβ(j, b) = d(Da,b).

Oczywiste jest, że skoro droga Da,b jest najdłuższą drogą dochodzącą dowierzchołka (j, b), to zachodzi

d(Dl,b) ¬ d(Da,b), l ∈Mj .

Korzystając z powyższych zależności oraz z faktu, że głowa przynajmniejjednej czynności każdej operacji jest równa zero (patrz 3.3.2), długość naj-dłuższej drogi dochodzącej do (j, b) możemy przedstawić w postaci

rβ(j, b) = maxl∈Mj

d(Dl,b) = maxl∈Mj

− ra(j,l) + ra(j,b) + p(j,b)

= ra(j,b) + p(j,b). (6.22)

Porównując teraz (6.18) z (6.22) otrzymujemy

max

rβ(u+j−), maxl∈Mj

rβ(αl(zl − 1))− ra(j,l)

= 0 (6.23)

Z własności rα(u+j−) ­ 0, u ∈ N oraz własności (6.15) zachodzi R(z) = 0,czyli spełniona jest równość (6.13). Tym samym dowód własności zostałzakończony.

Przejdę teraz do określenia wartości Cmax(β) dla kolejności β = π(v)otrzymanej po wykonaniu ruchu v = (j, z) na kolejności π.

Page 111: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 105

Własność 6.2 Niech π ∈ Π jest kolejnością dopuszczalną. Jeżeli ruch v =(j, z), z = (z1, . . . , zm) ∈ ZP (j), j ∈ O generuje dopuszczalną kolejnośćβ = π(v), to

Cmax(β) = max

Cmax(α), h(z)

. (6.24)

Dowód. Rozważmy pewną ścieżkę krytyczną w grafie G(β). Ścieżka ta:(i) zawiera pewne wierzchołki u, u ∈ Nj reprezentujące czynności operacjij lub (ii) nie zawiera żadnego z nich.W przypadku (i) z własności 6.1 wynika, że długość ścieżki jest równa

h(z), czyli Cmax(β) = h(z). Ponadto oczywiste jest, że Cmax(α) ¬ Cmax(β);graf Cmax(β) został otrzymany z grafu Cmax(α) przez dodatnie pewnej licz-by łuków. Tym samym prawdziwa jest równość (6.24).W przypadku (ii) ze sposobu konstrukcji grafu G(β) z grafu G(α)

wnosimy, iż ścieżka sc jest także ścieżką krytyczną w grafie G(α), czyliCmax(β) = Cmax(α). Co więcej z definicji h(z) (długość pewnej ścieżki wgrafie G(β)) dostajemy h(z) ¬ Cmax(β), co ostatecznie dowodzi prawdzi-wości równości (6.24).

Udowodnione powyżej dwie własności stanowią bardzo silne narzędzieumożliwiające określenie jakości ruchów v = (j, z) wykonanych dla kolejno-ści π, przy ustalonej operacji j oraz różnych zestawach pozycji z ∈ ZP (j).Zauważmy tutaj tylko, że wielkość

LB(z) = max

Cmax(α), h(z)

(6.25)

jest dolnym ograniczeniem długości Cmax(π(v)) ścieżki krytycznej w grafieG(π(v)); jeżeli kolejność (π(v)) jest dopuszczalna to Cmax(π(v)) = LB(z),w przeciwnym wypadku Cmax(π(v)) = ∞. W celu wyliczenia LB(z) dla króżnych zestawów pozycji z ∈ ZP (j) należy tylko jeden raz wyznaczyć wiel-kości Cmax(α), rα(u), qα(u), u ∈ N oraz k-razy wielkość h(z). Zakładając,że wyznaczenie Cmax(α) wymaga O(f(n)) czasu, do wyliczenia k odpowied-nich wartości LB(z) potrzeba tylko O(f(n))+O(k ·mj) czasu. Dysponującjuż tymi wielkościami oraz dodatkowo wartością Cmax(π(v′)) dla takiegoruchu v′ = (j, z′), że kolejność π(v′) jest dopuszczalna można łatwo wyeli-minować pewne inne ruchy v = (j, z). Są to ruchy (j, z), z ∈ ZP (j) takie,że Cmax(π(v′)) ¬ LB(z); ruchy te generują graf G(π(v)) zawierający cyklo dodatniej długości lub długość ścieżki krytycznej w tym grafie nie jestmniejsza niż wcześniej znaleziona dla grafu G(π(v′)). Postępując „tradycyj-nie” należało by wyznaczyć Cmax(π(v)), v = (j, z) dla k zestawów pozycjiz ∈ ZP (j), co wymagało by aż O(k · f(n)) czasu.

Page 112: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

106 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

6.2 Eliminacyjne własności ścieżki krytycznej

W klasycznych problemach gniazdowych jak i w problemach gniazdo-wych z operacjami wielomaszynowymi z grupy I (nieprzesuwalne czynnościasynchroniczne), ścieżka krytyczna w grafie G(π) dostarczała bardzo sil-nych własności eliminacyjnych, [39, 77]. Własności te polegały na tym, żejakość dużej części ruchów v dla kolejności π, można było oszacować bezwyliczania wartości Cmax(π(v)). Analogiczne własności można sformułowaćdla rozważanego problemu.

Własność 6.3 Niech π ∈ Π jest dopuszczalną kolejnością. Jeżeli żadna zczynności operacji j ∈ O nie leży na ścieżce krytycznej w grafie G(π), todla każdego ruchu v ∈ V (π, j) zachodzi 9

Cmax(π(v)) ­ Cmax(π). (6.26)

Dowód. Jest oczywiste, że jeżeli żadna czynność operacji j ∈ O nie leżyna ścieżce krytycznej w grafie G(π), to ścieżka (krytyczna w G(π)) istniejetakże w grafie G(α) i ma taką samą długość jak w grafie G(π); dla definicjigrafuG(α) patrz poprzedni rozdział. Wynika z tego, że Cmax(π) ¬ Cmax(α).Dodatkowo, ze sposobu konstrukcji grafu G(α) dostajemy rα(u) ¬ rπ(u),u ∈ N . Stąd

Cmax(α) = maxu∈Nrα(u) ¬ max

u∈Nrπ(u) = Cmax(π)

i w konsekwencji Cmax(α) = Cmax(π). Wykorzystując tą równość oraz po-stać dolnego ograniczenia LB(z) wartości Cmax(π(v)) dla ruchów v = (j, z),v ∈ V (π, j), j ∈ O, ostatecznie otrzymujemy

Cmax(π(v)) ­ LB(z) = max

Cmax(α), h(z)

= max

Cmax(π), h(z)

­ Cmax(π),

co kończy dowód własności.

Niestety ze względu na wielomaszynowy charakter wykonywania opera-cji, zmniejsza się częstość zachodzenia własności 6.3, co w dalszej kolejnościpowoduje zmniejszenie możliwości eliminacji rozwiązań.

9Jeżeli graf G(π(v)) posiada cykl o dodatniej długości, czyli kolejność π(v) nie jestdopuszczalna, to kładziemy Cmax(π(v)) =∞.

Page 113: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 107

6.3 Sąsiedztwa

W rozdziale tym przedstawione zostaną cztery rodzaje sąsiedztw. Kolej-no prezentowane sąsiedztwa będą pewną modyfikacją (redukcją) sąsiedztwaprezentowanego wcześniej.

6.3.1 Sąsiedztwo pełne

Pierwsze z prezentowanych sąsiedztw, nie uwzględnia żadnych własnościrozważanego problemu. Jest to największe i zarazem najbardziej oczywi-ste sąsiedztwo jakie można przyjąć dla ruchów typu wstaw. W skład tegosąsiedztwa wchodzą wszystkie rozwiązania jakie można utworzyć z rozwią-zania bieżącego reprezentowanego przez kolejność π poprzez wykonanie do-wolnego ruchu typu wstaw V (π, j) dla dowolnej operacji j ∈ O.

N (π) =

π(v) : v ∈ V (π)

. (6.27)

Zaprezentowane sąsiedztwo stanowi fundament kolejnych prezentowanychsąsiedztw. Samo w sobie nie może jednak być stosowane w algorytmachlokalnego przeglądu, ponieważ posiada ono dwie wyjątkowo niekorzystnecechy.Po pierwsze, liczność tego sąsiedztwa jest bardzo duża, równa

|N (π)| =∑

j∈O

(∏

l∈Mj

nl − 1). (6.28)

W największych testowych instancjach spotykanych w literaturze jest więk-sza niż 1025. Po drugie, tylko bardzo mała część rozwiązań z sąsiedztwaN (π) jest dopuszczalna.

6.3.2 Sąsiedztwo zredukowane

Z własności 6.3 wynika, że możemy ograniczyć się do przesuwania czyn-ności tylko tych operacji j, które należą do zbioru Ω ⊂ O zawierającegowszystkie operacje, których przynajmniej jedna z czynności leży na ścież-ce krytycznej w grafie G(π). Dlatego proponuję ograniczyć wstępnie zbiórruchów do

ZV (π) =⋃

j∈Ω

V (π, j). (6.29)

Zbiór ZV (π) generuje zredukowane sąsiedztwo kolejności π

NZ(π) =

π(v) : v ∈ V (π)

. (6.30)

Page 114: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

108 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

W rozważanym problemie eliminacyjne własności ścieżki krytycznej są zbytsłabe, by po ich zastosowaniu można by było w sensownym czasie przejrzećsąsiedztwo NZ(π). Liczność tego sąsiedztwa jest nadal bardzo duża, równa

|NZ(π)| =∑

j∈Ω

(∏

l∈Mj

nl − 1) ≈ 0.1 . . . 1 · |N (π)|. (6.31)

Dodatkowym „kłopotliwym” tematem jest problem dopuszczalności ko-lejności generowanych w wyniku ruchu. Dla problemów gniazdowych zoperacjami wielomaszynowymi z grupy I (nieprzesuwalne czynności asyn-chroniczne), zachodzi bardzo użyteczna, z praktycznego punktu widze-nia, własność dopuszczalności. Mówi ona, że dla ustalonej operacji j ruchv∗ = (j, z∗) taki, że h(z∗) ¬ h(z), z ∈ ZP (j) generuje kolejność π(v∗),dla której graf G(π(v∗)) jest acykliczny10, [77]. Własność ta w połączeniuz faktem, że Cmax(π(v)) = max Cmax(α), h(z), v = (j, z) ∈ V (π, j)(jeżeli tylko graf G(π(v)) jest acykliczny) pozwala efektywnie wyznaczyćruch v∗∗ ∈ V (π, j) taki, że graf G(π(v∗∗)) jest acykliczny oraz wartośćCmax(π(v∗∗)) jest najmniejsza z możliwych; ruchem tym jest oczywiścieruch v∗. Niestety w omawianym przez nas problemie wspomniana wyżejwłasność nie jest prawdziwa. Oznacza to, że G(π(v∗)) może zawierać cyklo dodatniej długości. Pokazuje to poniższy przykład, który jednocześnieilustruje własności 6.1, 6.2.

Przykład 6.2 Rozważmy system produkcyjny składający się z r = 2zadań oraz m = 3 maszyn. Każde zadanie składa się tylko z jednej operacji.Operacja 1 składa się z trzech czynności (1, 1), (1, 2), (1, 3) zaś operacja 2– z dwóch czynności (2, 2), (2, 3). Odpowiednie parametry tych czynnościmożna odczytać z rys. 6.3 (i), (ii).Rozważmy dopuszczalną kolejność π = (π1, π2, π3), gdzie π1 = ((1, 1)),

π2 = ((2, 2), (1, 2)) oraz π3 = ((2, 3), (1, 3)); n1 = 1, n2 = n3 = 2. Powyjęciu wszystkich czynności operacji j = 2 z M2 = 2, 3 (t2 = 2) zkolejności π otrzymujemy kolejność α = (α1, α2, α3), gdzie α1 = ((1, 1)),α2 = ((1, 2)) oraz α3 = ((1, 3)); pseudo-aktywne uszeregowanie zgodnez tą kolejnością przedstawiono na rys. 6.3 (i). Na rys. 6.3 (iii) pokazanograf G(α); dla uproszczenia nie zaznaczono żadnych jego łuków i dlategomożna go także interpretować jako ilustrację kolejności α. Nad każdymoraz po każdym z jego wierzchołków związanych z maszynami ze zbioruM2 podano odpowiednio wartości rα(αl(i)), i = 1, . . . , nl − 1 = 2 − 1 = 1,l ∈ M2 oraz qα(αl(i)), i = 1, . . . , nl − 1 = 2 − 1 = 1, l ∈ M2 zdefiniowanew (6.6), (6.7). Zauważmy, że rα((1, 1)) = 0 + 3 = 3, rα((1, 2)) = 2 + 1 = 3,

10W problemach z operacjami grupy I, graf G(γ) dla dowolnej dopuszczalnej kolejnościγ jest acykliczny.

Page 115: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 109

1 2 3

1,1

1,2

1,1

1,3

czas 3

( i )

( iii )

M

1,3

1,2

0

1 2 3

czas 3

( ii )

M

2,3

2,2

0

2,2

2,3

3 1

1 3

z1 z2 z3 z4

( iv )

Rysunek 6.3: Ilustracja ruchów V (π, j) dla j = 2 oraz zπ,2 = (0, 1, 1) =z1; (i) uszeregowanie zgodne z kolejnością α; (ii) uszeregowanie czynnościoperacji j = 2; (iii) kolejność α, z zaznaczonymi wartościami rα(u) (ugóry), qα(u) (u dołu) oraz z zaznaczonymi zestawami pozycji ZP (2) =z1, z2, z3, z4; (iv) czynności operacji j = 2

rα((1, 3)) = 0 + 1 = 1, qα((1, 1)) = 0 + 3 = 3, qα((1, 2)) = 0 + 1 = 1,qα((1, 3)) = 2 + 1 = 3 oraz ra(2,2) = ra(2,3) = 0 qa(2,2) = qa(2,3) = 0. Stąd

rα((1, 2)) = rα((1, 2))− ra(2,2) = 3− 0 = 3,

rα((1, 3)) = rα((1, 3))− ra(2,3) = 1− 0 = 1,

qα((1, 2)) = qα((1, 2))− qa(2,2) = 1− 0 = 1,

qα((1, 3)) = qα((1, 3))− qa(2,3) = 3− 0 = 3.

Na rys. 6.3(iii) zaznaczono także cztery zestawy pozycji z1, z2, z3, z4 two-rzące zbiór ZP (2); operacja j = 2 znajdowała się wcześniej na pozycjiz1 = (0, 1, 1).

Page 116: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

110 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Wyznaczymy teraz wartości h(z) dla wszystkich zestawów pozycji z zezbioru ZP (2). Ponieważ operacja j = 2 nie ma poprzednika ani następnikatechnologicznego, to u+2− = 0 oraz u

2+ = 0. Zachodzą następujące zależności

R(z1) = max

rα((0, 0)), rα(α2(0)), rα(α3(0))

= max

rα((0, 0)), rα((0, 0)), rα((0, 0))

=max

0,−∞,−∞

=0,

Q(z1) = max

qα((0, 0)), qα(α2(1)), qα(α3(1))

= max

qα((0, 0)), qα((1, 2)), qα((1, 3))

= max

0, 1, 3

= 3,

R(z2) = max

rα((0, 0)), rα(α2(1)), rα(α3(0))

= max

rα((0, 0)), rα((1, 2)), rα((0, 0))

= max

0, 3,−∞

= 3,

Q(z2) = max

qα((0, 0)), qα(α2(2)), qα(α3(1))

= max

qα((0, 0)), qα((0, 0)), qα((1, 3))

= max

0,−∞, 3

= 3,

R(z3) = max

rα((0, 0)), rα(α2(0)), rα(α3(1))

= max

rα((0, 0)), rα((0, 0)), rα((1, 3))

= max

0,−∞, 1

= 1,

Q(z3) = max

qα((0, 0)), qα(α2(1)), qα(α3(2))

= max

qα((0, 0)), qα((1, 2)), qα((0, 0))

= max

0, 1,−∞

= 1,

R(z4) = max

rα((0, 0)), rα(α2(1)), rα(α3(1))

= max

rα((0, 0)), rα((1, 2)), rα((1, 3))

= max

0, 3, 1

= 3,

Q(z4) = max

qα((0, 0)), qα(α2(2)), qα(α3(2))

= max

qα((0, 0)), qα((0, 0)), qα((0, 0))

=max

0,−∞,−∞

=0.

Z powyższego wynika, ze h(z1) = 0 + 2 + 3 = 5, h(z2) = 3 + 2 + 3 = 8,h(z3) = 1 + 2 + 1 = 4 oraz h(z4) = 3 + 2 + 0 = 5. Stąd pozycja z∗ = z3.Niestety wykonanie ruchu v∗ = (2, z∗) = (2, z3), tzn. wstawienie czynnościoperacji j = 2 na zestaw pozycji z∗ = z3 powoduje, że kolejność π((2,z3)) jestniedopuszczalna lub równoważnie, graf G(π((2,z3))) posiada cykl o dodatniejdługości.Zauważmy jeszcze, że Cmax(α) = 3, czyli LB(zi) = h(zi) dla i =

1, 2, 3, 4. Dopuszczalnymi kolejnościami są tylko π((2,z1)) oraz π((2,z4)), dla

Page 117: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 111

których wartości funkcji celu (zgodnie z własnością 6.2) są równe odpo-wiednio Cmax(π((2,z1))) = LB(z1) = 5 oraz Cmax(π((2,z4))) = LB(z4) = 5.

Brak własności gwarantującej dopuszczalność ruchu v∗ = (j, z∗) takie-go, że h(z∗) ¬ h(z), z ∈ ZP (j) generuje kolejność π(v∗), dla której grafG(π(v∗)) nie ma cyklu o dodatniej długości powoduje, że stosowane dalejtechniki przyspieszenia procesu przeglądania11 sąsiedztwa danej kolejnościπ muszą być bardziej subtelne.

6.3.3 Dominacje ruchów

Oczywiste jest, że dla metod LS, szybkość zbiegania do dobrego rozwią-zania jest funkcją wielkości sąsiedztwa, dokładności szacowania rozwiązańw sąsiedztwie oraz frakcji rozwiązań niedopuszczalnych w nim zawartych.Jak wspomniałem w rozdziale 6.3.2 sąsiedztwo NZ(π), zredukowane nabazie własności ścieżki krytycznej, nie nadaje się jeszcze do zaprojektowa-nia „dobrego” algorytmu LS. W tym rozdziale określimy nowe dodatkowereguły dominacji ruchów w zbiorze V Z(π), zmierzające w kierunku selekcjipodzbioru ruchów najbardziej obiecujących, zwanych dalej zbiorem ruchówbazowych V B(π).Zbiór ruchów V (π, j) już tylko dla jednej operacji j ∈ O, jest zbyt duży,

aby w sensownym czasie można było przejrzeć wszystkie rozwiązania otrzy-mane po wykonaniu ruchów z tego zbioru. Dlatego zbiór V (π, j) proponujęograniczyć do pewnego niewielkiego podzbioru V B(π, j) zwanego zbiorembazowych ruchów operacji j. Dalej po precyzyjnym zdefiniowaniu zbioruV B(π, j) pokażę, że posiada on trzy bardzo ważne z praktycznego punktuwidzenia własności: (i) jego liczność jest radykalnie mniejsza niż licznośćV (π, j), (ii) dla każdego ruchu v = (j, z) ∈ V (π, j) istnieje pewien ruchvb = (j, zb) ∈ V B(π, j) taki, że h(zb) ¬ h(z) oraz (iii) stosunkowo dużaczęść rozwiązań π(vb), vb ∈ V B(π, j) jest dopuszczalna.Przed zdefiniowaniem zbioru bazowych ruchów operacji j pokażę, że za-

chodzi pewna własność, która definicję tego zbioru czyni bardzo naturalną.Przedtem jednak wprowadzę relację częściowego porządku na zestawachpozycji ze zbioru ZP (j). Mówimy, że zestaw pozycji z ′′ = (z′′1 , . . . , z

′′m) jest

większy niż zestaw z′ = (z′1, . . . , z′m) i oznaczamy przez z

′ ≺ z′′, jeżeli:

z′ ≺ z′′ ⇔

z′l ¬ z′′l , l ∈M,

∃l∈M z′l < z

′′l .

(6.32)

11Przeglądanie to polega na wyznaczeniu wartości funkcji celu dla wszystkich rozwią-zań z sąsiedztwa, w przypadku stosowania techniki tabu lub tylko dla wybranych – wprzypadku stosowania symulowanego wyżarzania lub innych technik.

Page 118: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

112 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Własność 6.4 Niech π ∈ Π jest dopuszczalną kolejnością. Dla ustalonejoperacji j ∈ O, niech α będzie kolejnością otrzymaną z kolejności π przezusunięcie wszystkich czynności operacji j. Jeżeli dla pewnego zestawu pozy-cji z = (z1, . . . , zm) ∈ ZP (j) zachodzi

maxl∈Mj

rα(αl(zl − 1)) ­ minl∈Mj

rα(αl(zl)), (6.33)

to istnieje zestaw pozycji z′ = (z′1, . . . , z′m) ∈ ZP (j) taki, że z ≺ z

′ oraz

LB(z′) ¬ LB(z).

Dowód. Dowód zostanie przeprowadzony przez podanie przepisu na utwo-rzenie zestawu z′ ∈ ZP (j) o żądanej własności.Zauważmy najpierw, że dla każdego l ∈Mj zachodzi

rα(αl(0)) < rα(αl(1)) < . . . < rα(αl(nl)), (6.34)

qα(αl(0)) > qα(αl(1)) > . . . > qα(αl(nl)). (6.35)

Niech zestaw pozycji z = (z1, . . . , zm) ∈ ZP (j) oraz spełnia (6.33). Niech

k = argminrα(αl(zl)) : l ∈Mj.

Zdefiniujmy zestaw pozycji z′ = (z′1, z′2, . . . , z

′m) w następujący sposób

z′l =

zl, l 6= k, l ∈M,

zl + 1, l = k.

Zauważmy, że z′ ∈ ZP (j). Rzeczywiście z faktu, że maxl∈Mj rα(αl(zl −

1)) <∞, założenia (6.33) oraz definicji k wynika, że rα(αk(zk)) <∞. Stądoraz z wcześniejszego położenia rα(αl(nl)) = ∞, l ∈ Mj (patrz komentarzdo wzoru (6.6)) dostajemy zk < nk, czyli z′ ∈ ZP (j). Dodatkowo jestoczywiste, że z ≺ z′. Dlatego też wystarczy jeszcze pokazać, że LB(z ′) ¬LB(z).Z założenia dowodzonej własności wynika, że maxl∈Mj r

α(αl(zl − 1)) ­rα(αk(zk)). Co więcej z (6.34) dostajemy rα(αk(zk − 1)) < rα(αk(z′k − 1)).Stąd

maxl∈Mj

rα(αl(zl − 1)) = maxl∈Mj

rα(αl(z′l − 1)),

czyli R(z) = R(z′).Z definicji z′ oraz nierówności (6.35) wynika, że qα(αl(zk)) > qα(αl(z′k))

oraz qα(αl(zl)) = qα(αl(z′l)), l 6= k, l ∈Mj . Stąd otrzymujemy

maxl∈Mj

qα(αl(zl)) ­ maxl∈Mj

qα(αl(z′l)),

Page 119: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 113

czyli Q(z) ­ Q(z′). Ostatecznie z udowodnionych relacji R(z) = R(z ′),Q(z) ­ Q(z′) otrzymujemy LB(z′) ¬ LB(z), patrz (6.25), co kończy dowódwłasności.

Opierając się na własności 6.4 definiujemy zbiór bazowych zestawówpozycji ZB(j) ⊂ ZP (j) operacji j jako

ZB(j) = z ∈ ZP (j) : maxl∈Mj

rα(αl(zl − 1)) < minl∈Mj

rα(αl(zl)). (6.36)

Z powyższej definicji oraz wcześniejszego położenia αl(0) = (0, 0), αl(nl) =(0, n + 1), l ∈ Mj , rα((0, 0)) = −∞, rα((0, n + 1)) = ∞, (patrz komen-tarz do wzoru (6.6)) wynika, iż zestawy zp, zk ∈ ZB(j) takie, że zpl = 1,zkl = n

l, l ∈ Mj są bazowymi zestawami pozycji. Zestaw zp odpowia-da sytuacji, w której czynności operacji j są wstawiane przed pierwszymiczynnościami wykonywanymi na maszynach Mj . Symetrycznie, zestaw zk

odpowiada sytuacji, w której czynności te są wstawiane za ostatnimi czyn-nościami wykonywanymi na maszynach Mj . Oczywiście, zp ≺ z ≺ zk dlakażdego z ∈ ZB(j) \ zp, zk. Dlatego też dalej bazowe zestawy pozycjizp oraz zk będziemy nazywać odpowiednio początkowym oraz końcowymbazowym zestawem pozycji.Wprowadzone pojęcie bazowego zestawu pozycji zilustrujemy na pro-

stym przykładzie

Przykład 6.3 Rozważmy kolejność α otrzymaną z kolejności π (z rys. 6.1)poprzez usunięcie wszystkich czynności (2, 1), (2, 3) operacji j; w kolejnościπ liczba czynności na poszczególnych maszynach jest równa odpowiednion1 = 7, n2 = 5, n3 = 6. Kolejność α została przedstawiona na rys. 6.4. Poprawej stronie każdej czynności u tej kolejności podana jest odpowiadającajej wartość rα(u). Ponieważ operacja j nie ma czynności wykonywanej namaszynie 2, to czynności permutacji α2 wykonywanie na tej maszynie niesą istotne i zostały zaznaczone kółkiem z linią przerywaną. Każda bazowyzestaw pozycji zaznaczony jest w postaci linii. Pierwsza linia z lewej stronyoznacza zestaw zp = (1, 0, 1), linia pogrubiona – zestaw (3,0,2), zaś ostatnialinia z prawej strony – zestaw zk = (7, 0, 6); bazowy zestaw (3, 0, 2) (zazna-czony linią grubą) określa zestaw pozycji, na które zostały wprowadzoneczynności operacji j na rys. 6.1. Przykładowo zestaw (2, 0, 4) nie jest ba-zowym zestawem ponieważ maxrα(α1(1)), rα(α3(3)) = max1, 7 = 7 ­2 = min2, 8 = minrα(α1(2)), rα(α3(4))Dla rozważanego przykładu |ZB(j)| = 10 podczas, gdy |Z(j)| = n1 ·

n3 = 7 · 6 = 42.

Page 120: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

114 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

α 1

α 2

α 3

α

1,1 3,1 4,1 5,1 6,1 7,1

1,3 3,3 4,3 6,3 7,3

1 2 5 9 11 15

1 5 7 8 12

Rysunek 6.4: Zbiór bazowych zestawów pozycji ZB(j) dla kolejności αotrzymanej z kolejności π z rys. 6.1 przez usunięcie wszystkich czynno-ści operacji j; bazowe zestawy pozycji są określone przez odpowiednie linieciągłe, pierwsza linia z lewej strony oznacza zestaw zp = (1, 0, 1), liniapogrubiona – zestaw (3,0,2), zaś ostatnia linia z prawej strony – zestawzk = (7, 0, 6)

6.3.4 Sąsiedztwo bazowe

Sekcję tę rozpocznę od pokazania i udowodnienia twierdzenia będącegofundamentem budowy sąsiedztwa bazowego.

Twierdzenie 6.1 Niech π ∈ Π jest dopuszczalną kolejnością. Dla usta-lonej operacji j ∈ O, niech α będzie kolejnością otrzymaną z kolejnościπ przez usunięcie wszystkich czynności operacji j. Dla każdego zestawupozycji z ∈ ZP (j) istnieje bazowy zestaw pozycji zb ∈ ZB(j) taki, żeLB(zb) ¬ LB(z).

Dowód. Rozważmy pewien zestaw pozycji z0 ∈ ZP (j), który nie jest ba-zowym zestawem pozycji, tzn. z0 ∈ ZP (j)\ZB(j). Jest oczywiste, że dla ze-stawu z = z0 zachodzi nierówność (6.33). Stąd oraz z własności 6.2 wynika,że istnieje taki zestaw pozycji z′ ∈ ZP (j), że z ≺ z′ oraz LB(z′) ¬ LB(z).Jeżeli z′ ∈ ZB(j), to dowód twierdzenia został zakończony. W przeciwnymwypadku kładziemy z := z′ i powtarzamy powyższe rozumowanie. Ponie-waż zestaw z′ jest większy od zestawu z oraz liczba wszystkich zestawówpozycji jest skończona, to po wykonaniu skończonej liczby takich powtórzeńzestaw zb = z′ jest bazowym zestawem pozycji oraz LB(zb) ¬ LB(z0).

Z powyższego twierdzenia wynika, że w celu znalezienia zestawu pozy-cji z∗, dla którego LB(z∗) ¬ LB(z), z ∈ ZP (j) wystarczy znaleźć zestawbazowy pozycji zb∗, dla którego LB(zb∗) ¬ LB(zb), zb ∈ ZB(j); wtedyLB(z∗) = LB(zb∗). Dlatego też istotne są odpowiedzi na pytania. Ile jest

Page 121: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 115

bazowych zestawów pozycji i jak je wygenerować przy możliwie jak naj-mniejszym nakładzie obliczeniowym?Odpowiedź na pierwsze pytanie dostarcza pośrednio następującą wła-

sność.

Własność 6.5 Dla każdych dwóch różnych zb′, zb′′ ∈ ZB(j) bazowych ze-stawów pozycji, zachodzi zb′ ≺ zb′′ lub zb′′ ≺ zb′.

Dowód. Dowód przeprowadzimy metodą nie wprost. Załóżmy, że zestawz′′ nie jest większy od zestawu z′ oraz zestaw z′ nie jest większy od zestawuz′′. Stąd wynika, że istnieją dwie różne maszyny a, b ∈Mj takie że

z′a < z′′a , z′b > z

′′b .

Stąd i nierówności (6.34) dostajemy

maxl∈Mj

rα(αl(z′l − 1)) < rα(αa(z′a)) ¬ r

α(αa(z′′a − 1)) ¬ maxl∈Mj

rα(αl(z′′l − 1))

maxl∈Mj

rα(αl(z′l − 1)) ­ rα(αb(z′b − 1)) ­ r

α(αb(z′b)) > maxl∈Mj

rα(αl(z′′l − 1))

Otrzymana sprzeczność kończy dowód własności.

Z powyższej własności wynika, że wszystkie bazowe zestawy pozycjimożna jednoznacznie uporządkować poczynając od początkowego zestawuzp do końcowego zestawu zk. Niech lBj oznacza liczbę wszystkich bazo-wych zestawów pozycji oraz zb1, zb2, . . . , zblBj = ZB(j). Wtedy istniejepermutacja γ zbioru liczb 1, 2, . . . , lBj taka, że

zbγ(1) ≺ zbγ(2) ≺ · · · ≺ zbγ(lBj),

gdzie zbγ(1) = zp, zbγ(lBj) = zk. Stąd i z definicji relacji ≺ wynika także, że

0 = l(zbγ(1)) < l(zbγ(2)) < · · · < l(zbγ(lBj)) =∑

l∈Mj

(nl − 1),

gdzie l(zb) =∑

l∈Mj (zbl− 1), zb ∈ ZB(j) oznacza sumaryczną liczbę czyn-ności znajdujących się na poszczególnych maszynach przed poszczególnymipozycjami zestawu zb. Z powyższego ostatecznie wynika, że liczba lBj ele-mentów zbioru ZB(j) jest ograniczona od góry przez

l∈Mj nl i jest dużo

mniejsza niż liczność zbioru wszystkich pozycji |ZP (j)|.

lBj = |ZB(j)| ·

l∈Mj

(nl − 1) + 1 << |ZP (j)| =∏

l∈Mj

nl.

Page 122: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

116 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Przejdę teraz do odpowiedzi na pytanie jak wygenerować, przy moż-liwie jak najmniejszym nakładzie obliczeniowym, wszystkie bazowe zesta-wy pozycji. Opierając się na poczynionych obserwacjach proponujemy, abydo wygenerowania zbioru bazowych zestawów pozycji stosować proceduręprzedstawioną na rys. 6.5. Procedura ta bazuje na następującym oczywi-stym spostrzeżeniu;

zbγ(i)l − zb

γ(i−1)l ∈ 0, 1, l ∈M, i = 2, . . . , lBj (6.37)

oraz istnieje co najmniej jedno l ∈Mj takie, że zbγ(i)l − zb

γ(i−1)l = 1.

Procedura Bazowy Zestaw Pozycji(α, j)

Krok 1. Połóż zl := 1, l ∈ Mj , zl := 0, l ∈ M \Mj oraz podstawZB(j) := z.

Krok 2. Oblicz wartość R = minl∈Mj rα(αl(zl)).

Krok 3. Jeżeli R =∞, to Exit.

Krok 4. Dla każdego l ∈ Mj spełniającego rα(αl(zl)) = R połóżzl := zl + 1, podstaw ZB(j) := ZB(j)∪ z i idź do krok 2.

Rysunek 6.5: Schemat procedury generującej bazowe zestawy pozycji ZB(j)

Dla uzasadnienia poprawności działania tej procedury zauważmy, że powykonaniu kroku 1 zestaw z jest bazowym zestawem zp. Co więcej, ze wzglę-du na sposób modyfikacji zestawu pozycji z w kroku 4 oraz spostrzeżenie(6.37), procedura generuje wszystkie bazowe zestawy pozycji, kończąc nazestawie zk. Łatwo zauważyć, że każdy kolejny generowany zestaw pozycjijest większy niż poprzedni. Co więcej zestawy te są generowane w porządkuokreślonym permutacją γ.Przejdziemy teraz do oszacowania czasu działania procedury. Krok 1

wymaga O(1) czasu, natomiast krok 2 i 4 O(mj) czasu. Ponieważ krokite wykonywane są dokładnie lBj razy to omawiana procedure potrzebujełącznie tylko O(lBj ·mj) czasu.Bazowe zestawy pozycji ZB(j) generują zbiór bazowych ruchów dla

operacji j ∈ Ω

V B(π, j) =

v = (j, z) : z ∈ ZB(j) \ zπ,j

. (6.38)

Page 123: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 117

Wykorzystując eliminacyjne własności ścieżki krytycznej opisane w rozdzia-le 6.1.1 zbiór bazowych ruchów ma następującą postać

V B(π) =⋃

j∈Ω

V B(π, j). (6.39)

Ostatecznie zbiór ten generuje sąsiedztwo bazowe

NB(π) =

π(v) : v ∈ V B(π)

. (6.40)

Liczność sąsiedztwa NB(π) można ograniczyć od góry przez

|NB(π)| ¬∑

j∈Ω

(

l∈Mj

(nl − 1) + 1)

. (6.41)

6.3.5 Zredukowane sąsiedztwo bazowe

W dalszej części tego rozdziału omówię pewną modyfikacje zbioruZB(j), polegającą na redukcji zbioru ZB(j) do pewnego zwartego pod-zbioru ZZB(j). Zwarty podzbiór oznacza, że zawiera on wszystkie bazowezestawy pozycji nie mniejsze niż zestaw zba i jednocześnie nie większe niżzestaw zbb; zestawy zba, zbb zostaną dalej precyzyjnie zdefiniowane. Takaredukcja wymaga pewnej modyfikacji procedury Bazowy Zestaw Pozycji.Modyfikacja ta polega na zmianie inicjacji (krok 1) oraz zmianie kryteriumstopu (krok 3. Dokładniej procedurę należy inicjować zmienną z = zba aprzerywać, kiedy dodany bazowy zestaw z będzie równy zbb.Podamy teraz definicję zestawów zba, zbb. Niech zba oznacza najwięk-

szy bazowy zestaw pozycji, dla którego R(zba) = rα(u+j−), jeżeli operacja jposiada poprzednika technologicznego lub początkowy bazowy zestaw po-zycji zp, gdy takie poprzednika nie posiada. Podobnie niech zbb oznaczanajmniejszy bazowy zestaw pozycji, nie mniejszy jednak niż zba, dla które-go Q(zbb) = qα(u−j+), jeżeli operacja j posiada następnika technologicznego

lub końcowy bazowy zestaw pozycji zk, gdy takiego następnika nie posia-da. Zauważmy, że taka definicja jednoznacznie określa zba, zbb, co więcejzba ≺ zbb lub zba = zbb.Zdefiniujmy teraz, wspomniany wcześniej, zredukowany zbiór bazowych

zestawów pozycji ZZB(j) służący dalej do generacji zredukowanego zbioruruchów bazowych i w konsekwencji do generacji zredukowanego sąsiedztwabazowego.

ZZB(j) =

z ∈ ZB(j) : zba ≺ z ≺ zbb

zba

zbb

. (6.42)

Page 124: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

118 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Przejdziemy teraz do oszacowania liczności zbioru ZZB(j). Możliwe są dwieskrajne sytuacje: (i) wszystkie ok operacji zadania k w skład, którego wcho-dzi operacja j położone są „równomiernie” w kolejności π oraz (ii) operacjezadania k są „zgrupowane” w tej kolejności. W sytuacji (i) średnia licznośćzbioru ZZB(j) wynosi około |ZZB(j)| ≈ 2 ·lBj/ok, podczas gdy w sytuacji(ii) – |ZZB(j)| ≈ lBj/ok. Ostatecznie, w praktycznych sytuacjach możnasię spodziewać, że:

lBjok¬ |ZZB(j)| ¬ 2 ·

lBjok. (6.43)

Przejdę teraz do omówienia odrzuconych zestawów pozycji zb, zb ∈ZB(j) \ ZZB(j). Zauważmy najpierw, że wartości dolnych ograniczeń dlawszystkich pominiętych zestawów pozycji są odpowiednio nie mniejsze niżwartość LB(zba) lub LB(zbb),

LB(zb) ­ LB(zba), zb ≺ zba, (6.44)

LB(zb) ­ LB(zbb), zbb ≺ zb. (6.45)

Rzeczywiście, z definicji zestawu pozycji zba oraz nierówności (6.34) mamy

R(zb) = R(zba), zb ≺ zba.

Co więcej z nierówności (6.35) dostajemy

Q(zb) ­ Q(zba), zb ≺ zba.

Ostatecznie z powyższych zależności, definicji h(z), (6.8) oraz LB(z),(6.25), dostajemy (6.44). Podobnie z definicji zbb oraz nierówności (6.35)mamy

Q(zb) = Q(zbb), zbb ≺ zb.

Jednocześnie z nierówności (6.34) dostajemy

R(zb) ­ R(zbb), zbb ≺ zb,

co dowodzi nierówność (6.45).Z nierówności (6.44), (6.45) oraz definicji zredukowanego zbioru bazo-

wych zestawów pozycji ZZB(j) wynika, że twierdzenie (6.1) jest prawdziwenie tylko dla zbioru ZB(j) ale także dla ZZB(j). Dokładniej dla każdegozestawu pozycji z ∈ ZP (j) istnieje bazowy zestaw pozycji zb ∈ ZZB(j)taki, że LB(zb) ¬ LB(z). Oznacza to, że decydując się na redukcję zbioruZB(j) nie tracimy możliwości znalezienia zestawu pozycji z o najmniejszejwartości LB(z).

Page 125: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 119

Redukcja zbioru ZB(j) pozwala nam także na wyeliminowanie częścibazowych zestawów pozycji zb, dla których graf G(π(j,zb)) ma cykl o do-datniej długości. Niech B(j) oznacza zbiór wszystkich czynności wszystkichoperacji będących poprzednikami technologicznymi operacji j. Zauważmy,że dla każdego zestawu pozycji zb = (zb1, . . . , zbm) ∈ ZZB(j), zachodzi

max

1 ¬ x ¬ nl − 1 : αl(x) ∈ B(j)

< zbl, l ∈Mj . (6.46)

Rzeczywiście, rozważmy pewną maszynę l ∈ Mj . Niech 1 ¬ x ¬ nl − 1oznacza taką pozycję w permutacji αl, że αl(x) ∈ B(j); jeżeli takiej po-zycji nie ma, to nierówność (6.46) jest trywialnie prawdziwa12. Oczywistejest, że rα(αl(x)) ¬ rα(u

+j−). Tym bardziej zachodzi r

α(αl(x)) ¬ rα(u+j−).

Jednocześnie z definicji pozycji zba oraz wzoru (6.34) wnioskujemy, iżrα(αl(zl)) > rα(u

+j−), dla każdego zl ­ zb

al . Stąd wynika, że x < zb

al ,

czyli x < zbl dla każdej l-tej pozycji zbl zestawu zb ∈ ZZB(j), co kończydowód nierówności (6.46).Nierówność (6.46) oznacza, że czynności operacji j wstawione na po-

zycje zestawu zb ∈ ZZB(j), będą występowały w permutacjach βl za-wsze po czynnościach zbioru B(j), które są wykonywane na maszynie l,l ∈ Mj ; β = (β1, . . . , βm) = π(j,zb). Jest to bardzo pożądana cecha, po-nieważ w przypadku przeciwnym graf G(β) zawierał by cykl o dodatniejdługości, spowodowany „naruszeniem” ograniczeń technologicznych zwią-zanych z czynnościami ze zbioru A(j). Niestety ze względu na brak symetriiw definicji bazowych zestawów pozycji, nie zachodzi symetryczna własnośćdla czynności ze zbioru A(j)13, gdzie A(j) jest zbiorem wszystkich czynno-ści wszystkich operacji będących następnikami technologicznymi operacjij. Zauważmy jednak, że algorytm MDSP z rozdziału 5.3 (wyznaczającywartość najdłuższej drogi w grafie) wykrywa bardzo szybko cykl o dodat-niej długości, spowodowany naruszeniem ograniczeń technologicznych (wtym wypadku ograniczeń związanych z czynnościami ze zbioru A(j)). Powykryciu takiego cyklu, analizę dalszych bazowych zestawów pozycji na-leży przerwać, ponieważ każda z nich też generuje graf zawierający cykl ododatniej długości.Ostatecznie wykorzystując zaproponowany zredukowany zbiór bazo-

wych zestawów pozycji ZZB(j) generujemy zredukowany zbiór bazowychruchów operacji j ∈ Ω,

V ZB(π, j) =

v = (j, z) : z ∈ ZZB(j) \ zπ,j

. (6.47)

12Przyjmujemy, że max ∅ = −∞.13Własność ta zachodziła by, gdyby pozycje bazowe były zdefiniowane na podstawieqα(u) a nie na rα(u). Wtedy jednak nieprawdziwa była by nierówność (6.46).

Page 126: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

120 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Z kolei wykorzystując eliminacyjne własności ścieżki krytycznej opisane wrozdziale 6.1.1, zredukowany zbiór bazowych ruchów ma następującą po-stać:

V ZB(π) =⋃

j∈Ω

V ZB(π, j). (6.48)

Ostatecznie zbiór ten generuje zredukowane sąsiedztwo bazowe

NZB(π) =

π(v) : v ∈ V ZB(π)

. (6.49)

Liczność sąsiedztwa NZB(π) można oszacować jako

|NZB(π)| ≈k

o·∑

j∈Ω

(

l∈Mj

(nl − 1) + 1)

. (6.50)

Wartość tego oszacowania wynika z przeprowadzonej analizy liczności zbio-ru zredukowanych bazowych zestawów pozycji |ZZB(π, j)| w stosunku doliczności zbioru bazowych zestawów pozycji |ZB(π, j)|, patrz (6.43).

6.3.6 Relacje między sąsiedztwami

Przejdziemy teraz do podsumowania własności zaproponowanych są-siedztw. Przypomnę najpierw, jaką rolę odgrywa sąsiedztwo w metodachLS. Postępując tradycyjnie, dla każdego rozwiązania β z sąsiedztwa, należynajpierw sprawdzić czy odpowiedni graf G(β) nie zawiera cyklu o dodat-niej długości, czyli czy dane rozwiązanie β jest dopuszczalne. Następniedla dopuszczalnych rozwiązań należy wyznaczyć wartość Cmax(β). Oby-dwie czynności wykonuje się jednocześnie przez zastosowanie algorytmuMDSP wyznaczającej wartość najdłuższej drogi w grafie G(β), opisanegow rozdziale 5.3. W wyniku takiego postępowania znajdujemy pewne do-puszczalne rozwiązanie β∗, o najmniejszej wartość Cmax(β∗).Wybór odpowiedniego sąsiedztwa ma więc bezpośredni wpływ na ja-

kość algorytmów, w których jest ono stosowane. Dobre sąsiedztwo powinnowięc posiadać trzy cechy: (i) jego liczność nie powinna być zbyt duża, anizbyt mała, (ii) rozwiązania dopuszczalne powinny stanowić stosunkowo du-żą część wszystkich rozwiązań z sąsiedztwa, (niedopuszczalne jest aby dlapewnego rozwiązania sąsiedztwo składało się tylko z rozwiązań niedopusz-czalnych), (iii) rozwiązania dopuszczalne powinny być stosunkowo dobrymirozwiązaniami w sensie wartości funkcji celu.Każde z prezentowanych w tym rozdziale sąsiedztw, powstawało z re-

dukcji sąsiedztwa wcześniejszego. Oznacza to, że pomiędzy sąsiedztwamizachodzi następująca relacja

N (π) ⊆ NZ(π) ⊆ NB(π) ⊆ NZB(π) (6.51)

Page 127: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.1. Własności problemu w kontekscie metod LS 121

Jak już pisałem, pierwsze analizowane sąsiedztwo N (π) zwane sąsiedz-twem pełnym jest największym sąsiedztwem jakie można przyjąć dla ru-chów typu wstaw. Wielkość tego sąsiedztwa jest na tyle duża, że próbaimplementacji go w algorytmach typu LS powoduje iż algorytmy te prze-stają działać w sensownym czasie. Sąsiedztwo te ma więc charakter czystoteoretyczny.

W większości problemów gniazdowych, wykorzystuje się eliminacyjnewłasności ścieżki krytycznej. W klasycznym problemie gniazdowym (ope-racje jednomaszynowe) własność ta jest na tyle silna, że po jej uwzględnie-niu możliwe jest budowanie efektywnych algorytmów popraw. Niestety wnaszym problemie, sąsiedztwo NZ(π), zredukowane na podstawie elimina-cyjnych własności ścieżki krytycznej, jest nadal zbyt duże by nadawało siędo zastosowania w algorytmach typu LS. Redukcja rozmiaru sąsiedztwa zN (π) do NZ(π) zależy ściśle danych rozważanego przykładu. Największaredukcja rzędu 90% jest dla przykładów charakteryzujących się dużą licz-bą maszyn oraz małej średniej liczbie czynności przypadającej na operację.W sytuacji przeciwnej tzn. gdy średnia liczba czynności przypadająca naoperację zbliżona jest do ilości maszyn, redukcja praktycznie nie występuje.Oznacza to, że sąsiedztwo NZ(π) jest nadal zbyt duże, do praktycznychzastosowań, co niesie ze sobą konieczność dalszej redukcji tego zbioru.

Wprowadzone sąsiedztwo bazowe NB(π) powoduje, radykalnie zmniej-szenie liczby przeglądanych rozwiązań, umożliwia wykonanie tej czynnościw czasie zadawalających praktyków. Co więcej rozwiązania z bazowego są-siedztwa NB(π) są potencjalnie lepsze, ponieważ charakteryzują się mniej-szymi wartościami dolnych ograniczeń (patrz twierdzenia 6.1) niż rozwią-zania z sąsiedztwa zredukowanego NZ(π). Niestety może się zdarzyć, żerozwiązanie π∗NB dopuszczalne o najmniejszej wartości funkcji celu z są-siedztwa NB(π) jest gorsze (w sensie wartości funkcji celu) niż rozwiązanieπ∗NZ dopuszczalne o najmniejszej wartości funkcji celu z sąsiedztwa NZ(π).Dzieje się tak jednak tylko wtedy, gdy każde bazowe rozwiązanie o warto-ści dolnego ograniczenia LB mniejszym niż Cmax(π∗NZ) jest rozwiązaniemniedopuszczalnym. Pomimo tego, świadomie jednak rezygnujemy z bardzoczasochłonnego wyszukania najlepszego rozwiązania (z ogromnego sąsiedz-twaNZ(π)) na korzyść bardzo szybkiego wybrania najlepszego rozwiązaniaze stosunkowo niewielkiego sąsiedztwa bazowego NB(π). Stosunek licznośćsąsiedztwa zredukowanego do sąsiedztwa bazowego zależy ściśle od danychproblemu (patrz (6.31) i (6.41)). Liczność sąsiedztwa bazowego rośnie zkwadratem, natomiast liczność sąsiedztwa zredukowanego wykładniczo wstosunku do rozmiaru danych problemu.

Ostatnie prezentowane sąsiedztwo NZB(π) jest zredukowanym sąsiedz-

Page 128: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

122 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

twem bazowym. Redukcja ta polega, na pozostawieniu części rozwiązań ostosunkowo niewielkich wartościach LB. Praktycznie oznacza to odrzuce-nie wszystkich rozwiązań niedopuszczalnych, w których niedopuszczalnośćwynika z niespełnienia ograniczeń technologicznych. Statystycznie stosu-nek rozmiaru sąsiedztwa bazowego do zredukowanego sąsiedztwa bazowegowynosi średniej liczbie operacji w zadaniu.

|NB(π)||NZB(π)|

≈o

k

W proponowanych w następnych rozdziałach algorytmach popraw bę-dziemy wykorzystywać sąsiedztwo NZB(π). Dokładniej będziemy przeglą-dać te sąsiedztwo w celu znalezienia rozwiązania dopuszczalnego o naj-mniejszej wartość funkcji celu. Nie oznacza to jednak, że dla każdego roz-wiązania z sąsiedztwa – w celu sprawdzenia czy jest dopuszczalne, oraz wy-liczenia wartości funkcji celu – będziemy wykorzystywać dość czasochłonnyalgorytm MDSP. Wykorzystując specyficzne własności pokazanego dolnegoograniczenia LB, algorytm ten będzie praktycznie, średnio tylko |Ω| razywywoływany procedurę MDSP w trakcie przeglądania wszystkich rozwią-zań z sąsiedztwa.

6.4 Algorytmy konstrukcyjne

W tej sekcji, przedstawiono szereg algorytmów konstrukcyjnych dlajednosposobowego problemu gniazdowego z operacjami wielomaszynowymiskładającymi się z nieprzesuwalnych czynności asynchronicznych. Ogólniemówiąc, algorytmy te zgodnie z pewnymi regułami budują uszeregowa-nie przez „dokładanie” do aktualnego częściowego harmonogramu, czyn-ności kolejnych operacji. W momencie otrzymania pełnego harmonogramu(wszystkie czynności, wszystkich operacji zostały już uszeregowane) algo-rytmy kończą swoje działanie. Oznacza to, że żaden proces „poprawiania”pełnego uszeregowania nie jest stosowany. Fakt ten powoduje, że czas ichpracy jest niezwykle krótki, niestety jakość nie zawsze jest zadawalająca.Jednakże w sytuacjach, gdy czas obliczeń jest najbardziej krytycznym pa-rametrem jesteśmy zmuszeni do ich stosowania. Algorytmy konstrukcyjnestanowią także najlepsze narzędzie do generowania rozwiązań początko-wych dla algorytmów popraw.Algorytmy konstrukcyjne proponowane w tej sekcji można podzielić na

dwie grupy: algorytmy permutacyjne i algorytmy niepermutacyjne. Algo-rytmy z pierwszej grupy generują tzw. uszeregowania permutacyjne. Usze-regowanie s(u), u ∈ N nazywamy permutacyjnym, jeżeli dla każdej pary

Page 129: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.4. Algorytmy konstrukcyjne 123

1 2 3

j’’,1

j’’,2

j’,3

Mj

j’,2

j’,1

czas

j’’,1

j’’,2

j’,3

j’,2

j’,1

czas

Mj

1 2 3

( i ) ( ii )

Rysunek 6.6: Przykładowe uszeregowanie; (i) permutacyjne, (ii) niepermu-tacyjne

różnych operacji j ′, j′′ ∈ O zachodzi

c((j′, l)) ¬ s((j′′, l)), l ∈Mj′ ∩Mj′′ (6.52)

lubc((j′′, l)) ¬ s((j′, l)), l ∈Mj′ ∩Mj′′ . (6.53)

Inaczej mówiąc oznacza to, że czynności dwóch operacji nie są „przeplata-ne” na osi czasu, patrz rys. 6.6. Warunki (6.52), (6.53) można też przedsta-wić w równoważnej postaci w kolejności π = (π1, . . . , πm), który generujedopuszczalne uszeregowanie pseudo-aktywne, jeżeli tylko graf G(π) nie za-wiera cykli o dodatniej długości. Uszeregowanie jest permutacyjne, jeżelijest wygenerowane na bazie π takiego, że dla każdej pary różnych operacjij′, j′′ ∈ O zachodzi

π−1l ((j′, l)) < π−1l ((j

′′, l)), l ∈Mj′ ∩Mj′′ (6.54)

lubπ−1l ((j

′′, l)) < π−1l ((j′, l)), l ∈Mj′ ∩Mj′′ . (6.55)

gdzie π−1l oznacza permutację odwrotną do permutacji πl.Kolejności które nie spełniają warunków (6.54)–(6.55) nazywamy nie-

permutacyjnymi (dopuszcza się przeplatanie na osi czasu, rys. 6.6). Przezniepermutacyjne algorytmy konstrukcyjne będziemy rozumieć algorytmy,które mogą wygenerować kolejności niepermutacyjne. Łatwo pokazać, żeuszeregowanie optymalne nie musi być permutacyjne. Nie wynika stąd jed-nak, że nie należy rozważać algorytmów permutacyjnych. Po pierwsze, faktiż algorytmy niepermutacyjne mogą wygenerować dowolne uszeregowanie

Page 130: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

124 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

nie oznacza, że wygenerują uszeregowanie optymalne. Po drugie stosun-kowo mały stopień skomplikowania algorytmów permutacyjnych, skutkujeniezwykle dużą szybkością ich działania.Przedstawiony powyżej podział uszeregowań na uszeregowania permu-

tacyjne i niepermutacyjne ilustrujemy na wspomnianym już rys. 6.6. Wrozważanym systemie produkcyjnym zawierającym m = 3 maszyny należywykonać dwa zadania. Każde z nich składa tylko z jednej operacji; zadanie1 z operacji j ′ = 1, zaś zadanie 2 z operacji j ′′ = 2. Operacja j ′ wymagawykonania trzech czynności (j ′, 1), (j′, 2), (j′, 3), podczas gdy operacja j ′′ –dwóch czynności (j ′′, 1), (j′′, 2). Uszeregowanie permutacyjne oraz uszere-gowanie niepermutacyjne zostało przedstawione odpowiednio na rys. 6.6(i)oraz rys. 6.6(ii). Zauważmy, że w uszeregowaniu z rys. 6.6(ii) czynności ope-racji j′, j′′ są „przeplatane” na osi czasu; na maszynie 1 czynność (j ′′, 1)operacji j′′ jest wykonywana przed czynnością (j ′, 1) operacji j ′, podczasgdy na maszynie 2 czynność (j ′, 2) operacji j ′ jest wykonywana przed czyn-nością (j′′, 2) operacji j ′′.W kolejnych dwóch sekcjach proponujemy szereg permutacyjnych i nie-

permutacyjnych algorytmów konstrukcyjnych wraz ze schematami ich dzia-łania i odpowiednim uzasadnieniem. Obszerne wyniki badań testowych zo-stały zamieszczone w rozdziale 6.5.

6.4.1 Permutacyjne algorytmy konstrukcyjne

Z przedstawionej w poprzedniej sekcji definicji uszeregowania permu-tacyjnego wynika, że jest ono w pełni określone przez permutację γ =(γ(1), γ(2), ..., γ(o)) zbioru operacji O oraz następującą procedurę jego kon-strukcji, składającą się z o kroków iteracyjnych. Procedura startuje z pu-stego uszeregowania częściowego. W i-tym kroku iteracyjnym szeregujemyoperację γ(i), dostawiając ją możliwie najwcześniej na koniec uszeregowa-nia częściowego, otrzymując nowe uszeregowanie częściowe, i = 1, 2, ..., o.Szczegółowy schemat tej procedury przedstawiono na rys. 6.7.Procedura Uszeregowanie Permutacyjne(γ) na podstawie zadanej per-

mutacji operacji γ, generuje oprócz uszeregowania s(u), u ∈ N , takżekolejność π odpowiadającą uszeregowaniu s(u) oraz wartość funkcji ce-lu Cmax(π) = Cmax dla wygenerowanej kolejności π. Operator ⊕ użytydla częściowej permutacji πl oraz czynności u = (j, l) oznacza konkate-nację tych bytów, tzn. permutację π′l taką, że π

′l = (πl(1), . . . , πl(|πl|), u),

|π′l| = |πl| + 1. Zmienne pomocnicze d1 i d2 określają dolne ograniczenienajwcześniejszego możliwego momentu rozpoczęcia wykonywania dodawa-nej operacji j. Zmienna d1 oznacza najwcześniejszy możliwy moment jejrozpoczęcia wyznaczony na podstawie czasów xl określających momenty

Page 131: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.4. Algorytmy konstrukcyjne 125

Procedura Uszeregowanie Permutacyjne(γ)

Krok 1. Połóż xl = 0 dla l ∈ M , Cmax = 0 oraz π = (π1, . . . , πm),gdzie πl, l ∈M , są puste.

Krok 2. Dla każdego i = 1, . . . , o wykonaj krok 2a oraz krok 2b.

Krok 2a. Połóż j = γ(i), d1 = maxxµ(u) − rau : u ∈ Nj orazd2 = s(u+j−) + pu+

j−, jeżeli j− 6= 0 lub d2 = 0, jeżeli j− = 0.

Krok 2b. Połóż s(u) = maxd1, d2+ rau, xµ(u) = s(u) + pu, πµ(u) :=πµ(u) ⊕ u dla u ∈ Nj oraz Cmax := maxCmax, xµ(u+

j).

Rysunek 6.7: Schemat procedury generującej uszeregowanie permutacyjnedla permutacji γ

zwolnienia maszyn l, l ∈ M , zaś zmienna d2 – na podstawie momentuzakończenia wykonywania jej poprzednika technologicznego.

Zauważmy, że otrzymane uszeregowanie s(u), u ∈ N jest dopuszczalnewtedy i tylko wtedy, gdy permutacja γ spełnia następujący warunek:

Warunek W: Dla każdej pary operacji j ′, j′′ zadania k ∈ J takiej, żejk + 1 ¬ j′ < j′′ ¬ jk + ok zachodzi γ−1(j′) < γ−1(j′′), gdzie γ−1 jestpermutacją odwrotną do permutacji γ.

Z powyższych rozważań wynika, że poszczególne permutacyjne algoryt-my konstrukcyjne różnią się między sobą sposobami konstrukcji permuta-cji γ. Generalnie można wyodrębnić dwie grupy sposobów. Niech γ i−1 =(γ(1), γ(2), . . . , γ(i−1)) określa permutację częściową otrzymaną po wyko-naniu kroku i− 1, i = 1, 2, . . . , o; γ0 jest permutacją pustą. W kroku itera-cyjnym i algorytm określa pewną operację j, j 6∈ γ(1), γ(2), . . . , γ(i− 1).Jeżeli operacja j jest wstawiana na koniec permutacji γ i−1, otrzymując per-mutację γi = (γ(1), γ(2), . . . , γ(i − 1), j) = γi−1 ⊕ j, to będziemy mówić oalgorytmach priorytetowych (MP). W przeciwnym wypadku, tzn. gdy ope-racja j jest wstawiana na pewną pozycję (niekoniecznie ostatnią) permu-tacji γi−1 mówimy o algorytmach typu wstaw (MW). W kolejnych dwóchsekcjach dla każdej z grup permutacyjnych algorytmów konstrukcyjnychpodamy 11 wersji algorytmów opartych na tej samej idei, ale różniącychsię między sobą sposobem obliczania pewnych parametrów, które sterująbezpośrednio przebiegiem działania algorytmu.

Page 132: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

126 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Algorytmy priorytetowe

Jak już wspominałem ogólna zasada działania algorytmu prioryteto-wego MP polega na systematycznym dołączaniu odpowiedniej operacji nakoniec częściowej permutacji γ. Dokładniej, algorytm MP wykonuje o kro-ków iteracyjnych; w każdym kroku jest dołączana jedna operacja. W tymcelu w kroku iteracyjnym i określany jest zbiór operacji gotowych OG,tzn. operacji, których poprzedniki znajdują się już w permutacji częściowejγi−1. Następnie dla każdej operacji j ∈ OG wyznacza się priorytet δt(j).Operacja j ∈ OG o najmniejszej wartości tego priorytetu jest wstawianana koniec permutacji częściowej γi−1, co oznacza, że otrzymujemy nowąpermutację częściową γi = γi−1⊕ j; w przypadku kilku operacji o tej samejminimalnej wartości priorytetu, wybierana jest operacja o najmniejszymindeksie.Jest oczywiste, że otrzymana w ten sposób permutacja γ spełnia Waru-

nek W, przedstawiony w poprzedniej sekcji, czyli jest możliwe wyznaczenieuszeregowania dopuszczalnego s(u), u ∈ N . Do jego wyznaczenia stosu-jemy procedurę Uszeregowanie Permutacyjne(γ). W takim postępowaniuewidentnie wyróżnione są dwa etapy: wyznaczenie permutacji γ oraz wy-znaczenie uszeregowania. Łącząc jej jednak w jedna całość otrzymujemyalgorytm o znacznie mniejszym czasie działania. Taki właśnie algorytmkonstrukcyjny z parametrem t charakteryzującym zastosowany priorytet δtprzedstawiono na rys. 6.8.Algorytm Priorytetowy MP(t) generuje uszeregowanie s(u), u ∈ N , ze-

staw permutacji π odpowiadający temu uszeregowaniu oraz wartość funkcjicelu Cmax(π) = Cmax. Kroki 2b, 2c są bardzo podobne do kroków 2a, 2bprocedury z rys. 6.7. W kroku 2a wyznacza się, zgodnie z zastosowanympriorytetem δt, operację j, której wszystkie czynności będą szeregowane. Zkolei w kroku 4a dokonywana jest modyfikacja zbioru OG operacji gotowychdo wykonania; usuwana jest uszeregowana operacja j oraz dodawany jestjej następnik technologiczny j+ (jeżeli istnieje). Permutacja γ nie występu-je w postaci jawnej; jest ona określona przez kolejno szeregowane operacje.

Do pełnego określenia działania algorytmu priorytetowego należy jesz-cze sprecyzować priorytety δt(j). Proponuję go określać w taki sposób, bypromować „duże” operacje, wśród tych operacji, których uszeregowanie po-woduje stosunkowo niewielki wzrost wartości funkcji celu, definiowany jako

∆Cmax = Cmax(π′′)− Cmax(π′),

gdzie π′ jest kolejnością przed wstawieniem czynności operacji j a π′′ – potakim wstawieniu. Wielkość operacji j obliczana jest na podstawie takich

Page 133: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.4. Algorytmy konstrukcyjne 127

Permutacyjny Algorytm Priorytetowy MP(t)

Krok 1. Połóż xl = 0 dla l ∈ M , Cmax = 0, π = (π1, . . . , πm), gdzieπl, l ∈M , są puste oraz OG = jk + 1 : k ∈ J.

Krok 2. Wykonaj o razy krok 2a, 2b, 2c, 2d.

Krok 2a. Dla każdego j ∈ OG wyznacz wartość priorytetu δt(j).Połóż j = argmini∈OG δt(i).

Krok 2b. Połóż d1 = maxxµ(u) − rau : u ∈ Nj oraz d2 = s(u+j−) +

pu+j−, jeżeli j− 6= 0 lub d2 = 0, jeżeli j− = 0.

Krok 2c. Połóż s(u) = maxd1, d2+ rau, xµ(u) = s(u) + pu, πµ(u) :=πµ(u) ⊕ u dla u ∈ Nj oraz Cmax := maxCmax, xµ(u+

j).

Krok 2d. Połóż OG := ( OG \ j ) ∪ j+, jeżeli j+ 6= 0 lub OG :=OG \ j, jeżeli j+ = 0.

Rysunek 6.8: Schemat algorytmu priorytetowego MP(t) z priorytetem opostaci δt

jej cech jak: czas trwania tj , maksymalna długość pmaxj = maxu∈Nj pu jejczynności, średnia długość pavj =

u∈Nj pu/mj jej czynności oraz liczba mjtych czynności. Dziesięć szczegółowych postaci priorytetów δt, t = 1, . . . , 10,dla których jakość Algorytmu Priorytetowego MP(t) była najlepsza przed-stawiono w tabeli 6.1; wielkości te otrzymano przez wykonanie odpowied-nio wyczerpującego eksperymentu obliczeniowego. Dodatkowo umieszczonotam także priorytet w postaci δ0(j) = 1. Analiza Algorytmu PriorytetowegoMP(0) pozwala ocenić na ile priorytet arbitralny jest lepszy od pozostałych.

Algorytm MP(1) promuje operacje j, które jak najmniej zwiększająwartość funkcji celu. W algorytmach MP(2) – MP(10), wśród operacji ozbliżonych wartościach ∆Cmax promowane są duże operacje; im pmaxj , p

avj

lub mj jest większe, tym mniejszy jest każdy z priorytetów. Sposób pro-mowania jest różny: w algorytmach MP(3), MP(4) polega on podzieleniuwartości ∆Cmax przez miarę wielkości operacji, zaś w algorytmach MP(2),MP(5) – MP(10) – na odjęciu od wartości ∆Cmax tej miary. Współczynnikiprzy miarach operacji występujące w algorytmach MP(5) – MP(10) zostałydobrane eksperymentalnie.

Page 134: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

128 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Tabela 6.1: Sposoby obliczenia wartości priorytetu δk(j) operacji j

Priorytet δk(j) Sposób obliczenia

δ0(j) 1

δ1(j) ∆Cmax

δ2(j) ∆Cmax − tj

δ3(j) ∆Cmax/pavj

δ4(j) ∆Cmax/pmaxj

δ5(j) ∆Cmax − 0, 7pavj

δ6(j) ∆Cmax − 0, 7pmaxj

δ7(j) ∆Cmax − 0, 35pavj − 0, 35pmaxj

δ8(j) ∆Cmax − 0, 001pavj − 0, 7pmaxj

δ9(j) ∆Cmax − 0, 7pmaxj −mj

δ10(j) ∆Cmax − 0, 001pavj − 0, 7pmaxj −mj

Algorytmy typu wstaw

Idea tego algorytmu dla klasycznego problemu gniazdowego zostałaprzedstawiona w rozdziale 2.4.3. Tutaj z kolei zostanie rozszerzona na roz-ważany problem, w celu generowania uszeregowań permutacyjnych.Ogólna zasada działania algorytmu typu wstaw MW polega na syste-

matycznym wstawianiu odpowiedniej operacji na pewną pozycję częściowejpermutacji γ; algorytm wykonuje o kroków iteracyjnych i w każdym nichjest wstawiana jedna operacja. Dokładniej algorytm MW składa się z dwóchfaz. W fazie pierwszej dla każdej operacji j ∈ O, wyznacza się wagę ωt(j) inastępnie tworzona jest permutacja φ = (φ(1), φ(2), . . . , φ(o)) zbioru ope-racji spełniająca

ωt(φ(1)) ­ ωt(φ(2)) ­ . . . ­ ωt(φ(o)). (6.56)

Faza druga składa się z o kroków iteracyjnych. W kroku i wstawia się ope-rację j = φ(i), na pewną pozycję k, 1 ¬ k ¬ i, w otrzymanej do tej porypermutacji częściowej γi−1 = (γ(1), γ(2), . . . , γ(i− 1)); wstawienie operacjij na pozycję k oznacza, że wszystkie operacje z pozycji k, k+1, . . . , i−1 sąprzesuwane w prawo o jedną pozycje, a na zwolnionej pozycji k umieszczasię operacje j. W celu wyboru pozycji k wyznaczamy w permutacji czę-

Page 135: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.4. Algorytmy konstrukcyjne 129

ściowej dwie pozycje kaj oraz kbj . Pozycja k

aj jest największą wśród pozycji

w γi−1, na których znajdują się operacje poprzedzające w sensie technolo-gicznym operację j; jeżeli takich operacji nie ma, to kaj = 0. Pozycja k

bj jest

z kolei najmniejszą wśród pozycji w γi−1, na których znajdują się operacjenastępujące w sensie technologicznym po operacji j; jeżeli takich operacjinie ma, to kbj = i. Następnie wstawia się próbnie operację j na każdą zpozycji k, kaj < k ¬ k

bj . Dla każdej, tak otrzymanej i - elementowej per-

mutacji częściowej, wyznacza się wartość funkcji celu. Pozycja, dla którejwartość ta jest najmniejsza jest pozycją, na którą wstawiamy operację j;w przypadku gdy jest kilka takich pozycji wybiera się najwcześniejszą.

Ograniczenie się do przeglądania tylko pozycji kaj < k ¬ kbj powodu-

je, że otrzymana w ten sposób permutacja całkowita γ spełnia WarunekW, przedstawiony w poprzednich sekcjach, czyli jest możliwe wyznaczenieuszeregowania dopuszczalnego s(u), u ∈ N . Do jego wyznaczenia stosu-jemy znowu procedurę Uszeregowanie Permutacyjne(γ). Podobnie jak wprzypadku algorytmów priorytetowych, w tym postępowaniu można wy-różnić dwa etapy: wyznaczenie permutacji γ oraz wyznaczenie uszeregowa-nia. Łącząc je w jedną całość otrzymujemy algorytm o znacznie mniejszymczasie działania. Taki właśnie algorytm, zwany dalej algorytmem wstaw, zparametrem t charakteryzującym zastosowaną wagę ωt przedstawiono narys. 6.9. W algorytmie tym, podobnie jak w poprzednich algorytmach, wy-korzystuje się częściową kolejność π z |πl| ¬ nl, l ∈M . Teraz jednak dla tejczęściowej kolejności algorytm generuje graf G(π), który będąc zdefiniowa-ny w (4.4)–(4.7) charakteryzuje się tym, że we wzorze (4.6), określającymłuki kolejnościowe, zamiast nl należy położyć |πl|, l ∈ M . W konsekwen-cji graf ten ma taką samą liczbę wierzchołków, łuków technologicznych ioperacyjnych jak odpowiedni graf dla zestawu pełnego oraz mniejszą liczbęłuków kolejnościowych.

Algorytm Wstaw MW(t) generuje uszeregowanie s(u), u ∈ N , ko-lejność π odpowiadająca temu uszeregowaniu oraz wartość funkcji celuCmax(π) = Cmax. Pomocnicza permutacja γ określająca porządek wyko-nywania operacji jest tworzona w trakcie działania algorytmu. Składowazl zestawu pozycji z, w częściowej kolejności π, wyznaczana w kroku 2a,oznacza liczbę czynności (powiększoną o jeden) operacji γ(1), . . . , γ(kaj ),wykonywanych na maszynie l, l ∈ M . Inaczej mówiąc zl jest najmniejsząpozycją w częściowej permutacji πl taką, że czynność πl(zl) nie jest czyn-nością żadnej z operacji γ(1), . . . , γ(kaj ), l ∈ M . Po wykonaniu położeniazl := zl + 1, l ∈Mγ(k), dla ustalonego kaj + 2 ¬ k ¬ k

bj w kroku 2b, składo-

wa zl jest najmniejszą pozycją w częściowej permutacji πl taką, że czynnośćπl(zl) nie jest czynnością żadnej z operacji γ(1), . . . , γ(k − 1), l ∈M .

Page 136: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

130 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Permutacyjny Algorytm Wstaw MW(t)

Krok 1. Stosując wagi ωt wyznacz permutację φ spełniającą (6.56),Połóż π = (π1, . . . , πm), gdzie πl = (∅), l ∈M oraz γ = (∅).Połóż Cmax = 0.

Krok 2. Dla i = 1, . . . , o wykonaj krok 2a, 2b, 2c.

Krok 2a. Połóż j := φ(i).Dla częściowej kolejności π utwórz graf G(π) oraz obliczrπ(u), qπ(u), u ∈ N stosując algorytm MDSP z roz. 5.3.Wyznacz pozycje kaj , k

bj w permutacji częściowej γ.

Wyznacz zestaw pozycji z = (z1, . . . , zm) w częściowej kolej-ności π, gdzie zl = |1 ¬ x ¬ kaj : l ∈Mγ(x)|+ 1.Wyznacz h(z) z (6.8) oraz połóż hmin = h(z), f = kaj + 1.

Krok 2b. Dla k = kaj + 2, . . . , kbj wykonaj:

Połóż zl := zl + 1, l ∈Mγ(k).Wyznacz h(z) z (6.8).Jeżeli h(z) < hmin wtedy połóż hmin := h(z) oraz f := k.

Krok 2c. Wstaw operację j na pozycję f w częściowej permutacji γ.Wstaw czynność (j, l), operacji j na pozycję zl = |1 ¬ x ¬f : l ∈Mj|+ 1 w częściowej permutacji πl, l ∈Mj .Połóż Cmax := maxCmax, hmin.

Rysunek 6.9: Schemat algorytmu wstaw MW(t) z wagą o postaci ωt

Jakość próbnego wstawiania operacji j ocenia się poprzez wyznaczeniewartości funkcji celu, korzystając z własności 6.2 a dokładniej zależności(6.24). Jest oczywiste, że graf G(π) dla kolejności częściowej π na począt-ku kroku 2a jak i wszystkie grafy dla tej kolejności rozszerzonej o próbniewstawione na odpowiednie pozycje czynności operacji j (jedno wstawieniew kroku 2a oraz kbj − k

aj − 1 wstawień w kroku 2b), nie zawierają cykli o

dodatniej długości. Stąd i z własności 6.2 wynika prawdziwość zależności(6.24); kolejność α odpowiada tutaj częściowej kolejności π. Z uwagi na fakt,że wartość Cmax(α) (występująca w zależności (6.24)) nie zależy od pozycji,na które są próbnie wstawiane czynności operacji j – w celu wyznaczeniawstawienia o najmniejszej wartości funkcji celu – wystarczy się tylko ogra-niczyć do wyznaczenia wartości h(z); patrz kroki 2a, 2b. Wstawienie takie,a dokładniej pozycję kaj < f ¬ k

bj w częściowej permutacji γ wyznacza się

Page 137: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.4. Algorytmy konstrukcyjne 131

w kroku 2b. Następnie w kroku 2c, na tą pozycję wstawia się operację j.Pozycji f odpowiada zestaw pozycji zl = |1 ¬ x ¬ f : l ∈Mj|+1, l ∈Mjw częściowej kolejności π, na które wkłada się (w kroku 2c) wszystkie czyn-ności operacji j.W kroku 2a Algorytmu Wstaw MW(t), do wyznaczenia wartości rπ(u),

qπ(u), u ∈ N , najdłuższych dróg dochodzących i wychodzących z poszcze-gólnych wierzchołków grafu G(π) dla kolejności częściowej π, zastosowa-łem dość pracochłonny algorytm MDSP. Korzystając jednak z faktu, żekolejność częściową π można wygenerować na bazie permutacji częściowejγ = (γ(1), . . . , γ(i)) uszeregowanych operacji, wartości te można wyzna-czyć znacznie szybciej, stosując algorytm przedstawiony na rys. 6.10; zuwagi na symetrię przedstawiono tylko sposób wyznaczenia wartości rπ(u),u ∈ N . W celi zilustrowania jak można, na bazie częściowej permutacjiγ = (γ(1), . . . , γ(i)), wyznaczyć częściową kolejność π rozważmy następu-jący prosty przykład. Niech i = 2 oraz m = 3. Niech operacja γ1 = 3składa się z czynności (3, 1), (3, 2), zaś operacja γ2 = 1 – z czynności (1, 2),(1, 3). Wtedy π = (π1, π2, π3), gdzie π1 = ((3, 1)), π2 = ((3, 2), (1, 2)) orazπ3 = ((1, 3)).Jakość uszeregowania generowanego przez algorytm wstaw, zależy w du-

żym stopniu od permutacji φ. Jest intuicyjnie jasne, że powinno się szerego-wać operacje od największej do najmniejszej. (Wielkość operacji j określonajest precyzyjnie przez wybraną wagę wk(j)). Kolejność ta jest realizacją in-tuicyjnie oczywistej zasady, że najpierw należy szeregować „duże” operacje,a potem w powstałe „dziury” upychać „małe”. Dlatego też proponujemyjako wagi operacji przyjąć ich miary wielkości zaproponowane w poprzed-nim rozdziale; dodatkowo jako miarę wielkości operacji j przyjmujemy su-mę długości jej czynności psumj =

u∈Nj pu. Podobnie jak dla algorytmówpriorytetowych, dziesięć szczegółowych postaci wag ωt, t = 1, . . . , 10, dlaktórych jakość Algorytmu Wstaw MW(t) była najlepsza przedstawiono wtabeli 6.2; wielkości te otrzymano przez wykonanie odpowiedniego ekspery-mentu obliczeniowego. Dodatkowo umieszczono tam także wagę w postaciω0(j) = 1 w celach porównawczych.Algorytm MW(0) nie promuje żadnej operacji. Pozostałe algorytmy

MW(1)–MW(10) promują duże operacje w oparciu o przyjęte miary wiel-kości (algorytmy MW(1)–MW(4)) lub sumy tych miar (algorytmy MW(5)–MW(10)).

6.4.2 Niepermutacyjne algorytmy konstrukcyjne

Przy omawianiu niepermutacyjnych algorytmów konstrukcyjnych ogra-niczę się do algorytmów typu wstaw, ponieważ ze wstępnych badań wynika,

Page 138: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

132 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Procedura Wyznacz R(γ, i)

Krok 1. Połóż xl = 0 dla l ∈ M oraz π = (π1, . . . , πm), gdzie πl,l ∈M , są puste.

Krok 2. Dla każdego k = 1, . . . , i wykonaj krok 2a oraz krok 2b.

Krok 2a. Połóż g = γ(k).Wyznacz kag oraz zbiór A poprzedników technologicznychoperacji g o numerach większych niż γ(kag ).Połóż d1 = maxxµ(u)− rau : u ∈ Ng oraz d2 = r(γ(kag ))+∑

e∈A te, jeżeli kag 6= 0 lub d2 =

e∈A te, jeżeli kag = 0.

Krok 2b. Połóż r(u) = xµ(u) = maxd1, d2+ rau + pu, u ∈ Ng.

Krok 3. Dla każdej operacji g = 1, . . . , o takiej, że g ∈ O \γ(1), . . . , γ(i) wykonaj krok 3a.

Krok 3a. Połóż d = r(u+g−)+tg, jeżeli g− 6= 0 lub d = tg, jeżeli g− = 0.

Połóż r(u) = d+ rau + pu, u ∈ Ng.

Rysunek 6.10: Schemat procedury wyznaczającej wartości rπ(u), u ∈ N , wgrafie G(π) dla kolejności częściowej π; kolejność częściowa π jest określonaprzez permutację częściową γ = (γ(1), . . . , γ(i)) uszeregowanych operacji

Tabela 6.2: Sposoby obliczenia wartości wagi ωk(j) operacji j

Waga ωk(j) Sposób obliczenia Waga ωk(j) Sposób obliczenia

ω0(j) 1 ω6(j) mj + psumj

ω1(j) tj ω7(j) mj + pavj

ω2(j) pmaxj ω8(j) tj + pmaxj

ω3(j) psumj ω9(j) tj + psumj

ω4(j) pavj ω10(j) tj + pavj

ω5(j) mj + pmaxj

iż tylko algorytmy tego typu produkują uszeregowania (niepermutacyjne)o zauważalnie wyższej jakości niż algorytmy permutacyjne.Ogólnie zarysowana idea przedstawiona w rozdziale 2 została przenie-

Page 139: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.4. Algorytmy konstrukcyjne 133

siona na rozważany problem gniazdowy z operacjami wielomaszynowymiskładającymi się z nieprzesuwalnych czynności asynchronicznych. W kon-sekwencji powstał algorytm typu wstaw zwany dalej algorytmem MINS(ang. Multi-Machine Insert). Specyfika tego problemu wymaga jednak dośćistotnych zmian, które omawiam poniżej.Po pierwsze należy określić, czy w danym kroku iteracyjnym będzie-

my szeregować tylko jedną czynność, czy też wszystkie czynności jednejoperacji? Z uwagi jednak na fakt, że czynności danej operacji muszą być„sztywno” względem siebie położone zdecydowałem się na wybór drugiegowariantu.Po drugie należy zdefiniować, co będziemy rozumieć przez wagę ω(j)

operacji j. Wydaje się, że najbardziej rozsądnym jest przyjęcie miary tejwielkości w postaci sumy czasów wykonywania wszystkich czynności ope-racji j, tzn. ω3(j) = psumj =

u∈Nj pu (patrz tabela 6.2); rezygnuję tutaj zinnych postaci wag stosowanych dla algorytmów permutacyjnych.Po trzecie liczba wszystkich możliwych próbnych wstawień operacji j

jest dość znaczna, ponieważ operacja nie jest tożsama z jedną czynnością(jak w sytuacji klasycznej) lecz składa się czynności. Dokładniej, jeże-li przed próbnym wstawianiem operacji j kolejność częściowa ma postaćπ = (π1, π2, . . . , πm), gdzie πl = (πl(1), πl(2), . . . , πl(|πl|)), to należy roz-ważyć aż

l∈Mj (|πl| + 1) różnych próbnych wstawień; czynność u = (j, l)jest wstawiana przed każdą uszeregowaną czynnością na maszynie l orazza ostatnią z tych czynności, l ∈ Mj . W tym algorytmie rezygnuję jed-nak z zredukowanego zbioru zestawów bazowych pozycji ZZB(j) na rzeczpełnego zestawu pozycji ZB(j). Zastosowanie pewnej dodatkowej techni-ki pozwoliło jednak istotnie zmniejszyć zbiór ZB(j), nie tracąc przy tymżadnego z zestawu pozycji generującego dopuszczalne uszeregowanie.Zauważmy, że dla każdego bazowego zestawu pozycji zb = (zb1, . . . , zbm)

generującego dopuszczalne uszeregowanie prawdziwe są następujące stwier-dzenia: (i) wszystkie czynności uszeregowanych poprzedników technologicz-nych B(j) operacji j wykonywanych na maszynie l ∈Mj leżą w permutacjiπl na pozycjach mniejszych niż zbl, (ii) wszystkie czynności uszeregowanychnastępników technologicznych A(j) operacji j wykonywanych na maszyniel ∈Mj leżą w permutacji πl na pozycjach nie mniejszych niż zbl. Spełnieniewarunku (i) oraz (ii) oznaczają spełnienie następujących nierówności

π−1l (u) < zbl, µ(u) = l, u ∈ B(j), l ∈Mj

π−1l (u) ­ zbl, µ(u) = l, u ∈ A(j) l ∈Mj .

Na podstawie definicji (6.36) zestawu bazowego i nierówności (6.34) wynika,

Page 140: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

134 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

że powyższe nierówności można sprowadzić do ostatecznej postaci:

maxrπ(u) : µ(u) = l, u ∈ B(j), l ∈Mj < minl∈Mj

rα(αl(zbl)) (6.57)

oraz

minl∈Mj

rα(αl(zbl)) ¬ minrπ(u) : µ(u) = l, u ∈ A(j), l ∈Mj. (6.58)

Oznacza to możliwość znalezienia najlepszego zestawu pozycji zb∗∗ ze zbio-ru ZB przeglądając tylko zestawy bazowe, poczynając od pierwszego ze-stawu spełniającego warunek (6.57), a kończąc na ostatnim zestawie speł-niającym warunek (6.58). Podam teraz w jaki sposób należy generowaćpierwszy bazowy zestaw pozycji zbSTART spełniający (6.57) oraz w jakisposób wykryć czy dany bazowy zestaw pozycji jest ostatnim zestawemzbSTOP spełniającym nierówność (6.58).W celu utworzenia zestawu pozycji zbSTART należy wyznaczyć wartość

rSTART = maxrπ(u) : µ(u) = l, u ∈ B(j), l ∈Mj. (6.59)

Jeżeli operacja j nie ma żadnego poprzednika technologicznego, któregoczynności leżą na maszynach Mj , wtedy przyjmujemy rSTART = −∞. Na-stępnie należy ustawić zbSTARTl na minimalną wartość, przy której zachodziπl(zbSTARTl ) > rSTART dla l ∈Mj oraz zbSTARTl = 0 dla l ∈M \Mj .W celu weryfikacji czy dany zestaw pozycji zb jest zestawem zbSTOP

należy wyznaczyć wartość

rSTOP = minrπ(u) : µ(u) = l, u ∈ A(j), l ∈Mj. (6.60)

Jeżeli maxl∈Mj rα(αl(zbl)) = rSTOP oznacza to, że analizowany zestaw

pozycji jest zestawem zbSTOP .Poza powyższymi zmianami, należało jeszcze zaprojektować zachowa-

nie się algorytmu w sytuacji, gdy próbne wstawienie operacji j na każdąz pozycji bazowych generuje uszeregowanie niedopuszczalne; sytuacja tawynika ze specyfiki badanego problemu i nie występowała w sytuacjachklasycznych. Dokładna analiza pokazuje, że sytuacja taka może zacho-dzić tylko wtedy, gdy jest już uszeregowana przynajmniej jedna opera-cja będąca poprzednikiem technologicznym operacji j oraz przynajmniejjedna operacja będąca następnikiem technologicznym operacji j. Niech j ′

będzie „najbliższym” uszeregowanym następnikiem technologicznym ope-racji j. Z powyższego wynika, że kolejność wstawiania operacji ustalonaw fazie wstępnej jest następująca φ = (φ(1), . . . φ(i′), . . . φ(i), . . . , φ(o))gdzie φ(i′) = j′, φ(i) = j. Proponuję utworzyć nową kolejność wstawiania

Page 141: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.4. Algorytmy konstrukcyjne 135

Niepermutacyjny Algorytm Wstaw MINS

Krok 1. Stosując odpowiednią wagę ω wyznacz permutację φ speł-niającą (6.56), Połóż π = (π1, . . . , πm), gdzie πl = (∅),l ∈M . Połóż Cmax := 0.

Krok 2. Dla i = 1, . . . , o wykonaj kroki 2a – 3b.

Krok 2a. Połóż j := φ(i). Dla kolejności częściowej π utwórz grafG(π).Wyznacz wartości rSTART oraz rSTOP z (6.59) oraz (6.60).Na podstawie wartości rSTART wyznacz zbSTART .Połóż z := zbSTART oraz Cbestmax :=∞.

Krok 2b. Wyznacz h(z) z (6.8).Jeżeli h(z) < Cbestmax, to wyznacz Cmax(π) i jeżeli Cmax(π) <Cbestmax, to C

bestmax := Cmax(π), z

best := z.

Krok 2c. Oblicz wartość R = minl∈Mj rπ(πl(zl)).

Dla l ∈Mj takiego, że rπ(πl(zl)) = R połóż zl := zl + 1.

Krok 2d. Jeżeli maxl∈Mj rα(αl(zbl) < rSTOP , to idź do krok 2b.

Krok 3a. Jeżeli Cbestmax < ∞, to wstaw czynność (j, l), operacji j napozycję zbestl w permutacji πl, l ∈ Mj oraz połóż Cmax :=maxCmax, hmin.

Krok 3b. Jeżeli Cbestmax =∞, to:znajdź największą pozycję i′ taką, że j = φ(i) jest poprzed-nikiem technologicznym operacji j,podstaw φ := (φ(1), . . . , φ(i′ − 1), φ(i), φ(i′), . . . , φ(i − 1),φ(i+ 1), . . . , φ(o)), i := i′ oraz Cmax = Cmax(π).

Rysunek 6.11: Schemat niepermutacyjnego algorytmu wstaw MINS

φ′ = (φ(1), . . . , φ(i′− 1), φ(i), φ(i′), . . . , φ(i− 1), φ(i+1), . . . , φ(o)). Dla no-wej kolejności operacji φ wystarczy, podstawić φ := φ′ oraz przejść do kroku2b. Zauważmy, że taka poprawka permutacji φ, może powtórzyć się co naj-wyżej skończoną ilość razy (w testowanych przykładach opisywana korektapermutacji φ występowała sporadycznie i tylko w nielicznych przykładachkilkakrotnie), a algorytm kończy się zawsze wygenerowaniem dopuszczalnejkolejności π.Powyższe działania można jednak znacznie przyśpieszyć. Zauważmy

Page 142: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

136 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

najpierw, że początkowa część permutacji φ nie została zmieniona; dokład-niej elementy φ(1), . . . , φ(i′ − 1) pozostały na swoich pozycjach. Oznaczato, że algorytm MINS do kroku w którym wstawiana jest operacja φ(i′−1)uruchomiony dla nowej kolejności φ′ będzie działał dokładnie tak samo jakdziałał dla permutacji φ. Wykorzystując ten fakt, proponuję odtworzyć stankolejności π oraz wartość Cmax, dla wyżej opisanego kroku, zamiast doko-nywać ponownych obliczeń. Aby uzyskać interesującą nas postać kolejnościπ należy z wyjąć z niej wszystkie czynności operacji φ(i), . . . , φ(i − 1), aw celu odtworzenia wartości Cmax wystarczy podstawić Cmax := Cmax(π)dla zmodyfikowanej już kolejności π. W celu dalszej kontynuacji algorytmunależy zmodyfikować wartość zmiennej sterującej i := i′ oraz przejść dokroku 2.W celu uniknięcia wielokrotnych korekt permutacji φ, proponuję zasto-

sowanie licznika korekt permutacji φ. Jeżeli wartość tego licznika przekroczyustaloną wielkość proponuję przyjąć za φ permutację zgodną z ograniczenia-mi technologicznymi (np. jako permutację naturalną) oraz przejść do kroku1 (z pominięciem generacji permutacji φ w tym kroku). Takie rozwiązanie,skraca czas pracy proponowanego algorytmu w „złośliwych przykładach”,jednakże obarczone jest dla tych przykładów nieznacznie gorszą jakościągenerowanych rozwiązań.

6.5 Algorytm typu tabu

Zaproponowany algorytm oparty jest o klasyczną metodę tabu, przed-stawioną w rozdziale 2.4.5, dlatego zdecydowałem się na szczegółowy opistylko poszczególnych elementów algorytmu.

6.5.1 Sąsiedztwo

Sąsiedztwo kolejności π ∈ Π wykorzystywane w algorytmie MTS bazujena ruchach typu wstaw. Dla każdej operacji j ∈ Ω wyznaczamy ruch

vR(j) = argmin

Cmax(π(v)) : v ∈ V B(π, j)

(6.61)

zwany reprezentantem operacji j. Sąsiedztwo kolejności π ma postać

NMTS(π) =

π(vR(j)) : j ∈ Ω

. (6.62)

Ogólnie w algorytmach typu tabu, stosuje się dwie metody wyboru ru-chu. Pierwsza z nich (i) dokładna, ale wolna polega na przejrzeniu całegosąsiedztwa i wybraniu najlepszego w sensie wartości funkcji ruchu nie ta-bu. Druga metoda (ii) znacznie szybsza, polega na przerwaniu przeglądania

Page 143: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.5. Algorytm typu tabu 137

rozwiązań z sąsiedztwa, w momencie znalezienia pewnego ruchu nie-tabu,który poprawia bieżącą wartość funkcji celu. W takim przypadku algo-rytm wybiera oczywiście pierwszy znaleziony taki ruch. W przypadku gdynie istnieje żaden ruch nie-tabu, poprawiający bieżącą wartość funkcji celupierwsza i druga metoda wyboru ruchu są sobie równoważne.W proponowanym algorytmie stosujemy zarówno pierwszą jak i drugą

metodę wyboru ruchu. Algorytm rozpoczyna pracę wybierając ruch pierw-szą z opisanych metod. Zmiana metody z pierwszej na drugą następujegdy przez x iteracji algorytm nie poprawił globalnego najlepszego rozwią-zania14 (w prezentowanym algorytmie parametrowi x nadaliśmy wartość5). Ponowny powrót algorytmu do dokładnej metody wyboru ruchu nastę-puje w momencie poprawienia globalnego najlepszego rozwiązania. Takadynamiczna zmiana metody wyboru ruch istotnie przyśpiesza algorytm,co więcej interesujące nas obszary rozwiązań, badane są jednak dokładnąmetodą.Badania numeryczne wykazały, że zastosowanie tak dynamicznie zmie-

niającej się metody wyboru ruchu, znacznie poprawiają efektywność algo-rytmu w stosunku do algorytmów ograniczających się do stosowania tylkojednej z opisanych metod.Ponadto w celu przyśpieszenia algorytmów, zdecydowałem się na wy-

znaczanie tylko części reprezentantów w jednej iteracji. Dokładnie odbywasię to następujący sposób. Każdej operacji przypisałem pewną cechę z za-kresu od 1 do k. Liczność operacji posiadających daną cechę jest jednakowa(z dokładnością do 1). Liczba możliwych cech k jest dobierana na podstawiedanych instancji k = 1+ bo/ξc, gdzie ξ jest pewnym współczynnikiem (do-branym eksperymentalnie na 50). W danym kroku iteracyjnym wyznaczanisą tylko reprezentanci operacji posiadający cechę mod(iter, k) + 1, gdzieiter jest bieżącym numerem wykonywanej iteracji, zaś funkcja mod(iter, k)zwraca resztę z wartości iter podzielonej przez k. Opisana metoda przyśpie-sza pracę algorytmu k razy, poprzez k-krotne zmniejszenie liczby wyzna-czanych reprezentantów. Oczywiście jedna iteracja tak zmodyfikowanegosąsiedztwa jest znacznie mniej efektywna niż iteracja klasyczna, jednakże zczasowym kryterium stopu, zaproponowana metoda poprawia efektywnośćalgorytmu.

6.5.2 Akceleratory wyboru reprezentanta

Podstawowa idea akceleratorów wyboru reprezentanta vRj , polega natakim wykorzystaniu własności problemu, aby nie wyznaczając wartości

14Globalne najlepsze rozwiązanie, jest to najlepsze w sensie wartości funkcji celu roz-wiązanie znalezione przez algorytm

Page 144: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

138 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Cmax(π(v)) dla wszystkich ruchów v ∈ V B(π, j), określić go dokładnie. Wtym celu proponuję wykorzystać jednocześnie dwa następujące sposoby ak-celeracji.Istotą pierwszego sposobu jest całkowita rezygnacja z wyznaczenia re-

prezentanta vRj , jeżeli wartość Cmax(γ) jest nie mniejsza, niż wartość funkcjicelu dla reprezentanta innej operacji, który nie jest tabu.Drugi sposób polega na tym, że przed obliczeniem dla danego bazowego

zestawu pozycji z ∈ ZZB(j) wartości funkcji celu Cmax(π(v)), v = (j, z),wyznaczamy wartość dolnego ograniczenia h(z). Jeżeli wartość h(z) jestnie mniejsza niż obliczona już wartość funkcji celu: (i) dla innego zestawubazowego operacji j lub (ii) dla reprezentanta innej operacji, który niejest tabu, to taki zestaw bazowy jest opuszczany bez wyliczania Cmax(πv).Przypominam, że złożoność obliczeniowa wyznaczenia h(z) dla operacji jwynosi O(|Mj |), podczas gdy dokładne obliczenie wartości funkcji celu mazłożoność O((

i∈O |Mi|)2).

6.5.3 Postać listy tabu

Elementem listy tabu T , zgodnie z ideą zawartą w [77], są atrybutykolejności i ruchu. Dokładniej, jest to łuk określający kolejność pomiędzypewną parą czynności. Po wykonaniu ruchu v = (j, z) dla kolejności π, nalistę T zapisywany jest zbiór AV(π, v) =

l∈Mj AV l(π, v) zawierający od 1do |Mj | łuków, gdzie:

AV l(π, v) =

((j, l), πl(zπ,jl + 1)), z

π,jl < zl,

(πl(zπ,jl − 1), (j, l)), z

π,jl > zl,

∅, zπ,jl = zl.(6.63)

Przesunięcie czynności (j, l) „w prawo” (na pozycję o większym indek-sie) jest tabu wtedy i tylko wtedy, gdy na liście T znajduje się przynaj-mniej jeden łuk (j1, j2) taki, że j1 = πl(i) dla pewnego z

π,jl < i ¬ zl oraz

j2 = (j, l). Symetrycznie przesunięcie „w lewo” jest tabu, gdy na liście Tznajduje się przynajmniej jedna para operacji (j1, j2) taka, że j1 = (j, l)oraz j2 = πl(i) dla pewnego zl ¬ i < z

π,jl . W algorytmie zastosowaliśmy

efektywne określanie statusu przesuwanej czynności zgodnie z ideą z [77];obliczenia wstępne mają złożoność O(max|M | · |O|, |T |), zaś sprawdzenieczy przesunięcie pojedynczej czynności jest tabu ma złożoność O(1).Generalnie przy ruchach zmieniających położenie kilku czynności, moż-

na wyróżnić dwie definicje ruchu tabu. Pierwsza z nich, zwana słabym tabu,mówi że, ruch v = (j, z) uważamy za tabu, jeżeli przesunięcie każdej czyn-ności wchodzącej w skład operacji j jest tabu. Druga z nich zwana silnym

Page 145: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

. Algorytm symulowanego wyżarzania 139

tabu, mówi że, ruch v = (j, z) uważamy za tabu, jeżeli przesunięcie przy-najmniej jednej czynności wchodzącej w skład operacji j jest tabu. W obuprzypadkach czynności operacji j, które nie są przesuwane w wyniku ruchuv, nie są brane pod uwagę przy określaniu statusu ruchu.Badania numeryczne przeprowadzone przez autora wykazały, przewagę

algorytmów z zastosowaniem silnej definicji tabu. Dlatego w proponowa-nym algorytmie MTS stosujemy tą właśnie postać zabronienia. Ponadtoprzeprowadzone badania wykazały, że optymalna długość listy tabu przyzastosowaniu silnego zabronienia jest nieco dłuższa niż w przypadku zabro-nienia słabego.

6.5.4 Techniki wspierające

AlgorytmMTS został wzbogacony o detektor cyklu oraz o metodę skokupowrotnego zapewniającą dywersyfikację poszukiwań, [77]. Idea tej meto-dy polega na tym, że jeżeli po upływie ustalonej liczby kroków MTS nieznajduje lepszego rozwiązania lub zostaje wykryty cykl, to algorytm po-wraca do ostatniego najlepszego rozwiązania, lista tabu jest przywracanado stanu w jakim była po wykonaniu ruchu generującego ostatnie najlepszerozwiązanie, zbiór reprezentantów zostaje pomniejszany o odpowiedni ruchi proces poszukiwań jest kontynuowany.Dodatkową techniką podnoszącą efektywność algorytmu jest dostoso-

wująca się dynamicznie długość listy tabu. Technika ta polega na tym, żealgorytm po wykonaniu określonej liczby powrotów (skoków powrotnych)nie przynoszących efektów w postaci znalezienia lepszego rozwiązania, prze-chodzi w „tryb bez powrotów”. W trybie tym zamiast wykonywać skokpowrotny, modyfikowana jest długość listy tabu. W przypadku wykonaniaustalonej liczby kroków bez poprawy rozwiązania, długość listy tabu jestzmniejszana, lecz w przypadku wykrycia cyklu, długość ta jest zwiększana.

6.5.5 Rozwiązanie początkowe

Do generacji rozwiązania początkowego posłużyłem się algorytmemkonstrukcyjnym MINS, który jest opisany w wcześniejszej sekcji. Zrezy-gnowałem z bardzo szybkich algorytmów konstrukcyjnych przedstawionychna początku tego rozdziału, ponieważ algorytm MINS generował uszere-gowania ponad 10% lepsze, niż najlepszy zaproponowany tam algorytm io 3,6% lepsze, niż najlepsze spośród uszeregowań uzyskanych wszystkimiproponowanymi algorytmami permutacyjnymi.

Page 146: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

140 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

6.6 Algorytm symulowanego wyżarzania

Ogólna idea algorytmu typu symulowanego wyżarzania przedstawionazostała w rozdziale 2.4.4. W tej sekcji szczegółowo przedstawię implementa-cję algorytmy typu SA dla rozważanego problemu, zwanego dalej MSA. Wprezentowanym algorytmie prawdopodobieństwo zaakceptowania rozwiąza-nia P (π1, π2) , tzn. przejścia z rozwiązania π1 do rozwiązania π2, wynosi:

P (π1, π2) = min(1, e−∆/T ) (6.64)

gdzie ∆ = Cmax(π2) − Cmax(π1), zaś T jest parametrem (zwanym tem-peraturą) zmieniającym się logarytmicznie podczas pracy algorytmu odwartości Tstart do Tend 15. W celu wyznaczenia temperatury początkoweji końcowej, wyznacza się maksymalną ∆max oraz minimalną (dodatnią)∆min możliwą zmianę wartości funkcji, pomiędzy sąsiednimi rozwiązania-mi. Ponieważ wszystkie dane instancji są liczbami całkowitymi, najmniejszamożliwa zmiana wynosi 1. Z kolei parametrowi ∆max przypisujemy wartośćnajdłuższego czasu trwania tj operacji j ∈ O, spośród wszystkich operacjirozważanej instancji problemu, ∆max = maxj∈Otj. Temperaturę począt-kową ustawia się w taki sposób, aby prawdopodobieństwo zaakceptowaniarozwiązania gorszego o ∆max/2 wynosiło 0,5. Temperaturę końcową usta-wia się natomiast w taki sposób, aby prawdopodobieństwo zaakceptowaniarozwiązania gorszego o 2∆min wynosiło także 0,5;

Tstart =−∆max/2ln(0, 5)

, Tend =−2 ·∆minln(0, 5)

(6.65)

Algorytm wykonuje 10.000 iteracji, przy czym zmiana temperatury nastę-puje co 100 iteracji w sposób logarytmiczny, zgodnie z wzorem:

T :=T

1 + λ · T(6.66)

gdzie

λ =Tstart − Tendη · Tstart · Tend

(6.67)

oraz η = 99 oznacza liczbę zmian temperatury.Przeprowadzone eksperymenty numeryczne wykazały, że stosowanie in-

nych schematów chłodzenia zmniejsza efektywność algorytmu. Ponadto ba-dania wykazały, że relatywnie niewielka zmiana temperatury początkowejlub końcowej na inną niż proponowana (6.65) powoduje spadek efektywno-ści omawianego algorytmu. Oznacza to, że wartości temperatury początko-wej i końcowej są dobrze dobrane.15Tend oznacza temperaturę, przy której algorytm wykonuje ostatnie iteracje.

Page 147: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.5. Badania testowe 141

6.6.1 Sąsiedztwo

Na podstawie przeprowadzonych licznych eksperymentów numerycz-nych, stwierdzam, że w obydwóch algorytmach MTS, MSA najlepsze rezul-taty przynosi zastosowanie identycznego sąsiedztwa jakim jest NMSA(π) =π(vR

j) : j ∈ Ω. Dodatkową zaletą, zastosowania identycznego sąsiedz-

twa, jest możliwość porównania efektywności ogólnej idei zastosowanej wtych algorytmach (przeszukiwania z zabronieniami i symulowanego wyża-rzania). Dlatego też pozostałe elementy obydwóch algorytmów pełniące tesame funkcje były identyczne16. Sąsiedztwo w prezentowanym algorytmiejest dokładnie takie samo, jak dla algorytmu MTS. Nie dotyczy to zasto-sowania metody przyśpieszającej opartej na cechach operacji zastosowanejw algorytmie MTS.

6.6.2 Rozwiązanie startowe

Prezentowany algorytm MSA rozpoczyna pracę z tego samego rozwią-zania, co algorytm MTS oparty na technice tabu. Rozwiązanie to jest ge-nerowane przez algorytm MINS. Startowanie z takich samych rozwiązańpoczątkowych jest bardzo korzystne dla prawidłowego porównywania efek-tywności algorytmów MSA oraz MTS.

6.6.3 Techniki wspierające

Podczas działania algorytm MSA zapamiętuje najlepsze (dotychczasznalezione) rozwiązanie. W przypadku, gdy algorytm wykona pewną liczbęiteracji (250) nie poprawiających wartości funkcji celu, następuje przypisa-nie bieżącemu rozwiązaniu rozwiązania najlepszego.

6.7 Badania testowe

W sekcji tej przedstawię badania numeryczne przeprowadzone dla wszy-stkich proponowanych w tym rozdziale algorytmów. Pierwszy etap testów,składający się z czterech części, porównuje proponowane algorytmy międzysobą. Do tego celu, wykorzystywane są specjalnie przygotowane przykła-dy testowe. W etapie drugim ograniczam się do szczególnego przypadkubadanego problemu jakim jest problem gniazdowy z operacjami jednoma-

16Mowa tu o sposobie generowania rozwiązania startowego, kryterium stopu o dodat-kowej technice zwiększającej efektywność algorytmu – skoku powrotnym.

Page 148: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

142 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

szynowymi bez czekania17. W tym etapie korzystam z przykładów litera-turowych, a rezultaty otrzymane proponowanymi algorytmami porównujęz najnowszymi rezultatami reprezentowanymi w literaturze.Etap pierwszy testów składa się kolejno z pierwszej część, w której po-

równywane są ze sobą bardzo szybkie permutacyjne algorytmy konstrukcyj-ne MP(0) – MP(10), MW(1) – MW(10). W drugiej części testu będę porów-nywać bardziej zaawansowany algorytm konstrukcyjny MINS z rezultatamiotrzymanymi w pierwszej części testu. Kolejna trzecia część testu będziedotyczyła poprawy jaką uzyskuje algorytm MTS startujący z rozwiązań wy-generowanych algorytmem MINS. Czwarta część testu będzie polegała naporównaniu algorytmów popraw MSA z algorytmem MTS, startujących ztych samych rozwiązań początkowych, działających jednakowo długo. Etapdrugi składa się z porównania rozwiązań otrzymanymi algorytmami MTSi MSA startującymi z rozwiązania generowanego algorytmem MINS w sto-sunku do rozwiązań otrzymanych algorytmami literaturowymi.

6.7.1 Przykłady testowe

Przykłady testowe pierwszego etapu badań zostały wygenerowane nabazie 120 przykładów z pracy [17], dla operacji wielomaszynowych z rów-noczesnym użyciem maszyn. Ponieważ oryginalne przykłady zawierają kilkasposobów wykonania tej samej operacji ograniczyłem się tylko do jednegoz nich. Następnie sposób wykonania danej operacji j określony przez dłu-gość jej trwania tj , zbiór maszyn Mj (jednoznacznie identyfikujący zbiórczynności Nj), wzbogaciłem o parametry rau, pu, u ∈ Nj . Zostały one wy-losowane w taki sposób, by przez cały okres trwania operacji j, koniecznebyło wykonywanie przynajmniej jednej czynności.Wszystkie przykłady testowe są typu SData i podzielone są na 3 klasy

(SRData, SMData, SVData), po 40 instancji w każdej z nich. Klasy różniąsię miedzy sobą średnią oraz maksymalną liczbą czynności jednej operacji,patrz tabela 6.3. Przykłady w każdej klasie można z kolei połączyć w grupypo 5 przykładów, charakteryzujące się jednakową liczbą maszyn m, zadańr, oraz operacji o, patrz tabela 6.4. Jak widać z tabel 6.3, 6.4. przykładytestowe są dość mocno zróżnicowane pod względem ich rozmiaru (liczbamaszyn, liczba zadań, liczba operacji) oraz liczby czynności danej opera-cji. Takie zróżnicowanie jest konieczne, aby wszechstronnie ocenić jakośćdanego algorytmu.

17Problem gniazdowy z operacjami jednomaszynowymi bez czekania (przy dodatko-wym założeniu, że każda operacja wykonywana jest na innej maszynie) można mode-lować poprzez problem gniazdowy z operacjami wielomaszynowymi z nieprzesuwalnymiczynnościami asynchronicznymi patrz rozdział 4.2.

Page 149: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.5. Badania testowe 143

Tabela 6.3: Parametry klasy przykładów testowych

Klasa przykładówLiczba czynności jednej operacji

Średnia Maksymalna

SRData 2 3

SMData 1/3 ·m 3/5 ·m

SVData 1/2 ·m 4/5 ·m

Tabela 6.4: Parametry grupy przykładów testowych

Grupaprzykładów

m r oGrupaprzykładów

m r o

01 – 05 5 10 50 21 – 25 10 15 150

06 – 10 5 15 75 26 – 30 10 20 200

11 – 15 5 20 100 31 – 35 10 30 300

16 – 20 10 10 100 36 – 40 15 15 225

6.7.2 Algorytmy konstrukcyjne

Wszystkie badania przedstawione w tym rozdziale, zostały przeprowa-dzone na komputerze klasy PC z procesorem Athlon XP 2000+ taktowa-nym zegarem 1666MHz. Prezentowane algorytmy zostały zaprogramowanew języku Pascal w środowisku Delphi i uruchamiane były w systemie ope-racyjnym Windows XP.

W pierwszej części testu badane są permutacyjne algorytmy konstruk-cyjne. Jakość rozwiązania wygenerowanych przez algorytmA ∈ MP (0), . . .,MP (10),MW (0), . . . ,MW (10) dla danego przykładu oceniam obliczającbłąd względny

ρA = 100% · (CAmax − CBestmax )/C

Bestmax , (6.68)

gdzie CAmax jest wartością funkcji celu dla uszeregowania utworzonego al-gorytmem A, zaś CBestmax jest najmniejszą wartością funkcji celu spośróduszeregowań wygenerowanych poprzez wszystkie badane w tej części testualgorytmy. Wyniki testów dla grupy algorytmów priorytetowych oraz grupyalgorytmów typu wstaw przedstawione są odpowiednio w tabeli 6.5 oraz wtabeli 6.6. W kolumnie „All” tych tabel podano średni błąd ρA wszystkichalgorytmów danej grupy, z wyjątkiem algorytmu MP(0) oraz algorytmu

Page 150: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

144 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Tabela 6.5: Wyniki testów permutacyjnych algorytmów priorytetowych dlaposzczególnych klas przykładów

KlasaŚredni błąd względny ρMP (x) [%] dla x ∈ 0, . . . , 10

0 1 2 3 4 5 6 7 8 9 10 ALL

SRData 224,3 18,3 33,5 12,8 9,0 10,4 7,6 7,9 7,1 7,5 6,9 12,1

SMData 154,4 18,7 17,6 12,8 7,4 10,1 6,1 7,6 6,2 4,6 4,9 9,6

SVData 101,3 28,6 16,4 17,2 13,7 18,9 12,4 14,2 11,7 11,7 10,7 15,5

Średnia 160,0 21,9 22,5 14,2 10,0 13,1 8,7 9,9 8,3 7,9 7,5 12,4

Tabela 6.6: Wyniki testów permutacyjnych algorytmów typu wstaw dlaposzczególnych klas przykładów

KlasaŚredni błąd względny ρMW (x) [%] dla x ∈ 0, . . . , 10

0 1 2 3 4 5 6 7 8 9 10 ALL

SRData 18,2 43,2 46,5 43,8 50,9 50,0 42,2 52,2 47,0 43,8 51,1 47,1

SMData 17,5 13,9 14,2 15,1 16,1 13,8 14,5 16,4 11,5 13,0 14,6 14,3

SVData 20,2 4,1 4,6 5,3 5,0 4,6 5,5 5,2 4,2 4,3 5,8 4,9

Średnia 18,2 20,4 21,8 21,4 24,0 22,8 20,7 24,6 20,9 20,4 23,8 22,1

MW(0). Z analizy tabel 6.5 i 6.6 wynika, że proponowane algorytmy pro-dukują uszeregowania o wartości funkcji celu od 8 do 20 razy mniejszejniż wartość funkcji celu dla arbitralnego uszeregowania otrzymanego al-gorytmem MP(0). Średni błąd względny dla wszystkich 120 przykładachtestowych, algorytmów priorytetowych wynosi 12,4%, zaś algorytmów ty-pu wstaw - 22,1%, co oznacza, że ogólnie rzecz biorąc algorytmy bazującena technice wstawień są gorsze. Nie znaczy to jednak, że taka sytuacjawystępuje w każdej klasie przykładów. Dla przykładów o małej i średniejliczbie czynności w poszczególnych operacjach (klasa SRData i SMData)algorytmy MP zachowują się zdecydowanie lepiej niż algorytmy MW, zaśdla przykładów o dużej liczbie czynność (klasa SVData) sytuacja jest od-wrotna.

Z porównania 10 algorytmów priorytetowych wynika, że najlepszy jestalgorytm MP(10), bazujący na priorytetach uwzględniających wszystkie za-proponowane miary wielkości operacji, w postaci kombinacji liniowej z od-

Page 151: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.5. Badania testowe 145

Tabela 6.7: Wyniki testów algorytmów MP(10), MW(8) dla poszczególnychgrup przykładów

Średni błąd względny ρA [%] dla algorytmu A ∈ MP(10),MW(8)

Grupa SRData SMData SVDataMP(10) MW(8) MP(10) MW(8) MP(10) MW(8)

01 – 05 7,1 11,5 12,5 10,3 14,9 8,106 – 10 10,0 12,1 8,8 11,5 13,1 2,611 – 15 9,9 6,6 5,1 17,8 13,9 1,416 – 20 3,3 53,9 3,6 8,4 11,7 4,421 – 25 5,5 66,6 2,3 14,6 11,3 6,726 – 30 5,6 61,6 5,3 10,5 6,6 3,231 – 35 2,1 52,4 0,8 6,5 9,8 3,436 – 40 11,6 111,2 0,6 12,1 4,4 4,2

01 – 40 6,9 47,0 4,9 11,5 10,7 4,2

powiednimi współczynnikami. Z kolei wśród algorytmów typu wstaw naj-lepszy jest algorytm W0, w którym początkowa kolejność jest wybranaarbitralnie, nie uwzględniając wielkości operacji. Oznacza to moim zda-niem, że naturalna kolejność szeregowania operacji jaką stosuje algorytmW0, ma pewne własności18 odgrywające dużą rolą w jakości generowaniarozwiązań, szczególnie dla klasy SRData. Stwierdzenie to łatwo zweryfiko-wać porównując algorytmy MW tylko dla klas SMData i SVData. Wtedynajlepszym algorytmem jest algorytm MW(8), który jako miarę wielkościoperacji przyjmuje tj + pmaxj .W celu sprawdzenia zachowania się algorytmów ze względu na liczbę

maszyn i operacji przedstawiłem bardziej szczegółowe wyniki w tabeli 6.7ograniczając się tylko do algorytmu MP(10) oraz MW(8). Z tabeli 6.7 wy-nika, że generalnie im większa jest liczba operacji, tym algorytmy MP(10),MW(8) zachowują się lepiej, z wyjątkiem algorytmu MW(8) zastosowa-nego do przykładów z klasy SRData; algorytm ten szczególnie źle pracujena instancjach 36-40. Przewaga algorytmu MP(10) nad algorytmemMW(8)występuje w 14 grupach przykładów klas SRData i SMData; tylko w dwóchgrupach algorytm MW(8) jest lepszy. Z kolei w klasie SVData, algorytmMW(8) jest wyraźnie lepszy niż algorytm MP(10) w każdej z 8 grup.

18Są nimi między innymi: systematyczne szeregowanie kolejnych zadań, szeregowanieoperacji zgodnie z porządkiem technologicznym.

Page 152: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

146 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Tabela 6.8: Wyniki testów algorytmu MINS

Średnia względna poprawa ρ [%] oraz średni iloraz czasu σ

Grupa SRData SMData SVDataρ σ ρ σ ρ σ

01 – 05 -0,5 1,6 0,0 1,2 0,1 2,006 – 10 2,9 1,5 0,7 1,1 -1,7 2,011 – 15 1,6 2,4 0,0 1,3 0,5 2,216 – 20 7,8 3,1 9,8 3,9 3,0 5,021 – 25 2,1 3,8 7,2 6,5 4,0 7,126 – 30 1,4 4,1 7,9 8,4 3,4 8,031 – 35 2,2 6,1 8,6 11,3 4,1 13,136 – 40 6,5 5,6 9,1 12,7 6,8 18,7

01 – 40 3,0 3,5 5,4 5,8 2,5 7,3

Czas pracy wszystkich algorytmów prezentowanych w tej część testubył oczywiście bardzo krótki, tzn. wynosił on średnio 150 ms, przy czymczas dla grupy o największej liczbie czynności dochodził do 600 ms.

W drugiej części testu porównuję długość szeregowania CMINSmax otrzy-manego przez algorytm MINS w stosunku do najlepszego z 22 uszeregowańotrzymanych w pierwszej części testu. Obliczyłem względną procentowąpoprawę

ρ = 100% · (CMINSmax − CBestmax )/CBestmax (6.69)

oraz iloraz σ czasu działania algorytmu MINS do sumy czasów działaniawszystkich pozostałych algorytmów. W tabeli 6.8 przedstawiłem uśrednionewartości ρ i σ dla każdej z ośmiu grup klasy SRData, SMData i SVData. Zanalizy tabeli 6.8 wynika, że proponowany algorytm MINS generuje średniorozwiązania lepsze o kilka procent, niż najlepsze rozwiązanie wyproduko-wane przez proste algorytmy konstrukcyjne. Poprawa ta dla jednej z grupprzekracza nawet 9%. Jest to jednak okupione większym nakładem obli-czeniowym; w zależności od rozmiaru instancji czas pracy algorytmu MINSjest od 1,1 do 18,7 razy dłuższy niż sumaryczny czas pracy wszystkich 22prostych algorytmów konstrukcyjnych. W wartościach bezwzględnych czasten jest jednak znikomy. Do rozwiązania wszystkich 120 instancji algorytmMINS, potrzebował tylko 160s, przy czym największe instancje „przeliczał”w czasie krótszym niż 4s.

Page 153: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.5. Badania testowe 147

Tabela 6.9: Wyniki testów algorytmu MTS

Średnia względna poprawa ρ [%] oraz średni czas pracy t [s]

Grupa SRData SMData SVDataρ t ρ t ρ t

01 – 05 15,4 22,3 10,4 16,5 10,2 27,406 – 10 8,6 35,0 10,9 24,5 8,7 47,711 – 15 10,2 34,5 5,5 23,9 8,3 48,516 – 20 15,8 24,7 16,6 56,0 10,0 141,521 – 25 16,5 38,2 13,9 97,3 8,6 237,426 – 30 16,6 42,0 12,6 140,8 9,9 320,831 – 35 14,5 68,1 10,1 243,7 6,2 567,236 – 40 21,3 45,5 13,8 407,3 8,2 1051,7

01 – 40 14,9 38,8 11,7 126,2 8,8 305,3

Zaprezentowane wyniki badań wskazują, że algorytm MINS może byćz powodzeniem stosowany do generowania uszeregowań początkowych dlaróżnego rodzaju algorytmów popraw w szczególności MTS i MSA. Dodat-kowo, w przypadku gdy czas obliczeń jest bardzo krytycznym parametremmoże on być wykorzystany jako jedyny algorytm przybliżony.

6.7.3 Algorytmy popraw

W trzeciej części testu badam algorytm TMN. Oceniam go na podsta-wie jakości wygenerowanych rozwiązań w odniesieniu do rozwiązań starto-wych dostarczonych przez algorytm MINS. Dla każdego przykładu obliczamwzględną procentową poprawę

ρ = 100% · (CMINSmax − CTMNmax )/CMINSmax . (6.70)

Algorytm TMN był uruchamiany z następującymi parametrami: dłu-gość listy tabu - 8 ·m, maksymalna liczba iteracji - 10 000, liczba iteracjibez poprawy rozwiązania, której osiągnięcie powoduje skok powrotny - 2500oraz 1000 przy kolejnych powrotach. Wyniki przedstawiono w tabeli 6.9.Z analizy tej tabeli wynika, że algorytm MTS poprawia rozwiązania

dostarczone przez algorytm konstrukcyjny MIN średnio od 8,8% do 14,9%;im mniejsza jest liczba czynności w operacji, tym poprawa jest większa.Czas obliczeń waha się od kilkunastu sekund do kilkunastu minut. Tak

Page 154: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

148 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Tabela 6.10: Wyniki testów algorytmu MSA

Średnia względna poprawa ρ [%] oraz średni czas pracy t [s]

Grupa SRData SMData SVDataρ t ρ t ρ t

01 – 05 -1,9 19,9 -1,9 15,9 -1,6 22,606 – 10 0,2 26,3 -0,6 20,4 0,6 33,911 – 15 -0,8 34,6 0,0 21,9 -0,3 40,816 – 20 -3,4 29,6 -2,2 57,4 2,7 97,021 – 25 -1,2 35,5 -1,3 72,2 2,5 146,626 – 30 -1,3 46,5 -0,2 101,1 1,1 206,231 – 35 -0,8 62,1 0,8 170,9 2,5 321,836 – 40 -2,3 50,8 0,4 232,1 2,1 525,7

01 – 40 -1,4 38,2 -0,6 86,5 1,2 174,3

relatywnie duży czas obliczeń w odniesieniu do czasu pracy algorytmu zpracy [77] dla operacji wielomaszynowych z równoczesnym wykorzystaniemwszystkich maszyn, wynika przede wszystkim ze wzrostu liczby węzłów wgrafie G(π) (klasycznie wierzchołek reprezentował jedną operację, a tutajreprezentuje jedną czynność). Dodatkowo, w sytuacji klasycznej graf tendla permutacji dopuszczalnej nie zawierał cykli, zaś tutaj zawiera cykle oniedodatniej długości.W czwartej części testu badam algorytm TSA. Oceniam go na podsta-

wie jakości wygenerowanych rozwiązań w odniesieniu do rozwiązań otrzy-manych algorytmem TMN. Dla każdego przykładu wyznaczyłem długośćuszeregowania CMSAmax generowanego przez badany algorytmMSA oraz zmie-rzyłem czas t jego pracy. Następnie wyznaczyłem długość uszeregowaniaCTMNmax otrzymanego algorytmem TMN pracującym dokładnie w czasie t.Dla danego przykładu obliczyliśmy względną procentową poprawę

ρ = 100% · (CMTSmax − CMSAmax )/C

MTSmax . (6.71)

Następnie dla każdej grupy wyznaczyłem wartości średnie ρ z pięciu przy-kładów oraz średni czas t pracy algorytmów. W tabeli 6.10 przedstawionośrednie wartości ρ oraz t otrzymane dla każdej z 8 grup wszystkich klas. Ztabeli 6.10 wynika, że proponowany algorytm SA generuje średnio rozwią-zania o 0,3% gorsze, niż rozwiązanie wyprodukowane algorytmem MTS.Jakość algorytmu MSA w stosunku do algorytmu MTS rośnie w miarę

Page 155: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.5. Badania testowe 149

wzrostu rozmiaru problemu. Dla dwóch największych grup klasy SMDa-ta osiąga on znacząco lepsze rozwiązania niż MTS. Natomiast dla klasySVData jego przewaga uwidacznia się już w 6 z 8 grup przykładów. Wartotu przypomnieć, że obydwa porównywane algorytmy posiadały dokładnietakie same sąsiedztwa, startowały z tych samych rozwiązań początkowychoraz pracowały w tym samym czasie.

6.7.4 Problem gniazdowy bez czekania

W tej części testu, będę badać jakość algorytmów MTS i MSA zastoso-wanych dla problemu gniazdowego bez czekania (ang. Job Shop No-Wait).Problem ten powstaje przez nałożenie dodatkowych ograniczeń na klasycz-ny problem gniazdowy. Przypominam, że w problemie klasycznym każda zoperacji wykonywana jest na jednej z góry ustalonej maszynie. Dodatkoweograniczenie zwane bezczekania narzuca wymóg rozpoczęcia wykonywaniasię operacji, dokładnie w momencie zakończenia się wykonywania jej po-przednika technologicznego. Ograniczenie te dotyczy wszystkich operacjiktóre posiadają swojego poprzednika technologicznego. Narzucając dodat-kowo jeszcze jedno ograniczenie nakazujące aby każda z operacji była wy-konywana na innej maszynie otrzymujemy pewien specyficzny przypadekproblemu gniazdowego z operacjami wielomaszynowymi z nieprzesuwalny-mi czynnościami asynchronicznymi19. Transformacji problemu gniazdowe-go bez czekania, z operacjami jednomaszynowymi, w których każde dwieczynności tego samego zadania wykonywane są na różnych maszynach, dobadanego problemu jest oczywista. W skrócie polega ona na tym, że całezadanie k należy traktować jako pojedynczą operację j z nieprzesuwalnymiczynnościami asynchronicznymi. Analogicznie wszystkie operacje zadaniak w pierwotnym problemie należy interpretować jako czynności operacji jw problemie wtórnym.Jednakże problem gniazdowy bezczekania jest tylko jednym bardzo

specyficznym przypadkiem o wiele bardziej ogólnego problemu gniazdo-wego z operacjami wielomaszynowymi z nieprzesuwalnymi czynnościamiasynchronicznymi. Oznacza to, że algorytmy literaturowe dedykowane te-mu pierwszemu problemowi, mogą wykorzystywać szereg własności, którenie występują w ogólniejszym problemie. Mimo tego uważam, że test tenjest bardziej obiektywny niż poprzednie ponieważ porównuje zapropono-wane algorytmy MTS i MSA w stosunku do algorytmów literaturowychSMCP&SMBP, SMSP, VNS, GASA opisanych w pracach [64] oraz [103](algorytm SMCP&SMBP będę oznaczał dalej w skrócie przez SMCP).

19W wybranych przykładach testowych problemu gniazdowego, każde zadanie składasię z operacji wykonywanych na różnych maszynach.

Page 156: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

150 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Tabela 6.11: Wartości CAmax oraz tA [s] algorytmów A ∈SMCP, SMSP,GASA,MSA,MTS dla problemu gniazdowego bezcze-kania, przykłady „LA”, „FT”, „ORB”

przy- opti- SMCP SMSP VNS GASA MSA MTS

kład mum Cmax Cmax Cmax Cmax t Cmax t Cmax t

La01 971 1403 1106 1064 1037 23 971 71 971 46La02 937 1296 – 1011 990 24 937 68 937 48La03 820 1392 1020 973 832 24 820 67 820 46La04 887 1502 1039 1020 889 25 887 46 887 44La05 777 1094 – 861 817 24 777 61 777 50

La06 1248 1758 – 1431 1339 80 1316 128 1300 77La07 1172 1837 1609 1366 1240 70 1226 136 1214 79La08 1244 1839 1580 1390 1296 72 1285 141 1269 76La09 1358 2430 – 1586 1447 83 1382 138 1375 78La10 1287 2427 1541 1527 1338 70 1293 135 1294 75

La16 1575 2337 – 1673 1637 39 1575 156 1604 108La17 1371 1898 – 1556 1430 42 1371 125 1371 98La18 1417 2197 – 1713 1555 42 1485 131 1417 106La19 1482 2245 – 1786 1610 40 1491 120 1497 116La20 1526 2288 1971 1795 1693 45 1526 152 1602 104

Ft06 73 101 84 73 73 6 73 21 73 28Ft10 1607 2271 – 1810 1620 41 1607 175 1607 135

Orb01 1615 2357 2063 1663 1663 39 1615 181 1615 164Orb02 1485 2324 – 1555 1555 40 1517 138 1485 100Orb03 1599 2089 1801 1603 1603 41 1599 186 1599 183Orb04 1653 2220 1952 1653 1653 43 1653 150 1653 110Orb05 1365 2261 – 1415 1415 44 1385 135 1370 106

Orb06 1555 2350 1788 1555 1555 42 1555 166 1555 126Orb07 689 922 – 706 706 43 689 141 689 120Orb08 1319 1898 1823 1319 1319 41 1319 193 1319 161Orb09 1445 2388 1688 1535 1535 40 1445 143 1445 104Orb10 1557 2467 2565 1618 1618 46 1557 128 1564 101

Page 157: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.5. Badania testowe 151

Tabela 6.12: Wartości CAmax oraz tA [s] algorytmów A ∈SMCP, SMSP,GASA,MSA,MTS dla problemu gniazdowego bezczekania, przykłady „LA”, „FT”

przy- roz. SMCP SMSP VNS GASA MSA MTS

kład ref. Cmax Cmax Cmax Cmax t Cmax t Cmax t

La11 1656 2226 – 1915 1825 170 1701 220 1656 112La12 1462 2202 1935 1694 1631 164 1462 204 1465 88La13 1610 2197 2221 1907 1766 183 1610 222 1634 114La14 1659 2381 – 2313 1805 176 1725 212 1659 103La15 1713 2720 2134 1898 1829 167 1743 221 1713 112

La21 2048 3033 – 2496 2182 147 2173 274 2048 217La22 1918 2668 – 2210 1965 135 1930 263 1918 206La23 2075 3296 – 2397 2193 136 2159 301 2075 213La24 2044 2473 – 2455 2150 133 2065 284 2044 201La25 1946 2750 – 2344 2034 142 1959 279 1946 178

La26 2627 3687 – 3194 2945 332 2651 535 2627 346La27 2763 3488 – 3286 3036 311 2773 534 2763 372La28 2696 4806 – 3134 2902 324 2725 478 2696 355La29 2498 4152 3086 2838 2617 311 2521 487 2498 326La30 2602 3492 3392 3217 2892 346 2764 483 2602 283

La31 3690 4838 – 4076 4298 957 3742 1010 3690 645La32 4082 5469 – 4476 4686 869 4089 1063 4082 726La33 3712 – – 4361 4214 860 3757 996 3712 650La34 3716 5016 – 4447 4401 968 3716 1057 3719 746La35 3797 5360 – 4378 4299 897 3929 1093 3797 672

La36 2796 3651 – 3199 2949 203 2864 486 2796 361La37 3025 4326 – 3665 3216 192 3062 495 3025 395La38 2612 3872 – 3002 2762 202 2717 491 2612 336La39 2760 – – 3347 2908 195 2867 474 2760 374La40 2728 4422 – 3365 2950 214 2752 485 2728 388

Ft20 1587 2274 – – 1675 184 1626 211 1587 98

Test ten przeprowadzono na dobrze znanych w literaturze przykładachtestowych problemu gniazdowego. Przykłady te, są mocno zróżnicowane za-równo pod względem ilości zadań (od 6 do 30) jak i ilości maszyn (od 5 do

Page 158: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

152 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

Tabela 6.13: Średnie wartości ρA [%] algorytmów A ∈SMCP, SMSP, V NS,GASA,MSA,MTS dla problemu gniazdo-wego bez czekania, dla problemów „łatwych”

przykłady ρSMCP ρSMSP ρV NS ρGASA ρMSA ρMTS

LA01–05 52,2 18,5 12,4 3,9 0,0 0,0LA06–10 62,6 28,0 15,7 5,6 3,1 2,3LA16–20 48,7 29,2 15,7 7,5 1,1 1,6FT06,10 39,8 15,1 6,3 0,4 0,0 0,0ORB01–05 50,0 18,1 1,8 1,8 0,7 0,2ORB06–10 61,9 40,8 5,1 5,1 0,0 0,2

Średnia 51,3 25,1 9,5 4,1 0,9 0,7

Tabela 6.14: Średnie wartości %A [%] algorytmów A ∈SMCP, SMSP, V NS,GASA,MSA,MTS dla problemu gniazdo-wego bezczekania, dla problemów „trudnych”

przykłady %SMCP %SMSP %V NS %GASA %MSA %MTS

LA11–15 44,8 31,6 20,0 9,4 1,7 0,3LA21–25 41,7 – 18,6 4,9 2,5 0,0LA26–30 49,1 27,0 18,8 9,1 1,9 0,0LA31–35 35,3 – 14,5 15,3 1,3 0,0LA36–40 46,0 – 19,0 6,2 2,5 0,0FT20 43,3 – – 5,5 2,5 0,0

Średnia 43,6 29,8 18,2 8,8 2,0 0,1

15). Ponadto przykłady te można podzielić na „łatwe” i „trudne”. Przykła-dy łatwe to te, które udało się rozwiązać algorytmem dokładnym opartymna technice Brach&Bound zaproponowanym w pracy [64]. Dla każdego zprzykładów podajemy wartości CAmax uszeregowań otrzymanych odpowied-nim algorytmem A ∈ SMCP, SMSP, V NS,GASA,MSA, MTS orazczas działania tego algorytmów tA liczony w sekundach. Wyniki ekspery-mentu zamieściłem w tabelach 6.11 przykłady „łatwe” oraz 6.12 przykłady„trudne”. Ponadto tabela 6.11 zawiera wartości Coptmax rozwiązań optymal-nych, natomiast tabela 6.12 zawiera wartości Crefmax rozwiązań referencyj-nych, wyznaczonych jako najlepsze z rozwiązań otrzymanych algorytmami

Page 159: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

6.5. Badania testowe 153

SMCP, SMSP, VNS, GASA, MSA, MTS.

Crefmax = min

CAmax : A ∈ SMCP, SMSP, V NS,GASA,MSA,MTS

(6.72)Następnie dla każdego „łatwego” przykładu obliczyłem błąd względny

ρA wartości CAmax uszeregowań otrzymanych odpowiednimi algorytmamiliczony względem rozwiązania optymalnego

ρA = 100% · (CAmax − Coptmax)/C

optmax,

A ∈ SMCP, SMSP, V NS,GASA,MSA,MTS.(6.73)

Podobnie dla każdego „trudnego” przykładu obliczyłem błąd względny %A

wartości CAmax uszeregowań otrzymanych odpowiednimi algorytmami liczo-ny względem rozwiązania referencyjnego

%A = 100% · (CAmax − Crefmax)/C

refmax,

A ∈ SMCP, SMSP, V NS,GASA,MSA,MTS.(6.74)

W tabeli 6.13 podane są średnie wartości parametru ρA wyliczone zgrup „łatwych” przykładów testowych. Ostatni wiersz tej tabeli „wszyst-kie”, zawiera średnią wartość parametru ρA odpowiedniego algorytmu zwszystkich „łatwych” przykładów. Z wyników tych wyraźnie widać, że pro-ponowany algorytm MTS, statystycznie generuje uszeregowania najlepszew sensie wartości funkcji celu średni błąd od rozwiązania optymalnego wy-nosi zaledwie 0, 7%. Aż w czterech grupach z 6 algorytm MTS wykazujesię najlepszą średnią jakością produkowanych rozwiązań. W pozostałychdwóch grupach ustępuje on tylko algorytmowi MSA. Średni błąd od roz-wiązań optymalnych też jest bardzo mały i wynosi 0, 9%. Dla algorytmówliteraturowych parametr ten zmienia się od 4, 1% do 51, 3%.Bardziej szczegółowa analiza tabel 6.13 wykazuje ponadto, że algorytm

MSA w 18 a algorytm MTS w 17 na 27 „łatwych” przykładów znalazłrozwiązanie optymalne. Algorytmy VNS i GASA dostarczyły tylko po 4rozwiązania optymalne, a algorytmom SMCP i SMSP nie udało się wyge-nerować ani jednego takiego rozwiązania.W tabeli 6.14 podane są średnie wartości parametru %A wyliczone z

grup „trudnych” przykładów testowych. Podobnie jak w tabeli 6.13 i tuostatni wiersz „wszystkie”, zawiera średnią wartość parametru ρA odpo-wiedniego algorytmu z wszystkich tym razem „trudnych” przykładów. Zwyników tych wyraźnie widać, że zaproponowane algorytmy MSA i MTSdostarczają zdecydowanie najlepszych rozwiązań. Najlepszym w sensie ja-kości produkowanych rozwiązań jest algorytm MTS, dla którego średnia

Page 160: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

154 Rozdział 6. Jednosposobowy problem gniazdowy z czynnościami. . .

wartość parametru %MTS wynosi 0, 1%. Algorytm ten w 23 na 26 przykła-dów trudnych, dostarczył rozwiązanie najlepsze. Tylko w 3 przypadkachustąpił algorytmowi MSA, który ze średnią wartością parametru %MSA

wynoszącą 2, 0% klasyfikuje się na drugim miejscu w sensie jakości genero-wanych rozwiązań. Pozostałe algorytmy (literaturowe) wypadają słabo wstosunku do algorytmów MSA i MTS bo średnia wartości parametru %A,A ∈ SMCP, SMSP, V NS,GASA zawiera się w od 8, 8% do 43, 6%.

6.8 Wnioski i uwagi

Choć problem rozważany w tym rozdziale, odzwierciedla precyzyjniewiele praktycznych procesów przemysłowych, nie są dla niego znane żadnealgorytmy. Do jego rozwiązania zaproponowałem szereg 23 algorytmów kon-strukcyjnych i 2 algorytmy popraw. Algorytmy te wykorzystują specyficznewłasności, rozważanego problemu. Część z nich (np. eliminacyjne własnościścieżki krytycznej) jest analogiczna do własności znanych z literaturowychproblemów gniazdowych, natomiast pozostałe wynikają ze specyfiki bada-nego problemu (np. istnienie dopuszczalnej częściowej kolejności takiej, żekażde wstawienie pewnej nieuszeregowanej operacji j powoduje powstaniekolejności niedopuszczalnej). Po dokonaniu badań numerycznych i analiziewyników stwierdzam, że wśród algorytmów konstrukcyjnych najefektyw-niejszym jest algorytm MINS oparty na technice wstawień wykorzystującyniebanalne własności problemu. Ponadto zaproponowałem algorytm MTSoparty na technice przeszukiwania z zabronieniami, będący odpowiedni-kiem najlepszego algorytmu dla problemu gniazdowego z operacjami syn-chronicznymi zaproponowanego w monografii Nowickiego [77]. AlgorytmMTS okazał się lepszy niż algorytm MSA typu symulowanego wyżarzania,bazujący na tym samym sąsiedztwie, podobnych technikach poprawiają-cych efektywność oraz startujący z tych samych rozwiązań początkowych.Zaproponowane w tym rozdziale algorytmy MTS i MSA dla znanego w

literaturze problemu gniazdowego z dodatkowym ograniczeniem bez czeka-nia, okazały się zdecydowanie lepsze od algorytmów literaturowych propo-nowanych do tej pory.

Page 161: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Rozdział 7

Wielosposobowy problemgniazdowy z czynnościamiasynchronicznymi

Celem tego rozdziału jest zbadanie które fundamentalne wyniki otrzy-mane (bezpośrednio lub przez analogię) w rozdziale 6 mogą zostać przenie-sione na bardziej skomplikowane problemy, bliższe praktyce wytwarzania.Precyzyjnie powody te można przedstawić w postaci 4 punktów:

• rozważany tutaj problem jest bliższy realiom praktycznym niż tenanalizowany w rozdziale 6,

• pokazuje jak można zdefiniować ruch, sąsiedztwa: zredukowane, ba-zowe oraz zredukowane bazowe dla ogólniejszego problemu,

• pokazuje, czy sąsiedztwa zredukowane, bazowe i zredukowane bazowezachowują swoje własności (eliminacyjne, wielkość, etc),

• jaka jest relacja pomiędzy wynikami zaprojektowanego algorytmu ainnymi algorytmami znanymi w literaturze.

W bieżącym rozdziale rozważam wielosposobowy problem gniazdowy z nie-przesuwalnymi czynnościami asynchronicznymi. W problemie tym przyjmu-je się, że do wykonania każdej operacji (wielomaszynowej grupy II) danyjest zbiór alternatywnych sposobów jej wykonania. Każdy sposób wykona-nia operacji definiuje niezbędny zestaw maszyn oraz precyzuje względnepołożenie przedziałów czasowych, w których te maszyny są wykorzystywa-ne. Precyzyjne sformułowanie badanego problemu wraz z odpowiadającymmodelem matematycznym przedstawiłem w rozdziale 4.2.Analizowany problem różni się od problemu z rozdziału 6 możliwością

wyboru sposobu wykonania danej operacji, (w problemie z poprzedniego

155

Page 162: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

156 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

rozdziału każda z operacji musiała być wykonana jednym z góry narzuco-nym sposobem). Oznacza to, że rozważany problem jest pewnym znaczą-cym uogólnieniem problemu z rozdziału 6. Uogólnienie to, polegające nawprowadzeniu, zbioru alternatywnych sposobów wykonania każdej z ope-racji jest dobrze znane w literaturze. Jednakże w problemach gniazdowychanalizowane uogólnienie stosowane było tylko dla sytuacji, w których ope-racje wykonywane są na jednej wieloczynnościowej maszynie (ang. multi-purpose machine job-shop problem) bądź też, gdy operacje są wielomaszy-nowe z nieprzesuwalnymi czynnościami synchronicznymi, (ang. multi-modejob-shop problem). Literaturowe metody rozwiązywania powyższych dwóchprzypadków, przedstawione są szczegółowo w rozdziale 2.Problem badany w tym rozdziale nie był dotychczas dogłębnie studio-

wany w literaturze, poza podaniem w [101] jego modelu jako mieszanegocałkowito-liczbowego programowania liniowego w celu wykorzystania pa-kietu optymalizacji dyskretnej Super LINDO, [102]. Podejście to, bardzoatrakcyjne dla zagadnień o stosunkowo niewielkich rozmiarach, nie możebyć jednak stosowane dla zagadnień o większych rozmiarach, z uwagi naNP-trudność problemu. Ten fakt oraz znaczenie dla praktyki przemysłowejrozważanego problemu (wielokrotnie podnoszone w literaturze) zdopingo-wało mnie do szczegółowych studiów.Celem badań jest zaprojektowanie algorytmów przybliżonych rozwiązu-

jących postawiony problem. Na szczególną uwagę zasługują „dobre” wła-sności numeryczne proponowanych metod. Korzystając z wniosków wypły-wających z rozdziału 6 skupię się głównie na technice tabu oraz kooperu-jącym z nią szybkim algorytmem konstrukcyjnym.

7.1 Własności problemu

Odmiennie niż w rozdziale 6, rozwiązanie problemu nie jest wyłączniekolejnością (bowiem określa dodatkowo wykorzystywane sposoby) dlategoteż mówiąc o rozwiązaniu będziemy używać terminu uszeregowanie.

Ruch i jego ocena

Jak już pisałem wcześniej, podstawowymi pojęciami w algorytmach po-praw są „ruch” oraz „sąsiedztwo”. Sąsiedztwo algorytmów prezentowanychw tym rozdziale opiera się na ruchach typu wstaw, których ideę opisałemw rozdziale 6. W bieżącym problemie podobnie jak w problemie poprzed-nim proponowane ruchy typu wstaw, przekładają całą operację (wszyst-kie jej czynności). Dodatkowo ruchy prezentowane w tym rozdziale mogą

Page 163: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.1. Własności problemu 157

zmieniać sposób wykonywania przekładanej operacji. Ogólnie, proponowa-ny ruch składa się z trzech faz. Pierwsza z nich (i) polega na wyciągnięciudanej operacji j (wszystkich jej czynności Nj,f(j) aktualnie używanego spo-sobu f(j)) z uszeregowania π, (ii) zamianie trybu wykonywania operacji jz aktualnego sposobu f(j) na nowy sposób f oraz (iii) ponownym wsta-wieniu wszystkich operacji j (wszystkich czynności Nj,f nowego sposobuf operacji j) na pewien zestaw pozycji z. Z powyższego opisu wynika, żew celu precyzyjnego zdefiniowania ruchu v należy podać trójkę: przekła-daną operację j ∈ O, nowy sposób jej wykonywania f ∈ Fj oraz (odpo-wiedni do wybranego sposobu) zestaw pozycji z; v = (j, f, z). Precyzyjnąpostać zestawu pozycji z, odpowiednią do wybranego sposobu f podamponiżej. Uszeregowanie powstałe w wyniku wykonania ruchu v z uszerego-wania (g, π) oznaczam przez (g, π)v lub (g(v), π(v)).Niech

zg,π,j = (zg,π,j1 , . . . , zg,π,jm )

oznacza zestaw pozycji czynności operacji j wykonywanych sposobem f(j)w zestawie permutacji π, gdzie πl(z

g,π,jl ) = (j, l) dla l ∈ Mj , f(j); jeśli

czynność sposobu f(j) operacji j nie jest wykonywana na maszynie l ∈M \Mj,f(j) to przyjmuję z

g,π,jl = 0.

Oznaczmy przez α zestaw częściowych permutacji zwany dalej częścio-wą kolejnością powstały przez wyciągnięcie wszystkich czynności operacjij z kolejności π. Ponadto niech ZP (g, π, j, f) oznacza zbiór wszystkich ze-stawów pozycji, na jakie można wstawić czynności sposobu f ∈ Fj operacjij w kolejność α;

ZP (g, π, j, f) =

z = (z1, . . . , zm) : 1 ¬ zl ¬ |αl|, l ∈Mj,f ,

zl = 0, l ∈M \Mj,f

. (7.1)

Wstawienie czynności Nj,f sposobu f ∈ Fj operacji j na pozycję z ∈ZP (g, π, j, f) do częściowego uszeregowania (g, α) oznacza, że każdą z czyn-ności (j, f, l), l ∈ Mj,f , należy wstawić do permutacji πl na pozycję zl.Przedtem jednak należy wszystkie elementy permutacji πl leżące na pozy-cjach nie mniejszych niż zl przesunąć o jedną pozycje w prawo.Zbiór wszystkich ruchów v = (j, f, z), f ∈ Fj , z ∈ ZP (g, π, j, f) operacji

j oznaczamy przez

V (g, π, j) =

v = (j, f, z) : z ∈ ZP (g, π, j, f), f ∈ Fj

\

(j, f(j), zg,π,j)

.

(7.2)Podobnie jak w rozdziale 6, interesuje nas efektywny sposób obliczenia

wartości funkcji celu, uszeregowania powstałego przez wstawienie czynności

Page 164: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

158 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

Nj,f sposobu f ∈ Fj operacji j ∈ O na zestaw pozycji z w uszeregowaniuczęściowym (g, α) o ile tylko powstałe uszeregowanie (g, π)v, v = (j, f, z)jest dopuszczalne1. Do oszacowania posłużą nam wielkości

rg,π,j,f (πl(i)) = rg,π(πl(i))− ra(j,f,l), i = 1, . . . , |πl| − 1, l ∈Mj,f (7.3)

oraz

qg,π,j,f (πl(i)) = qg,π(πl(i))− qa(j,f,l), i = 1, . . . , |πl| − 1, l ∈Mj,f . (7.4)

Analogicznie jak w rozdziale 6 oznaczę przez tj,f długość trwania wykony-wania operacji j sposobem f . Dla każdego sposobu f ∈ Fj operacji j orazkażdego zestawu pozycji z ∈ ZP (g, π, j, f) definiuję wartość:

h(g, π, j, f, z) = R(g, π, j, f, z) + tj,f +Q(g, π, j, f, z) (7.5)

gdzie

R(g, π, j, f, z) = max

rg,π(u+j−,f(j−)), maxl∈Mjrg,π,j,f (πl(zl − 1))

, (7.6)

Q(g, π, j, f, z) = max

qg,π(u−j+,f(j+)), maxl∈Mjqg,π,j,f (πl(zl))

. (7.7)

Ponadto przyjmuję, że: f(0) = 0, u−0,0 = u+0,0 = (0, 0), πl(0) = (0, 0), πl(|πl+

1|) = (0, n + 1), rg,π,j,f ((0, 0)) = qg,π,j,f (0, (n + 1)) = −∞, rg,π,j,f (0, (n +1)) = qg,π,j,f ((0, 0)) =∞, rg,π((0, 0)) = qg,π((0, 0)) = 0.Pokażę, że zachodzi następująca własność:

Własność 7.1 Niech (g, π) będzie uszeregowaniem dopuszczalnym. Jeżeliruch v = (j, f, z), f ∈ Fj, z ∈ ZP (g, π, j, f), j ∈ O generuje dopuszczalneuszeregowanie (g(v), π(v)), to długość najdłuższej drogi w grafie G(g(v), π(v)),przechodzącej przez operację j wynosi h(g, π, j, f, z).

Poprawność tej własności wynika bezpośrednio z własności 6.1, któ-ra jest prawdziwa dla aktualnie rozważanego problemu z ustalonym zesta-wem sposobów g. Podobnie na bazie własności 7.1 można otrzymać wartośćCmax(g(v), π(v)).

Własność 7.2 Niech (g, π) będzie uszeregowaniem dopuszczalnym. Jeżeliruch v = (j, f, z), f ∈ Fj, z ∈ ZP (g, π, j, f), j ∈ O generuje dopuszczalneuszeregowanie (g(v), π(v)), to długość tego uszeregowania wynosi:

Cmax(g(v), π(v)) = maxCmax(g(v), α), h(g, π, j, f, z). (7.8)

1Przyjmujemy jak poprzednio, że j− oraz j+ oznacza odpowiednio operację będącąbezpośrednim poprzednikiem oraz następnikiem operacji j, jeżeli dana operacja nie posia-da bezpośredniego poprzednika lub następnika technologicznego to przyjmujemy j− = 0lub j+ = 0.

Page 165: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.1. Własności problemu 159

Powyższe własności, stanowią podstawę do budowy bardzo szybkich al-gorytmów konstrukcyjnych typu wstaw oraz wysoce efektywnego algoryt-mów popraw typu przeszukiwania z zabronieniami. Z własności 7.2 wynika,że wielkość:

LB(g, π, j, f, z) = maxCmax(g(v), α), h(g, π, j, f, z) (7.9)

jest specyficznym dolnym ograniczeniem wartości Cmax(g(v), π(v)). Specyfi-ka tego dolnego ograniczenia polega na tym, że jeżeli tylko Cmax(g(v), π(v))<∞ to zachodzi Cmax(g(v), π(v)) = LB(g, π, j, f, z).

Eliminacyjne własności ścieżki krytycznej

Podobnie jak w klasycznych problemach gniazdowych oraz problemieprezentowanym w rozdziale 6, dla badanego problemu zachodzą pewne eli-minacyjne własności ścieżki krytycznej. Własność ta polega na tym, żedysponując wyznaczoną ścieżką krytyczną sc w grafie G(g, π) można wy-znaczyć zbiór ruchów v, których wykonanie na pewno nie skróci długościuszeregowania. Jest ona niemal identyczna z własnością 6.3, różni się odniej jedynie notacją i wygląda następująco:

Własność 7.3 Niech (g, π) będzie uszeregowaniem dopuszczalnym. Jeżeliżadna czynność sposobu f(j) operacji j nie leży na ścieżce krytycznej wgrafie G(g, π), to dla każdego ruchu v ∈ V (g, π, j) zachodzi

Cmax(g(v), π(v)) ­ Cmax(g, π). (7.10)

Niech Ω ⊂ O oznacza zbiór wszystkich operacji j ∈ O, których przynaj-mniej jedna z czynnościNj,f(j) należy do ścieżki krytycznej w grafie G(g, π).Na podstawie powyższej własności, będziemy ograniczać zbiór ruchów tylkodo tych, które przesuwają czynności operacji ze zbioru Ω

V (g, π) =⋃

j∈Ω

V (g, π, j). (7.11)

Na podstawie tego zbioru generuję sąsiedztwo

N (g, π) = (g(v), π(v)) : v ∈ V (g, π). (7.12)

Sąsiedztwo to ma jednak takie same wady (zbyt duża liczność) jak sąsiedz-two zdefiniowane wzorem (6.30) dla analogicznego problemu jednosposo-bowego. Zgodnie z opracowaną strategią, sugeruję aby ograniczyć je doodpowiednio zdefiniowanego sąsiedztwa bazowego NB(g, π) ⊂ N(g, π).

Page 166: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

160 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

Sąsiedztwo bazowe

Sąsiedztwo bazowe NB(g, π) proponowane dla badanego problemu,opiera się na tej samej idei, co sąsiedztwo bazowe jednosposobowego pro-blemu gniazdowego opisane w rozdziale 6.1.2. Posiada ono podobne bar-dzo ważne praktyczne własności: jego liczność jest radykalnie mniejsza wstosunku do liczności sąsiedztwa pełnego N(g, π) oraz dla każdego usze-regowania z pełnego sąsiedztwa (g′, π′) ∈ N(g, π) istnieje uszeregowaniez bazowego sąsiedztwa (g′′, π′′) ∈ N(g, π) o nie większej wartości dolnegoograniczenia funkcji celu LB(g′′, π′′) ¬ LB(g′, π′). Przed przystąpieniemdo precyzyjnej definicji NB(g, π) zauważmy najpierw, pewną własność:

Własność 7.4 Niech (g, π) jest uszeregowaniem dopuszczalnym. Jeżeli dlazestawu pozycji z ∈ ZP (g, π, j, f), f ∈ Fj zachodzi

maxl∈Mj

rg,α,j,f (αl(zl − 1)) ­ minl∈Mj

rg,α,j,f (αl(zl)), (7.13)

to istnieje zestaw pozycji z′ ∈ ZP (g, π, j, f) taki, że:

LB(g, π, j, f, z′) ¬ LB(g, π, j, f, z).

Dowód. Dowód opiera się na spostrzeżeniu, że dla ustalonego sposobuf wykonania operacji j oraz pozostałych sposobów f(i), i ∈ O \ jzgodnych z zestawem g, prawdziwa jest własność 6.4. Po dokonaniu odpo-wiednich podstawień LB(g, π, j, f, z′) = LB(z′), LB(g, π, j, f, z) = LB(z),rg,α,j,f (αl(zl − 1)) = rα(αl(zl − 1)), rg,α,j,f (αl(zl)) = rα(αl(zl)), otrzymuje-my bezpośrednio dowodzoną nierówność.

Ponieważ oczywiste jest, że im mniejsza wartość h(g, π, j, f, z) tym ruchjest bardziej obiecujący, wynika to z własności 7.2. Sugerując się własnością7.4 definiuję zbiór bazowych zestawów pozycji jako:

ZB(g, π, j, f) =

z ∈ ZP (g, π, j, f) : maxl∈Mj,f

rg,α,j,f (αl(zl − 1))

< minl∈Mj,f

rg,α,j,f (αl(zl − 1))

(7.14)

Jakość zbioru bazowych zestawów pozycji sposobu f ∈ Fj operacji jwynika bezpośrednio z następującego twierdzenia:

Twierdzenie 7.1 Dla każdego zestawu pozycji z ∈ ZP (j) istnieje bazowyzestaw pozycji zb ∈ ZB(j) spełniający:

LB(g, π, j, f, zb) ¬ LB(g, π, j, f, z).

Page 167: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.1. Własności problemu 161

Dowód. Najpierw zauważmy, że dla ustalonego sposobu f ∈ Fj wyko-nania operacji j oraz pozostałych sposobów f(i), i ∈ O \ j zgodnychz zestawem g, prawdziwe jest twierdzenie 6.1. Teraz zamieniając równo-ważne sobie definicje dolnych ograniczeń (6.25) na (7.9) oraz definicje ba-zowych zestawów pozycji problemów jednosposobowego (6.36) na definicjeproblemu wielosposobowego (7.14), otrzymujemy bezpośrednio dowodzonetwierdzenie.

Wszystkie bazowe zestawy pozycji sposobów f ∈ Fj operacji j generujązbiór bazowych ruchów operacji j:

V B(g, π, j) =

v = (j, f, z) : f ∈ Fj , z ∈ ZB(g, π, j, f)

\

(j, f, zg,π,j)

. (7.15)

Uwzględniając eliminacyjne własności ścieżki krytycznej (patrz rozdział7.1) zbiór bazowych ruchów dla uszeregowania (g, π) ma postać:

V B(g, π) =⋃

j∈Ω

V B(g, π, j). (7.16)

Powyższy zbiór V B(g, π) generuje sąsiedztwo bazowe NB(g, π) uszerego-wania (g, π), postaci:

NB(g, π) =

(g(v), π(v)) : v ∈ V B(g, π)

. (7.17)

Z przeprowadzonych badań numerycznych wynika, że dalej proponowa-ne ograniczenie sąsiedztwa bazowego NB(g, π) do zredukowanego sąsiedz-twa NZB(g, π) ⊂ NB(g, π) bardzo podnosi efektywność algorytmów po-praw. Redukcja ta polega na (i) wyznaczeniu dwóch zestawów pozycji zba

oraz zbb i (ii) odrzuceniu wszystkich zestawów pozycji zb ∈ ZB(g, π, j, f)mniejszych niż zba, zb ≺ zba oraz (iii) odrzuceniu wszystkich zestawów po-zycji większych niż zbb. Zestaw pozycji zba wyznacza się jako największybazowy zestaw pozycji, dla którego R(g, π, j, f, zba) = rg,α(u+j−,f(j−)) jeże-li operacja j posiada poprzednika technologicznego lub pierwszy bazowyzestaw pozycji gdy takiego poprzednika nie posiada. Symetrycznie zestawpozycji zbb wyznacza się jako najmniejszy bazowy zestaw pozycji, dla któ-rego Q(g, π, j, f, zba) = qg,α(u−j+,f(j+)) jeżeli operacja j posiada następnikatechnologicznego lub ostatni bazowy zestaw pozycji gdy takiego następnikanie posiada. Zredukowane bazowe zestawy pozycji mają postać:

ZZB(g, π, j, f) = z ∈ ZB(g, π, j, f) : zba ≺ z ≺ zbb ∪ zba ∪ zba(7.18)

Page 168: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

162 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

Zauważmy, że dla odrzuconych pozycji zb zbioru ZB(g, π, j, f) zachodzi

LB(g, π, j, f, zb) ­ LB(g, π, j, f, zba), zb ≺ zba, (7.19)

LB(g, π, j, f, zb) ­ LB(g, π, j, f, zbb), zbb ≺ zb. (7.20)

W celu wykazania powyższych nierówności zauważmy najpierw, że:

rg,α,j,f (αl(x)) < rg,α,j,f (αl(x+ 1)),

dla 0 ¬ x ¬ |αl|+ 1, l ∈Mj,f , (7.21)

qg,α,j,f (αl(x)) > qg,α,j,f (αl(x+ 1)),

dla 0 ¬ x ¬ |αl|+ 1, l ∈Mj,f . (7.22)

Z definicji zestawu pozycji zba oraz nierówności (7.21) wynika

R(g, π, j, f, zb) = R(g, π, j, f, zba), zb ≺ zba.

Z kolei z nierówności (7.22) mamy

Q(g, π, j, f, zb) ­ Q(g, π, j, f, zba), zb ≺ zba.

Z otrzymanych powyżej zależności, definicji wartości h(g, π, j, f, z), (7.5)oraz definicji dolnego ograniczenia LB(g, π, j, f, z), (7.9) otrzymujemy osta-tecznie nierówność (7.19). Wzór (7.20) dowodzi się podobnie.Na podstawie powyższych wyprowadzeń wynika, że:

Własność 7.5 Najmniejsza z wartości dolnego ograniczenia (7.9) dla ze-stawów pozycji zbioru ZB jest równa najmniejszej wartości dolnego ogra-niczenia dla zestawów pozycji zbioru ZZB.

minz∈ZZB(g,π,j,f)

LB(g, π, j, f, z) = minzb∈ZB(g,π,j,f)

LB(g, π, j, f, z)

Dowód. Dowodzona własność wynika bezpośrednio z nierówności (7.19)i (7.20) oraz definicji (7.18) zredukowanego zestawu bazowych pozycjiZZB(g, π, j, f).

Na bazie zredukowanego zbioru bazowych zestawów pozycji dla sposo-bu f ∈ Fj operacji j proponujemy zredukowany zbiór bazowych ruchówoperacji j jako:

V ZB(g, π, j) =

v = (j, f, z) : f ∈ Fj , z ∈ ZZB(g, π, j, f)

\

(j, f(j), zg,π,j)

. (7.23)

Page 169: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.1. Własności problemu 163

Dalej uwzględniając eliminacyjne własności ścieżki krytycznej definiu-jemy zbiór bazowych ruchów dla uszeregowania (g, π)

V ZB(g, π) =⋃

j∈Ω

V ZB(g, π, j). (7.24)

I w końcowym działaniu na bazie zbioru V ZB(g, π) generuję zredukowanesąsiedztwo bazowe NZB(g, π) uszeregowania (g, π):

NZB(g, π) =

(g(v), π(v)) : v ∈ V ZB(g, π)

. (7.25)

Podsumuję teraz własności prezentowanego zredukowanego sąsiedztwa ba-zowego NZB(g, π) uszeregowania (g, π).Po pierwsze zredukowane sąsiedztwo bazowe NZB(g, π) generowane

jest na podstawie zredukowanego zbioru bazowych pozycji ZZB(g, π, j, f)wszystkich sposobów f ∈ Fj każdej z operacji j ∈ Ω. Oznacza to, że pre-zentowane sąsiedztwo w stosunku do sąsiedztwa tworzonego tradycyjnietzn. wygenerowanego na bazie zbioru zestawów pozycji ZP (g, π, j, f) spo-sobów f ∈ Fj operacji j ∈ O redukowane jest trzykrotnie. Pierwsza (i) naj-istotniejsza redukcja2 polega na analizie tylko bazowych zestawów pozycjiustalonego sposobu f ∈ Fj danej operacji j. Ponieważ liczności zbiorówZB(g, π, j, f) oraz ZP (g, π, j, f) wyrażają się wzorem

|ZB(g, π, j, f)| ¬∑

l∈Mj

(|αl|) + 1 << |ZP (g, π, j, f)| =∏

l∈Mj

(|αl|+ 1)

dla największych badanych przykładów iloraz tych liczności przekracza war-tość 1020. Przykładowo dla największych testowanych instancji

|ZP (g, π, j, f)| ≈ 10012 = 1024,

podczas gdy|ZB(g, π, j, f)| ≈ 12 · 100 = 1200

(w instancjach tych operacja j składa się z 12 czynności, zaś średnia liczbaczynności na jednej maszynie jest rzędu 100). Druga (ii) redukcja polegana odrzuceniu pewnej liczby pierwszych oraz ostatnich pozycji bazowych.Liczność zbioru |ZBB(g, π, j, f)| może zmieniać się od 1 do liczności zbioru|ZB(g, π, j, f)|. Jednakże w praktycznych przypadkach (oraz przykładachtestowych) |ZBB(g, π, j, f)| ≈ |ZB(g, π, j, f)|/ok. W praktyce oznacza to

2Bez tej redukcji nie możliwe byłoby przejrzenie w sensownym czasie sąsiedztwa ge-nerowanego nawet dla jednej operacji bez zmieniana sposobu jej wykonania.

Page 170: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

164 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

bardzo dużą redukcję. Ostatnia (iii) redukcja polega na wykorzystaniu eli-minacyjnych własności ścieżki krytyczniej. Nie jest ona tak, duża jak wcze-śniejsze dwie bo wynosi od 5% do 40%, jednakże posiada inną bardzo cennąz praktycznego punktu widzenia własność opisaną w dalszej części pracy.Podsumowując bieżący akapit proponowane sąsiedztwo ZZB(g, π) jest ra-dykalnie mniejsze niż sąsiedztwo utworzone w sposób tradycyjny.Po drugie redukcja (iii) eliminuje, na danym kroku iteracji, generowa-

nie „podobnych” uszeregowań, to znaczy uszeregowań o takiej samej ścieżcekrytycznej. Praktycznie eliminuje to bardzo niekorzystne zjawisko genero-wania uszeregowań różniących się w nieistotnych częściach (tzn. w częściachuszeregowania, które nie mają wpływu na wartość funkcji celu). Ułatwiato opuszczanie minimów lokalnych. Własność ta jest niezbędna do efektyw-nej pracy algorytmów typu symulowanego wyżarzania czy przeszukiwaniaz zabronieniami.Po trzecie zredukowane bazowe zestawy pozycji ZZB(g, π) służące do

generowania zaproponowanego sąsiedztwa są potencjalnie lepszymi zesta-wami niż bazowe zestawy pozycji ZB(g, π), patrz własność 7.5, które z koleisą potencjalnie lepsze niż zestawy pozycji ZP (g, π), patrz twierdzenie 7.1.Czwartą jedyną niekorzystną cechą proponowanego sąsiedztwa, jest

możliwość zaistnienia sytuacji, w której najlepsze w sensie wartości funkcjicelu uszeregowanie (g∗, π∗) z sąsiedztwa NZB jest gorsze niż uszeregowa-nie (gbest, πbest) z sąsiedztwa pełnego generowanego na bazie zbioru pozycjiZP . Jest tak jednak tylko wtedy, gdy wszystkie uszeregowania o nie więk-szej wartości dolnego ograniczenia3 są niedopuszczalne. Jednakże prakty-ka oraz literatura na przykładzie [86] pokazuje zdecydowaną przewagę wefektywności algorytmów o niewielkich sąsiedztwach, z statystycznie do-brymi rozwiązaniami nad algorytmami pracującymi ze znacznie większymisąsiedztwami.

7.2 Algorytmy konstrukcyjne

Korzystając z doświadczeń zdobytych podczas badań przeprowadzonychw rozdziale 6, w bieżącej sekcji, badania algorytmów konstrukcyjnych ogra-niczę do najefektywniejszej grupy: konstrukcyjnych algorytmów niepermu-tacyjnych typu wstaw.Prezentowane w tym rozdziale algorytmy konstrukcyjne typu wstaw A–

MINS (ang. Allocation Multi-Machine Insert) oraz M–MINS (ang. Multi-

3Dolne ograniczenie LB jest definiowane dla zestawu uszeregowania, operacji, sposobuoraz (zestawu) pozycji, tzn LB(g, π, j, f, z), jednakże tutaj mówimy w skrócie o dolnymograniczeniu wartości funkcji celu uszeregowania (g, π)(v), gdzie v = (j, f, z).

Page 171: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.2. Algorytmy konstrukcyjne 165

Method Multi-Machine Insert) są odpowiednikami algorytmu MINS, któryzostał przedstawiony w rozdziale 6.4.2. Na danym kroku będziemy sze-regować wszystkie czynności wybranego sposobu. W algorytmie A–MINSprzydział sposobu do operacji ustalany jest w fazie wstępnej, podczas gdyw algorytmie M–MINS, wybór sposobu wykonania operacji odbywa się dy-namicznie, podczas tworzenia próbnych częściowych uszeregowań.

Algorytmu A–MINS

W celu wyznaczenia przydziału sposobów wykonania poszczególnymoperacjom, wprowadzimy najpierw pojęcie wagi sposobu f ∈ Fj operacjij ∈ O;

w(j, f) =∑

u∈Nj,f

pu. (7.26)

Ponadto oznaczmy przez fmin(j) sposób o najmniejszej wadze wykonywaniaoperacji j,

fmin(j) = arg minf∈Fjw(j, f) (7.27)

Ponieważ oczywiste jest, że najbardziej obiecującym sposobem wykona-nia operacji j ∈ O jest sposób fmin(j), przyjmujemy przydział gmin jakoprzydział przyporządkowujący, każdej operacji j, sposób f(j) = fmin(j).Kolejność φ szeregowanych operacji ustalana jest według nierosnących wagsposobów ich wykonania

ω(

φ(1), fmin(φ(1)))

­ ω(

φ(2), fmin(φ(2)))

­ . . . ­ ω(

φ(o), fmin(φ(o)))

.

(7.28)Dalsze działanie algorytmu A–MINS nie różni się już praktycznie niczym odalgorytmu MINS. Zauważmy, że opisany algorytm nie analizuje możliwościuszeregowania danej operacji j innymi sposobami niż fmin(j).Może się jednak zdarzyć, że czynności Nj,f innego sposobu f ∈ Fj

(nawet o dużo większej wadze niż waga sposobu fmin(o)), znacznie lepiejwkomponują się w częściowe uszeregowanie, niż czynności Nj,fmin(j). Dla-tego też, proponuję drugi algorytm M–MINS sprawdzający uszeregowaniadanej operacji j ∈ O wszystkimi dostępnymi sposobami Fj .

Algorytm M–MINS

W algorytmie M–MINS kolejność szeregowania operacji, uwzględnia nietylko wagę sposobów ich wykonywania, ale także ilość tych sposobów. Oczy-wiste jest, że operacje duże z małą liczbą alternatywnych sposobów powinny

Page 172: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

166 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

być szeregowane jako pierwsze. W celu precyzyjnego wyznaczenia kolejnościszeregowania wprowadzimy dodatkowo priorytety operacji j ∈ O:

δ(j) = ε(j) · ω(j, fmin(j)) (7.29)

gdzie

ε =1fj + α

(7.30)

jest współczynnikiem korygującym, a parametr α określa istotność tegowspółczynnika. Kolejność φ szeregowanych operacji w algorytmie M–MINSustalana jest według nierosnących priorytetów operacji, tzn.

δ(φ(1)) ­ δ(φ(2)) ­ . . . ­ δ(φ(o)). (7.31)

W celu wyznaczenia optymalnej wartości parametru α wykonałem serięwstępnych badań i na ich podstawie proponuję przyjąć α = 5. Idea współ-czynnika jest następująca: w przypadku operacji mającej dużą liczbę sposo-bów wykonania istnieje duża możliwość wstawienia jej do częściowego usze-regowania tak, by jak najmniej zwiększyć jej długość. Dlatego też wśródoperacji o podobnych wartościach ω(j, fmin(j)), j ∈ O powinno się najpierwszeregować operację mającą mniejszą liczbę fj alternatywnych sposobów jejwykonania. W ramach szeregowania operacji j ∈ O, dla każdego sposobuf ∈ Fj jej wykonania, testowane są uszeregowania częściowe powstałe przezpróbne wstawienie wszystkich czynności sposobu f ∈ Fj operacji j na ba-zowe zestawy pozycji. Koleje sposoby testowane są w kolejności od sposobufmin(j) o najmniejszej wadze do sposobu o wadze największej. Ostateczniejako sposób wykonania f(j) operacji j oraz zestaw pozycji, na które wsta-wiane są czynności Nj,f(j) w zestawie częściowych permutacji π, przyjmujesię sposób oraz zestaw pozycji, które generują uszeregowanie częściowe onajmniejszej wartości funkcji celu.Do obliczenia wartości funkcji celu częściowego uszeregowania, okre-

ślanego przez zestaw sposobów wykonania poszczególnych operacji g orazzestaw częściowych permutacji π należy utworzyć graf G(g, π) (patrz roz-dział 4.2.2). Następujący fakt, że tym razem π oznacza zestaw częściowychpermutacji, a nie zestaw permutacji, niesie ze sobą konsekwencje drobnejzmiany w definicji zbioru łuków kolejnościowych. Precyzując we wzorze(4.17), symbol nl(g), należy zastąpić przez |πl|. Przypominamy, że operacjejuż uszeregowane maja wybrany sposób wykonania f(j), natomiast dla ope-racji jeszcze nieuszeregowanych przyjmujemy f(j) = fmin(j). Analogiczniejak dla grafu odpowiadającego pełnemu uszeregowaniu, długość najdłuż-szej ścieżki w grafie G(g, π) określa wartość funkcji celu dla częściowego

Page 173: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.3. Algorytm typu tabu 167

uszeregowania (g, π). Podobnie, jeżeli graf G(g, π) zawiera cykle o dodat-niej długości wtedy odpowiadające mu częściowe uszeregowanie (g, π) jestuszeregowaniem niedopuszczalnym.W prezentowanym algorytmie M–MINS, należy jeszcze sprecyzować

strategię postępowania w przypadku zajścia sytuacji, w której próbne wsta-wienie czynności operacji j każdym sposobem f ∈ Fj , na każdy z bazowychzestawów pozycji generuje powstanie uszeregowania niedopuszczalnego. Po-stępowanie te, jest podobne do zastosowanego w algorytmie MINS. Jedynąsprawą wymagającą uściślenia jest ponowna zmiana wybranego już sposobuwykonywania operacji „wyciągniętych z uszeregowania”. Dla każdej opera-cji j usuwanej z częściowego uszeregowania (g, π) przypisujemy ponowniesposób fmin(j) o najmniejszej wadze.

7.3 Algorytm M-MTS typu tabu

Prezentowany w tej części algorytm zwany dalej M-MTS (ang. Multi-Mode Taboo Search) oparty jest na ogólnej idei techniki zwanej przeszu-kiwaniem z zabronieniami (ang. tabu search). Znając ogólną zasadę dzia-łania algorytmów typu tabu, w celu precyzyjnego opisu wystarczy spre-cyzować sąsiedztwo, postać wprowadzanych na listę tabu atrybutów orazpodać przepis na określenie statusu (tabu lub nie tabu) danego rozwiąza-nia z sąsiedztwa. Poza wymienionymi wyżej najważniejszymi elementamiogólnego schematu algorytmu tabu w bieżącej części pracy podamy jeszczesposób generowania rozwiązania początkowego, kryterium stopu oraz opi-szemy dodatkowe techniki poprawiające efektywność algorytmu M-MTS.Przejdziemy teraz do precyzyjnego opisu kolejnych elementów składowychalgorytmu M-MTS.

7.3.1 Sąsiedztwo

Sąsiedztwo zastosowane w algorytmie M-MTS bazuje na sąsiedztwieNZB(g, π) patrz (7.25) uszeregowania (g, π). Tradycyjne postępowanie na-kazuje wybranie najlepszego w sensie wartości funkcji celu, nie-tabu rozwią-zania. Jednakże, powyższe postępowanie zostało zmodernizowane.Pierwsza zmiana dotyczy wprowadzenia zbioru reprezentantów rozwią-

zań V BR(g, π). Precyzyjnie dla każdej operacji j ∈ Ω wyznaczamy jedenruch zwany reprezentantem. Podczas wyboru reprezentanta vR(g, π, j) ope-racji j dla uszeregowania (g, π) kierujemy się tylko wartością funkcji celugenerowanych rozwiązań, nie zwracając uwagi na status tabu.

vR(g, π, j) = argmin

Cmax(g(v), π(v)) : v ∈ V ZB(g, π, j)

. (7.32)

Page 174: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

168 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

Zbiór reprezentantów operacji j ∈ Ω oznaczamy przez

V BR(g, π) =

vR(g, π, j) : j ∈ Ω

. (7.33)

Zbiór ten generuje ostatecznie sąsiedztwo algorytmu M-MTS

NM−MTS(g, π) =

(g(v), π(v)) : v ∈ V BR(g, π)

. (7.34)

Druga poprawka postępowania polega na tym, że nie zawsze wybiera-my najlepsze nie-tabu rozwiązane. W celu przyśpieszenia pracy algorytmuograniczamy się do wyboru pierwszego z testowanych rozwiązań, które niejest tabu i jednocześnie wartość funkcji celu dla tego rozwiązania jest mniej-sza od wartości funkcji celu bieżącego rozwiązania.Zastosowanie drugiej poprawki przyśpiesza znacznie pracę algorytmu,

jednakże zmniejsza „zachłanność” jednej iteracji. Dlatego druga poprawkanie jest stosowana w każdym kroku algorytmu. W momencie gdy algorytmznajdzie lepsze rozwiązanie niż najlepsze znalezione w wcześniejszych ite-racjach, poprawka druga nie jest stosowana przez kolejne x kroków. Mato na celu dokładniejsze przeszukanie sąsiedztwa najlepszego znalezionegorozwiązania. Takie postępowanie zapewnia, że algorytm dla obszarów sta-tystycznie dobrych będzie dokładnie przeglądał otoczenie, a dla obszarówstatystycznie gorszych będzie pracował z zwiększoną prędkością (uzyskaneprzyśpieszenie jest wynikiem mniej dokładnego przeglądania sąsiedztwa).

7.3.2 Lista tabu

Elementem listy tabu T , są atrybuty bieżącego rozwiązania i wykonywa-nego ruchu w postaci łuków określających kolejność pomiędzy pewnymi pa-rami czynności. Dla uszeregowania (g, π) i wykonanego ruchu v = (j, f, z),na listę T zapisywany jest zbiór AV(g, π, v) =

l∈Mj,f(j)AV l(g, π, v) zawie-

rający od 0 do 2|Mj,f(j)| łuków, gdzie:

AV l(g, π, v) =

ARl : zg,π,jl < zl, fj = f,

ALl : zg,π,jl > zl, fj = f,

∅ : zg,π,jl = zl, fj = f,

ARl : 1 = zg,π,jl < |πl|, fj 6= f,

ARl, ALl : 1 < zg,π,jl < |πl|, fj 6= f,

ALl : 1 < zg,π,jl = |πl|, fj 6= f,

∅ : 1 = zg,π,jl = |πl|, fj 6= f,

(7.35)

gdzie ARl = ((j, f(j), l), πl(zg,π,jl + 1)), ALl = (πl(z

g,π,jl − 1), (j, f(j), l)).

Page 175: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.3. Algorytm typu tabu 169

Przypadek w którym AV(g, π, v) = ∅ występuje gdy zmienia się sposóbwykonania operacji j z sposobu fj na sposób f a wszystkie czynności ope-racji j sposobu fj były wykonywane jako jedyne na maszynach l ∈ Mj,fj ;πl = ((j, fj , l)), l ∈ Mj,fj . Sytuacja taka praktycznie nie występuje, po-nieważ algorytm konstrukcyjny jak i prezentowany algorytm M −MINSpośrednio dąży do równomiernego obciążania maszyn.Ruch v = (j, z, f) uważamy za tabu, (i) w przypadku gdy f = f(j),

jeżeli status dowolnej przesuwanej czynności jest tabu, (ii) w przypadku gdyf 6= f(j), jeżeli status dowolnej wstawianej czynności Nj,f jest tabu. Statusczynności u = (j, f, l), l ∈Mj,f jest tabu gdy na liście tabu znajduje się łuk(uporządkowana para czynności) zawierający czynność u oraz czynności tewystępują w tej samej kolejności co w permutacji π(v)l. Precyzyjnie statusczynność u jest tabu gdy (i) na liście tabu znajduje się łuk (x, u) i zachodziπ(v)−1l(x) < π(v)−1l (u) lub gdy (ii) na liście tabu znajduje się łuk (u, y) i

zachodzi π(v)−1l (u) < π(v)−1l(y) gdzie π(v)−1l (a) jest pozycją czynności a w

permutacji π(v)l; π(v)l(π(v)−1l(a)) = a.

7.3.3 Techniki wspierające

Prezentowany algorytm został, wzbogacony do szereg dodatkowychtechnik podnoszących jego efektywność.Detektor cyklu. Algorytm posiada detektor cyklu, działający na za-

sadzie obserwacji kolejnych wartości funkcji celu, generowanych rozwiązań.Precyzyjny opis detektora cyklu zawarty jest w pracy [77]. Po wykryciucyklu tzn. sytuacji w której algorytm generuje sekwencyjnie te same roz-wiązania, lub w sytuacji gdzie algorytm wykonał pewną zadaną liczbę kro-ków bez poprawy najlepszego znalezionego rozwiązania, algorytm wykonuje„skok powrotny”. Skok powrotny jest zabiegiem polegającym na modyfi-kacji bieżącego rozwiązania, w naszym przypadku zestawu permutacji πzestawu sposobów g wykonywania operacji oraz listy tabu. Wymienionymzmiennym zostaje przypisana wartość zapamiętana w momencie znalezieniarozwiązania najlepszego (z rozwiązań wygenerowanych do tej pory). Oczy-wiście tylko taka modyfikacja powodowałaby, że algorytm zacznie genero-wać dokładnie te same rozwiązania jakie generował po znalezieniu, zapa-miętanego rozwiązania. W celu wymuszenia różnych trajektorii poszukiwańprzy każdym skoku powrotnym do tego samego rozwiązania, stosowana jestnastępująca technika: Z rozwiązaniem do którego następuje skok powrot-ny pamiętany jest także, zbiór niewybranych kandydatów. Przy kolejnychpowrotach algorytmu wybierane jest najlepsze nie-tabu rozwiązanie z tegozbioru, po czym zbiór niewybranych kandydatów zostaje pomniejszony oodpowiedni element.

Page 176: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

170 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

Zmienna długość listy tabu. Dodatkową techniką podnoszącą efek-tywność algorytmu jest cyklicznie zmieniająca się długość listy tabu. Tech-nika ta polega na tym, że algorytm z każdym skokiem powrotnym zmieniadługość listy tabu. Jako parametr sterujący pracą algorytmu nie jest więcliczba określająca długość listy tabu, lecz pewien ciąg liczb. Algorytm możewykonać, więcej zmian długości listy tabu, niż wynosi długość tego ciągu.W takim przypadku długości lity tabu zaczynają się cyklicznie powtarzać.

7.4 Badania testowe

W rozdziale tym przedstawię wyniki badań numerycznych zaprezen-towanych algorytmów A-MINS, M-MINS oraz M-MTS. Generalnie prze-prowadzone badania można podzielić na dwa etapy. W pierwszym z nichporównuję prezentowane algorytmy między sobą, na specjalnie przygoto-wanych przykładach wielosposobowego problemu gniazdowego z operacja-mi wielomaszynowymi z nieprzesuwalnymi czynnościami asynchronicznymi.W pierwszym teście porównujemy najpierw między sobą dwa algorytmykonstrukcyjne A-MINS i M-MINS. W kolejnym eksperymencie oceniamyjakości algorytmu popraw M-MTS na podstawie poprawy rozwiązania star-towego dostarczonego algorytmem M-MINS.W drugim etapie ograniczam się do szczególnego przypadku badanego

problemu jakim jest wielosposobowy problem gniazdowy z klasycznymi ope-racjami wielomaszynowymi. Problem ten, znany jest w literaturze [12, 17]oraz można go rozwiązać prezentowanymi w tym rozdziale algorytmamistworzonymi dla problemu ogólniejszego. Otrzymane rezultaty porównuje-my do najlepszych wyników zaprezentowanych w literaturze.Prezentowane algorytmy zaprogramowane są w Delphi 5.0 i były uru-

chamiane na komputerze z procesorem Athlon XP 2000+ (1666MHz).

7.4.1 Przykłady testowe

Wszystkie przykłady testowe zostały wygenerowane na bazie 360 in-stancji z pracy [17]. Oryginalne dane zostały rozbudowane o parametryra(j,f,l) oraz p(j,f,l), l ∈ Mj,f , f ∈ Fj , j ∈ O. Brakujące dane, zostały wy-losowane, w taki sposób, aby (i) czas tj,f nie uległ zmianie oraz (ii) w każ-dym momencie wykonywania operacji j sposobem f ∈ Fj wykonywana byłaprzynajmniej jedna czynność u ∈ Nj,f . Przykłady te dzielą się na trzy typyEData, RData i VData różniące się średnią liczbą sposobów jednej operacji,wynoszącą odpowiednio 1,15, 2 im/2. Z kolei każdy z typów podzielony jestna trzy klasy XRData, XMData, XVData, gdzie X ∈ E,R, V różniącesię między sobą średnią oraz maksymalną ilością czynności jednej operacji.

Page 177: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.4. Badania testowe 171

Wartości te są odpowiednio takie same jak w przykładach dla problemujednosposobowego, przedstawione w tabeli 6.3, (tabela ta dotyczy danychtypu SData składających się z trzech klas SRData, SMData, SVData). Po-dobnie też, instancje w każdej z klas tworzą osiem grup charakteryzującychsię jednakową liczbą maszyn m, zadań r oraz operacji o. Wartości tychparametrów przedstawione zostały wcześniej w tabeli 6.4.

7.4.2 Algorytmy konstrukcyjne

W tej części testu porównuję ze sobą dwa prezentowane algorytmy kon-strukcyjne typu wstaw, A-MINS oraz M-MINS. Analizie poddawana jestzarówno jakość generowanego uszeregowania jak i czas pracy algorytmu.Dla każdego przykładu wyznaczyłem wartość funkcji celu CA−MINSmax pro-dukowaną przez algorytm A-MINS w czasie tA−MINS (liczony w sekun-dach) oraz wartość funkcji celu CM−MINSmax produkowaną przez algorytmM-MINS w czasie tM−MINS . Następnie dla każdego przykładu obliczyłemwzględną procentową poprawę wartości CM−MINSmax w stosunku do wartościCA−MINSmax ,

ρ = 100% · (CA−MINSmax − CM−MINSmax )/CA−MINSmax . (7.36)

Następnie dla każdej klasy składającej się łącznie z 40 przykładów obli-czyłem wartości średnie ρ oraz tA−MINS i tM−MINS a uzyskane rezultatyzamieściłem w tabeli 7.4.2.Z analizy tabeli 7.4.2 wynika, że podejście zastosowane w algorytmie

M-MINS polegające na dynamicznym doborze sposobu wykonywania dajezdecydowanie lepsze rezultaty, niż rozdzielenie fazy przydziału i szeregowa-nia zastosowane w algorytmie A-MINS. Algorytm M-MINS generuje lepszerozwiązania w sensie wartości funkcji celu niż algorytm A-MINS. Jak łatwoprzewidzieć przewaga algorytmu M-MINS rośnie w miarę wzrostu średniejliczby sposobów wykonania jednej operacji. Generalnie czas działania oby-dwóch algorytmów jest podobny, wyjątkiem są klasy VRData i VMData,ale wtedy średnia jakoś generowanych rozwiązań różni się odpowiednio ażo 20% i 14%. Ponieważ jednak czasy pracy obydwóch algorytmów są sto-sunkowo krótkie w stosunku do czasu pracy algorytmów popraw uważamy,że algorytm M-MINS jest zdecydowanie lepszy do celów generowania roz-wiązania startowego dla algorytmu M-MTS.

7.4.3 Algorytmy popraw

W drugim eksperymencie badałem jakość algorytmu M-MTS względemrozwiązań startowych dostarczonych przez algorytm M-MINS. Podobnie

Page 178: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

172 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

Tabela 7.1: Średnia względna poprawa ρ rozwiązań dostarczanych algo-

rytmem M-MINS w stosunku do rozwiązań dostarczanych algorytmem A-

MINS oraz średnie czas pracy tA−MINS , tM−MINS

Klasa ρ tA−MINS

tM−MINS

[%] [s] [s]

EDataERData 2.3 0.4 0.4EMData 0.8 0.8 0.8EVData 1.4 1.1 1.2

RDataRRData 9.9 0.4 0.5RMData 5.6 1.1 1.2RVData 3.6 1.8 1.8

VDataVRData 19.8 0.5 1.3VMData 13.9 2.3 3.9VVData 3.4 4.0 5.8

jak wcześniej dla każdego przykładu wyznaczyłem wartość funkcji celu roz-wiązania startowego CM−MINSmax oraz wartość CM−MTSmax rozwiązania dostar-czonego przez testowany algorytm M-MTS. Następnie obliczyłem względnąprocentową poprawę

ρ = 100% · (CM−MINS − CM−MTS)/CM−MINS (7.37)

oraz zmierzyłem czas obliczeń tM−MTS . Dla każdej grupy obliczyłem śred-nie arytmetyczne ρ, tM−MTS z pięciu odpowiednich wartości ρ i tM−MTS .Algorytm M-MTS był uruchamiany z następującymi parametrami: długośćlisty tabu zmieniała się cyklicznie i wynosiła odpowiednio 7 · m i 15 · m,maksymalna liczba iteracji - 1 000, liczba iteracji bez poprawy rozwiązania,której osiągnięcie powoduje skok powrotny - 250. Wyniki badań przedsta-wiono w tabeli 7.2.Wyniki przedstawione w tabeli 7.2 wykazują, że zaproponowany algo-

rytm M-MTS sprawuje się bardzo dobrze w całym zakresie testowych da-nych. W ciągu 1000 iteracji poprawia on średnio jakość rozwiązań od 5%do 15% przy średnim czasie pracy od kilkudziesięciu sekund do kilku mi-nut przy czym dla czterech największych grup średni czas pracy przekracza

Page 179: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.4. Badania testowe 173

Tabela 7.2: Wyniki badań porównawczych M-MTS w stosunku do M-MINS

Grupa ρ tM−MTS

ρ tM−MTS

ρ tM−MTS

[%] [s] [%] [s] [%] [s]

EData

ERData EMData EVData01 – 05 12,2 9,3 8,7 6,8 9,3 11,006 – 10 9,1 13,6 10,0 9,2 7,1 18,911 – 15 7,4 18,6 8,3 12,3 6,2 26,116 – 20 16,4 18,9 10,5 37,7 10,4 87,921 – 25 14,2 23,9 10,6 59,8 8,1 143,826 – 30 13,2 30,7 9,6 94,9 7,1 233,831 – 35 13,5 53,6 7,8 179,6 5,7 541,936 – 40 12,1 41,9 9,6 325,9 9,6 853,501 – 40 12,3 9,4 7,9

RData

RRData RMData RVData01 – 05 8,8 8,5 13,5 6,7 9,7 11,106 – 10 8,3 13,4 8,9 9,5 8,9 19,811 – 15 7,8 18,3 8,5 12,9 7,2 27,216 – 20 12,7 15,2 13,3 35,7 10,6 84,421 – 25 12,2 22,6 14,3 62,1 9,7 168,326 – 30 12,1 32,5 11,6 86,0 8,6 259,131 – 35 11,1 56,2 8,5 171,3 5,6 565,636 – 40 11,8 38,7 10,4 311,6 9,1 991,701 – 40 10,6 11,1 8,7

VData

VRData VMData VVData01 – 05 10,0 8,0 10,1 6,4 11,7 11,806 – 10 11,1 13,1 8,3 10,3 10,8 18,211 – 15 8,7 19,3 7,2 14,0 8,6 28,816 – 20 7,7 19,4 15,1 41,3 12,5 123,121 – 25 8,1 29,9 12,0 75,0 9,2 251,326 – 30 7,7 43,5 11,4 120,1 8,1 364,931 – 35 7,5 80,6 8,3 243,9 5,2 921,136 – 40 6,7 64,9 10,4 500,1 7,1 2154,301 – 40 8,4 10,4 9,2

Page 180: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

174 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

10 minut. Na podstawie subiektywnej oceny wyrobionej podczas obserwa-cji przebiegu pracy algorytmu wydaje się, że parametry sterujące dobranesą właściwie a zastosowane dodatkowe techniki poprawiające wydajnośćalgorytmu spełniają swoje zadania.

7.4.4 Wielosposobowy problem gniazdowego z nieprzesu-walnymi czynnościami synchronicznymi

Trzeci eksperyment ma na celu porównanie zaproponowanego algoryt-mu z osiągnięciami innych badaczy. Ponieważ badany problem jest nowymnie są znane dla niego algorytmy literaturowe. Jednakże przedstawionyw pracy problem jest uogólnieniem problemu zwanego w literaturze jako„Multi-Mode Job-Shop Problem” dla którego zaproponowane są przykła-dy testowe oraz znane są dla tych przykładów wyniki algorytmów litera-turowych [17, 77]. Dlatego też, w trzecim teście używam niezmienionych360 instancji z pracy [17], których klasyfikacja została przedstawiona wcze-śniej. Dla każdego testowego przykładu wyznaczyłem wartość funkcji celuCM−MTSmax , generowaną przez algorytm M-MTS wysterowany tak samo jakw drugim eksperymencie oraz zmierzyłem tM−MTS - czas działania pracytego algorytmu. Wartości CM−MTSmax porównałem do wartości CTB funk-cji celu, produkowanej przez algorytm TB;(zaczerpnięte z literatury [17],łącznie z czasem działania tTB) oraz wartością CTSA generowaną przezalgorytm TSA opisany w monografii [77] w czasie tTSA. Precyzyjnie dlakażdej instancji wyznaczyłem względną procentową poprawę w stosunkudo wartości CTB,

ρTB = 100% · (CTB − CM−MTS)/CTB (7.38)

oraz poprawę w stosunku do wartości CTSA,

ρTSA = 100% · (CTSA − CMMTMN )/CTSA. (7.39)

Następnie, dla każdej grupy obliczyłem średnie arytmetyczne ρTB, ρTSA,tTB, tTSA i tM−MTS . Wyniki badań, odpowiednio dla kolejnych typów da-nych EData, RData i VData zamieściłem w tabelach 7.3–7.5. Ponieważalgorytm TB uruchamiany był na komputerze Sun10/40, algorytm TSAna komputerze PC z procesorem pentium 120MHz a algorytm M-MTS nakomputerze PC z procesorem Athlon 1666MHz, żeby dokonać standaryzacjiczasy obliczeń tTSA należy pomnożyć przez czynnik 1,2 a czasy tM−MTS

przez czynnik 16. Wyniki tego testu wykazują, że jakość generowanychrozwiązań prezentowanego algorytmu M-MTS, zastosowanego dla wielo-sposobowego problemu z nieprzesuwalnymi czynnościami synchronicznymi,

Page 181: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.4. Badania testowe 175

Tabela 7.3: Porównanie algorytmu M-MTS w stosunku do TB i TSA naprzykładach typu EData

Grupa ρTB ρTSA tTB

tTSA

tM−MTS

[%] [%] [s] [s] [s]

ERData01 – 05 -0,3 -2,4 222 12 906 – 10 0,1 -1,6 493 22 1311 – 15 1,0 -0,4 1056 61 1816 – 20 -1,1 -6,1 449 38 1721 – 25 -0,3 -5,5 926 78 2326 – 30 -0,8 -5,1 1599 100 3131 – 35 1,0 -4,1 3952 341 5536 – 40 -2,7 -8,1 1496 128 4201 – 40 -0,4 -4,2

EMData01 – 05 -1,3 -2,6 143 6 706 – 10 -0,1 -1,3 252 15 911 – 15 0,1 -1,0 421 26 916 – 20 1,4 0,3 1060 55 3321 – 25 0,3 -1,0 2880 81 6426 – 30 4,8 1,7 5720 222 9631 – 35 1,7 0,3 15075 308 21736 – 40 2,6 1,5 9881 218 51101 – 40 1,2 -0,3

EVData01 – 05 1,5 -1,1 266 11 1006 – 10 2,2 1,1 710 28 1711 – 15 -0,8 -2,6 1200 39 2416 – 20 2,4 1,3 1647 59 6521 – 25 2,2 0,7 4594 124 12826 – 30 1,3 0,3 8930 193 22631 – 35 0,6 -0,7 24495 461 53636 – 40 1,2 -0,9 11299 377 58301 – 40 1,3 -0,2

Page 182: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

176 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

Tabela 7.4: Porównanie algorytmu M-MTS w stosunku do TB i TSA naprzykładach typu RData

Grupa ρTB ρTSA tTB

tTSA

tM−MTS

[%] [%] [s] [s] [s]

RRData01 – 05 1,6 -1,3 289 9 806 – 10 2,5 -1,3 639 28 1411 – 15 0,2 -2,6 1096 61 1816 – 20 1,1 -2,4 523 22 1421 – 25 0,2 -4,6 1118 54 2226 – 30 1,3 -4,0 2145 121 3131 – 35 1,9 -3,0 4954 257 5336 – 40 -1,7 -6,4 1696 119 3901 – 40 0.9 -3.2

RMData01 – 05 -3,0 -4,7 182 9 606 – 10 0,8 -2,8 344 13 911 – 15 -0,6 -2,9 616 29 1316 – 20 -1,6 -3,6 1432 53 1321 – 25 2,1 -2,5 3411 185 5926 – 30 2,9 -2,5 6634 217 8431 – 35 0,7 -1,4 16617 251 18836 – 40 2,6 0,7 14020 185 38301 – 40 0.5 -2.5

RVData01 – 05 1,8 -1,2 396 11 1106 – 10 3,1 0,2 895 23 1811 – 15 4,7 -0,4 1799 50 2716 – 20 8,9 2,6 2742 58 7021 – 25 6,4 1,6 7146 157 13626 – 30 9,5 2,9 13342 232 23631 – 35 8,0 1,2 36990 419 54036 – 40 7,3 3,2 20122 413 64301 – 40 6.2 1.3

Page 183: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

7.4. Badania testowe 177

Tabela 7.5: Porównanie algorytmu M-MTS w stosunku do TB i TSA naprzykładach typu VData

Grupa ρTB ρTSA tTB

tTSA

tM−MTS

[%] [%] [s] [s] [s]

VRData01 – 05 1,4 -1,6 277 8 806 – 10 2,8 -0,8 732 23 1311 – 15 1,4 -2,1 1239 50 1916 – 20 -2,7 -5,1 739 21 1821 – 25 2,1 -5,2 1755 55 2726 – 30 0,9 -2,6 3609 80 3831 – 35 0,0 -3,8 9461 235 7536 – 40 3,0 -3,4 4191 83 5501 – 40 1.1 -3.1

VMData01 – 05 0,1 -2,9 186 9 606 – 10 0,4 -1,9 412 18 1011 – 15 -2,5 -4,8 708 36 1416 – 20 3,2 -2,4 2396 48 3821 – 25 4,0 -4,8 6064 148 6826 – 30 2,9 -3,2 10070 245 10131 – 35 2,6 -5,4 31178 323 21236 – 40 3,3 -0,3 32271 289 51001 – 40 1.7 -3.2

VVData01 – 05 3,2 -1,9 463 13 1106 – 10 1,0 -3,1 1011 27 1911 – 15 4,4 0,1 1978 59 2816 – 20 5,5 2,2 5250 69 10621 – 25 12,0 4,4 12518 134 17926 – 30 10,2 2,3 25458 210 30531 – 35 8,9 2,7 69776 412 81636 – 40 23,4 7,1 71068 389 128101 – 40 8.6 1.7

Page 184: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

178 Rozdział 7. Wielosposobowy problem gniazdowy z czynnościami. . .

klasyfikuje go pomiędzy algorytmem TB, a algorytmem TSA. Dokładniemówiąc prezentowany algorytm jest szybszy i generuje lepsze rozwiązania wsensie wartości funkcji celu, niż algorytm TB. Jest algorytmem wolniejszymi generuje słabsze rozwiązania w tym samym sensie niż wysoce specjalizo-wany algorytm TSA. Dla klasy o najmniejszych rozmiarach przykładówERData prezentowany algorytm dostarcza najsłabszych rozwiązań, ale dlaklas o największych rozmiarach instancji RVData i VVData dostarcza roz-wiązań lepszych niż algorytm TB, jak również lepszych niż TSA.

7.5 Wnioski i uwagi

Problem rozważany w tym rozdziale jest bliższy rzeczywistym procesomprodukcyjnym niż problem prezentowany w rozdziale 6. Jednocześnie jestto problem bardziej ogólny i przez to trudniejszy. Udało mi się jednak wy-kazać analogiczne własności oraz zastosować idee stosowane w rozdziale 6.W szczególności dotyczy to proponowanych sąsiedztw: bazowego i zreduko-wanego bazowego. Pozytywne cechy tych sąsiedztw, takie jak stosunkowoniewielki rozmiar, potencjalnie dobre rozwiązania oraz duża liczba rozwią-zań dopuszczalnych zostały zachowane. Na bazie szeregu własności orazdoświadczeń nabytych podczas analizy problemu jednosposobowego zapro-ponowałem efektywne algorytmy konstrukcyjne oraz algorytm przybliżonyoparty na technice poszukiwania z zabronieniami.Prezentowane algorytmy wykazują wszystkie cechy dobrych algorytmów

Dla algorytmów konstrukcyjnych średni błąd od rozwiązań referencyjnychdostarczanych algorytmami popraw jest na poziomie 10%. Algorytm po-praw stosunkowo szybko poprawia rozwiązanie startowe, a jakość dostar-czany rozwiązań ulega poprawie przy zwiększaniu czasu działania.Ponieważ nie są znane algorytmy literaturowe dla problemu rozważane-

go w tym rozdziale, ostatecznej weryfikacji jakości prezentowanych metoddokonałem na przykładach problemu Multi-Mode JobShop. Przypominam,że prezentowany w tym rozdziale algorytm MMTS zaprojektowany zostałdla dużo szerszej klasy przykładów. Zastosowany jednak dla tego szczegól-nego przypadku generował rozwiązania na poziomie rozwiązań dostarcza-nych przez najlepszy algorytm dedykowany temu problemowi. Niejedno-krotnie dostarczał rozwiązań najlepszych spośród wszystkich algorytmówliteraturowych (w szczególności dla grup zawierających największe instan-cje okazał się najlepszy).

Page 185: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Rozdział 8

Zastosowania praktyczne

Jako przykład praktycznego zastosowania modeli rozważanych w pra-cy przytoczę przypadek opisany w książce [101]. Jest to montaż zapalnika,który może być modelowany jako zadanie produkcyjne. Precyzyjnie mon-taż ten polega na złożeniu zapalnika z sześciu detali oraz odmierzonej ilościprochu (patrz rys. 8.1).Proces montażu obsługiwany jest jednocześnie przez dwa przemysłowe ro-boty. Do maszyny podającej drut bezpiecznikowy dostarczane są opraw-ki nylonowe oraz stalowe nasadki zapalnika. Specjalny podajnik dostarczastalowy korpus zapalnika razem z podkładką. Robot 1 wkłada w nią drut iumieszcza w nasadce, a potem całość wkłada w korpus. Następnie przenosicały zmontowany podzespół do miejsca składowania na dozowniku pro-chu. Stąd jeden z robotów zabiera ten podzespół i obsługuje napełnianieprochem. Po tej czynności element przenoszony jest w miejsce nad prasą.Następnie jeden z robotów dołącza do podzespołu okienko i nakrywkę, poczym steruje sprasowniem całości przez prasę. Ostatnią operacją jest prze-niesienie zapalnika przez robota R2 do urządzenia kontrolującego jakość iw zależności od wyniku testu zapalnik umieszczany jest w jednym z dwóchpojemników.W opisany procesie produkcji można wydzielić 5 składowych operacji:

OpT – operacja podmontażu (założenie drutu i nasadki na nylono-wą oprawkę, a następnie włożenie całości razem z podkładkądo stalowego korpusu), transport do dozownika prochu,

Odp – operacja dozowania prochu strzelniczego,

Tpr – transport od dozownika prochu do prasy,

Opr – operacja wprasowania górnej nakrywki zapalnika,

Tkj – transport gotowego zapalnika z prasy do kontroli jakości.

179

Page 186: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

180 Rozdział 8. Zastosowania praktyczne

( i ) ( ii )

Nakrywka aluminiowa Proch Drut

Oprawa nylonowa

Stalowa nasadka Podkładka

Korpus stalowy

Rysunek 8.1: Zapalnik (i)– elementy składowe, (ii)– produkt końcowy

Jak wynika z opisu produkcji, do wykonania powyższych działań zakładprodukcyjny wyposażony jest w sześć niżej wymienionych maszyn1.

R1 – robot numer 1,R2 – robot numer 2,Pdp – przestrzeń nad dozownikiem prochu,Dp – dozownik prochu,Ppr – przestrzeń nad prasą,Pr – prasa.

Roboty R1 i R2 są identycznymi uniwersalnymi robotami przemysłowymi.Ze względu na swoje położenie oraz ograniczony zasięg ramion robotów, niezawsze istnieje możliwość zastąpienie jednego robota drugim. Przykładowo

1Przestrzeń robocza jak i fizyczne urządzenia traktowane są tu jako pewnego rodzajumaszyny (zasoby odnawialne).

Page 187: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Zastosowania praktyczne 181

Tabela 8.1: Sposoby wykonania kolejnych operacji montażu zapalnika, czasyt, r i p wyrażone są w sekundach

ma- OpT Odp Tpr Opr Tkjszy- s1 s1 s2 s1 s2 s1 s2 s1na t=16, 0 t=3, 0 t=3, 0 t=2, 0 t=2, 0 t=5, 0 t=5, 0 t=14, 0

R1 r = 0, 0 r = 0, 0 — r = 0, 0 — r = 0, 0 — —p =16, 0 p = 3, 0 — p = 2, 0 — p = 0, 5 — —

R2 — — r = 0, 0 — r = 0, 0 — r = 0, 0 r = 0, 0— — p = 3, 0 — p = 2, 0 — p = 5, 0 p =14, 0

Pdp r=15, 25 — — r =0, 25 r =0, 25 — — —p = 0, 5 — — p = 0, 5 p = 0, 5 — — —

Dp r =15, 5 r = 0, 0 r = 0, 0 r = 0, 0 r = 0, 0 — — —p = 0, 5 p = 3, 0 p = 3, 0 p = 0, 5 p = 0, 5 — — —

Ppr — — — r = 0, 5 r = 0, 5 — — r = 1, 5— — — p = 0, 5 p = 0, 5 — — p = 0, 75

Pr — — — r =0, 75 r =0, 75 r = 0, 0 r = 0, 0 r = 0, 0— — — p = 1, 25 p = 1, 25 p = 5, 0 p = 5, 0 p = 1, 75

operacja Opt1 może być wykonana tylko przez robota R1, natomiast ope-racja Tkj tylko przez robota R2, pozostałe operacje Odp, Tpr, Opr mogąbyć wykonywane przez dowolnie wybranego robota, R1 lub R2.Tabela 8.1 zawiera precyzyjny opis wszystkich sposobów, jakimi można

wykonać poszczególne operacje. Czas t oznacza całkowity czas wykony-wania operacji danym sposobem. Parametry r i p określone są dla każdejmaszyny niezbędnej do wykonania danej operacji wybranym sposobem. Pa-rametr r określa czas po upływie którego (licząc od momentu rozpoczęciarealizacji operacji) będzie używana dana maszyna2, natomiast parametr pokreśla długość przedziału czasowego wykorzystywania tej maszyny. Ponie-waż obydwa dostępne w zakładzie roboty są identyczne, czas wykonywaniadanej operacji (dla operacji wielosposobowych) nie zależy od wybranegosposobu (wybranego robota).

2W pracy wartość ta oznaczana była symbolem ra, jednakże tutaj w celu zwiększeniaprzejrzystości tabeli stosuję oznaczenie r, ponadto z tych samych powodów zrezygnowa-łem z indeksowania parametrów.

Page 188: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

182 Rozdział 8. Zastosowania praktyczne

R2

PDP

R1

DP

PPR

PR

OpT – s1 Odp – s2 Tpr – s1 Opr – s2 Tkj – s1

Rysunek 8.2: Zapalnik (i)– elementy składowe, (ii)– produkt końcowy

Schematyczny diagram wykorzystania poszczególnych maszyn, w pro-cesie montażu zapalnika dla ustalonych sposobów (s1, s2, s1, s2, s1) przed-stawiony jest na rys. 8.2.Wszystkie operacje opisane w tym przykładzie wykorzystują kilka ma-

szyn (operacje wielomaszynowe). Ponieważ przedziały czasowe wykorzysty-wania poszczególnych maszyn w ramach jednej operacji są względem siebiejednoznacznie określone operacje te składają się z „nieprzesuwalnych czyn-ności”. Momenty rozpoczęcia oraz zakończenia wykonywania czynności wramach jednej operacji (operacje OpT, Tpr Tkj) są różne więc są to czynno-ści asynchroniczne, natomiast operacje Odp i Opr składają się z czynnościsynchronicznych. Operacje Odp i Opr są więc operacjami wielomaszyno-wymi z nieprzesuwalnymi czynnościami synchronicznymi, natomiast OpT,Tpr Tkj są operacjami wielomaszynowymi z nieprzesuwalnymi czynnościa-mi asynchronicznymi.

Page 189: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Rozdział 9

Wnioski końcowe

Wnioski rozpocznę od weryfikacji tez pracy postawionych w pierwszymrozdziale. Wychodząc naprzeciw problemom praktycznym, badaniom pod-dałem klasę problemów gniazdowych z operacjami wielomaszynowymi, cha-rakteryzującą się stosunkowo dużą złożonością modeli i algorytmów. Roz-poczynając od klasycznego problemu gniazdowego, zastąpiłem literaturowymodel operacji wielomaszynowych, własnymi bardziej precyzyjnymi i zara-zem bardziej rozbudowanymi modelami, dedykowanymi dla różnych sytu-acji produkcyjnych. Dla tak utworzonego problemu nowej generacji, uda-ło mi się zaproponować szereg efektywnych algorytmów przybliżonych odbardzo szybkich algorytmów konstrukcyjnych, po bardziej zaawansowanealgorytmy popraw oparte na technice symulowanego wyżarzania i przeszu-kiwania z zabronieniami.

Świadectwem wysokiej efektywności proponowanych algorytmów, sąbardzo dobre rezultaty uzyskane już w wyniku badań klasycznego proble-mu gniazdowego z ograniczeniem „bez czekania”. Ten stosunkowo rzadkoanalizowany w literaturze problem cieszy się wielkim zainteresowaniem zestrony praktyków. Ponieważ wybrane przykłady tego problemu, można in-terpretować jako bardzo specyficzne przykłady rozważanego problemu, za-tem stanowią one pewną bazę porównawczą proponowanych algorytmóww stosunku do algorytmów prezentowanych w literaturze. Osiągnięte re-zultaty niejednokrotnie przewyższają wyniki algorytmów, innych autorów,dedykowanych temu problemowi, dostarczając rozwiązań jakościowo lep-szych w krótszym czasie.

Podobne rezultaty udało mi się powtórzyć dla jeszcze bardziej złożone-go problemu jakim jest wielosposobowy problem gniazdowy z operacjamiwielomaszynowymi. I tu także udało mi się zaproponować bardzo szyb-kie algorytmy konstrukcyjne oraz bardzo efektywny algorytm popraw typu

183

Page 190: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

184 Rozdział 9. Wnioski

przeszukiwania z zabronieniami. Tym razem bazą porównawczą z algoryt-mami innych badaczy stanowiły przykłady „klasycznego” wielosposobowe-go problemu gniazdowego z operacjami wielomaszynowymi. Proponowanyalgorytm pracujący na znacznie bardziej rozbudowanych modelach operacji,niż algorytmy literaturowe, tylko dla nielicznych przykładów nieznacznieustępował w efektywności najlepszemu algorytmowi literaturowemu.Ostatecznie, na podstawie przeprowadzonych badań stwierdzam, że sto-

sowanie proponowanych modeli operacji wielomaszynowych umożliwia kon-strukcję efektywnych algorytmów, mimo widocznego wzrostu rozmiaru orazzłożoności modelu matematycznego opisywanego procesu przemysłowego.Podsumowując, tezy wysunięte na początku pracy potwierdziłem kolej-

no przez: (i) zaproponowanie nowych modeli operacji wielomaszynowych,(rozdział 3), (ii) wykrycie i udowodnienie szeregu własności dla nowej klasyrozważanych problemów, (rozdział 6,7), (iii) budowę na ich podstawie efek-tywnych algorytmów przybliżonych, (dokonałem implementacji wszystkichprezentowanych w pracy algorytmów, rozdział 6,7), (iv) wykazanie bardzowysokiej efektywności algorytmów typu przeszukiwania z zabronieniami,(przeprowadziłem wyczerpujące badania numeryczne proponowanych algo-rytmów na znanych w literaturze przykładach testowych, rozdział 6,7) , (v)wykazanie przewagi jakościowej generowanych rozwiązań nad rozwiązania-mi otrzymanymi przy zastosowaniu modeli tradycyjnych (rozdział 4).Niejako „przy okazji” prowadzonych badań oraz poza postawionymi te-

zami pracy pokazałem ogólny sposób konstrukcji modeli permutacyjno-grafowych problemów szeregowania z użyciem zaproponowanych modelioperacji wielomaszynowych, (rozdział 4), oraz przedstawiłem propozycjębardzo szybkiego wysoko specjalizowanego algorytmu wyznaczania termi-nów rozpoczęcia czynności dla ustalonej kolejności ich wykonywania, (roz-dział 5).

Kierunki dalszych badań

Wydaje się, że niniejsza praca może stanowić inspirację do dalszych ba-dań dotyczących teoretycznych i praktycznych aspektów szeregowania za-dań produkcyjnych z operacjami wielomaszynowymi. W szczególności naj-bardziej atrakcyjnymi kierunkami dalszych badań, są:

• opracowanie modeli matematycznych dla problemów szeregowania zoperacjami wielomaszynowymi, wykorzystujących pozostałe modeleoperacji,

• opracowanie modeli matematycznych problemów szeregowania łączą-cych modele operacji wielomaszynowych różnych typów,

Page 191: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

9. Wnioski 185

• wykrycie nowych własności oraz konstrukcja efektywnych algorytmówdla wyżej wymienionych problemów oraz nieprzebadanych problemówgniazdowych z operacjami wielomaszynowymi z przesuwalnymi czyn-nościami.

Moim zdaniem uzyskane rezultaty stanowią istotny wkład w proble-matykę szeregowania zadań produkcyjnych, zarówno z teoretycznego jak ipraktycznego punktu widzenia. Wkład teoretyczny stanowią nowe mode-le operacji oraz własności i algorytmy problemu gniazdowego z operacjamiwielomaszynowymi nierównocześnie wykorzystującymi maszyny. Natomiastpraktyczne znaczenie ma fakt, iż w rozważanych w tej pracy problemach, narozwiązania dopuszczalne nie są nakładane dodatkowe fikcyjne ogranicze-nia wynikające bezpośrednio z używanego dotychczas powszechnie modeluoperacji wielomaszynowej. W konsekwencji proponowane przeze mnie po-dejście umożliwia znalezienie (nawet w bardzo krótkim czasie) rozwiązańlepszych w sensie wybranego kryterium niż rozwiązania optymalne dla pro-blemu modelującego tradycyjnie ten sam proces przemysłowy.

Page 192: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

186 Rozdział 9. Wnioski

Page 193: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Literatura

[1] AARTS E.H.I., van LAARHOVEN P.J.M., LENSTRA J.K., ULDERN.I.J., A computational study of local search algorithms for job shopscheduling, ORSA Journal on Computing, 1994, 6, 118-125.

[2] AARTS E.H.I., LENSTRA J.K., Local search in Combinatorial Opti-mization, John Wiley and Sons Ltd, Chichester, England, 1997.

[3] ADAMS A., BALAS E., ZAWACK D., The shifting bottleneck proce-dure for job-shop scheduling, Management Science, 1988, 34, 391-401.

[4] BAAR T., BRUCKER P., KNUST S., Tabu-search algorithms for theresource-constrained project scheduling problem, Preprint series: OSMReihe P Helf 192, 1997, Ossnabrucker Schriften zur Mathematics.

[5] BAKER K., A dynamic prioryty rule for scheduling against due dates,TIMES/ORSA Conference, Houston, 1981.

[6] BALAS E., VAZACOPOULOS A., Guided local search with shiftingbottleneck for job shop scheduling, Research Report MSRR-609, 1995,Carnegie Mellon University, Pittsburg, PA.

[7] BALAS E., LENSTRA J.K., VAZACOPOULOS A., One-machinescheduling with delayed precendence constraints and its use in jobshop scheduling, Management Science 41, 1995, 94-109.

[8] BARNES J.W., CHAMBERS J.B., Solving the job shop schedulingproblem with tabu search, IIE Transactions, 1995, 27, 257-263.

[9] BELLMAN R. E., On a routing problem, Quart. Appl. Math., 1958,16, 87-90.

[10] BŁAŻEWICZ J., Złożoność obliczeniowa problemów kombinatorycz-nych, Warszawa, WNT, 1988.

[11] BŁAŻEWICZ J., ECKER K.H., SCHMIDT G., WĘGLARZ J., Sche-duling computer and manufacturing processes, Springer Verlag, Ber-lin, New York, 1996.

187

Page 194: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

188 Literatura

[12] BIANCO L., DELL’OLMO P., SPERANZA M.G., Heuristics formultimode scheduling problems with dedicated resources, EuropeanJournal Operational Research, 1998, 107, 260-271.

[13] BRIZUELA C., ZAHO Y., SANNOMIYA, No-wait and blocking job-shop:Challenging problems for GA’s, IEEE International Conferenceon Systems, Man and Cybernetics, 4, 2001, 2349-2354.

[14] BRUCKER P., Scheduling Algorithms, Springer-Verlag Berlin-Heidelberg, 1995.

[15] BRUCKER P., KRAMER A., Shop scheduling problem with mul-tiprocessor task on dedicated processor, Osnabrucker Schriften zurMathematik, Reihe P, 1993.

[16] BRUCKER P. JURISH B., SIEVIERS B., A fast branch and boundalgorithm for the job shop problem, Discrete Applied Mathematics,1994, 49, 107-127.

[17] BRUCKER P., NEYER J., Tabu search for multi-mode job shop pro-blem, OR Spectrum, 1998, 20, 21-28.

[18] CARLIER J., The one-machine sequencing problem, European Jour-nal of Operational Research, 11, 1982, 42-47.

[19] CHU C., PROTH J.M., SETHI S., Heuristic procedures for minimi-zing makespan and the number of required pallets, European JournalOperational Research, 1998, 86, 491-501.

[20] CORMEN T. H., LEISERSON C. E., RIVEST R. L., Wprowadzeniedo algorytmów, WNT, Warszawa 1997.

[21] DAS H., CUMMINGS P.T., LE VAN M.D., Scheduling of serial mul-tiproduct batch processes via simulated annealing, Computers Chem.Eng., 1990, 14, 1351-1362.

[22] DAUZERE-PERES S., PAULI J., An integrated approach for mode-ling and solving the general multiprocessor job-set scheduling problemusing tabu search, Annals of Operations Research, 1997, 70, 281-306.

[23] DELLA CROCE F., TADEI R., VOLTA G., A genetic algorithm forthe job shop problem, Computers and Operations Research, 1995, 22,15-24.

[24] DELL’AMICO M., TRUBIAN M., Applying tabu search to the jobshop scheduling problem, Annals of Operations Research, 1993, 41,231-252.

[25] DENARDO E. V., FOX B. L., Shortest-route methods:1. Reaching,pruning, and buckets, Oper.Res. 12. 1979, str. 215-248.

Page 195: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Literatura 189

[26] DIAL R. B., GLOVER F., KARNEY D., KLINGMAN D., A compu-tatonal analysis of alternative algorithms and labeling techniques forfinding shortest path trees, Networks 9, 1979, str. 215-248.

[27] DORNDORF U., PESCH E., Evolution based learning in a job shopscheduling environment, Computers and Operations Research, 1995,22, 25-40.

[28] DROZDOWSKI M., Scheduling multiprocessor tasks - An overview,European Journal Operational Research, 1996, 94, 215-230.

[29] DROZDOWSKI M., Selected problems of scheduling tasks in mul-tiprocessor computer systems, Prace naukowe Instytutu InformatykiPolitechniki Poznańskiej, Poznań, 1997.

[30] FORD L. R., Network flow theory, The Rand Corporation, SantanaMonica, CA, August 1956.

[31] GILMORE P., GOMORY R., Sequanciong o one state variable ma-chine. A solvable case of the travelling salesman problem OperationsResearch, 12, 1964, 655-679.

[32] GLOVER F., Tabu Search. Part I, ORSA Journal of Computing,1989, 1, 190-206.

[33] GLOVER F., Tabu Search. Part II, ORSA Journal of Computing,1990, 2, 4-32.

[34] GLOVER F., Tabu search fundamentals and uses, Technical Report,University of Colorado, 1995, (skondensowana wersja publikowanaw Mathematical Programming: State of the Art, Birge and Murty(eds.), 1994, 64-92).

[35] GLOVER F., LAGUNA M., Tabu Search, Modern Heuristic Techni-ques for Combinatorial Problems, C. Reeves, ed., Blackwell ScientificPublishing, 1993, 70-141.

[36] GLOVER F., LAGUNA M., Tabu Search, Kluwer Academic Publi-shers, Massachusetts USA, 1997.

[37] GRABOWSKI J., Uogólnione zagadnienia optymalizacji kolejnościoperacji w dyskretnych zagadnieniach produkcyjnych. Prace naukoweInstytutu Cybernetyki Technicznej Polit. Wrocł., Seria Monografie,1979.

[38] GRABOWSKI J., NOWICKI E., SMUTNICKI C., Zagadnienie ko-lejnościowe gniazdowe z maszynami równoległymi, Materiały Kon-ferencji Naukowo-Technicznej „Problematyka budowy i eksploatacjimaszyn w ujęciu systemowym”, Kraków, 1986, 70-75.

Page 196: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

190 Literatura

[39] GRABOWSKI J., NOWICKI E., SMUTNICKI C.,Metoda blokowa wzagadnieniach szeregowania zadań Akademicka Oficyna WydawniczaExit, Warszawa 2003.

[40] HALL G.N., SRISKANDARAJAH C., A survey of machine schedu-ling problems with blocking and no-wait in process, Operations Rese-arch, 1996, 44,510-524.

[41] HOOGEVEEN J.A., LENSTRA J.K., VELDE S.L., Preemptive sche-duling in a two stage multiprocessor flowshop is NP-hard, Report ofthe Departament of Mathematics and Computing Science, EindhovenUniversity of Technology, 1991.

[42] HUNSUCKER J., BRAH S., Comparative performance analysis ofprioryty rules in a constrained flow shop with multiple processorsenvironment, European Journal Operational Research, 72, 1994, 102-114.

[43] HURINK J., JURISCH J., THOLE M., Tabu search for the job-shopscheduling problem with multi-purpose machines, OR Spektrum, 1994,15, 205-215.

[44] HURINK J., KNUTS S., A tabu search algorithm for scheduling asingle robot in a job-shop environment, Osnabrucker Schriften zurMathematik, Reihe P, 1999, 213.

[45] HURINK J., KNUTS S., Tabu search algorithms for the job-shop pro-blems with a single transport robot. Osnabrucker Schriften zur Mathe-matik, Reihe P, 2001, 231.

[46] JACKSON J.,R., An extension of Johnson’s result on job lot schedu-ling, Naval Research Logistic Quarterly 3, 1956, 201-203.

[47] JOHNSON S.M., Optimal two- and three-stage production scheduleswith setup times included, Naval Res. Logist. Quart., 1954, 1, 61-68.

[48] JURISCH B., Scheduling jobs in shops with multi-purpose machi-nes, Dissertation, Fachbereich Mathematik/Informatik, UniversitatOsnabruck, 1992.

[49] KIRKPATRICK S., GELATT C.D., VECCHI M.P., Optimization bysimulated annealing, Science, 1983, 220, 671-680.

[50] KNUTS S., Shop-scheduling problems with transportation, Ph.D.thesis, Fachbereich Mathematik/Informatik Universitat Osnanbruck,1999.

Page 197: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Literatura 191

[51] KORCYL A., SAWIK T., Algorytmy typu tabu dla wyznaczania partiiprodukcyjnych i obciążenia maszyn w elastycznym systemie produkcyj-nym, Zesz. Nauk. Pol. Śl., Ser. Automatyka, 1992, 109, 147-157.

[52] KRAMER A., Scheduling multiprocessors tasks on dedicated proces-sors, PhD-Thesis, Fachbereich Mathematik/Infomatik, UniversitatOsnabruck, 1995.

[53] KUBIAK W., SETHI S., SRISKANDARAJAH C., An affcient al-gorithm for a job shop problem, Working paper, Faculty of BusinessAdministration, Memorial University of New foundland, 1993.

[54] KUBIAK W., A pseudo-polynomial algorythm for a two-machine no-wait job-shop scheduling problem, European Journal Operational Re-search, 43, 1992, 267-270.

[55] KUSIAK A., Material handling in flexible manufacturing systems,Material Flow 2, 1985, 79-95.

[56] VAN LAARHOVEN P.J.M., AARTS E.H.L., LENSTRA J.K., Job-shop scheduling by simulated annealing, Operations Research, 1992,40, 113-125.

[57] LEISTEIN R., Flowshop sequencing problems with limited buffer sto-rage, International Journal of Production Research, 1990, 28, 2085-2100.

[58] LENSTRA J.K., RINNOOY KAN A., BRUCKER P., Complexity ofmachine scheduling, Annals of Discrete Mathematics 1, 1977, 343-362.

[59] LENSTRA J.K., RINNOOY KAN A., Computation complexity ofdiscrete optimalization problem, Annals of Discrete Mathematics 4,1979, 121-140.

[60] LIAW CHING-FANG, A tabu search algorithm for the open shopscheduling problem, Report Department of Industrial Engineering andManagement, Chaoyang University of Technology, 1998, Taiwan.

[61] LIPSKI W., Kombinatoryka dla programistów, WNT, Warszawa1982.

[62] LUTZ C.M., DAVIS K.R., SUN M., Determining buffer location andsize in productio lines using tabu search, European Journal of Ope-rational Research, 1998, 106, 301-316.

[63] MACCHIAROLI R., MOLE S., RIEMMA S.,Modelling and optimali-zation of industrial manufacturing process subject to no-wait constra-ints, International Journal of Production Research, 37, 1999, 2585-2600.

Page 198: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

192 Literatura

[64] MASCIS A., PACCIARELLI D., Job-shop scheduling with blockingand no-wait constraints, European Journal Operational Research,2002, 143, 498-517.

[65] MAKUCHOWSKI M., Symulowane wyżarzanie w problemie gniazdo-wym z operacjami wielomaszynowymi nierównocześnie wykorzystują-cymi maszyny, W red. Ryszard Knosala: Komputerowo zintegrowanezarządzanie. Tom 2, WNT, Warszawa 2004.

[66] MAKUCHOWSKI M., Wielosposobowy problem gniazdowy z opera-cjami nierównocześnie wykorzystującymi maszyny. Algorytmy Kon-strukcyjne, Raport ICT PWr PRE 18/2004, Materiały konferencjiBOS’2004 (w druku).

[67] MAKUCHOWSKI M., Wielosposobowy problem gniazdowy z opera-cjami nierównocześnie wykorzystującymi maszyny. Algorytm Tabu,Raport ICT PWr PRE 19/2004, Materiały konferencji KKAPD’2004(w druku).

[68] MAKUCHOWSKI M., NOWICKI E., Modele permutacyjno-grafoweproblemów gniazdowych z operacjami wielomaszynowymi, W red. Ja-nusz Kacprzyk i Jan Węglarz: Badania operacyjne i systemowe wobecwyzwań XXI wieku. Modelowanie i optymalizacja. Metody i zastoso-wania, Akademicka Oficyna Wydawnicza Exit, Warszawa 2002.

[69] MAKUCHOWSKI M., NOWICKI E., Algorytm tabu dla problemugniazdowego z operacjami wielomaszynowymi nierównocześnie wy-korzystującymi maszyny, Materiały konferencji KKAPD, Zakopane,2002, Zesz. Nauk. Pol. Śl., Ser. Automatyka, nr 1554, 2002, 287-297.

[70] MAKUCHOWSKI M., NOWICKI E., Operacje wielomaszynowe znierównoczesnym użyciem maszyn w problemie gniazdowym, W redRyszard Knosala: Komputerowo zintegrowane zarządzanie. Tom 2 ,WNT, Warszawa 2002.

[71] MAKUCHOWSKI M., NOWICKI E., Algorytm wyznaczania długo-ści ścieżki krytycznej w grafie modelującym problem gniazdowy z ope-racjami wielomaszynowymi, W red. Ryszard Knosala: Komputerowozintegrowane zarządzanie. Tom 2 , WNT, Warszawa 2003.

[72] MATSUO H., SUH C.J., SULLIVAN R.S., A controlled search simu-lated annealing method for the general jobshop scheduling problem,Working paper 03-04-88, 1988, Graduate School of Business, Univer-sity of Texas, Austin, TX.

[73] MOORE E., F., The shortest path through a maze, w Proc. Int. Symp.on the Theory of Switching, Part II April 2-5, 1957.

Page 199: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Literatura 193

[74] NAWAZ M., ENSCORE Jr. E.E., HAM I., A heuristic algorithm forthe m-machine, n-job flow-shop sequencing problem, OMEGA Inter-national Journal of Management Science, 1983, 11, 91-95.

[75] NEMHAUSER G. L., RINNOOY KAN A. H. G., TODDM. J., Hand-books in operations research and management science, Optimalizationvol.1, North-Holland 1989.

[76] NOWICKI E., Zastosowanie techniki tabu search do harmonogramo-wania elastycznych gniazd produkcyjnych, Zesz. Nauk. Pol. Śl., Ser.Automatyka, 1996, 118, 153-154.

[77] NOWICKI E.,Metoda tabu w problemach szeregowania zadań produk-cyjnych, Oficyna Wydawnicza Politechniki Wrocławskiej, Ser. Mono-grafie 27, Wrocław 1999.

[78] NOWICKI E., Problem przepływowy z ograniczoną liczbą palet. Algo-rytm tabu search, Elektrotechnika, 1997, tom 1, z. 1, 321-328.

[79] NOWICKI E., The permutation flow shop with buffers. A tabu searchapproach, European Journal of Operational Research, 1999, 116, 205-219.

[80] NOWICKI E., Gniazdowy system prodycyjny z ograniczoną liczbą pa-let. Modele i własności, W red. Ryszard Knosala: Komputerowo zin-tegrowane zarządzanie. T. 2, WNT, Warszawa 2002.

[81] NOWICKI E., Algorytm tabu dla problemu gniazdowego z czasamitransportu, Zeszyty Naukowe Politechniki Śląskiej, seria Automatyka,134, 2002, 327- 337.

[82] NOWICKI E., MAKUCHOWSKI M., Krajobraz przestrzeni rozwią-zań problemu gniazdowego, Automatyka 2001 tom. 5 z. 1/2, 449-456.

[83] NOWICKI E., MAKUCHOWSKI M., Metoda wstawień w klasycz-nych problemach szeregowania. Cz. 1. Problem przepływowy, W red.Ryszard Knosala: Komputerowo zintegrowane zarządzanie. T. 2,WNT, Warszawa 2001.

[84] NOWICKI E., MAKUCHOWSKI M., Metoda wstawień w klasycz-nych problemach szeregowania. Cz. 2. Problem gniazdowy, W red. Ry-szard Knosala: Komputerowo zintegrowane zarządzanie. T. 2, WNT,Warszawa 2001.

[85] NOWICKI E., MAKUCHOWSKI M., Pewien algorytm konstrukcyjnydla problemu gniazdowego z operacjami wielomaszynowymi nierówno-cześnie wykorzystującymi maszyny, Automatyka, 2003, tom 7, z. 1/2,199-204.

Page 200: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

194 Literatura

[86] NOWICKI E., SMUTNICKI C., A fast taboo search algorithm for thejob shop problem, Management Science, 1996, 42, 797-813.

[87] NOWICKI E., SMUTNICKI C., A fast taboo search algorithm forthe permutation flow-shop problem, European Journal of OperationalResearch, 1996, 91, 160-175.

[88] NOWICKI E., SMUTNICKI C., Modelowanie ograniczeń buforowa-nia w systemie przepływowym, Elektrotechnika, 1997, tom 1, z. 1,330-336.

[89] NOWICKI E., SMUTNICKI C., New algorithm for the job shop pro-blem, Raport politechniki Wrocławskiej serii: preprinty 62, 2003.

[90] NOWICKI E., TYŃSKI A., Algorytmy konstrukcyjne dla problemugniazdowego z czasami transportu. Komputerowo Zintegrowane Za-rządzanie, tom II, WNT Warszawa 2003, pp. 140-149.

[91] OGBU F.F., SHMITH D.K., The application of the simulated anne-aling algorithm to the solution of the n |m|Cmax flow shop problem,Computer and Operations Research, 1990, 17, 243-253.

[92] OSMAN I.H., POTTS C.N., Simulated annealing for permutationflow shop scheduling, OMEGA International Journal of ManagementScience, 1989, 17, 551-557.

[93] PALMER D.S., Sequencing jobs through a multi-stage process in theminimum total time. A quick method of obtaining near optimum, Ope-rations Research Quarterly, 1965, 16, 101-107.

[94] PAPADIMITRIOU C.H., KANELLAKIS P.C., Flowshop schedulingwith limited temporary storage, Journal of the Association for Com-puting Machinery, 1980, 27, 533-549.

[95] PAPE U., Implementation and Efficiency of Moore-algorithms for theshortest route problem, Math. Prog. 7, 1974, 212-222.

[96] PAPE U., Algorithm 562: shortest path lengths, ACM Trans. Math.Software 5, 1980, str. 450-455.

[97] PAULLI J., A hierarchical approach for the FMS scheduling problem,European Journal of Operational Research, 86, 1995, 32-42.

[98] PESCH E.,Machine learning by schedule decomposition, Working pa-per, 1993, Faculty of Economics and Business Administration, Uni-versity of Limburg, Maastricht.

[99] RAAYMAKERS W., HOOGEVEEN J., Scheduling multipurpousebatch process industries with no-wait restrictions by simulated anne-aling, European Journal of Operational Research, 126, 2000, 131-151.

Page 201: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

Literatura 195

[100] SAHNI S., CHO Y., Complexity o fscheduling shops with no-wait inprocess Mathematics of Operations Research, 4, 1979, 448-457.

[101] SAWIK T., Planowanie i sterowanie produkcji w elastycznych syste-mach montażowych, Warszawa, WNT, 1996.

[102] SCHRAGE L., LINDO: An Optimalization Modeling System, TheScientific Press, San Francisco, 1991.

[103] SCHUSTER Ch.,FRAMIAN J., Approximative procedures for no-wait job shop scheduling, Operations Research Letters, 2003, 31, 308-318.

[104] SMUTNICKI C., Optimization and control in just-in time manufac-turing systems, Prace naukowe Instytutu Cybernetyki TechnicznejPol. Wrocł., Seria Monografie, 1997.

[105] SMUTNICKI C., Algorytmy szeregowania, Akademicka opicyna wy-dawnicza Exit, Warszawa 2002.

[106] SOTSKOV Y.N., STRUSEVICH Y.A., NP-hardnes of shop-scheduling problem with three jobs, Discrete Applied Mathenatics1993.

[107] SYSŁO M. M., NARSINGH D., KOWALSKI J. S., Algorytmy opty-malizacji dyskretnej, PWN, Warszawa 1995.

[108] TAILLARD E., Some efficient heuristic methods for flow shop sequ-encing, European Journal of Operational Research, 1990, 47, 65-74.

[109] TIMKOWSKY V., Polynomial-time-algorithm for Lenstra - RinnooyKan two-machine scheduling problem, Kibernetika 2, 1993, 109-111.

[110] TOCZYŁOWSKI E., Szczegółowe modele zasobów buforowych i trans-portowych zautomatyzowanych gniazd wytwarzania, Prace NaukoweInstytutu Cybernetyki Technicznej Pol. Wroc., Seria Konferencje Nr37, 1990, Wrocław.

[111] TOCZYŁOWSKI E.,Modelling FMS operational scheduling problemsby m-processors, Elektrotechnika, 14, 1995, 429-436.

[112] WANG M.Y., SETHI S.P., SRISKANDARAJAH C., VAN DE VEL-DE S.L., Minimizing makespan in flowshop with pallet requirements,Report of University of Toronto, 1996, Canada.

[113] WIDMER M., HERTZ A., A new heuristic method for the flow shopsequencing problem, European Journal of Operational Research, 1989,41, 186-193.

Page 202: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

196 Rozdział 9. Wnioski

[114] VAESSENS R.J.M., AARTS E.H.I., LENSTRA J.K., Job shop sche-duling by local search, INFORMS Journal on Computing, 1996, 8,302-317.

[115] VALLS V., PEREZ M.A., QUINTANILLA M.S., A tabu search ap-proach to machine scheduling, European Journal of Operational Re-search, 1998, 106, 277-300.

[116] VAN VLIET D., Improwed shortest path algorithm for transportationnetworks, Transportation Res. 12, 1978, 7-20.

[117] VERHOEVEN M.G.A., Tabu search for resource-constrained schedu-ling, European Journal of Operational Research, 1998, 106, 266-276.

[118] YAMADA T., ROSEN B.E., NAKANO R., A simulated annealingapproach to job shop scheduling using critical block transition opera-tions, The 1994 IEEE International Conference on Neural Networks,IEEE, New York, 4687-4692.

Page 203: Problemy gniazdowe z operacjami wielomaszynowymi. Własności i ...

mgr inż. Mariusz Makuchowski

Instytut Cybernetyki TechnicznejPolitechniki Wrocławskiejul. Janiszewskiego 11/1750-372 Wrocław

Niniejszy raport otrzymują:

1. OINT 1 egz.2. Biblioteka Główna PWr. 1 egz.3. Z-ca Dyrektora Instytutu 1 egz.4. Promotor 1 egz.5. Recenzenci 2 egz.6. Zakład Systemów Dyskretnych 1 egz.7. Autor 1 egz.

Razem: 8 egz.

Raport wpłynął do Redakcji ICTw czerwiec 2004 r.