Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Operációkutatás Kalmár János, 2011. Hiperbolikus és kvadratikus programozás.

Hasonló előadás


Az előadások a következő témára: "Operációkutatás Kalmár János, 2011. Hiperbolikus és kvadratikus programozás."— Előadás másolata:

1 Operációkutatás Kalmár János, 2011. Hiperbolikus és kvadratikus programozás

2 Hiperbolikus programozás Alapfeladat: A  x  b, x  0 d T  x +   0 (1) c T  x +    max d T  x +  Legyen x = y/t (y  0, t > 0) akkor

3 Hiperbolikus programozás A  y  b  t c T  y +  t   max d T  y +  t Válasszuk meg t paramétert úgy, hogy d T  y +  t = 1 Teljesüljön, akkor (1) ekvivalens

4 Hiperbolikus programozás A  y - b  t  0 d T  y+  t = 1 (2) c T  y+  t  max lineáris programozási feladattal, melynek y megoldásából (1) megoldása x = y / t alapján számítható.

5 Hiperbolikus programozás Tételek: 1.(2) feladat mindig megoldható, és t>0 teljesül 2.Ha (y, t) optimális megoldása (2)-nek, akkor x = y/t optimális megoldása (1)- nek 3.Ha x optimális megoldása (1)-nek akkor t= 1/(d T  x +  ) és y=t  x optimális megoldása (2)-nek.

6 Hiperbolikus programozás Számpélda: x 1 + x 2  4 x 1 - x 2  2 (2  x 1 + x 2 - 2)/(x 1 + x 2 + 1)  max helyett megoldandó y 1 + y 2 – 4  t  0 y 1 - y 2 -2  t  0 y 1 + y 2 + t = 1 2  y 1 + y 2 – 2  t  max

7 Hiperbolikus programozás A számpéldát LP-ként megoldva kapjuk: y 1 = 0,6 y 2 = 0,2 t = 0,2 ezért a megoldások x-re x 1 = 3 x 2 = 1 a célfgv értéke pedig 1

8 Kvadratikus programozás Alapfeladat: A  x  b, x  0 (1) p T  x+x T  C  x  min Ahol C szimmetrikus és pozitív szemidefinit (  x-re x T  C  x  0, a szimmetria pedig mindig elérhető x T  C  x =x T  C T  x és C’ = (C + C T )/2 miatt). (1) helyett oldjuk meg a (2) feladatot:

9 Kvadratikus programozás A  x + y = b, x, y, v, u  0 - C  x + v - A T  u = p (2) x T  v + y T  u = 0 b T  u  max (2) már közel lineáris programozási feladat, ahol az x T  v + y T  u = 0 nemlineáris feltételt úgy teljesítjük, hogy x i és v i, illetve y i és u i ismeretlenek nem lehetnek egyidejűleg a bázisban, mert a különben pozitív tagú összeg csak akkor lesz 0, ha minden tagja 0, ezért a tagok egyik tényezője kötelezően 0 lesz, tehát ismeretlenként nem tartozhat a bázisba. Tétel: (2)-nek mindig van megoldása, ha az A  x  b összefüggést nem csak az üres halmaz elégíti ki, és x egyben (1)-nek is megoldása.

10 Kvadratikus programozás (1) és (2) feladatok ekvivalenciájának belátása: A  x + y = b, x, y, v, u  0 rész triviális, - C  x + v - A T  u = pfeltétel a transzponálás után - x T  C + v T - u T  A = p T /  x - x T  C  x + v T  x - u T  A  x = p T  xezért (1) célfüggvénye p T  x + x T  C  x = v T  x - u T  A  x de u T  A  x = u T  (b – y) = u T  b - u T  yezért (1) célfüggvénye p T  x + x T  C  x = v T  x - u T  b + u T  y ahol az x T  v + y T  u = 0 feltétel miatt a célfgv. - b T  u  min-re egyszerűsödik, ami b T  u  max alakban is felírható. Tehát újabb változók és lineáris feltételek segítségével sikerült a célfüggvényt is lineárissá tenni, csak az x T  v + y T  u = 0 feltétel okoz – az előző dián ismertetett - változást a standard megoldáshoz képest.

11 Kvadratikus programozás (2) megoldása: 1. fázis: határozzuk meg A  x  b, x  0 egy lehetséges x’ megoldását szimplex módszerrel, és definiáljuk F előjel-mátrixot a következőképpen: F = (f 1,f 2,…f n ) diagonális mátrix, ahol f j = sign(e j T  (C  x’+p))  e j ahol sign az előjelfgv Tekintsük a következő lineáris programozási feladatot:

12 Kvadratikus programozás A  x + y = b, x, y, v, u, z  0 -C  x + v - A T  u + F  z = p (3) x T  v + y T  u = 0 t =  z i  min (i=1..n) aminek egy lehetséges bázismegoldása: x’ y’ = b - A  x’ v’ = 0 (4) u’ = 0 z’ = F  (C  x’ + p) (3) feltételei ekvivalensek (2)-vel, ha a megoldásban z = 0, ezt fejezi ki (3) célfüggvénye.

13 Kvadratikus programozás 2. fázis: (4) Megoldásból kiindulva oldjuk meg (3)-at szimplex módszerrel úgy, hogy minden bázisvektor csere esetén vegyük figyelembe, hogy az aktuális bázisban nem lehet egyidejűleg x j és v j, illetve y j és u j. (3) Megoldása akkor ér véget, ha a t célfüggvény értéke 0 – ezután z oszlopainak elhagyásával folytassuk (2) megoldását a b T  u  max célfüggvény szerint. Az eredményben szereplő x a tétel szerint egyidejűleg az (1) feladat optimális megoldása is.

14 Kvadratikus programozás Számpélda: x 1 +x 2  3 x 1, x 2  0 -x 1 +4x 2  4 x 1 2 -4x 1 x 2 +5x 2 2 +6x 1 -20x 2  min A =  1 1 b =  3 C =  1 -2 p =  6  -1 4   4   -2 5   -20  (1) induló bázismegoldása lehet x 1 =0, x 2 =0, ezért (4) kezdő-megoldás a következő lesz: x 1 =0, x 2 =0, y 1 =3, y 2 =4, v 1 =0, v 2 =0, u 1 =0, u 2 =0, z 1 =6, z 2 =20

15 Kvadratikus programozás Szimplextábla/1: x 1 x 2 v 1 v 2 u 1 u 2 b y 1 1 1 0 0 0 0 3 y 2 -1 4 0 0 0 0 4 z 1 -1 2 1 0 -1 1 6 z 2 -2 5 0 -1 1 4 20 b T  u 0 0 0 0 3 4 0 -----------------------------------------------------------------------------------------------------------------------------------------------------  z i 3 -7 -1 1 0 -5 -26 y 2 helyére az x 2 kerül a bázisba

16 Kvadratikus programozás Szimplextábla/2: x 1 y 2 v 1 v 2 u 1 u 2 b y 1 5/4 -1/4 0 0 0 0 2 x 2 -1/4 1/4 0 0 0 0 1 z 1 -1/2 -1/2 1 0 -1 1 4 z 2 -3/4 -5/4 0 -1 1 4 15 b T  u 0 0 0 0 3 4 0 -----------------------------------------------------------------------------------------------------------------------------------------------------  z i 19/4 7/4 -1 1 0 -5 -19 z 2 helyére az u 2 kerül a bázisba

17 Kvadratikus programozás Szimplextábla/3: x 1 y 2 v 1 v 2 u 1 z 2 b y 1 5/4 -1/4 0 0 0 0 2 x 2 -1/4 1/4 0 0 0 0 1 z 1 -5/16 -3/16 1 1/4 -5/4 -1/4 1/4 u 2 -3/16 -5/16 0 -1/4 1/4 1/4 15/4 b T  u 3/4 5/4 0 1 2 -1 -15 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  z i 61/16 3/16 -1 9/4 5/4 5/4 -1/4 z 1 helyére az v 1 kerül a bázisba

18 Kvadratikus programozás Szimplextábla/4: x 1 y 2 z 1 v 2 u 1 z 2 b y 1 5/4 -1/4 0 0 0 0 2 x 2 -1/4 1/4 0 0 0 0 1 v 1 -5/16 -3/16 1 1/4 -5/4 -1/4 1/4 u 2 -3/16 -5/16 0 -1/4 1/4 1/4 15/4 b T  u 3/4 5/4 0 1 2 -1 -15 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  z i 14/4 0 1 5 0 2 0

19 Kvadratikus programozás Elértük, hogy z kikerüljön a bázisból, ezért a redukált szimplex táblával folytathatjuk: x 1 y 2 v 2 u 1 b y 1 5/4 -1/4 0 0 2 x 2 -1/4 1/4 0 0 1 v 1 -5/16 -3/16 1/4 -5/4 1/4 u 2 -3/16 -5/16 -1/4 1/4 15/4 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- b T  u 3/4 5/4 1 2 -15

20 Kvadratikus programozás A redukált szimplex táblában csak a pozitív elemeket választhatjuk generáló-elemnek, melyek viszont a x T  v + y T  u = 0 feltételnek ellentmondó bázisvektor cseréhez vezetnének (pl. x 1  y 1, x 2  y 2, u 1  u 2, v 1  v 2 ), ezért továbblépni nem tudunk, az aktuális táblázat már az optimális eredményt (x 1 =0, x 2 =1, célfüggvény = -15) mutatja.


Letölteni ppt "Operációkutatás Kalmár János, 2011. Hiperbolikus és kvadratikus programozás."

Hasonló előadás


Google Hirdetések