• Nie Znaleziono Wyników

Optymalizacja liniowa

N/A
N/A
Protected

Academic year: 2021

Share "Optymalizacja liniowa"

Copied!
23
0
0

Pełen tekst

(1)

Metody optymalizacji

dr inż. Paweł Zalewski

(2)

Zadaniem optymalizacji jest wyznaczenie spośród dopuszczalnych rozwiązań danego problemu rozwiązania najlepszego za względu na przyjęte kryterium (wskaźnik) jakości (np. koszt, zysk, niezawodność, ryzyko). Badaniem metod optymalizacji zajmuje się teoria optymalizacji. W literaturze ekonomii optymalizacja jest często nazywana

programowaniem gospodarczym, niekiedy mówi się też o badaniach operacyjnych. Zespół zależności, na podstawie których wyznacza się optymalne rozwiązania (decyzje), nazywa się modelem matematycznym. Jeżeli wszystkie zależności mają charakter funkcji liniowych, to mamy do czynienia z optymalizacją liniową (programowanie liniowe), jeżeli natomiast choć jedna z zależności jest nieliniowa - z optymalizacją

nieliniową.

Do innych matematycznych metod optymalizacji należą: programowanie sieciowe (sieci neuronowe) i rozmyte, stochastyczne (polegające na

wyborze decyzji „przeciętnie optymalnej”), teoria gier, teoria kolejek, rachunek wariacyjny, metody analizy funkcjonalnej.

2

-Optymalizacja - definicje:

Teoria obsługi masowej, teoria kolejek, teoria ogonków: w badaniach operacyjnych jedna z opartych na rachunku prawdopodobieństwa teorii podejmowania optymalnych decyzji. Zajmuje się konstruowaniem i rozwiązywaniem modeli matematyczno-statystycznych, przydatnych w wa-runkach konieczności obsługi w krótkim okresie czasu dużej ilości klientów. Impulsem jej powstania były badania dotyczące projektowania i eksploatacji central telefonicznych. Przedmiot teorii obsługi masowej oraz stosowane przez nią metody szczegółowe opisał w 1955 rosyjski matematyk A.J. Chinczin.

Rachunek wariacyjny: dział analizy

matematycznej badający warunki osiągania wartości ekstremalnych przez funkcjonały. Rachunek wariacyjny jest jedną z podstawowych metod fizyki matematycznej.

Analiza funkcjonalna: dział matematyki powstały w XX w., zajmujący się badaniem faktów z różnorodnych dziedzin za pomocą metod matematycznych (równania całkowe, równania różniczkowe, algebra liniowa i inne). Analiza funkcjonalna znalazła szerokie zastosowanie w różnych dziedzinach wiedzy, jej rozwojowi zasłużyli się matematycy polscy, m.in.: S. Banach (uważany za jej twórcę), H. Steinhaus, S. Mazur, W. Orlicz, J.P. Schauder.

(3)

3

-Optymalizacja liniowa – programowanie liniowe:

Rozwiązanie zadania programowania liniowego metodą SIMPLEX:

Zadanie należy sprowadzić do postaci kanonicznej, to znaczy do postaci, w której poszukujemy maksimum funkcji przy ograniczeniach równościowych i wszystkich zmiennych nieujemnych, przy czym w tablicy ograniczeń musi dać się wyróżnić macierz jednostkowa, a prawe strony muszą być dodatnie.

W przypadku poszukiwania minimum funkcji dla zależności liniowych:

gdzie x jest wektorem argumentów funkcji f.

Aby ograniczenia przekształcić w równości, dodajemy do lewych stron (lub odejmujemy) zmienne uzupełniające o wartościach dodatnich.

 

max

 

,

(4)

4

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Znaleźć minimum funkcji:

 

x

2

x

1

3

x

3

f

przy ograniczeniach:

0

,

,

,

1

2

,

4

4

3

,

3

2

3 2 1 3 2 3 2 3 2 1

x

x

x

x

x

x

x

x

x

x

(5)

5

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Poszukiwanie minimum funkcji liniowej f(x) jest równoważne

poszukiwaniu maksimum tej funkcji wziętej z przeciwnym znakiem, a więc funkcji:

 

 

1 3

1

x

f

x

2

x

3

x

f

Ograniczenia przyjmą postać:

0

,

,

,

,

,

1

2

,

4

4

3

,

3

2

5 4 3 2 1 3 2 5 3 2 4 3 2 1

x

x

x

x

x

x

x

x

x

x

x

x

x

x

(6)

6

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Macierz ograniczeń, czyli tablica współczynników przy argumentach x1, x2,

x3, x4, x5 w trzech równaniach ograniczeń ma postać:

0

0

1

2

0

1

0

4

3

0

0

1

1

2

1

O

,

1

0

0

0

1

0

0

0

1

W tablicy tej nie można jednak jeszcze wyróżnić macierzy jednostkowej:

gdyż brakuje w niej wektora kolumnowego:

1

0

0

(7)

7

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Po lewej stronie trzeciego ograniczenia trzeba więc dodać zmienną „sztuczną” x6, która ten brak wyrówna.

Aby zmienna x6 nie miała wpływu na rozwiązanie i aby można ją było szybko wyeliminować z zadania w trakcie jego rozwiązywania,

uzupełniamy funkcję celu o składnik -wx6 z bardzo dużym współczynnikiem dodatnim w. W ten sposób niejako „pogarszamy” znacznie funkcję celu „oddalając” jej wartość (znacznie zmniejszając) od prawdziwego maksimum.

(8)

8

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Zadanie przyjmie więc postać (kanoniczną) wyznaczenia maksimum funkcji celu f1(x): Przy ograniczeniach:

0

,

,

,

,

,

,

1

2

,

4

4

3

,

3

2

6 5 4 3 2 1 6 3 2 5 3 2 4 3 2 1

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

 

1 3 6 1

2

3

max

f

x

x

x

wx

(9)

9

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX: Budujemy pierwszą tablicę „simplexów”:

ci 2 0 3 0 0 -w Baza cb b A1 A2 A3 A4 A5 A6 A1 2 3 1 2 1 1 0 0 A5 0 4 0 3 4 0 1 0 A6 -w 1 0 2 1 0 0 1 Wskaźniki 6 - w 0 4 - 2w -1 - w 2 0 0 Współczynniki występujące przy zmiennych xi w funkcji celu f1(x) Wartości po prawych stronach ograniczeń Współczynniki lewych stron ograniczeń Wektory współczynników ograniczeń Wartości ci dla jednostkowych wektorów Ai Jednostkowe wektory Ai ∑ (cbAi)-ci ∑( cbb )

Iloczyn skalarny cbb określa wartość funkcji celu w danym kroku, wektor

(10)

10

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Najmniejsza (najbardziej ujemna) wartość wskaźnika w dolnym wierszu wyznacza wektor, jaki w następnym kroku wprowadzimy do bazy.

W naszym przypadku będzie to wektor A2. Rozwiązanie osiągniemy, gdy nie będzie już wskaźnika o wartości ujemnej.

Wektor usuwany z bazy wyznacza się obliczając ilorazy charakterystyczne dla wszystkich dodatnich elementów wektora wprowadzanego do bazy (A2) według zależności:

2

1

,

3

4

,

2

3

6 6 5 5 1 1 2 06 2 05 2 01

A A A A A A

A

b

r

A

b

r

A

b

r

(11)

11

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Z bazy należy usunąć wektor, którego element występuje w ilorazie o najmniejszej wartości spośród wyznaczonych – w omawianym przykładzie będzie to wektor A6(r06= r0= ½)

Ponieważ jest to wektor odpowiadający zmiennej sztucznej, usuwamy go

nie tylko z bazy, ale z całej tablicy simplexów.

Wyznaczony iloraz r0 podaje jednocześnie nową wartość elementu wektora b w wierszu wektora wprowadzanego do bazy (b’A2 = r0, gdyż wprowadzamy wektor A2). Pozostałe dwa nowe elementy wektora b wyznacza się z zależności:

2

5

3

2

1

4

,

2

2

2

1

3

5 5 5 1 1 1 2 0 ' 2 0 '

A A A A A A

A

r

b

b

A

r

b

b

(12)

12

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Wprowadzany do bazy wektor przyjmuje wartości jednostkowe, a wskaźniki odpowiadające wektorom bazowym (dolny wiersz tabeli simplexów) będą zawsze wynosić 0. Wartość funkcji celu wzrasta do 4.

Ci 2 0 3 0 0 Baza cb b’ A1A2A3A4A5A1 2 2 1 0 0 A5 0 5⁄ 2 0 0 1 A2 0 ½ 0 1 0 Wskaźniki 4 0 0 0

(13)

13

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Następnie należy wyznaczyć ilorazy kolumnowe dla wektorów poza-bazowych:

0

2

0

,

2

1

6 6 2 6 6 2 2 4 ' 4 46 2 3 ' 3 36

A A A A A A

A

A

A

r

A

A

A

r

(14)

14

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

ci 2 0 3 0 0 Baza cb b’ A1A2A3A4A5A1 2 2 1 0 0 A5 0 5⁄2 0 0 1 A2 0 ½ 0 1 ½ 0 0 Wskaźniki 4 0 0 0

(15)

15

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Na podstawie otrzymanych ilorazów kolumnowych wyznacza się brakujące elementy tablicy:

0

3

0

0

,

2

5

3

2

1

4

,

1

2

0

1

,

0

2

2

1

1

5 5 5 5 5 5 1 1 1 1 1 1 2 46 4 ' 4 2 36 3 ' 3 2 46 4 ' 4 2 36 3 ' 3

A A A A A A A A A A A A

A

r

A

A

A

r

A

A

A

r

A

A

A

r

A

A

(16)

16

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX: Druga tablica simplexów:

ci 2 0 3 0 0 Baza cb b A1 A2 A3 A4 A5 A1 2 2 1 0 0 1 0 A5 0 5⁄ 2 0 0 5⁄2 0 1 A2 0 ½ 0 1 ½ 0 0 Wskaźniki 4 0 0 -3 2 0

(17)

17

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Najmniejsza (najbardziej ujemna) wartość wskaźnika w dolnym wierszu wyznacza wektor, jaki w następnym kroku wprowadzimy do bazy.

W naszym przypadku będzie to wektor A3.

Wektor usuwany z bazy wyznacza się obliczając ilorazy charakterystyczne dla wszystkich dodatnich elementów wektora wprowadzanego do bazy (A3):

1

2

1

2

1

,

1

2

5

2

5

,

0

2

2 2 5 5 1 1 3 02 3 05 3 01

A A A A A A

A

b

r

A

b

r

A

b

r

(18)

18

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Z bazy należy usunąć wektor, którego element występuje w ilorazie o najmniejszej wartości spośród wyznaczonych – mamy dwa takie wektory:

A2i A5. Wybieramy jeden z nich np. A2 (r02= r0= 1)

Wyznaczony iloraz r0 podaje jednocześnie nową wartość elementu wektora b w wierszu wektora wprowadzanego do bazy (b’A3 = r0, gdyż wprowadzamy wektor A3). Pozostałe dwa nowe elementy wektora b wyznacza się z zależności:

0

2

5

1

2

5

,

2

0

1

2

5 5 5 1 1 1 3 0 ' 3 0 '

A A A A A A

A

r

b

b

A

r

b

b

(19)

19

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Wprowadzany do bazy wektor przyjmuje wartości jednostkowe, a wskaźniki odpowiadające wektorom bazowym będą zawsze wynosić 0. Wartość funkcji celu wzrasta do 7.

Ci 2 0 3 0 0 Baza cb b’ A1A2A3A4A5A1 2 2 1 0 0 A5 0 0 0 0 1 A3 3 1 0 1 0 Wskaźniki 7 0 0 0

(20)

20

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Następnie należy wyznaczyć ilorazy kolumnowe dla wektorów poza-bazowych:

0

2

1

0

,

2

2

1

1

2 2 3 2 2 3 3 4 ' 4 42 3 2 ' 2 22

A A A A A A

A

A

A

r

A

A

A

r

(21)

21

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

Na podstawie otrzymanych ilorazów kolumnowych wyznacza się brakujące elementy tablicy:

0

2

5

0

0

,

5

2

5

2

0

,

1

0

0

1

,

0

0

2

0

5 5 5 5 5 5 1 1 1 1 1 1 3 42 4 ' 4 3 22 2 ' 2 3 42 4 ' 4 3 22 2 ' 2

A A A A A A A A A A A A

A

r

A

A

A

r

A

A

A

r

A

A

A

r

A

A

(22)

22

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX: Trzecia tablica simplexów:

ci 2 0 3 0 0 Baza cb b A1 A2 A3 A4 A5 A1 2 2 1 0 0 1 0 A5 0 0 0 -5 0 0 1 A3 3 1 0 2 1 0 0 Wskaźniki 7 0 6 0 2 0

(23)

23

-Optymalizacja liniowa – programowanie liniowe:

Przykład rozwiązania zadania optymalizacyjnego metodą SIMPLEX:

W dolnym wierszu (wskaźnikowym) nie ma już elementów ujemnych, a więc rozwiązano zadanie.

Wartość funkcji f1(x) jest równa 7, a wartości zmiennych x1=2, x5=0, x3=1.

Pozostałe zmienne (nie występujące w kolumnie b ostatniej tablicy simplexów) są równe zeru (x2=0, x4=0).

Zatem pomijając zmienne sztuczne otrzymujemy ostateczne rozwiązanie zadania dla funkcji f(x), dla której poszukiwaliśmy minimum:

2

,

0

,

1

7

min

f

Cytaty

Powiązane dokumenty

nictwie własnym (Róża, Miła), dodatnie dla danego narodu cechy imion postaci historycznych (Władimir, Wanda), rekomendacji religii panującej (imiona kanonu

Są szkoły mające już nowoczesne sale gimnastyczne lub świetlice ze sceną wyposażoną w kulisy, kurtynę, a nawet reflektory, w jeszcze innych szkołach

[r]

Dla poszczególnych kategorii rozpoznania zaproponowano następujące dopuszczalne wielkości błędów wyznaczanych jako błędy krigingu zwyczajnego: kategoria measured (A + B wg

sposobu obliczania wskaźników optymalności j wynika, że wskaźniki optymalności odpowiadające zmiennym swobodnym wyznaczają optymalne wartości zmiennych

Uwaga: wyniki z ćwiczeń i kolokwium będą z tą samą wagą uwzględniane i przy ewentualnym egzaminie „poprawkowym” (tj. zdawanym w drugim terminie)A. Terminy moich konsultacji

Uwaga: wynik pracy na ćwiczeniach będzie z tą samą wagą 30% uwzględniany i przy ewentualnym egzaminie

Na ocenę składać się będą zasadniczo punkty za pracę na ćwiczeniach (20%), za kolokwia 1 i 2 (po 20%) i za egzamin (40%) Kolokwia odbędą się 26 marca i 22 stycznia (oba dni