oper ci kutat s kalm r j nos 2011
Download
Skip this Video
Download Presentation
Operációkutatás Kalmár János, 2011.

Loading in 2 Seconds...

play fullscreen
1 / 20

Operációkutatás Kalmár János, 2011. - PowerPoint PPT Presentation


  • 54 Views
  • Uploaded on

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.

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 ' Operációkutatás Kalmár János, 2011.' - casper


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
oper ci kutat s kalm r j nos 2011

OperációkutatásKalmár János, 2011.

Hiperbolikus és kvadratikus programozás

hiperbolikus programoz s
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

hiperbolikus programoz s1
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

hiperbolikus programoz s2
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ó.

hiperbolikus programoz s3
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.
hiperbolikus programoz s4
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

hiperbolikus programoz s5
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

kvadratikus programoz s
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:

kvadratikus programoz s1
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.

kvadratikus programoz s2
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 .

kvadratikus programoz s3
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:

kvadratikus programoz s4
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.

kvadratikus programoz s5
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.

kvadratikus programoz s6
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

kvadratikus programoz s7
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

kvadratikus programoz s8
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

kvadratikus programoz s9
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

kvadratikus programoz s10
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

kvadratikus programoz s11
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

kvadratikus programoz s12
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.

ad