GAZDASÁGMATEMATIKA
KÖZÉPHALADÓ SZINTEN
ELTE TáTK Közgazdaságtudományi Tanszék
Gazdaságmatematika középhaladó szinten
13. hét
NEM LINEÁRIS PROGRAMOZÁS Készítette: Lovics Gábor
Szakmai felel®s: Lovics Gábor
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Vázlat
1 Alapfogalmak, egyenl®ségi kritériumok
2 Konvex programozás
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Feltételes széls®érték-számítás
A feltételes széls®érték-számítási feladat (minimalizálás) a következ® formában írható fel általánosan:
min f(x) x∈S
) P,
ahol f(x)tetsz®legesRn→Rfüggvény és S⊆Rn. Az általános esetet azonban nem tudjuk megoldani még a legnagyobb sebesség¶ számítógépekkel sem. A legjobban kezelhet® speciális eset a lináris, amelyet az el®z® órán áttekintettünk. A lineáris programozásnak nagyon sok gyakorlati alkalmazása van, gyakori azonban az is, hogy egy modell a lineáris esetben matematikailag jól kezelhet®, a gyakorlatban azonban a nem lineáris eset az igazán érdekes. Gyakran a lineáris esetet arra alkalmazzuk, hogy közelít®
megoldást keressünk egy nem lineáris példára.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Egyenl®ségi kritériumok
Legyenek f(x), g(1)(x), g(2)(x), . . . ,g(k)(x)Rn→Rfolytonosan deriválható függvények, Egy egyenl®ségi kritériumokkal felírt feltételes optimalizálási probléma általános alakja:
max f(x) g(1)(x) =0 g(2)(x) =0
...
g(k)(x) =0
.
A feladathoz tartozó Lagrange-függvény pedig:
L(x) =f(x)−
k
X
i=1
λig(i)(x).
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Egyenl®ségi kritériumok (folyt.)
Az els®rend¶ kritériumok ebben az esetben:
f10(x)−λ1g10(1)(x)−λ2g10(2)(x)− · · · −λkg10(k)(x) =0 f20(x)−λ1g20(1)(x)−λ2g20(2)(x)− · · · −λkg20(k)(x) =0
...
fn0(x)−λ1gn0(1)(x)−λ2gn0(2)(x)− · · · −λkgn0(k)(x) =0 g(1)(x) =0 g(2)(x) =0
...
g(k)(x) =0. Ennél a feladattípusnál a Lagrange-szorzók hasonló szerepet játszanak, mint a lineáris esetben a duál változók. Ekkor ugyanis ezek a változók fogják az árnyékárakat megmutatni.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa
Oldjuk meg a következ® feltételes optimalizálási feladatot:
min x2+y2 2x+y=10
) . Megoldás
A feladathoz tartozó Lagrange-függvény:
L(x,y) =x2+y2+λ(2x+y−10).
Az optimális megoldás feltétele:
L0x(x,y) =2x+2λ=0 L0y(x,y) =2y +λ=0 2x+y=10.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa (folyt.)
Az els® egyenletet átrendezve kapjuk, hogy λ=−x. Ezt a másodikba visszaírva arra jutunk, hogy x =2y. Ezt a harmadikba helyetesítve kapjuk, hogy y =2x. Visszahelyetesítve ezt a korábbi egyenletekbe láthatjuk, hogy x =4,λ=−4.
Az ábráról leolvasható, hogy valóban a minimalizálási feladatot oldottuk meg.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
A feladat
A feltételes optimalizálás legáltalánosabb, de még jól kezelhet®
esete az úgynevezett konvex optimailzálás.
Legyen
min f(x) x∈S
) CP,
ahol f(x)S →Rkonvex függvény és az S⊆Rn konvex halmaz.
A konvex programozási feladatnak számíthatósági szempontból két nagy el®nye van. Az egyik, hogy mivel a megengedett megoldások halmaza konvex, ezért két megengedett megoldás közötti pontok (a két pontot összeköt® szakasz minden pontja) is részei a megengedett megoldások halmazának. A másik, ha ezt a tényt kiegészítjük azzal, hogy a célfüggvény is konvex, akkor biztosak lehetünk benne, hogy minden lokális optimum egyben globális optimum is.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
A feladat (folyt.)
Tétel
Legyen g(x)Rn→Rkonvex függvény, és c∈Rtetsz®leges.
Ekkor az S ={x|g(x)≤c}halmaz konvex.
A tétel számunkra legfontosabb következménye, hogy a gyakorlatban a megengedett megoldások halmazát a konvex programozás esetén is egyenl®tlenségi kritériumokkal adjuk meg.
Legyenek f(x), g(1)(x), g(2)(x), . . ., g(k)(x)Rn→R
folytonosan deriválható konvex függvények. Egy egyenl®tlenségi kritériumokkal felírt feltételes optimalizálási probléma általános alakja:
min f(x) g(1)(x)≤0 g(2)(x)≤0
...
g(k)(x)≤0
CP.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
A konvex programozási feladat megoldása
A fenti feladat megoldása nagyon hasonlóan megy, mint az egyenl®séges esetben. El®ször is most is felírjuk a feladathoz tartozó Lagrange-függvényt:
L(x) =f(x)−
k
X
i=1
λig(i)(x).
Ebben az esetben azonban a feladat megoldása már nem
vezethet® vissza egy egyszer¶ többismeretlenes egyenletrendszer megoldására. Tudjuk azonban, hogy a lineáris esetben a
duálváltozókra az optimális megoldásban igaz volt a
komplementaritás, vagyis hogy egy korláthoz tartozó duálváltozó akkor nem nulla, ha az egyenl®tlenségi kritérium egyenl®séggel teljesül. Mivel ebben az esetben a Lagrange-szorzók játszák az árnyékárak szerepét, ezért velük írható fel a komplementaritási kritérium. Logikus ugyanis, hogy az árnyékárak ebben az esetben is nullák lesznek, ha egy korlát nem teljesül élesen, hiszen ekkor a korlát kis mérték¶ változtatása nem befolyásolja a célfüggvény értékét.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
A konvex programozási feladat megoldása (folyt.)
A konvexitási feltételek pedig ahhoz segítenek hozzá, hogy ne kelljen a másodrend¶ feltételekkel törödnünk, elegend® legyen egy els®rend¶ feltételeknek eleget tév® pont megkeresése. Sajnos azonban ezeknél a feladatoknál a konvexitás önmagában nem is elegend® annak biztosítására, hogy az optimum megkereséséhez szükséges és elégséges feltételeket adjunk. Ehhez további úgynevezett regularitási feltételek is kellenek. A regularitási feltételek sokféle módon megfogalmazhatóak, itt nem tárgyaljuk
®ket részletesen. A regularitási feltételek teljesülésének ellen®rzése a gyakorlatban sokszor ugyanolyan nehéz vagy nehezebb, mint az eredeti feladat megoldása, ezért ezeknek a teljesülésében inkább csak reménykedni szoktak a megoldások során.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Komplementaritás konvex esetben
Tétel (Kuhn-Tucker féle elégséges feltételek)
Legyen adva egy konvex programozási feladat (CP) a fenti egyenl®tlenséges kritériumokkal megadott formában, és legyenek a függvények folytonosan dierenciálhatóak. Ekkor annak elégséges feltétele, hogy x∗ pont optimális megoldása a feladatnak, hogy léteznek olyanλ1, λ2, . . . , λm≥0 számok, melyekre
(megengedettségi kritérium) x∗ legyen megengedett megoldása a feladatnak;
(stacionaritási kritérium) ∂f∂(xxi∗)−Pm
j=1λj∂g(j)∂x(x∗)
i =0
(i=1,2, . . . ,n);
(komplementaritási kritérium), haλj =0, akkor g(j)(x∗)<0 (j=1,2, . . . ,m).
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Komplementaritás konvex esetben (folyt.)
A tétel tehát a szükséges feltételeit adja meg az optimumnak. Ha az úgynevezett regularitási feltételek teljesülnek, akkor ezek a feltételek elégségesek is. Ez a gyakorlatban azt jelenti, hogy ha egy algoritmusunk talált a fenti tételnek megfelel® megoldást, akkor az biztosan optimális megoldása az eredeti feladatnak. Ha viszont nem talált, akkor két eset lehetséges. Az egyik, hogy a feladatnak nincs optimális megoldása, a másik, hogy van, csak nem teljesülnek a regularitási feltételek. Mivel a regularitási feltételeket nem tudjuk tipikusan ellen®rizni, ezért ezt a problémát általánosan nem tudjuk megoldani.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa komplementaritás használatára
Nézzük meg a következ® konvex programozási feladatot:
max xy x2+y2≤25
x+7y ≤25 x≥0 y≥0
CP.
A feladathoz tartozó Lagrange-függvény a következ®:
L(x,y) =xy−λ1(x2+y2−25)−λ2(x+7y−25)−λ3x−λ4y. Miel®tt felírnánk az optimum elégséges feltételeit, egyszer¶sítsük le a feladatot kicsit, néhány specialitást kihasználva. Jól látszik, hogy a feladatnak vannak olyan megengedett megoldásai, melyekre mindkét változó szigorúan pozitív (pl.: x =y =1). Ez azt jelenti, hogy az optimális megoldásban a célfüggvény értéke biztosan pozitív lesz. Ebb®l viszont az következik, hogy az x =0 vagy az y =0 nem lehet optimális megoldása a feladatnak.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa komplementaritás használatára (folyt.)
Eszerint az utolsó két feltétel biztos, hogy szigorú
egyenl®tlenséggel teljesül az optimumban, tehát λ3=λ4=0.
Vagyis elegend® a következ® Lagrange-függvényt vizsgálnunk:
L(x,y) =xy−λ1(x2+y2−25)−λ2(x+7y −25).
(Ha ezt az egyszer¶sítést nem tesszük meg, akkor is eljutunk az optimális megoldáshoz, csak sokkal több számolással.)
Az egyszer¶sítés után az optimum elégséges feltétele, hogy találjunk olyanλ1, λ2≥0 számokat, melyre
L0x(x,y) =y−2λ1x−7λ2=0 L0y(x,y) =x−2λ1y−λ2=0
x2+y2≤25 /λ1>0⇒x2+y2=25/ 7x+y ≤25 /λ2>0⇒7x+y =25/.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa komplementaritás használatára (folyt.)
Ennek a rendszernek a megoldását úgy kereshetjük meg, hogy az els® két egyenletet négyféle egyenletrendszerrel és
egyenl®tlenségekkel egészítjük ki. Mind a négy esetben az egyenl®séges feltételekb®l indulunk ki, azoknak megkeressük a megoldását, majd ellen®rizzük, hogy a kapott megoldásra teljesülnek-e az egyenl®tlenségi feltételek.
A négy eset a következ®
1 λ1=0,λ2=0, x2+y2<25, 7x+y<25;
2 λ1=0,λ2>0, x2+y2<25, 7x+y=25;
3 λ1>0,λ2=0, x2+y2=25, 7x+y<25;
4 λ1>0,λ2>0, x2+y2=25, 7x+y=25.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa komplementaritás használatára (folyt.)
1 Aλ1=λ2=0-t az els® két egyenletbe behelyettesítve kapjuk, hogy x =y=0, ami a korábban belátottak alapján nem lehet optimális megoldás.
2 Az λ1=0-t az els® két egyenletbe visszahelyettesítve a következ® egyenletrendszert kapjuk
y−7λ2=0 x−λ2=0 7x+y =25.
A második egyenlet alapján x =λ2. Ezt az els® egyenletbe visszahelyettesítve kapjuk, hogy y =7x. Ezt a harmadikba beírva láthatjuk, hogy x = 2514≈1,79. Visszahelyettesítéssel kapjuk, hogy y = 252 =12,5,λ2=2514.
Ellen®riznünk kell még az egyenl®telnségeket. Aλ2= 2514>0 feltétel teljes¶l, viszont az x2+y2≈160>25 megsérti a megengedettségi feltételt, így az els® esetb®l nem jött ki a feltételeknek megfelel® megoldás.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa komplementaritás használatára (folyt.)
3 Aλ2=0-t behelyettesítve az els® két egyenletbe, és azokat kiegészítve a megfelel® harmadik egyenlettel kapjuk, hogy
y−2λ1x=0 x−2λ1y =0 x2+y2=25. Az els® két egyenletb®l kapjuk, hogy
2λ1= y x 2λ1= x
y.
A két egyenlet jobboldala egyenl®vé tehet® egymással, vagyis
yx = xy. Ennek az egyenletnek kétféle megoldása van, az egyik az x=y, a másik az x=−y. Ha viszont kihasználjuk azt is, hogyλ1>0 kell legyen, akkor láthatjuk, hogy a második eset nem lehet megoldása az egyenletnek, így elegend® az els®vel továbbmennünk.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa komplementaritás használatára (folyt.)
Helyettesítsük az x =y-t a harmadik egyenletbe:
2x2=25 x= 5
√2. Visszahelyttesítéssel kapjuk, hogy y = √5
2,λ1=12.
Láthatjuk, hogy aλ1>0 feltételünk teljesül. Ellen®rizni kell még, hogy
7·5
√2 + 5
√2 ≈28>25.
A megengedettségi feltétel megint nem teljesül, így a feladatnak ebb®l az esetéb®l sem jön ki optimális megoldás.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa komplementaritás használatára (folyt.)
4 Végül az utolsó esetben négy ismeretlenünk és négy egyenletünk lesz:
y−2λ1x−7λ2=0 x−2λ1y−λ2=0 x2+y2=25
7x+y =25.
A negyedikb®l adódik, hogy y=25−7x. Ezt a harmadik egyenletbe behelyettesítve kapjuk, hogy
x2+ (25−7x)2=25 50x2−350x+600=0
x2−7x+12=0 x1,2=7±√
49−48
2 =
(4 3.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa komplementaritás használatára (folyt.)
Az eredményt a harmadik egyenletbe visszahelyettesítve kapjuk, hogy ha x =4, akkor y=25−7·4=−3, ami nem megendett megoldás. Hasonlóan, ha x =3, akkor
y =25−7·3=4.
A kapott eredményt helyettesítsük vissza az els® két egyenletbe. Így a következ® rendszert kapjuk
4−6λ1−7λ2=0 3−8λ1−λ2=0.
A második egyenlet hétszeresét vonjuk ki az els® egyenletb®l, így kapjuk, hogy
−50λ1=−17 λ1=17
50 =0,34.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
Példa komplementaritás használatára (folyt.)
Visszahelyettesítéssel kapjuk, hogy λ2=0,28.
Mivelλ1>0 ésλ2>0, ezért ez a eset kielégíti a Kun-Tucker-tétel feltételeit, tehát optimális megoldást találtunk.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
A Kun-Tucker-tétel speciális esetei
A következ®kben azt mutatjuk meg, hogy a Kun-Tucker-tétel valójában nem más, mint több korábban tanult feltételes optimalizáláshoz kapcsolodó eredmény általánosítása.
1 Legyen adva egy konvex optimalizálási feladat, és tegyük fel, hogy az optimimum a megengedett megoldások egyik bels®
pontja. Ekkor a komplemetaritási kritérium értelmében λj =0 minden j-re. Ekkor viszont a stacionaritási kritérium alapján ez azt jelenti, hogy ez a pont a célfüggvényem egy stacionárius pontja.
2 Az egyenl®ségi kritériumoknál tanultak is tekinthet®k a Kun-Tucker-tétel egy speciális eseténk. Ennek szemléltetésére nézzünk egy olyan példát, ahol egy darab egyenl®ségi korlát mellett szeretnénk maximalizálni egy célfüggvényt. Ekkor a feladat a következ® alakú lesz
min f(x) g(x) =0
) CP.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
A Kun-Tucker-tétel speciális esetei (folyt.)
A szokásos trükkel ez átírható egyenl®tlenséges formába min f(x)
g(x)≤0
−g(x)≤0
CP0.
A Kun-Tucker-tétel értelmében az optimalitás kritériuma, hogy létezzenek olyan λ1, λ2≥0 számok melyre
g(x)≤0
−g(x)≤0
∂f(x)
∂xi −λ1∂g(x)
∂xi +λ2∂g(x)
∂xi =
= ∂f(x)
∂xi −(λ2−λ1)∂g(x)
∂xi =0, (i=1,2, . . . ,m), haλ1=0⇒g(x)<0,
haλ2=0⇒g(x)>0.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
A Kun-Tucker-tétel speciális esetei (folyt.)
Az els® két egyenl®tlenségb®l következik, hogy g(x) =0.
Ebb®l az is következik, hogyλ16=, λ26=0. A stacionaritási kritérium esetén aλ=λ2−λ1 változó lesz az el®jelkötetlen Lagrange-szorzó.
(Igazából a levezetés csak akkor helyes, ha g(x)lineáris függvény, mert ekkor lesz g(x)és−g(x)is konvex.)
3 Mivel a lineáris függvények egyszerre konvexek és konkávok is, ezért egy lineáris programozási feladatra is felírható a Kun-Tucker-tétel. Ekkor a komplementaritási kritérium éppen a lineáris programozás komplementaritását fogja visszaadni.
13. hét Lovics
Alapfogalmak, egyenl®ségi kritériumok Konvex programozás
ELTE TáTK Közgazdaságtudományi Tanszék
Köszönjük, hogy használta tananyagunkat!
Bármilyen kérdést, megjegyzést örömmel várunk az
eltecon.hu
honlapon feltüntetett címekre