BALANSWANIE BCIĄŻEŃ JEDNSTEK SEKCYJNYCH Tomaz PRIMKE Strezczenie: Złożony problem konfiguracji wariantów gotowości może zotać rozwiązany poprzez dekompozycję na protze podproblemy. Jednym z takich podproblemów jet problem balanowania obciążeń jednotek ekcyjnych. W pracy zotał opiany model matematyczny tego problemu. piany zotał również algorytm heurytyczny LPT-plit, bazujący na znanym z literatury algorytmie LPT. Słowa kluczowe: algorytmy ymalizacji dykretnej, zarządzanie zmianami organizacyjnymi, programowanie całkowitoliczbowe, zeregowanie zadań. 1. Wtęp Problem ymalizacji konfiguracji wariantów gotowości (KWG) zotał opiany w [3], [2] i uogólniony w [1]. W problemie tym mamy do czynienia z ytemem produkcyjnym kładającym ię z wielu jednakowych jednotek, będących elatycznymi modułami produkcyjnymi. W ytemie tym muimy zrealizować pewne procey produkcyjne. Zakładamy, że dla każdego proceu on mamy daną prognozę wielkości produkcji Zk(on). Zazwyczaj nie jet możliwa realizacja wzytkich proceów bez przezbrajania jednotek produkcyjnych. W problemie KWG zakładamy, że wzytkie jednotki będą przezbrajane jednocześnie. Spoób przezbrojenia jednotek, przypianie tych jednotek do pozczególnych operacji w proceach, a także pogrupowanie jednotek (oraz proceów) w ekcje nazywane jet wariantem gotowości. Problem ymalizacji KWG polega na doborze takich wariantów, aby cza realizacji wzytkich proceów był jak najmniejzy. Do rozwiązywania problemu KWG w [3] zaproponowano algorytm ewolucyjny CAE- KWG. W algorytmie tym dokonano dekompozycji złożonego problemu ymalizacji KWG na wiele podproblemów. Znane prognozy Zk(on) dzielone ą na plany ekcyjne Zoj(on). Tworzenie ekcji w wariancie gotowości w algorytmie CAE-KWG [3] polega na przydzielaniu do ekcji kolejnych planów ekcyjnych. Z każdym planem ekcyjnym związany jet pewien proce produkcyjny. Do ekcji przydzielane ą również jednotki produkcyjne (nazywane w odnieieniu do ekcji jednotkami ekcyjnymi) w taki poób, aby realizacja wzytkich proceów w ekcji była możliwa. Tak utworzone ekcje grupuje ię natępnie w warianty gotowości. Tematem niniejzego artykułu jet problem balanowania obciążeń jednotek ekcyjnych. Polega on na przypianiu jednotek do operacji w ekcjach w taki poób, aby obciążenie ekcji było jak najmniejze. 2. Sformułowanie problemu W algorytmie CAE-KWG, po określeniu planów ekcyjnych oraz przydzieleniu jednotek do ekcji, trzeba przypiać pozczególne jednotki ekcyjne do realizacji wzytkich operacji w proceach. Nie jet to zadanie prote do rozwiązania i zotało podzielone na dwa podproblemy. W pierwzej kolejności jednotki ekcyjne zotają 422
przypiane do operacji. Natępnie określa ię, w ramach jakich konkretnie proceów ekcyjnych będą one realizowane. W niniejzym punkcie zotanie opiany ten pierwzy podproblem. Warto jet zwrócić uwagę na pewien fakt. W ekcji realizowane ą pewne procey, które kładają ię z operacji. Do tych operacji przypiane ą jednotki ekcyjne. W pierwzym etapie, będącym właśnie problemem balanowania obciążeń jednotek ekcyjnych, bierze ię pod uwagę tylko operacje. Decyzje dotyczące teg w ramach jakiego proceu produkcyjnego ma zotać wykonana operacja na danej jednotce, zotają podjęte w kolejnym etapie algorytmu CAE-KWG. Konekwencją takiej dekompozycji tego problemu jet umowanie na pozczególnych jednotkach planów operacji, a nie proceów, we wzorze (2). Jet to różnica w tounku do modeli problemu KWG opianych w [3] i [1]. Plany produkcyjne, a właściwie prognozy, ą jednak określone dla proceów. Dlatego w opiywanym problemie należy wyznaczyć plany produkcyjne Zo(o) dla wzytkich rodzajów operacji o zgodnie z natępującym wzorem: (1) Zo ( o) Zoj( on) Lop( on) on N gdzie: N zbiór proceów produkcyjnych, które mają zotać zrealizowane w ekcji zbiór rodzajów operacji, które mają zotać zrealizowane w ekcji Lop(on) liczba wykonań operacji rodzaju o przypadająca na jednokrotne wykonanie proceu on Zbiór jet oczywiście wyznaczany na podtawie zbioru N, w oparciu o znany w problemie KWG podział proceów produkcyjnych na operacje. Dany jet więc zbiór rodzajów operacji oraz zbiór jednotek J. Dla każdego rodzaju operacji o dany jet cza wykonywania To(o) oraz (wpomniany wcześnie plan produkcji Zo(o). Plan ten może zotać zrealizowany na wzytkich jednotkach j J. Dla każdej jednotki określona jet makymalna liczba rodzajów operacji JM(, do których ta jednotka może zotać przypiana. znaczmy plan wykonań operacji rodzaju o na jednotce j przez Zo(. Aby wzytkie plany produkcji Zo(o) zotały wykonane, mui być pełniony warunek: (2) przy czym każda zmienna Zo( 0. Jednocześnie żadna jednotka j nie może zotać przypiana do więkzej liczby rodzajów operacji, niż JM(: B( JM(, dla j J (3) przy czym J j o Zo( Zo( o), 0 B( 1 Warunki (2) i (3), przy uwzględnieniu dziedzin zmiennych decyzyjnych Zo( oraz B(, pozwalają 423 dla o gdy Zo( 0 gdy Zo( > 0 (4)
wyznaczyć rozwiązanie dopuzczalne problemu balanowania obciążeń jednotek ekcyjnych. Zależy nam jednak na uzykaniu możliwie najmniejzego obciążenia całej ekcji. W tym celu wprowadzamy do problemu zmienne Xj(, których wartości będą równe obciążeniom (czaowym) jednotek j i zmienne Xj(, których wartości będą równe obciążeniom jednotek j konkretnym rodzajem operacji o. Związek pomiędzy zmiennymi Xj( i zmiennymi Zo( jet natępujący: (5) bciążenie całej jednotki można wyrazić jako umę obciążeń tej jednotki pozczególnymi rodzajami operacji: (6) Problem balanowania jednotek ekcyjnych polega na znalezieniu takich wartości zmiennych decyzyjnych Zo( (oraz powiązanych z nimi zmiennych B( i Xj(), aby obciążenie ekcji określone wzorem: (7) było jak najmniejze. Podumowując, w problemie balanowania obciążeń jednotek ekcyjnych dane ą: zbiór rodzajów operacji zbiór jednotek ekcyjnych J Dla każdego rodzaju operacji o dane ą: plan produkcyjny Zo(o) cza wykonywania To(o) Ponadto dla każdej jednotki produkcyjnej j J dana jet makymalna liczba operacji JM(, do której jednotka może zotać przypiana. Zmiennymi decyzyjnymi ą: plany wykonań operacji rodzaju o na jednotce j Zo(, dla o i j J zmienne pomocnicze (binarne) B(, dla o i j J obciążenia (czaowe) jednotek pozczególnymi rodzajami operacji Xj(, dla o i j J obciążenia jednotek Xj(, dla j J obciążenie ekcji X 3. Algorytm LPT-Split Xj ( Zo( To( o), dlao i j Xj( o Xj(, X ma Xj( J dla j J Aby rozwiązać problem balanowania obciążeń jednotek ekcyjnych, w [3] zaproponowano dwa różne algorytmy. Jednym z nich był algorytm LPT-plit, który zotanie dokładnie opiany w tym artykule. piany w poprzednim punkcie problem jet podobny do problemów zeregowania zadań na mazynach równoległych. Najważniejzą różnicą jet wytępowanie ograniczenia na makymalną liczbę rodzajów operacji JM(, do jakiej można przypiać daną jednotkę j. Z tego względu nie można wykorzytać znanych z literatury algorytmów litowych bez ich uprzedniej modyfikacji. W algorytmie litowym LPT, w każdym kroku wybiera ię operację o najwiękzym czaie wykonywania i przydziela ię ją do najmniej obciążonej jednotki. W problemie j J 424
balanowania obciążeń jednotek ekcyjnych za odpowiednik czau wykonywania operacji rodzaju o można przyjąć wartość To(o) Zo(o), natomiat obciążenie jednotki ekcyjnej j zotało oznaczone przez Xj(. W pierwzej fazie algorytmu LPT-plit wykorzytuje ię te podobieńtwa, aby wtępnie przypiać jednotki do operacji, podobnie jak w znanym z literatury algorytmie LPT. Celem drugiej fazy algorytmu jet lepzy podział obciążenia operacjami pozczególnych jednotek ekcyjnych, przy równoczenym pełnieniu warunku (3). Wzytkie kroki tej fazy powtarzane ą w pętli, aż do momentu zakończenia algorytmu. Krok 1: Wyznacz jednotkę j ma, cechującą ię najwiękzym obciążeniem w ekcji. W dalzych krokach będziemy dążyli do zmniejzenia obciążenia jednotki j ma koztem zwiękzenia obciążenia innej jedotki w ekcji (oznaczmy ją przez j ). Trzeba będzie zrobić to w taki poób, aby obciążenie ekcji ię zmniejzyło. Krok 2: Utwórz zbiór pomocniczy ZJ X. Zbiór ZJ X powinien zawierać te jednotki, które można przypiać do jednej z operacji przypianych do jednotki j ma, zmniejzając obciążenie ekcji. Zbiór ten można zdefiniować natępująco: przy czym ZJ X J { j j j Xj( + To < Xj( j ) : ma min ma To rodzajów operacji, do których zotała przypiana jednotka j min 425 gdzie: ( zbiór Chcąc zmniejzyć obciążenie jednotki j ma, jednocześnie zwiękzając obciążenie innej jednotki j, trzeba przypiać jednotkę j do jednej z tych operacji, do których jet przypiana jednotka j ma. bciążenie Xj(j ma ) zmniejzy ię przynajmniej o wartość To(o ) dla wybranej operacji o (j ma ). Wartość To min określa więc najmniejzą możliwą zmianę obciążenia jednotki j ma. Ponieważ w wyniku zmiany obciążeń obydwu jednotek obciążenie całej ekcji powinno ię zmniejzyć, obciążenie Xj(j ) powinno być mniejze od obciążenia Xj(j ma ) przynajmniej o wartość To min + 1. Krok 3: Utwórz zbiory pomocnicze ZJ oraz ZJ JM. min To( o) ( j ) Itnieją tylko dwie możliwości zmiany obciążeń jednotki j ma i innej, wybranej jednotki j. Spośród wzytkich rodzajów operacji, do których jet przypiana jednotka j ma, można wybrać taki, do którego jet również przypiana jednotka j. Zbiór wzytkich jednotek j pełniających taki warunek zdefiniowany jet natępująco: ZJ { j J : j j Drugą możliwością jet wybór takiego rodzaju operacji o, do którego jednotka j nie jet przypiana. W tym przypadku trzeba pamiętać o pełnieniu warunku (3). Zbiór o ma o ( j ma ma o ( j ) ) (8) (9) (10)
wzytkich jednotek j pełniających ten warunek zdefiniowany jet natępująco: ZJ JM { j J : j jma B( < JM ( o (11) Znając zbiory ZJ X, ZJ oraz ZJ JM, można wyznaczyć zbiór ZJ: Jeśli zbiór ZJ nie jet zbiorem putym, to znaczy, że można wybrać taki rodzaj operacji o (j ma ) i taką jednotkę j ZJ, że obciążenie Xj(j ma ) zotanie zmniejzone koztem zwiękzenia obciążenia Xj(j ) przy jednoczenym zmniejzeniu obciążenia całej ekcji. W przypadku gry zbiór ZJ jet zbiorem putym, należy zakończyć algorytm. Krok 4: Wybierz jednotkę j. ZJ ZJ X ( ZJ ZJJM ) Jako jednotkę j wybiera ię najmniej obciążoną jednotkę ze zbioru ZJ. Zmieniając obciążenie jednotek j ma oraz j najlepiej byłoby doprowadzić do ytuacji, w której obciążenia tych jednotek byłyby obie równe. ptymalna zmiana wartości obciążeń wynoi więc (12) Krok 5: Wybierz operację o. dx Xj( jma ) Xj( j ) 2 (13) Znając już j oraz wartość dx, można dokonać wyboru takiego rodzaju operacji o (j ma ), aby otateczna zmiana obciążenia tych jednotek była jak najbardziej zbliżona do wartości dx. Najlepza byłaby oczywiście operacja takiego rodzaju dla którego obciążenie Xj(j ma,o) dx. Definiujemy więc zbiór : Dodatkowo definiujemy zbiór : ma { o ( jma ) : Xj ( j ) dx ( j ) (14) (15) Jeśli zbiór zawiera jakieś rodzaje operacji, to wybieramy dowolne o. Gdy zbiór jet zbiorem putym, to jednotkę j można przypiać do dowolnej operacji o tylko wówcza, gdy JM ( ) > B( j ) j o (16) Znając rodzaj operacji o, jej obciążenie dx, oraz jednotki j ma i j, możemy przypiać jednotkę j do operacji o, odciążając jednotkę j ma i odpowiednio modyfikując wartości 426
zmiennych decyzyjnych Xj(o,j ma ), Xj(o,j ), Zo(o,j ma ) oraz Zo(o,j ). Po wykonaniu tych zmian należy powrócić do kroku pierwzego. W ytuacji, gdy nie udało ię wybrać żadnego rodzaju operacji, tworzymy zbiór + : { o ( jma ) : Xj ( j ) > dx + ma Natępnie wybieramy taki rodzaj operacji o +, dla którego obciążenie Xj(o,j ma ) jet najwiękze. Jeśli jednotki j nie można przypiać do operacji rodzaju o, uuwamy o ze zbioru +. Powtarzając te czynności doprowadzimy do ytuacji, w której albo będziemy znali rodzaj operacji o, do którego można przypiać jednotkę j, albo zbiór + będzie zbiorem putym. W przypadku, gdy uda ię wyznaczyć odpowiedni rodzaj operacji o, pozotaje wyznaczyć wartość obciążenia dxj, o które zmienią ię obciążenia Xj(j ma ) oraz Xj(j ). Wartość dxj będzie związana ze zmianą planów Zo(o,j ma ) i Zo(o,j ) o wartość dzo : (17) Z { z N : To ( o ) z > dx dzo To ( o ) min i Z i (18) gdzie: N zbiór liczb naturalnych czywiście dxj dzo To(o ). Po odpowiednim zmodyfikowaniu wartości zmiennych decyzyjnych Xj(o,j ma ), Xj(o,j ), Zo(o,j ma ) i Zo(o,j ), algorytm należy wykonać ponownie od kroku pierwzego. W ytuacji, gdy zbiór + jet zbiorem putym, tworzymy zbiór - : { o ( jma ) : Xj ( jma ) < dx (19) Natępnie wybieramy taki rodzaj operacji o -, dla którego obciążenie Xj(o,j ma ) jet najwiękze. Jeśli jednotki j nie można przypiać do operacji rodzaju o, uuwamy o ze zbioru -. Powtarzając te czynności doprowadzimy do ytuacji, w której albo będziemy znali rodzaj operacji o, do którego można przypiać jednotkę j, albo zbiór - będzie zbiorem putym. W przypadku, gdy uda ię wyznaczyć odpowiedni rodzaj operacji o, pozotaje wyznaczyć wartość obciążenia dxo, o które zmienią ię obciążenia Xj(o,j ma ) oraz Xj(o,j ). Wartość ta będzie równa po protu Xj(o,j ma ). Wartości zmiennych decyzyjnych Zo(o,j ma ) i Zo(o,j ) trzeba będzie zmienić w taki poób, aby warunek (5) był pełniony. Po wykonaniu tych zmian cały algorytm należy powtórzyć od kroku pierwzego. Gdy zbiór - będzie zbiorem putym, należy uunąć jednotkę j ze zbioru ZJ i powrócić do kroku czwartego. 4. Podumowanie W literaturze znanych jet wiele problemów klay zeregowania zadań na mazynach równoległych. Problemu balanowania obciążeń jednotek ekcyjnych nie można zaliczyć do tej klay. Rozwiązując takie zadanie nie mamy do czynienia z układaniem 427
harmonogramu, gdyż nie odpowiadamy na pytania kiedy mają zotać wykonane pozczególne operacje. Itnieje jednak dużo podobieńtw pomiędzy balanowaniem obciążeń jednotek ekcyjnych i problemami klay zeregowania zadań na mazynach równoległych, w których za kryterium ymalizacji przyjęto długość uzeregowania. Wielkości tej w oczywity poób odpowiada obciążenie ekcji. Ponadto długość uzeregowania nie zależy od kolejności wykonywania operacji na mazynach, a tylko od teg jakie mazyny zotały przypiane do jakich operacji. Itotną różnicą pomiędzy problemem balanowania obciążeń jednotek ekcyjnych a problemami zeregowania zadań na mazynach równoległych opiywanymi w literaturze jet ograniczenie (3) (które zotało podane w bardziej ogólnej potaci w [1]). Ze względu na wytępowanie tego ograniczenia, nie jet możliwe zatoowanie algorytmów heurytycznych opiywanych w literaturze do rozwiązywania problemu będącego przedmiotem niniejzego artykułu bez wprowadzenia odpowiednich modyfikacji. Z tego względu podjęto próbę opracowania algorytmu LPT-plit. Praca finanowana ze środków przewidzianych na BK-218/RAu1/2009 t.5. Literatura 1. Zaborowki M.: Sterowanie nadążne zaobami przediębiortwa. Wydawnictwo Pracowni Komputerowej Jacka Skalmierkieg Gliwice, 2008. 2. Zaborowki M., Primke T.: ptymalizacja konfiguracji wariantów gotowości w pewnym ytemie produkcyjnym. W: Knoala R. (red.) Komputerowo Zintegrowane Zarządzanie, ficyna Wydawnicza Polkiego Towarzytwa Zarządzania Produkcją, pole 2008, tom II, tr. 595-603. 3. Primke T.: Analiza efektywności algorytmu ewolucyjnego w wybranych problemach terowania dykretnymi proceami produkcji. Rozprawa doktorka (nieopublikowana), Politechnika Śląka, Wydział Automatyki, Elektroniki i Informatyki, Gliwice 2008. Dr inż. Tomaz PRIMKE Intytut Automatyki Politechnika Śląka 44-100 Gliwice, ul. Akademicka 16a tel./fa.: (0-32) 237 28 99 e-mail: Tomaz.Primke@poll.pl 428