• Nem Talált Eredményt

Az SRA algoritmus a kétlépcsős feladatra

6. SRA a sztochasztikus programozásban 99

6.3. A kétlépcsős feladat megoldó algoritmusa

6.3.2. Az SRA algoritmus a kétlépcsős feladatra

A várható pótlás függvényében szereplő várható értéket nehéz kiszámítani. De egy tet-szőleges x pont és a ξ valószínűségi változó tetszőleges ξi realizációja esetén ki lehet számítani aqi függvényértéket, amely a következő feladat optimális célfüggvényértéke:

qi =Q(x,ξi) = minyq0y f.h. Tx+Wy = ξi,

y ≥ 0.

Itt aqi érték a Q(x) függvény egy zajos becslésének tekinthető, mivel Eqi =Q(x). A qi függvényérték D2(qi) = σ2(x) szórásnégyzete függ az x ponttól, de a valószínűséggel korlátozott modell kapcsán leírtakhoz hasonlóan feltehetjük, hogy ez a szórás független azx-től, D2(qi) =σ2 a továbbiakban.

Ezek szerint a következő Monte Carlo eljárás adható a várható pótlás Q(x) füg-gvényértékének a meghatározására. Legyenxiadott és generáljuk aξvalószínűségi változó ξij, j = 1, . . . , M független realizációit. Határozzuk meg a

qi = 1 M

M

X

j=1

Q(xiij)

értéket, amely Q(xi) függvényérték egy torzítatlan becslése. Ez az eljárás lehetőséget ad arra, hogy egy adott {xi}k−1i=0 ponthalmaz esetén kiszámítsuk az ezekhez a pontokhoz tartozó zajos qi függvényértékeket. Így feltehetjük, hogy az SRA algoritmus megkezdése előtt a rendelkezésünkre áll az Sk = {xi, qi}k−1i=0 pont-függvényérték halmaz. A nehezen meghatározhatóQ(x) függvényt azon

qk(x) = x0Dkx+b0kx+ck (6.17) alakú kvadratikus függvénnyel közelítjük, amely a

min

Dk,bk,ck

k−1

X

i=0

[qi−qk(xi)]2. (6.18) optimalizálási feladat megoldása Az SRAalgoritmus formális leírása a következő:

Az SRA algoritmus – kétlépcsős feladatra

0. [Előkészítés.] Legyen adott az Sk={xi, qi}k−1i=0 halmaz és legyen a k iterációs számláló az adott pontok száma.

1. Számítsuk ki a qk(x) függvény Dk,bk, ck együtthatóit az Sk-ból.

2. Helyettesítsük az eredeti (6.16) feladatot a

minx c0x+qk(x),

Ax≤b, (6.19)

x≥0,

közelítő feladattal és jelöljük egy optimális megoldását xk-val.

3. Ha xk „elég jó”, akkor STOP. Egyébként számítsuk ki a qk∼Q(xk) zajos függvényértéket, az új xk pontot és a qk értéket csatoljuk az Sk halmazhoz: legyen Sk+1 =Sk∪ {xk, qk}, növeljük meg az iterációs számlálót k :=k+ 1 és menjünk vissza az 1. lépésre.

A megállási szabály, a Dk mátrix pozitív definitsége, a legkisebb négyzetek módsz-erének alkalmazhatósága, a felfrissítési szabályok tekintetében teljesen ugyanúgy járunk el, mint azt a valószínűségi korlátos modellek esetén már leírtuk.

6.3.3. Számítógépes eredmények

Az itt közölt numerikus példát [De 02] Mayer állította elő, az általa és Kall által kife-jlesztett SLP-IOR [May 92], [May 98] programcsomag segítségével. A feladatot Mayer diszkretizálta: 319 és 522 lehetséges értéket vehettek fel a valószínűségi változók. Az így diszkretizált feladatokon elért eredményeket a következő táblázat első két sora tartal-mazza. A feladatot kis mérete ellenére viszonylag nehéz megoldani, amit az is mutat, hogy egy véletlen realizáció esetén a várható pótlás becslésénekD2[Q((xk,ξ)]∼152 a szórásné-gyzete, haxk közel van az optimális megoldáshoz. (A 6.7 szakaszban bevezetett nehézségi fok ezen példa esetén 3D[Q((xk,ξ)]/f(xk) = 1.7 volt – a függvényérték kiszámításának hibája a függvény értékével egyező nagyságrendű volt.) A számítógépes futások egyéb részleteit és további numerikus példákat az SRA működésére a [De 02] cikkben lehet megtalálni, köztük egy véletlen elemekkel rendelkezőT mátrixot tartalmazó feladatot is.

A numerikus példa a következő:

min (9.0x1 +8.1x2 +E(3.6y1 +7.4y2 +6.9y3))

f.h. 2.5x1 +1.6x2 ≥ 1.8

9.4x1 +9.0x2 ≥ 8.0

6.0x1 −9.2x2 −0.9y1 −0.7y2 +1.7y3 = ξ1

−6.3x1 −1.2x2 +3.9y1 +9.0y2 −13.0y3 = ξ2 x1, x2, y1, y2, y3 ≥ 0

x c0x+E(q0y) ”pontos” M = k= discr319 (0.9655, 0.0) 26.9805

discr522 (0.9621, 0.0) 26.9847

SRA1 (1.0286,0.0) 28.14(±1.41) 27.39(±0.57) 100 100 SRA2 (0.9199,0.0) 26.94(±0.68) 27.27(±0.06) 400 100 SRA3 (0.9663,0.0) 26.44(±0.53) 27.01(±0.13) 500 500 SRA4 (0.9892,0.0) 26.92(±0.43) 26.95(±0.14) 900 400 SRA5 (0.9291,0.0) 27.60(±0.32) 27.14(±0.06) 400 1000 SRA6 (0.9412,0.0) 27.44(±1.35) 26.93(±0.14) 100 8000

6.3. táblázat. Két-lépcsős feladat: Mayer eredményei és az SRA eredményei különböző mintaszám és iterációs számok esetén.

Az első két egyenlőtlenség tartalmazza az első lépcsős feladatot, a harmadik és a negyedik egyenlőtlenség pedig a második lépcső feladatát adja meg. Vegyük észre, hogy a feladat teljes pótlású. A véletlen jobboldali (ξ1, ξ2) valószínűségi változók együttes eloszlása normális, (ξ1, ξ2) ∈ N((5.8,−8.7),Σ), ahol Σ1,1 = D21) = 1,Σ2,2 = D22) = 1,Σ1,2 =Corr(ξ1ξ2) = 0.9.

A 6.3 táblázatban adjuk meg a Mayer által két különböző diszkretizálás esetén kapott eredményeket és az SRA algoritmus által, különböző iterációs számokra, illetőleg külön-böző mintaszámra kapott eredményeket. AzSRAalgoritmusban a várható pótlás értékét egyM mintaszámot használó durva Monte Carlo módszer segítségével számítottuk ki.

A táblázat első oszlopában a használt módszert tüntettük fel, azxoszlopban akszámú iteráció elvégzése után kapott optimális megoldást adtuk meg, ac0x+E(q0y)feladat alatt az első lépcsős feladat célfüggvényének értéke van az utolsó x pontban. A „pontos” os-zlop tartalmazza a megnövelt mintaszámmal újraszámított célfüggvényértéket (itt 100000 véletlen mintát használtunk), a számadatok mellett álló (±1.41) alakú kifejezések azt mu-tatják, hogy az adott függvényérték kiszámolt értékének mekkora a szórása. Egy (várható pótlás) függvényérték kiszámításáhozM mintát használtunk, ésk az iterációk száma.

A 6.4 táblázatban egyetlen számítógépes futás rész-eredményeit közöljük. Itt xk a k-adik iterációban kapott közelítő eredmény,c0xk+E(q0y)az aktuális célfüggvény értéke, valamint a „pontos” (újraszámított) eredmény található, az M mintaszámmal. Végül az x oszlopában a súlypont aktuális értékét adjuk meg (ez lényegesen lassabban konvergál, de nagy ingadozásoktól mentes).

A 6.4 táblázatban megadott eredmények ismételten szemléltetik a valószínűségi ko-rlátos feladat numerikus eredményeinél leírt sejtésünket: a k-adik iteráció után kapott tényleges hiba kisebb mint 3σQ = 3σ1/√

k, hiszen most σ1 = 1.41, k = 40000,3σQ = 3·0.007 = 0.02. A tényleges hibát pedig a következőképpen határozhatjuk meg: jelölje xopt az optimális megoldást, f(xopt)a tényleges optimumot, c0xk+E(q0y) a közelítő

op-x c0xk+E(q0y) ”pontos” x disz319 (0.9655, 0.0) 26.9805

disz522 (0.9621, 0.0) 26.9847

k = 1 (1.1479, 0.0) 34.79(±1.41) 32.53(±0.14) (1.056,-0.11) k = 10 (1.0867, 0.0) 29.81(±1.41) 29.67(±0.14) (1.095,-0.05) k= 100 (1.0439, 0.0) 29.40(±1.41) 28.26(±0.14) (1.063,-0.01) k = 1000 (1.0188, 0.0) 29.95(±1.41) 27.68(±0.14) (1.029, 0.00) k = 4000 (1.0042, 0.0) 29.44(±1.41) 27.43(±0.14) (1.015, 0.00) k = 10000 (0.9842, 0.0) 26.93(±1.41) 27.19(±0.14) (1.003, 0.00) k = 40000 (0.9615, 0.0) 27.59(±1.41) 27.09(±0.14) (0.975, 0.00)

6.4. táblázat. Kétlépcsős feladat: az SRA algoritmus egy futás k-adik lépésében kapott eredményei, M = 100, σ1 = 1.41. A „pontos” függvényérték az utolsó pontban 26.92(±0.02).

timális célfüggvényérték σa szórású becslését, akkor az elméleti minimum és az általunk adott közelítésen felvett célfüggvényérték eltérése a

|f(xopt)−[c0xk+E(q0y)]| ≤3σa+ 3σQ = 3·0.02 + 0.02 = 0.08

egyenlőtlenségnek kell teljesülnie – ami láthatóan fennáll. Jegyezzük meg, hogy ez úgy következett be, hogy csak σ1 = 1.41szórású függvényértékeket tudtunk számolni, tehát a hiba 4.2 nagyságú is lehetne.

A fentebbi numerikus feladat megoldása M = 100mintaszámmal és k = 100 iterációs számmal egy 133 MHz-es személyi számítógépen mintegy 30 másodpercig tartott.

A kvadratikusqk(·)közelítés paraméterei az első 500 iteráció után a következők voltak:

D= 49.12 −59.86

−59.86 144.72

!

, b= −100.3 139.0

!

, c= 70.38

Az első lépcső (9.0,8.4) költségvektorát ehhez hozzáadva a közelítő célfüggvénygk(x) = c0x+qk(x), amelynek a (nemnegatívitási feltételek figyelmen kívül hagyásával kapott) minimum pontja axmin = (0.624,−0.250)pontban van, a közelítő célfüggvényérték pedig gk(xmin) = 23.5.

Az algoritmussal nehézség nélkül lehet kezelni azt az esetet is, amikor a második lépcsőben szereplő T mátrixban valószínűségi változók vannak. Megváltoztatjuk az előző numerikus példát úgy, hogy a T mátrix elemeihez nulla várható értékű valószínűségi vál-tozókat adunk hozzá. Tegyük fel, hogyu1, u2 független, a[0,1]intervallumban egyenletes eloszlású valószínűségi változók, a randomizált Te mátrix álljon a következő elemekből:

x c0x+E(q0y) ”pontos” M = iter.szám SRA1 (1.0188,0.0) 29.09(±1.66) 32.07(±0.14) 100 400 SRA2 (0.9355,0.0) 26.03(±1.33) 28.11(±0.14) 100 400

6.5. táblázat. Kétlépcsős feladat véletlen Te mátrixszal, különböző kiindulási halmazok esetén.

u1, u2 ∈ U(0,1),

˜t1,1 =t1,1+u1+u2 −1, ˜t1,2 =t1,2+u2−0.5 t˜2,1 =t2,1+u2−u1, ˜t2,2 =t2,2+u1−0.5

Eredményeinket a mellékelt 6.5 táblázatban foglaljuk össze.

A következő numerikus példát a Kall és Wallace által írt könyvből vettük [KW 94]. A feladat megadásában az első feltétel az elsőlépcsős feladat, míg a második két sor alkotja a második lépcsős pótlási feladatot.

min(2x1 + 3x2 +E(7y1 +12y2)

f.h. x1 + x2 ≤ 100

(2 +η1)x1 + 6x2 +y1 ≥ 180 +ζ1 3x1 + (3.4−η2)x2 +y2 ≥ 162 +ζ2,

Itt a ζ1, ζ2 egy-egy csonkolt normális eloszlást követnek, η1 egyenletes eloszlású, η2 pedig egy csonkolt exponenciális eloszlású valószínűségi változó

ζ1 ∈N(0,12), ζ1 ∈[−30.91,+30.91], ζ2 ∈N(0,9), ζ1 ∈[−23.18,+23.18], η1 ∈U(−0.8,+0.8), η1 ∈[−0.8,+0.8],

η2 ∈Exp(λ= 2.5), η2 ∈(0.0,1.84).

A publikált legáltalánosabb változat az, amikor az összes valószínűségi változó szerepel, és 5×9×7×11 = 3465 diszkretizálást használtak a szerzők a η1, η2, ζ1, ζ2 valószínűségi változókra. Az általuk adott optimális megoldástxD-vel jelöljük, és a diszkretizált feladat első lépcsős költségétf(xD) adja:

xD = (37.754,23.629), f(xD) = 150.446, ff irst(xD) = 146.396.

Az SRAalgoritmus által elért eredményeinket a 6.6 Táblázatban adjuk meg.

x c0x+E(q0y) ”pontos” M = iter.szám discr3465 (37.75, 23.63) 150.446 151.06(± 0.12)

SRA (37.73, 27.10) 159.3(± 2.0) 157.6(±0.7) 100 100 SRA (42.17, 26.10) 164.0(±0.4) 163.5(±0.1) 100 100 SRA (37.68, 24.88) 150.6(±0.4) 152.5(±0.2) 400 100 SRA (37.73, 27.10) 149.7(±1.6) 151.8(±0.2) 100 400

6.6. táblázat. Az SRA eredményei a Kall-Wallace példára, különböző mintaszámokra, kezdeti halmazokra és iteráció-számra.

A megadott xD optimális megoldást ellenőriztük azzal, hogy kiszámítottuk ezen a helyen a költségfüggvényt, amelyben a következő numerikus értéket kaptuk:

f(x˜ D) = 151.06(±0.12) = 146.40 + 4.66(±0.12).

A |f˜(xD)−f(xD)|= 0.61 különbség a diszkretizálás hibáját mutatja, hiszen ez szig-nifikánsan nagyobb, mint az eredményünk 0.12 nagyságú szórása (illetőleg ennek három-szorosa.

6.4. Vegyes feladat: kétlépcsős feladat valószínűségi