slide1 l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
PROGRAMOWANIE KWADRATOWE Damian G?odkowski PowerPoint Presentation
Download Presentation
PROGRAMOWANIE KWADRATOWE Damian G?odkowski

Loading in 2 Seconds...

play fullscreen
1 / 30

PROGRAMOWANIE KWADRATOWE Damian G?odkowski - PowerPoint PPT Presentation


  • 664 Views
  • Uploaded on

PROGRAMOWANIE KWADRATOWE Damian Głodkowski. Czym będę się zajmował w mojej pracy : Metoda Wolfe’a: Postawienie Problemu ; Metoda Wolfe’a: Wersja parametryczna; Metoda Franka i Wolfe’a. (Plan mojej pracy może ulec w każdej chwili zmianie , wszystko co pokazuje jest w fazie rozbudowy).

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'PROGRAMOWANIE KWADRATOWE Damian G?odkowski' - andrew


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

PROGRAMOWANIE KWADRATOWE

Damian Głodkowski

slide2

Czym będę się zajmował w mojej pracy :

  • Metoda Wolfe’a: Postawienie Problemu ;
  • Metoda Wolfe’a: Wersja parametryczna;
  • Metoda Franka i Wolfe’a.
  • (Plan mojej pracy może ulec w każdej chwili zmianie , wszystko co pokazuje jest w fazie rozbudowy).
slide3

Oznaczenia:

  • przez x’ - oznaczam wektor w postaci wierszowej , x’=[x1,…,xn];
  • przez x – oznaczam wektor w postaci kolumnowej , x= ;
  • O= o= ;
  • C= -macierz (nxn);
  • C’= -macierz symetryczna wymiaru (nxn);
slide4

x<==b oznacza, że każde xi<=bi , dla kazdego i ;

  • Miedzy wektorem x a wektorem „o” mogą zachodzić różnego rodzaju relacje,
    • wektor x jest nieujemny, jeśli x>==0;
    • półdodatni , jeśli x>=0;
    • dodatni , jeśli x>0.
  • Macierz C jest symetryczna , jeśli C=C’, oraz antysymetryczna jeśli C=-C’
  • Dla symetrycznej macierzy A stopnia n rozważamy funkcję n-wymiarowego wektora kolumnowego x o postaci:
  • fA(x) = x¢Ax
  • zwaną formą kwadratową.
  • Przykład:
  • Kryterium określoności macierzy jest znak formy kwadratowej dla DOWOLNEGO niezerowego x:
  • Jeżeli   to macierz A jest dodatnio określona ;
  • Jeżeli  to macierz A jest dodatnio półokreślona ;
slide5

Jeżeli A jest dodatnio określona lub dodatnio półokreślona, mówimy, że jest nieujemnie określona.

  • Każda macierz dodatnio półokreślona lub ujemnie półokreślona jest osobliwa – jej wyznacznik jest zerowy, ponieważ skoro x¢Ax = 0 dla niezerowego x, to Ax = 0 => kolumny A nie są liniowo niezależne, więc det(A) = 0;
  • E+n= {x należących do En ; x>==0 };
  • Kombinacja liniowa i liniowa zależność : rozważmy skończony przestrzeni En, to jest skończony zbiór wektora n – wymiarowego a1,a2,…,an.
  • Wektor b= B1*a1+B2*a2+…Bn*an, gdzie B1,B2,…,Bn są liczbami rzeczywistymi, nazywamy kombinacją liniową wektorów a1,a2,…an;
  • Jeżeli B1,B2,…,Bn>==0 i B1 + B2 + … + Bn = 1, to b nazywamy kombinacja wypukłą;
  • A*x – kombinacja liniowa kolumn macierzy A;
  • y’*A – kombinacja liniowa wierszy macierzy A;
slide6

W mojej pracy zajmować się będę problemem programowania kwadratowego (PK)

        • Min{F(x)=(1/2)*x’*A*x + p’*x; x należy do L’}
  • L’={x; A*x<==b , x >== o};
  • gdzie C jest (nxn)- macierzą, o której zakładamy bez straty ogólności, że jest symetryczna , a p jest wektorem n – wymiarowym;
slide7

Metoda Wolfe’a: postawienie problemu.

  • W odniesieniu do problemu PK (1) przyjmiemy następujące dwa założenia:
  • (2) C jest dodanio półokreślona;
  • (3) Istnieje q należące do En takie, że p = C*q;
  • Warunki (2) i (3) są warunkami jednocześnie koniecznym i dostatecznym kryterium optymalności dla problemu PK, wynika to z Twierdzenia o optymalności punktu stacjonarnego KTL (Kuhna ,Tuckera i Lagrange’a) (Treść wraz z dowodem tego twierdzenia będzie przedstawiona w Nowym roku )
  • Zgodnie z założeniem (2) funkcja F(x) jest wypukła. Wprowadzamy teraz wektory y , v należące do E+n nieujemnych zmiennych dopełniających określone następująco:
  • y = b – A*x>==o,
  • v = C*x + A’*u + p >==o,
  • Gdzie u należy do E+n jest wektorem mnożników Lagrange’a .
slide8

Przy takich oznaczeniach warunki KTL odnoszące się do problemu (1) przyjmują postać:

  • x,y,u,v >==o;
  • A*x + y = b; (5)
  • -C*x + v – A*u = p;
  • x’*v + y’*u = 0.
  • Następnie warunek (5) sprowadza się do problem znalezienia takiej bazy dopuszczalnej B związaną z macierzą D’ taką ,że
  • B=[e1,e2] , zatem B=
  • Macierz D’ jest postaci D’= [A E]
  • Trzeba znaleźć macierz D postaci D=
slide9

Jak działa algorytm rozwiązania problemu ??

  • Faza I
  • Krok I . Posługując się algorytmem LMS , stwierdzamy, że L’ jest pusty, albo uzyskujemy początkową bazę dopuszczalną B” związaną z D’=[A.E] i odpowiadający jej wierzchołek x1’ zbiory L’
  • jeżeli b>== o , to przyjmujemy B’ = E, x1’ = o;
  • jeżeli b ma pewne ujemne współrzędne, to przekształcamy wektor b do postaci b= [b1, b2]’
  • tak, aby b1>==o, b2<0 i stosownie do tego przekształcamy A . Wprowadzamy wektor zmiennych sztucznych z’ (z taką samą liczbą współrzędnych jak wektor b2) i budujemy problem pomocniczy:
  • Min{e’*z: A1*z<==b1, A2*x – z <==b2, x>==o, z>==o},
  • gdzie
  • D’=
slide10

Przyjmujemy, że macierz

B’^(-1)=

jest bazą dopuszczalną, zbudowaną z kolumn D’, generującą wierzchołek [x1”,z1”] = [o, - b2].

Krok II .

Konstruujemy (nxn)- macierz F z dodatnich i ujemnych wektorów jednostkowych zgodnie ze znakiem współrzędnych wektora C*x1’ + p to jest

Fj = ej jeśli ej’*(C*x1’ + p ) >==0 i -ej jeśli ej’*(C*x1’ + p ) <0

Budujemy problem programowania liniowego : Min e’*z,

przy warunkach :

x,y,v,u>==o,

(*) A*x + y =b

-C*x + v – A’*u + F*z = p .

slide11

Macierz tego układu warunków ma postać

D=

Przez –C1 oznaczmy macierz utworzoną z tych kolumn macierzy [-C, O], które odpowiadają kolumnom macierzy [A, E] wybranym do bazy B1’.

Bdujemy macierz B1=

I odpowiadające jej rozwiązanie (**)

x1’,

y1’=b – A*x1’

v1’= o, u1’ = o

z1’= F*(C*x1’ + p)

slide12

Faza II

Rozwiązujemy problem PL (*) przy użyciu LMS, rozpoczynając obliczenia od bazy

B1 i rozwiązania (**) oraz stosujemy następujące ograniczenia wejscia do bazy :

Jeżeli xj,vj,yi,ui jest bazowa, to vj,xj,ui,yi nie może wejść do bazy (***).

Takie postępowanie kończy się po osiągnięciu rozwiązania , dla którego nie można wykonać żadnego dalszego korku przy spełnieniu warunku powyższego .

Jak wygląda tablica simpleksowa

Niech x*, y*, v*, u*, z* będzie rozwiązaniem końcowym problemu (*) wyznaczonym przy uwzględnieniu ograniczenia (***)

Niech xx, yy, vv, uu – oznaczają zmienne bazowe w rozwiązaniu końcowym,

xv, yu, vx, uy – oznaczają zmienne komplementarne do zmiennych bazowych , które nie mogą wejść do bazy , przy warunku (***)

xq, yq, vq, uq – oznaczają pozostałe zmienne, które nie są ani bazowe, ani komplementarne do zmiennych bazowych .

slide13

Macierze A i C , jak również macierze jednostkowe, można odpowiednio podzielić tak , że tablica simpleksowa przedstawiająca problem (*) przyjmuje postać :

slide14

W tablicy tej zmienne komplementarne do zmiennych bazowych w rozwiązaniu końcowym posiadają *.

Niech także s, r należy do E+n , gdzie :

s’=[s’y, s’u, s’q]

r’= [r’x, r’v, r’q ]

Jak znajdujemy rozwiązanie : trzeba wprowadzać zmienne do bazy , a następnie przeprowadzać iteracje, aby otrzymać w określonej kolumnie wektor bazowy .

Może troszkę ten algorytm rozjaśni się na przykładzie:

slide15

Przykład: Zminimalizować

F(x1,x2)=(x1)^2-4*x1*x2 +5*(x2)^2 + 6*x1 – 20*x2

Przy następujących warunkach :

x1,x2 >= 0;

x1 + x2 <= 3;

- x1 +4*x2 <= 4.

slide16

Równanie F(x1,x2) zapisuje w postaci

F(x1,x2) = (1/2)*(2*(x1)^2-8*x1*x2 +10*(x2)^2) + 6*x1 – 20*x2

Równanie F(x1,x2) = 2*(x1)^2-8*x1*x2 +10*(x2)^2 jest

naszą formą kwadratową .Zatem możemy utworzyć macierz C,

która jest dodatnio półokreślona

C = p=

Wektor p powstaje z warunku

F(x1,x2)=(x1)^2-4*x1*x2 +5*(x2)^2 + 6*x1 – 20*x2 i wynosi

slide17

Macierz A i wektor b powstaje z warunków wystepujących w zadaniu

x1,x2 >= 0

x1 + x2 <= 3;

- x1 +4*x2 <= 4.

A= b=

slide18

Macierz C jest dodatnio półokreślona i nieosobliwa, a więc założenia (2) i (3) są spełnione. Ponieważ b>=0, więc mamy bazę początkową B” związaną z z D’. To znaczy

B”=[e1,e2] , zatem B”=

Macierz D’ jest postaci D’= [A E] =

I odpowiadający tej bazie wierzchołek x1’ = zbioru L’.

slide19

Następnie mamy C*x1’ + p = p = [6, -20]’. Potem trzeba zbudować macierz F,

która ma postać F = [e1 , -e2] =

Obliczenia rozpoczynamy z następującą bazą dopuszczalną

B’ = =

slide20

Ta baza jest związana z macierzą D, która jest postaci :

D= =

=

odpowiadającą jej tablicą simpleksową :

slide22

Metoda simpleks

Tak możemy obliczyć wszystkie puste pola w wierszu qj:

A na tym przykladzie to jest (y1,y1)*(y1,u1)+(y2,y1)*(y2,u2)+(z1,y1)*(z1,z1)+(z2,y1)*(z2,z2)

slide23

Metoda simpleks

Zatem otrzymujemy:

(b,u2)- qu2= -5

Te pola otrzymujemy odejmując od wartości w odpowiednim polu w wierszu pierwszym od wartości w wierszu qj .

slide25

Metoda simpleks

Mamy:

Szukamy tak zwane kryterium wyjścia , czyli min[tj -qj]= -14

slide26

Metoda simpleks. Wprowadzimy zmienną x2 do bazy . Zmienna y2

Opuszcza bazę i w rezultacie otrzymujemy następującą tablicę simpleksową

Otrzymanie odpowiednich pól polega na takim przekształceniu, aby w kolumnie x2 znajdował się odpowiedni wektor bazowy

y1:=y1 – (1/4)*x2 x2:=x2/4 z1:=z1 – y2 z2:=z2 – (5/2)*y2

slide27

Metoda simpleks.

Szukamy tak zwane kryterium wyjścia , czyli min[tj -qj]= -5

slide28

Metoda simpleks. Teraz do bazy wprowadzamy u2 . Zmienna z1

Opuszcza bazę i w rezultacie otrzymujemy następującą tablicę simpleksową

Otrzymanie odpowiednich pól polega na takim przekształceniu, aby w kolumnie u2 znajdował się odpowiedni wektor bazowy

z2:= z2- (1/4)*u2

slide29

Metoda simpleks. Teraz do bazy wprowadzamy x2 . Zmienna z2

Opuszcza bazę i w rezultacie otrzymujemy następującą tablicę simpleksową

Otrzymanie odpowiednich pól polega na takim przekształceniu, aby w kolumnie x1 znajdował się odpowiedni wektor bazowy

y1:= y1- (1/2)*z2 x2:= x2 +(1/10)*z2 u2:=u2 +(2/5)*z2 x1:=z2*(2/5)

slide30

Otrzymujemy rozwiązanie końcowe:

x1:= 4/5

x2:= 6/5

y1:= 1

u2:= 14/5

A zatem rozwiązaniem optymalnym problemu

F(x1,x2)=(x1)^2-4*x1*x2 +5*(x2)^2 + 6*x1 – 20*x2

Jest

Para x1:= 4/5, x2:= 6/5

Teraz podstawiając do powyższego wzoru otrzymujemy:

F((4/5),(6/5))=-(76/5)