• Nie Znaleziono Wyników

Pewien algorytm konstrukcyjny dla problemu gniazdowego z operacjami wielomaszynowymi nierównocześnie wykorzystującymi maszyny

N/A
N/A
Protected

Academic year: 2021

Share "Pewien algorytm konstrukcyjny dla problemu gniazdowego z operacjami wielomaszynowymi nierównocześnie wykorzystującymi maszyny"

Copied!
6
0
0

Pełen tekst

(1)

Eugeniusz Nowicki* , Mariusz Makuchowski*

Pewien algorytm konstrukcyjny dla problemu gniazdowego z operacjami wielomaszynowymi nierównocześnie wykorzystującymi maszyny

Wstęp

Jednym z podstawowych modeli procesów produkcyjnych jest klasyczny problem gniazdowy, [8].

Mimo Ŝe modeluje on wiele praktycznych procesów, ciągle jest rozszerzany o dodatkowe elementy celem zwiększenia obszaru stosowalności. Jednym z takich rozszerzeń jest uwzględnienie operacji wielomaszynowych, [1-3,7]. Do wykonywania tych operacji uŜywa się nie jednej, jak w przypadku klasycznym, lecz kilku maszyn. Dalsze uogólnienie – wynikające z praktyki przemysłowej – polega na załoŜeniu, Ŝe maszyny niezbędne do wykonania danej operacji wykorzystywane są tylko w pew- nych przedziałach, a nie w całym okresie jej wykonywania, [9]. MoŜliwe jest zatem, wykorzystanie powstałych „wolnych” przedziałów do realizacji innych operacji. Takie uogólnienie będziemy nazy- wać problemem gniazdowym z operacjami wielomaszynowymi nierównocześnie wykorzystującymi maszyny, [4].

Zarysowany powyŜej problem, podobnie jak klasyczny problem gniazdowy, jest silnie NP-trudny, co praktycznie implikuje, Ŝe do jego rozwiązania moŜna stosować tylko algorytmy przybliŜone; w szczególności algorytmy konstrukcyjne oraz algorytmy popraw. Proste algorytmy konstrukcyjne (ba- zujące na technice wstawiania operacji na koniec częściowego uszeregowania) zostały przedstawione w pracy [5], zaś algorytm popraw typu tabu – w pracy [6]. Ten ostatni zachowuje się dość efektywnie, jednakŜe przy ustalonym czasie pracy jakość dostarczanych uszeregowań jest ściśle dodatnio skore- lowana z jakością uszeregowań początkowych. Co prawda dobrej jakości uszeregowania moŜna otrzymać startując nawet z bardzo złych uszeregowań początkowych, jednakŜe wymaga to znacznych nakładów obliczeniowych. Dlatego teŜ waŜnym problemem badawczych staje się opracowanie szyb- kich algorytmów konstrukcyjnych dostarczających uszeregowań o istotnie lepszej jakości niŜ algo- rytmy z [5].

*Politechnika Wrocławska, Instytut Cybernetyki Technicznej. Praca naukowa finansowana ze środków KBN w latach 2003- 2006, jako projekt badawczy.

(2)

W tej pracy proponuje się nowy algorytm konstrukcyjny, bazujący na tzw. technice wstawień, który jest uogólnieniem odpowiedniego algorytmu z monografii [7], dla problemu gniazdowego z opera- cjami wielomaszynowymi równocześnie wykorzystującymi maszyny. Ze względu na ograniczone ramy pracy przedstawia się tylko ogólną idee tego algorytmu nie wnikając w bardzo waŜne szczegóły implementacyjne. Dodatkowo prezentowane są wynikami badań porównawczych (na standardowych przykładach testowych) pomiędzy proponowanym algorytmem a wspomnianymi wcześniej prostymi algorytmami konstrukcyjnymi.

1. Sformułowanie problemu

Dany jest zbiór zadań J = {1, 2, ..., r}, zbiór operacji O = {1, 2, ..., o}, zbiór czynności N = {1, 2, ..., n} oraz zbiór maszyn M={1, 2, ..., m}. Zadanie k ∈ J składa się z ciągu ok ≥ 1 operacji indeksowa- nych kolejno przez jk +1, jk +2, ..., jk + ok, gdzie jk = ∑ki=11oi . Realizacja zadania polega na wykonaniu w powyŜszej kolejności wszystkich operacji wchodzących w jego skład. Dla kaŜdej operacji j ∈ O określony jest zbiór maszyn Mj M, na których jest ona wykonywana; proces wykonywania operacji j na maszynie l ∈ Mj nazywamy czynnością (j,l). Oznaczając przez S(j,l) moment rozpoczęcia wykony- wania czynności (j,l) przyjmujemy, Ŝe moment rozpoczęcia wykonywania operacji j jest równy S(j) = minlMj S(j,l). Czynność (j,l) jest scharakteryzowana przez dwa parametry: głowę τj,l i ciało pj,l. Głowa określa po jakim czasie od momentu S(j) rozpoczęcia wykonywania się operacji j ma rozpocząć się wykonywanie czynności (j,l) (zachodzi: S(j) = S(j,l)+ τj,l ), zaś ciało jest długością trwania tej czynno- ści. Moment C(j) zakończenia wykonywania operacji j określamy jako C(j) = S(j) + max lMj {pj,l + τj,l}. Uszeregowanie dopuszczalne definiowane jest przez momenty S(j,l) 0, l Mj, j O spełnia- jące wszystkie typowe dla problemu gniazdowego ograniczenia. Problem polega na znalezieniu usze- regowania dopuszczalnego minimalizującego moment wykonania wszystkich operacji maxj∈O C(j).

Przy badaniu własności problemu oraz przy konstrukcji algorytmów wygodnie jest posługiwać się modelem permutacyjno-grafowy, który został szczegółowo przedstawiony w pracy [6]. Tutaj ograni- czymy się tylko do stwierdzenia, Ŝe w modelu tym zmienną decyzyjną jest zestaw permutacji określo- nych na czynnościach wykonywanych na poszczególnych maszynach. Zestaw ten przedstawiamy w postaci π = (π1, ...,πm), gdzie π =l (πl(1),...,πl(|Nl|)) jest permutacją operacji na zbiorze czynności Nl

= {(j,l): l∈Μj}, które muszą być wykonywane na maszynie l, lM.

2. Algorytm typu wstaw

Ogólna idea algorytmów konstrukcyjnych typu wstaw w klasycznym problemie gniazdowym (kaŜ- da operacja jest wykonywana tylko na jednej określonej maszynie) polega na tym, Ŝe na danym kroku iteracyjnym, dysponując częściowym uszeregowaniem (lub inaczej - zestawem częściowych permuta-

(3)

cji), wstawia się próbnie na wszystkie moŜliwe pozycje w permutacji częściowej πl na maszynie l jedną z jeszcze nie uszeregowanych operacji j; maszyna l oznacza tutaj maszynę, na której naleŜy wykonać operację j. Dla kaŜdej z takich pozycji wyznacza się dolne ograniczenie wartości funkcji celu i następnie wybiera się pozycję o najmniejszej wartości tego ograniczenia. Na pozycję tą wstawia się ostatecznie operację j. Tym samym zbiór nie uszeregowanych operacji zostaje pomniejszony o operację j. Postępowanie jest kontynuowane, aŜ wszystkie operacje zostaną uszeregowane. Problem wyboru operacji j ze zbioru operacji nie uszeregowanych, rozwiązuje się przez ustalenie w fazie po- czątkowej algorytmu pewnej kolejności, najczęściej według nie rosnących czasów wykonywania.

Kolejność ta jest realizacją intuicyjnie oczywistej zasady, Ŝe najpierw naleŜy szeregować „duŜe” ope- racje, a potem w powstałe „dziury” upychać „małe”.

Tak ogólnie zarysowana idea została przeniesiona na problem gniazdowy z operacjami wieloma- szynowymi nierównocześnie wykorzystującymi maszyny. W konsekwencji powstał algorytm typu wstaw zwany dalej algorytmem INS. Specyfika tego problemu wymagała jednak dość istotnych zmian, które krótko omawiamy poniŜej.

Po pierwsze naleŜy określić, czy na danym kroku iteracyjnym będziemy szeregować tylko jedną czynność, czy teŜ wszystkie czynności jednej operacji? Z uwagi jednak na fakt, Ŝe czynności danej operacji muszą być „sztywno” względem siebie połoŜone zdecydowaliśmy się na wybór drugiego wariantu.

Po drugie naleŜy zdefiniować, co będziemy rozumieć przez wagę w(j) operacji j. Wydaje się, Ŝe najbardziej rozsądnym jest przyjęcie miary tej wielkości w postaci sumy czasów wykonywania wszystkich czynności operacji j, tzn. =

Mj

l pjl

j

w( ) , .

Po trzecie liczba wszystkich moŜliwych próbnych wstawień operacji j jest dość znaczna, poniewaŜ operacja nie jest toŜsama z jedną czynnością (jak w sytuacji klasycznej) lecz składa się |Mj| czynno- ści. Dokładniej, jeŜeli przed próbnym wstawianiem operacji j zestaw permutacji częściowych ma postać α =(α1,α2,...,αm), gdzie αl =(αl(1),...,αl(|αl|)), to naleŜy rozwaŜyć aŜ

lMj(|αl|+1)

róŜnych próbnych wstawień; czynność (j,l) jest wstawiana przed kaŜdą uszeregowaną czynnością na maszynie l oraz za ostatnią z tych czynności, lMj. Dlatego teŜ ograniczyliśmy się tylko do tzw.

pozycji bazowych zdefiniowanych pierwotnie w monografii [7] dla operacjami wielomaszynowych równocześnie wykorzystujących maszyny. Nie wnikając w szczegóły, pozycje bazowe są to pozycje najbardziej obiecujące z punktu widzenia znalezienia pozycji o najmniejszej wartości dolnego ograni- czenia funkcji celu. Wszystkich pozycji bazowych jest co najwyŜej ∑ +

Mj

l (|αl| 1), co pozwala istot- nie skrócić czas wykonania jednej iteracji algorytmu.

(4)

Poza powyŜszymi zmianami, naleŜało jeszcze zaprojektować zachowanie się algorytmu w sytuacji, gdy próbne wstawienie operacji j na kaŜdą z pozycji bazowych generuje uszeregowanie niedopusz- czalne; sytuacja ta wynika ze specyfiki badanego problemu i nie występowała wcześniej. Dokładna analiza pokazuje, Ŝe sytuacja taka moŜe zachodzić tylko wtedy gdy jest juŜ uszeregowana przynajm- niej jedna operacja będąca poprzednikiem technologicznym operacji j oraz przynajmniej jedna opera- cja będąca następnikiem technologicznym operacji j. Niech j będzie „najbliŜszym” uszeregowanym poprzednikiem technologicznym operacji j , zaś j′′ – najbliŜszym uszeregowanym następnikiem ope- racji j. Rozpatrzmy przypadek, gdy kolejność wstawiania operacji ustalona w fazie wstępnej jest następująca φ=(φ(1),...,φ(i),..,φ(i′′),....,φ(t),....φ(o)), gdzie φ(i')= j', φ(i′′)= j′′, φ(t)= j. Wtedy pro- ponujemy usunąć z uszeregowania operacje φ(i′′),....,φ(t−1)i jako nową kolejność wstawiania (po operacji

φ

(i'′′−1)) przyjąć j,φ(i′′),....,φ(t−1),φ(t+1),...φ(o). Podobnie naleŜy postąpić, gdy

j i')= ′′

φ

( ,

φ

(i′′)= j.

W algorytmie INS zastosowano szereg akceleracji, które znacznie skracają czas jego pracy. Ogra- niczymy się do omówienia jednej z nich. W zbiorze pozycji bazowej znajduje się z reguły duŜo pozy- cji generujących uszeregowanie niedopuszczalne. Ich wykrywanie jest dość kosztowne. Dlatego teŜ proponuje się, przed próbnym wstawianiem operacji j, wyznaczyć pewien podzbiór pozycji bazowych zawierający wszystkie pozycje dające uszeregowanie dopuszczalne i tylko niewielką liczbę pozycji generujących uszeregowania niedopuszczalne. Czas wymagany do wyznaczenia tego podzbioru jest porównywalny z czasem stwierdzenia, czy jedna pozycja bazowa generuje uszeregowanie dopusz- czalne.

3. Analiza eksperymentalna

Analiza eksperymentalna została przeprowadzona na przykładach testowych wygenerowanych w pracy [5]. Przykłady są podzielone na trzy klasy, róŜniące się między sobą średnią oraz maksymalną liczbą czynności jednej operacji; parametry te równe odpowiednio: 2 i 3 dla klasy I, 1/3m i 3/5m dla klasy II oraz 1/2m i 4/5m dla klasy III. KaŜda klasa składa się z 8 grup liczących po pięć instancji;

łącznie 120 przykładów. Instancje danej grupy charakteryzują się jednakową liczbą maszyn m i zadań r. Wielkości te dla kolejnych grup są równe odpowiednio: 5 i 10, 5 i 15 , 5 i 20, 10 i 10, 10 i 15, 10 i 20, 10 i 30 oraz 15 i 15. W kaŜdym z przykładów, kaŜde zadanie składa się dokładnie z m operacji, co oznacza iŜ liczba wszystkich operacji jest równa o = m * r i waha się od 50 do 300 w zaleŜności od grupy.

Dla kaŜdego przykładu wyznaczano długość Cbest najlepszego z 22 uszeregowań otrzymanych przez 22 proste algorytmy konstrukcyjne z pracy [5] oraz długość CINS uszeregowania otrzymanego przez badany algorytm INS. Następnie wyznaczano względną procentową poprawę

(5)

ρ = 100*(Cbest - CINS)/Cbest

oraz iloraz σczasu działania algorytmu INS do sumy czasów działania wszystkich pozostałych algo- rytmów. W tabeli 1 przedstawiono uśrednione wartości ρ i σ dla kaŜdej z 8 grup klasy 1, 2 oraz 3.

Z analizy tej tabeli wynika, Ŝe proponowany algorytm INS generuje średnio rozwiązania lepsze o kilka procent, niŜ najlepsze rozwiązanie wyprodukowane przez proste algorytmy konstrukcyjne; po- prawa ta dla jednej z grup przekracza nawet 9%. Jest to jednak okupione większym nakładem obli- czeniowym; w zaleŜności od rozmiaru instancji czas pracy algorytmu INS jest od 1,1 do 18,7 razy dłuŜszy niŜ sumaryczny czas pracy wszystkich prostych algorytmów konstrukcyjnych. W wartościach bezwzględnych czas ten jest jednak znikomy . Do rozwiązania wszystkich 120 instancji algorytm INS, na komputerze z procesorem Duron 900MHz, potrzebował tylko 180s, przy czym największe instan- cje „przeliczał” w czasie mniejszym niŜ 7s.

Tabela 1

Wyniki badań testowych algorytmu INS

Średnia względna poprawa ρ oraz średni przyrost czasu pracy σ

Grupa klasa I klasa II klasa III

ρ σ ρ σ ρ σ

1 -0.5% 1.6 0.0% 1.2 0.1% 2.0

2 2.9% 1.5 0.7% 1.1 -1.7% 2.0

3 1.6% 2.4 0.0% 1.3 0.5% 2.2

4 7.8% 3.1 9.8% 3.9 3.0% 5.0

5 2.1% 3.8 7.2% 6.5 4.0% 7.1

6 1.4% 4.1 7.9% 8.4 3.4% 8.0

7 2.2% 6.1 8.6% 11.3 4.1% 13.1

8 6.5% 5.6 9.1% 12.7 6.8% 18.7

1 – 8 3.0% 3.5 5.4% 5,8 2.5% 7,3

Zaprezentowane wyniki badań wskazują, Ŝe proponowany w tej pracy algorytm INS moŜe być z powodzeniem zastosowany do generowania uszeregowań początkowych dla róŜnego rodzaju algoryt- mów popraw. Dodatkowo, w przypadku gdy czas obliczeń jest bardzo krytycznym parametrem moŜe on być wykorzystany jako jedyny algorytm przybliŜony.

LITERATURA

[1] Drozdowski M.: Scheduling multiprocessor task – An Overview, European Journal Operational Research, 94, 1996, 215-230.

[2] Grabowski J.: Sformułowanie i rozwiązanie zagadnienia kolejnościowego z równoległym wykorzystaniem maszyn, Archiwum Automatyki i Telemechaniki, 1978, 91–113.

[3] Kramer A.: Scheduling Multiprocessor Tasks on Dedicated Processors, PhD-Thesis, Fachbereich Mathema- tik/Infomatik, Universitat Osnabruck, 1995.

[4] Makuchowski M., Nowicki E.: Modele permutacyjno-grafowe problemów gniazdowych z operacjami wie- lomaszynowymi, Modelowanie i optymalizacja, metody i zastosowania, Akademicka Oficyna Wydawnicza EXIT, Warszawa 2002, V11-V24.

(6)

[5] Makuchowski M., Nowicki E.: Operacje wielomaszynowe z nierównoczesnym uŜyciem maszyn w problemie gniazdowym, Komputerowo integrowane zarządzanie, tom II, WNT Warszawa 2002, 114-123.

[6] Makuchowski M., Nowicki E.: Algorytm tabu dla problemu gniazdowego z operacjami wielomaszynowymi nierównocześnie wykorzystującymi maszyny, Politechnika Śląska Zeszyty Naukowe Automatyka 134, Gliwi- ce 2002, 287-297.

[7] Nowicki E.: Metoda tabu w problemach szeregowania zadań produkcyjnych, Oficyna Wydawnicza Poli- techniki Wrocławskiej, Wrocław 1999.

[8] Pinedo M.: Scheduling: Theory, Algorithms, and Systems, Prentice Hall Englewood Cliffs, 1995.

[9] Sawik T.: Planowanie i sterowanie produkcji w elastycznych systemach montaŜowych, Warszawa, WNT, 1996.

Cytaty

Powiązane dokumenty

Przykład wzoru rozkroju niemożliwego do uzyskama przez

Instytut Nafty i Gazu, dzia³aj¹c w powo³anym konsorcjum, którego liderem jest Pañstwowy Instytut Geologiczny – Pañstwo- wy Instytut Badawczy, wykona³ w ostatnim czasie szereg

Intensywny rozwój algorytmów przybliŜonych wykorzystujących techniki lokalnego poszukiwania (ang. local search) dla problemów optymalizacji dyskretnej spowodował

Streszczenie: W pracy przedstawia się nowy algorytm obliczający długość ścieŜki krytycznej w grafie modelującym problem gniazdowy z operacjami wielomaszynowymi

Przedstawiony algorytm SA oceniamy na podstawie jakości wygenerowanych rozwiązań w odniesieniu do rozwiązań otrzymanych algorytmem TMN (typu tabu) polepszonego o dodatkowe

algorytm genetyczny z elementami symulowanego wyŜarzania. Dalszy układ pracy jest następujący. W rozdziale drugim podaję sformułowanie matematyczne rozwaŜanego problemu

Prezentowany w pracy algorytm, oparty na ogólnej idei poszukiwania z zabronieniami, będziemy dalej oznaczać CSTTS (ang. Central Spanning Tree Taboo Search).. Bazuje on na

Wybrać pozycję najlepszą, na właściwej maszynie (pozycja o najmniejszej długości najdłuższej ścieżki przechodzącej przez wkładaną operację)...