PROGRAMOWANIE KWADRATOWE

Transkrypt

PROGRAMOWANIE KWADRATOWE
PROGRAMOWANIE
KWADRATOWE
Programowanie kwadratowe
Zadanie programowania kwadratowego:
Funkcja celu lub/i co najmniej jedno z ograniczeń jest funkcją
kwadratową.
2
Programowanie kwadratowe
Nie ma uniwersalnej metody
programowania kwadratowego.
rozwiązywania
zadań
Metoda zależy od postaci jaką ma zadanie.
3
Programowanie kwadratowe
Rozpatrywany przypadek:
Funkcja celu jest funkcją kwadratową.
Ograniczenia są funkcjami liniowymi.
4
Zadanie programowania
wypukłego
Zadanie programowania wypukłego
Rys. 1. Funkcja wypukła
Rys. 2. Funkcja wklęsła
6
Zadanie programowania wypukłego
Rys. 3. Zbiory wypukłe
Rys. 4. Zbiory niewypukłe
7
Zadanie programowania wypukłego
Zbiór W jest wypukły, jeżeli dla dwóch dowolnych elementów
a, b ∈ W, oraz dla dowolnej liczby γ z przedziału [0, 1]
zachodzi związek:
γa + (1 − γ )b ∈ W
8
Zadanie programowania wypukłego
Funkcja f, której dziedziną jest zbiór wypukły W, jest wypukła,
jeżeli dla dowolnych argumentów a, b ∈ W i dla dowolnej
liczby γ z przedziału [0, 1] zachodzi związek:
f ( γa + (1 − γ )b) ≤ γf (a ) + (1 − γ ) f (b)
Funkcja f jest wklęsła, jeżeli funkcja –f jest wypukła
9
Zadanie programowania wypukłego
Funkcja liniowa:
n
α ( x) = p x = ¦ p j x j
T
j =1
Forma kwadratowa:
n
n
β(x) = xT Cx = ¦¦ cij xi x j
i =1 j =1
Funkcja kwadratowa:
f ( x) = p T x − xT Cx
10
Zadanie programowania wypukłego
Macierz C musi być:
Symetryczna:
Nieujemnie określona:
cij = c ji
x T Cx ≥ 0
11
Zadanie programowania wypukłego
ad. Jeżeli macierz C nie jest symetryczna to stosuje się podstawienie:
cij′ =
cij + c ji
2
wtedy:
cij′ = c′ji
12
Zadanie programowania wypukłego
ad. Twierdzenie 1.
Forma kwadratowa jest funkcją wypukłą wtedy i tylko wtedy,
gdy macierz formy C jest nieujemnie określona.
Twierdzenie 2.
Funkcja f mająca pochodne cząstkowe drugiego rzędu w
zbiorze wypukłym W jest wypukła w tym zbiorze wtedy i tylko
wtedy, gdy dla każdego x ∈ W macierz drugich pochodnych
H(x) jest macierzą nieujemnie określoną.
13
Zadanie programowania wypukłego
ª ∂ 2 f ( x)
« ∂x 2
1
«
« ∂ 2 f ( x)
«
2C = H (x) = « ∂x1∂x2
«
« 2
« ∂ f ( x)
« ∂x ∂x
¬ 1 n
∂ 2 f (x)
∂ 2 f ( x) º
...
∂x2 ∂x1
∂xn ∂x1 »»
∂ 2 f (x)
∂ 2 f ( x) »
...
»
2
∂x2
∂xn ∂x2 »
»
...
»
2
2
∂ f (x)
∂ f ( x) »
...
∂x2 ∂xn
∂xn2 »¼
14
Zadanie programowania wypukłego
Wartość wyznacznika macierzy C oraz wartości wszystkich
minorów głównych (elementów na głównej przekątnej) tej
macierzy muszą być dodatnie.
15
Zadanie programowania wypukłego
Zadanie programowania wypukłego:
f ( x) → MAX
g1 (x) ≥ 0
g m ( x) ≥ 0
lub:
f ( x) → MAX
g ( x) ≥ 0
ª g1 (x) º
g ( x) = « »
«
»
«¬ g m (x) »¼
16
Zadanie programowania wypukłego
W postaci macierzowej:
f ( x) = p T x − xT Cx → MAX
Ax ≤ b
x≥0
n – ilość zmiennych
m – ilość ograniczeń i warunków brzegowych
p – wektor funkcji liniowej
C – macierz formy kwadratowej
A – macierz współczynników ograniczeń
b – wektor wyrazów wolnych
x – wektor zmiennych decyzyjnych
17
Zadanie programowania wypukłego
Przykład 20.
Zapisać odpowiednie macierze i wektory dla zadania
programowania kwadratowego, oraz sprawdzić czy macierz
formy kwadratowej spełnia wymagane warunki.
f ( x) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 → MAX
g1 (x) = 10 − x1 − 2 x2 ≥ 0
g 2 (x) = 9 − x1 − x2 ≥ 0
g3 (x) = x1 ≥ 0
g 4 (x) = x2 ≥ 0
18
Zadanie programowania wypukłego
FC :
f ( x1 , x2 ) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 → MAX
O : x1 + 2 x2 ≤ 10
x1 + x2 ≤ 9
WB : x1 , x2 ≥ 0
19
Zadanie programowania wypukłego
Ograniczenia:
Ax ≤ b
ª1 2 º
A=«
»
1
1
¬
¼
ª x1 º
x=« »
¬ x2 ¼
ª10 º
b=« »
¬9¼
20
Zadanie programowania wypukłego
Funkcja celu:
f ( x) = p T x − x TCx → MAX
f ( x) = 10 x1 + 25 x2 − (10 x12 + 2 x1 x2 + 2 x2 x1 + x22 ) → MAX
ª10 º
p=« »
¬ 25¼
ª10 2 º
C=«
»
2
1
¬
¼
21
Zadanie programowania wypukłego
Sprawdzenie macierzy C:
Czy jest symetryczna?
Tak (c12 = c21 )
Czy jest nieujemnie określona?
Tak
wyznacznik macierzy C:
det C = 6 > 0
minory główne:
10 > 0
1> 0
Macierz C spełnia wymagane warunki.
22
Warunki Kuhna - Tuckera
Warunki Kuhna - Tuckera
Z każdym zadaniem programowania kwadratowego można
związać funkcję Lagrange’a:
L(x, λ ) = f (x) + λg (x)
lub:
m
L(x, λ ) = f (x) + ¦ λ i gi (x)
i =1
λi – mnożniki Lagrange’a
24
Warunki Kuhna - Tuckera
Jeżeli f oraz gi mają pochodne cząstkowe można
skonstruować problem Kuhna – Tuckera. Składa się on z
następujących warunków:
∇ x L( x, λ ) = 0
λg(x) = 0
g ( x) ≥ 0
λ≥0
25
Warunki Kuhna - Tuckera
Twierdzenie 3.
Zadanie programowania wypukłego i problem Kuhna – Tuckera
są sobie równoważne.
26
Warunki Kuhna - Tuckera
Przykład 21.
Utworzyć problem Kuhna – Tuckera dla
programowania kwadratowego z Przykładu 20.
FC :
zadania
f ( x1 , x2 ) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 → MAX
O : x1 + 2 x2 ≤ 10
x1 + x2 ≤ 9
WB : x1 , x2 ≥ 0
27
Warunki Kuhna - Tuckera
Funkcja Lagrange’a:
L(x, λ ) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 +
+λ1 (10 − x1 − 2 x2 ) +
+λ 2 (9 − x1 − x2 ) +
+λ 3 x1 + λ 4 x2
28
Warunki Kuhna - Tuckera
Warunki Kuhna - Tuckera:
∂L
= 10 − 20 x1 − 4 x2 − λ1 − λ 2 + λ 3 = 0
∂x1
∂L
= 25 − 4 x1 − 2 x2 − 2λ1 − λ 2 + λ 4 = 0
∂x2
λ1 (10 − x1 − 2 x2 ) + λ 2 (9 − x1 − x2 ) + λ 3 x1 + λ 4 x2 = 0
29
Warunki Kuhna - Tuckera
Warunki Kuhna – Tuckera c.d.:
g1 (x) = 10 − x1 − 2 x2 ≥ 0
g 2 (x) = 9 − x1 − x2 ≥ 0
g3 (x) = x1 ≥ 0
g 4 (x) = x2 ≥ 0
λ1 , λ 2 , λ 3 , λ 4 ≥ 0
30
Metoda Wolfe’a
Metoda Wolfe’a
1. Zapisanie warunków Kuhna – Tuckera pozwala na
sformułowanie pewnego zadania zastępczego.
2. Zadanie zastępcze można rozwiązać metodą Wolfe’a.
3. Na podstawie rozwiązania zadania zastępczego można
określić rozwiązanie optymalne zadania programowania
kwadratowego.
4. Metoda Wolfe’a jest modyfikacją metody simplex.
32
Metoda Wolfe’a
Przykład 22.
Sformułować zadanie zastępcze dla zadania programowania
kwadratowego z Przykładu 20.
Zmiana oznaczeń:
było
Współczynniki
Lagrange’a dla
ograniczeń
Współczynniki
Lagrange’a dla
warunków brzegowych
λi
λi
i = 1,..., m − n
i = m − n + 1,..., m
będzie
yi
y′j
i = 1,..., m − n
j = 1,..., n
Tabela 22.1.
33
Metoda Wolfe’a
Czyli:
λ1 → y1
λ 2 → y2
λ 3 → y1′
λ 4 → y2′
34
Metoda Wolfe’a
Sprowadzenie ograniczeń do postaci bazowej:
x1 + 2 x2 + x1′ = 10
x1 + x2 + x2′ = 9
x1′, x2′
- zmienne bilansujące
35
Metoda Wolfe’a
Zapisanie funkcji Lagrange’a z uwzględnieniem zmiennych
bilansujących:
L(x, λ ) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 +
+ y1 [10 − x1 − 2 x2 − x1′ ] +
+ y2 [9 − x1 − x2 − x2′ ] +
+ y1′x1 + y2′ x2
36
Metoda Wolfe’a
Wykorzystanie warunku Kuhna - Tuckera:
∂L
= 10 − 20 x1 − 4 x2 − y1 − y2 + y1′ = 0
∂x1
∂L
= 25 − 4 x1 − 2 x2 − 2 y1 − y2 + y2′ = 0
∂x2
37
Metoda Wolfe’a
Wprowadzenie zmiennych sztucznych typu w:
Zmienne w są wprowadzane do każdego ograniczenia zadania
zastępczego, powstałego na podstawie warunku Kuhna –
Tuckera.
20 x1 + 4 x2 + y1 + y2 − y1′ + w1 = 10
4 x1 + 2 x2 + 2 y1 + y2 − y2′ + w2 = 25
Zmienne sztuczne są wprowadzane do funkcji celu zadania
zastępczego ze współczynnikiem równym 1.
38
Metoda Wolfe’a
Zadanie zastępcze:
FC : w1 + w2 → MIN
O:
x1 + 2 x2 + x1′ = 10
x1 + x2 + x2′ = 9
20 x1 + 4 x2 + y1 + y2 − y1′ + w1 = 10
4 x1 + 2 x2 + 2 y1 + y2 − y2′ + w2 = 25
WB : x1 , x2 , x1′, x2′ , y1 , y2 , y1′, y2′ , w1 , w2 , ≥ 0
39
Metoda Wolfe’a
Zmienne:
xi , yi′
xi′, yi
lub
to pary zmiennych komplementarnych.
Wszystkie pary zmiennych komplementarnych w tym zadaniu:
x1 , y1′
x2 , y2′
x1′, y1
x2′ , y2
40
Metoda Wolfe’a
warunek Kuhna – Tuckera w Przykładzie 21.:
λ1 (10 − x1 − 2 x2 ) + λ 2 (9 − x1 − x2 ) + λ 3 x1 + λ 4 x2 = 0
Gdyby uwzględnić inne oznaczenia, oraz że:
x1′ = 10 − x1 − 2 x2
x2′ = 9 − x1 − x2
to miałby on postać:
y1 x1′ + y2 x2′ + y1′x1 + y2′ x2 = 0
41
Metoda Wolfe’a
Przypomnienie
Metoda simplex z kryterium na MIN:
Kryterium wejścia
Zmienna z najmniejszą wartością wskaźnika optymalności.
Kryterium wyjścia
Zmienna, dla której iloraz elementu z wektora wyrazów
wolnych przez dodatni współczynnik z kolumny zmiennej
wchodzącej do bazy ma najmniejszą wartość.
Kryterium optymalności
Wszystkie wskaźniki optymalności muszą być nieujemne.
42
Metoda Wolfe’a
Różnica w metodzie Wolfe’a:
Kryterium wejścia
Zmienna z najmniejszą wartością wskaźnika optymalności xk.
Sprawdzenie czy jej zmienna komplementarna jest zmienną
bazową.
nie
tak
Wprowadzamy do bazy zmienną xk.
43
Metoda Wolfe’a
Czy zmienna komplementarna zmiennej xk jest zmienną
wychodzącą z bazy?
tak
nie
Wprowadzamy do bazy zmienną xk.
Nie wprowadzamy do bazy zmiennej xk.
Wśród pozostałych zmiennych znajdujemy zmienną o
najmniejszym wskaźniku optymalności.
44
Metoda Wolfe’a
Przykład 23.
Rozwiązać metodą Wolfe’a
kwadratowego z Przykładu 20.
zadanie
programowania
UWAGA!!!
W przypadku, gdy zmienna komplementarna zmiennej
kandydującej do wejścia do bazy jest zmienną bazową
pominięto fragmenty kryterium wejścia, gdzie dokonywane
jest sprawdzenie, czy ta zmienna jest zmienną wychodzącą z
bazy – w zadaniu nie było takiego przypadku.
45
Metoda Wolfe’a
Na podstawie zadania zastępczego:
Baza startowa:
[ x1′,
x2′ , w1 , w2 ]
46
Metoda Wolfe’a
Zmienna
Wskaźnik optymalności
x1
x2
x1′
x2′
y1
y2
y1′
y2′
–24
w1
w2
–6
*
0
*
0
–3
–2
1
1
*
0
*
0
Tabela 23.1.
47
Metoda Wolfe’a
Rozwiązanie nie jest optymalne.
Najmniejszy wskaźnik optymalności:
Jej zmienna komplementarna:
Do bazy wchodzi:
y1′
x1
nie jest zmienną bazową
x1
48
Metoda Wolfe’a
Zmienna
bazowa
Wektor wyrazów
wolnych
Kolumna współczynników dla
zmiennej wchodzącej do bazy
Wektor
ilorazów
x1′
10
1
10
x2′
9
1
9
w1
10
20
0.5
w2
25
4
6.25
Tabela 23.2.
Z bazy wychodzi:
w1
49
Metoda Wolfe’a
Zmienna
x1
x2
x1′
x2′
y1
y2
y1′
y2′
w1
w2
Wskaźnik optymalności
*
0
–1.2
*
0
*
0
– 1.8
– 0.8
– 0.2
1
1.2
*
0
Tabela 23.3.
50
Metoda Wolfe’a
Rozwiązanie nie jest optymalne.
Najmniejszy wskaźnik optymalności:
Jej zmienna komplementarna:
y1
x1′
y1
jest zmienną bazową
nie może być wprowadzone do bazy
Drugi najmniejszy wskaźnik optymalności:
Jej zmienna komplementarna:
Do bazy wchodzi:
y2′
x2
nie jest zmienną bazową
x2
51
Metoda Wolfe’a
Zmienna
bazowa
Wektor wyrazów
wolnych
Kolumna współczynników dla
zmiennej wchodzącej do bazy
Wektor
ilorazów
x1′
9.5
1.8
5.2778
x2′
8.5
0.8
10.625
x1
0.5
0.2
2.5
w2
23
1.2
19.1667
Tabela 23.4.
Z bazy wychodzi:
x1
52
Metoda Wolfe’a
Zmienna
Wskaźnik optymalności
x1
x2
x1′
x2′
y1
y2
y1′
y2′
6
w1
w2
*
*
0
*
0
0
–1.5
–0.5
–0.5
1
1.5
*
0
Tabela 23.5.
53
Metoda Wolfe’a
Rozwiązanie nie jest optymalne.
Najmniejszy wskaźnik optymalności:
Jej zmienna komplementarna:
y1
x1′
y1
jest zmienną bazową
nie może być wprowadzone do bazy
Drugi najmniejszy wskaźnik optymalności:
Jej zmienna komplementarna:
y2
x2′
jest zmienną bazową
nie może być wprowadzone do bazy
Trzeci najmniejszy wskaźnik optymalności:
Jej zmienna komplementarna:
Do bazy wchodzi:
y2
x1
y1′
nie jest zmienną bazową
y1′
54
Metoda Wolfe’a
Zmienna
bazowa
Wektor wyrazów
wolnych
Kolumna współczynników dla
zmiennej wchodzącej do bazy
Wektor
ilorazów
x1′
5
0.5
10
x2′
6.5
0.25
26
x2
2.5
–0.25
-
w2
20
0.5
40
Tabela 23.6.
Z bazy wychodzi:
x1′
55
Metoda Wolfe’a
Zmienna
Wskaźnik optymalności
x1
x2
x1′
x2′
y1
y2
y1′
y2′
–3
w1
w2
*
0
1
*
0
–2
–1
*
0
1
1
*
0
Tabela 23.7.
56
Metoda Wolfe’a
Rozwiązanie nie jest optymalne.
Najmniejszy wskaźnik optymalności:
Jej zmienna komplementarna:
x1
y1′
x1
jest zmienną bazową
nie może być wprowadzone do bazy
Drugi najmniejszy wskaźnik optymalności:
Jej zmienna komplementarna:
Do bazy wchodzi:
x1′
y1
nie jest zmienną bazową
y1
57
Metoda Wolfe’a
Zmienna
bazowa
Wektor wyrazów
wolnych
Kolumna współczynników dla
zmiennej wchodzącej do bazy
Wektor
ilorazów
y1′
10
–1
-
x2′
4
0
-
x2
5
0
-
w2
15
2
7.5
Tabela 23.8.
Z bazy wychodzi:
w2
58
Metoda Wolfe’a
Zmienna
Wskaźnik optymalności
x1
x2
x1′
x2′
y1
y2
y1′
y2′
0
*
0
0
*
*
0
0
0
*
0
0
w1
w2
1
1
Tabela 23.9.
59
Metoda Wolfe’a
Rozwiązanie jest optymalne.
Rozwiązanie zadania zastępczego:
60
Metoda Wolfe’a
Zmienna
Wartość zmiennej
x1
x2
x1′
x2′
y1
y2
y1′
y2′
0
*
5
0
*
*
4
7.5
0
*
17.5
0
w1
w2
0
0
Tabela 23.10.
61
Metoda Wolfe’a
Ponieważ suma zmiennych sztucznych jest równa zero
(zadanie nie jest sprzeczne) to istnieje rozwiązanie zadania
programowania kwadratowego:
x1 = 0
x2 = 5
FC :
f ( x1 , x2 ) = 100
62
Metoda Wolfe’a
Co zrobić jeżeli w zadaniu programowania kwadratowego
mamy ograniczenie typu:
2 x1 + 5 x2 ≥ 7
- wprowadzamy zmienną bilansującą:
2 x1 + 5 x2 − x1′ = 7
- wprowadzamy zmienną sztuczną typu v:
2 x1 + 5 x2 − x1′ + v1 = 7
Zmienne sztuczne należy uwzględnić w funkcji celu zadania
zastępczego.
Czyli funkcja celu mogłaby wyglądać np. tak:
w1 + w2 + v1 → MIN
63
Metoda Wolfe’a
Jakie zmienne należy wprowadzić do ograniczenia:
2 x1 + 2 x2 ≤ −7
wyraz wolny musi być ≥ 0:
−2 x1 − 2 x2 ≥ 7
Należy wprowadzić zmienną bilansującą x′ i sztuczną v.
Jakie zmienne należy wprowadzić do ograniczenia:
−2 x1 − 2 x2 ≥ −7
2 x1 + 2 x2 ≤ 7
Należy wprowadzić zmienną bilansującą x′.
64
Metoda Wolfe’a
Przykład 24.
„Szybki” sposób zapisania zadania zastępczego.
65
Metoda Wolfe’a
n – ilość zmiennych decyzyjnych
m – ilość ograniczeń wraz z warunkami brzegowymi
q – ilość ograniczeń = m − n
r – ilość zmiennych sztucznych typu v
66
Metoda Wolfe’a
Ograniczenia zapisane macierzowo:
Ax ≤ b
lub w postaci bazowej:
Ax + x′x′ + vv = b
x′ - wektor zmiennych x′
x′ - jednostkowa macierz dla zmiennych x′
v - wektor zmiennych sztucznych typu v
v - macierz współczynników dla zmiennych sztucznych typu v
67
Metoda Wolfe’a
Dodatkowo:
y , y ′, w - wektory zmiennych y, y′, w
y ′, w - jednostkowe macierze dla zmiennych y′ i w
68
Metoda Wolfe’a
wymiary
macierze
n×n
C y′ w
q×n
A
q×q
x′
n×1
p x y′ w
q×1
x′ y b
q×r
v
r×1
v
Tabela 24.1.
69
Metoda Wolfe’a
Zapis współczynników lewej strony ograniczeń zadania
zastępczego w formie macierzowej:
ª A x′ 0
M= «
T
2
0
C
A
¬
0 v 0º
− y′ 0 w »¼
70
Metoda Wolfe’a
Zapis prawej strony ograniczeń zadania zastępczego w formie
macierzowej:
ªb º
B=« »
¬p ¼
Wektor zmiennych:
ªxº
« x′ »
« »
«y»
Z=« »
′
y
« »
«v»
« »
¬w ¼
71
Metoda Wolfe’a
Dla analizowanego przykładu:
ª1 2 º
A=«
»
1
1
¬
¼
ª10 2 º
C=«
»
2
1
¬
¼
ª1 0 º
x′ = «
»
0
1
¬
¼
ª10 º
b=« »
¬9¼
ª10 º
p=« »
¬ 25¼
ª1 0 º
y′ = «
»
0
1
¬
¼
ª1 0 º
w=«
»
0
1
¬
¼
72
Metoda Wolfe’a
ª1
«1
M=«
« 20
«
¬4
2
1
4
2
1
0
0
0
Z = [ x1
T
0
1
0
0
x2
0
0
1
2
x1′
0 0 0
0 0 0
1 −1 0
1 0 −1
x2′
y1
0
0
1
0
y2
ª10 º
«9»
B=« »
«10 »
« »
¬ 25¼
0º
0»
»
0»
»
1¼
y1′
y2′
w1
w2 ]
T
MZ = B
73

Podobne dokumenty