Politechnika Gdańska
Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania
KOMPUTEROWE SYSTEMY STEROWANIA I WSPOMAGANIA DECYZJI
Rozproszone programowanie produkcji z wykorzystaniem metody dekompozycji Dantziga-Wolfe’a
Materiał pomocniczy 2 – część 2:
Metoda dekompozycji Dantziga-Wolfe’a
Opracowanie:
Piotr Hirsch, mgr inż.
Gdańsk, listopad 2016
Materiał pomocniczy pokazujący krok po korku przykład rozwiązywania zagadnienia z wykorzystaniem metody dekompozycyjnej Dantzig’a-Wolfe’a.
1. Sformułowanie problemu zagadnienia programowania liniowego i dokonanie dekompozycji
Należy zminimalizować funkcję celu Z:
𝑍 = −𝑥11+ 𝑥12− 3𝑥21− 2𝑥22 Przy ograniczeniach:
Zagadnienie główne zostało podzielone na dwa podsystemy. Przepisując ograniczenia ze zmiennymi osłabiającymi (kolor niebieski) wyodrębniamy macierze:
2. Przygotowanie
Przed rozpoczęciem właściwego algorytmu należy wykonać kilka czynności:
Dostosować postaci zadania do standardowej wykorzystywanej w MATLAB – dostosowanie znaku funkcji celu: min 𝑥 = −max −𝑥
Sprawdzić, czy w zagadnieniu występuje macierz A0
Przygotować parametry optymalizacji (dla linproga i DW)
Znaleźć pierwsze rozwiązanie dopuszczalne kolejnych podzagadnień (z wykorzystaniem linproga):
𝑋01= 𝑋02=
Utworzyć pierwsze zagadnienie ekstremalne (kolumny naturalne, ekstremalne, koszty):
Tworzymy 2 kolumny naturalne (tyle ile jest kolumn macierzy A0), wg schematu: (𝐴0𝑗 0 )
𝐾𝑛1 = 𝐾𝑛2=
Tworzymy 2 kolumny ekstremalne (tyle ile jest podzagadnień), wg schematu (𝑃𝑝𝑗
𝑒𝑝), gdzie 𝑒𝑝 to wektor jednostkowy odpowiedni dla danego zagadnienia
𝐾𝑒1 = 𝐾𝑒2 =
W fazie I wektory cen i kosztów są równe 0. Jednak i tak wyznaczamy rzeczywiste ceny i koszty𝑓10(𝐼) = −4; 𝑓20(𝐼) = −14,4 . Wykorzystamy je jeśli dojdzie do zmiany fazy na II.
W oparciu o metodę sztucznej bazy rozszerzamy zagadnienie ekstremalne o m0 sztucznych zmiennych, dzięki czemu gwarantujemy dopuszczalność początkowego rozwiązania ekstremalnego w każdej sytuacji, kolumny sztuczne tworzymy wg schematu (𝐾𝑈𝑗
0 ):
𝐾𝑈1 = 𝐾𝑈2=
3. Iteracja 1, faza I
W tym momencie posiadamy ograniczone zagadnienie ekstremalne postaci:
𝑊 =
𝐵 =
𝑏 =
gdzie: W – funkcja celu; B – baza; b – prawa strona ograniczeń. Dwa pierwsze wiersze bazy to wiersze przerzutów, dwa kolejne to wiersze wypukłości. Dwie pierwsze kolumny to kolumny naturalne (zmienne x01 i x02), dwie kolejne to kolumny ekstremalne (zmienne 𝜆10 i 𝜆20), a ostatnie dwie to kolumny sztuczne (zmienne 𝜖1 i 𝜖2).
Ograniczone zagadnienie ekstremalne rozwiązujemy korzystając z linproga, otrzymując następujące wyniki:
𝑍𝑊1 = −3,2
𝑋𝐸1 =
Π =
Obliczamy wartości form celu, pamietając o zerowej wartości wektra kosztów w fazie I:
𝜸𝟏 = 𝜸𝟐 =
Przy pomocy linproga rozwiązujemy kolejne podzagadnienia:
min𝑋𝑝 𝜸𝒑𝑿𝒑 𝐵𝑝𝑋𝑝 = 𝑏𝑝
𝑋𝑝 ≥ 0 Otrzymując:
𝑿11(1)= 𝑿21(1) =
𝑤11= 𝑍11− 𝜋(2)1= 0 𝑤21= 𝑍21− 𝜋(2)2= −11,2
Wybieramy wszystkie kolumny, których w jest mniejsze od zera (z zakładaną dokładnością).
W tym wypadku do bazy proponować będziemy wektor ofertowy 2.
Jeśli żaden wektor ofertowy nie będzie poprawiał aktualnego wyniku i wszystkie sztuczne zmienne wynoszą zero (z założoną dokładnością), to oznacza to, że faza I algorytmu się zakończyła. Jeśli któraś ze sztucznych zmiennych wciąż jest niezerowa, to rozpatrywane zagadnienie nie posiada rozwiązań (jest sprzeczne).
W naszym wypadku faza I wciąż trwa. Tworzymy nowe kolumny ekstremalne (analogicznie do poprzedniego razu, również teraz obliczamy koszty przerzutu)
𝐾𝑒3 = 𝑓31(𝐼)= −8
4. Iteracja 2, faza I
Tak jak w wcześniejszej iteracji, formułujemy ograniczone zagadnienie ekstremalne. Od poprzedniego razu zmieniła się tylko jedna kolumna – kandydatka do nowej bazy:
𝑊 =
𝐵 =
𝑏 =
Rozwiązujemy otrzymane zadanie:
𝑍𝑊2 = 0
𝑋𝐸2 =
Π =
Obliczamy wartości form celu, pamietając o zerowej wartości wektra kosztów w fazie I:
𝜸𝟏 = 𝜸𝟐 =
Rozwiązując podzagadnienia otrzymujemy:
𝑿12(1)= 𝑿22(1) =
𝑤12= 0 𝑤22= 0
Obserwuemy, że żaden wektor ofertowy nie spełnia warunku, by stać się kandydatem do bazy.
Sprawdzamy wartości sztucznych zmiennych w wektorze 𝑋𝐸2. Obie są równe zero, więc rozwiązanie bazowe dopuszczalne zostało odnalezione - przechodzimy do fazy II.
5. Iteracja 3, faza II
W fazie II nie występują już zmienne sztuczne, za to uwzględniamy docelową postać funkcji celu. Aktualizujemy więc ograniczone zagadnienie ekstremalne, przypisując kolumnom naturalnym rzeczywiste ceny (C0), a kolumnom ekstremalnym rzeczywiste koszty przerzutów 𝑓𝑝𝑗(𝑓):
𝑍 =
𝐵 =
𝑏 =
Rozwiązujemy otrzymane zadanie:
𝑍𝑍3 = −16,57
𝑋𝐸3 =
Π =
Obliczamy wartości form celu, tym razem korzystając z rzeczywistej wartości kosztów:
𝜸𝟏 = 𝜸𝟐 =
Rozwiązując podzagadnienia otrzymujemy:
𝑿13(𝐼𝐼)= 𝑿23(𝐼𝐼) =
𝑤13= 0 𝑤23= 0
Ponownie żaden z uzyskanych wierzchołków nie poprawi funkcji celu. Tym razem oznacza to, zakończenie optymalizacji i znalezienie optimum.
Wartość funkcji celu dla pierwszego podzagadnienia wyniosła: 𝑍1 = −4, a wektor rozwiązań:
[𝑥11 𝑥12] = [4 0
Wartość funkcji celu dla drugiego podzagadnienia wyniosła: 𝑍2 = −12,57, a wektor rozwiązań: [𝑥21 𝑥22] = [167 207].
1 2 3
-5 0 5 10 15 20
Przebieg procesu optymalizacji metodą D-W
Iteracja
Wartość funkcji celu [tys. zł]
Funkcja celu W fazy I Funkcja celu Z fazy II