Rozpatrzmy następujące zadanie programowania liniowego:

Slides:



Advertisements
Podobne prezentacje
Opracowała: Iwona Bieniek
Advertisements

EKONOMETRIA CZ. II W. Borucki.
Analiza współzależności zjawisk
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Wybrane zastosowania programowania liniowego
Programowanie matematyczne
Metoda simpleks Simpleks jest uniwersalną metodą rozwiązywania zadań programowania liniowego. Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania.
Metody rozwiązywania układów równań liniowych
Przykłady zadań programowania liniowego
Badania operacyjne. Wykład 2
Metody numeryczne wykład no 2.
Metody Numeryczne Wykład no 3.
Funkcja produkcji.
Analiza współzależności
ZLICZANIE cz. II.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Macierze Maria Guzik.
Liniowe modele decyzyjne – rozwiązania i analiza post-optymalizacyjna
Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w zarządzaniu” D. Witkowska, Menadżer Łódź Simpleks jest uniwersalną.
Zadanie pierwotne Zadanie dualne Max f. celu Współczynniki f. celu Warunki „=„ Warunki „=„ Macierz parametrów Min f. celu.
OPORNOŚĆ HYDRAULICZNA, CHARAKTERYSTYKA PRZEPŁYWU
Matematyka.
Matematyczne techniki zarządzania - 211
Kod Graya.
Paweł Górczyński Badania operacyjne Paweł Górczyński
AUTOMATYKA i ROBOTYKA (wykład 6)
Programowanie liniowe w teorii gier
Paweł Górczyński Badania operacyjne Paweł Górczyński
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
II Zadanie programowania liniowego PL
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Systemy wspomagania decyzji
Dana jest sieć dystrybucji wody w postaci: Ø      m- węzłów,
PROBLEMY DECYZYJNE KRÓTKOOKRESOWE WYBÓR OPTYMALNEJ STRUKTURY PRODUKCJI
Algebra Przestrzenie liniowe.
Przekształcenia liniowe
MS Excel - wspomaganie decyzji
Badania operacyjne, Solver
FUNKCJE Opracował: Karol Kara.
II Zadanie programowania liniowego PL
D. Ciołek BADANIA OPERACYJNE – wykład 2
Zagadnienia AI wykład 2.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
WYKŁAD 06 Programowanie dynamiczne Grażyna Mirkowska.
Zagadnienie i algorytm transportowy
Metody rozwiązywania układów równań nieliniowych
Metody rozwiązywania układów równań liniowych
Analiza portfeli dwu- oraz trzy-akcyjnych
D. Ciołek BADANIA OPERACYJNE – wykład 0
D. Ciołek BADANIA OPERACYJNE – wykład 2
Katedra Inżynierii Sterowania Komputerowe systemy sterowania i wspomagania decyzji 2015/2016 © Kazimierz Duzinkiewicz, dr hab. inż. 1 Dekompozycyjne metody.
Analiza CPV analiza koszty - produkcja - zysk
ANALIZA CVP KOSZT-WOLUMEN-ZYSK.
Treść dzisiejszego wykładu l Metoda kar. l Podsumowanie przekształcania zadań programowania liniowego do postaci tabelarycznej. l Specjalne przypadki –sprzeczność,
Analiza portfeli dwu- oraz trzy-akcyjnych. Portfel dwóch akcji bez możliwości krótkiej sprzedaży W - wartość portfela   W = a P 1 + b P 2   P 1 -
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
Logistyka – Ćwiczenia nr 6
Modele nieliniowe sprowadzane do liniowych
Ekonometria WYKŁAD 12 Piotr Ciżkowicz Katedra Międzynarodowych Studiów Porównawczych.
Treść dzisiejszego wykładu l Postać standardowa zadania PL. l Zmienne dodatkowe w zadaniu PL. l Metoda simpleks –wymagania metody simpleks, –tablica simpleksowa.
Treść dzisiejszego wykładu l Analiza wrażliwości –zmiana wartości współczynników funkcji celu, –zmiana wartości prawych stron ograniczeń. l Podejścia do.
Rachunkowość - Wycena rozchodu materiałów/towarów
Metody optymalizacji Materiał wykładowy /2017
(x1, x2) – decyzja (zmienne decyzyjne)
Badania operacyjne, Solver
Metody optymalizacji – metody badań operacyjnych
Problem ustalania grafiku ciąg dalszy
Zapis prezentacji:

Przykład rozwiązania zagadnienia programowania liniowego przy użyciu metody simplex

Rozpatrzmy następujące zadanie programowania liniowego: W przedsiębiorstwie Kubuś Puchatek wytwarza się m.in. dwa rodzaje maskotek: Kłapouchy i Prosiaczek. Do uszycia maskotek potrzebne są m.in. guziki, które przedsiębiorstwo posiada w ilościach ograniczonych. Na uszycie jednego Kłapouchego zużywane są dwa guziki niebieskie i jeden czerwony, natomiast do uszycia Prosiaczka potrzeba jednego guzika niebieskiego i aż trzech czerwonych. Wiedząc, że zysk ze sprzedaży jednego Kłapouchego wynosi 3 zł, a ze sprzedaży Prosiaczka 2 zł, oraz że przedsiębiorstwo KP posiada na stanie 160 guzików niebieskich i 100 guzików czerwonych wyznacz wielkość produkcji Kłapouchych i Prosiaczków, która maksymalizuje zysk przedsiębiorstwa.

Rozwiązanie zaczniemy od sformułowania zagadnienia w postaci standardowej Niech: x1 – oznacza ilość sztuk wytworzonych maskotek Kłapouchy x2 – oznacza ilość sztuk wytworzonych maskotek Prosiaczek Wtedy układ warunków ograniczających jest postaci Natomiast funkcja kryterium dana jest wzorem

Następnie sformułujemy zagadnienie w postaci kanonicznej Niech: s1 – oznacza pierwszą zmienną swobodną s2 – oznacza drugą zmienną swobodną Sprowadzamy zagadnienie do postaci kanonicznej i mamy Natomiast funkcja kryterium dana jest wzorem

Pierwsza tablica simpleks cj 3 2 Zmienne bazowe cb x1 x2 s1 s2 s1 2 1 1 160 s2 1 3 1 100 W pierwszej kolejności uzupełniamy wiersz zmiennych decyzyjnych oraz wektor cen funkcji kryterium. Następnie uzupełniamy macierz parametrów warunków ograniczających zagadnienia w postaci kanonicznej, oraz prawe strony ograniczeń strukturalnych. Do pierwszej bazy wchodzą zmienne swobodne.

Pierwsza tablica simpleks cj 3 2 Zmienne bazowe cb x1 x2 s1 s2 Rozwiązanie s1 2 1 1 160 s2 1 3 1 100 zj cj – zj 3 2 Wartości wiersza zj dla poszczególnych kolumn oblicza się jako sumę iloczynów współczynników odpowiadających poszczególnym zmiennym i współczynników funkcji celu dla zmiennych bazowych. Wyraz w ostatniej kolumnie w wierszu zj jest wartością funkcji kryterium dla bazy z aktualnej iteracji. Ostatni wiersz tablicy simpleksowej cj – zj zwany jest kryterium simpleks. Jego elementy odpowiadające poszczególnym zmiennym (kolumnom) informują, o ile zmieni się aktualna w danej iteracji wartość funkcji celu, jeżeli jedną jednostkę tej zmiennej wprowadzimy do nowej (kolejnej) bazy. Można łatwo zauważyć, że rozwiązanie bazowe nie będzie rozwiązaniem optymalnym, dopóki w wierszu tym będą występować wartości dodatnie.

Pierwsza tablica simpleks cj 3 2 Zmienne bazowe Kryterium wyjścia cb x1 x2 s1 s2 Rozwiązanie s1 2 1 1 160 80 s2 1 3 1 100 100 zj cj – zj 3 2 W tej tablicy największe kryterium simpleks odpowiada zmiennej x1, zatem ta zmienna wejdzie do kolejnej bazy. O tym, która zmienna opuści bazę, decydują wartości kolumny Kryterium wyjścia obliczane jako iloraz wartości elementów kolumny Rozwiązanie przez elementy kolumny zmiennej wchodzącej w danej iteracji do bazy, czyli zmiennej x1. Najmniejsza wartość kolumny Kryterium wyjścia wskazuje na zmienną, którą należy usunąć z bazy. W tej tablicy bazę opuści zmienna s1.

Druga tablica simpleks cj 3 2 Zmienne bazowe Kryterium wyjścia cb x1 x2 s1 s2 Rozwiązanie 3 x1 1 0,5 0,5 80 160 s2 2,5 -0,5 1 20 8 zj 3 1,5 1,5 240 cj – zj 0,5 -1,5 Tak jak w wypadku pierwszej tablicy, uzupełnianie drugiej tablicy simpleks zaczynamy od wiersza zmiennych decyzyjnych oraz wektora cen funkcji kryterium. Do Zmiennych bazowych weszła zmienna x1 w miejsce zmiennej s1. W wierszu, w którym wstawiliśmy nową zmienną bazową dzielimy wszystkie wyrazy z poprzedniej tablicy simpleks przez wyraz stojący na skrzyżowaniu wiersza i kolumny nowej zmiennej bazowej. W tej iteracji do bazy wstawiliśmy zmienną x1, zatem podzielimy wyrazy pierwszego wiersza przez 2. Pozostałe wiersze przekształcamy w taki sposób, że dodajemy do nich taką wielokrotność przekształconego przed chwilą wiersza, aby w kolumnie odpowiadającej nowo wstawionej zmiennej bazowej znajdowały się zera. Pozostałe elementy tablicy uzupełniamy analogicznie jak w poprzednim kroku. Widzimy zatem, że bazę opuści zmienna s2, a w jej miejsce wejdzie zmienna x2.

Druga tablica simpleks cj 3 2 Zmienne bazowe Kryterium wyjścia cb x1 x2 s1 s2 Rozwiązanie 3 x1 1 0,5 0,5 80 160 s2 2,5 -0,5 1 20 8 zj 3 1,5 1,5 240 cj – zj 0,5 -1,5 Po pierwszej iteracji można stwierdzić, że: Produkując 80 sztuk maskotek Kłapouchy oraz 0 sztuk maskotek Prosiaczek osiągniemy zysk w wysokości 240 zł. Wynik ten można poprawić wprowadzając do bazy zmienną x2.

Trzecia tablica simpleks cj 3 2 Zmienne bazowe cb x1 x2 s1 s2 Rozwiązanie 3 x1 1 0,6 -0,2 76 2 x2 1 -0,2 0,4 8 zj 3 2 1,4 0,2 244 cj – zj -1,4 -0,2 Do Zmiennych bazowych weszła zmienna x2 w miejsce zmiennej s2. W wierszu, w którym wstawiliśmy nową zmienną bazową dzielimy wszystkie wyrazy z poprzedniej tablicy simpleks przez wyraz stojący na skrzyżowaniu wiersza i kolumny nowej zmiennej bazowej. W tej iteracji do bazy wstawiliśmy zmienną x2, zatem podzielimy wyrazy przez 2,5. Pozostałe wiersze przekształcamy analogicznie jak w poprzedniej iteracji. Pozostałe elementy tablicy uzupełniamy analogicznie jak w poprzednim kroku. Zauważmy, że w wierszu cj – zj wystąpiły same niedodatnie liczby. Oznacza to, że rozwiązania nie da się już poprawić, zatem jest ono rozwiązaniem optymalnym.

Trzecia tablica simpleks ` cj 3 2 Zmienne bazowe cb x1 x2 s1 s2 Rozwiązanie 3 x1 1 0,6 -0,2 76 2 x2 1 -0,2 0,4 8 zj 3 2 1,4 0,2 244 cj – zj -1,4 -0,2 Rozwiązanie odczytujemy z ostatniej kolumny. Tak więc, aby osiągnąć maksymalny zysk ze sprzedaży należy wyprodukować 76 sztuk maskotek Kłapouchy oraz 8 sztuk maskotek Prosiaczek. Zysk wyniesie wtedy 244 zł. Z kolei z wiersza cj – zj z kolumn odpowiadających zmiennym swobodnym odczytujemy rozwiązanie zagadnienia dualnego. Ceny cienie interpretujemy w następujący sposób: Zwiększenie zasobu guzików niebieskich o 1 sztukę od wartości początkowej równej 160 sztuk, zwiększy wartość zysku o 1,40 PLN, przy niezmienionej ilości guzików czerwonych, równej 100 sztuk. Maksymalna cena, jaką warto zapłacić za dodatkowy guzik niebieski wynosi 1,40 zł, ceteris paribus.

Koniec