3.3 Modele grafowe operacji wielomaszynowych
4.1.2 Model matematyczny i reprezentacja grafowa
Prezentowany poniżej model permutacyjno–grafowy zbudowany jest na bazie modelu wielomaszynowej operacji z nieprzesuwalnymi czynnościami asynchronicznymi, przedstawionej w rozdziale 3.3.2, oraz na bazie idei mo-delowania ograniczeń technologicznych i kolejnościowych, przedstawionej w rozdziale 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 Nl wykonywanych na maszynie l ∈ M; zbiór wszystkich takich zestawów, zwanych krótko permutacjami, oznaczamy przez Π. Łatwo zauważyć, że dla danej permutacji π ∈ Π, uszeregowanie s(u) 0, u ∈ N jest 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 = minns(v) : v ∈ Njo u ∈ Nj, j ∈ O. (4.3) Warunek (4.1) określa ograniczenia technologiczne omówione w rozdziale 3.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 ogranicze(ogranicze-nia operacyjne 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 klasie tych 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 na poszczególnych maszynach oraz (ii) uszeregowanie pozostało dalej dopuszczalne.
oraz (ii) moment zakończenia wszystkich czynności maxu∈Nsa(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.
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ólne czynności, zbiorem nieobciążonych łuków technologicznych (wynikających z kolejności wykonywania operacji w poszczególnych zadaniach)
ET = [
nieobciążonych łuków kolejnościowych (wynikających z permutacji π)
EK(π) = [
oraz zbiorem obciążonych łuków operacyjnych (odzwierciedlających usta-lone względne położenie czynności poszczególnych operacji)
EO = [ 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ślonymi wzorem (3.16). Łuki technologiczne i kolejnościowe ET ∪ EK(π) zawsze łą-czą czynności różnych operacji zaś łuki operacyjne EO– różne czynności tej samej 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ów technologicznych, 2(n − o) – luków operacyjnych, n − m – łuków kolejno-ściowych; łącznie 3n − o − m − r łuków.
Z definicji grafu G(π) wynika, że zawiera on cykle; długość tych cykli może być dowolna (ujemna, zerowa lub dodatnia). W przypadku kiedy w grafie G(π) nie ma cykli o dodatniej długości, niech rπ(u) (qπ(u)) oznacza wartość najdłuższej drogi dochodzącej do (wychodzącej z) wierzchołka u, łącznie z wagą tego wierzchołka4. 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 uszeregowanie s(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, że s(u), u ∈ N spełnia ograniczenia łukowe dla grafu G(π)5. W szczególności oznacza to, że zestaw s(u), u ∈ Njspełnia ograniczenia łukowe grafu GO(j), j ∈ O. Stąd i z własności 3.1 wynika, iż spełnione są także ograniczenia operacyjne (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 dodatniej dł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łka końcowego, zaś w trzecim – wierzchołka początkowego i końcowego.
5Dla definicji tego pojęcia patrz (3.12).
u ∈ N zgodne z permutacją π. Z założenia (A) wynika, że
x =
k
X
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 łukowe dla ł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łkowi u 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) otrzymamy s(ui) + pui+ wui,ui+1 ¬ s(ui+1), i = 1, . . . , k, . Stąd oraz z (4.9) wynika, że
s(u1) +
k
X
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ższej drogi (ścieżka krytyczna) w grafie G(π) dla permutacji π ∈ Π6. Rozważany problem 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 maszyny M = {1, 2, 3} należy wykonać r = 2 zadania; J = {1, 2}. Zadanie pierwsze składa się z sekwencji o1 = 2 operacji oznaczanych przez 1, 2, zaś zadanie drugie – 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 dodatniej długości, to Cmax(π) =∞.
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ć wykonywane odpowiednio na maszynach: M1 = {1, 2}, M2 = {2, 3}, M3 = {1, 2} oraz M4 = {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, 4 skł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 = S4j=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 podzbiory N1 = {(1, 1), (3, 1), (4, 1)}, N2 = {(1, 2), (2, 2), (3, 2)}, N3= {(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. Z kolei na rys. 4.1(ii) przedstawiono graf G(π). Graf ten składa się z n = 8 wę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 dwa na każdą operację), o − r = 4 − 2 = 2 łuki technologiczne (pomiędzy operacjami 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ści oraz s(u) = rπ(u) − pu, u ∈ N. Przykładowo s((4, 1)) = 7, podczas gdy rπ((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
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
-4 0 2 3,2 3,1
1 3
2,3
łuki operacyjne, łuki technologiczne, łuki kolejno ciowe Cmax = 13 czas
( i )
( ii ) Mj
Rysunek 4.1: Przykład problemu gniazdowego z operacjami wielomaszyno-wymi z grupy II; (i) pseudo-aktywne uszeregowanie dopuszczalne zgodne z permutacją π, (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 π10 = ((3, 1), (4, 1), (1, 1)),
to graf G(α), α1 = π01, α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ów kolejnoś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ści 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)+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 nie istnieje żadne uszeregowanie dopuszczalne zgodne z permutacją α (układ nieró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 jako problem 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ęści tej pracy. Należy tu zauważyć, że jest to jedno z najtrudniejszych zagadnień szeregowania. Klasyczny problem gniazdowy (operacje jednomaszynowe) z ograniczeniami 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+ okdanego 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
X
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.