73
PROGRAMOWANIE KWADRATOWE

KWADRATOWE PROGRAMOWANIE - Strona główna - …dydaktyka.polsl.pl/kwmimkm/kwadratowe.pdf · problem Kuhna – Tuckera dla zadania programowania kwadratowego z Przyk ... c ą z bazy

  • Upload
    vunhi

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

PROGRAMOWANIE KWADRATOWE

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:

Zadanie programowania wypukłego

6

Zadanie programowania wypukłego

Rys. 1. Funkcja wypukła Rys. 2. Funkcja wklęsła

7

Zadanie programowania wypukłego

Rys. 3. Zbiory wypukłe Rys. 4. Zbiory niewypukłe

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.

Warunki Kuhna - Tuckera

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λ λ λ λ ≥

Metoda Wolfe’a

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.

34

Metoda Wolfe’a

Czyli:

1 1yλ →

2 2yλ →

3 1y′λ →

4 2y′λ →

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!!!

46

Metoda Wolfe’a

Na podstawie zadania zastępczego:

Baza startowa:

[ ]1 2 1 2, , ,x x w w′ ′

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

*

*

*

*

60

Metoda Wolfe’a

Rozwiązanie jest optymalne.

Rozwiązanie zadania zastępczego:

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′.

65

Metoda Wolfe’a

Przykład 24.

„Szybki” sposób zapisania zadania zastępczego.

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

73

Metoda Wolfe’a

1 2 1 0 0 0 0 0 0 01 1 0 1 0 0 0 0 0 020 4 0 0 1 1 1 0 1 04 2 0 0 2 1 0 1 0 1

� �� �� �=

−� �� �−� �

M

109

1025

� �� �� �=� �� �� �

B

[ ]TT1 2 1 2 1 2 1 2 1 2x x x x y y y y w w′ ′ ′ ′=Z

=MZ B