• Nem Talált Eredményt

6. SRA a sztochasztikus programozásban 99

6.2. A STABIL modell numerikus megoldása

6.2.4. Numerikus megfontolások

Egy ilyen (6.8) alakú qk(x) függvény által megadott {x | qk(x) ≥ p} megengedettségi tartomány konvexitását akkor érhetjük el, ha feltesszük, hogy a kvadratikus függvényben szereplőDk mátrix szimmetrikus és pozitív definit.

A mátrix szimmetrikussága minden további nélkül biztosítható azzal, hogy csak a fő-diagonális és a felette (vagy alatta) lévő elemek kiszámítását végezzük el, majd tükrözzük a kapott értékeket a fődiagonálisra.

A pozitív definitséget nem ellenőrizzük és nem is tudjuk biztosítani az algoritmus folyamán. A gyakorlati számításokban a pozitív definitséget azzal érjük el, hogy az opti-mumtól „messze” lévő pontokat is beveszünk a kezdeti Sk halmazba, illetőleg hagyjuk az algoritmust, hogy önjavítólag korrigálja a függvényt. Ezeknek a „messze” lévő pontoknak a

tapasztalatok alapján elég volt olyan pontokat használni, amelyek esetén a|G(x)−p|>0.1 volt.

Egy másik – a számítógépes algoritmusban használt – eljárás a „messzi” pontok au-tomatikus meghatározására az lehet, hogy a megoldások minden komponensére előírunk egy elég nagy alsó és felső korlátot KL ≤ |x|i ≤ KU, i = 1, . . . , n. Ha a számítások folyamán a Dk mátrix nem pozitív definit (vagy a megfelelő mátrix invertálása nem sik-erül), akkor is tovább folytatjuk az iteráció számításait. A közelítő feladat még mindig adni fog valamilyen „megoldást”, amely megengedett megoldás lesz a determinisztikus feltételekre, de valószínűleg nem megengedett a valószínűségi feltételre. Ez a „megoldás”

nyilván nem optimális és legalább néhány komponensében egyenlő lesz a KL vagy KU

korláttal. Ha ezt a „messze” lévő „megoldást” (és az ezen felvett függvényértéket) hoz-záadjuk azSk halmazhoz, akkor ez javítja az ezek után kiszámításra kerülő Dk mátrixok pozitív definitségét – tehát stabilizálja aqk(·)kvadratikus kifejezést. A gyakorlati számítá-sokban ilyen „megoldások” nagyon ritkán fordulnak elő egy n ≤ 10 dimenziós közelítés-ben, mindössze néhányszor, az első 100-300 iterációban, az utána következő 10000 vagy még több iterációban a qk(·) stabilnak mutatkozott és nem fordult elő, hogy nem pozitív definit volt a mátrix az általunk vizsgált numerikus feladatokban. A nagyobb méretű feladatoknál ez sokkal gyakoribb volt, de a fentebbiekben leírt „megoldások” használata továbbra is eredményes volt.

Az algoritmus 3. lépésében szereplő „elég jó” kifejezés többféleképpen is értelmezhető (az SRA algoritmus más feladatokra vonatkozó alkalmazásaiban is fennállnak az aláb-biak). Az erre vonatkozó lehetőségek közül csak néhányat említünk. Az egyik megállási kritérium az lehet, hogy az xk pontban meghatározzuk a G(x) függvény zajos gradien-sét és ha ez egy adottε tolerancia-határon belül merőleges az aktív feltételek halmazára (az érintő síkjukra), akkor megállhatunk. Használhatók bonyolultabb megállási kritéri-umok is, például a Shapiro és Homem-de-Mello [SH 98] által megadott megállási szabá-lyok, vagy a Mak, Morton és Wood által megfogalmazott, optimum-közeliségre vonatkozó statisztikai tesztek [MMW 99]. A 6.2, 6.3, 6.4 és 6.6 szakaszban megadott számítógépes futásaink alkalmával egy rögzített iterációszámot adtunk meg, a 6.7 szakasz nagyméretű feladatai esetén egy heurisztikus megállási szabályt alkalmaztunk, amely eredményét a Mak-Morton-Wood cikkben [MMW 99] található konfidenciaintervallum megalkotásával is minősítettük (a részletes leírást lásd ott).

Lehetőség van arra, hogy a megoldások pontosságára vonatkozó (később részletesen kifejtendő) sejtésünk alapján írjunk elő a pontosságra egy korlátot. A kis és közepes méretű feladatainkra vonatkozó számítógépes futásainkban egyszerűen megadtunk egy rögzített egész értéket az iterációk (előállított pontok) számára.

A számításainkban szereplő mennyiségeknek a felfrissítésére a közepes vagy annál kisebb méretű feladatokra a közvetlen eljárást alkalmaztuk a 6.2 – 6.6 szakaszokban.

A (6.14) egyenletben szereplő átlagok helyett természetesen a

X

értékeket tároltuk, a felfrissítés végrehajtásához ezekhez csak az új xk, pk értékekből számított tagokat kellett hozzáadni és (k + 1)-gyel mindegyiket elosztani ahhoz, hogy a (6.13) egyenletrendszer együtthatóit megkapjuk, kisméretű példáinkban a sebesség nem volt fontos.

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

Az ebben a fejezetben megadott számítógépes eredményeket (a 6.6 és 6.7 részben leírt futási eredmények kivételével) ugyanazon számítógépes környezetben értük el. Egy szemé-lyi számítógépet használtunk, amelynek 133 Mhz-es processzora volt, belső memóriája 64 MB RAM. A közelítő feladatokban fellépő lineáris és kvadratikus optimalizálási fe-ladatokat a standard MINOS programcsomag segítségével oldottuk meg, a feladatok megadásánál a teljes formátumot használtuk, vagyis nem használtuk ki a ritka mátrixokra vonatkozó opciókat. A lineáris programozási feladatoknál a „HOT” opciót használtuk, mivel sokszor majdnem azonos feladatokat kellett megoldani – változó jobboldali vektor esetén.

ahol β1, β2 normális eloszlású valószínűségi változók, várható értékük 0, szórásuk 1, korrelációs együtthatójuk%, a példa a [De 72] cikkből származik.

Különböző számítógépes futások eredményeit adjuk meg a 6.1 táblázatban. Az első oszlop az iterációk számát adja, a második a használt módszer, a harmadik a kapottxST O optimális megoldást, a negyedik az optimális célfüggvényértéket tartalmazza. A σP = σ1/√

k alatti oszlop adja a sejtés alapján a P{·} valószínűségi korlát értékének szórását, az utolsó oszlop pedig a valószínűségi korlátban szereplőP{·}valószínűség „pontos” értékét tartalmazza – ezt a „pontos” értéket úgy kaptuk, hogy a függvénykiszámítási eljárást az

utolsó pontban megismételtük megnövelt mintaszámmal, vagyis az ebben az oszlopban található valószínűségek becslések, melyek szórása 0.0002 volt.

Az első sorban a Szántai által kifejlesztett sztochasztikus programozási programcso-mag által adott eredményt közöljük, a második sor azt az eredményt mutatja, amelyet azSRAalgoritmus ért el determinisztikus eloszlásfüggvényértékek esetén (a valószínűségi korlát most egy kétdimenziós normális eloszlásfüggvény, amelynek értékeit egy sorbafe-jtéssel pontosan meg lehet határozni). A Szántai-féle és az SRAdet által adott optimális megoldásokon a célfüggvényértékek különbsége∆=2.9140-2.8992=0.015; ez azSRA algo-ritmusnak, mint nemlineáris optimalizálási algoritmusnak az 1000 iteráció utáni hibáját mutatja (determinisztikus függvényértékek esetén). A 6.1 táblázat második részében az SRAáltal adott eredményeket találjuk különböző k iterációs számra.

A 6.2 táblázatban változó pvalószínűségek és korrelációs együtthatók eseteire kapott eredményeket közlünk. Egy zajos függvényérték kiszámításának szórása itt is σ1 = 0.01 volt, az iterációk számátk = 50-nek vettük. Vegyük észre, hogy az utolsó oszlopban lévő valószínűségek tényleges eltérése ap korláttól nagyon közel van a 3σP = 0.0045 értékhez.

Megfogalmazzuk sejtésünket. Az egész eljárás folyamán a valószínűségi korlátban sz-ereplő P{·} értékét egy Monte Carlo eljárással számítottuk (az egyszerűség kedvéért a durva módszert használtuk), amely egy függvényérték becslést σ1 = 0.01 szórással állí-tott elő. Sejtésünk az, hogy a k iterációs lépés után kapott xk pontban a G(xk) pontos függvény érték és a p korlát értéke közötti eltérés (vagyis a tényleges hiba) körülbelül 3σP = 3σ1/√

k nagyságú. Tekintsük például az utolsó sorban adott eredményeket. Itt a tényleges hiba |G(xk)−p| ≤ 3σP = 0.0012 nagyságú lehet, ami a táblázatban talál-ható 0.0025 eltéréshez igen közel van, annak ellenére, hogy az egy függvénykiszámításban várható hiba 3σ1 = 0.03lenne.

Más szóval a numerikus eredmények alapján azt tapasztaltuk, hogy k lépés után ma-jdnem mindig fennáll az |G(xk) − p| ≤ 3σP egyenlőtlenség a σP = σ1/√

k jelöléssel.

Némileg leegyszerűsítve azt az állítást mondhatjuk ki, hogy a végső eredmény szórásaσP. Ezt a sejtést az optimális szóráscsökkenés sejtésének nevezzük – ugyanis ez a legjobb, amit statisztikai mintavételezéssel elérhetünk (ha az iteratív eljárásban előállított minden pont ugyanott lenne, az xk pontban, akkor kapnánk ezt a szóráscsökkenést, pedig ezek a pontok nem azonosak).

Mint majd látni fogjuk, ez a sejtés fennáll az SRA más alkalmazásainál is, nagy-obb iterációszámnál jnagy-obban látható ennek a sejtésnek a teljesülése. Jól látható ennek a sejtésnek a helyessége a 6.2 táblázatban közölt eredmények esetében is.