GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN
Készült a TÁMOP-4.1.2-08/2/a/KMR-2009-0041 pályázati projekt keretében Tartalomfejlesztés az ELTE TáTK Közgazdaságtudományi Tanszékén
az ELTE Közgazdaságtudományi Tanszék az MTA Közgazdaságtudományi Intézet
és a Balassi Kiadó közrem¶ködésével
Készítette: Lovics Gábor Szakmai felel®s: Lovics Gábor
2010. június
ELTE TáTK Közgazdaságtudományi Tanszék
Gazdaságmatematika középhaladó szinten
13. hét
Nem lineáris programozás
Lovics Gábor
Alapfogalmak, egyenl®ségi kritériumok
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:
minf(x) x∈S
) P,
aholf(x)tetsz®legesRn→Rfüggvény ésS⊆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.
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:
maxf(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).
Az els®rend¶ kritériumok ebben az esetben:
f10(x)−λ1g10(1)(x)−λ2g0(2)1 (x)− · · · −λkg0(k)1 (x) = 0 f20(x)−λ1g20(1)(x)−λ2g0(2)2 (x)− · · · −λkg0(k)2 (x) = 0
...
fn0(x)−λ1gn0(1)(x)−λ2g0(2)n (x)− · · · −λkg0(k)n (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álto- zók. Ekkor ugyanis ezek a változók fogják az árnyékárakat megmutatni.
Példa
Oldjuk meg a következ® feltételes optimalizálási feladatot:
minx2+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.
Az els® egyenletet átrendezve kapjuk, hogyλ=−x. Ezt a másodikba visszaírva arra jutunk, hogyx= 2y. Ezt a harmadikba helyetesítve kapjuk, hogyy= 2x. Visszahelyetesítve ezt a korábbi egyenletekbe láthatjuk, hogyx= 4,λ=−4.
Az ábráról leolvasható, hogy valóban a minimalizálási feladatot oldottuk meg.
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
minf(x) x∈S
) CP,
ahol f(x) S → R konvex 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.
1. Tétel
Legyeng(x)Rn→Rkonvex függvény, ésc∈Rtetsz®leges. Ekkor azS ={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. Legyenekf(x), g(1)(x), g(2)(x), . . ., g(k)(x)Rn →Rfolytonosan deriválható konvex függvények. Egy egyenl®tlenségi kritériumokkal felírt felté- teles optimalizálási probléma általános alakja:
minf(x) g(1)(x)≤0 g(2)(x)≤0
...
g(k)(x)≤0
CP.
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 meg- oldá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. 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.
Komplementaritás konvex esetben
2. 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(x∂xi∗)−Pm
j=1λj∂g(j)(x∗)
∂xi = 0 (i= 1,2, . . . , n);
• (komplementaritási kritérium), haλj = 0, akkorg(j)(x∗)<0 (j= 1,2, . . . , m).
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.
Példa komplementaritás használatára
Nézzük meg a következ® konvex programozási feladatot:
maxxy 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. 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≥0szá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/.
Ennek a rendszernek a megoldását úgy kereshetjük meg, hogy az els® két egyenletet négyféle egyenletrend- szerrel é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®t- lensé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.
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ánx=λ2. Ezt az els® egyenletbe visszahelyettesítve kapjuk, hogyy= 7x. Ezt a harmadikba beírva láthatjuk, hogyx= 2514 ≈1,79. Visszahelyettesítéssel kapjuk, hogyy=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>25megsérti a megengedettségi feltételt, így az els® esetb®l nem jött ki a feltételeknek megfelel® megoldás.
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. Helyettesítsük azx=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.
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, hogyy= 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.
Az eredményt a harmadik egyenletbe visszahelyettesítve kapjuk, hogy hax= 4, akkory= 25−7·4 =
−3, ami nem megendett megoldás. Hasonlóan, hax= 3, akkory= 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.
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.
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 mindenj-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. En- nek 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
minf(x) g(x) = 0 )
CP.
A szokásos trükkel ez átírható egyenl®tlenséges formába minf(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.
Az els® két egyenl®tlenségb®l következik, hogyg(x) = 0. Ebb®l az is következik, hogyλ16=, λ26= 0. A stacionaritási kritérium esetén aλ=λ2−λ1változó lesz az el®jelkötetlen Lagrange-szorzó. (Igazából a levezetés csak akkor helyes, hag(x)lineáris függvény, mert ekkor leszg(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.