ZMPST Metody optymalizacji 1

background image

Metody optymalizacji 1

background image

Plan wykładu

• Metody poszukiwania minimum bez

ograniczeń

• Programowanie liniowe
• Metoda Simplex
• Dualność programowania liniowego
• Problemy całkowitoliczbowe
• Metoda podziału i oszacowań
• Metoda podziału i odcięć

background image

Sformułowanie problemu

poszukiwania minimum bez

ograniczeń

Zadanie minimalizacji funkcji bez ograniczeń

można zapisać następująco

gdzie f : R

n

R , przy czym zakłada się, że

funkcja f jest ograniczona od dołu.

)

(

min

)

ˆ

(

x

x

f

f

n

R

x

background image

Warunki optymalności dla

zadań bez ograniczeń (1)

Definicja. Kierunkiem d w przestrzeni R

n

będziemy

nazywać dowolny n-wymiarowy wektor
kolumnowy. Niech będzie dany punkt x R

n

oraz

skalar

 [0;+). Dowolny punkt y R

n

leżący na

półprostej wychodzącej z punktu x w kierunku d

0 będzie w wówczas określony zależnością

y = x +

d

background image

Warunki optymalności dla

zadań bez ograniczeń (2)

Lemat. Niech f : X = R

n

R

1

będzie funkcją

różniczkowalną w punkcie x

0

X . Załóżmy, że

istnieje d, dla którego

f(x

0

)

T

d < 0

wówczas istnieje takie

> 0, że dla wszystkich

(0;

] zachodzi

f(x

0

+

d) < f(x

0

)

Dowód. Lemat wynika wprost z własności różniczki

Gateaux

d

x

x

d

x

T

f

f

f

)

(

)

(

)

(

lim

0

0

0

0

background image

Warunki optymalności dla

zadań bez ograniczeń (3)

Twierdzenie. Niech f : X = R

n

R

1

będzie funkcją

różniczkowalną. Jeżeli x

X minimalizuje funkcję

w tzn.

f(x

)  f(x), xX

to

f(x

) = 0

Powyższy warunek jest tylko warunkiem

koniecznym. Jeżeli więc f(x

) = 0, to x

może być

minimum lub maksimum globalnym lub lokalnym,
albo punktem przegięcia lub punktem siodłowym.

background image

Warunki optymalności dla

zadań bez ograniczeń (4)

Twierdzenie. Niech f : X = R

n

R

1

będzie funkcją

wypukłą i różniczkowalną. Punkt x

X stanowi

minimum globalne funkcji f wtedy i tylko wtedy,
gdy x

spełnia warunek

f(x

) = 0

Twierdzenie. Jeśli f : X = R

n

R

1

będzie funkcją

ściśle wypukłą i różniczkowalną, to punkt x

X

spełniający warunek konieczny f(x

) = 0 jest

jednym minimum globalnym funkcji f.

background image

Metody poszukiwania minimum

funkcji bez ograniczeń

• Metody przypadkowe

 Algorytmy genetyczne
 Symulowane wyżarzanie

• Metody zdeterminowane (sposób tworzenia

kierunków poszukiwań)

 Metody o modyfikowanej bazie (bezgradientowe)
 Metody o modyfikowanym kierunku (gradientowe)

• Metody zdeterminowane (sposób

znajdowania kolejnego punktu wzdłuż

kierunku poszukiwań)

 Metody dyskretne
 Metody z minimalizacją

background image

Metoda złotego podziału (1)

• Metoda bezgradientowa
• Stosuje złotą liczbę
• Złota liczba została odkryta przez

starożytnych Greków, i dotyczy podziału
odcinka o długości
(a + b) na takie części, że (a + b) / a = a / b

• Metoda złotego podziału stosuje liczbę (

 1)

• Stosowana w architekturze, sztuce

2

1

5

background image

Metoda złotego podziału (2)

Minimum jest szukane dla funkcji f(x), x  [

0

;

m

]

Inicjalizacja algorytmu

= (

 1) , 

= (1 

)(

m

0

) , a

1

=

0

, b

1

=

m

,

x

11

= a

1

+ 

, x

21

= b

1

 

Algorytm obliczeń
Jeżeli f(x

2k

) > f(x

1k

), to

a

k+1

= a

k

, b

k+1

= x

2k

, x

1k+1

=

a

k+1

+ (1 

)b

k+1

, x

2k+1

= x

1k

Jeżeli f(x

2k

)  f(x

1k

), to

a

k+1

= x

1k

, b

k+1

= b

k

, x

1k+1

= x

2k

, x

2k+1

=

b

k+1

+ (1 

)a

k+1

Warunek stopu
Wymagana dokładność, liczba iteracji

background image

Metoda złotego podziału (3)

background image

Metoda złotego podziału (3)

background image

Metoda złotego podziału (4)

Przykład. Znaleźć minimum dla f(x) = x

2

– 6x – 4, x  [0;10]

k

a

b

x

1

x

2

f(x

1

)

f(x

2

)

1

0

10

3,82

6,18

-12,3

-2,8

2

0

6,18

2,36

3,82

-12,6

-12,3

3

0

3,82

1,46

2,36

-10,6

-12,6

4

1,46

3,82

2,36

2,92

-12,6

-

12,99

5

2,36

3,82

2,92

3,26

-

12,99

-

12,93

6

2,36

3,26

2,70

2,92

-

12,91

-

12,99

Jakie jest rozwiązanie tego problemu?

background image

Programowanie liniowe

Programowanie liniowe LP (ang. Linear

Programming) to klasa problemów programowania
matematycznego, w której wszystkie warunki
ograniczające oraz funkcja celu mają postać liniową

• Wiele problemów optymalizacji szczególnie w

ekonomii może być zapisana jako zadanie
programowania liniowego

• Najbardziej popularna metoda rozwiązania zadań

programowania liniowego to Simplex

• Twórca metody Simplex – George Dantzig –

otrzymał w 1975 roku nagrodę Nobla w dziedzinie
ekonomii

background image

Warianty zapisu zadania

programowania liniowego (1)

indeksy

j = 1,2,…,n zmienne

i = 1,2,…,m ograniczenia

stałe

a

ij

współczynnik zmiennej j w ograniczeniu i

b

i

prawa strona ograniczenia i

c

j

współczynnik kosztu zmiennej j

zmienne

x

j

zmienna j

funkcja kryterialna

min z = 

j

c

j

x

j

ograniczenia

j

a

ij

x

j

= b

i

dla i = 1,2,…,m

x

j

 0 dla j = 1,2,…,n

background image

Warianty zapisu zadania

programowania liniowego (2)

x = [x

1

, x

2

,…, x

n

] – kolumna o rozmiarze n

b = [b

1

, b

2

,…, b

m

] – kolumna o rozmiarze m

c = [c

1

, c

2

,…, c

n

] – wiersz o rozmiarze n

macierz o rozmiarze m x n

min cx
przy ograniczeniach (p.o.)
Ax = b
x
0

mn

m

n

n

a

a

a

a

a

a

...

...

...

...

...

...

1

2

21

1

11

A

background image

Postać standardowa zadania

programowania liniowego (1)

zmienne
x

j

zmienna j

funkcja kryterialna
min z = 

j

c

j

x

j

ograniczenia

j

a

ij

x

j

= b

i

dla i = 1,2,…,m

x

j

 0 dla j = 1,2,…,n

background image

Postać standardowa zadania

programowania liniowego (2)

Pełne ograniczenia nierównościowe typu

j

a

ij

x

j

b

i

dla i = 1,2,…,m

można sprowadzić do postaci równościowej przez

dodanie zmiennej dopełniającej (ang. slack) z o

wartościach nieujemnych

j

a

ij

x

j

+ z

j

= b

i

, z

i

 0 dla i = 1,2,…,m

Pełne ograniczenia nierównościowe typu

j

a

ij

x

j

b

i

dla i = 1,2,…,m

przekształcamy przez odjęcie zmiennej

dopełniającej o wartościach nieujemnych

j

a

ij

x

j

z

j

= b

i

, z

i

 0 dla i = 1,2,…,m

background image

Postać standardowa zadania

programowania liniowego (3)

Pełne dwustronne ograniczenia nierównościowe

l

i

 

j

a

ij

x

j

u

i

dla i = 1,2,…,m

j

a

ij

x

j

u

i

dla i = 1,2,…,m

j

a

ij

x

j

l

i

dla i = 1,2,…,m

Mogą być sprowadzone do postaci równościowej

dodając zmienne dopełniające do ograniczeń

j

a

ij

x

j

u

i

dla i = 1,2,…,m

j

a

ij

x

j

l

i

dla i = 1,2,…,m

w przedstawiony powyżej sposób

background image

Postać standardowa zadania

programowania liniowego (4)

Dwustronne ograniczenia zakresu zmiennych

l

j

x

j

u

j

dla j = 1,2,…,n

można zastąpić nierównościami

x

j

l

j

dla j = 1,2,…,n

x

j

u

j

dla j = 1,2,…,n

Zmienne nieograniczone można zastąpić

wprowadzając różnicę dwóch nieujemnych zmiennych

x

j

= z

1

z

2

z

1

 0

z

2

 0

background image

Własności zadania

programowania liniowego

Twierdzenie. Zbiór wszystkich rozwiązań

dopuszczalnych zadania programowania liniowego
jest zbiorem wypukłym

Twierdzenie. Funkcja celu zadania programowania

liniowego przyjmuje wartość minimalną w
punkcie wierzchołkowym zbioru wypukłego
utworzonego na zbiorze rozwiązań dopuszczalnego
zadania programowania liniowego. Jeżeli przyjmuje
wartość w więcej niż jednym punkcie
wierzchołkowym, to tę samą wartość przyjmuje dla
każdej kombinacji wypukłej tych punktów

background image

Interpretacja geometryczna

programowania liniowego (1)

max 2x

1

+ x

2

p.o.
x

1

+ x

2

 6

-2x

1

+ x

2

 3

x

1

 0

x

2

 0

rozwiązanie
x

1

= 6

x

2

= 0

background image

Interpretacja geometryczna

programowania liniowego (2)

max x

1

+ 2x

2

p.o.
x

1

+ x

2

 6

-2x

1

+ x

2

 3

x

1

 0

x

2

 0

rozwiązanie
x

1

= 1

x

2

= 5

background image

Metoda Simplex

• Opracowana w 1947 roku przez Georga Dantziga
• Istota metody simpleks polega na przeglądaniu

wierzchołków wielościanu przestrzeni rozwiązań

• Wyznaczany jest jeden z wierzchołków
• Kolejne kroki algorytmu polegają na przejściu do

następnego wierzchołka, znajdującego się na
jednej krawędzi z odnalezionym już punktem, w
którym funkcja celu osiąga lepsze wartości

• Algorytm kończy się, gdy kolejny przeglądany punkt

wierzchołkowy jest najlepszy pod względem
odpowiednich wartości funkcji celu

background image

Dualność

programowania liniowego (1)

• Wiele metod rozwiązywania zadań

programowania liniowego wykorzystuje

zadania dualne

• Z zadaniem podstawowym, zwanym zadaniem

pierwotnym lub prymalnym jest związane

zadanie dualne

• Między zadaniem podstawowym i dualnym są

ścisłe związki umożliwiające konstrukcję

algorytmów rozwiązywania zadań

programowania liniowego, jak również

zmniejszenie nakładu obliczeń

background image

Dualność

programowania liniowego (2)

Zadanie prymalne
zmienne
x

j

zmienna j

funkcja kryterialna
min 

j

c

j

x

j

ograniczenia

j

a

ij

x

j

b

i

dla i = 1,2,

…,m

x

j

 0 dla j = 1,2,…,n

Zadanie dualne
zmienne

i

dualna zmienna i

funkcja kryterialna
max 

i

b

i

i

ograniczenia

i

a

ij

i

c

j

dla j = 1,2,

…,n

i

 0 dla i = 1,2,…,m

background image

Dualność

programowania liniowego (3)

Zadanie prymalne
min cx
p.o. Axb
x
0

Zadanie dualne
max b
p.o. Ac
0

background image

Dualność

programowania liniowego (4)

Twierdzenie. Zadaniem dualnym do zadania

dualnego jest zadanie prymalne

Twierdzenie. Jeżeli x jest rozwiązaniem

dopuszczalnym dla zadaniem prymalnego i  jest

rozwiązaniem dopuszczalnym dla zadania
dualnego, to wartość funkcji celu w zadaniu
prymalnym nie może być mniejsza od wartości
funkcji celu w zadaniu dualnym

cxb

background image

Dualność

programowania liniowego (5)

Twierdzenie (silna dualność). Jeżeli dla pary rozwiązań

dopuszczalnych (x

0

,

0

) zachodzi równość cx

0

= b

0

to (x

0

,

0

) jest parą rozwiązań optymalnych

Twierdzenie. Jeśli jedno z pary wzajemnie dualnych

zadań programowania liniowego ma rozwiązanie
optymalne, to ma je również zadanie dualne i
obydwa zadania mają identyczne wartości funkcji
celu

Twierdzenie. Jeśli zadanie dualne jest nieograniczone,

to zadania prymalne jest sprzeczne

background image

Problemy całkowitoliczbowe

(1)

• Problem, w którym część zmiennych jest ciągła a

część całkowitych określany jest skrótem MIP (ang.

Mixed Integer Programming)

• Problem, w którym wszystkie zmienne są całkowite

określany jest skrótem IP (ang. Integer Programming)

• Problemy całkowitoliczbowe należą do klasy

problemów NP-trudnych

• Specjalną klasą problemów całkowitoliczbowych są

problemy, w których zmienne całkowite mogą

przyjmować wartości 0 lub 1

• Podstawowy sposób rozwiązywania problemów

całkowitoliczbowych to metoda podziału i

oszacowań

background image

Problem MIP

indeksy
j = 1,2,…,n zmienne
i = 1,2,…,m ograniczenia
stałe
a

ij

współczynnik zmiennej j w ograniczeniu i

b

i

prawa strona ograniczenia i

c

i

współczynnik kosztu zmiennej j

zmienne
x

j

zmienna j

funkcja kryterialna
min z = 

j

c

j

x

j

ograniczenia

j

a

ij

x

j

= b

i

dla i = 1,2,…,m

x

j

 {0,1} dla j = 1,2,…,k , x

j

 0 dla j = k + 1, k + 2,…,n

background image

Problem IP

indeksy
j = 1,2,…,n zmienne
i = 1,2,…,m ograniczenia
stałe
a

ij

współczynnik zmiennej j w ograniczeniu i

b

i

prawa strona ograniczenia i

c

i

współczynnik kosztu zmiennej j

zmienne
x

j

zmienna j

funkcja kryterialna
min z = 

j

c

j

x

j

ograniczenia

j

a

ij

x

j

= b

i

dla i = 1,2,…,m

x

j

 {0,1} dla j = 1,2,…,n

background image

Relaksacja problemu MIP

Niech N

0

oraz N

1

oznaczają zbiór oznaczają zbiory

indeksów zmiennych o wartościach 0 oraz 1. Zbiór

N

U

zawiera indeksy zmiennych binarnych o

nieustalonych wartościach

Problem MIP można przekształcić w problem, w

którym są następujące ograniczenia

x

j

 0 dla j = k + 1, k + 2,…,n

0  x

j

 1 , x

j

ciągłe dla jN

U

x

j

= 0 dla jN

0

x

j

= 1 dla jN

1

Rozwiązanie powyższego problemu, jeżeli istnieje,

stanowi dolne oszacowanie rozważanego problemu

background image

Metoda podziału i oszacowań

(1)

• Metoda podziału i oszacowań (ang. branch-and-bound)

polega na przeszukiwaniu przestrzeni rozwiązań i
eliminowaniu podzbiorów przestrzeni rozwiązań, które
nie dają szans na uzyskanie lepszego rozwiązania

• Najważniejsze elementy metody podziału i oszacowań to

oszacowanie (ang. bounding) i podział (ang.
branching)

• Procedura dolnego oszacowania umożliwia

zweryfikowanie bieżącego rozwiązania, zazwyczaj
dolne oszacowanie uzyskuje się rozwiązując
uproszczoną wersję problemu

• Metody podziału służą do wyboru zmiennych do

podstawienie

• Rozwiązanie uzyskane za pomocą metody podziału i

oszacowań można przedstawić w formie drzewa

background image

Metoda podziału i oszacowań

(2)

procedure BBB (N

U

,N

0

,N

1

)

begin
solution (N

U

,N

0

,N

1

, x, z) {solving the relaxed linear poblem};

if N

U

= or for all i N

U

x

i

are binary then

if z < z

best

then begin z

best

:= z; x

best

:= x end

else {in the current solution the value of x

i

is not binary for

some i N

U

}

if z ≥ z

best

then

return {bounding}
else
begin
{branching}
choose i N

U

such that x

i

is fractional;

BBB (N

U

\{i},N

0

{i},N

1

);

BBB (N

U

\{i},N0,N

1

{i})

end
end
{ procedure }

background image

Metoda podziału i odcięć

• Metoda podziału i odcięć (ang. branch-and-cut)

to ulepszona wersja metody podziału i oszacowań

Skuteczność metody podziały i oszacowań

zależy od efektywności oszacowań

• Wprowadzając w każdym węźle drzewa rozwiązań

dodatkowych ograniczeń (valid
inequalities)
, można ograniczyć przestrzeń
rozwiązań i uzyskać dokładniejsze oszacowanie

• Metoda podziału i odcięć to metoda podziału i

oszacowań z dodatkowymi ograniczeniami
używanymi w węzłach drzew

background image

Metoda podziału i odcięć –

przykład (1)

min z = -6x

1

– 5x

2

p.o. 3x

1

+ x

2

 11

-x

1

+ 2x

2

 5

x

1

, x

2

 0, całkowite

rozwiązanie LP
(niecałkowite)
x

1

= 2

3

/

7

x

2

= 3

5

/

7

z = -33

1

/

7

background image

Metoda podziału i odcięć –

przykład (2)

Podział na dwa problemy względem zmiennej x

1

(x

1

 3, x

1

 2)

min z = -6x

1

– 5x

2

p.o. 3x

1

+ x

2

 11

-x

1

+ 2x

2

 5

x

1

3

x

1

, x

2

 0,

całkowite
rozwiązanie LP
(całkowite)
x

1

= 3 x

2

= 2

z = -28
Koniec obliczeń dla
tego podproblemu

background image

Metoda podziału i odcięć –

przykład (3)

min z = -6x

1

– 5x

2

p.o. 3x

1

+ x

2

 11

-x

1

+ 2x

2

 5

x

1

 2

x

1

, x

2

 0,

całkowite
rozwiązanie LP
(niecałkowite)
x

1

= 2 x

2

= 3,5

z = -29,5
Rozwiązanie nie
spełnia warunku
całkowitoliczbowości,
należy kontynuować
obliczenia

background image

Metoda podziału i odcięć –

przykład (4)

Dodano nowe ograniczenie
min z = -6x

1

– 5x

2

p.o. 3x

1

+ x

2

 11

-x

1

+ 2x

2

 5

x

1

 2

2x

1

+ x

2

7

x

1

, x

2

 0, całkowite

rozwiązanie LP (niecałkowite)
x

1

= 1,8

x

2

= 3,4

z = -27,8
Otrzymana wartość jest większa niż dotychczas

znalezione rozwiązanie całkowitoliczbowe, koniec
obliczeń

background image

Podsumowanie

• Wiele problemów optymalizacji to zadania

programowania liniowego, w których funkcja

kryterialna oraz ograniczenia są funkcjami

liniowymi, zmienne są ciągłe

• Najbardziej popularna metoda rozwiązywania

zadań programowania liniowego to Simplex

• Zadania, w których część zmiennych musi być

całkowita, należą do klasy NP.

• Jedynymi metodami rozwiązującymi zadania

całkowitoliczbowe to algorytmy oparte na

metodzie podziału i oszacowań

• Efektywną modyfikacją metody podziału i

oszacowań to metoda podziału i odcięć

background image

Dodatkowa literatura

• M. Pióro, D. Medhi, „Routing, Flow, and Capacity Design in

Communication and Computer Networks”, Morgan Kaufman

Publishers 2004 (rozdział 5)

• W. Findeisen, J. Szymanowski, A. Wierzbicki, „Teoria i metody

obliczeniowe optymalizacji”, PWN, Warszawa 1980

• A. Stachurski, A. Wierzbicki, „Podstawy optymalizacji”, Oficyna

Wydawnicza Politechniki Warszawskiej, Warszawa 1999

• S. Gass, „Programowanie liniowe”, PWN, Warszawa 1973

• J. Buga, I. Nykowski, „Zagadnienia transportowe w programowaniu

liniowym”, PWN, Warszawa 1974

• I. Nykowski, „Programowanie liniowe”, PWE, Warszawa 1980

http://www.wikipedia.org

http://www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-faq

.html#Q2

http://www.ee.ucla.edu/ee236a/ee236a.html

• J. Mitchell, „Branch-and-cut methods for combinatorial optimization

problems”, in the Handbook of Applied Optimization, Oxford

University Press 2002, http://www.rpi.edu/~mitchj/papers/bc_hao.pdf


Document Outline


Wyszukiwarka

Podobne podstrony:
ZMPST Metody optymalizacji 2
MATEMATYCZNE METODY OPTYMALIZACJI
A4?le i metody optymalizacji globalnej
Metody optymalizacji, Księgozbiór, Studia, Metody numeryczne
Metody optymalizacji N1 LAB 11 2
MATEMATYCZNE METODY OPTYMALIZACJI
ZagadnieniaMO, Studia, Studia sem VI, Metody optymalizacji
Raport, Edukacja, studia, Semestr VII, Ewolucyjne Metody Optymalizacji
sprawozdanie3 mo ok, Studia, Studia sem VI, Metody optymalizacji
91062851 Metody Optymalizacji Calosc Wykladow PDF
pytania, metody optymalizacji, Głupie pytanie
metody optymalizacji calosc wykladow pdf slajdy 2 grudnia 2010

więcej podobnych podstron