• Nie Znaleziono Wyników

Index of /rozprawy2/11310

N/A
N/A
Protected

Academic year: 2021

Share "Index of /rozprawy2/11310"

Copied!
107
0
0

Pełen tekst

(1)Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Zarządzania Katedra Badań Operacyjnych Rozprawa Doktorska mgr inż. Roger Książek. Algorytmy heurystyczne planowania wielkości i szeregowania partii produkcyjnych na identycznych maszynach równoległych. Promotor: dr hab. inż. Waldemar Kaczmarczyk. Kraków, 2017.

(2) AGH University of Science and Technology Faculty of Management Department of Operations Research Doctoral Dissertation Roger Książek, M.Sc.. Heuristic algorithms for lotsizing and scheduling on identical parallel machines. Supervisor: Waldemar Kaczmarczyk, Ph.D.. Kraków, 2017.

(3) Spis treści. Spis treści. 1. Spis podstawowych oznaczeń. 2. Wstęp. 3. 1 Planowanie partii produkcyjnych 1.1 Ekonomiczna wielkość zamówienia . . . . . 1.2 Planowanie partii przy zmiennym popycie 1.3 Modele zadań z jedną maszyną . . . . . . 1.4 Modele zadań z maszynami równoległymi . 1.5 Heurystyka dla zadania z jedną maszyną .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 5 5 7 11 15 19. 2 Nowa heurystyka dla zadań z maszynami równoległymi 24 2.1 Formalny opis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2 Przykład . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3 Eksperymenty obliczeniowe 3.1 Zestawy danych . . . . . . . . . . . . . 3.2 Wyniki eksperymentów obliczeniowych 3.2.1 Algorytm BAP LSP/F . . . . . 3.2.2 Algorytm hybrydowy . . . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. 44 44 46 46 49. Podsumowanie. 51. 4 Uzupełnienie 4.1 Załącznik A 4.2 Załącznik B 4.3 Załącznik C 4.4 Załącznik D. 52 53 55 77 99. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. Bibliografia. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. 102. 1.

(4) Spis podstawowych oznaczeń Spis podstawowych oznaczeń Dane T N M. = {1, ..., T } – zbiór okresów, T – liczba okresów, = {1, ..., N } – zbiór wyrobów, N – liczba wyrobów, = {1, ..., µ} – zbiór maszyn, µ– liczba maszyn.. Parametry djt Ct pj SjT Ij0 SjC hj. – – – – – – –. popyt na produkt j w okresie t, długość okresu t, jednostkowy czas wykonywania wyrobu j, czas przezbrajania maszyny na wyrób j, początkowy zapas wyrobu j, koszt przezbrojenia maszyny na wyrób j, jednostkowy koszt utrzymywania zapasów wyrobu j.. Zmienne ciągłe ajkt. –. bjkt. –. Ijt q(i)jt. – –. względna część wydajność wszystkich maszyn, na których w okresie t zatrzymywana jest produkcja wyrobu j, a uruchamiana produkcja wyrobu k, zarezerwowana dla wyrobu k za przezbrojeniem, względna część wydajność wszystkich maszyn, na których w okresie t zatrzymywana jest produkcja wyrobu j, a uruchamiana produkcja wyrobu k, zarezerwowana dla wyrobu j przed przezbrojeniem, zapas wyrobu j na koniec okresu t, wielkość produkcji (partii) wyrobu j w okresie t (na maszynie i).. Zmienne binarne i całkowite fjkt. –. fjjt. –. yjt. =. zjt. =. yijt. =. zijt. =. liczba przezbrojonych maszyn w okresie t z produkcji wyrobu j na wyrób k, liczba maszyn produkujących w okresie t − 1 wyrób j, i pozostająca w gotowości do produkcji wyrobu j w okresie t, 1, maszyna w gotowości do wykonania wyrobu j w okresie t, 0 w przeciwnym wypadku, 1, jeżeli w okresie t na maszynie uruchamiana jest produkcja wyrobu j, 0 w przeciwnym przypadku, 1, jeżeli w okresie t maszyna i jest w gotowości do wykonania produktu j, 0 w przeciwnym wypadku, yij0 – stan początkowy maszyny, 1, jeżeli w okresie t na maszynie i uruchamiana jest partia produktu j, 0 w przeciwnym wypadku.. 2.

(5) Wstęp. W pracy przedstawiony jest nowy algorytm heurystyczny dla zadania planowania wielkości i szeregowania partii produkcyjnych na identycznych maszynach równoległych. W takim zadaniu grupa wyrobów produkowana jest w celu zaspokojenia deterministycznego popytu w skończonym przedziale czasu, podzielonym na okresy. Produkcja odbywa się na grupie identycznych maszyn równoległych o skończonej zdolności produkcyjnej. W żadnym okresie planowania całkowita produkcja na danej maszynie nie może przekraczać jej zdolności produkcyjnej. Pomiędzy produkcją dwóch różnych partii wyrobów na tej samej maszynie należy wykonać jej przezbrojenie. Każde przezbrojenie ma swój koszt oraz czas wykonania. Celem planowania jest wyznaczenie harmonogramu produkcji minimalizującego koszty utrzymywania zapasów oraz koszty tworzenia partii produkcyjnych. Poszukiwane są rozwiązania kompromisowe, minimalizujące łączne koszty. Z jednej strony tworzenie dużych partii zmniejsza liczbę przezbrojeń, z drugiej strony prowadzi to do wysokich zapasów, w wyniku czego rosną koszty ich utrzymywania. Odwrotnie, gdy tworzone partie produkcyjne są niewielkich rozmiarów, zapasy są niskie, dzięki czemu koszty ich utrzymania nie są wysokie. Jednak to, że partii jest dużo powoduje, że koszty związane z ich uruchomieniem ponoszone są często. Celem pracy było opracowanie algorytmu heurystycznego dla przypadku identycznych maszyn równoległych. Haase (1994) przedstawił losowy algorytm podejmujący wstecz decyzje o tworzeniu przezbrojeń i wielkość partii produkcyjnych (ang. backward add-method). Ze względu na częściowo losowy charakter reguł decyzyjnych algorytm ten wyznacza wiele rozwiązań, spośród których wybieramy najlepsze. Przyjęto hipotezę, że algorytm Haasego można zaadaptować dla zadań z wieloma identycznymi maszynami równoległymi. Układ pracy jest następujący. Na początku rozdziału 1. przedstawione są podstawowe pojęcia oraz cele planowania partii produkcyjnych, a także modele podstawowych zadań planowania partii dla stałego i zmiennego popytu. Następnie przedstawiono znane modele planowania partii dla zadań z jedną maszyną i identycznymi maszynami równoległymi. Wybrane zadania zilustrowane są odpowiednimi przykładami. Na końcu rozdziału przedstawiony jest algorytm Haasego (1994) dla zadania z jedną maszyną.. 3.

(6) Spis podstawowych oznaczeń. W rozdziale 2. opisany jest nowy algorytm dla zadania planowania partii z identycznymi maszynami równoległymi. Najpierw przedstawiono koncepcję nowego algorytmu, następnie jego formalny opis, a na końcu przykład ilustrujący rozwiązanie pewnego zadania. W rozdziale 3. najpierw zaprezentowano wyniki przeprowadzonych eksperymentów obliczeniowych, a na końcu przedstawiono opis wykorzystanych zestawów danych, oraz ich rozwiązania. Następnie porównano rozwiązania uzyskane za pomocą modeli i metody MIP oraz rozwiązania wyznaczone za pomocą nowego algorytmu oraz algorytmu hybrydowego łączącego nowy algorytm z programowaniem liniowym całkowitoliczbowym. Na końcu pracy podsumowano wszystkie najważniejsze uzyskane wyniki.. 4.

(7) Rozdział 1 Planowanie partii produkcyjnych. W zarządzaniu przedsiębiorstwem produkcyjnym istotną rolę odgrywa planowanie terminów dostaw surowców, produktów i półproduktów oraz terminów odbioru gotowych wyrobów. Wyznaczenie terminów zaopatrzenia i dystrybucji zależy od harmonogramu produkcji, w którym określa się termin i wielkość zapotrzebowania na poszczególne surowce i półfabrykaty, a także wyznacza się terminy zakończenia poszczególnych etapów produkcji, co pozwala na wskazanie terminów wykonania półproduktów oraz produktów finalnych, które są dostarczane do klientów. Dlatego planowanie przepływów logistycznych w istotny sposób związane jest z zagadnieniem planowania i szeregowania partii produkcyjnych, które pozwala określić wielkość partii produkcyjnej, zaplanować odpowiednio przezbrojenia i czasy jej wykonania. Problem planowania i szeregowania partii produkcyjnych jest zagadnieniem z dziedziny inżynierii produkcji, która zajmuje się między innymi opracowaniem metod planowania dla różnych systemów produkcyjnych. Na przestrzeni ostatnich kilkudziesięciu lat zostało opracowane wiele metod rozwiązywania problemów planowania i szeregowania partii produkcyjnych (Pochet i Wolsey, 2006 oraz Jans i Degraeve, 2008).. 1.1. Ekonomiczna wielkość zamówienia. Wspólnym celem planowania wielkości i szeregowania partii produkcyjnych dla szeregu opracowanych znanych modeli, jest równoczesna minimalizacja łącznych kosztów tworzenia partii produkcyjnych i utrzymywania zapasów. Jeśli planujemy duże partie produkcyjne wyrobów, to redukujemy koszty przezbrojeń poprzez zmniejszanie liczby tworzonych partii, równocześnie następuje wzrost kosztów utrzymywania zapasów tych wyrobów. Jeśli partie produkcyjne wyrobów są małe (partie są często uruchamiane), to koszty utrzymywania zapasów są względnie niskie, przy jednoczesnym wzroście kosztów tworzenia partii produkcyjnych wyrobów. Rozwiązując zadania planowania partii produkcyjnych poszukujemy kompromisu pomiędzy dwoma rodzajami kosztów, pierwszym związanym z kosztem uruchamiania partii produkcyjnych i drugim związanym z kosztem utrzymywania zapasów. Często planowanie partii porównywane jest do zadań z planowania zaopatrzenia. Po5.

(8) Rozdział 1. równanie to jest możliwe dla pewnego poziomu ogólności zadań, jednak podczas zagłębiania się w szczegóły pojawiają się istotne różnice. Wynikają one przede wszystkim z ograniczeń różnych zasobów wykorzystywanych do produkcji na przykład takich jak czas pracy maszyn. Ograniczenia mogą też dotyczyć na przykład kolejności wykonywania partii na maszynach. Historycznie pierwszy model planowania wielkość partii nazwany jako ekonomiczna wielkość zamówienia (ang. Economic Order Quantity, EOQ) został przedstawiony przez Harrisa (1913). Model pierwotnie opracowany dla zadania planowania zaopatrzenia, poprzez swoją ogólność może być zastosowany dla zadnia planowania partii produkcyjnych dla jednego wyrobu. Wartość EOQ wyznacza się dla partii produkcyjnej jednego wyrobu przy założeniu, że zapotrzebowanie na wyrób jest stałe i deterministyczne. Zdolności produkcyjna jest nieograniczona, przezbrojenie jest natychmiastowe. Koszty przezbrojenia nie zależą od wielkość partii produkcyjnej, a jednostkowe koszty utrzymywania zapasów są stałe. Optymalną wielkość partii produkcyjnej (EOQ) obliczamy ze wzoru: s. EOQ =. 2S C D h. (1.1). gdzie: EOQ D SC h. – – – –. ekonomiczna wielkość zamówienia, stały, deterministyczny popyt na wyrób, koszty przezbrojenia, koszty utrzymywania zapasów.. Okres wyczerpania zapasów, po którym należy uruchomić kolejną partię produkcyjną wyznaczamy w następujący sposób: TEOQ. EOQ = = D. s. 2S C hD. (1.2). gdzie: TEOQ. – cykl uruchomienia kolejnych partii produkcyjnych.. Przykład 1.1. Niech popyt D na wyrób wynosi 100, koszt przezbrojenia maszyny S C równy jest 400, a jednostkowy koszt utrzymywania zapasów h równa się 2. Optymalna wielkość partii produkcyjnej wynosi 200, a jej uruchomienie należy zaplanować co 2 jednostki czasu. Możemy policzyć koszty całkowite jakie poniesiemy dla wyznaczonej partii w jednym okresie: D Q +h (1.3) EOQ 2 Całkowite koszty dla partii równej EOQ wynoszą 400. Koszty związane z tworzeD niem partii produkcyjnej obliczane jako S C EOQ wynoszą 200. Koszty związane z utrzyQ mywaniem zapasów obliczane jako h 2 wynoszą również 200. C(EOQ) = S C. 6.

(9) Rozdział 1. 1.2. Planowanie partii przy zmiennym popycie. Wielkość EOQ możemy wykorzystać także do planowania partii przy zmiennym popycie. Popyt w zadaniu jest zmienny, różny w kolejnych okresach. Natomiast popyt w okresie nie jest zmienny. Stanowi to pewne uproszczenie, ponieważ dla rzeczywistego przypadku zmiany popytu występują również podczas trwania okresu (Rysunek 1.1). a). b). . +qt. „–” ?. −dt.   It   It−1                    . t−1. I +q. t. ?     ? It−1      d . t−1. 6It. t. Rysunek 1.1: Zmienny popyt: a) dla zadania, b) dla rzeczywistego przypadku. Dla wielkość EOQ tworzymy partie produkcyjne o wielkość bliskiej wartość EOQ. Dla zadania ze zmiennym popytem, stały popyt D należy zastąpić średnim popytem P dla horyzontu tworzenia planu T , obliczanego jako D = t∈T dt /T . Następnie tak dobieramy wielkości partii produkcyjnych, aby były jak najbliższe wielkości wyznaczonej przez EOQ. Wyznaczona wartość EOQ pozwala nam również odpowiedzieć na pytanie ile kolejnych okresów powinny zaspokoić kolejne partie produkcyjne. Podobnie możemy zaplanować tworzenie partii produkcyjnych zgodnie ze stałym cyklem na podstawie EOQ. Dokładnie jak poprzednio stały popyt należy zastąpić średnim. Wyznaczoną wartość TEOQ należy zaokrąglić w górę lub w dół (Silver et al., 1998). Przykład 1.2. Należy zaplanować produkcję xt wyrobu dla 10 okresów planowania gdzie t ∈ T oraz T = 10, koszt przezbrojenia maszyny S C równy jest 400, a jednostkowy koszt utrzymywania zapasów h równa się 2. Popyt na wyrób podany jest w Tabeli 1.1. Dla obu rozwiązań możemy wyznaczyć całkowite koszty dla danego rozwiązania jako sumę kosztów poniesionych na przezbrajanie maszyn oraz kosztów utrzymywania zapasów. Dla algorytmu opartego o wielkości partii bliskie EOQ koszt całkowity wynosi 2 820, a dla algorytmu wyznaczania wielkości partii o wyznaczony stały cykl na podstawie EOQ wynosi 3 020. Proste planowanie partii produkcyjnych w oparciu o ekonomiczną wielkość zamówienia EOQ przy zmiennym popycie deterministycznym sprawdza się gdy zapotrzebowanie nie ulega zbyt dużym wahaniom. Podstawową przyczyną stosowania takich algorytmów jest ich prostota (Silver et al., 1998, str. 217). Metoda Silvera-Meala (1973) to prosta heurystyka pozwalająca szybko uzyskiwać dobre rozwiązania dla zadań planowania partii dla zmiennego deterministycznego popytu. Metoda ta nie daje rozwiązań optymalnych, jednak ze względu na swoją prostotę i możliwości uzyskiwania rozwiązań dobrych jest często stosowana w praktyce. Algorytm ten może dać złe wyniki tylko w sytuacji kiedy zapotrzebowanie gwałtownie 7.

(10) Rozdział 1 Tabela 1.1: Rozwiązanie zadania dla przykładu 1.2.. Popyt Produkcja Zapas. t dt xt It. Popyt Produkcja Zapas. t dt xt It. Wielkość partii bliska EOQ 1 2 3 4 5 6 7 8 9 10 150 50 100 60 30 120 110 150 100 130 200 – 190 – – 230 – 150 230 – 50 – 90 30 – 110 – – 130 – Stały cykl na podstawie EOQ 1 2 3 4 5 6 7 8 9 10 150 50 100 60 30 120 110 150 100 130 200 – 160 – 150 – 260 – 230 – 50 – 60 – 120 – 150 – 130 –. spada i pozostaje na niskim poziomie przez pewien czas oraz kiedy przez dłuższy czas zapotrzebowanie na produkty nie występuje. Reguła heurystyczna tej metody mówi, że bieżąca partia produkcja ma pokryć pewne zapotrzebowanie do okresu t0 włącznie, w którym średnie koszty przezbrajania i utrzymywania zapasów na okres osiągają minimum.. t0 = arg min t∈t1 ,...,T. Koszt przezbrojenia + Całk. koszt utrzymania zapasów do okresu t t − t1 + 1. (1.4). gdzie t1 to pierwszy okres, którego popyt nie jest zaspokojony. Bieżąca partia proP0 dukcyjna ma mieć wielkość: x0 = tt=t1 dt . Kolejna partia produkcyjna tworzona jest w okresie t0 + 1, jeśli w tym okresie występuje zapotrzebowanie na produkt, inaczej w kolejnym itd. Przykład 1.3. Należy zaplanować produkcję xt dla pewnego wyrobu wykorzystując metodę Silvera-Meala, dla danych z przykładu 1.2. Rozwiązanie dla przykładu 1.3 przedstawiono w tabeli 1.3. Przedstawiony i zaproponowany układ kolumn w tabeli 1.3 ułatwia stosowanie metody. Pierwsze dwie kolumny to okres planowania t i dany popyt dt . Do następnej kolumn Tmag wpisujemy liczbę okresów magazynowania produktów dla tworzonej partii. W następnej kolumnie Ht obliczamy koszty utrzymywania zapasów od okresu zaplanowania partii do ich zużycia. W kolumnie Hsum wyznaczamy całkowity koszt utrzymywania zapasów dla tworzonej partii produkcyjnej. Całkowity koszt przezbrojenia SC dla tworzonej partii jest zawsze stały. Ostatnie kolumny pozwalają wyznaczyć całkowity koszt C oraz średni koszt C dla planowanej partii produkcyjnej. Całkowite uzyskane koszty dla zadania wynoszą 2 760, dla wyznaczonych pięciu partii produkcyjnych: x1 = 200, x3 = 190, x6 = 230, x8 = 250 i x10 = 130. 8.

(11) Rozdział 1 Tabela 1.3: Rozwiązanie zadania dla przykładu 1.3.. Tmag Ht Hsum S C 0 0 0 400 1 100 100 400 2 400 500 400. t 1 2 3. dt 150 50 100. C C 400 400.0 500 250.0 900 300.0. xt 200 –. It 50 –. 3 4 5 6. 100 60 30 120. 0 0 1 120 2 120 3 720. 0 400 120 400 240 400 960 400. 400 400.0 520 260.0 640 213.3 1360 340.0. 190 – –. 90 30 –. 6 7 8. 120 110 150. 0 1 2. 0 220 600. 0 400 220 400 820 400. 400 400,0 620 310.0 1220 406.7. 230 –. 110 –. 8 9 10. 150 100 130. 0 1 2. 0 200 520. 0 400 200 400 720 400. 400 400.0 600 300.0 1120 373.3. 250 –. 100 –. 10. 130. 0. 0. 130. –. 0. 400. 400. 400.0.  Metoda zaproponowana przez Wagnera-Whitina (1958) gwarantuje uzyskanie rozwiązania optymalnego. Metoda ta wykorzystuje programowanie dynamiczne do wyznaczenia łącznych kosztów Cjk do okresu k jeżeli ostatnia partia produkcyjna została wyprodukowana w okresie j. Pierwsza wartość na przekątnej macierzy równa jest kosztowi przezbrojenia C11 = S C , a pozostałe wartości wyznaczamy jako minimum poprzedniej kolumny plus koszty przezbrojenia Cjj = min Cl,j−1 + SC dla j > 1. l=1,...,j−1. Powyżej przekątnej wartości obliczamy jako sumę wartości z lewej strony i całkowity koszt utrzymywania zapasów dla bieżących potrzeb Cjk = Cj,k−1 + h · dk · (k − j) dla j < k. Wyznaczanie rozwiązania optymalnego rozpoczynamy odtwarzając wstecz podjęte decyzje. Minimum ostatniej kolumny wskazuje na wartość kosztów dla optymalnego rozwiązania. Szukając rozwiązania poruszamy się wstecz do początku horyzontu planowania po ścieżce, która doprowadziła nas do minimalnej wartość kosztów. Przykład 1.4. Należy zaplanować produkcję xt dla pewnego wyrobu wykorzystując metodę Wagnera-Whitina, dla 10 okresów planowania, koszt przezbrojenia maszyny SC równy jest 400, a jednostkowy koszt utrzymywania zapasów h równa się 2. Popyt na wyrób podany jest w Tabeli 1.1. Pola „–” w prawym górnym rogu tabeli 1.4 pozostają puste gdyż, ich liczenie można pominąć bez utraty optymalności, jeżeli w poprzedniej kolumnie minimalna 9.

(12) Rozdział 1 Tabela 1.4: Rozwiązanie zadania dla przykładu 1.4. 1. 2. 3. t/dt 1 2 3 4 5 6 7 8 9 10. 150 400. 50 500 800. xt. 200. –. t. 4. 5. 6. 7. 8. 9. 10. 100 60 900 1260 1000 1240 900 1020 1300. 30 – – 1140 1360 1420. 120 – – 1860 1840 1660 1540. 110 – – – – – 1760 1940. 150 – – – – – 2360 2240 2160. 100 – – – – – – – 2360 2560. 130 – – – – – – – 2880 2820 2760. 190. –. 230. –. 250. –. 130. –. wartość wypadnie gdzieś w jej środku poniżej danego wiersza (Silver et al., 1998). Rozwiązanie dla przykładu 1.4 przedstawiono w tabeli 1.4. Całkowite koszty podobnie jak poprzednio wynoszą 2 760, dla wyznaczonych pięciu partii produkcyjnych: x1 = 200, x3 = 190, x6 = 230, x8 = 250 i x10 = 130.  Przedstawione metody rozwiązywania dynamicznego zadania planowania partii produkcyjnych pozwalają na proste i zarazem skuteczne rozwiązywanie tych zadań. Wyniki uzyskiwane metodą Silvera-Meala są średnio gorsze nie więcej niż 1% od rozwiązań optymalnych(Silver et al., 1998). Przy zastosowaniu planowania rolowanego algorytm Wagnera-Whitina w kolejnych okresach w istotny sposób zmienia rozwiązanie. Natomiast zastosowanie algorytmu Silvera-Meala, okazuje się w takiej sytuacji bardziej korzystne. Wyniki uzyskane za jego pomocą są bardziej „stabilne”. Metoda Silvera-Meala pomimo tego, że nie gwarantuje znalezienia rozwiązań optymalnych jest zalecana do praktycznego jej stosowania. Zadanie Wagnera-Whitina określane też jest jako dynamiczne zadanie planowania partii lub zadanie planowania partii przy nieograniczonych zasobach (ang. Uncapacitated Lots-Sizing Problem, ULSP)(Pochet i Wolsey, 2006). W tabeli 1.5 przedstawione są wszystkie parametry i zmienne dla zadania ULSP.. 10.

(13) Rozdział 1 Tabela 1.5: Parametry i zmienne zadania ULSP. T dt SC h I0 It qt yt. = {1, ..., T } - zbiór okresów, – wielkość zapotrzebowania w okresie t, – koszt uruchomienia partii(przezbrojenia maszyny), – jednostkowy koszt utrzymywania zapasu, – zapas początkowy, – zapas na koniec okresu t, – wielkość produkcji (partii) w okresie t, = 1, jeżeli w okresie t uruchomiona została partia, tj. maszyna jest w gotowości do produkcji, 0 w przeciwnym razie.. Model PLCM zadania ULSP można sformułować w następujący sposób:. min. X. (S C yt + hIt ). (1.5a). t∈T. It−1 + qt − dt = It. t∈T,. (1.5b). qt ≤ A t y t. t∈T,. (1.5c). yt ∈ 0, 1. t∈T,. (1.5d). t∈T.. (1.5e). It , qt ≥ 0,. Funkcja celu (1.5a) reprezentuje łączne koszty przezbrajania maszyn i utrzymywania zapasów. Bilans zapasów, popytu i produkcji opisuje ograniczenie (1.5b). Zapasy z końca okresu poprzedniego powiększone o produkcję i pomniejszone o popyt okresu bieżącego równe są zapasowi na koniec tego okresu. Ograniczenie (1.5c) wymusza q = 0, jeśli maszyna nie jest w gotowości do wykonywania wyrobu. At jest liczbą P na pewno większą od qt (At ≥ Tr=t dr , t ∈ T ). W zadaniu tym koszt przezbrojenia naliczany jest zawsze w każdym okresie w którym produkowany jest wyrób. Model ten nie rozróżnia przezbrojenia maszyn od stanu jej gotowości. W dalszej części przedstawiono przegląd wybranych modeli reprezentujących problem planowania partii i szeregowania dla maszyn równoległych oraz metod ich rozwiązania. Scharakteryzowano ogólnie problem wyznaczania wielkości i szeregowania partii, zaprezentowano wybrane modele dla unaocznienia rozmaitości aspektów procesu produkcyjnego, które uwzględnia się w sformułowaniach zadań z tej grupy zagadnień oraz wskazano modele i metody rozwiązywania tych zadań.. 1.3. Modele zadań z jedną maszyną. Zadania planowania wielkości i szeregowania partii produkcyjnych charakteryzują się różnym stopniem skomplikowania w zależności od liczby i rodzaju uwzględnianych 11.

(14) Rozdział 1. w nich maszyn i wyrobów. Ze względu na liczbę maszyn problemy te podzielić można na zadania jedno– i wielo–maszynowe, gdzie produkcja przydzielana jest na równoległe maszyny identyczne, jednakowe lub całkowicie różne. Z kolei ze względu na technologiczne podobieństwo produkcja obejmować może jeden typ wyrobu lub rodzinę wyrobów. W przypadku jednego wyrobu lub grupy wyrobów technologicznie podobnych nie jest konieczne przezbrajanie maszyn pomiędzy następującymi po sobie partiami produkcyjnymi (Brahimi et al., 2006). Niezbędne staje się również uwzględnienie dysponowanych czasów pracy maszyn oraz wielkość zapotrzebowania na konkretne wyroby (Drexl i Kimms, 1997, Gdowska i Książek, 2012, Karimi et al., 2003). Zadania planowania wielkości i szeregowania partii produkcyjnych z maszynami równoległymi należą do zadań NP-trudnych (Jans i Degraeve, 2007). Optymalne rozwiązania uzyskuje się przy pomocy modeli PLCM (programowanie liniowe całkowitoliczbowe mieszane) dla zadań o małych rozmiarach, dlatego dla efektywnego rozwiązywania problemów planowania wielkości i szeregowania partii produkcyjnych buduje się algorytmy heurystyczne. (Gdowska i Książek, 2012, Książek i Gdowska, 2014). Podstawowe modele planowania partii produkcyjnych stanowią uogólnienie zadania ULSP. Uwzględniają one ograniczoną zdolność produkcyjną oraz naprzemienną produkcję wielu wyrobów. Model CLSP (ang. Capacitated Lot Sizing Problem) to podstawowy model planowania wielkość i szeregowania partii z długimi okresami. Modele z tej grupy zadań dopuszczają uruchomienie wielu partii w jednym okresie planowania. Podstawową jednostką czasu w tych modelach jest na ogół jeden tydzień, a horyzont planowania obejmuje od 3 do 6 miesięcy (Drexl i Kimms, 1997, Pochet i Wolsey, 2006 oraz Kaczmarczyk, 2009a). Model CLSP jest najstarszym opracowanym modelem. Dodatkowo nie pozwala on na kontrolowanie kolejność wykonywania wyrobów. Model PLCM zadania CLSP można sformułować w następujący sposób:. min. X X. (SjC yjt + hjt Ijt ). (1.6a). t∈T j∈N. Ij,t−1 + qjt − djt = Ijt ,. t ∈ T ,j ∈ N,. (1.6b). ≤ Ct yjt. t ∈ T ,j ∈ N,. (1.6c). ≤ Ct. t∈T,. (1.6d). t ∈ T ,j ∈ N,. (1.6e). yjt ∈ {0, 1} t ∈ T , j ∈ N .. (1.6f). pj qjt + SjT yjt X (pj qjt + SjT yjt ) j∈N. Ijt , qjt ≥ 0,. Funkcja celu (1.6a) zadania CLSP wyznacza całkowite koszty uruchomienia partii i utrzymywania zapasów. Bilans zapasów, produkcji i popytu opisuje równanie (1.6b). Ograniczenie (1.6c) pozwala na zaplanowanie produkcji wyrobu tylko jeżeli. 12.

(15) Rozdział 1. maszyna jest w gotowości do jego produkcji. Ograniczenie (1.6d) nie pozwala w danym okresie na przekroczenie jego dostępnej zdolności produkcyjnej. W modelu CLSP zarówno koszty jak i czasy przezbrojeń naliczane są zawsze, gdy maszyna jest w gotowości do wykonywania danego wyrobu. Obecnie znane są modele z długimi okresami, które pozwalają na przeniesienie gotowości maszyny do wykonywania danego wyrobu z okresu wcześniejszego do późniejszego oraz pozwalają na pełną kontrole kolejność wykonywania partii (Haase, 1994; Haase, 1996b; Sox i Gao, 1999; Suerie i Stadtler, 2003). Modele z krótkimi okresami dopuszczają co najwyżej jedno przezbrojenie w okresie, a otrzymane rozwiązanie jednoznacznie określa kolejność wykonywania wyrobów w danym okresie. Często krótkie okresy powstają poprzez podział rzeczywistych dłuższych okresów planowania. Podstawową jednostką czasu dla okresu jest na ogół jeden dzień (Kaczmarczyk, 2011a), może też być jeden tydzień, zmiana robocza lub ich ułamek całkowity. W przedstawionych modelach z krótkimi okresami przyjęto założenie, że wykonywanie przezbrojeń nie jest dzielone pomiędzy okresami planowania, a ich czas wykonania jest krótszy niż długość okresu (Kaczmarczyk, 2009c). Model DLSP (ang. Discrete Lot-sizing and Scheduling Problem) jest najprostszym modelem z krótkimi okresami, w każdym okresie wykonywany jest co najwyżej jeden wyrób. Wykonanie wyrobu w danym okresie skutkuje całkowitym wykorzystaniem dostępnej zdolności produkcyjnej okresu. Model PLCM zadania DLSP można sformułować w następujący sposób:. min. X X. (SjC zjt + hjt Ijt ). (1.7a). t∈T j∈N. Ij,t−1 + qjt − djt = Ijt ,. t ∈ T ,j ∈ N,. (1.7b). t ∈ T ,j ∈ N,. (1.7c). t∈T,. (1.7d). t ∈ T ,j ∈ N,. (1.7e). t ∈ T ,j ∈ N,. (1.7f). t ∈ T ,j ∈ N,. (1.7g). yjt ∈ {0, 1} t ∈ T , j ∈ N .. (1.7h). pj qjt = Ct yjt X. yjt ≤ 1. j∈N. yjt − yj,t−1 ≤ zjt , Ijt , qjt ≥ 0, zjt ∈ [0, 1]. Funkcja celu (1.7a) zadania DLSP wyznacza całkowite koszty uruchomienia partii i utrzymywania zapasów. Bilans zapasów, produkcji i popytu opisuje równanie (1.7b). Ograniczenie (1.7c) zapewnia, że planowane obciążenie okresu równe jest jego dostępnej zdolność produkcyjnej. Dodatkowo planowanie produkcji możliwe jest tylko wtedy, kiedy w danym okresie maszyna jest w gotowość do produkcji danego wyrobu. W danym okresie maszyna może być w gotowości do produkcji tylko jednego wyrobu, ograniczenie (1.7d). Ograniczenie (1.7e) zapewnia, że przy odpowiedniej zmianie gotowości maszyny do produkcji wyrobu, naliczony zostanie koszt przezbrojenia. 13.

(16) Rozdział 1. Model CSLP (ang. Continuous Setup Lot-sizing Problem) podobnie jak model DLSP dopuszcza produkcję tylko jednego wyrobu w okresie. Przeciwnie do założenia przyjętego w modelu DLSP możliwe jest niepełne wykorzystanie zdolność produkcyjnej okresu. Model PLCM zadania CSLP można sformułować w następujący sposób:. min. X X. (SjC zjt + hjt Ijt ). (1.8a). t∈T j∈N. Ij,t−1 + qjt − djt = Ijt ,. t ∈ T ,j ∈ N,. (1.8b). t ∈ T ,j ∈ N,. (1.8c). t∈T,. (1.8d). t ∈ T ,j ∈ N,. (1.8e). t ∈ T ,j ∈ N,. (1.8f). t ∈ T ,j ∈ N,. (1.8g). yjt ∈ {0, 1} t ∈ T , j ∈ N .. (1.8h). pj qjt + SjT zjt ≤ Ct yjt X. yjt ≤ 1. j∈N. yjt − yj,t−1 ≤ zjt , Ijt , qjt ≥ 0, zjt ∈ [0, 1]. Model CSLP różni się od modelu DLSP (1.7) tylko jednym ograniczeniem (1.8c), i w przeciwieństwie do ograniczenia (1.7c) pozwala na niepełne wykorzystanie zdolność produkcyjnej okresu. Można założyć, że w tym modelu każde przezbrojenie zaczyna się na początku okresu, a potem następuje produkcja wyrobu. Model PLSP (ang. Proportional Lot-sizing and Scheduling Problem) dopuszcza wykonywanie dwóch wyrobów w jednym okresie. Jeden wyrób wykonywany jest przed, a drugi po przezbrojeniu maszyny. W modelu PLSP podobnie jak w modelu CSLP możliwe jest niepełne wykorzystanie zdolność produkcyjnej okresu. Model PLCM zadania PLSP można sformułować w następujący sposób:. min. X X. (SjC zjt + hjt Ijt ). (1.9a). t∈T j∈N. Ij,t−1 + qjt − djt = Ijt , X. t ∈ T ,j ∈ N,. (1.9b). pj qjt + SjT zjt ≤ Ct (yj,t−1 + yjt ) t ∈ T , j ∈ N ,. (1.9c). (pj qjt + SjT zjt ) ≤ Ct. t∈T,. (1.9d). X. t∈T,. (1.9e). t ∈ T ,j ∈ N,. (1.9f). t ∈ T ,j ∈ N,. (1.9g). zjt ∈ [0, 1]. t ∈ T ,j ∈ N,. (1.9h). yjt ∈ {0, 1}. t ∈ T ,j ∈ N.. (1.9i). j∈N. yjt ≤ 1,. j∈N. yjt − yj,t−1 ≤ zjt , Ijt , qjt ≥ 0,. Funkcja celu (1.9a) zadania PLSP wyznacza całkowite koszty uruchomienia partii i utrzymywania zapasów, a ograniczenie (1.9b) opisuje bilans zapasów. Ograniczenie 14.

(17) Rozdział 1. (1.9c) uzależnia produkcję od gotowości maszyny do produkcji wyrobu. Ograniczenie (1.9d) wyznacza pośrednio sumę czasów przed i po przezbrojeniu, czasy te nie są w tym modelu wyznaczane bezpośrednio. Ograniczenie (1.9e) wyznacza jednoznacznie stan maszyny. Ograniczenie (1.9f) odpowiada za naliczenie kosztów przezbrojenia maszyny.. 1.4. Modele zadań z maszynami równoległymi. W zadaniu planowania partii produkcyjnych dla maszyn równoległych, produkcja odbywa się na grupie identycznych maszyn równoległych o skończonej zdolności produkcyjnej. Grupa wyrobów produkowana jest w celu zaspokojenia deterministycznego popytu w pewnym horyzoncie planowania, podzielonym na daną liczbę okresów. W każdym okresie planowania całkowita produkcja na danej maszynie nie może przekraczać jej zdolności produkcyjnej. Podczas zmiany produkcji z jednego wyrobu na inny wykonać trzeba przezbrojenie maszyny. Każde przezbrojenie ma swój koszt oraz czas wykonania, który musi być krótszy od czasu trwania okresu. Koszty przezbrojeń oraz czasy ich wykonywania nie są zależne od kolejności partii. Celem planowania jest wyznaczenie harmonogramu produkcji, minimalizującego koszty utrzymywania zapasów oraz koszty tworzenia partii produkcyjnych. Istnieją dwa sposoby formułowania modeli programowania liniowego całkowitoliczbowego (MIP) dla zadań planowania wielkości i szeregowania partii z identycznymi maszynami równoległymi. W pierwszym, starszym podejściu, w modelu definiuje się zmienne binarne oddzielnie dla każdej z maszyn (Kimms i Drexl, 1998b). Zmienne binarne opisują, czy dana maszyna spełnia pewne warunki w zadaniu czy też nie, np. czy maszyna jest w gotowości do produkcji danego wyrobu w danym okresie, czy też przeciwnie nie jest. Binarny model PLCM zadania PLSP można sformułować w następujący sposób:. min. X X t∈T j∈N. Ij,t−1 +. X. qijt − djt = Ijt ,. (hjt Ijt + SjC. X. zijt ). (1.10a). t ∈ T ,j ∈ N,. (1.10b). i∈M. i∈M. pij qijt + SjT zijt ≤ Ct (yij,t−1 + yijt ), t ∈ T , j ∈ N , i ∈ M, X. (1.10c). (pij qijt + SjT zijt ) ≤ Ct ,. t ∈ T , i ∈ M,. (1.10d). X. t ∈ T , i ∈ M,. (1.10e). t ∈ T , j ∈ N , i ∈ M,. (1.10f). t ∈ T , j ∈ N , i ∈ M,. (1.10g). zijt ∈ [0, 1]. t ∈ T , j ∈ N , i ∈ M,. (1.10h). yijt ∈ {0, 1}. t ∈ T , j ∈ N , i ∈ M.. (1.10i). j∈N. yijt = 1,. j∈N. yijt − yij,t−1 ≤ zijt , qijt , Iijt ≥ 0,. Funkcja celu (1.10a) zadania PLSP z identycznymi maszynami równoległymi wyznacza całkowite koszty uruchomienia partii i utrzymywania zapasów. Ograniczenie 15.

(18) Rozdział 1. (1.10b) opisuje bilans zapasów. Ograniczenie (1.10c) uzależnia produkcję od gotowości poszczególnych maszyn do produkcji wyrobów. Ograniczenie (1.10d) wyznacza pośrednio sumę czasów przed i po przezbrojeniu tak samo jak w modelu (1.9). Ograniczenie (1.10e) wyznacza jednoznacznie stany poszczególnych maszyny. Ograniczenie (1.10f) odpowiada za naliczenie kosztów przezbrojenia maszyn. Sens funkcji celu i wszystkich ograniczeń odpowiada modelowi PLSP dla jednej maszyny. W celu umożliwienia wyboru maszyny, na której może być produkowana partia wyrobu, rozszerzono model o osobny dla każdej maszyny zbiór zmiennych produkcji, zmiennych binarnych i odpowiednich ograniczeń. Wspólne dla wszystkich maszyn pozostały funkcja celu (1.10a) oraz bilans zapasów (1.10b). Takie sformułowanie zadania prowadzi podczas poszukiwania rozwiązania do sytuacji, w której otrzymujemy wiele symetrycznych, praktycznie identycznych rozwiązań, różniących się tylko numeracją maszyn. Przeglądanie symetrycznych rozwiązań zwiększa jedynie nakład obliczeń w metodzie podziału i ograniczeń, ponieważ to samo rozwiązanie poddawane jest ocenie wiele razy. W drugim podejściu sformułowanie zadania oparte jest na agregacji maszyn. Zmienne binarne są zastąpione przez zmienne całkowite, które opisują liczbę maszyn spełniających pewne warunki w zadaniu, np. liczbę maszyn przezbrojonych w danym okresie i gotowych do wykonywania danego wyrobu. Zmienne binarne yijt oraz zjt można zastąpić poprzez zmienne zagregowane P P gdzie: yjt = i∈M yijt , zjt = i∈M zijt . Lasdon i Terjung, 1971 wykorzystali takie zmienne i sformułowali model DLSP (1.7) z identycznymi maszynami równoległymi. Model binarny PLSP z maszynami równoległymi (1.9) nie może być wprost przekształcony w model całkowitoliczbowy. Przekształcenie zadania PLSP w taki sposób byłoby niepoprawne. Zastąpienie binarnych zmiennych gotowości yijt zmiennymi całkowitymi yit spowoduje, że wyrażenie po prawej stronie całkowitoliczbowego odpowiednika ograniczenia (1.10c) nie ogranicza obciążenia w poprawny sposób. Dodatkowo całkowitoliczbowy odpowiednik ograniczenia (1.10d) pozwoliłby każdemu wyrobowi w pełni wykorzystać czas pracy każdej maszyny, niezależnie od jej stanu. Poprawny model zaproponował Kaczmarczyk (2011) i nazwał PLSP/F. Zmienne przepływu fjkt są jedynymi zmiennymi całkowitymi w tym modelu. Zmienne przepływu wskazują na przepływ „jednostek” gotowości maszyn pomiędzy dwoma wyrobami. Oznacza to, że pewna liczba maszyn, która w okresie wcześniejszym była w gotowości do wykonywania pewnego wyrobu, została przezbrojona i obecnie jest w gotowości do produkcji wyrobu innego. Zmienne przepływu jednoznacznie wskazują na kolejność wykonywania wyrobów w danym okresie. Model można sformułować w następujący sposób:. min. X X t∈T j∈N. (hjt Ijt +. X. C Sjk fjkt ). (1.11a). k∈N :j6=k. 16.

(19) Rozdział 1. t ∈ T ,j ∈ N,. (1.11b). (bkjt + ajkt ),t ∈ T , j ∈ N ,. (1.11c). Ijt−1 + qjt = djt + Ijt , X. pj /Ct qjt ≤ fjjt +. k∈N :j6=k T bjkt + ajkt = fjkt (1 − Sjk /Ct ),. X. t ∈ T , (j, k) ∈ N 2 : j 6= k,. (1.11d). fjk0 = 0,. t ∈ T , j ∈ N , j 6= k,. (1.11e). fjj0 = yj0 ,. t ∈ N,. (1.11f). t ∈ T ,j ∈ N,. (1.11g). fkjt−1 =. k∈N. X. X. fjkt ,. k∈N. fjk0 = m,. (1.11h). (j,k)∈N 2. qijt , Ijt ≥ 0, ajkt , bjkt ∈ [0, m], fjkt ∈ {0, . . . , m},. t ∈ T ,j ∈ N,. (1.11i). t ∈ T , (j, k) ∈ N 2 : j 6= k, 2. t ∈ T , (j, k) ∈ N .. (1.11j) (1.11k). Ograniczenia (1.11b)–(1.11d) zapewniają prawidłowe wartość zmiennych wielkości produkcji i zapasów. Za prawidłowe całkowitoliczbowe wartość zmiennych przepływu odpowiadają ograniczenia (1.11e)–(1.11h). Model ten dla dużej liczby wyrobów jest trudny do rozwiązania za pomocą standardowych metod MIP. Natomiast wraz ze zwiększaniem liczby identycznych maszyn, zadanie staje się łatwiejsze. Odwrotnie niż w zadaniach ze zmiennymi binarnymi, gdzie wzrost liczby maszyn powoduje wzrost rozmiarów zadania. Dotychczas nie opracowano algorytmów heurystycznych dla omawianego problemu (Kaczmarczyk, 2011a). Przykład 1.5. Danych jest 5 okresów planowania i cztery wyroby A, B, C, D. Jednostkowe koszty utrzymywania zapasów, identyczne dla wszystkich wyrobów wynoszą 1. Koszty przezbrojeń wynoszą 100, a czas ich wykonania 0. Popyt jest znany w każdym okresie. Dane są 4 identyczne maszyny, o zdolność produkcyjnej 100 sztuk na okres. W tabeli 1.7 przedstawiono optymalne rozwiązanie. Możemy tam zobaczyć bilans zapasów oraz liczbę maszyn w danym okresie gotowych do produkcji tego samego wyrobu co w poprzednim okresie. W pierwszym okresie trzy maszyny są w gotowości do wykonania wyrobu A. Dzięki czemu zdolność produkcyjna zarezerwowana dla tego wyrobu wynosi 300, co pozwala wyprodukować partie 240 sztuk wyrobu A. W drugim okresie jedna maszyna jest przezbrajana z produkcji wyrobu A na produkcje wyrobu C, a druga na produkcję wyrobu D. Jedna maszyna cały czas zostaje w gotowość do produkcji wyrobu A. W tym okresie produkcja wyrobu A wynosi 190 sztuk. Zdolność produkcyjna potrzebna do wyprodukowania tej ilość sztuk jest zapewniona, ponieważ jedna maszyna produkuje cały czas tylko wyrób A, druga poświęca przed przezbrojeniem 50% swojej zdolności a trzecia 40%. W sumie całkowita zdolność produkcyjna przeznaczona na wytworzenie wyrobu A w okresie drugim jest równa 100 + 50 + 40 = 190, czyli liczbie wytwarzanych sztuk produktów. Popyt na wyrób A w okresie drugim wynosi 150 sztuk. Dlatego po wyprodukowaniu 190 wyrobów, 40 z nich. 17.

(20) Rozdział 1 Tabela 1.7: Rozwiązanie modelu P LSP/F do przykładu 1.5 (Kaczmarczyk, 2011b). a) bilans zapasów 1. 2. 3. 4. 5. Gotowość A B C D. 3 1 − −. 1 1 − −. 1 1 1 1. − − 1 1. − − 2 2. Produkcja A B C D. 240 50 − −. 190 100 50 60. 100 100 100 100. 80 − 40 − 120 160 120 160. Popyt. A B C D. 240 40 − −. 150 110 50 60. 100 100 100 100. 120 − 40 − 120 160 120 160. Zapas. A B C D. j\t. − 40 40 10 − − − − − − − −. − − − −. − − − −. b) zmienne zależne od kolejności wyrobów j\k Przezbrojenie A z j na k B C D Ułamek czasu A przed przezbr. B C D Ułamek czasu A po przezbr. B C D. A. t=2 B C. D. j\k. 1 − − −. − 1 − −. 1 − − −. A B C D. − − −. − 0.5 0.4 − − − − − −. A B C D. − − −. − 0.5 0.6 − − − − − −. A B C D. 1 − − −. A. t=4 B C. D. − − − −. − − − −. − 1 − 1. − − −. − 0.8 − − 0.4 − − − −. − − −. − 0.2 − − 0.6 − − − −. 1 − 1 −. 18.

(21) Rozdział 1. tworzy zapas, i będzie wykorzystana do zaspokojenia potrzeb na te produkty w okresie czwartym.  Przy pomocy zaproponowanego modleu przez Beraldiego (2008), nazwanego LSPIPM (ang. Lot-sizing and Scheduling Problem with Identical Parallel Machines) można efektywnie rozwiązywać jedynie zadania niewielkich rozmiarów, sformułowano więc dla tego podejścia algorytmy heurystyczne wykorzystujące rolowany horyzont planowania oraz dekompozycję problemu metodą fix-and-relax (Beraldi et al., 2008). Mehdizadeh (2015) dla problemu planowania wielkości i szeregowania partii wyrobów na maszynach równoległych w przypadku, gdy czasy przezbrojeń nie są zależne od kolejności wyrobów przydzielonych do danej maszyny, przedstawia sformułowany model programowania całkowitoliczbowego liniowego. Następnie proponuje dla sformułowanego zadania metaheurystykę wykorzystującą podejście oparte na algorytmie dla problemu optymalizacji tłumienia drgań (ang. vibration damping optimization, VDO). Mensendiek (2015) dla zadania problemu planowania wielkości i szeregowania partii wyrobów na identycznych maszynach równoległych z ustalonymi terminami wykonania wyrobów przedstawia sformułowany model matematyczny wykorzystujący model dla zadania przydziału ze zmiennymi binarnymi; model ma na celu minimalizację sumarycznego opóźnienia. Ze względu na NP-trudność zadania skonstruowano algorytm tabu search oraz hybrydowy algorytm genetyczny, przy pomocy których rozwiązywane są zadania większych rozmiarów Zaprezentowany wybór rozwijanych obecnie modeli dla problemu planowania wielkości i szeregowania partii produkcyjnych z jedną maszyną oraz maszynami równoległymi, niezależnie od kwestii ujętych w budowanych zadaniach, w celu ich rozwiązania formułuje się modele matematyczne oparte w większości na zadaniach przydziału. Zadania tego typu charakteryzują się występowaniem dużej ilość zmiennych, gdzie duży udział w modelach mają często zmienne binarne. Dlatego ze względu na NP-trudność modele matematyczne pozwalają na uzyskanie rozwiązania optymalnego dla zadań o niewielkich rozmiarach. Rzeczywiste problemy harmonogramowania produkcji stanowią najczęściej zadania o dużych rozmiarach, zaś akceptowalny czas oczekiwania na rozwiązanie nie jest szczególnie długi, więc w celu efektywnego rozwiązywania tych problemów konstruuje się odpowiednie algorytmy heurystyczne i metaheurystyczne, wśród których przeważają algorytmy genetyczne i algorytmy tabu search.. 1.5. Heurystyka dla zadania z jedną maszyną. W tej części przedstawiono zaproponowany przez Haasego (1994) ukierunkowany, losowy, heurystyczny algorytm dla zadania szeregowania partii produkcyjnych na jednej maszynie P LSP , nazwany BAP LSP (ang. backward add-method for the PLSP). 19.

(22) Rozdział 1. Algorytm BAP LSP dla zadania szeregowania partii produkcyjnych na jednej maszynie, pozwala bardzo szybko wyznaczyć dobre rozwiązania. Wzrost rozmiaru zadania, tylko nieznacznie wpływa na wydłużenie czasu ich poszukiwania. Dzięki temu, stosując tę heurystykę, możliwe staje się rozwiązanie zadań, dla których bardzo trudne jest uzyskanie rozwiązań przy zastosowaniu modeli matematycznych. Dlatego też istotnym problemem wydaje się rozszerzenie działania algorytmu dla zadań z maszynami równoległymi. Przyjmijmy, że zdolność produkcyjne Ct dla wszystkich okresów planowania t są sobie równe i wynoszą 1, oraz czasy wykonania poszczególnych wyrobów pj też są równe i wynoszą 1. Wtedy popyt na wyroby wyrażony jest jednostką zdolności produkcyjnej. Ct = 1, pj = 1 dj ←. d0j Ct0 /p0j. Koszty wykonania przezbrojenia S C pozostają takie same jak dla zadania w którym popyt na wyroby wyrażony jest w sztukach. Przeliczenia wymagają koszty utrzymywania zapasów które muszą odpowiadać popytowi wyrażanemu jednostką zdolności produkcyjnej: C0 hj ← h0j 0t pj Całkowity pozostały popyt (wymagana zdolność produkcyjna) na wyrób j od okresu t do końca horyzontu planowania T , który musi zostać zaplanowany w okresach 1, . . . , t zdefiniowano jako: f = D j,t. T X. (djt0 − qjt0 ), j ∈ N , t ∈ T. (1.12). t0 =t. f = 0 (j = 1, . . . , N ). Początkowe wartości D j0 Całkowity pozostały popyt (całkowita pozostała wymagana zdolność produkcyjna), zdefiniowana jest jako:. TD =. N X. f D j1. (1.13). j=1. Dla każdego wyrobu j, kolejny okres, posiadający dodatni popyt, zdefiniowany jest jako: ndjt =.    . 0 jeżeli t = 0 t jeżeli djt > 0 (j = 1, . . . , N ; t = 1, . . . , T )    nd j,t−1 w przeciwnym razie. (1.14). Pozostała zdolność produkcyjna od okresu 1 do t, zdefiniowano jako: Ce. t. =. t X. Cτ. (1.15). τ =1. 20.

(23) Rozdział 1. Harmonogram produkcji tworzony jest od ostatniego okresu planowania do okresu pierwszego. Jeżeli maszyna jest w gotowości do produkcji wyrobu i w okresie t, f > 0 (τ ≤ t). to wyrób ten produkowany jest dopóki pozostały całkowity popyt D iτ W sytuacji gdy dla wyrobu i utworzono partię produkcyjną dłuższą niż jeden okres od τ do t popyt di,τ −1 , . . . , di,t będzie zaspokojony całkowicie przez tę partię produkcyjną. Dlatego okres t0 = ndi,τ −1 staje się następnym okresem, dla którego popyt na dany wyrób i jest dodatni. Następnie w algorytmie podejmowana jest decyzja czy cofnąć się z okresu τ do okresu t0 (zostanie oszczędzony koszt poniesiony na przezbrojenie czy też nie). Skok wstecz nie jest możliwy, jeżeli całkowity pozostały popyt dla wyrobów T D > Cet . Jeżeli nowy wybrany wyrób j 6= i, to zostanie przydzielony on do produkcji w okresie t tylko f > 0. Przezbrojenie maszyny na wyrób j w okresie t dla wyrobu z zewtedy gdy D jt f = 0, czyli przypisanie dla wyrobu j zerowej produkcji rowym zapotrzebowaniem D jt qjt = 0, w większości przypadków prowadziłoby do „nieoptymalnych” decyzji. Dla przyjętego założenia że zdolności produkcyjne okresów Ct są stałe, uruchomienie partii produkcyjnej wyrobu j w okresie t (lub t0 = ndj,t−1 ) oraz w okresach wcześniejszych τ = t − 1, . . . , 1 (lub t0 , t0 − 1, . . . , 1) pozwoli przynajmniej na zaoszczęf (h D f dzenie kosztów utrzymywania zapasów hj D jt j jt0 ). Jeżeli maszyna była w gotowość do produkcji wyrobu j w okresie t, koszt przezbrojenia równy jest 0. W przeciwnym wypadku całkowity „zaoszczędzony” koszt uruf − SC . chomienia partii produkcyjnej dla wyrobu j przynajmniej wyniesie hj D jt j Zakładając gotowość maszyny do produkcji wyrobu i w okresie t zdefiniowano miarę „zaoszczędzonych” kosztów uruchomienia partii produkcyjnej wyrobu j w okresie t dla losowego parametru γ jako:    . f > 0) f − γS C , dla (j 6= i) ∧ (D (1 − γ)hj D it jt j f , rjt (i) = (1 − γ)hj D dla (j = i) ∧ (T D ≤ Cendj,t−1 ) jt    −∞, w przeciwnym razie. (1.16a) (1.16b) (1.16c). – Przypadek (1.16a) nawiązuje do sytuacji w której maszyna w okresie t jest w gotowości do produkcji wyrobu innego niż wyrób j (konieczne jest wykonanie przezbrojenia na wyrób j), oraz w okresie t istnieje dodatni skumulowany popyt f na wyrób j. D jt – Przypadek (1.16b) nawiązuje do sytuacji w której maszyna w okresie t jest w gotowości do produkcji wyrobu j, oraz skok wstecz do okresu ndj,t−1 jest możliwy. – Przypadek (1.16c) występuje w sytuacji, gdy dla wyrobu j w okresie t całkof = 0, lub jeżeli maszyna jest w gotowości do produkcji wyrobu wity pozostały D jt j w okresie t, jednak niemożliwe jest wykonanie skoku wstecz do okresu ndj,t−1 . Wartość parametru γ bliskie wartość jeden (wartość zero) zwiększają szansę na tworzenie relatywnie większych (mniejszych) partii produkcyjnych i wykonywanie (niewykonywanie) skoków wstecz. 21.

(24) Rozdział 1. Kryterium podejmowania losowych decyzji wyboru wyrobu zostało zdefiniowane następująco:. ρjt (i) =.           . dla rjt (i) = −∞. 0,    .    . rkt (i)|k ∈ N (1.17) δ + ) , w przeciwnym razie ∧     rkt (i) > −∞ . (rjt (i) − min . gdzie: δ ≥ 0,  ≥ 0. Produkty dopuszczone w danym okresie t do produkcji posiadają dodatnią wartość kryterium decyzji (dla  > 0). Produkty „lepsze” posiadające dodatnią wartość miary „zachowanych” kosztów, są porównywane z gorszymi alternatywami (to znaczy z produktami z mniejszymi lub ujemnymi wartościami miary „zachowanych” kosztów). Dodatkowo szanse na uruchomienie partii produktu j posiadającego większą wartość miary „zachowanych” kosztów wzrastają kiedy δ > 1 (maleją kiedy δ < 1). Przedstawiona metoda wykorzystana do rozwiązania zadania PLSP opiera się na trzech głównych założeniach: – planowanie wielkości i szeregowanie partii produkcyjnych przeprowadzone jest od ostatniego do pierwszego okresu planowania, – w każdym okresie nie może wystąpić więcej niż jedno przezbrojenie, – kryterium podejmowania decyzji ρjt (i), używane jest do losowania wyrobu dla którego uruchomiona zostania partia produkcyjna w danym okresie. Formalny zapis losowego algorytmu poszukiwania wstecz rozwiązania (ang. backward add-method for PLSP) nazwanego BAPLSP, przedstawia schemat:. 22.

(25) Rozdział 1. BAPLSP Inicjalizacja yjt := 0 (j = 1, . . . , N ; t = 0, 1, . . . , T ) i := 0 t := T qjt := 0 (j = 1, . . . , N ; t = 0, 1, . . . , T ) f := D jt. T D :=. T P τ =t N P. djτ (j = 1, . . . , N ; t = 0, 1, . . . , T ). {całkowity pozostały popyt dla wyrobu}. f D j,1. {calkowity pozostały popyt dla zadania}. j=1. while T D > 0 ∧ t > 0: determine ρjt (i); (j = 1, . . . , N ) if. {brak gotowość do produkcji wyrobów} {maszyna nie jest w gotowości do produkcji żadnego wyrobu} {zaczynamy od końca horyzontu planowania}. N P. ρjt (i) = 0 then t := t − 1. j=1. {początek pętli 1}. {krok w tył jeśli brak dostępnego wyrobu w okresie}. {wybór i harmonogram dla wyrobu} else: ∗ wylosuj proporcjonalnie j na podstawie ρjt (i) {status przezbrojenia zmieniony na i := j ∗ wyrób j ∗ }. if yit = 1: yi,t−1 , . . . , yi,ndi,t−1 := 1 t := ndi,t−1 f > 0: while D it if. N P. yjt = 0 then yit := 1. j=1. else yj,t−1 := 1 f } qit := min{Ct ; D it Ct = Ct − qit f := D f − q (τ = 1, . . . , t) D iτ iτ it. T D = T D − qit if Ct = 0 then t := t − 1 if. N P j=1. yj,t−1 = 1 then t := t − 1. {czy wymagany jest skok do docelowego wcześniejszego okresu} {przewidywana gotowość maszyny do produkcji wyrobu} {początek pętli 2, harmonogram dla wybranego wyrobu} {przypisanie przezbrojenia dla (drugiego) wyrobu w okresie t} {przypisanie przezbrojenia dla pierwszego wyrobu w okresie t} {wyznaczenie wielkość produkcji} {aktualizacji zdolność produkcyjnej okresu} {aktualizacja pozostałego popytu na wyrób} {aktualizacja całkowitego pozostałego popytu} {krok wstecz jeśli wyczerpano zdolność produkcyjną} {krok wstecz jeśli dwa produkty zostały przypisane do okresu}. 23.

(26) Rozdział 2 Nowa heurystyka dla zadań z maszynami równoległymi. W rozdziale opisano konstrukcje heurystycznego stochastycznego algorytmu dla problemu planowania wielkości i szeregowania partii produkcyjnych na identycznych równoległych maszynach opisanego w modelu (1.11a - 1.11k). Algorytm ten stanowi pewną adaptację algorytmu BAP LSP opracowanego przez K. Haasego dla problemu planowania wielkości i szeregowania partii produkcyjnych na jednej maszynie przedstawionego w rozdziale 1.5. Opracowany algorytm posiada dwa nieznacznie różniące się od siebie warianty, odpowiednio dla zadań, w których liczba wyrobów jest większa od liczby maszyn oraz dla zadań z liczbą wyrobów mniejszą lub równą liczbie dostępnych maszyn. Opracowany algorytm wyznacza rozwiązanie od ostatniego do pierwszego okresu planowania. Kolejno dla każdej maszyny wybierany jest wyrób, który będzie na niej produkowany. Wielkość tworzonej dla wyrobu partii produkcyjnej zależy od niewykorzystanej zdolność produkcyjnej maszyny oraz pozostałego zapotrzebowania na produkcję danego wyrobu. Może się zdarzyć, że po zakończeniu działania algorytmu, uzyskane rozwiązanie będzie niedopuszczalne ze względu na pozostały jeszcze do zaplanowania popyt na poszczególne wyroby.. 2.1. Formalny opis. Podobnie jak w algorytmie BAP LSP dla zadania z jedną maszyną przyjmijmy za Haase (1994), że zdolność produkcyjne Ct dla wszystkich okresów planowania t są sobie równe i wynoszą 1, oraz czasy wykonania poszczególnych wyrobów pj też są równe i wynoszą 1. Podobnie rozwiązanie wyznaczane jest wstecz od ostatniego okresu tworzenia planu T do okresu pierwszego. Planowana jest zawsze maksymalna możliwa wielkość produkcji, danego wyrobu, w danym okresie, na wybranej maszynie. W każdym okresie poszukiwania rozwiązania τ ∈ T , wyroby posiadające niezaspokojony popyt przydzielane są do kolejnych maszyny. Przydział wyrobu do maszyny jest możliwy, jeśli. 24.

(27) Rozdział 2. w danym okresie wybrana maszyna posiada wolną zdolność produkcyjną, przed przezbrojeniem lub po przezbrojeniu. Przydzielany do maszyny produkt losowany jest ze zbioru aktualnie dostępnych wyrobów Nτ0 . Zbiór ten jest zawsze aktualizowany dla każdej maszyny i danego okresu τ . Każdy wyrób w tym zbiorze ma przypisany pewny priorytet. Dla wylosowanego wyrobu j oraz wybranej maszyny m w okresie τ , tworzona jest wstecz partia produkcyjna. Początkowy okres t utworzenia partii równy jest okresowi τ . Partia tworzona jest wstecz dla określonego okna czasowego [t0 ; τ ], gdzie okres t0 wyznacza liczbę okresów tworzenia partii produkcyjnej równą (τ − t0 ). Sposób wyznaczania liczby okresów tworzenia partii produkcyjnej opisano szczegółowo w części pracy poświęconej przebiegowi nowego algorytmu. Uogólniony opis przebiegu działania algorytmu: 1 Losuj wartość parametrów sterujących 2 τ =T 3 Dopóki występuje niezaplanowany popyt oraz τ > 0 4 Dla każdej maszyny m 5 Losuj wyrób j, gdzie j ∈ Nτ0 6 Kolejno dla t = τ ; t = τ − 1; . . . ; t = t0 7 Planuj partie dla wyrobu j 8 τ =τ −1 9 Zwróć rozwiązanie. Wartość całkowitego niezaspokojonego popytu T D (1.13) na początku działania algorytmu równa jest sumie całkowitego zapotrzebowania na produkty. Podczas przebiegu działania algorytmu po podjęciu każdej decyzji o liczbie produkowanych sztuk qejt danego wyrobu j w danym okresie t, wartość całkowitego niezaspokojonego popytu T D jest pomniejszana o ilość wyprodukowanych sztuk qejt . Jeśli po zakończeniu działania algorytmu wartość całkowitego niezaspokojonego popytu T D jest większa od zera T D ≥ 0, to dana ilość wyrobów nie została wyprodukowana na czas i otrzymane rozwiązanie jest niedopuszczalne. Wartość całkowitego niezaspokojonego popytu dla danego wyrobu j jest rówf (1.12) w okresie 0, czyli całkowitej liczbie na wartości niezaspokojonego popytu D j0 wyrobów jaką należy zaplanować do produkcji w okresach od okresu 1 do okresu T .. 25.

(28) Rozdział 2. f oraz warPrzykład 2.1. Należy wyznaczyć wartość niezaspokojonego popytu D j,t tość całkowitego niezaspokojonego popytu T D dla czterech okresów planowania t = (27, . . . , 30) dla zadania z dwoma wyrobami k oraz l.. t. .... 27. 28. 29. 30. dkt qkt. ... .... 1 -. 2 4. 3 -. 4 -. dlt qlt. ... .... 5 -. 6 10. 7 -. 8 -. Wyznaczone wartości: f D k,30 = (4 − 0) = 4 f f Dk,29 = D k,30 + (3 − 0) = 7 f f Dk,28 = Dk,29 + (2 − 4) = 5 f f D k,27 = Dk,28 + (1 − 0) = 6 f D l,30 = (8 − 0) = 8 f f Dl,29 = D l,30 + (7 − 0) = 15 f f Dl,28 = Dl,29 + (6 − 10) = 11 f f D l,27 = Dl,28 + (5 − 0) = 16 T D = 6 + 16 = 22.  Niech dbjt określa pozostały do zaplanowania popyt w danym okresie t dla danego wyrobu j. Na początku działania algorytmu jego wartość równe są popytowi djt . Jeśli dla danego wyrobu j w okresie t podjęta zostanie decyzja o produkcji pare pozostały do zaplanowania popyt dbjt zostaje tii tego wyrobu, o wielkości równej q, e pomniejszony o wartość min(dbjt , q). Zatem, jeżeli wielkość partii qe jest większa niż pozostały do zaplanowania popyt b djt , produkowana ponad potrzeby okresu t liczba produktów, pokryje zapotrzebowanie okresów późniejszych. Założono, że produkty produkowane w okresie t, ze względu na rosnące koszty magazynowania, pokrywają maksymalnie, na ile to jest możliwe, zapotrzebowanie kolejno następujących po sobie okresów. Postępowanie jest prowadzone, aż do wykorzystania całej nadmiarowej produkcji z okresu t. Dlatego, zmianie ulegają również wartość pozostałego do zaplanowania popytu dla późniejszych okresów planowania dbjt+1 , dbjt+2 , . . . , dbjT . W rozważanym przypadku, gdy wielkość partii qe jest większa niż pozostały do zaplanowania popyt dbjt , pozostały do zaplanowania popyt dbjt w okresie t na pewno równy będzie 0, natomiast w okresie t + 1, i odpowiednio w okresie t + 2, t + 3 . . . , będzie po kolei malał w zależności od e wielkość zaplanowanej partii q. Celowo wielkość partii qe nie posiada indeksów produktu i okresu, ponieważ w trakcie działania algorytmu może się zdarzyć, że dla tego samego wyrobu w tym samym okresie zdecydujemy o tworzeniu partii produkcyjnej więcej niż jeden raz. W takiej sytuacji zaplanowana produkcja qjt = qe0 + qe00 + . . . dla wyrobu j w okresie t. 26.

(29) Rozdział 2. Pozostały do zaplanowania popyt dbjt dla okna czasowego n = [t, . . . , T ] oraz decyzji o produkcji pewnej liczby qe danego wyrobu j w okresie t można opisać jako zależność rekurencyjna: (. e dbjn ← max(0, dbjn − q); qbn ← max(0, qe − dbjn ); dbj,n+1 ← max(0, dbj,n+1 − qbn ); qbn+1 ← max(0, qbn − dbj,n+1 );. (2.1). Przykład 2.2. Należy wyznaczyć wartości pozostałego do zaplanowania popytu dbk,2 dla pewnego wyrobu k dla zaplanowanej w dwudziestym szóstym okresie produkcji wyrobu qe = 9. Początkowe wartość pozostałego do zaplanowania popytu dbkt w poszczególnych okresach przedstawiono w tabelce. t. .... 25. 26. 27. 28. 29. 30. dbkt. .... 5. 5. 3. 2. 1. 2. n = 26 dbk,26 ← max(0; 5 − 9) dbk,26 = 0 n = 27 dbk,27 ← max(0; 3 − 4) dbk,27 = 0 n = 28 dbk,28 ← max(0; 2 − 1) dbk,27 = 1 n = 29 dbk,29 ← max(0; 1 − 0) dbk,29 = 1 n = 30 dbk,30 ← max(0; 2 − 0) dbk,30 = 2. qb26 ← max(0, 9 − 5) qb26 = 4 qb27 ← max(0, 4 − 3) qb27 = 1 qb28 ← max(0, 1 − 2) qb27 = 0 qb28 ← max(0, 0 − 1) qb29 = 0 qb28 ← max(0, 0 − 2) qb30 = 0.  c oznacza niezaspokojony Dla każdego okresu planowania wstecz τ , niech D jt popyt dla wyrobu j w dowolnym okresie t zsumowany w oknie czasowym W = [τ − λj , . . . , T ] :. c = D j,t.  T   P db. jeżeli t ∈ W,. s=t   db. w przeciwnym razie,. js ,. jt ,. t = 1, . . . , T. (2.2). Losowy parametr λj dla danego wyrobu j, decyduje o maksymalnej długości tworzenia wstecz jego partii produkcyjnej, która skutkuje powstawaniem zapasów. Dlatego przy planowaniu partii dla pewnego okresu planowania wstecz τ w oparciu o niezaspokojony 27.

(30) Rozdział 2. c , koszty związane z utrzymywaniem zapasów będą występować w utworzonej popyt D j,t partii produkcyjnej tylko od okresu τ − λj do okresu τ . c dla pewnego Przykład 2.3. Należy wyznaczyć wartości niezaspokojonego popytu D k,t wyrobu k w dwudziestym dziewiątym okresie poszukiwania rozwiązania oraz wartości losowego parametru λk = 2. Początkowe wartości pozostałego do zaplanowania popytu dbkt w poszczególnych okresach przedstawiono w tabelce.. t. .... 25. 26. 27. 28. 29. 30. dbkt. .... 5. 5. 3. 2. 1. 2. W = [29 − 2, . . . , 30] = [27, . . . , 30] ... c D k,25 = 5 c Dk,26 = 5 c D k,27 = 3 + 2 + 1 + 2 = 8 c Dk,28 = 2 + 1 + 2 = 5 c D k,29 = 1 + 2 = 3 c Dk,30 = 2. (t = 25) ∈ /W (t = 26) ∈ /W (t = 27) ∈ W (t = 28) ∈ W (t = 29) ∈ W (t = 30) ∈ W.  ˘ jτ oznacza pewien przewidyDla każdego okresu planowania wstecz τ , niech R wany zaoszczędzony zapas na dany wyrób j dla okna czasowego W = [τ − ψ, . . . , T ]: ˘ jτ = R. X. dbjs ,. t∈W. (2.3). s∈W. ˘ jτ na dany wyrób j w okresie Jeżeli losowy parametr ψ = 0, to przewidywany zapas R ˘ jt = P dbjs . planowania τ jest równy całkowitemu niezaspokojonemu popytowi R s∈[t,...,T ]. 28.

(31) Rozdział 2. Przykład 2.4. Należy wyznaczyć wartości przewidywanego zaoszczędzonego zapasu ˘ k29 dla pewnego wyrobu k oraz dwudziestego dziewiątego okresu planowania, dla losoR wych wartości parametru ψ = (0, 2). Początkowe wartości pozostałego do zaplanowania popytu dbkt w poszczególnych okresach przedstawiono w tabelce. t. .... 25. 26. 27. 28. 29. 30. dbkt. .... 5. 5. 3. 2. 1. 2. ψ=0 ˘ k,29 = 1 + 2 = 3 R ψ=2 ˘ k,29 = 3 + 2 + 1 + 2 = 8 R. W = [29 − 0, 30] = [29, 30] W = [29 − 2, 30] = [27, . . . , 30].  Niech rjτ (i) oznacza wartość utraconych korzyści jeśli nie wybierzemy danego wyrobu j przy założeniu, że dana maszyna jest w gotowość do produkcji wyrobu i w okresie τ , dla losowego parametru σ:    . c ≥σ−1 ˘ jτ h − γS C dla j 6= i; D (1 − γ)R j,τ j c ˘ rjτ (i) =  (1 − γ)Rjτ h dla j = i; Dj,τ ≥ σ − 1   −∞ w przeciwnym razie. (2.4). Wartość utraconych korzyści została zdefiniowania podobnie jak zrobił to Haase (1994) w swojej pracy dla problemu planowania wielkości i szeregowania partii produkcyjnych na pojedynczej maszynie. Dla każdej maszyny m oraz produktu j w okresie τ , wyznaczana jest miara utraconych korzyści jako suma zaoszczędzonych (dodatnich) kosztów utrzymywania ˘ jτ hj oraz poniesionych (ujemnych) kosztów uruchomienia nowej partii prozapasów R dukcyjnej SjC . Wyznaczenie wartości miary utraconych korzyści, a tym samym dopuszczenie możliwości wylosowania wyrobu w celu zaplanowania jego produkcji jest możliwe, c na dany wyrób j w danym okresie τ jest większy od jeżeli niezaspokojony popyt D jτ minimalnego wymaganego pozostałego zapotrzebowania σ − 1. Losowy parametr σ określa minimalne wymagane pozostałe zapotrzebowanie c Dj,τ na dany wyrób j w danym okresie planowania τ . Parametr równy wartości 1 nie ogranicza wyboru produktu. Parametr równy wartości 2 oznacza, że pozostałe zapotrzebowanie na dany wyrób wystarczy na zaplanowanie partii produkcyjnej nie krótszej niż 1 okres, odpowiednio parametr równy wartość 3, nie krótszej niż 2 okresy, itd.; Parametr γ określa wagi dla dwóch rodzajów powstających kosztów. W zależności od swojej wartości pozwala potencjalnie na sterowanie wielkością tworzenia partii produkcyjnych (parametr γ przyjmuje wartości z przedziału [0; 1]). Jeśli parametr γ 29.

(32) Rozdział 2. jest bliski wartości 1, wtedy możemy oczekiwać, że tworzone będą relatywnie duże partie produkcyjne. Największy wpływ na wartości miary utraconych korzyści rjτ będą miały koszty związane z przezbrojeniami, a więc potencjalnie wzrasta szansa wyboru wyrobów dla których koszty przezbrojenia mają wartości mniejsze SjC . Przeciwnie, gdy parametr γ będzie bliski wartości 0, wtedy możemy oczekiwać, że tworzone będą relatywnie małe partie produkcyjne (będzie ich więcej). Większą ˘ jτ hj . wagę będą miały zaoszczędzone koszty utrzymywania zapasów R Niech ρjτ (i) oznacza kryterium wyboru wyrobu, dla którego będzie uruchomiona partia produkcyjna. Podobnie jak dla przypadku z jedną maszyną przedstawionego przez Haasego (1994): (. 0; dla rjτ = −∞, δ (rjτ − min{rkτ |k ∈ N ∧ rkτ > −∞} + ε) w przeciwnym razie, gdzie δ ≥ 0, ε > 0 ρjτ (i) =. (2.5). Wyroby, dopuszczone do losowania, mają wartości kryterium decyzji ρjτ większą od 0 i są „porównywane” z gorszymi alternatywami, ( wyrobami posiadającymi mniejsze wartość ρjτ ). Wartości kryterium decyzji ρjt (i) równa 0 oznacza, że wyrób nie jest brany pod uwagę podczas podejmowania losowej decyzji wyboru wyrobów. Większa wartość kryterium decyzji daje wyrobowi większą szansę na jego wybór. Dlatego wartość parametru δ > 1 zwiększa szanse wyrobów o większej wartości utraconych korzyści rjτ (i) odwrotnie, gdy δ < 1 szanse się zmniejszają. Parametr  > 0 daje pewną szanse także na wylosowanie wyrobu o najgorszej wartości kryterium utraconych korzyści min{rkτ (i)|k ∈ N ∧ rkτ (i) > −∞}. Wyroby są wybierane na podstawie obliczonych wartość ρjτ (i) w sposób losowy, poprzez losowanie proporcjonalne. Przykład 2.5. Należy wyznaczyć wartości kryterium dla trzech wyrobów j, k, l dla dwudziestego siódmego okresu poszukiwania rozwiązania oraz pewnej maszyny m będącej w gotowość do produkcji wyrobu k w tym okresie. Koszty utrzymywania zapasów w okresie oraz koszty przezbrojenia są takie same dla wszystkich wyrobów i wynoszą odpowiednio 2 i 10. P arametr Wartość t . . . 25 26 27 28 29 30 ψ 2 dbjt. .... 0. 0. 0. 0. 0. 1. dbkt. .... 5. 5. 3. 2. 1. 2. dblt. .... 2. 7. 0. 0. 0. 0. c f D j,27 = Dj,27 = 0 + 0 + 0 + 1 = 1 c f D k,27 = Dk,27 = 3 + 2 + 1 + 2 = 8 c f D l,27 = Dl,27 = 0 + 0 + 0 + 0 = 0. γ δ  σ. 0.3 2 1 2. c ˘ j,27 = 0 + 0 + D R j,27 = 1 c ˘ k,27 = 5 + 5 + Dk,27 = 18 R c ˘ j,27 = 2 + 7 + D R l,27 = 9. 30.

(33) Rozdział 2. rj,27 (k) = 0.7 · 1 · 2 − 0.3 · 10 = −1.6 rk,27 (k) = 0.7 · 18 · 2 = 25.2 rl,27 (k) = −∞ ρj,27 (k) = (−1.6 + 1.6 + 1)2 = 1 ρk,27 (k) = (25.2 + 1.6 + 1)2 = 772.84 ρl,27 (k) = 0.  Opracowany algorytm planowania wielkości i szeregowania partii produkcyjnych dla maszyn równoległych, opracowano dla przypadku gdy liczba wyrobów jest większa od liczby maszyn nazwany BAP LSP/F N >µ oraz dla przypadku gdy liczba wyrobów jest mniejsza bądź równa liczbie maszyn nazwany BAP LSP/F N ≤µ . Formalny opis stochastycznego heurystycznego algorytmu BAP LSP/F , dla przypadku BAP LSP/F N >µ oraz BAP LSP/F N ≤µ przedstawia schemat: BAP LSP/F N >µ , BAP LSP/F N ≤µ : Inicjalizacja zmiennych: 1 γ, δ, , ψ, ω, α 2 yemτ := ∅, cmτ := 1, m ∈ M, τ ∈ T. {losowanie parametrów} {brak gotowość do produkcji wyrobów, początkowa zdolność produkcyjna} {brak produktu, rozpartujemy okres dla maszyny m}. 3 im := ∅, tm := T, m ∈ M c , T D, db , j ∈ N , τ ∈ T {inicjalizacja zmiennych} 4 qjτ := 0, D jτ jτ Przebieg algorytmu: {zaczynamy od ostatniego okresu} 5 τ := T {początek pętli 1} 6 while T D > 0 ∧ τ > 0: {kolejno dla każdej maszyny dostępnej 7 for m ∈ M if τ ≤ tm : w okresie} 8 tm := τ 9 if yem,tm = ∅ ∧ tm < T {przeniesienie gotowości dla maszyny} 10 yem,tm := im 11 random σj ; j ∈ N 12 if random uniform (0, 1) ≤ α: 13 λj :=random(σj , max(σj + 1, tm ); j ∈ N 14 else: λj := tm 15 determine rj,tm (im ); ρj,tm (im ); j ∈ N P 16 if j∈N ρj,tm (im ) = 0: 17 tm := tm − 1; continue for next m b 18 i :=random proportional to ρj,tm (im ) c 19 determine D bi,tm {początek pętli 2, harmonogram dla c 20 while Dbi,tm > 0 ∧ tm > 0 : wybranego produktu} 21. qe := 0, ce := 0. {początkowa wielkość produkcji, zapotrzebowanie na zdolność produkcyjną}. 31.

(34) Rozdział 2 {przypadki dla wykonania przezbroje-. 22 23 24 25 26 27 28 29 30 31 32. if yem,tm = ∅ ∨ yem,tm = bi: nia} yem,tm := bi c ) qe := ce := min(cm,tm , D bi,tm T b e elseIf ym,tm 6= i ∧ cm,tm ≥ Sim : yem,(tm −1) := bi c qe := max(0, min(ctm ,m − SiTm , D im ,tm ) T e e c := q + Sim e elseIf ym,tm 6= bi ∧ cmtm < SiTm : yem,tm −1 := bi, tm := tm − 1; continue while e cm,tm := cm,tm − ce qbi,tm := qbi,tm + q, c , TD determine dbbi,tm , D bi,tm. 33. if cm,tm ≤ ω ∨ tm ≥ τ − λbi ∗ :dukcyjnej,. {wykorzystanie. 34 35 36. zdolność *–rozszerzenie BAP LSP/F N >µ }. prodla. tm := tm − 1; else: break := bi. im b c =D c if all tm < τ : {τ := τ − 1 and D jτ j,(τ +1) + djτ ; j ∈ N }. W wierszu 1. losowane są wszystkie wartości stałych parametrów dla całego przebiegu działania algorytmu poszukiwania rozwiązania. W wierszu 2. na początku działania algorytmu dana maszyna m w danym okresie t nie jest w gotowości yemt do produkcji żadnego wyrobu. Pozostała zdolność produkcyjna cmt danej maszyny m w danym okresie tworzenia planu t jest równa całkowitej dostępnej zdolność produkcyjnej okresu t, gdyż nie produkujemy jeszcze żadnych wyrobów. W wierszu 3. ostatnio produkowany wyrób im na maszynie m jest niezdefiniowany. Okres dostępności maszyny tm w którym możemy rozpocząć planowanie wyrobów jest równy ostatniemu okresowi planowania T . W wierszu 4. początkowa wielkość produkcji danego wyrobu j w danym okresie f tworzenia planu τ jest równa zeru. Obliczana jest wielkość pozostałego popytu D j,t c dla wyrobów i okresów oraz całkowity pozostały popyt T D. Niezaspokojony popyt Djt dla wyrobów i okresów wyznaczany jest dla okna czasowego W = [τ, . . . , T ]. Wartość niezaplanowanej do produkcji liczby wyrobów dbjτ początkowo równa jest popytowi djt . W wierszu 6. planowanie rozpoczyna się od ostatniego okresu horyzontu poszukiwania rozwiązania t = T . Poszukiwanie rozwiązania trwa do momentu zaspokojenia całkowitego popytu T D. W wierszu 7. kolejno dla każdej maszyny m rozpoczyna się uruchomienie partii produkcyjnych danych wyrobów. Plan tworzony jest na danej maszynie m pod warunkiem, że jest ona w danym okresie tworzenia planu τ dostępna (nie produkuje innych wyrobów), a pozostała zdolność produkcyjna umożliwia zaplanowanie produkcji wyrobu w okresach od 1 do τ . W wierszach 9. oraz 10. jeśli na danej maszynie m przez pewną liczbę okresów późniejszych od τ , nie występuje produkcja żadnego wyrobu, a po tych okresach 32.

(35) Rozdział 2. bez produkcji, maszyna w kolejnym okresie produkuje pewien wyrób, to maszyna w okresie τ przyjmuje gotowość yem,tm do produkcji ostatnio produkowanego na niej wyrobu im . W wierszach od 11. do 14. losowane są kolejno dwa parametry σj oraz λj , dla wszystkich wyrobów j ∈ N . Jeżeli pozostałe zapotrzebowanie na dany wyrób j w okresie τ będzie większe bądź równe σj , to będzie tworzona nowa partia produkcyjna (tworzona partia produkcyjna nie będzie krótsza niż wartość σj )(porównaj 2.4). Parametr λj decyduje o długości planowania wstecz produkcji danego wyrobu, która skutkuje powstaniem zapasu. Wartość parametru λj , losowana jest z pewnym prawdopodobieństwem α. Stanowi ono losowy parametr wejściowy dla danego przebiegu nowego algorytmu, określa prawdopodobieństwo wystąpienia sytuacji w której losujemy wartość parametru λj , w przeciwnym razie parametr λj jest równy maksymalnej możliwej długości planowania wstecz produkcji danego wyrobu. Wartość losowe parametru λj dla wyrobu j, należą do przedziału ograniczonego z dołu określoną długością tworzonej minimalnej partii produkcyjnej σj , a maksymalną możliwą długością planowania wstecz produkcji danego wyrobu j. W wierszu 15. kolejno dla wszystkich wyrobów j ∈ N , danej maszyny m oraz gotowości maszyny do produkcji wyrobu im w okresie τ (tm = τ ), wyznaczane są wartość utraconych korzyści rjt (im ) oraz wartość kryterium dla decyzji wyboru wyrobów ρjt (im ) (porównaj 2.4 oraz 2.5). W wierszach od 16. do 18. losowany jest wyrób bi, dla którego będziemy tworzyć partię produkcyjną. Jeśli w danym okresie τ dla danej maszyny m nie ma dostępnego P do losowania żadnego wyrobu j∈N ρjt = 0, kontynuujemy tworzenie rozwiązania dla następnej maszyny. c , W wierszu 19. wyznaczamy częściowy całkowity niezaspokojony popyt D bi,tm b dla wylosowanego wyrobu i na maszynie m oraz okresu tworzenia partii na danej maszynie tm (na początku tworzenia wstecz partii wyrobu i, okres ten jest równy okresowi τ ). W wierszu 20. uruchamiamy partie produkcyjną planując ją wstecz dopóki wyc b stępuje niezaspokojony popyt D bi,tm > 0 dla wyrobu i oraz okresu tworzenia partii tm na danej maszynie m. Okres tworzenia partii tm musi mieścić się w horyzoncie planowania tm ≥ 0, okres pierwszy jest ostatnim okresem tworzenia wstecz rozwiązania. W wierszu 20. określamy wielkości produkcji qe oraz zapotrzebowania na zdolność produkcyjną ce w okresie tm ,a ich wielkość są wyznaczane w zależności od przypadku: 1. gdy maszyna m jest w gotowość do produkcji tego samego wybranego wyrobu bi (lub nie jest w gotowości do produkcji żadnego wyrobu, sytuacja ta występuje tylko raz dla każdej maszyny, gdy po raz pierwszy rozpoczynamy produkcję wyrobów na danej maszynie i nie została zilustrowana graficznie) (wiersze 22 do 24);. 33.

Cytaty

Powiązane dokumenty

Mieszaniny: Nie ma danych dla produktu. Mieszaninę sklasyfikowano metodą obliczeniową. Nie ma danych dla produktu. Metodą obliczeniową, produkt nie jest zaklasyfikowany

Polkniecie Spozycie powoduje oparzenia górnych dróg pokarmowych i oddechowych..

S28 - Zanieczyszczona skóre natychmiast przemyc duza iloscia wody R36 - Dziala drazniaco na oczy..

Moze powodowac podraznienie oczu u osób podatnych.. Klasyfikacja

Oczy Moze powodowac podraznienie oczu u osób podatnych.. Szkodliwe dzialanie

S26 - W przypadku zanieczyszczenia oczu przemyc natychmiast duza iloscia wody, zwrócic sie o pomoc lekarska Unia Europejska5. Skutki dla

Skóra Moze powodowac podraznienie skóry u osób podatnych. Bioakumulacja Nie

Polkniecie Spozycie powoduje oparzenia górnych dróg pokarmowych i oddechowych..