1 / 30

PROGRAMOWANIE KWADRATOWE Damian Głodkowski

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

andrew
Télécharger la présentation

PROGRAMOWANIE KWADRATOWE Damian Głodkowski

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROGRAMOWANIE KWADRATOWE Damian Głodkowski

  2. 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).

  3. 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);

  4. 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 ;

  5. 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;

  6. 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;

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

  8. 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=

  9. 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’=

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

  11. 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)

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

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

  14. 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:

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

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

  17. 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=

  18. 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’.

  19. 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’ = =

  20. Ta baza jest związana z macierzą D, która jest postaci : D= = = odpowiadającą jej tablicą simpleksową :

  21. Metoda simpleks

  22. 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)

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

  24. Metoda simpleks Mamy:

  25. Metoda simpleks Mamy: Szukamy tak zwane kryterium wyjścia , czyli min[tj -qj]= -14

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

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

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

  29. 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)

  30. 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)

More Related