SŁAWOMIR HERMA sherma@ath.bielsko.pl Wydział Budowy Maszyn i Informatyki, Katedra Inżynierii Produkcji Akademia Techniczno-Humanistyczna w Bielsku-Białej ul. Willowa 2, 43-309 Bielsko-Biała ZAGADNIENIE HARMONOGRAMOWANIA ŚRODKÓW PRODUKCJI W UKŁADZIE DRZEWA, W KONTEKŚCIE TWORZENIA MODELI CYFROWEJ FABRYKI Streszczenie: W artykule przedstawiono model matematyczny zagadnienia harmonogramowania gniazda produkcyjnego o drzewiastym układzie środków produkcji. Wykorzystano metodę programowania wieloetapowego celem znalezienia optymalnego uszeregowania zadań dla tego układu. Zaproponowano możliwość wykorzystania przedstawionego rozwiązania, jako elementu wspomagającego projektowanie wybranych modeli cyfrowej fabryki. Celem weryfikacji użyteczności opracowanego rozwiązania, zaimplementowano go w postaci systemu komputerowego i przedstawiono przykładowe rezultaty obliczeń. Słowa kluczowe: harmonogramowanie, programowanie wieloetapowe, model cyfrowej fabryki. 1. Wprowadzenie i identyfikacja deficytu badawczego Pojawiające się od pewnego czasu i oferowane przedsiębiorstwom systemy klasy PLM (ang. Product Lifecycle Management) składają się z szeregu zintegrowanych modułów, z których każdy odpowiedzialny jest za pewien ściśle wyznaczony obszar, począwszy od koncepcji produktu, przez jego projektowanie i produkcję, aż po obsługę serwisową. Najbardziej jednak interesującym, z punktu widzenia niniejszego opracowania, są te składniki systemów PLM, które służą do graficznego, wizualnego modelowania środków produkcji oraz do symulacji funkcjonowania stworzonych z nich struktur. Rezultatem bardzo
30 Sławomir Herma niekiedy żmudnych prac nad powstaniem cyfrowej hali, linii, czy pojedynczego gniazda, jest model pozwalający ujawnić sposób pracy takiego układu w czasie rzeczywistym, i dający możliwość jego wielostronnych i wieloprzekrojowych analiz. Tego rodzaju działania podejmowane są przede wszystkim po to, by już na etapie koncepcji systemu produkcyjnego, zanim nastąpi jego budowa, wdrożenie i uruchomienie, móc przewidzieć, ustalić, zaplanować, przetestować, ocenić i dokonać ewentualnych korekt w zakresie wszystkich jego składników. Idea ta doskonale wpisuje się więc w filozofię cyfrowej fabryki (and. Digital Factory), i stale przekłada się na coraz nowsze i doskonalsze systemy informatyczne przeznaczone zwłaszcza dla dużych firm produkcyjnych [1, 2, 7]. W tym rozumieniu, kluczowym warunkiem dla pełnego osiągnięcia zaplanowanych celów strategicznych i operacyjnych przedsiębiorstwa wykorzystującego systemy klasy PLM, wydaje się posiadanie szeregu modeli cyfrowych, zwłaszcza takich, które wiernie oddają rzeczywistość produkcyjną oraz umożliwiają, przy częstych zmianach wybranych warunków brzegowych, relatywnie szybkie otrzymanie wymiernych rezultatów w postaci gotowych symulacji, harmonogramów itp. W zależności od zakresu w jakim poddawany jest wirtualizacji system produkcyjny przedsiębiorstwa, stopnia jego złożoności, liczby składników oraz innych (dotyczących szczególnych uwarunkowań produkcyjnych danego przedsiębiorstwa) czynników, problem uzyskania w czasie rzeczywistym (lub dopuszczalnym) żądanych harmonogramów, marszrut technologicznych, planów pracy itp. czyli efektów prowadzonych symulacji, staje się poważny. Zależy on nie tylko od potencjału posiadanych komputerów, ale również od wykorzystywanych algorytmów obliczeniowych, których efektywność wydaje się być głównym determinantem sukcesu. Zatem wynika stąd potrzeba poszukiwania takich metod obliczeniowych, których stopień złożoności pozwoli z jednej strony na uzyskanie rezultatów obliczeń w czasie relatywnie dopuszczalnym, z drugiej zaś na uzyskanie nie tylko rozwiązań dopuszczalnych, lecz optymalnych (bądź bardzo do nich zbliżonych). 2. Definicja zagadnienia, dane wejściowe Zagadnienie harmonogramowania środków produkcji w układzie drzewa należy do zadań typowych z uwagi na bardzo częste występowanie tej konfiguracji w praktyce produkcyjnej [3, 4, 6].
Zagadnienie harmonogramowania środków produkcji 31 Niech będzie dane pojedyncze gniazdo produkcyjne w układzie drzewa, rozumiane jako grupa środków produkcji, realizująca jedną lub kilka określonych operacji technologicznych na pewnym zbiorze przedmiotów produkcji (elementów, części podzespołów, modułów itp.), w ramach pewnej marszruty technologicznej. System o strukturze drzewa składa się z dwóch podsystemów. W pierwszym występuje jeden środek produkcji (maszyna, urządzenie, procesor, agregat), który wstępnie przetwarza wszystkie elementy czekające na wejściu. Następnie elementy te są rozdysponowane do maszyn w podsystemie drugim. Każdy element jest przetwarzany dokładnie przez jeden agregat podsystemu drugiego, po czym kierowany do wyjścia. Zakłada się, że zarówno elementy jak i środki produkcji są niejednorodne, tj. każdy z nich może posiadać inne parametry. Dla każdego elementu znany jest czas jego obsługi w każdym urządzeniu (maszynie) systemu, znana jest chwila dostępności oraz żądana chwila opuszczenia systemu. Rozwiązanie problemu optymalizacyjnego polega więc na znalezieniu takiego harmonogramu (kolejności) przydziału poszczególnych elementów do badanego układu, który będzie minimalizować spóźnienie (tzn. różnicą pomiędzy rzeczywistą chwilą opuszczenia systemu, a żądaną) dla każdego z obsługiwanych elementów. I podsystem II podsystem A A1 A 1... A A0 0 Amm... A AMM Rys. 1. Schemat badane układu drzewa Niech będzie dany zbiór elementów podlegających obsłudze w harmonogramowanym układzie: Ω = { ω n} n = 1,..., N (1) gdzie: n oznaczenia tych elementów, a N - numer ostatniego elementu zbioru.
32 Sławomir Herma Dla każdego elementu znany jest czas obsługi w każdym ze środków produkcji należących do systemu (mierzony w dowolnie przyjętych jednostkach np. [s]), podany w postaci wektora: Θ= [ ϑ m, n] m= 0,1,..., M n= 1,..., N (2) gdzie: n oznacza numer elementu, a m - numer środka produkcji (maszyny) w harmonogramowanym układzie. Przyjmuje się ponadto założenie, że pojedynczy element może podlegać obróbce na dowolnie wybranej maszynie podsystemu drugiego pod warunkiem, że przyznane jej zostały odpowiednie uprawnienia (patrz dalej). Ponieważ gniazdo produkcyjne jest jednym z wielu składowych nadrzędnego systemu wytwarzania, jest więc zdeterminowane harmonogramem swych poprzedników. Stąd poszczególne elementy zbioru Ω posiadają różne chwile dostępności wynikające z różnych chwil zakończenia operacji technologicznych realizowanych na wcześniejszych etapach procesu wytwarzania. Oznacza to, że rozpoczęcie obsługi wybranego elementu w badanym układzie nie może nastąpić wcześniej, niż określa to jego dostępność. Wektor chwil dostępności poszczególnych elementów jest więc kolejnym źródłem danych wejściowych w opisywanym modelu: Φ = [ ϕ n] n = 1,..., N (3) Podobnie, realizacja dalszych czynności wynikających z przyjętej w systemie wytwarzania marszruty technologicznej, wymusza niejako konieczność wypuszczenia obsłużonych już elementów z badanego gniazda w określonych chwilach. Są to chwile deklarowane, przechowywane w kolejnym wektorze: Ψ= [ ψ n] n = 1,..., N (4) Każdy element zbioru Ω po przejściu przez pierwszy podsystem (wspólny dla wszystkich elementów), zostaje skierowany do jednego ze środków produkcji znajdujących się w drugim podsystemie (o konfiguracji równoległej). Teoretycznie może to być każde urządzenie tam się znajdujące, jednak w praktyce zawsze istnieją pewne ograniczenia, które mogą uniemożliwiać obróbkę elementu na jednym lub kilku z nich (np. niewystarczające kwalifikacje pracownika, nieodpowiednie wyposażenie w narzędzia, itp.). Stąd przyjmuje się tzw. macierz uprawnień obsługi elementów na poszczególnych maszynach jako:
Zagadnienie harmonogramowania środków produkcji 33 w której pojedynczy element u m, n U = [ u ] = m, n m 1,..., M n= 1,..., N 1, ωn Am = 0, w przeciwnym wypadku (5) (6) Z uwagi na fakt, że zarówno same obrabiane (obsługiwane) elementy, jak i środki produkcji badanego układu są niejednorodne (tzn. mogą posiadać odmienne parametry charakterystyczne), dużego znaczenia, w kontekście wiernego odwzorowania rzeczywistości produkcyjnej, nabiera konieczność uwzględnienia czasów przezbrojeń. Wielkości te przechowywane są w macierzach przezbrojeń postaci: m Τ = [ ] m τ k, n k= 1,..., κ m,..., N n= 1,..., κ,..., N m (7) Każda z macierzy odpowiada pojedynczemu urządzeniu badanego układu i opisuje jemu tylko przynależne czasy przezbrojeń pomiędzy dwoma dowolnymi elementami zbioru Ω. Wybór właściwych wartości czasów przezbrojeń w trakcie procesu harmonogramowania układu, wymaga dodatkowej informacji o numerze ostatniego obsługiwanego na każdym urządzeniu elementu. Odpowiada za to wektor postaci: Κ = [ ] κ m m= 1,..., M (8) Ponadto, realizacja zadanej marszruty technologicznej procesu produkcyjnego zakłada istnienie określonych zależności kolejnościowych w obsłudze poszczególnych elementów. Przekłada się to na ograniczenia typu poprzednik następnik nakładane na przetwarzane (obsługiwane) w badanym układzie elementy. Należy przy tym zaznaczyć, że zależności te mogą, lecz nie muszą być brane pod uwagę w procesie harmonogramowania układu, a decyzje o tym podejmuje osoba odpowiedzialna za przeprowadzanie symulacji. W każdym razie jednak, informacje powyższe również stanowią podstawowe dane wejściowe dla opisywanego modelu i przechowywane są w macierzy postaci: Γ= γ ν, n ν, n = 1,..., N (9)
34 takiej, że: Sławomir Herma (10) Jest to zatem macierz binarna, w której wartość 1 umieszczana jest na przecięciu ν-tego wiersza i n-tej kolumny i oznacza, że element ω i jest poprzednikiem ω k W przypadku gdy zależność taka nie występuje wpisywana jest wartość 0. Należy podkreślić, że macierz powyższą można interpretować w dwojaki sposób. Może ona bowiem wyrażać zależności bezpośrednie lub pośrednie pomiędzy poszczególnymi elementami zależnie od potrzeby. ω1 ω2 ω3 ω4 γ ν, n ω1 ω2 ω3 ω4 0 0 1 1 0 0 0 0 0 0 0 1 1 ων ωn = 0 w przeciwnym wypadku W przypadku pierwszym zależność bezpośrednia oznacza natychmiastowe wzajemne następstwo elementów jednego po drugim, w kolejnym zaś jedynie informację, że element będący następnikiem może zostać obsłużony w badanym układzie nie wcześniej niż jego poprzednik, przy czym pomiędzy nimi dopuszczalne jest istnienie dowolnej wielkości interwału czasowego (w którym może być dokonana obsługa innych elementów). Wybór jednej z tych możliwości jest uzależniony od złożoności i charakterystyki realizowanego procesu technologicznego. Z definicji macierzy wynika bezpośrednio fakt, że jeśli będzie ona zawierać wyłącznie wartości 0 żadna para elementów nie podlega związkom współzależności kolejnościowej. W skrajnym, przeciwnym przypadku, poprzez odpowiednie umieszczenie wartości 1 w macierzy poprzedników i następników, można określić marszrutę technologiczną (obsługi elementów) w sposób jednoznaczny, nie pozostawiając żadnych alternatywnych dróg przebiegu procesu (ale wówczas zadanie optymalizacyjne przestaje istnieć). Należy ponadto mieć na uwadze zagadnienie niesprzeczności macierzy, czyli obowiązek takiego jej określenia (wypełnienia informacjami), by wymuszone układy kolejności pomiędzy poszczególnymi elementami wzajemnie się nie wykluczały.
Zagadnienie harmonogramowania środków produkcji 35 3. Podstawowe warunki dopuszczalności rozwiązań Poszukiwanie rozwiązania optymalnego, z uwagi na jego kombinatoryczny charakter, będzie realizowane metodą programowania wieloetapowego opisywanego już w literaturze [5, 6, 8]. Zatem otrzymywane w trakcie procesu decyzyjnego pewne rozwiązania cząstkowe będą w pierwszej kolejności podlegać weryfikacji z punktu widzenia dopuszczalności, by późniejsze rozwiązania końcowe kwalifikować (zgodnie z opisanym dalej kryterium) jako optymalne lub nie. Uzyskanie rozwiązania dopuszczalnego jest zatem możliwe po spełnieniu szeregu poniższych warunków: wszystkie elementy należące do zbioru Ω muszą zostać obsłużone w badanym układzie, tzn.: M U Ω m \ Ω = m= 0 (11) gdzie: Ω m jest zbiorem elementów obsłużonych w urządzeniu m. nie można rozpocząć obsługi dowolnego elementu ω n wcześniej, niż określa to jego chwila dostępności ϕ n: ρ ϕ 0,n n (12) gdzie: ρ 0,n jest chwilą rozpoczęcia obsługi elementu ω n na urządzeniu A 0 (tzn. w pierwszym podsystemie). przyjmuje się, że chwila zakończenia obsługi elementu ω n w pierwszym podsystemie (tzn. w urządzeniu A 0) wyznaczana jest jako suma chwili rozpoczęcia tej obsługi ρ 0,n i czasu jej trwania ϑ 0,n: t = ρ + ϑ 0, n 0, n 0, n (13) chwila rozpoczęcia obsługi elementu ω n w drugim podsystemie (o układzie równoległym) nie może być wcześniejsza niż chwila zakończenia obsługi tego elementu w podsystemie pierwszym: ρ t m, n 0, n (14)
36 Sławomir Herma nie można przydzielić elementu ω n do określonego urządzenia w drugim podsystemie, jeżeli nie posiada ono uprawnień do jego obsługi: u, 1 m m n = ωn Ω (15) przyjmuje się, że chwila zakończenia obsługi elementu ω n w drugim podsystemie (tzn. w jednym z urządzeń A m) wyznaczana jest jako suma chwili rozpoczęcia tej obsługi ρ m,n i czasu jej trwania ϑ m,n: t = ρ + ϑ m, n m, n m, n (16) 4. Kryterium optymalizacji harmonogramu Uzyskanie w trakcie procesu decyzyjnego zbioru harmonogramów dopuszczalnych stanowi podstawę poszukiwania rozwiązania optymalnego z punktu widzenia przyjętego kryterium. W opisywanym przypadku kryterium to polega na minimalizacji maksymalnego opóźnienia obsługi elementów w badanym układzie tzn.: 1 n N ( m, n n) Q= max t ψ min (17) Opóźnienie to jest wyznaczane jako różnica pomiędzy rzeczywistą, a deklarowaną chwilą zakończenia obsługi elementu ω n. Zatem spośród wszystkich harmonogramów dopuszczalnych należy znaleźć taki, w którym sumaryczne opóźnienie obsługi wszystkich elementów jest najmniejsze. 5. Model procesu decyzyjnego Matematyczny opis modelowanego zagadnienia wymaga określenia definicji harmonogramu pracy urządzeń (maszyn, procesorów) w układzie drzewa. Wiedząc, że układ ten składa się z dwóch podsystemów, opis przebiegu obsługi dowolnego elementu ω n przedstawia się jako uporządkowany ciąg wartości:
Zagadnienie harmonogramowania środków produkcji 37 H = ρ, t, m, ρ, t n 0, n 0, n m, n m, n (18) gdzie: ρ 0,n - chwila rozpoczęcia obsługi elementu ω n w urządzeniu A 0, t 0,n - chwila zakończenia obsługi elementu ω n w urządzeniu A 0, m - numer urządzenia w drugim podsystemie, ρ m,n - chwila rozpoczęcia obsługi elementu ω n w urządzeniu A m, t 0,n - chwila zakończenia obsługi elementu ω n w urządzeniu A m Na podstawie stwierdzenia (13) oraz (16), harmonogram pojedynczego elementu ω n można ostatecznie zapisać w uproszczonej postaci jako: H = t, m, t n 0, n m, n (19) A zatem poszukiwanym rozwiązaniem będzie zbiór: H = { H n} n = 1,..., N (20) W związku z powyższym, realizacja zadania optymalizacyjnego wymaga zdefiniowania stanu procesu decyzyjnego, który z jednej strony odzwierciedlałby poszukiwany harmonogram pracy układu, z drugiej zaś posiadał wygodną do implementacji informatycznej formę. Zasadne wydaje się więc przyjąć macierz, w której pierwsza kolumna zawierałaby rzeczywiste chwile zakończenia obsługi elementów w pierwszym podsystemie, druga numer wybranego urządzenia w podsystemie drugim, ostatnia kolumna zaś chwile ostatecznego zakończenia obsługi elementów w badanym układzie. Przykład 00 00 00 ω1 nie obsłużono 06 04 12 ω2 koniec obsługi w chwili t = 12 na urządz. A 4 13 03 18 ω3 koniec obsługi w chwili t = 18 na urządz. A3 P= 09 01 15 ω4 koniec obsługi w chwili t= 15 na urządz. A1 30 02 37 ω5 koniec obsługi w chwili t= 37 na urządz. A2 00 00 00 ω6 nie obsłużono 23 03 29 ω7 koniec obsługi w chwili t= 29 na urządz. A3
38 Sławomir Herma Metoda programowania wieloetapowego, jako metoda o charakterze kombinatorycznym, polega na generowaniu wszystkich możliwych układów przyporządkowań elementów do poszczególnych urządzeń badanego układu, a następnie wyborze takiego przyporządkowania, które z punktu widzenia przyjętego kryterium okaże się najlepsze. Opisany w ten sposób proces decyzyjny należy zatem podzielić na dwa zasadnicze podprocesy, z których każdy dotyczy określonego podsystemu badanego układu. Podsystem pierwszy jest harmonogramowany zgodnie z modelem pojedynczego gniazda produkcyjnego, drugi zaś jako układ szeregowy środków produkcji. Niezależnie jednak od tego, którego podsystemu będzie dotyczyć procedura decyzyjna, generowanie kolejnych możliwych przyporządkowań następuje etapowo. Na każdym etapie następuję bowiem próba przypisania jednego (za każdym razem innego) elementu ω n do wybranego urządzenia przy jednoczesnym sprawdzeniu wszystkich warunków dopuszczalności opisanych w rozdziale 3. Powoduje to utworzenie tylu różnych stanów procesu, ile elementów liczy zbiór Ω. Kolejny etap to kolejne decyzje dotyczące przyporządkowania elementów dotąd nie obsłużonych, przy czym podstawą generowania dalszych stanów decyzyjnych są stany uzyskane na etapie poprzedzającym. Schemat ten prowadzi do powstania drzewa decyzyjnego, wszystkich możliwych układów permutacyjnych elementów ze zbioru Ω. A zatem stan procesu decyzyjnego formalnie określony jest macierzą postaci: P = [ p ] = = e, l e, l i, j i 1,..., N j 1,2,3 (21) gdzie: p p e, l i,1 e, l i,2 t0, i, ωi A0 =, (22) 0, w przeciwnym wypadku m, ωi Am = 0, w przeciwnym wypadku (23) oraz: p e, l i,3 e, l tm, i, pi,2 = m = 0, w przeciwnym wypadku (24) e - oznacza numer etapu, na którym podjęto decyzję o umieszczeniu elementu ω n w harmonogramie prac, l - oznacza numer kolejny wektora stanu na danym etapie e.
Zagadnienie harmonogramowania środków produkcji 39 Rys. 2. Przykładowy schemat generowania drzewa decyzyjnego w programowaniu wieloetapowym 6. Procedury generowania stanów w procesie decyzyjnym Harmonogram badanego układu, na podstawie definicji (19), (20) i (21), przyjmuje następującą postać: H = p, p,..., p,..., p el, el, el, el, 1, j 2, j n, j N, j j= 1,2,3 (25) Generowanie poszczególnych stanów procesu decyzyjnego odbywa się odrębnie dla obu podsystemów badanego układu.
40 Sławomir Herma Pierwszy składa się z pojedynczego urządzenia, którego zadaniem jest obsługa wszystkich elementów zbioru Ω. Procedura generowania stanów będzie więc modyfikować wyłącznie pierwszą kolumnę macierzy stanu wg następującej formuły: ( p = 0) ( P = P + p) n= 1,..., N e 1, e, e 1, n,1 (26) gdzie: oraz: pi,1 = t, i= n 0, n p i, j 0i= 1,..., N j= 2,3 0, w przeciwnym wypadku (27) = (28) Zgodnie z powyższymi zapisami, każdy stan procesu decyzyjnego na danym etapie e polega na przyporządkowaniu do pierwszego podsystemu dowolnego, permutacyjnie wyznaczonego elementu ω n, pod warunkiem, że nie został on dotąd obsłużony. Fakt ten jest sprawdzany poprzez weryfikację wartości wpisanej na przecięciu n-tego wiersza i pierwszej kolumny macierzy stanu e 1, ( p n,1 = 0). Jeśli warunek ten jest prawdziwy, wyznaczany stan p e,l jest sumą macierzy stanu z etapu poprzedniego p e-1, oraz pewnej macierzy p. Macierz p posiada wszędzie wartości zero z wyjątkiem wiersza odpowiadającego przyporządkowanemu na bieżącym etapie elementowi ω n. W wierszu tym (w pierwszej kolumnie) wpisywana jest rzeczywista chwila zakończenia obsługi elementu ω n w pierwszym podsystemie t 0,n. Chwila ta wyznaczana jest jako suma chwili rozpoczęcia obsługi ρ 0,n i czasu ϑ 0,n: t = ρ + ϑ (29) 0, n 0, n 0, n gdzie: oraz: ρ = max( ϕ, T + τ ) (30) e 1, 0 0, n n 0 e 1, K0, n ϕ n chwila dostępności elementu ω n T e 1, 0 chwila zakończenia obsługi ostatniego przydzielonego elementu,
Zagadnienie harmonogramowania środków produkcji 41 K numer ostatniego obsłużonego na etapie e-1 elementu, e 1, 0 e 1, τ czas przezbrojenia urządzenia A 0 pomiędzy elementem K 0 e 1, K0, n, 0 a przydzielanym obecnie elementem ω n, Rzeczywistą chwilą rozpoczęcia obsługi elementu w urządzeniu A 0 może być albo chwila deklarowana (ϕ n), albo chwila zakończenia obsługi elementu poprzedniego powiększona o czas przezbrojenia. Zawsze jednak będzie to późniejsza z tych dwóch. Chwilę T0 można łatwo wyznaczyć, jako maksymal- e 1, ną z wszystkich niezerowych wartości pierwszej kolumny macierzy stanu: T = max p i e 1, e 1, 0 e 1, ωi Ω1,1 (31) gdzie: e { ωi : pi 0} e 1, Ω 1, 1 =,1 > (32) jest zbiorem obsłużonych do tej pory elementów w pierwszym podsystemie. Podobnie, numer ostatniego obsłużonego elementu na urządzeniu A0 identyfikuje się jako numer wiersza w macierzy stanu, w którym znajduje się wartość maksymalna (jedynie w pierwszej kolumnie): (33) Przykład działania procedury I (dla pierwszego podsystemu) Niech na pewnym etapie procesu decyzyjnego (e-1) znajduje się pewna macierz stanu o numerze, następującej postaci: P e 1, r, p T e 1, = K0 = κ0, e= 1 e 1, e 1, r,1 0 00 00 00 ω1 nie obsłużono 06 00 00 ω2 koniec obsługi w chwili t0,2 = 06 na urządz. A0 13 00 00 ω3 koniec obsługi w chwili t0,3 = 13 na urządz. A0 = 09 00 00 ω4 koniec obsługi w chwili t 0,4 = 09 na urządz. A0 30 00 00 ω5 koniec obsługi w chwili t0,5 = 30 na urządz. A0 00 00 00 ω6 nie obsłużono 23 00 00 ω7 koniec obsługi w chwili t0,7 = 23 na urządz. A0 Na podstawie analizy zawartości macierzy można stwierdzić, że: pięć z siedmiu elementów zostało obsłużonych w pierwszym podsystemie;
42 Sławomir Herma kolejność przydzielania elementów do urządzenia A 0 przedstawia się następująco: ω 2 ω 4 ω 3 ω 7 ω 5? rzeczywista chwila zakończenia obsługi ostatniego z przydzielonych elementów, czyli maksymalna wartość z wszystkich niezerowych wartości pierwszej kolumny macierzy stanu, wynosi 30 i dotyczy elementu piątego: e-1, T 0 =30 Przyjmując, że na podstawie permutacyjnego algorytmu wyboru kolejnych elementów do obsługi, podjęto decyzję o przydzieleniu do harmonogramu elementu ω 1, z zestawu danych wejściowych pobierane są dla niego następujące wielkości: czas obsługi: ϑ 0,1=9, chwila dostępności: ϕ 1=32, czas przezbrojenia: κ 0 5,1=3. Na mocy definicji (30) wyznaczana jest rzeczywista chwila rozpoczęcia: e 1, 0 0,1 1 0 e 1, K0,1 ( ) ρ = max( ϕ, T + τ ) = max 32,30+ 3 = 33 Oznacza to, że po zakończeniu obsługi ostatniego elementu tj. od chwili 30, urządzenie A 0 musi zostać przezbrojone w czasie 3 jednostek. Przydzielany element dostępny jest dopiero w chwili 32, a zatem musi zaczekać 1 jednostkę czasu na zakończenie procesu przezbrajania. Dlatego jego rzeczywista obsługa może rozpocząć się w chwili 33. Do macierzy stanu zostanie jednak wpisana wartość chwili zakończenia obsługi, obliczana na podstawie formuły (29) jako: t0,1 = ρ0,1+ ϑ0,1 = 33+ 9= 42 Na tej podstawie można zbudować macierz p i dodać ją do p e-1,, otrzymując żądaną macierz p e,l postaci: 00 00 00 42 00 00 42 00 00 06 00 00 00 00 00 06 00 00 13 00 00 00 00 00 13 00 00 = + = 09 00 00 + 00 00 00 = 09 00 00 30 00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 00 00 23 00 00 e, l e 1, P P p
Zagadnienie harmonogramowania środków produkcji 43 Po wygenerowaniu zestawu stanów decyzyjnych dla pierwszego podsystemu, następuje uruchomienie kolejnej procedury harmonogramującej podsystem drugi. Tym razem modyfikacji podlegają kolumny druga i trzecia macierzy stanu, gdyż one odpowiadają za informacje o marszrucie obsługi elementów w kolejnych urządzeniach badanego układu. Odbywa się to według następującego schematu: ( p e 1, ) ( 1, ) ( ) (,1 1,,1 0 e,2 0, 1 e e n p n u m n P P p) > = = = + n= 1,..., N m= 1,..., M (34) gdzie: = (35) p i,1 0i= 1,..., N pi,2 = m, i= n 0, w przeciwnym wypadku (36) pi,3 = t, p = m m, n i,2 0, w przeciwnym wypadku (37) Zgodnie z powyższymi zapisami, każdy stan procesu decyzyjnego na danym etapie e polega na przyporządkowaniu do drugiego podsystemu, permutacyjnie wyznaczonego elementu ω n, pod warunkiem, że został on już obsłużony w podsystemie pierwszym, a w drugim jeszcze nie, oraz urządzenie na którym ma się odbyć jego obsługa posiada do tego uprawnienia. Warunek pierwszy sprawdzany jest poprzez test niezerowej wartości na przecięciu n-tego wiersza i pierwszej kolumny macierzy stanu, drugi jako sprawdzenie czy w tym samym wierszu lecz w kolumnie drugiej znajduje się wartość 0, a trzeci warunek (uprawnienia do obsługi) to odpowiednia weryfikacja danych znajdujących się w macierzy uprawnień U. Jeśli wszystkie te warunki okażą się prawdziwe, wówczas kolejny stan procesu decyzyjnego p e,l wyznaczany jest jako suma macierzy stanu na etapie poprzednim p e-1, i pewnej macierzy p. Wszystkie elementy macierzy przyrostowej p posiadają wartości 0 z wyjątkiem drugiej i trzeciej pozycji wiersza odpowiadającego przyporządkowywanemu elementowi ω n. Wpisywany są tam bowiem numer urządzenia, na które kierowany jest element ω n oraz chwila rzeczywistego zakończenia jego obsługi w badanym układzie t m,n.
44 Chwila ta wyznaczana jest jako: Sławomir Herma t = ρ + ϑ (38) m, n m, n m, n gdzie: ρ m,n - chwila rozpoczęcia obsługi elementu ω n w urządzeniu A m; ϑ m,n - czas trwania obsługi elementu ω n w urządzeniu A m (dana wejściowa); Przy czym chwila rozpoczęcia obsługi elementu w drugim podsystemie wyznacza jest na podstawie poniższej formuły: (39) gdzie: T m e-1, - jest chwilą zakończenia obsługi ostatniego przydzielonego elementu na urządzeniu A m; K m e-1, - numer ostatniego obsłużonego elementu w urządzeniu A m; m τ e 1, K m, n - czas przezbrojenia urządzenia A m pomiędzy obsługą elementu e-1, K m, a przydzielanym obecnie elementem ω n; Zatem rzeczywistą chwilą rozpoczęcia obsługi elementu w urządzeniu A m może być albo moment końca obsługi tego elementu w pierwszym podsystemie e 1, ( p ), albo chwila w której urządzenie A m zakończyło obsługę ostatniego n,1 z przydzielonych mu zadań, powiększoną o odpowiedni czas przezbrojenia e 1, m ( + τ ). Zawsze jednak należy przyjąć późniejszą z tych dwóch. T m e 1, K m, n e 1, Tm ρ e 1, e 1, m ( p T τ 1, ) = max, + e m m, n n,1 m K, n Chwilę można z łatwością wyznaczyć jako maksymalną, spośród wszystkich niezerowych wartości w kolumnie trzeciej macierzy stanu, tzn.: gdzie: T = max p e 1, e 1, m e 1, ωi Ω m i,3 e { ω : p,2 m} Ω = = e 1, 1, m i i (40) (41) oznacza zbiór elementów ω n obsłużonych w urządzeniu A m. Numer ostatniego elementu, który został obsłużony w urządzeniu A m wyznacza się jako:
Zagadnienie harmonogramowania środków produkcji 45 K e 1, m e 1, κ m Ω m = 0 = r p = T p = m e 1, e 1, e 1, ( r,3 m ) ( r,2 ) (42) Przykład działania procedury II (dla drugiego podsystemu) Niech na pewnym etapie procesu decyzyjnego (e-1) znajduje się pewna macierz stanu o numerze, następującej postaci: P e 1, 42 00 00 ω1 nie obsłużono w II podsystemie 06 04 12 ω2 koniec obsługi w chwili t4,2 = 12 na urządz. A4 13 03 18 ω3 koniec obsługi w chwili t3,3 = 18 na urządz. A3 = 09 01 15 ω4 koniec obsługi w chwili t1,4 = 15 na urządz. A1 30 02 37 ω5 koniec obsługi w chwili t2,5 = 37 na urządz. A2 44 00 00 ω6 nie obsłużono w II podsystemie 23 03 29 ω7 koniec obsługi w chwili t3,7 = 29 na urządz. A3 Na podstawie analizy zawartości macierzy można stwierdzić, że: wszystkie elementy zostały obsłużone w pierwszym podsystemie badanego układu (gdyż w pierwszej kolumnie macierzy stanu nie ma wartości zerowych), pięć z siedmiu elementów zostało już obsłużonych w drugim podsystemie, pozostały jeszcze elementy ω 1 i ω 0, elementy ω 1 i ω 0 mogą zostać przydzielone do dowolnego urządzenia w drugim podsystemie, gdyż każde z urządzeń zakończyło pracę wcześniej niż koniec obsługi tych elementów w podsystemie pierwszym, Przyjmując, że na podstawie permutacyjnego algorytmu wyboru kolejnych elementów do obsługi, podjęto decyzję o przydzieleniu elementu ω 0 do obsługi w urządzeniu A 4, oraz wiedząc, że ostatnim obsługiwanym na tym urządzeniu elementem był ω 2, z zestawu danych wejściowych pobierane są dla niego następujące wielkości: czas obsługi: ϑ 4,6 = 5, czas przezbrojenia: 4 κ 2,6 = 8. Na mocy definicji (39) wyznaczana jest rzeczywista chwila rozpoczęcia: ρ e 1, e 1, 4 ( p T τ e 1, K ) = max, + = max(44,12+ 8) = 44 4,6 6,1 4 4,6 Oznacza to, że choć urządzenie A 4 nie było obciążone już od chwili 12 (było w stanie oczekiwania) i z dużym zapasem czasu można je było przezbroić
46 Sławomir Herma (w tym przypadku w czasie 8 jednostek), to ze względu na moment opuszczenia pierwszego podsystemu w chwili 44, dopiero wtedy może się rozpocząć rzeczywista obsługa elementu ω 0 na tym urządzeniu. Do macierzy stanu zostanie jednak wpisana wartość chwili zakończenia obsługi, obliczana na podstawie formuły (38) jako: t4,6 = ρ4,6 + ϑ4,6 = 44+ 5= 49 Na tej podstawie można już zbudować macierz pi dodać ją do P e-1,, otrzymując żądaną macierz P e, postaci: 42 00 00 00 00 00 42 00 00 06 04 12 00 00 00 06 04 12 13 03 18 00 00 00 13 03 18 = + = 09 01 15 00 00 00 09 01 15 + = 30 02 37 00 00 00 30 02 37 44 00 00 00 04 49 44 04 49 23 03 29 00 00 00 23 03 29 e, l e 1, P P p Zamieszczone powyżej przykłady praktycznej realizacji obu procedur generowania ścieżek decyzyjnych pokazują, że zarówno użycie zaproponowanych struktur przechowywania danych (w postaci macierzy, wektorów, zbiorów itp.), jak i iteracyjny charakter budowania samego procesu decyzyjnego, znakomicie sprzyjają i ułatwiają informatyczną implementację opisywanego modelu. Trzeba jednak również mieć na uwadze fakt istnienia tendencji do nadmiernego rozrastania się drzewa decyzyjnego, co może powodować eskalację zajętości pamięci, duże obciążenie procesora i w konsekwencji konieczność zapewnienia takich warunków sprzętowo-programowych, które zagwarantują uzyskiwanie rozwiązań w czasie dopuszczalnym. Problem ten skłania jednak do poszukiwania innych, alternatywnych rozwiązań tego zagadnienia, a zmierzających w kierunku ograniczenia lub wręcz wyeliminowania pewnych ścieżek decyzyjnych z całego drzewa, na podstawie oceny ich perspektywiczności. Zagadnienie to będzie przedmiotem rozważań w jednym z kolejnych rozdziałów opracowania.
Zagadnienie harmonogramowania środków produkcji 47 7. Definicja wartości stanu procesu decyzyjnego Niezależnie od czasu trwania algorytmu i liczby wygenerowanych, dopuszczalnych rozwiązań problemu, kolejną czynnością jest wybór rozwiązania optymalnego. Korzystając z definicji kryterium optymalizacji modelu, dla każdego stanu uzyskanej na etapie końcowym, należy określić jego wartość, korzystając z następującej formuły: e l (,3 ψ ) e, l, V = max e, l p i i ωi Ω (43) Wartość stanu określa zatem wielkość maksymalnego opóźnienia w obsłudze elementów w badanym układzie (jako różnicę pomiędzy rzeczywistą a deklarowaną chwilą zakończenia tej obsługi), wyznaczaną dla każdego uzyskanego harmonogramu dopuszczalnego. Na tej podstawie poszukiwane jest rozwiązanie optymalne, czyli takie, dla którego wartość stanu okazuje się najmniejsza: V = minv = ˆ P E, l E, l E, l opt opt 1 l N (44) gdzie: E - jest numerem ostatniego etapu procesu decyzyjnego; l - jest numerem macierzy stanu na etapie E, dla którego określana jest wartość stanu. 8. Model oceny jakości rozwiązań Chociaż zjawisko szybkiego wzrostu drzewa decyzyjnego jest jak najbardziej naturalne dla prezentowanego algorytmu wynika bowiem z jego ściśle deterministycznego charakteru, gwarantuje za to znalezienie wszystkich możliwych, dopuszczalnych harmonogramów pracy badanego gniazda. Fakt ten stanowi o jego podstawowej i niezaprzeczalnej zalecie, która jednak może zostać przysłonięta zbytnią zachłannością na zasoby informatyczne, jakimi dysponuje użytkownik.
48 Sławomir Herma Ograniczenie liczby generowanych wektorów stanu, a tym samym znaczne przyspieszenie działania opisywanego algorytmu, może przebiegać zasadniczo dwoma drogami: poprzez wprowadzenie dodatkowych ograniczeń modelu, dotyczących np. zależności kolejnościowych obsługi elementów, wynikających z żądanej marszruty technologicznej wówczas uwzględnienie tych zależności spowoduje zmniejszenie liczby generowanych permutacji, co bezpośrednio przełoży się na czas trwania całego procesu (zagadnienie to zostanie szczegółowo przedstawione w kolejnych rozdziałach opracowania); poprzez wykorzystanie heurystyk eliminacji stanów nieperspektywicznych, które można zastosować praktycznie na każdym etapie procesu decyzyjnego. W ogólności polegają one na przeanalizowaniu każdego stanu na bieżącym etapie z punktu widzenia jego wartości, i zakwalifikowaniu go do grupy perspektywicznych lub całkowitemu zdyskwalifikowaniu. Pod pojęciem stanu perspektywicznego rozumie się taki stan, którego osiągnięta na danym etapie wartość daje potencjalną szansę uzyskania rozwiązania optymalnego na dalszej drodze procesu decyzyjnego. Może więc on stanowić podstawę kontynuacji generowania kolejnych gałęzi drzewa stanów (trajektorii). Rys. 3. Idea eliminacji stanów nieperspektywicznych
Zagadnienie harmonogramowania środków produkcji 49 W przypadku zagadnienia harmonogramowania środków produkcji w układzie drzewa, zasadne wydaje się zastosowanie następujących heurystyk eliminacji stanów nieperspektywicznych: Reguła dominacji możliwa do zastosowania dla podsystemu pierwszego. Polega ona na porównaniu wartości dwóch dowolnych stanów na tym samym etapie e, pod warunkiem, że zbiory obsłużonych elementów są w obu przypadkach takie same, a różnica dotyczy jedynie kolejności ich obsługi przez urządzenie A 0. Wówczas dla obu stanów obliczana jest ich wartość (maksymalne uzyskane spóźnienie), a za nieperspektywiczny uznaje się ten, dla którego wartość ta jest większa. Taki stan można więc pominąć w dalszej ścieżce decyzyjnej. I e,1 l e, l2 P, P (45) e, l1 e, l2 II Ω =Ω (46) 1 1 III, 1, 2, 1, 2 V e l < V e l V e l V e l (47) Reguła sondowania możliwa do zastosowania dla podsystemu pierwszego na każdym etapie procesu decyzyjnego. W ogólności polega ona na wyborze dwóch dowolnych stanów na danym etapie e (przy czym zbiory obsłużonych elementów nie muszą być wcale takie same, jak w regule dominacji). Dla wybranych macierzy stanów należy wyznaczyć chwile zakończenia obsługi ostatniego z przydzielonych elementów, a następnie dokonać symulacji przydziału wszystkich dotąd nie obsłużonych elementów (sumując czasy ich trwania, czasy przezbrojeń i uwzględniając chwile dostępności). Dla uzyskanych tym sposobem prognozowanych macierzy końcowych należy obliczyć i porównać ich wartości. Ten stan, dla którego wartość okaże się większa można uznać za nieperspektywiczny i odrzucić go z dalszej trajektorii decyzyjnej. I e, l1 e, l1 P T (48) e, l2 e, l2 P T
50 Sławomir Herma T = T + E, l1 e, l1 ω e, l1 Ω\ Ω n 0 II (49) E, l2 e, l2 T = T + ϑ ω e, l2 n Ω\ Ω0 ϑ 0, n 0, n, 1, 2, 1, 2 III V E l < V E l V e l V e l (50) Porządek chronologiczny zalecany do zastosowania w przypadku harmonogramowania podsystemu drugiego (układu równoległego środków produkcji). Metoda polega na tym, by każdy element, po zakończeniu obsługi w pierwszym podsystemie, kierować na to urządzenie podsystemu drugiego, które możliwie najdłużej znajduje się w stanie oczekiwania. Sprowadza się to do identyfikacji urządzenia, które w trzeciej kolumnie macierzy stanu posiada najmniejszą z dotychczas wpisanych wartości. Podejście takie powoduje równomierny rozkład obciążenia maszyn, minimalizację czasów bezczynności oraz znaczne ograniczenie liczby generowanych stanów w drzewie decyzyjnym. 9. Propozycje rozszerzenia modelu Oprócz przedstawionego za pomocą formuły (17) kryterium optymalizacji, polegającego na minimalizacji maksymalnego spóźnienia obsługi elementów, proces harmonogramowania badanego układu można analizować przy pomocy innych, następujących kryteriów: kryterium minimalizacji spóźnienia na wejściu układu: Q = max( ρ ϕ ) min (51) 2 0, n 1 n N n Ponieważ każdy z elementów ω n podlegających szeregowaniu, posiada jako daną wejściową chwilę dostępności ϕ n (czyli pojawienia się danego elementu na wejściu układu), zasadna wydaje się również możliwość prowadzenia ścieżki decyzyjnej tak, by minimalizować różnicę pomiędzy rzeczywistą chwilą rozpoczęcia obsługi a chwilą ϕ n (chodzi więc o sytuację, w której dany element
Zagadnienie harmonogramowania środków produkcji 51 teoretycznie jest dostępny, lecz nie może rozpocząć się jego obsługa ze względu na zajętość pierwszego podsystemu - urządzenia A 0, i musi on oczekiwać w tzw. buforze wejściowym). Działanie takie zmierzać będzie do ograniczenia wielkości magazynu buforowego (międzyoperacyjnego) na wejściu badanego układu. Modyfikacja definicji kryterium optymalizacji rodzi zatem konieczność zmiany formuły określania wartości stanu, która przyjmie wówczas postać: V e, l, i Ω ( ρ0, i ϕi) = max e l ω (52) kryterium minimalizacji kary za spóźnienie rozpoczęcia obsługi: ( ) Q = c ρ ϕ min 3 n 0, n n 1 n N (53) O ile w przypadku poprzedniego kryterium, w ocenie uzyskanych rozwiązań uwaga skupiana była tylko na minimalizacji spóźnienia w rozpoczęciu obsługi, traktując poszczególne elementy na równi z innymi, o tyle tutaj zakłada się dodatkowo karę za spóźnienie i może ona być zupełnie różna dla każdego z elementów. Stąd w zestawie danych wejściowych powinien znaleźć się dodatkowy wektor: [ n] n 1,..., C= c = N (54) zawierający stawki (w dowolnie przyjętych jednostkach wartości) za jednostkę czasu powstałego opóźnienia. W trakcie procesu ewaluacji uzyskanych rozwiązań może się wówczas okazać, że w przypadku dwóch stanów o tej samej wartości (rozumianej według dotychczasowej formuły (43)), jeden z nich będzie mimo wszystko lepszy, gdyż opóźnienie dotyczy elementu, dla którego stawka kary jest niższa. Wynika stąd konieczność redefinicji wartości stanu, która w przypadku korzystania z kryterium Q 3 przyjmie następującą postać: ( ρ0, ϕ ) e, l V = max e, l c i i i ωi Ω (55) kryterium minimalizacji kary za spóźnienie na wyjściu układu ( ) Q = c t ψ min 4 n m, n n 1 n N (56)
52 Sławomir Herma Podobnie jak wyżej, ocena jakości harmonogramu bierze również pod uwagę karę, lecz tym razem za przekroczenie deklarowanej chwili zakończenia obsługi elementów. Stawka kary też może być zróżnicowana, i dla każdego elementu inna (wartości kar należą zawsze do zestawu danych wejściowych). Zatem dwa dowolne rozwiązania harmonogramu, dla których zarejestrowany czas spóźnienia wyniósł tę samą liczbę jednostek czasu, mogą okazać się zupełnie odmienne z uwagi na różnicę w stawkach kary (jeśli opóźnienia nie dotyczyły tych samych elementów). Definicja wartości stanu przyjmuje wówczas postać: V e, l, i Ω (, ψ ) = max e l c t ω i m i i kryterium minimalizacji czasu oczekiwania na rozpoczęcie obsługi: (57) 5 N Q = q min i= 1 i (58) gdzie: oraz: T e 1, 0 q = ρ i e 1, 0, i T0 0 (59) - jest rzeczywistą chwilą zakończenia obsługi ostatniego z dotąd przyporządkowanych elementów do podsystemu I. Jeśli w kryterium minimalizacji spóźnienia na wejściu gniazda opisywana była sytuacja, w której istnieje szereg elementów dla których chwile dostępności kwalifikują je do rozpoczęcia obsługi, lecz z uwagi na zajętość gniazda (lub inne ograniczenia) muszą na tę obsługę oczekiwać przez określony czas w buforze, to w tym przypadku sytuacja jest niejako przeciwna. W badanym gnieździe pewna liczba elementów została już obsłużona i układ pozostaje w stanie nieobciążonym, oczekując na chwilę, w której dostępny stanie się choćby jeden element z reszty dotąd nie obsłużonych. Czas oczekiwania jest więc wyznaczany jako różnica pomiędzy rzeczywistą chwilą zakończenia obsługi ostatniego elementu w pierwszym podsystemie a chwilą rozpoczęcia kolejnego. Jeśli różnica ta jest wartością ujemną wówczas na obsługę oczekują elementy w buforze. Gdy zaś dodatnią gniazdo staje się nieobciążone i czeka na pojawienie się jakiegokolwiek obiektu do obsługi. Za harmonogram optymalny będzie się w tym przypadku uważać taki, w którym sumaryczne wartości czasów przestoju gniazda są najmniejsze. Podstawowym rozpatrywanym dotąd ograniczeniem w modelu był fakt istnienia określonych chwil dostępności dla poszczególnych elementów, co powo-
Zagadnienie harmonogramowania środków produkcji 53 dowało konieczność ich uwzględniania przy wyznaczaniu momentów rozpoczęcia obsługi w pierwszym podsystemie badanego układu. Jeśli więc specyficzna konfiguracja danych w wektorze chwil dostępności mogła powodować określone restrykcje czasowe związane z pojawianiem się elementów na wejściu układu, liczba generowanych stanów w strukturze procesu decyzyjnego mogła być przez to znacznie ograniczona sprawiając, że znalezienie zbioru rozwiązań harmonogramów dopuszczalnych odbywało się, pomimo zastosowania heurystyk eliminacji stanów nieperspektywicznych, w akceptowalnym czasie. Jednakże, gdy z jakiś względów chwile dostępności nie będą określone, lub nie będzie wręcz możliwości czy też potrzeby ich określania, może jednak zaistnieć konieczność zachowania pewnej kolejności (kolejki) obsługi elementów oczekujących na wejściu układu. Może ona wynikać np. z ogólnej marszruty technologicznej realizowanej w przedsiębiorstwie. Choć informatyczna implementacja macierzy poprzedników i następników (opisanej w zestawie danych wejściowych) nie wydaje się uciążliwa, to jednak należy wziąć pod uwagę konieczność zbudowania mechanizmów programowych weryfikujących niesprzeczność informacji tam zawartych. Wypełniając macierz poprzedników i następników w sposób bezpośredni wpływa na efektywność całego algorytmu generowania i przeszukiwania obszaru możliwych rozwiązań harmonogramu pracy gniazda. Nie ulega wątpliwości, że w im większym stopniu kolejność obsługi elementów zostanie zdeterminowana, tym mniej liczny będzie zbiór harmonogramów dopuszczalnych. W szczególności, może się okazać, że zaistnieje wówczas tylko jedna ścieżka przebiegu procesu decyzyjnego, co spowoduje zanik samego zadania optymalizacyjnego. Pozostałe dane wejściowe modelu nie ulegają zmianie, modyfikacji natomiast ulega procedura generowania stanów dla pierwszego podsystemu badanego układu, która po uwzględnieniu zależności kolejnościowych przyjmie następującą postać: (60) Kolejny stan procesu decyzyjnego można zatem wygenerować dla każdego elementu ω n takiego, który nie został dotąd obsłużony w pierwszym podsystemie ( p n,1 e 1, = 0) oraz wszystkie elementy będące jego pośrednimi lub bezpośrednimi poprzednikami również zostały w harmonogramie uwzględnione - e ( ) ( 1, γ ν, n = 1 p ν,1 0) 1 n N1 v N. e 1, e 1, e, l e 1, {( p = 0) [ ( γ = 1) ( p 0) ]} ( P = P + p) n,1 v, n n,1
54 Sławomir Herma 10. Podsumowanie i przykład implementacji informatycznej modelu Opisane w artykule zagadnienie harmonogramowania środków produkcji w układzie drzewa posłużyło do stworzenia oprogramowania komputerowego, celem zweryfikowania jego praktycznej użyteczności. W tym celu wykorzystano środowisko programistyczne Delphi 2007 oraz opracowano szereg rozwiązań programowych opartych zarówno o paradygmat programowania proceduralnego, jak i obiektowego. Jako podstawowe założenia dla projektowanej aplikacji przyjęto możliwość: wyboru przez użytkownika liczby elementów podlegających harmonogramowaniu (użytkownik ma możliwość dynamicznej zmiany liczby żądanych elementów), wprowadzania zależności kolejnościowych występujących pomiędzy elementami zarówno w układzie następstwa pośredniego, jak i bezpośredniego (implementacja macierzy poprzedników i następników wraz z mechanizmami weryfikacji niesprzeczność tej macierzy), wprowadzania przewidzianych w modelu matematycznym danych wejściowych w postaci czasów obsługi, chwil dostępności oraz deklarowanych chwil zakończenia obsługi elementów, importu danych wejściowych za pomocą zewnętrznego pliku tekstowego, przeglądania rezultatów obliczeń (wygenerowanych harmonogramów obsługi elementów), graficznej wizualizacji wyników obliczeń w postaci wykresu, generowania rozwiązań problemu w sposób automatyczny, będący wynikiem implementacji algorytmu według opisanego modelu, oraz możliwość indywidualnego ( ręcznego ) harmonogramowania i wyboru kolejności obsługi elementów. W tym drugim przypadku, rola aplikacji sprowadzałaby się do przechowywania danych wejściowych, weryfikacji ich niesprzeczności, graficznej wizualizacji podejmowanych przez użytkownika decyzji, aż wreszcie ewaluacji wyniku końcowego celem porównania z efektem działania algorytmu automatycznego. Przykład interfejsu użytkownika ukazujący sposób wprowadzania danych wejściowych oraz prezentacji wyników obliczeń przedstawiono na rysunku 4.
Zagadnienie harmonogramowania środków produkcji 55 Rys. 4. Interfejs użytkownika stworzonego oprogramowania W celu przeprowadzenia eksperymentu badawczego przyjęto następujące dane wejściowe: liczba elementów 16, liczba urządzeń w badanym układzie 3, wektor chwil dostępności: Φ=[0,7,2,6,5,5,5,4,4,3,6,1,6,5,2,6] wektor deklarowanych chwil zakończenia: Ψ=[52,65,87,52,26,88,79,12,90,93,32,94,51,74,44,22] macierz poprzedników i następników w układzie następstwa pośredniego wypełniona w około 75%, przyjęto kryterium minimalizacji maksymalnego opóźnienia obsługi na wyjściu układu względem deklarowanych chwil zakończenia, Rezultaty obliczeń liczba możliwych do wygenerowania wektorów stanu: (ok. 70 trylionów permutacji), 16! 16! (16 3)! przyjęto metodę eliminacji stanów nieperspektywicznych wg reguły sondowania oraz porządek chronologiczny dla drugiego podsystemu układu,
56 Sławomir Herma otrzymano 17 harmonogramów optymalnych, obliczenia zostały wykonane na komputerze posiadającym następującą konfigurację sprzętową (procesor Intel Core i5 2430M 2,4 GHz, pamięć zainstalowana 8GB, Windows 7 64-bit), czas realizacji obliczeń: około 30 s. Wnioski: Użyte struktury danych do przechowywania i przetwarzania informacji na użytek algorytmu, sprzyjają informatycznej implementacji modelu i praktycznej weryfikacji jego użyteczności. Wykorzystanie metody programowania wieloetapowego daje możliwość stworzenia drzewa decyzyjnego, w rezultacie którego otrzymywany jest zestaw wszystkich możliwych dopuszczalnych rozwiązań (harmonogramów). Znaczna złożoność obliczeniowa algorytmu (NP) może zostać skutecznie zdegradowana poprzez uwzględnienie szeregu ograniczeń (odpowiednia konfiguracja chwil dostępności elementów na wejściu układu oraz restrykcje kolejnościowe wynikające z istnienia macierzy poprzedników i następników). Stopień technologicznego zaawansowania współczesnych maszyn liczących (np. średniej klasy komputerów osobistych) wydaje się być wystarczający do harmonogramowania złożonych zadań o charakterze operacyjnym w akceptowalnym czasie, z użyciem przedstawionego modelu. Dzięki wielu opcjom rozszerzenia modelu (szeroki wachlarz możliwych do stosowania kryteriów optymalizacji, uwzględniania czasów przezbrojeń, zależności kolejnościowych itp.), opisany model można w dowolny sposób dostosowywać do charakteru i uwarunkowań procesu wytwarzania realizowanego w większości współczesnych przedsiębiorstw. Biorąc pod uwagę obserwowane tendencje rozwojowe w zakresie wirtualizacji procesów wytwarzania oraz mając na względzie możliwości efektywnej symulacji tych procesów w środowisku cyfrowym, wydaje się zasadne stosowanie opisanych rozwiązań zwłaszcza w kontekście projektowania i modelowania tzw. cyfrowych fabryk za pośrednictwem m.in. systemów MES.
Zagadnienie harmonogramowania środków produkcji 57 Literatura 1. Matuszek J., Gregor M., Medvedsky J.: Digital Factory. W: Productivity and Innovations, 1(2), 2006. 2. Banaszak Z., Kłos S., Mleczko J.: Zintegrowane systemy zarządzania. PWE, Warszawa, 2011. 3. Janiak A.: Wybrane problemy i algorytmy szeregowania zadań i rozdziału zasobów. Akademicka Oficyna Wydawnicza PLJ, 1999. 4. Banaszak Z., Bocewicz G., Wójcik R.: Zastosowanie technik programowania z ograniczeniami do rozstrzygania konfliktów zasobowych w ESP. Inżynieria Maszyn, tom 1, 2006, s. 87-99. 5. Marecki F.: Modele matematyczne i algorytmy alokacji operacji i zasobów na linii montażowej. Zeszyty Naukowe Politechniki Śląskiej, 1986. 6. Bucki R., Marecki F.: Digital Simulation of Discrete Processes. Network Integrators Associates, 2006. 7. Banaszak Z., Bocewicz G.: Decision Support Driven Models and Algorithms of Artificial Intelligence. Warszawa, 2011. 8. Herma S.: Problem harmonogramowania gniazda produkcyjnego w kontekście projektowania cyfrowej fabryki. Informatyczne Systemy Zarządzania, K. Bzdyra red. Tom III. Politechnika Koszalińska, 2012.