optymalizacja


0x01 graphic
Politechnika Wrocławska.

Wydział: Elektroniki

Algorytmy optymalizacji - projekt

Temat: metoda simpleks dualny.

Autorzy:

Tomasz Kaczor 117643

Piotr Jacko 117574

pod kierunkiem:

Dr inż. Ewa Szlachcic

Wrocław 2004

1. Sformułowanie zadania optymalizacji.

Wektor zmienny decyzyjnych x:

X = [x1 , x2 , x3 , .... , xn ]T

gdzie: n - ilość zmiennych decyzyjnych

Funkcja celu f(x):

f(x): Rn R1

oraz m funkcji ograniczeń gi(x)

gi(x) : Rn R1 dla i = 1,2, ... , m

Zadanie optymalizacji polega na znalezieniu wektora zmiennych decyzyjnych x, należącego do zbioru rozwiązań dopuszczalnych X w postaci:

X={x: gi(x) <= 0 , i = 1 , 2 , .. , m}

takiego, że dla ∀ x∈X

f(0x01 graphic
) <= f(x)

Co jest równoznaczne zapisowi :

0x08 graphic

0x01 graphic
= f(0x01 graphic
)


Metoda simpleks jest metodą sekwencyjnego, ściśle określonego przeglądania rozwiązań bazowych. W kolejnych iteracjach poprawiamy bieżącą wartość funkcji celu i coraz bardziej zbliżamy się do rozwiązania optymalnego (o ile ono istnieje). Po przejściu skończonej liczby kroków można uzyskać rozwiązanie optymalne lub stwierdzić jego brak.

W metodzie simpleks stosujemy ukierunkowany przegląd zbioru rozwiązań bazowych, gdyż pełny przegląd jest w ogólnym przypadku nieefektywny, ze względu na liczbę rozwiązań oraz rozmiary każdego układu równań. W metodzie tej przechodzimy od jednego dopuszczalnego rozwiązania bazowego do drugiego, o którym wiemy, że jest nie gorsze od poprzedniego. Pomijamy więc rozwiązania bazowe niedopuszczalne oraz te, które są gorsze od aktualnie rozpatrywanego.

Wyróżniamy trzy metody (rozwiązywania) rozwiązywania zadań PL

max x0 = cTx x∈X

X = {x: Ax<=b , x>=0}

min x0 = cTx x∈X

X = {x: Ax>=b , x>=0}

max x0 = cTx x∈X

X = {x: A1x>=b1 ∩ A2x<=b2 , x>=0}

W naszym sprawozdaniu ograniczymy się do opisu jedynie jednego algorytmu „metody dualnego simpleksu ” .

2. Metoda dualnego simpleksu.

Pojawił się nam problem postaci:

(2.1)

0x01 graphic

Problemem dualnym do (2.1) nazywamy problem programowania liniowego następującej postaci:

(2.2)

0x01 graphic

Problem (2.1) nazywamy wtedy problemem prymalnym (względem (2.2)).

Ogólna zasada dualności: Jeżeli problem prymalny (2.1) ma rozwiązanie optymalne, to także problem dualny (2.2) ma rozwiązanie optymalne i wartości funkcji celu obu tych rozwiązań są równe.

Zadanie dualne programowania liniowego posiada optymalne rozwiązanie gdy są spełnione:

1.Warunek dualnej dopuszczalności

yoj>0 , ∀j ∈R

2.Warunek optymalności.

yio > 0 dla i = 1 ,...,m

Algorytm:

Krok 1. (start). Rozpoczynamy algorytm od znalezienia pierwszej tablicy dualnie dopuszczalnej. Należy sprawdzić dualną dopuszczalność

rozwiązania: czy yoj >= 0 dla j∈R Tak - idź do kroku 2, Nie - koniec

Krok 2. (test optymalności). Czy yi0 >= 0 i= 1 , .... , m dla każdego ?

• Tak - to aktualne rozwiązanie jest optymalne.

• Nie - idź do kroku 3.

Krok 3. (Wybór zmiennej usuwanej z bazy). Wybierz jako zmienną usuwaną z bazy taką zmienną xB dla której yro < 0 .

Typową regułą jest wybór zmiennej xBr dla której:

yro = min{yio , yio < 0 , i=1..., m }

idź do kroku 4.

Krok 4. (wybór zmiennej wprowadzanej do bazy). Wybierz jako zmienną wchodzącą do bazy taką zmienną xk dla której:

0x01 graphic

Jeśli wiele zmiennych spełnia ten warunek, wybierz arbitralnie jedną z nich.

Idż do kroku 5.

Krok 5. (eliminacja). Dokonaj dualną iterację simpleksową metodą eliminacji Gauss'a poprzez wprowadzenie xk do bazy oraz usunięcie xBr

Idź do kroku 2.

Przykładowe zadanie:

min xo = 2x1 + x2

przy ograniczeniach:

x1 + x2 ≥ 3

x1 + 2x2 ≥ 4

x1,x2 >0

Powyższe zadanie przekształcamy do postaci:

max xo = -2x1 - x2

-x1 - x2 ≤ -3

-x1 - 2x2 ≤ -4

Następnie tworzymy tablice simpleksową i postępujemy zgodnie z podanym wcześniej algorytmem:

-x1

-x2

xo

0

2

1

x3

-3

-1

-1

x4

-4

-1

-2

-x1

-x4

xo

-2

1,5

0,5

x3

-1

-0,5

-0,5

x2

2

0,5

-0,5

-x1

-x3

xo

-3

1

1

x4

2

1

-2

x2

3

1

-1

Ostatnia tablica przedstawia rozwiązanie optymalne (yoj>0 , ∀j ∈R oraz yio > 0 dla i = 1 ,...,m):

Wartość optymalna f(x)=3 w punkcie x1 = 0 , x2= 3.

3. Działanie programu.

Program rozwiązuje zadania postaci:

min x0 = cTx x∈X

X = {x: Ax>=b , x>=0}

Dane wprowadzamy kolejno, zaczynając od ograniczeń (najpierw współczynniki, następnie wyrazy wolne) i kończąc na funkcji celu. Jeszcze przed wprowadzeniem danych, użytkownik jest pytany, czy wszystkie zmienne są dodatnie. Jeśli tak nie algorytm przerywa prace i powracamy do menu głównego. Algorytm ten nie jest bowiem w stanie rozwiązać zadania, w którym jakaś zmienna jest ujemna (w funkcji celu pojawia się wtedy `-` i nie jest spełnione kryterium dualnej dopuszczalności). Po wprowadzeniu danych tworzona jest tablica simpleksowa sprawdzane kryterium dualnej dopuszczalności (zabezpieczenie przed wprowadzaniem niepoprawnych danych wejściowych). Jeśli kryterium nie jest spełnione, program przerywa prace. Jeżeli kryterium zostało spełnione, program wybiera element wychodzący i wchodzący do bazy (zgodnie z kryteriami przedstawionymi w opisie algorytmu). Następnie tablica jest przekształcana metodą eliminacji Gaussa. Cykl powtarza się do momentu znalezienia rozwiązania optymalnego lub stwierdzenia wystąpienia innego przypadku (zadanie sprzeczne, nieskończona liczba rozwiązań).

W programie możemy obejrzeć kolejne tablice simpleksowe, wybierając z menu opcje „pokaż tablice”. Jeśli chcemy zobaczyć postać rozwiązania wybieramy „pokaż rozwiązanie”. W programie dostępna jest także opcja rysowania wykresów („Wykres”) dla zadań 2-wymiarowych.

4. Przykłady testowe.

  1. zbiór rozwiązań dopuszczalnych X nie jest zbiorem pustym i istnieje jedno rozwiązanie optymalne PL

Min x0 = 0,3x1 +0,6x2+0,2x3

Przy ograniczeniach:

0x01 graphic

Wynik działania programu:

Znaleziono rozwiazanie optymalne po 2 iteracjach

x1 = 300

x2 = 0

x3 = 600

Wartosc optymalna funkcji celu wynosi: 210

  1. zbiór rozwiązań dopuszczalnych X nie jest zbiorem pustym i istnieje nieskończona ilość rozwiązań optymalnych.

Min x0 = 0,1x1 +0,2x2+ 0,2x3 +0,3x4+0,4x5

Przy ograniczeniach:

0x01 graphic

Min xo = 2x1 + 2x2

przy ograniczeniach:

2x1 + 4x2 ≥ 1

x1 + x2 ≥ 2

2x1 + x2 ≥ 3

x ≥ 0

Wynik działania programu:

Rozpoznano 2 wierzcholkow:

1 wierzcholek ma wspolrzedne:

X1 = 2

X2 = 0

2 wierzcholek ma wspolrzedne:

X1 = 1

X2 = 1

Wartosc optymalna funkcji celu wynosi: 4

Obszar rozwiazan optymalnych ma zatem postac:

X' = {x: x = dx1 + (1 - d)x2, d=[0,1] }

  1. zbiór rozwiązań dopuszczalnych X jest zbiorem pustym, zadanie nieograniczone.

Min xo = 2x1 + x2

przy ograniczeniach:

-x1 + x2 ≥ 3

-x1 - 2x2 ≥ 5

x ≥ 0

5. Podsumowanie.

Program został napisany w C++ Borland 3.11. Zaimplementowany algorytm realizuje wszystkie typy zadań z równoczesną sygnalizacją błędu. Na ekranie możemy prześledzić kolejne iteracje simpleksowe, co daje nam możliwość dokładnego przeanalizowania danego zadania, lub też od razu wyświetlić rozwiązanie zadania. Po zapoznaniu się z algorytmami simpleksowymi, możemy stwierdzić, że są one stosunkowo proste w obliczeniach i implementacji (w porównaniu do np. algorytmów ewolucyjnych). Dobrze nadają się do rozwiązywania podstawowych problemów z zakresu optymalizacji.

6. Literatura.

  1. D.G. Luenberger , „Teoria optymalizacji” BNI

  2. Materiały dostarczone przez Dr inż. E. Szlachcic

  3. Notatki z wykładu

8

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Optymalizacja LP
Zasady ergonomii w optymalizacji czynności roboczych
optymalizacja fak
Podstawy Optymalizacji, simplex
model optymalizacyjny
BO WYK2 Program liniowe optymalizacja
Logistyka i optymalizacja kosztow w handlu internetowym
PRACA PRZEJŚCIOWA OPTYMALIZACJA PROCESÓW ENERGETYCZNYCH POPRZEZ ZASOTOWANIE NOWOCZESNYCH ALGORYTMÓW
ITIL Podstawy W2 Budowa i optymalizacja procesów i serwisów ITIL
Jadczak R Badania operacyjne, Wykład 4 Optymalizacja w logistyce
A8 Omówi narz dzia i metody rozwi zywania zadania sterowania optymalnego
MATEMATYCZNE METODY OPTYMALIZACJI
Projekt optymalizacja konstrukcji
Optymalizacja w4 2013
kurs, szkolenie optymalizacji stron
optymalne rozmieszczenie tłumików wiskotycznych
Optymalizacja dostaw od producent%F3w do hurtowni
Optymalizacja serwisow internetowych Tajniki szybkosci, skutecznosci i wyszukiwarek
optymalne trojdzwigniowe

więcej podobnych podstron