• Nie Znaleziono Wyników

Algorytm iteracyjny, w którym wstawiane są bufory czasowe dla zadań

W dokumencie Index of /rozprawy2/10260 (Stron 113-117)

5.4 Algorytmy alokacji buforów dla problemu terminowej realizacji kamieni

5.4.3 Algorytm iteracyjny, w którym wstawiane są bufory czasowe dla zadań

Następnym opracowanym przez autora algorytmem jest BufK, częściowo zbliżony w działaniu do procedury FRD.

Podczas inicjalizacji BufK szukany harmonogram odporny S0 to uszeregowanie no-minalne nie zawierające buforów czasowych.

Alokacja buforów jest wykonywana dla wszystkich, kolejno rozpatrywanych kamie-ni milowych. Bufory czasowe wstawiane są po czynnościach (bufory B). Przy roz-mieszczaniu buforów dla k-tego etapu projektu, analizowane jest zwiększanie buforów czasowych dla wszystkich zadań należących do zbioru Mk.

Dla kolejnych kamieni milowych początkowo pomocniczy parametr χ wynosi 0. W każdej następnej iteracji parametr χ jest zwiększany o 0.01 (można przyjąć inną war-tość niż 0.01, ale eksperymenty obliczeniowe wskazują, że przyjęcie mniejszej wartości

0.005 nie poprawia uzyskiwanych rozwiązań, natomiast przyjęcie większej wartości 0.02 prowadzi do przeciętnie gorszych alokacji buforów) i obliczane są korekty bufo-rów czasowych po poszczególnych zadaniach ΔBi według wzoru ΔBi = χ ∙ di - Bi, gdzie

Bi to aktualny rozmiar bufora po zadaniu i. W jednym kroku, przy jednej wartości χ, mogą być zwiększone bufory czasowe dla więcej niż jednej czynności. Jeśli w danej iteracji zwiększono bufor czasowy po co najmniej jednej czynności tzn. istnieje zadanie

i, dla którego ΔBi ≥ 1, generowany jest nowy harmonogram w oparciu o zmodyfikowane czasy trwania. Dla analizowanego k-tego kamienia milowego zadania nie są już bufo-rowane, gdy aktualna rezerwa czasowa rezk przekracza lub jest równa przyjętemu zapa-sowi czasowemu dla tego kamienia milowego bmk (bmk – bufor czasowy k-tego kamie-nia milowego).

Przebieg algorytmu BufK przedstawiony jest na rysunku 20.

//Krok 1: Inicjalizacja

S0 = Snom

//Alokacja buforów dla kolejnych kamieni milowych for k:= 1 to m

χ := 0 repeat

χ := χ + 0.01

foreach zadanie i ze zbioru Mk

ΔBi := χ · di - Bi

If(w danym kroku zwiększono B dla co najmniej jednego zadania: istnieje zadanie i, dla którego ΔBi ≥ 1) Modyfikuj czasy rozpoczęcia czynności

until (rezk - bmk <= 0)

Rysunek 20. Schemat działania algorytmu alokacji buforów BufK

Algorytm BufK działa „lokalnie” dla zadań z kolejno rozpatrywanych, poszczegól-nych etapów projektu. Przy zabezpieczaniu kamieni milowych należy ustalić odpo-wiednie wartości buforów bmk. Zapasy bmk decydują o możliwości buforowania zadań z k-tego etapu projektu.

5.5 Podsumowanie

Alokacja buforów jest kolejnym etapem, po alokacji zasobów, w którym uodparnia-ny jest harmonogram nominaluodparnia-ny. Alokacja buforów jest wykouodparnia-nywana dla harmonogra-mu nominalnego z wyznaczoną alokacją zasobów.

Odporna alokacja buforów jest istotna z punktu widzenia m.in. minimalizacji kosztu realizacji projektu. W rozdziale analizowano problem proaktywnego rozmieszczenia buforów czasowych dla projektu ze zdefiniowanymi terminami realizacji etapów pro-jektu (kamieniami milowymi). Przydział buforów czasowych ma doprowadzić do mi-nimalizacji wpływu nieprzewidywalnych wahań czasów trwania czynności na realizację poszczególnych zadań i wszystkich etapów projektu.

W niniejszym rozdziale na początku zaprezentowano zasady estymacji czasów zadań projektowych. Następnie przedstawiono miary odporności stosowane w badaniach do-tyczących RCPSP. Analiza mierników odporności wskazała na potrzebę zaprojektowa-nia nowych mierników dla zagadniezaprojektowa-nia alokacji buforów z kamiezaprojektowa-niami milowymi. Do oceny proaktywnych uszeregowań zaproponowano wskaźnik stabilności, wyznaczany

symulacyjnie, określający wpływ zakłóceń na dotrzymanie terminów realizacji zadań i harmonogramu. Opracowano także pomocniczo statyczne miary odporności, które mogą być wykorzystywane przez procedury rozmieszczenia buforów, w których rozpa-trywanych jest wiele alokacji buforów.

Następnie opisano wybrane algorytmy odpornej alokacji buforów. Część koncepcji stosowanych w tych algorytmach wykorzystano w zaproponowanych przez autora pro-cedurach rozmieszczania buforów BufP1, BufP2, BufP3, BufK, BufR dla zagadnienia

RCPSP z terminową realizacją kamieni milowych. W algorytmach tych bufory

wsta-wiane są przed czynnościami, zabezpieczając terminowe rozpoczęcie tych zadań, lub po czynnościach, zabezpieczając terminowe rozpoczęcie następników zadania. Poszcze-gólne zadania są buforowane do momentu, w którym wstawienie bufora jest niemożli-we ze względu na przyjęte rozmiary zapasów czasowych bmi dla poszczególnych eta-pów projektu.

W algorytmach BufP1, BufP2, BufP3 kolejne bufory jednostkowe są rozmieszczane w kolejności wynikającej z listy priorytetowej zadań. Stosowanie reguł priorytetowych to nowe podejście do problemu alokacji buforów.

Z kolei w procedurze BufR stosowane jest podejście, w którym iteracyjnie poprawia-ny jest aktualpoprawia-ny przydział buforów czasowych w celu optymalizacji (maksymalizacji) statycznych miar odporności R (R1, R2, R3 lub R4). Miary R opracowano biorąc pod uwagę różne kryteria wpływające na stabilność systemu produkcyjnego.

W algorytmie BufK wstawiane są bufory po czynnościach. Zabezpieczana przez rozmieszczenie buforów jest realizacja etapów projektu (i zadań realizowanych w tym etapie) w kolejności ich terminów realizacji. W kolejnych iteracjach procedury BufK bufory czasowe są wstawiane w pierwszej kolejności po czynnościach o największym planowanym czasie trwania.

Wszystkie algorytmy alokacji buforów porównywane są podczas analizy oblicze-niowej wykonanej w rozdziale 6.3. Do oceny rozmieszczenia buforów wykorzystywany jest symulacyjnie wyznaczany wskaźnik stabilności systemu produkcyjnego przy zasto-sowaniu odpowiedniej metody reharmonogramowania zadań. Kryterium oceny są funk-cje celu harmonogramowania reaktywnego określone wzorami (18, 19).

6 Harmonogramowanie reaktywne

W rozdziale tym autor koncentruje się na strategii reaktywnego harmonogramowania w zastosowaniu do realizacji projektu. Wykorzystywane są pojęcia związane z rehar-monogramowaniem zadań opisane w rozdziale 1.6.

W fazie harmonogramowania predyktywnego ustalone są czasy rozpoczęcia zadań (uwzględniające rozmieszczenie buforów czasowych) oraz przydział zasobów do zadań. W trakcie produkcji w rzeczywistych systemach produkcyjnych, często występują jed-nak problemy z planową realizacją harmonogramu proaktywnego (odpornego). Zdol-ność do absorpcji zaburzeń produkcyjnych harmonogramu powstałego w fazie plano-wania jest ograniczona. Odporna alokacja buforów i zasobów nie są w stanie zabezpie-czyć przed wszystkimi możliwymi zakłóceniami. Konieczne jest wprowadzanie zmian w uszeregowaniu na bieżąco w trakcie produkcji, w fazie zwanej harmonogramowa-niem reaktywnym. Zmiany te pozwalają rozwiązać problemy wynikające m.in. z błęd-nych oszacowań czasów trwania czynności, z czasowej niedostępności zasobów (awa-rie) itp. W rozpatrywanym zagadnieniu celem harmonogramowania reaktywnego jest zachowanie stabilności systemu produkcyjnego i dotrzymanie umownych terminów realizacji kamieni milowych.

Harmonogramowanie reaktywne to dynamiczny proces decyzyjny, w którym w każ-dym punkcie decyzyjnym t (analizowany przedział czasowy <0 ... zn+1>) podejmowana jest reakcja na zakłócenia, tak aby faktycznie zrealizowany harmonogram SR jak naj-mniej odbiegał od harmonogramu początkowego S0. Wykorzystywane są wszystkie informacje dostępne w chwili t, aby zoptymalizować funkcję celu harmonogramowania reaktywnego. Jeśli w analizowanym momencie t nie ma nowych zakłóceń realizowany jest harmonogram ustalony w chwili t-1: St = St-1.

Ustal S0 //Harm. reaktywne dla harmonogramu predyktywnego S0 t = 0

repeat

Rozpocznij czynności z czasem rozpoczęcia sitt

t = t + 1

Sprawdź czy są jakieś zakłócenia (nowe, istotne informacje) If (nie ma zakłóceń) then

St = St-1

//realizowany jest harmonogram ustalony w momencie t-1 else

Znajdź i zapamiętaj harmonogram o minimalnym koszcie niestabilności

//stosowane są różne algorytmy reharmonogramowania

//optymalizujące funkcję celu harmonogramowania reaktywnego until (zrealizowano cały projekt – wszystkie zadania zakończone)

Rysunek 21. Procedura harmonogramowania reaktywnego

Stosując powyższą procedurę, w przypadku braku zakłóceń produkcyjnych, harmo-nogram zrealizowany SR jest identyczny z harmonogramem początkowym S0. Każde zakłócenie (np. wzrost czasu trwania zadania, awaria) może spowodować zmiany

w harmonogramie. Gdy wystąpi zakłócenie, następuje ponowne harmonogramowanie, które ma doprowadzić do minimalizacji funkcji celu harmonogramowania reaktywnego.

Harmonogram St zwany jest harmonogramem projektowanym (ang. projected

sche-dule). Tworzony jest po każdym zakłóceniu produkcyjnym, które powoduje konflikt

czasowy lub zasobowy. Generowanie nowego harmonogramu (lub zmiana istniejącego) w odpowiedzi na każde zakłócenie może spowodować znaczny wzrost czasu obliczeń wraz ze zwiększaniem się liczby pojawiających się zaburzeń produkcyjnych. Z tego powodu w badaniach opracowywane są algorytmy charakteryzujące się niewielkim cza-sem obliczeń. W każdym punkcie decyzyjnym t dąży się do planowego rozpoczynania każdego zadania i monitoruje się terminowość realizacji całego projektu.

Przy ustaleniu rzeczywistego momentu rozpoczęcia poszczególnych zadań w harmo-nogramie SR stosowane są różne podejścia wynikające ze specyfiki środowisk produk-cyjnych. Rozpatrywane są m.in. następujące dwa przypadki:

1) Możliwe jest rozpoczynanie zadań przed planowanym terminem rozpoczęcia. Przy-padek użyteczny dla systemów produkcyjnych, w których rozpoczęcie zadania nie jest zależne od dostarczenia dodatkowych materiałów lub komponentów. Dla tego przypadku podejście predyktywno-reaktywne może być porównywane z harmono-gramowaniem dynamicznym.

2) Harmonogramowanie kolejowe (ang. railway scheduling) – rozpoczynanie zadań przed planowanym terminem nie jest możliwe. Założenie to wynika z faktu, że roz-poczęcie zadania jest możliwe, gdy dostarczone są materiały niezbędne do jego re-alizacji, które dostarczane są w systemie dokładnie na czas (ang. JIT- Just In Time). Z tych dwóch przypadków autor w rozprawie ogranicza się do harmonogramowania kolejowego. Założenie, że zadania projektowe rozpoczynane są nie wcześniej niż to planowano ma uzasadnienie podczas realizacji wielu rzeczywistych przedsięwzięć i jest przyjmowane w wielu teoretycznych pracach z predyktywno-reaktywnego harmono-gramowania projektu[105][106][108][155][156][157][158][159][160][161][162]. Har-monogramowanie kolejowe jest często wykorzystywane przy sterowaniu produkcją z wykorzystaniem harmonogramów. Prowadzi to do lepszej organizacji pracy. Możliwe jest zastowanie dostaw dokładnie na czas, które niwelują koszty magazynowania mate-riałów itp.

W niniejszym rozdziale opisane są wybrane algorytmy wykorzystywane w harmono-gramowaniu reaktywnym dla problemu RCPSP. Następnie zaprezentowane są założe-nia, metody i algorytmy reaktywne stosowane dla rozważanego problemu harmonogra-mowania projektu ze zdefiniowanymi terminami realizacji kamieni milowych. Na ko-niec przeanalizowana jest efektywność proponowanych algorytmów predyktywno-reaktywnego harmonogramowania przy użyciu opracowanych zadań testowych z różną konfiguracją zmienności środowisk produkcyjnych.

6.1 Algorytmy stosowane w harmonogramowaniu reaktywnym

W dokumencie Index of /rozprawy2/10260 (Stron 113-117)