KWADRATOWE PROGRAMOWANIE - Strona główna - …dydaktyka.polsl.pl/kwmimkm/kwadratowe.pdf ·...
Transcript of KWADRATOWE PROGRAMOWANIE - Strona główna - …dydaktyka.polsl.pl/kwmimkm/kwadratowe.pdf ·...
2
Programowanie kwadratowe
Zadanie programowania kwadratowego:
Funkcja celu lub/i co najmniej jedno z ograniczeń jest funkcją kwadratową.
3
Programowanie kwadratowe
Nie ma uniwersalnej metody rozwiązywania zadań programowania kwadratowego.
Metoda zależy od postaci jaką ma zadanie.
4
Programowanie kwadratowe
Funkcja celu jest funkcją kwadratową.
Ograniczenia są funkcjami liniowymi.
Rozpatrywany przypadek:
8
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:
(1 )a b Wγ + − γ ∈
9
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:
Funkcja f jest wklęsła, jeżeli funkcja –f jest wypukła
( (1 ) ) ( ) (1 ) ( )f a b f a f bγ + − γ ≤ γ + − γ
10
Zadanie programowania wypukłego
Funkcja liniowa:
Forma kwadratowa:
Funkcja kwadratowa:
T
1( )
n
j jjp x
=
α = =�x p x
T
1 1( )
n n
ij i ji j
c x x= =
β = =��x x Cx
T T( )f = −x p x x Cx
11
Zadanie programowania wypukłego
Macierz C musi być:
� Symetryczna:
� Nieujemnie określona:
ij jic c=
T 0≥x Cx
12
Zadanie programowania wypukłego
ad. �
Jeżeli macierz C nie jest symetryczna to stosuje się podstawienie:
wtedy:
2ij ji
ij
c cc
+′ =
ij jic c′ ′=
13
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ą.
14
Zadanie programowania wypukłego
2 2 2
21 2 1 1
2 2 2
21 2 2 2
2 2 2
21 2
( ) ( ) ( )...
( ) ( ) ( )...2 ( )
...( ) ( ) ( )...
n
n
n n n
f f fx x x x xf f fx x x x x
f f fx x x x x
� �∂ ∂ ∂� �∂ ∂ ∂ ∂ ∂� �� �∂ ∂ ∂� �= = ∂ ∂ ∂ ∂ ∂� �� �� �∂ ∂ ∂� �� �∂ ∂ ∂ ∂ ∂� �
x x x
x x xC H x
x x x
15
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.
16
Zadanie programowania wypukłego
Zadanie programowania wypukłego:
1
( ) MAX( ) 0
( ) 0m
fg
g
→≥
≥
xx
x�
lub:
( ) MAX( ) 0
f →≥
xg x
1( )( )
( )m
g
g
� �� �=� �� �� �
xg x
x�
17
Zadanie programowania wypukłego
W postaci macierzowej:T T( ) MAX
0
f = − →≤
≥
x p x x CxAx bx
p – wektor funkcji liniowej C – macierz formy kwadratowejA – macierz współczynników ograniczeńb – wektor wyrazów wolnychx – wektor zmiennych decyzyjnych
n – ilość zmiennych m – ilość ograniczeń i warunków brzegowych
18
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.
2 21 2 1 1 2 2( ) 10 25 10 4 MAXf x x x x x x= + − − − →x
1 1 2
2 1 2
( ) 10 2 0( ) 9 0
g x xg x x
= − − ≥= − − ≥
xx
3 1
4 2
( ) 0( ) 0
g xg x
= ≥= ≥
xx
19
Zadanie programowania wypukłego
2 21 2 1 2 1 1 2 2FC : ( , ) 10 25 10 4 MAXf x x x x x x x x= + − − − →
1 2
1 2
O : 2 109
x xx x
+ ≤+ ≤
1 2WB : , 0x x ≥
20
Zadanie programowania wypukłego
Ograniczenia:
≤Ax b
1 21 1� �
= � �� �
A 1
2
xx� �
= � �� �
x109
� �= � �� �
b
21
Zadanie programowania wypukłego
Funkcja celu:
T T( ) MAXf = − →x p x x Cx
2 21 2 1 1 2 2 1 2( ) 10 25 (10 2 2 ) MAXf x x x x x x x x= + − + + + →x
1025� �
= � �� �
p10 22 1
� �= � �� �
C
22
Zadanie programowania wypukłego
Sprawdzenie macierzy C:
�
�
Czy jest symetryczna? Tak 12 21( )c c=
Czy jest nieujemnie określona? Tak
wyznacznik macierzy C: det 6 0= >C
minory główne: 10 0> 1 0>
Macierz C spełnia wymagane warunki.
24
Warunki Kuhna - Tuckera
Z każdym zadaniem programowania kwadratowego można związać funkcję Lagrange’a:
( , ) ( ) ( )L f= +x λ x λg x
lub:
1( , ) ( ) ( )
m
i ii
L f g=
λ = + λ�x x x
λi – mnożniki Lagrange’a
25
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:
�
�
�
�
( , ) 0xL∇ =x λ
( ) 0=λg x
( ) 0≥g x
0≥λ
26
Warunki Kuhna - Tuckera
Twierdzenie 3.
Zadanie programowania wypukłego i problem Kuhna – Tuckerasą sobie równoważne.
27
Warunki Kuhna - Tuckera
Przykład 21.
Utworzyć problem Kuhna – Tuckera dla zadania programowania kwadratowego z Przykładu 20.
2 21 2 1 2 1 1 2 2FC : ( , ) 10 25 10 4 MAXf x x x x x x x x= + − − − →
1 2
1 2
O : 2 109
x xx x
+ ≤+ ≤
1 2WB : , 0x x ≥
28
Warunki Kuhna - Tuckera
Funkcja Lagrange’a:
2 21 2 1 1 2 2
1 1 2
2 1 2
3 1 4 2
( , ) 10 25 10 4(10 2 )(9 )
L x x x x x xx xx x
x x
= + − − − ++λ − − ++λ − − ++λ + λ
x λ
29
Warunki Kuhna - Tuckera
Warunki Kuhna - Tuckera:
�
�
1 2 1 2 31
10 20 4 0L x xx
∂ = − − − λ − λ + λ =∂
1 2 1 2 42
25 4 2 2 0L x xx
∂ = − − − λ − λ + λ =∂
1 1 2 2 1 2 3 1 4 2(10 2 ) (9 ) 0x x x x x xλ − − + λ − − + λ + λ =
30
Warunki Kuhna - Tuckera
Warunki Kuhna – Tuckera c.d.:
�
�
1 1 2
2 1 2
( ) 10 2 0( ) 9 0
g x xg x x
= − − ≥= − − ≥
xx
3 1
4 2
( ) 0( ) 0
g xg x
= ≥= ≥
xx
1 2 3 4, , , 0λ λ λ λ ≥
32
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.
33
Metoda Wolfe’a
Przykład 22.
Sformułować zadanie zastępcze dla zadania programowania kwadratowego z Przykładu 20.
Współczynniki Lagrange’a dla warunków brzegowych
Współczynniki Lagrange’a dla ograniczeń
będziebyło
Zmiana oznaczeń:
1,...,i i m nλ = − 1,...,iy i m n= −
1,...,i i m n mλ = − + 1,...,jy j n′ =
Tabela 22.1.
35
Metoda Wolfe’a
Sprowadzenie ograniczeń do postaci bazowej:
1 2 12 10x x x′+ + =
1 2 2 9x x x′+ + =
1 2,x x′ ′ - zmienne bilansujące
36
Metoda Wolfe’a
[ ][ ]
2 21 2 1 1 2 2
1 1 2 1
2 1 2 2
1 1 2 2
( , ) 10 25 10 410 29
L x x x x x xy x x xy x x xy x y x
= + − − − +′+ − − − +
′+ − − − +′ ′+ +
x λ
Zapisanie funkcji Lagrange’a z uwzględnieniem zmiennych bilansujących:
37
Metoda Wolfe’a
Wykorzystanie � warunku Kuhna - Tuckera:
1 2 1 2 11
10 20 4 0L x x y y yx
∂ ′= − − − − + =∂
1 2 1 2 22
25 4 2 2 0L x x y y yx
∂ ′= − − − − + =∂
38
Metoda Wolfe’a
Wprowadzenie zmiennych sztucznych typu w:
1 2 1 2 1 120 4 10x x y y y w′+ + + − + =
1 2 1 2 2 24 2 2 25x x y y y w′+ + + − + =
Zmienne w są wprowadzane do każdego ograniczenia zadania zastępczego, powstałego na podstawie � warunku Kuhna –Tuckera.
Zmienne sztuczne są wprowadzane do funkcji celu zadania zastępczego ze współczynnikiem równym 1.
39
Metoda Wolfe’a
Zadanie zastępcze:
1 2FC : MINw w+ →
1 2 1
1 2 2
1 2 1 2 1 1
1 2 1 2 2 2
O : 2 109
20 4 104 2 2 25
x x xx x x
x x y y y wx x y y y w
′+ + =′+ + =
′+ + + − + =′+ + + − + =
1 2 1 2 1 2 1 2 1 2WB: , , , , , , , , , , 0x x x x y y y y w w′ ′ ′ ′ ≥
40
Metoda Wolfe’a
Zmienne:
,i ix y′ lub ,i ix y′
to pary zmiennych komplementarnych.
Wszystkie pary zmiennych komplementarnych w tym zadaniu:
1 1,x y′ 2 2,x y′ 1 1,x y′ 2 2,x y′
41
Metoda Wolfe’a
� warunek Kuhna – Tuckera w Przykładzie 21.:
1 1 2 2 1 2 3 1 4 2(10 2 ) (9 ) 0x x x x x xλ − − + λ − − + λ + λ =
Gdyby uwzględnić inne oznaczenia, oraz że:
1 1 210 2x x x′ = − −
2 1 29x x x′ = − −
to miałby on postać:
1 1 2 2 1 1 2 2 0y x y x y x y x′ ′ ′ ′+ + + =
42
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.
43
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
Wprowadzamy do bazy zmienną xk.
tak
44
Metoda Wolfe’a
Czy zmienna komplementarna zmiennej xk jest zmienną wychodzącą z bazy?
nie Wprowadzamy do bazy zmienną xk.
tak
Nie wprowadzamy do bazy zmiennej xk.
Wśród pozostałych zmiennych znajdujemy zmienną o najmniejszym wskaźniku optymalności.
45
Metoda Wolfe’a
Przykład 23.
Rozwiązać metodą Wolfe’a zadanie programowania kwadratowego z Przykładu 20.
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.
UWAGA!!!
47
Metoda Wolfe’a
0011
– 2– 300
– 6–24
Wskaźnik optymalnościZmienna
1x
Tabela 23.1.
2x1x′
2x′1y
2y
1y′2y′
1w2w
*
*
*
*
48
Metoda Wolfe’a
Rozwiązanie nie jest optymalne.
Najmniejszy wskaźnik optymalności: 1x
Jej zmienna komplementarna: 1y′ nie jest zmienną bazową
Do bazy wchodzi: 1x
49
Metoda Wolfe’a
6.25425
0.52010
919
10110
Wektor ilorazów
Kolumna współczynników dla zmiennej wchodzącej do bazy
Wektor wyrazów wolnych
Zmienna bazowa
1x′
2x′
1w
2w
Tabela 23.2.
Z bazy wychodzi: 1w
50
Metoda Wolfe’a
01.21
– 0.2– 0.8– 1.8
00
–1.20
Wskaźnik optymalnościZmienna
1x
Tabela 23.3.
2x1x′
2x′1y
2y
1y′2y′
1w2w
*
*
*
*
51
Metoda Wolfe’a
Rozwiązanie nie jest optymalne.
Najmniejszy wskaźnik optymalności: 1y
Jej zmienna komplementarna: 1x′ jest zmienną bazową
Do bazy wchodzi: 2x
1y nie może być wprowadzone do bazy
Drugi najmniejszy wskaźnik optymalności: 2x
Jej zmienna komplementarna: 2y′ nie jest zmienną bazową
52
Metoda Wolfe’a
19.16671.223
2.50.20.5
10.6250.88.5
5.27781.89.5
Wektor ilorazów
Kolumna współczynników dla zmiennej wchodzącej do bazy
Wektor wyrazów wolnych
Zmienna bazowa
1x′
2x′
1x
2w
Tabela 23.4.
Z bazy wychodzi: 1x
53
Metoda Wolfe’a
01.51
–0.5–0.5–1.5
0006
Wskaźnik optymalnościZmienna
1x
Tabela 23.5.
2x1x′
2x′1y
2y
1y′2y′
1w2w
*
*
*
*
54
Metoda Wolfe’a
Rozwiązanie nie jest optymalne.
Najmniejszy wskaźnik optymalności: 1y
Jej zmienna komplementarna: 1x′ jest zmienną bazową
Do bazy wchodzi: 1y′
1y nie może być wprowadzone do bazy
Drugi najmniejszy wskaźnik optymalności: 2y
Jej zmienna komplementarna: 2x′ jest zmienną bazową
2y nie może być wprowadzone do bazy
Trzeci najmniejszy wskaźnik optymalności: 1y′
Jej zmienna komplementarna: 1x nie jest zmienną bazową
55
Metoda Wolfe’a
400.520
-–0.252.5
260.256.5
100.55
Wektor ilorazów
Kolumna współczynników dla zmiennej wchodzącej do bazy
Wektor wyrazów wolnych
Zmienna bazowa
1x′
2x′
2x
2w
Tabela 23.6.
Z bazy wychodzi: 1x′
56
Metoda Wolfe’a
0110
–1–2010
–3Wskaźnik optymalnościZmienna
1x
Tabela 23.7.
2x1x′
2x′1y
2y
1y′2y′
1w2w
*
*
*
*
57
Metoda Wolfe’a
Rozwiązanie nie jest optymalne.
Najmniejszy wskaźnik optymalności: 1x
Jej zmienna komplementarna: 1y′ jest zmienną bazową
Do bazy wchodzi: 1y
1x nie może być wprowadzone do bazy
Drugi najmniejszy wskaźnik optymalności: 1y
Jej zmienna komplementarna: 1x′ nie jest zmienną bazową
58
Metoda Wolfe’a
7.5215
-05
-04
-–110
Wektor ilorazów
Kolumna współczynników dla zmiennej wchodzącej do bazy
Wektor wyrazów wolnych
Zmienna bazowa
1y′
2x′
2x
2w
Tabela 23.8.
Z bazy wychodzi: 2w
59
Metoda Wolfe’a
1100000000
Wskaźnik optymalnościZmienna
1x
Tabela 23.9.
2x1x′
2x′1y
2y
1y′2y′
1w2w
*
*
*
*
61
Metoda Wolfe’a
000
17.50
7.54050
Wartość zmiennejZmienna
1x
Tabela 23.10.
2x1x′
2x′1y
2y
1y′2y′
1w2w
*
*
*
*
62
Metoda Wolfe’a
Ponieważ suma zmiennych sztucznych jest równa zero (zadanie nie jest sprzeczne) to istnieje rozwiązanie zadania programowania kwadratowego:
1
2
05
xx
==
1 2FC : ( , ) 100f x x =
63
Metoda Wolfe’a
Co zrobić jeżeli w zadaniu programowania kwadratowego mamy ograniczenie typu:
1 22 5 7x x+ ≥- wprowadzamy zmienną bilansującą:
1 2 12 5 7x x x′+ − =
- wprowadzamy zmienną sztuczną typu v:
1 2 1 12 5 7x x x v′+ − + =
Zmienne sztuczne należy uwzględnić w funkcji celu zadania zastępczego.Czyli funkcja celu mogłaby wyglądać np. tak:
1 2 1 MINw w v+ + →
64
Metoda Wolfe’a
Jakie zmienne należy wprowadzić do ograniczenia:
1 22 2 7x x+ ≤ −wyraz wolny musi być ≥ 0:
1 22 2 7x x− − ≥
Należy wprowadzić zmienną bilansującą x′ i sztuczną v.
Jakie zmienne należy wprowadzić do ograniczenia:
1 22 2 7x x− − ≥ −
1 22 2 7x x+ ≤
Należy wprowadzić zmienną bilansującą x′.
66
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
67
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 vv - macierz współczynników dla zmiennych sztucznych typu v
68
Metoda Wolfe’a
, ,′y y w - wektory zmiennych y, y′, w
,′y w - jednostkowe macierze dla zmiennych y′ i w
Dodatkowo:
69
Metoda Wolfe’a
r × 1
q × r
q × 1
n × 1
q × q
q × n
n × n
macierzewymiary
′C y w
A
′x
′p x y w
′x y b
Tabela 24.1.
v
v
70
Metoda Wolfe’a
Zapis współczynników lewej strony ograniczeń zadania zastępczego w formie macierzowej:
0 0 02 0 0
′� �= � �′−� �
T
A x vM
C A y w
71
Metoda Wolfe’a
Zapis prawej strony ograniczeń zadania zastępczego w formie macierzowej:
� �= � �� �
bB
p
Wektor zmiennych: � �� �′� �� �
= � �′� �� �� �� �
xxy
Zyvw
72
Metoda Wolfe’a
Dla analizowanego przykładu:
1 21 1� �
= � �� �
A109
� �= � �� �
b
10 22 1
� �= � �� �
C 1025� �
= � �� �
p
1 00 1� �′ = � �� �
x1 00 1� �′ = � �� �
y1 00 1� �
= � �� �
w