Problemyprzepływowe Problemy przepływowe należą do jednych z prostszych i często analizowanych modeli systemów produkcyjnych. Poniżej zostanie przedstawiony podstawowy problem przepływowy, permutacyjny problem przepływowy oraz problem przepływowy z ograniczeniami bez czekania. DanyjestzbiórzadańJ ={,,...,n}którenależywykonaćnamaszynachm={,,...,m}.zadaniej J składasięzciąguoperacji (O j,...,o mj ).OperacjaO ij jestwykonywanabezprzerywanianamaszynie iwczasiep ij.zadanienamaszyniei,dlai=,,...,nmożebyćwykonane dopiero po zakończeniu wykonywania zadania na maszynie i. Rozwiązaniem jest harmonogram pracy maszyn reprezentowany przez macierzeterminówrozpoczęcias=(s,...,s n ),gdzies j =(S j,...,s mj ) orazzakończeniazadańc=(c,...,c n ),gdziec j =(C j,...,c mj ).PonieważC ij =S ij +p ij,więcrozwiązaniejestcałkowiciecharakteryzowane przez jedną z tych macierzy. Dla regularnej funkcji celu harmonogram jest dosuniętywlewonaosiczasu,więcmożnagoposzukiwaćwzbiorzetakich rozwiązań. W takiej sytuacji każde rozwiązanie może być jednoznacznie reprezentowane przez kolejność wykonywania zadań na maszynie i, ta zaś z koleijestreprezentowanapermutacjąπ i =(π i (),...,π i (n))elementówze zbioruj.wprzypadku,gdypermutacjeπ i mogąbyćróżnedlaróżnych i, to odpowiedni problem oznaczany jest jako ogólny (F). Jeśli wszystkie permutacjeπ i sątakiesametoproblemokreślanyjestjako permutacyjny (F*). Permutacyjny problem przepływowy Zakładając, że znana jest kolejność wykonywania zadań(określona przez permutacjęπ=(π(),...,π(n))nazbiorzej)wpermutacyjnymproblemie przepływowym, terminy zakończenia wykonywania zadań można wyznaczyć na postawie następujących warunków: C iπ(j) S iπ(j+),j=,...,n,i=,...,m, () C ij S i+j,i=,...,m,j=,...,n, () które prowadzą do następującego wzoru rekurencyjnego C iπ(j) =max{c iπ(j ),C i π(j) }+p iπ(j),j=,...,n, () liczonegodlai=,...,m,gdzieπ(0)=0,c i0 =0,i=,...,m,C 0j =0, j=,...,n.wprzypadkubardziejzłożonychanaliz(dowodzeniewłasności)
używa się rownoważnej nierekurencyjnej postaci wzoru C iπ(j) = max i j 0 j i... j i j s= j s t=j s p sπ(t). () W przypadku problemów F* z kryterium minimalizacji długości uszeregowaniaposzukiwanajestpermutacjaπ Π,dlaktórej gdziec max (π)=c mπ(n). Model grafowy C max (π )=min π Π C max(π), (5) Dladanejpermutacjiπ ΠmożnastworzyćgrafG(π)=(M N,E 0 E ), wktórymm={,...,m},n={,...,n}. 5 6 n- n zadania m maszyny Rysunek : Graf G(π). n E 0 = m j=i= jest zbiorem technologicznych krawędzi pionowych, zaś m E = n i=j= {((i,j),(i+,j))}, (6) {((i,j),(i,j+))}, (7)
jest zbiorem sekwencyjnych krawędzi poziomych. Wszystkie krawędzie w grafieg(π)mająwagęzero.obciążeniekażdegowęzła(i,j)wynosip iπ(j).czas zakończeniazadaniaπ(j),j=,...,n,namaszyniei,i=,...,m,odpowiada długości najdłuższej ścieżki prowadzącej z węzła(0, 0) do węzła(i, j), wrazzobciążeniemtegowęzła.wprzypadkuproblemuf C max wartość funkcji celu dla danego π jest równa długości ścieżki krytycznej w grafie G(π). Metodyprzybliżone MetodaprzybliżonaAdostarczapewnegorozwiązaniax A bliskiegooptymalnemu,toznaczytakiegorozwiązania,dlaktóregowartośćfunkcjiceluk(x A ) niewieleróżnisięodwartościoptymalnejk(x ).Metodprzybliżonychjest znacznie więcej niż dokładnych, są one zwykle zorientowane na problem, który rozwiązują. Jakość metody przybliżonej ocenia się na podstawie złożoności obliczeniowej algorytmu oraz dokładności przybliżenia.. Błądprzybliżenia Niech Z będzie konkretnym przykładem badanego problemu optymalizacyjnego, X(Z) zbiorem wszystkich rozwiązań problemu dla tego przykładu, a K(x; Z) wartością funkcji celu dla rozwiązania x w konkretnym przykładzie. Rozwiązaniex X(Z),dlaktóregoK(x ;Z)=min x X(Z) K(x;Z)jestnazywanerozwiązaniemoptymalnymdlaprzykładuZ.Niechx A X(Z)będzie rozwiązaniem przybliżonym uzyskanym przez algorytm A dla przykładu Z. Jako błąd przybliżenia algorytmu A można przyjąć jedną z wielkości[] B A (z)= K(x A ;Z) K(x ;Z), (8) S A (Z)=K(x A ;Z)/K(x ;Z), (9) T A (Z)= K(xA ;Z) K(x ;Z), (0) K(x ;Z) U A (Z)= K(xA ;Z) K(x ;Z). () K(x A ;Z) WartościbłędówT A iu A niemogąbyćwyznaczonewprzypadkugdywartość mianownika jest równa zero.
. Technikawcięć Algorytm NEH oparty na technice wcięć jest do chwili obecnej najlepszym przybliżonymalgorytmemkonstrukcyjnymdlaproblemuf C max.algorytm ten składa się z n-krokowej fazy zasadniczej poprzedzonej fazą wstępną. Poniżej został przedstawiony przebieg algorytmu NEH. Krok.Uporządkujzadaniazgodnieznierosnącymiwartościami m i= p ij (zadanie pierwsze ma największą wartość sumy). Krok.Weźdwapierwszezadaniaiuporzadkujjetak,abywartośćC max dla tych dwóch zadań była najmniejsza. Krok.Dlak=donpowtarzajkrok. Krok.Wstawk-tezadanienajednozkmożliwychmiejsctakabywartość C max dlapermutacjiczęściowejbyłajaknajmniejsza. ZłożonośćkrokuwynosiO(nlog(n)),adlakrokujestO(m).Żebywyznaczyć jeden czas zakończenia wykonywania wszystkich zadań w kroku potrzebne jest O(km) operacji. Zatem złożoność obliczeniowa klasycznego algorytmunehwynosio(n m).możliwejestjednakzredukowaniezłożoności obliczeniowej algorytmu NEH, postępując w kroku w sposób opisany przeztaillardawpracy[6].niechm i oznaczawartośćc max powstawieniu zadania k na i-te miejsce. ()Wyznacznajwcześniejszyczaszakończeniae ij i-tegozadanianaj-tej maszynie(rysunek a), e ij =max{e i,j,e i,j }+p ij, () i=,...,k,j=,...,m, e 0j =0,e i0 =0. ()Wyznaczkoniecq ij,tzn.czasmiędzyrozpoczęciemi-tegozadaniana j-tej maszynie, a zakończeniem wszystkich operacji(rysunek b), q ij =max{q i,j+,q i+,j }, () i=k,...,,j=m,...,, q kj =0,q i,m+ =0.
e a) e q b) q f q c) 5 5 f q Rysunek : Ilustracja działania algorytmu: wstawienie piątego zadania na trzecią pozycję. ()Wyznacznajwcześniejszyczaszakończeniaf ij naj-tejmaszyniedla zadania k wstawionego na i-tą pozycję(rysunek c), f ij =max{f i,j,e i,j }+p kj, () i=,...,k,j=,...,m, f i0 =0. ()WartoścczasuzakońzceniawykonywanazadańM i pododaniuzadania 5
k na i-tej pozycji wynosi M i =max{f ij,q ij }, (5) i=,...,k,j=,...,m. Wszystkie opisane wyżej kroki mogą być wykonane w czasie O(km). W rezultacie, krok algorytmu NEH ma złożoność O(km). Zastosowanie powyższego algorytmu pozwala zatem zredukować złożoność obliczeniową algorytmu NEHdoO(n m).. Poszukiwanie z zabronieniami(tabu search) Metoda ta została zaproponowana przez Glovera[] w 989 r. Tabu search (TS) jest modyfikacją metody lokalnych poszukiwań. W podstawowej wersji metoda TS rozpoczyna swe działanie od pewnego rozwiązania początkowego x 0 X.WelementarnymkrokutejmetodyzostajeprzeszukanecałesąsiedztwoN(x i )rozwiązaniax i.sąsiedztwojestdefiniowaneprzezruchyktóremożnawykonaćzx i.celemtegoposzukiwaniajestznalezieniewn(x i+ ) rozwiązania z najmniejszą wartością funkcji celu K(x). Proces poszukiwania jest kontynuowany od najlepszego znalezionego rozwiązania. W celu zapobieżenia cyklicznego powtarzania się rozwiązań, zatrzymania w ekstremum lokalnym oraz aby skierować poszukiwania w obiecujące obszary rozwiązań wprowadzono pamięć historii poszukiwań w postaci listy zabronień(tzw. listy tabu). Na liście tej przechowywana jest określona liczba ostatnio odwiedzanych rozwiązań(rozwiązania bazowe). Rozwiązania te nie są pamiętane bezpośrednio, ale w postaci pewnych ich atrybutów. Powoduje to, że zabronienia z nich wynikające w danej iteracji dotyczą także rozwiązań, które nie były dotychczas rozwiązaniami bazowymi. W celu osłabienia tej restrykcji określana jest dodatkowo dla zabronionego rozwiązania pewną funkcję aspiracji. Jeśli wartość tej funkcji jest mniejsza od zadanego poziomu, to rozwiązania nie traktuje się jako zabronionego. W trakcie wykonywania kolejnych iteracji pamiętane jest najlepsze znalezione rozwiązaniex TS wsensiewartościfunkcjiceluorazodpowiadającąmuwartośćtej funkcji. Poszukiwanie zatrzymuje się w chwili zadziałania odpowiednich warunków stopu. Podsumowując, do podstawowych elementów metody tabu można zaliczyć: ruch: funkcja, która przekształca jedno rozwiązanie w drugie, sąsiedztwo: zbiór rozwiązań możliwych do uzyskania z ustalonego rozwiązania za pomocą klasy ruchów, 6
rozwiązanie początkowe: rozwiązanie od którego algorytm rozpoczyna działanie, lista tabu: lista, na której zapisywane są atrybuty ruchów lub rozwiązań dla ustalonej liczby ostatnio rozpatrywanych rozwiązań, kryterium aspiracji: warunki, przy których w kolejnym kroku algorytmu można użyć rozwiązania zabronionego, warunek zakończenia: sytuacja, w której algorytm kończy swoje działanie np.() wykonana została założona z góry liczba iteracji,() zakończył się czas przeznaczony na działanie algorytmu,() w kolejnych iteracjach wartość funkcji celu nie uległa zmianie.. Ruchy i sąsiedztwo W analizowanym problemie rozwiązaniem jest permutacja π. Sąsiedztwo permutacji π może być stworzone poprzez zbiór ruchów. Niech Π oznacza zbiór wszystkichpermutacjizbioruzadańj,πdowolnerozwiązanieπ Π,aN(π) jego otoczeniem, czyli zbiorem wszystkich możliwych permutacji wygenerowanych z permutacji π za pomocą zbioru ruchów. Najczęściej stosowane są trzy rodzaje ruchów: (i) wymiana par przyległych(api), (ii) wymiana par dowolnych(npi), (iii) technika przenoszenia i wstawiania(ins). Wymianaparprzyległych(API).Oznaczającprzezπ permutacjęotrzymanązπwwynikuzamianyparprzyległychnapozycjachiii+( i n )uzyskujesięzpermutacji permutację π=(π(),π(),...,π(i),π(i+),...,π(n)) π =(π(),π(),...,π(i+),π(i),...,π(n)). Otoczenie API zawiera n permutacji. Wymiana par dowolnych(npi). Po zastosowaniu zamiany na pozycjach iik( i,k n)zpermutacji π=(π(),π(),...,π(i),...,π(k),...,π(n)) 7
otrzymuje się permutację π =(π(),π(),...,π(k),...,π(i),...,π(n)). OtoczenieNPIzawiera n(n ) permutacji. Technika przenoszenia i wstawiania(ins). Dowolna permutacja z otoczenia N(π) powstaje z permutacji π poprzez wyjęcie pewnego elementu π z pozycjii,anastępniewstawieniegotakabyzajmowałonpozycjekwnowej permutacji. Po zastosowaniu takiej techniki z permutacji π=(π(),π(),...,π(i ),π(i),π(i+),...,π(k ),π(k),π(k+),...,π(n)) otrzymuje się permutację π =(π(),π(),...,π(i ),π(i+),...,π(k ),π(k),π(i),π(k+),...,π(n)). OtoczenieINSzawiera(n ) permutacji. Taillard[6]pokazał,żeruchy(iii)sąlepszeodruchów(i)i(ii)zarówno pod względem jakości otrzymanego uszeregowania jak i złożoności obliczeniowej przeglądania sąsiedztwa wygenerowanego za pomocą tego typu ruchów. Dlatego też w dalszych rozważaniach będą brane pod uwagę tylko ruchy(iii). Niechυ = (a,b)będzieparąpozycjia,b {,...,n},a bw permutacjiπ.nowapermutacjaπ υ uzyskanazπpoprzezusunięciezadania π(a)zpozycjiaiumieszczeniugonapozycjibdefiniowanajestwnastępujący sposób π υ =(π(),...,π(a ),π(a+),...,π(b),π(a),π(b+),...,π(n)),dlaa<b i π υ =(π(),...,π(b ),π(a),π(b+),...,π(a ),π(a+),...,π(n)),dlaa>b. Każdaparaυ =(a,b)definiujeruchzπ,niechubędziezbioremtakichpar. Sąsiedztwo permutacji π generowane poprzez zbiór ruchów U jest oznaczane przezn(u,π) = {π υ :υ U}.Największesąsiedztwomożnawygenerować zapomocązbioruruchówv ={(a,b):b/ {a,a},a,b {,...,n}}. Należyzauważyć,żedlaa,btakichże a b =dwaruchyυ = (a,b) iυ = (a,b)dajątąsamąpermutacjęπ υ =π υ (takieruchysąnazywane ruchami równoważnymi). Żeby uniknąć nadmiarowości V zawiera dokładnie jeden ruch z każdej pary równoważnych ruchów. N(V, π) posiada (n ) sąsiadówispełniawłasnośćstyczności(connectivityproperty):dla dowolnegorozwiązaniapoczątkowegoπ () Πistniejeskończonatrajektoria poszukiwańπ (),π (),...,π (r) taka,żeπ (r) jestoptymalnymrozwiązaniemi π (i+) N(V,π (i) ),i=,...,r. 8
.5 Listatabu Lista tabu jest jednym z mechanizmów zapobiegania występowania cykli w procesie poszukiwań. Wśród aplikacji TS dla problemu przepływowego opisywanych w literaturze można znaleźć wiele różnych elementów pamiętanych na liście tabu: parę później odwiedzanych permutacji[], wartość funkcji celu dla odwiedzanej właśnie permutacji[6], zadanieijegopozycje[6], paręzadańiichpozycje[7]. W praktyce dobór elementów pamiętanych na liście tabu zależy od inwencji projektanata algorytmu. Poniżej została przedstawiona konstrukcja listy tabuwoparciuopracę[5]. NiechT=(T,...,T maxt )będzielistątabuodanejdługościmaxt,gdzie T j =(g,h)jestparązadań.listatabujestinicjalizowanaelementemzerowymt j =(0,0),j=,...,maxt.Niechυ=(a,b)będzieruchemwykonywanym z permutacji π. Ruch ten otrzymuje status ruchu zabronionego i zostaje dodany do listy T w następujący sposób: elementy listy są przesuwane o jedna pozycjęwlewo,tzn.wykonywanesąoperacjet j =T j+,j=,...,maxt, anastępnie T maxt =(π(a),π(a+))jeślia<b i T maxt =(π(a ),π(a))jeślia b. Oznaczato,żeruchυ=(a,b)zpermutacjiβniemożezostaćwykonany (posiadastatustabu)jeśliconajmniejjednapara(β(j),β(a)),j=a+,...,b jestnaliścietdlaa<b,iconajmniejjednapara(β(a),β(j)),j=b,...,a jestnaliściet,wprzeciwnymprzypadku. Długość listy tabu ma zasadniczy wpływ na jakość rozwiązań otrzymanych przez algorytm TS. Zbyt krótka lista tabu powoduje, że generowane są identyczne ciągi rozwiązań bazowych, algorytm wpada w cykl obliczeniowy. Natomiast zbyt długa lista zabronień powoduje usunięcie z otoczenia dużej ilości rozwiązań co powoduje pogorszenie średniej jakości rozwiązań, z których wybierane jest rozwiązanie bazowe i ostatecznie zmniejsza szanse na znalezienie dobrych rozwiązań. Długość listy zabonień jest wyznaczana eksperymentalnie. 9
.6 Poziomaspiracji Zapisanie na liście atrybutów rozwiązań i ruchów, a w konsekwencji traktowanie pewnych ruchów jako zabronionych ma oprócz oczywistych zalet także pewną wadę. Postępowanie takie może doprowadzić do zabronienia wykonania ruchu, który jednak jest interesujący z punktu widzenia dalszych poszukiwań. Na przykład prowadzi bezpośrednio lub pośrednio(po wykonaniu kilku iteracji) do rozwiązań bazowych o wartości funkcji celu mniejszej niż dotychczas znaleziona. W celu uniknięcia tej wady wprowadza się funkcję aspiracji ruchu oraz poziom aspiracji do zabronienia. Jeżeli dany ruch jest zabroniony, ale wartość jego funkcji aspiracji jest mniejsza niż poziom aspiracji do zabronienia, to ruch ten traktuje się jako ruch niezabroniony. W celu dokładnego przedstawienia ogólnie zarysowanej idei postępowania należy wprowadzić pewne pojęcia i oznaczenia(zgodnie z pracą[]). Niech fa(υ,x)oznaczawartośćfunkcjiaspiracjidlaruchuυ,υ V(x)(gdzieV(x) jest zbiorem ruchów) z rozwiązania bazowego x, a pa(i) poziom aspiracji dla zabronienia w i-tej iteracji poszukiwań. Definicja(Nowicki[])Ruchυ V(x i )wi-tejiteracjiposzukiwańjest nazywany ruchem perspektywicznym, jeżeli fa(υ,x i )<pa(i). (6) Z ruchu zabronionego, który jest perspektywiczny jest zdejmowane zabronienie, tzn. ruch ten będzie traktowany jako niezabroniony. Zgodnie z pracą[] jako wartośc funkcji aspiracji ruchu υ z rozwiązania x została przyjęta fa(υ,x)=c(x υ ). (7) Badania testowe przeprowadzone przez autora pracy[] pokazały, że najbardziej skuteczne są następujące postacie poziomów aspiracji do zabronienia: oraz gdzie pa (i)=min 0 g i c(xg ) (8) pa (i)=min( min g F(i)\{0} c(xg ), min g F(i)\{i} c(xg+ )), (9) F(i)={0 g i:c(x g )=c(x i )}. (0) Drugą postać można stosować tylko w sytuacji, gdy wartość funkcji celu jest liczbą całkowitą. Jest to typowa sytuacja w problemach harmonogramowania zadań. Zbiór F(i) określa numery wykonanych iteracji, w których 0
wartości funkcji celu dla rozwiązań bazowych są identyczne i równe wartości funkcji celu dla rozwiązania bazowego z aktualnie wykonywanej iteracji i. Pierwszy człon w funkcji min z(9) jest minimalną wartością funkcji celu,zktórejwjednejiteracjinastąpiłoprzejściedowartościc(x i )wtrakcie przeprowadzonego już procesu poszukiwań. Drugi człon jest symetryczny i określa minimalną wartość funkcji celu, do której nastąpiło bezpośrednie(w jednejiteracji)przejściezwartościc(x i ). Literatura [] W. Bożejko Równoległe algorytmy szeregowania zadań produkcyjnych, Praca doktorska, Wrocław 00. [] M. Dell Amico, M. Trubian, Applying Tabu-Search to the Job-Shop Scheduling Problem, Annals of Operations Research, 99, -5. []F.Glover,TabuSearch.PartI,ORSAJournalofComputing,989, 90-06. [] E. Nowicki, Metaoda tabu w problemach szeregowania zadań produkcyjnych, Prace Naukowe ICT PWr, Seria Monografie, 999. [5] E. Nowicki, C. Smutnicki, A fast tabu search algorithm for the permutation flow-shop problem, European Journal of Operational Research 9, 996, 60-75. [6] E. Taillard, Some efficient heuristic methods for the flow shop sequencing problem, European Journal of Operational Research 7, 990, 65-7. [7]M.Widmer,A.Hertz,Anewheuristicmethodfortheflowshopsequencing problem, European Journal of Operational Research, 989, 86-9.