Programowanie liniowe metoda sympleks

Podobne dokumenty
Programowanie liniowe metoda sympleks

Programowanie liniowe metoda sympleks

Programowanie liniowe

Programowanie liniowe

Układy równań liniowych

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Programowanie liniowe

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Metoda simpleks. Gliwice

Wyznaczniki. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 6. Wykład z algebry liniowej Warszawa, listopad 2013

Programowanie liniowe. Tadeusz Trzaskalik

Rozdział 1 PROGRAMOWANIE LINIOWE

Układy liniowo niezależne

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Przekształcenia liniowe

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Wprowadzenie do badań operacyjnych - wykład 2 i 3

Zastosowania wyznaczników

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 14. wykład z algebry liniowej Warszawa, styczeń 2017

PROGRAMOWANIE NIELINIOWE

Definicja problemu programowania matematycznego

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Laboratorium Metod Optymalizacji

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Algorytm simplex i dualność

Rozdział 1 PROGRAMOWANIE LINIOWE

Działania na przekształceniach liniowych i macierzach

ZAGADNIENIE TRANSPORTOWE

1 Przykładowe klasy zagadnień liniowych

Teoretyczne podstawy programowania liniowego

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Wykład 14. Elementy algebry macierzy

Badania Operacyjne Ćwiczenia nr 2 (Materiały)

Algorytmy i struktury danych.

PROGRAMOWANIE KWADRATOWE

zadaniem programowania liniowego całkowitoliczbowego. nazywamy zadaniem programowania liniowego 0-1. Zatem, w

R n jako przestrzeń afiniczna

Zagadnienie transportowe

Elementy Modelowania Matematycznego

Wykład 6. Programowanie liniowe

Układy równań i nierówności liniowych

Układy równań liniowych i metody ich rozwiązywania

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Przestrzenie liniowe

Elementy Modelowania Matematycznego

Standardowe zadanie programowania liniowego. Gliwice 1

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. wykład z algebry liniowej Warszawa, styczeń 2009

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 14. wykład z algebry liniowej Warszawa, styczeń 2011

Wykład 7. Informatyka Stosowana. Magdalena Alama-Bućko. 16 kwietnia Magdalena Alama-Bućko Wykład 7 16 kwietnia / 23

5. Rozwiązywanie układów równań liniowych

Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona) f(x) = 0, gdzie. dla n=2 np.

2. Układy równań liniowych

Diagonalizacja macierzy i jej zastosowania

O MACIERZACH I UKŁADACH RÓWNAŃ

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Uniwersytet Kardynała Stefana Wyszyńskiego Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych. Piotr Kaczyński. Badania Operacyjne

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Diagonalizacja macierzy i jej zastosowania

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

Rozwiazywanie układów równań liniowych. Ax = b

Programowanie liniowe

Ekonometria - ćwiczenia 10

ALGEBRA LINIOWA Z GEOMETRIĄ, LISTA ZADAŃ NR 8

Algebra liniowa. Macierze i układy równań liniowych

BADANIA OPERACYJNE Zagadnienie transportowe

(Dantzig G. B. (1963))

Programowanie liniowe

Wielomiany. dr Tadeusz Werbiński. Teoria

Matematyka dyskretna. Andrzej Łachwa, UJ, A/15

Zadanie niezbilansowane. Gliwice 1

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

Programowanie liniowe całkowitoliczbowe

Układy równań liniowych. Ax = b (1)

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

BADANIA OPERACYJNE pytania kontrolne

KADD Minimalizacja funkcji

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Programowanie nieliniowe

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

UKŁADY RÓWNAŃ LINIOWYCH

( 1) ( ) 16 Warunki brzegowe [WB] Funkcja celu [FC] Ograniczenia [O] b i ( 2) ( ) ( ) 14. FC max. Kompletna postać bazowa

Zaawansowane metody numeryczne

Badania operacyjne. te praktyczne pytania, na które inne metody dają odpowiedzi jeszcze gorsze.

1 Układy równań liniowych

Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

A. Kasperski, M. Kulej Badania Operacyjne- programowanie liniowe 1

Spis treści. Koszalin 2006 [BADANIA OPERACYJNE PROGRAMOWANIE LINIOWE]

Obliczenia naukowe Wykład nr 8

Programowanie liniowe

ZAGADNIENIE TRANSPORTOWE (część 1)

ZAGADNIENIE TRANSPORTOWE(ZT)

Rozwiązywanie układów równań liniowych

Wykład z modelowania matematycznego. Algorytm sympleks.

A. Kasperski, M. Kulej Badania Operacyjne- metoda sympleks 1

TOZ -Techniki optymalizacji w zarządzaniu

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Transkrypt:

Programowanie liniowe metoda sympleks Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW 13. wykład z algebry liniowej Warszawa, styczeń 2018 Mirosław Sobolewski (UW) Warszawa, 2018 1 / 14

Metoda sympleks Twórca George Dantzig, USA 1947 rok Cel: rozwiazywanie zadania programowania liniowego określonego w postaci standardowej f (x 1,..., x n ) = c 1 x 1 + + c n x n min (f funkcja celu) przy warunkach a 11 x 1 + + a 1n x n = b 1 U :......, x 1 0,..., x n 0, gdzie b i 0 a m1 x m1 + + a mn x n = b m dla i = 1,..., m. W skrócie : a 11 a 1n Min{c x : Ax = b, x 0}, gdzie A =....., a m1 a mn b = b 1. b m, x = x 1. x n, c = c 1. c n. Zakładamy, że r(a) = m. Mirosław Sobolewski (UW) Warszawa, 2018 2 / 14

Schemat przeszukiwania: Zaczynajac od pewnego rozwiazania bazowego dopuszczalnego, przechodzimy kolejno do innych rozwiazań rozwiazań bazowych dopuszczalnych, w każdym kroku zastępujac jeden element zbioru bazowego innym, dopóki da się pomniejszać wartość funkcji celu f. Interpretacja geometryczna: Rozwiazania bazowe dopuszczalne = wierzchołki zbioru dopuszczalnego X. Wymiana jednego elementu w zbiorze bazowym = przejście do sasiedniego ( tzn. połaczonego krawędzia) wierzchołka X. Wędrówkę po wierzchołkach kończymy w wierzchołku najniższym w sensie funkcji celu f. Mirosław Sobolewski (UW) Warszawa, 2018 3 / 14

Przykład (Szczegóły metody sympleks ) Szukamy największej wartości funkcji g(x 1, x 2, x 3, x 4, x 5 ) = 16x 1 + 10x 2 + x 3, przy ograniczeniach : x 1 + x 3 = 2 x 2 + x 4 = 3 x 1 + x 2 + x 5 = 4 x 1 0,..., x 5 0 Sprowadzamy problem do postaci standardowej zastępujac maksymalizację funkcji g minimalizacja funkcji f (x 1, x 2, x 3, x 4, x 5 ) = 16x 1 10x 2 x 3. Inaczej można to zadanie zapisać w postaci f (x 1, x 2, x 3, x 4, x 5 ) = 16x 1 10x 2 x 3 min przy x 1 1 0 1 0 0 x 2 2 Ax = b, x 0, gdzie A = 0 1 0 1 0, x = x 3 1 1 0 0 1 x 4, b = 3 4 x 5 Mirosław Sobolewski (UW) Warszawa, 2018 4 / 14

Przykład (cd) Utworzymy następujac a tablicę, składajac a z macierzy bazowego układu równań zadania programowania liniowego, rozszerzonej o wiersz nazwany wierszem funkcji celu reprezentujacy równanie z = f (x 1, x 2, x 3, x 4, x 5 ) z f (x 1, x 2, x 3, x 4, x 5 ) = 0 gdzie z jest pewna dodatkowa zmienna i pewne pomocnicze kolumny tzw. kolumnę ilorazów, która pozwoli nam podjać decyzję usunięcia zmiennej z układu bazowego i kolumnę reprezentujac a wybór zmiennych układu bazowego. Oczywiście najprościej wybrać jako zmienne bazowe x 3, x 4, x 5. Poczatkowym wektorem bazowym dopuszczalnym jest (x 1, x 2, x 3, x 4, x 5 ) = (0, 0, 2, 3, 4) Zmienna bazowa Z x 1 x 2 x 3 x 4 x 5 b Iloraz x 3 0 1 0 1 0 0 2 * x 4 0 0 1 0 1 0 3 * x 5 0 1 1 0 0 1 4 * wiersz f 1 16 10 1 0 0 0 nic Mirosław Sobolewski (UW) Warszawa, 2018 5 / 14

Przykład (cd) Poprawimy tablicę do tzw. postaci sympleksowej, w której w kolumnach zmiennych bazowych stoja wektory jednostkowe. W tym celu odejmiemy od w f wiersz pierwszy. Teraz, w kolumnie stałych b w w f stoi wartość f w punkcie bazowym (x 1, x 2, x 3, x 4, x 5 ) = (0, 0, 2, 3, 4), czyli 2 Zmienna bazowa Z x 1 x 2 x 3 x 4 x 5 b Iloraz x 3 0 1 0 1 0 0 2 * x 4 0 0 1 0 1 0 3 * x 5 0 1 1 0 0 1 4 * wiersz f 1 15 10 0 0 0-2 nic Mirosław Sobolewski (UW) Warszawa, 2018 6 / 14

Przykład W wierszu f (funkcji celu) występuja rubrykach zmiennych x 1, x 2 wyrazy dodatnie. Oznacza to, że można poprawić (zmniejszyć) funkcję celu przechodzac do nowego wektora bazowego dopuszczalnego. Jako nowa zmienna bazowa wybieramy x 1, kierujac się tym, że w jej rubryce w wierszu f stoi największa liczba. Mirosław Sobolewski (UW) Warszawa, 2018 7 / 14

Przykład W wierszu f (funkcji celu) występuja rubrykach zmiennych x 1, x 2 wyrazy dodatnie. Oznacza to, że można poprawić (zmniejszyć) funkcję celu przechodzac do nowego wektora bazowego dopuszczalnego. Jako nowa zmienna bazowa wybieramy x 1, kierujac się tym, że w jej rubryce w wierszu f stoi największa liczba. Musimy również wybrać spośród zmiennych x 3, x 4, x 5, tę, która opuści zbiór zmiennych bazowych. W tym celu obliczamy ilorazy wyrazów stałych z kolumny b przez odpowiadajace im elementy w kolumnie nowej zmiennej bazowej x 1 o ile elementy te sa dodatnie Mirosław Sobolewski (UW) Warszawa, 2018 7 / 14

Przykład W wierszu f (funkcji celu) występuja rubrykach zmiennych x 1, x 2 wyrazy dodatnie. Oznacza to, że można poprawić (zmniejszyć) funkcję celu przechodzac do nowego wektora bazowego dopuszczalnego. Jako nowa zmienna bazowa wybieramy x 1, kierujac się tym, że w jej rubryce w wierszu f stoi największa liczba. Musimy również wybrać spośród zmiennych x 3, x 4, x 5, tę, która opuści zbiór zmiennych bazowych. W tym celu obliczamy ilorazy wyrazów stałych z kolumny b przez odpowiadajace im elementy w kolumnie nowej zmiennej bazowej x 1 o ile elementy te sa dodatnie (jeśliby takich elementów nie było, oznaczałoby to, że f nie jest ograniczona z dołu na X) Następnie będziemy dodawać do innych wierszy wielokrotności wiersza, w którym stoi 1 kolumny opuszczajacej zbiór bazowy, tak, by w kolumnie nowej zmiennej bazowej stał tylko jeden element 0. Jeśli element ten jest 1 należy podzielić wiersz przez ten element. Mirosław Sobolewski (UW) Warszawa, 2018 7 / 14

Przykład Zmienna bazowa Z x 1 x 2 x 3 x 4 x 5 b Iloraz x 3 0 1 0 1 0 0 2 2/1=2 x 4 0 0 1 0 1 0 3 nd x 5 0 1 1 0 0 1 4 4/1=4 wiersz f 1 15 10 0 0 0-2 nic Mirosław Sobolewski (UW) Warszawa, 2018 8 / 14

Przykład Zmienna bazowa Z x 1 x 2 x 3 x 4 x 5 b Iloraz x 3 0 1 0 1 0 0 2 2/1=2 x 4 0 0 1 0 1 0 3 nd x 5 0 1 1 0 0 1 4 4/1=4 wiersz f 1 15 10 0 0 0-2 nic Najmniejszy z ilorazów = 2, w jego wierszu (w 1 ) jest 1 kolumny zmiennej bazowej x 3 opuszcza ona zmienne bazowe. Mirosław Sobolewski (UW) Warszawa, 2018 8 / 14

Przykład Zmienna bazowa Z x 1 x 2 x 3 x 4 x 5 b Iloraz x 3 0 1 0 1 0 0 2 2/1=2 x 4 0 0 1 0 1 0 3 nd x 5 0 1 1 0 0 1 4 4/1=4 wiersz f 1 15 10 0 0 0-2 nic Najmniejszy z ilorazów = 2, w jego wierszu (w 1 ) jest 1 kolumny zmiennej bazowej x 3 opuszcza ona zmienne bazowe.operacjami : w 3 w 1, w f 15w 1 budujemy nowa tabelę względem x 1, x 4, x 5. Zmienna bazowa Z x 1 x 2 x 3 x 4 x 5 b Iloraz x 1 0 1 0 1 0 0 2 * x 4 0 0 1 0 1 0 3 * x 5 0 0 1-1 0 1 2 * wiersz f 1 0 10-15 0 0-32 nic Mirosław Sobolewski (UW) Warszawa, 2018 8 / 14

Nowa tabela sympleksowa Przykład Nowym punktem bazowym dopuszczalnym jest (x 1, x 2, x 3, x 4, x 5 ) = (2, 0, 0, 3, 2), wartość f odczytujemy w w f, rubryce b: mamy z = 32. Znów w wierszu funkcji celu zauważamy element dodatni 10 w rubryce x 2. Zatem można poprawić wartość f. Nowa zmienna bazowa jest x 2, zmienna opuszczajac a zmienne bazowe wyznacza test ilorazów: Zmienna bazowa Z x 1 x 2 x 3 x 4 x 5 b Iloraz x 1 0 1 0 1 0 0 2 nd x 4 0 0 1 0 1 0 3 3/1=3 x 5 0 0 1-1 0 1 2 2/1=2 wiersz f 1 0 10-15 0 0-32 nic Jest nia x 5 Przy pomocy operacji w 2 w 3,w f 10w 3 tworzymy następna tabelę sympleks: Mirosław Sobolewski (UW) Warszawa, 2018 9 / 14

Trzecia tabela sympleksowa Przykład Zmienna bazowa Z x 1 x 2 x 3 x 4 x 5 b Iloraz x 1 0 1 0 1 0 0 2 * x 4 0 0 0 1 1-1 1 * x 2 0 0 1-1 0 1 2 * wiersz f 1 0 0-5 0-10 -52 nic Tym razem w wierszu f w rubrykach zmiennych x 1,..., x 5 nie ma dodatnich elementów tzn. jesteśmy w minimum=-52. Znaleziony wektor bazowy dopuszczalny to (x 1, x 2, x 3, x 4, x 5 ) = (2, 2, 0, 1, 0). Zatem rozwiazanie pierwotnego problemu to max(g) = 52. Mirosław Sobolewski (UW) Warszawa, 2018 10 / 14

Znajdowanie poczatkowego wektora bazowego dopuszczalnego Mamy zbiór X opisany standardowo przez Ax = b, x = [x 1,..., x n ] 0, gdzie A M m n, b M m 1, b 0. Jak stwierdzić, że X jest niepusty, i jeśli tak jest jak znaleźć wektor bazowy dopuszczalny? Stosuje się tzw. metodę sztucznej bazy, wprowadzajac dodatkowe zmienne, y 1,..., y m, macierz współczynników A przedłużajac o macierz jednostkowa I m. Tzn. macierz układu dla n + m zmiennych ma teraz postać [A I m b] M m (n+m+1) (R), z macierza współczynników A = [A I m ] M m (n+m) oraz x = [x 1,..., x n, y 1,..., y m ],i rozwiazujemy problem y 1 + + y n min przy warunkach A x = b, x 0. Ten problem ma zawsze rozwiazanie. Jeśli osiagamy min = 0 to X, w przeciwnym wypadku, tzn. min > 0 mamy X =. Mirosław Sobolewski (UW) Warszawa, 2018 11 / 14

Przykład Zbiór X R 4 opisany jest przez: 8x 1 + 3x 2 5x 3 + x 4 = 4 3x 1 + x 2 2x 3 x 4 = 1 x 1, x 2, x 3, x 4 0 Wprowadzamy sztuczne zmienne y 1, y 2 i funkcję celu f (x 1,..., x 4, y 1, y 2 ) = y 1 + y 2 min przy warunkach 8x 1 + 3x 2 5x 3 + x 4 + y 1 = 4 3x 1 + x 2 2x 3 x 4 + y 2 = 1 z f (x 1,..., x 4, y 1, y 2 ) = z y 1 y 2 = 0 x 1,..., x 4 0, y 1, y 2 0 Zmienna bazowa Z x 1 x 2 x 3 x 4 y 1 y 2 b Iloraz y 1 0 8 3-5 1 1 0 4 * y 2 0 3 1-2 -1 0 1 1 * wiersz f 1 0 0 0 0-1 -1 0 nic Po operacji w f + w 1 + w 2 otrzymujemy tablicę sympleks Mirosław Sobolewski (UW) Warszawa, 2018 12 / 14

Przykład (tablica sympleks) Zmienna bazowa Z x 1 x 2 x 3 x 4 y 1 y 2 b Iloraz y 1 0 8 3-5 1 1 0 4 4/3 y 2 0 3 1-2 -1 0 1 1 1/1 wiersz f 1 11 4-7 0 0 0 5 nic Jako nowa zmienna bazowa wybieramy x 2, usuwamy y 2. Po operacjach w 1 3w 2, w f 4w 2 mamy nowa tablicę sympleks Zmienna bazowa Z x 1 x 2 x 3 x 4 y 1 y 2 b Iloraz y 1 0-1 0 1 4 1-3 1 1/1 x 2 0 3 1-2 -1 0 1 1 nd wiersz f 1-1 0 1 4 0-4 1 nic Wprowadzamy x 3 usuwamy y 1. Po operacjach w 2 + 2w 1, w f w 1 otrzymujemy: Mirosław Sobolewski (UW) Warszawa, 2018 13 / 14

Przykład (ostateczna tabela sympleks) Zmienna bazowa Z x 1 x 2 x 3 x 4 y 1 y 2 b Iloraz x 3 0-1 0 1 4 1-3 1 * x 2 0 1 1 0 7 2-5 3 * wiersz f 1 0 0 0 0-1 -1 0 nic Otrzymaliśmy minf = 0, zatem mamy niepusty X i należy do niego dopuszczalny punkt bazowy (x 1, x 2, x 3, x 4 ) = (0, 3, 1, 0). Mirosław Sobolewski (UW) Warszawa, 2018 14 / 14