1 / 20

Operációkutatás Kalmár János, 2011.

Operációkutatás Kalmár János, 2011. Hiperbolikus és kvadratikus programozás. 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.

casper
Download Presentation

Operációkutatás Kalmár János, 2011.

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. OperációkutatásKalmár János, 2011. Hiperbolikus és kvadratikus programozás

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

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

  4. Hiperbolikus programozás Ay - bt 0 dTy+t = 1 (2) cT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: • (2) feladat mindig megoldható, és t>0 teljesül • Ha (y, t) optimális megoldása (2)-nek, akkor x = y/t optimális megoldása (1)-nek • Ha x optimális megoldása (1)-nek akkor t= 1/(dTx + ) és y=t x optimális megoldása (2)-nek.

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

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

  8. Kvadratikus programozás Alapfeladat: Ax  b, x  0 (1) pTx+xTCxmin Ahol C szimmetrikus és pozitív szemidefinit (x-re xTCx  0, a szimmetria pedig mindig elérhető xTCx =xTCTx és C’ = (C + CT)/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 - ATu = p (2) xTv + yTu = 0 bTu  max (2) már közel lineáris programozási feladat, ahol az xTv + yTu = 0 nemlineárisfeltételt úgy teljesítjük, hogy xi és vi, illetve yi és ui 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 - ATu = p feltétel atranszponálás után xTC + vT- uT A = pT /x xTCx + vTx - uTAx = pTx ezért (1) célfüggvénye pTx + xTCx = vTx - uTAx de uTAx = uT(b – y) = uTb - uTy ezért (1) célfüggvénye pTx + xTCx = vTx - uTb + uTy aholaz xTv + yTu = 0 feltétel miatt a célfgv. - bTu  min-re egyszerűsödik, ami bT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 xTv + yT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: • 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 = (f1,f2,…fn) diagonális mátrix, ahol fj = sign(ejT(Cx’+p))ej 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 - ATu + Fz = p (3) xTv + yTu = 0 t = zi  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 xj és vj, illetve yj és uj. (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 bTu  maxcé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: x1+x2  3 x1, x2 0 -x1+4x2  4 x12-4x1x2+5x22+6x1-20x2 min A =  1 1 b = 3 C =  1 -2 p = 6  -1 4 4 -2 5 -20 (1) induló bázismegoldása lehet x1=0, x2=0, ezért (4) kezdő-megoldás a következő lesz: x1=0, x2=0, y1=3, y2=4, v1=0, v2=0, u1=0, u2=0, z1=6, z2=20

  15. Kvadratikus programozás Szimplextábla/1: x1 x2 v1 v2 u1 u2 b y1 1 1 0 0 0 0 3 y2 -1 4 0 0 0 0 4 z1 -1 2 1 0 -1 1 6 z2 -2 5 0 -1 1 4 20 bTu 0 0 0 0 3 4 0 ----------------------------------------------------------------------------------------------------------------------------------------------------- zi 3 -7 -1 1 0 -5 -26 y2 helyére az x2 kerül a bázisba

  16. Kvadratikus programozás Szimplextábla/2: x1 y2 v1 v2 u1 u2 b y1 5/4 -1/4 0 0 0 0 2 x2 -1/4 1/4 0 0 0 0 1 z1 -1/2 -1/2 1 0 -1 1 4 z2 -3/4 -5/4 0 -1 1 4 15 bTu 0 0 0 0 3 4 0 ----------------------------------------------------------------------------------------------------------------------------------------------------- zi 19/4 7/4 -1 1 0 -5 -19 z2 helyére az u2 kerül a bázisba

  17. Kvadratikus programozás Szimplextábla/3: x1 y2 v1 v2 u1 z2 b y1 5/4 -1/4 0 0 0 0 2 x2 -1/4 1/4 0 0 0 0 1 z1 -5/16 -3/16 1 1/4 -5/4 -1/4 1/4 u2 -3/16 -5/16 0 -1/4 1/4 1/4 15/4 bTu 3/4 5/4 0 1 2 -1 -15 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ zi 61/16 3/16 -1 9/4 5/4 5/4 -1/4 z1 helyére az v1 kerül a bázisba

  18. Kvadratikus programozás Szimplextábla/4: x1 y2 z1 v2 u1 z2 b y1 5/4 -1/4 0 0 0 0 2 x2 -1/4 1/4 0 0 0 0 1 v1 -5/16 -3/16 1 1/4 -5/4 -1/4 1/4 u2 -3/16 -5/16 0 -1/4 1/4 1/4 15/4 bTu 3/4 5/4 0 1 2 -1 -15 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ zi 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: x1 y2 v2 u1 b y1 5/4 -1/4 0 0 2 x2 -1/4 1/4 0 0 1 v1 -5/16 -3/16 1/4 -5/4 1/4 u2 -3/16 -5/16 -1/4 1/4 15/4 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- bT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 xTv + yTu = 0 feltételnek ellentmondó bázisvektor cseréhez vezetnének (pl. x1y1, x2y2, u1u2, v1v2), ezért továbblépni nem tudunk, az aktuális táblázat már az optimális eredményt (x1=0, x2=1, célfüggvény = -15) mutatja.

More Related