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):

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

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

Układy liniowo niezależne

Programowanie liniowe. Tadeusz Trzaskalik

Rozdział 1 PROGRAMOWANIE LINIOWE

Zastosowania wyznaczników

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

Przekształcenia liniowe

Definicja problemu programowania matematycznego

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

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

Algorytm simplex i dualność

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Działania na przekształceniach liniowych i macierzach

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

PROGRAMOWANIE NIELINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE

Laboratorium Metod Optymalizacji

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

Badania Operacyjne Ćwiczenia nr 2 (Materiały)

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

1 Przykładowe klasy zagadnień liniowych

Wykład 14. Elementy algebry macierzy

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

Elementy Modelowania Matematycznego

Algorytmy i struktury danych.

Teoretyczne podstawy programowania liniowego

PROGRAMOWANIE KWADRATOWE

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Standardowe zadanie programowania liniowego. Gliwice 1

ZAGADNIENIE TRANSPORTOWE

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

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

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

Wykład 6. Programowanie liniowe

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

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

Elementy Modelowania Matematycznego

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

Zagadnienie transportowe

Przestrzenie liniowe

(Dantzig G. B. (1963))

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

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

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

Programowanie liniowe

R n jako przestrzeń afiniczna

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

Diagonalizacja macierzy i jej zastosowania

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

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

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

Programowanie liniowe

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

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

Wykład 5. Metoda eliminacji Gaussa

Diagonalizacja macierzy i jej zastosowania

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

Programowanie liniowe

Wielomiany. dr Tadeusz Werbiński. Teoria

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

ALGEBRA LINIOWA Z GEOMETRIĄ, LISTA ZADAŃ NR 8

BADANIA OPERACYJNE Zagadnienie transportowe

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

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

Ekonometria - ćwiczenia 10

Endomorfizmy liniowe

KADD Minimalizacja funkcji

Programowanie nieliniowe

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

Wykład z modelowania matematycznego. Algorytm sympleks.

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

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

Zaawansowane metody numeryczne

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

Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA

2. Układy równań liniowych

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

c j x x

WYKŁADY Z MATEMATYKI DLA STUDENTÓW UCZELNI EKONOMICZNYCH

KLASA II LO Poziom rozszerzony (wrzesień styczeń)

Obliczenia naukowe Wykład nr 8

Programowanie liniowe całkowitoliczbowe

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

Agata Boratyńska ZADANIA Z MATEMATYKI, I ROK SGH GRANICA CIĄGU

KLUCZ PUNKTOWANIA ODPOWIEDZI

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

Wybrane elementy badań operacyjnych

Elementy modelowania matematycznego

ZAGADNIENIE TRANSPORTOWE (część 1)

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

Transkrypt:

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

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, 2009 2 / 13

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, 2009 3 / 13

Przykład (Szczegóły metody sympleks ) Szukamy największej wartości funkcji g(x 1, x 2 ) = 15x 1 + 10x 2, przy ograniczeniach (*) x 1 0, x 2 0, x 1 2, x 2 3, x 1 + x 2 4. Sprowadzamy zagadnienie do postaci standardowej, wprowadzajac dodatkowe zmienne x 3, x 4, x 5,zastępujac nierówności (*) następujacym układem równości i nierówności elementarnych: x 1 + x 3 = 2 x 2 + x 4 = 3 x 1 + x 2 + x 5 = 4 x 1 0,..., x 5 0 zaś maksymalizację funkcji g minimalizacja funkcji f (x 1, x 2, x 3, x 4, x 5 ) = 15x 1 10x 2. Inaczej można to zadanie zapisać w postaci f (x 1, x 2, x 3, x 4, x 5 ) = 15x 1 10x 2 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, 2009 4 / 13

Przykład (cd) Utworzymy tzw. tablicę sympleksowa, 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. 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 15 10 0 0 0 0 nic Mirosław Sobolewski (UW) Warszawa, 2009 5 / 13

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, 2009 6 / 13

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, 2009 6 / 13

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) Mirosław Sobolewski (UW) Warszawa, 2009 6 / 13

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 0 nic Mirosław Sobolewski (UW) Warszawa, 2009 7 / 13

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 0 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, 2009 7 / 13

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 0 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-30 nic Mirosław Sobolewski (UW) Warszawa, 2009 7 / 13

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 = 30. 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-30 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, 2009 8 / 13

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 -50 nic Tym razem w wierszu f w rubrykach zmiennych x 1,..., x 5 nie ma dodatnich elementów tzn. jesteśmy w minimum=-50. 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) = 50, w punkcie (x 1, x 2 ) = (2, 2) Mirosław Sobolewski (UW) Warszawa, 2009 9 / 13

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, 2009 10 / 13

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 = 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 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, 2009 11 / 13

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 tablica 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, 2009 12 / 13

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, 2009 13 / 13