Reprezentace problému rozvrhování zakázkové výroby disjunktivním grafem
Reprezentace problému rozvrhovánà zakázkové výroby ...
Reprezentace problému rozvrhovánà zakázkové výroby ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
loků na kritické cestě u (π ). Definice kritických bloků je důležitá, protože pomocí ní se lzedefinovat operátory heuristických metod.Při nasazení heuristických metod v problémech <strong>rozvrhování</strong> musíme řešit následující otázky:1. jak nalézt počáteční proveditelný rozvrh, 2. jak definovat vztah sousedství, 3. jak naléztproveditelný rozvrh s co nejlepším ohodnocením. První a druhý úkol je společný pro mnohoheuristických metod. Třetí úkol závisí na algoritmu konkrétní heuristické metody.Pro počáteční rozvržení disjunktivních hran v grafu lze použít tento algoritmus:Deklarace :Nechť Q0je množina všech již rozvržených operací.Nechť Q1je množina všech rozvrhovaných operací.Nechť Q2je množina všech nerozvržených operací.Množiny Q0, Q1a Q2jsou disjunktní a jejich sjednocením získáme množinu všechoperací O.Účelem algoritmu je nalezení počátečních rozvržení posloupností operacíπ = { π 1,..., π m}.Inicializace :Posloupnosti π1,...,πmjsou na počátku algoritmu prázdné.Množina Q0je prázdná.Množina Q1obsahuje první operace všech jobů.Množina Q2obsahuje všechny ostatní operace.Nejdříve možný termín zahájení je pro všechny operace rk= 0 , pro 1 ≤ k ≤ o .Dokud Q ∪ ) není prázdné, opakuj(1Q2{1. V množině Q1najdeme operacic = min{ c | O ∈Q| c = r + p }. Nechť 'O ', jejíž termín dokončení- 5 -c ' je nejmenšíO''k k 1 k k kM je stroj, na kterém je operaceprováděna. Posloupnost z množiny π přiřazenou stroji M ' označme π ' .2. Zavedeme množinu K (konfliktní množina). Nechť množina K obsahuje všechny operacez Q1, které se provádějí na stroji M ' a jejichž nejdříve možný termín zahájení je menšínež nejdříve možný termín dokončení operace O '. Konfliktní množinaK = { Ok | stroj(Ok) = M ' | rk< c'}.3. Náhodně vybereme operaci O ''z množiny K a rozvrhneme ji. Rozvržení operace O' 'v tomto případě znamená přiřazení jejího indexu na konec posloupnosti operací π ' .4. Operaci O ''vypustíme z množiny Q1a zařadíme ji do množiny Q0.5. Pro všechny operace z množin Q1 ∪ Q2, které jsou prováděny na stroji M ' přepočítámenejdříve možné termíny zahájení r k= c' ' .6. Do množiny Q 1přemístíme z Q 2následující operaci v rámci jobu právě rozvrženéoperace O ''.}Sousedství lze definovat jako množinu rozvrhů, které lze získat aplikováním operátorupřechodu do jiného rozvrhu. Bylo popsáno mnoho způsobů [Blazewicz 1996], jak měnitorientace disjunktivních hran v grafu, aby se co nejefektivněji prohledal prostor řešení.Pro metody, kde se v každém kroku prohledává celé sousedství (metoda lokálního hledání,tabu search), je výhodné použití sousedství S 1: vzájemná výměna blízko hranice bloků najediné kritické cestě [Nowicki 1996]. Uvažujeme jedinou libovolně zvolenou kritickou cestu