Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra
Transkrypt
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra
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: (1) (1) 𝑿11 = 𝑿21 = 𝑤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: (1) 𝑿12 = 𝑤12 = 0 (1) 𝑿22 = 𝑤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 16 20 rozwiązań: [𝑥21 𝑥22 ] = [ 7 7 ]. Przebieg procesu optymalizacji metodą D-W 20 Wartość funkcji celu [tys. zł] 15 10 5 0 Funkcja celu W fazy I Funkcja celu Z fazy II -5 1 2 Iteracja 3