algorytm simplex

Transkrypt

algorytm simplex
Niesimpleksowe metody
rozwia̧zywania zadań PL
Seminarium Szkoleniowe
Edyta Mrówka
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Metoda Simplex: wady i zalety
• Algorytm SIMPLEX jest szeroko znany i stosowany do rozwia̧zywania
zadań programowania liniowego w praktyce.
• Wymagany czas znalezienia optymalnego rozwia̧zania przy użyciu
algorytmu SIMPLEX rośnie wraz z liczba̧ n komponentów wektora
rozwia̧zań X.
• ZÃlożoność algorytmu SIMPLEX wynosi O (2n − 1)
1
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
PrzykÃlad 1 (Klee i Minty, 1972)
max cT x
przy ograniczeniach: Ax 6 b,
x > 0.
Niech n oznacza wymiar wektora rozwia̧zań X, oraz :
h
iT
£
¤
cT = 10n−1 , 10n−2 , ..., 101 , 1 , b = 1, 102 , 104 , ..., 102(n−1) ,


1
0
0
...
0


 2 × 101
1
0
...
0 




2
1
2 × 10
1
...
0 
A = 
 2 × 10
.

..
..
.. 
..
..

.
.
.
.
. 


2 × 10n−1
2 × 10n−2
...
2 × 101
1
Uwaga: 1 Algorytm SIMPLEX znajdzie optymalne rozwia̧zanie powyższego
zadania w 2n − 1 krokach.
2
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Rozmiar zadania PL
Każda̧ nieujemna̧ liczbȩ caÃlkowita̧ r, gdzie r 6 U, można zapisać w postaci
binarnej, w nastȩpuja̧cy sposób:
r = ak 2k + ak−1 2k−1 + ... + a1 21 + a0 20 6 2log2 U ,
gdzie a0 , a1 , ..., ak przyjmuja̧ wartości 0 lub 1, natomiast liczba k jest co
najwyżej blog2 U c . Używaja̧c dodatkowego bitu na znak, dowolna liczbe
caÃlkowita̧ r, gdzie |r| 6 U, możemy przedstawić używaja̧c co najwyżej
(blog2 U c + 2) liczby bitów.
Każde zadanie PL opisane jest przez macierz A wymiaru m × n,
m−wymiarowy wektor ograniczeń b oraz n−wymiarowy wektor kosztów c.
Zatem liczba:
L = (mn + m + n) (blog2 U c + 2)
określa rozmiar zadania PL wyrażony w bitach.
3
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Metoda elipsoid
• Algorytm oparty na metodzie elipsoid ma wielomianowa̧ zÃlożoność
obliczeniowa̧.
• Dla problemu PL o Ãla̧cznej liczbie bitów L, metoda elipsoid generuje
przybliżone rozwia̧zanie, na podstawie którego możemy w Ãlatwy sposób
¡ 2 ¢
obliczyć wÃlaściwe rozwia̧zanie problemu, w O n L iteracjach.
• Liczba wykonywanych obliczeń w trakcie trwania algorytmu wynosi:
¡ 4 ¢
O n L .
4
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Idea algorytmu
W każdym kroku iteracji konstruowana jest elipsoida (zawieraja̧ca
optymalne rozwia̧zanie problemu PL):
• Tworzona jest hiperpÃlaszczyzna rozdzielaja̧ca elipsoidȩ na dwie czȩści
tak, aby optymalne rozwia̧zanie znalazÃlo siȩ po jednej stronie, natomiast
środek elipsoidy po przeciwnej stonie hiprepÃlaszczyzny
(Uwaga! hiperpÃlaszczyzna może przecinać elipsoidȩ w punkcie
środkowym - mówimy wówczas o tzw. ciȩciu środkowym).
• Nastȩpnie znajdowana jest nowa elipsoida, która zawiera wszystkie
punkty starej elipsoidy leża̧ce po tej stronie hiperpÃlaszczyzny, po której
znajduje siȩ rozwia̧zanie optymalne.
5
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Rys. 1. Idea dziaÃlania algorytmu elipsoid
6
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
SformuÃlowanie problemu
Znajdź wektor y speÃlniaja̧cy poniższy warunek:
AT y 6 c,
gdzie c ∈ Rn , A ∈Rm×n , y ∈ Rm . Niech:
©
ª
T
Y = y : A y6c .
Poszczególne warunki zapisywać bȩdziemy jako:
aTj y 6 cj ,
j = 1, 2, ..., n.
ZakÃladamy, że Y ∈ E0 , gdzie:
E0 := {y : kyk2 6 R} .
7
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Uwaga: 2 Każda elipsoida w Rn może być zapisana w nastȩpuja̧cy sposób:
n
o
T
E = E (y, B) = y : (y − y) B −1 (y − y) 6 1 ,
gdzie y jest środkiem elipsoidy, a B jest symetryczna̧, dodatnio określona̧
macierza̧ wymiaru m.
W naszym przypadku mamy:
E0 := {y : kyk2 6 R} ,
zatem
E0 = E (y0 , B0 ) ,
gdzie:
y0
=
0
B0
=
R2 I.
8
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Niech Ek = E (yk , Bk ), wówczas Ek+1 = E (yk+1 , Bk+1 ) wyznaczamy
w nastȩpuja̧cy sposób:
1. Znajdź j dla którego : aTj yk > cj .
2. Jeżeli ∀j : aTj yk 6 cj to yk ∈ Y. STOP. W przeciwnym przypadku:
gdzie τ =
1
m+1 ,
yk+1
=
Bk+1
=
δ=
m2
m2 −1
τ Bk aj
yk − ¡
¢1/2 ,
T
aj Bk aj
!
Ã
T
Bk aj aj Bk
,
δ Bk − σ T
aj Bk aj
,σ=
2
m+1 .
Uwaga: 3 Ek+1 , wyznaczone jak powyżej, jest najmniejsza̧ elipsoida̧ pod
©
ª
T
T
wzglȩdem objȩtości, która zawiera podelipsoidȩ y ∈ Ek : aj y 6 aj yk .
9
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Nawia̧zanie do zadania PL
Rozważmy nastȩpuja̧cy problem programowania liniowego
min cT x
przy ograniczeniach
Ax > b,
x > 0,
oraz zagadnienie dualne postaci:
max λT b
przy ograniczeniach
λT A 6 cT ,
λ > 0.
Uwaga: 4 Jeżeli x oraz λ sa̧ rozwia̧zaniami dopuszczalnymi, odpowiednio,
zagadnienia pierwotnego i dualnego, oraz cT x = λT b, wówczas x i λ sa̧
rozwia̧zaniami optymalnymi.
10
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
W
h celu iustalenia rozwia̧zania optymalnego wystarczy znaleźć wektor
xT , λT , który speÃlnia nastȩpuja̧ce warunki:
cT x
=
bT λ
Ax
>
b
AT λ
6
c
x
>
0
λ
>
0.
Równość cT x = bT λ można zapisać w nastȩpuja̧cy sposób:
cT x − bT λ
6
0
−cT x + bT λ
6
0.
11
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
h
Nowe sformuÃlowanie zadania PL: znajdź wektor xT , λ
T
iT
speÃlniaja̧cy
nastepuja̧ce warunki:
Pz 6 q
gdzie:

cT

 −cT


 −A

P=
 −Im


 0

0
−bT
bT
0
0
AT
−Im















x

,q = 

,z = 


λ








0
0
−b
0
c












0
12
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Metoda punktu wewnȩtrznego
Metoda SIMPLEX
Metoda punktu wewnȩtrznego
przeszukuje wierzchoÃlek po wierzchoÃlku
startuje z punktu wewna̧trz
w celu znalezienia rozwia̧zania
zbioru rozwia̧zań dopuszczalnych
optymalnego.
i przesuwa sie w kierunku
wierzchoÃlka, w którym znajduje
sie rozwia̧zanie optymalne.
13
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Zapis zadania PL w postaci kanonicznej
T
Znajdź wektor x = [x1 , ..., xn ] , dla którego speÃlnione sa̧ nastȩpuja̧ce
warunki:
min cT x
przy ograniczeniach
Ax
n
X
xi
=
0,
=
1,
>
0.
i=1
x
ZaÃlożenia: macierz A oraz wektor kosztów c zawieraja̧ elementy ze zbioru
liczb caÃlkowitych.
14
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Oznaczenia pomocnicze
T
Niech e = [1, ..., 1] bȩdzie n elementowym wektorem skÃladaja̧cym siȩ
z samych jedynek oraz
= {x ∈ Rn : Ax = 0} ,
©
ª
n
T
∆ =
x ∈ R : e x = 1, x > 0 .
Ω
gdzie ∆ oznacza sympleks w Rn . Niech a0 ∈ ∆ oznacza środek sympleksu ∆,
tzn:
¸T
·
1
1
, ...,
.
a0 = e/n =
n
n
15
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Uwaga: 5 Jeżeli punkty a0 , ..., an przestrzeni euklidesowej m−wymiarowej
Rm tworza̧ zbiór liniowo niezależny, wówczas najmniejszy zbiór wypukÃly
conv (a0 , ..., an ) zawieraja̧cy punkty a0 , ..., an nazywamy sympleksem
n−wymiarowym o wierzchoÃlkach a0 , ..., an .
Sympleks 0−wymiarowy jest zbiorem zÃlożonym z jednego punktu a0 , sympleks
1−wymiarowy jest niezdegenerowanym odcinkiem o końcach a0 i a1 ,
sympleks 2−wymiarowy jest trójka̧tem o wierzchoÃlkach a0 , a1 , a2 , natomiast
sympleks 3−wymiarowy jest czworościanem o wierzchoÃlkach a0 , a1 , a2 , a3 .
Rys. 2. Sympleks n− wymiarowy w przypadkach n = 1, 2, 3.
16
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Nasze zadanie można zapisać w nastȩpuja̧cej postaci:
min cT x
przy ograniczeniach
x ∈ Ω ∩ ∆,
gdzie
Ω∩∆
=
=
©
n
T
ª
x ∈ R : Ax = 0, e x = 1, x > 0








A
0
x = 
,x>0 .
x ∈ Rn : 


eT
1
17
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
PrzykÃlad 1
min (5x1 + 4x2 + 8x3 )
przy ograniczeniach
x1 + x2 + x3
=
1
x1 , x2 , x3
>
0.
W powyższym przykÃladzie cT = [5, 4, 8] , A = 0,
18
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
PrzykÃlad 2
min (3x1 + 3x2 − x3 )
przy ograniczeniach
2x1 − 3x2 + x3
= 0
x1 + x2 + x3
= 1,
x1 , x2 , x3 > 0.
W powyższym przykÃladzie cT = [3, 3, 1] , A = [2, −3, 1] .
19
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Wymagania:
1. środek a0 sympleksu ∆ jest rozwia̧zaniem dopuszczalnym, tzn.: a0 ∈ Ω.
2. wartośc minimalna funkcji celu na zbiorze rozwia̧zań dopuszczalnych ma
być równa 0.
3. macierz



A
eT

o wymiarach (m + 1) × n, jest rzȩdu m + 1.
4. mamy zadany parametr stopu q > 0. Jeżeli otrzymamy rozwia̧zanie
dopuszczalne x, speÃlniaja̧ce warunek:
cT x
−q
6
2
,
cT a0
wówczas uznajemy, że znaleźliśmy rozwia̧zanie optymalne.
20
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Od postaci standardowej PL do kanonicznej
Rozważmy zadanie programowania liniowego postaci:
max cT x,
x ∈ Rn
przy ograniczeniach
Ax
=
b
x
>
0.
T
ZakÃladamy, że znamy punkt a = [a1 , ..., an ] , który jest ściśle wewnȩtrznym
punktem zbioru rozwia̧zań dopuszczalnych, tzn.:
Aa
= b,
a
> 0.
21
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Niech P+ bȩdzie dodatnim stożkiem:
P+ = {x ∈ Rn : x > 0}
oraz ∆ oznacza sympleks w Rn+1 , tzn.:
©
ª
n+1
T
∆= x∈R
: e x = 1, x > 0 .
Wówczas przeksztaÃlcenie T : P+ → ∆ zadane przez:
T
T (x) = [T1 (x) , ..., Tn+1 (x)] ,
gdzie
Ti (x) =
Tn+1 (x) =
xi /ai
,
x1 /a1 + ... + xn /an + 1
1
x1 /a1 + ... + xn /an + 1
i = 1, ..., n
nazywać bȩdziemy rzutowaniem dodatniego stożka P+ na sympleks ∆.
22
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
WÃlasność transformacji T
• Stosuja̧c przeksztaÃlcenie T możemy znaleźć wektor c0 ∈ Rn+1 oraz
macierz A0 ∈ Rm×(n+1) takie, że dla każdego x ∈ Rn
cT x =
0 ⇐⇒ c0 T (x) = 0
Ax =
b ⇐⇒ A0 T (x) = 0.
• Dla każdego x ∈ Rn , T (x) ∈ ∆.
• Dla każdego x ∈ Rn
x > 0 ⇐⇒ T (x) > 0.
23
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Zadanie
Rozważmy nastȩpuja̧cy problem PL zapisany w postaci kanonicznej,
speÃlniaja̧cy warunki 1-4:
min cT x,
x ∈ Rn
przy ograniczeniach
x ∈ Ω ∩ ∆,
gdzie
Ω
=
∆ =
{x ∈ Rn : Ax = 0}
©
ª
n
T
x ∈ R : e x = 1, x > 0 .
24
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Poszczególne kroki algorytmu:
1. Inicjalizuj: k := 0, x(k=0) = a0 = e/n
¡ (k) ¢
(k+1)
2. Uaktualnij: x
=Ψ x
3. Jeżeli
cT x(k)
cT x(0)
6 2−q to STOP, w przeciwnym przypadku wykonaj krok 4.
4. k := k + 1, wróć do kroku 2.
25
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
¡ (k) ¢
Mapa przeksztaÃlceń Ψ x
1. Wyznacz:

Dk


= 


Bk
= 
(k)

x1
..
.
...
..
.
0
..
.
0
...

xn
ADk
eT
(k)




.
2. Znajdź ortogonalny rzut na Bk :
Pk = Im+1 −
BTk
¡
¢
T −1
Bk Bk
Bk
26
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
3. Oblicz znormalizowany ortogonalny rzut c na Bk :
(k)
ĉ
Pk D k c
=
kPk Dk ck
4. Wyznacz wektor kierunkowy
d(k) = −rĉ(k) ,
p
gdzie r = 1/ n (n − 1).
5. Oblicz x̄(k+1) używaja̧c nastȩpuja̧cego wzoru:
x̄(k+1) = a0 + αd(k),
gdzie α ∈ (0, 1) oznacza dÃlugość kroku.
6. Oblicz x(k+1) używaja̧c nastȩpuja̧cej transformacji:
(k+1)
x
=
(k+1)
U−1
x̄
k
Dk x̄(k+1)
= T
.
(k+1)
e Dk x̄
27
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Objaśnienia
Z pierwszego kroku algorytmu mamy: x(0) = a0 oraz x(1) = x(0) + αd(0) ,
gdzie α ∈ (0, 1) jest dÃlugościa̧ kroku, a d(0) - wektorem kierunkowym .
Wymagamy, aby x(1) należaÃl do
©
ª
n
T
Ω∩∆ =
x ∈ R : Ax = 0, e x = 1, x > 0








A
0
x = 
,x>0
=
x ∈ Rn : 


eT
1






0
,x>0
=
x ∈ R n : B0 x = 


1
gdzie B0 ∈ R(m+1)×n


B0 = 
A
eT
.
28
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Jeżeli x(0) ∈ Ω ∩ ∆, wówczas aby x(1) = x(0) + αd(0) ∈ Ω ∩ ∆, wektor d(0)
musi być elementem B0 . Zatem d(0) jest wektorem rzutu prostopadÃlego
wektora −c na B0 :
d(0) = −rĉ(0),
gdzie:
(0)
=
r
=
ĉ
P0
=
P0 c
kP0 ck
1
p
n (n − 1)
Im+1 −
BT0
¡
¢
T −1
B0 B0
B0 .
UWAGA: Skalar r jest promieniem najwiekszej kuli wpisanej w sypleks ∆.
Zatem d(0) = rĉ(0) wskazuje kierunek rzutu wektora ĉ(0) na B0 . Zatem, że
x(1) = x(0) + αd(0) ∈ Ω ∩ ∆.
29
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
(k+1)
Ogólny sposób inkrementacji x
¡
(k)
=Ψ x
¢
.
Niech Dk bȩdzie macierza diagonalna̧ zawieraja̧ca̧ na przeka̧tnej elementy
wektora x(k) :


(k)
x
...
0
 1

.
 ..

..
.
Dk =  .
.
.
.


(k)
0
... xn
Dowodzi siȩ, że jeżeli x(0) jest ściśle wewnȩtrznym punktem sympleksu ∆,
wówczas dla każdego k, x(k) jest również ściśle wewnȩtrznym punktem
sympleksu ∆. Zatem Dk jest macierza̧ nieosobliwa̧ oraz


(k)
1/x1
...
0


..
.


.
−1
.
.
Dk = 
.
.
.
.


(k)
0
... 1/xn
30
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Rozważmy przeksztaÃlcenie Uk : ∆ → ∆ postaci:
UWAGA: x̄(k)
T −1
Uk (x) = D−1
x/e
Dk x.
k
¡ (k) ¢
T
= Uk x
= e/n = a0 , x = U−1
k (x̄) = Dk x/e Dk x.
Użyjemy transformacji Uk aby przesuna̧ć x do x̄ = Uk (x) :
x̄(k+1) = x̄(k) + αd(k) .
W celu obliczenia wektora d(k) , problem PL w postaci kanonicznej należy
zapisać z nowa̧ zmienna̧ x̄, tzn.:
min cT Dk x̄
przy ograniczeniach
ADk x̄ = 0
x̄
∈
∆.
31
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Problem, z nowa zmienna̧ x̄, jest równoważny z powyższym zadaniem PL
w tym sensie, że x∗ jest optymalnym rozwia̧zaniem zadania PL w postaci
kanonicznej, wtedy i tylko wtedy, gdy Uk (x∗ ) jest optymanym
rozwia̧zaniem przetransformowanego zadania.
Niech

Bk = 

ADk
eT
.
d(k) = −rĉ(k)
¡ T
¢
(k)
gdzie ĉ jest znormalizowanym rzutem− c Dk = −Dk c na Bk . W celu
wyznaczenia ĉ(k) korzystamy z nastȩpuja̧cego wzoru:
(k)
ĉ
Pk D k c
=
.
kPk Dk ck
32
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Wówczas:
d(k) = −rĉ(k) = −r
Pk Dk c
.
kPk Dk ck
UWAGA: x̄(k+1) = x̄(k) + αd(k) należy do zbioru {x̄ : ADk x̄ = 0} ∩ ∆.
Aby obliczyć xk+1 należy zastosować transformacjȩ odwrotna̧U−1
k :
x
k+1
=
U−1
k
³
(k+1)
x̄
´
(k+1)
D−1
k x̄
= T −1 (k+1) .
e Dk x̄
UWAGA: x̄(k+1) należy do zbioru Ω ∩ ∆.
33
Edyta Mrówka
Niesimpleksowe metody rozwia̧zywania zadań PL
Dziȩkujȩ za uwagȩ
34