• Nie Znaleziono Wyników

Ocena ruchu

W dokumencie 1.1 Tezy pracy (Stron 104-112)

5.5 Wnioski i uwagi

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 ruchu poprzez bezpośrednie wyliczenie wartości Cmax(v)) wydaje się oczywista i nie będzie dalej rozważana, ze względu na duży nakład obliczeń. Zamiast tego będziemy oceniać ruch poprzez analizę specyficznych dróg w grafie G(α). Wartość Cmax(β) jest ściśle związana z długością najdłuższej drogi przechodzą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 uproszczenia notacji 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.

G(β) przechodzi przez operację j ∈ O jeśli przechodzi przez co najmniej jeden 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 na bazie 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ądochodzą-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 = max{rax + 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) = maxnrα(u+j), max

l∈Mj

ˆrαl(zl− 1))o, (6.9)

Q(z) = maxnqα(uj+), max

l∈Mj

ˆqαl(zl))o; (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), u0 = (0, 0) oraz rα((0, 0)) = qα((0, 0)) = 0. Przypominamy, że u+t (ut ) 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ść operacji j (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; patrz rozdział 4.1.2.

5Jest to czynność operacji j, wykonywana na maszynie l, która będzie wstawiana na pozycję zlw permutacji αl.

6Formalnie wielkości ˆrαl(i)), ˆqαl(i)) powinny być indeksowane przez zestaw z pozycji, na które w kolejności α są wstawiane czynności operacji j. Jednakże dla uprosz-czenia notacji indeks ten pomijamy.

najpóźniej. Symetrycznie uj+ 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 (w grafie G(π(v))) przechodzącej przez operację j, której wszystkie czynności został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 przez operację 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, wynosi8 Rozważmy najpierw przypadek, gdy operacja j nie posiada następnika i poprzednika technologicznego; j+ = 0 i j = 0. Wtedy długość drogi Dz

jest określona przez powyższy wzór redukuje się do postaci

d(Dz) = max

b∈Mj

nmax

a∈Mj

nrβa(za− 1)) − ra(j,a)+ tj− qa(j,b)o+ qβb(zb))o

7Przypominamy, że przez d(w) oznaczamy długość pewnej drogi w traktowanej jako cią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.

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)

= max

b∈Mj

nmax

a∈Mj

nrβa(za− 1)) − ra(j,a)o+ tj+ qβb(zb)) − qa(j,b)o

= max

l∈Mj

nrβl(zl− 1)) − ra(j,l)o+ tj+ max

l∈Mj

nqβl(zl)) − qa(j,l)o.

Uwzględnimy teraz dodatkowo łuki technologiczne. Zauważmy naj-pierw, że łuk technologiczny (u+j, uj ) łą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 , uj+) łączący operację j z następnikiem technologicznym wychodzi z wierzchołka, który ma zerowy ogon qau+

j = 0.

Spostrzeżenie to, wraz z rozumowaniem analogicznym do rozumowania przeprowadzonego na początku dowodu doprowadza nas do ostatecznej po-staci wzoru na długość d(Dz) najdłuższej drogi Dz przechodzącej przez

operację j,

d(Dz) = maxnrβ(u+j), max

l∈Mj

nrβl(zl− 1)) − ra(j,l)oo+ tj + maxnqβ(uj+), max

l∈Mj

nqβl(zl)) − qa(j,l)oo (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α. Dalej pokażę jednak następujące równości:

maxnrβ(u+j), max

l∈Mj

nrβl(zl− 1)) − ra(j,l)oo= R(z), (6.13)

maxnqβ(uj+), max

l∈Mj

nqβl(zl)) − qa(j,l)oo= 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 graf G(β) nie zawiera cyklu o dodatniej długości, to dla każdego wierzchołka w 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 liczby następujących czynności: zastąp nieobciążony łuk, sekwencją: łuk nieobcią-żony, wierzchołek dodatnio obciąnieobcią-ż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 przez czynnoś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 fragmenty Dz = (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 z wierzchoł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. Ponadto droga (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

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) = maxnrβ(u+j), max

l∈Mj

{rβl(zl− 1)) − ra(j,l)}o+ 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 drogi Dzwynika, 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(β), łącznie z 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) ­ max

l∈Mj

nrβl(zl− 1)) − ra(j,l)o. (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, że istniała ona także w grafie G(α). Stąd oraz z rozumowania analogicznego do przeprowadzonego w przypadku (i) wnioskujemy, iż

rβa(za− 1)) = rαa(za− 1)). (6.20)

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ę teraz wzorem

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) ¬ max

l∈Mj

nrβl(zl− 1)) − ra(j,l)o. (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 Dz

wynika natychmiast, że

rβ(j, b) = d(Da,b).

Oczywiste jest, że skoro droga Da,b jest najdłuższą drogą dochodzącą do wierzchoł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 przynajmniej jednej 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) = max

l∈Mj

d(Dl,b) = max

l∈Mj

n− ra(j,l)+ ra(j,b)+ p(j,b)o

= ra(j,b)+ p(j,b). (6.22)

Porównując teraz (6.18) z (6.22) otrzymujemy maxnrβ(u+j), max

l∈Mj

nrβl(zl− 1)) − ra(j,l)oo= 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 π.

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(β) = maxnCmax(α), h(z)o. (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 operacji j 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(α), czyli Cmax(β) = Cmax(α). Co więcej z definicji h(z) (długość pewnej ścieżki w grafie 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ędzie umoż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) = maxnCmax(α), h(z)o (6.25) jest dolnym ograniczeniem długości Cmax(v)) ścieżki krytycznej w grafie G(π(v)); jeżeli kolejność (π(v)) jest dopuszczalna to Cmax(v)) = LB(z), w przeciwnym wypadku Cmax(v)) = ∞. W celu wyliczenia LB(z) dla k róż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ąc już tymi wielkościami oraz dodatkowo wartością Cmax(v0)) dla takiego ruchu v0 = (j, z0), że kolejność π(v0) jest dopuszczalna można łatwo wyeli-minować pewne inne ruchy v = (j, z). Są to ruchy (j, z), z ∈ ZP (j) takie, że Cmax(v0)) ¬ LB(z); ruchy te generują graf G(π(v)) zawierający cykl o dodatniej długości lub długość ścieżki krytycznej w tym grafie nie jest mniejsza niż wcześniej znaleziona dla grafu G(π(v0)). Postępując „tradycyj-nie” należało by wyznaczyć Cmax(v)), v = (j, z) dla k zestawów pozycji z ∈ ZP (j), co wymagało by aż O(k · f (n)) czasu.

W dokumencie 1.1 Tezy pracy (Stron 104-112)