• Nem Talált Eredményt

3. Halmazok valószínűsége 29

3.3. Egyszerű konvex halmazok

Az előző szakaszból látható, hogy egy, az X halmaz valószínűségének meghatározására a gyakorlatban használható algoritmus előállítható akkor, ha rendelkezésünkre áll a λL, λU

értékek meghatározását elvégző „ jó” eljárás, vagyis viszonylag egyszerű lépésekből álló, gyorsan kiszámítható eljárás. Ebben a részben ilyen algoritmusokat adunk meg néhány egyszerű konvex halmazra: lineáris egyenlőtlenségekkel meghatározott poliéder, hiperel-lipszoid és körkúp esetén. De nemcsak konvex halmazokra alkalmazható az általános elgondolás; például csillag alakú halmazok ([Loh 93]), vagy invertálható függvények segít-ségével megadott határokkal rendelkező halmazok valószínűsége szintén kiszámítható.

Nem-konvex halmazok valószínűsége is meghatározható, ha egy egyenesnek az X hal-mazba eső részéhez tartozó valószínűségi tartalom megadható (ha például az X halmaz X = Q1 ∪Q2, Q1 ∩Q2 = ∅ formában dekomponálható, ahol Q1, Q2 a fentebb felsorolt konvex halmazok valamelyike).

A H = {x| x≤ h} halmaz valószínűségének meghatározásához (az eloszlásfüggvény értékének kiszámításához) a szükséges részleteket [De 80a] tartalmazza, a Q = {x| a ≤ x ≤ b} téglatesttel foglalkoztunk a [De 86b] cikkben. Az alábbiakban megmutatjuk, hogyan lehet λL, λU értékeket kiszámítani általános poliéder, hiperellipszoid és körkúp esetén.

3.3.1. Konvex poliéderek

Tekintsük véges számú lineáris egyenlőtlenség által adott félterek közös részét, vagyis tegyük fel, hogy a poliédert

X ={x|Ax≤b} (3.17)

határozza meg, valamilyen adottA,besetén. Feltesszük, hogyX nem üres és nem elfajult (van a halmaznak belső pontja). Ennek megfelelően egy adottzvektorra a keresettλL, λU értékek úgy adhatók meg, mint a következő szélsőértékek értékei:

λL= min {λ|A(λz)≤b}, (3.18)

λU = max {λ|A(λz)≤b},

ha a λz egyenes elmetszi az X halmazt. Vezessük be a d = Az jelölést és egyszerűség kedvéért ad vektor zéró komponenseit helyettesítsük azε ∼10−10 értékkel. Definiáljunk két indexhalmazt, legyen I+ = {i | di > 0, i = 1, . . . , n}, I = {i | di < 0, i = 1, . . . , n}.

Ekkor a megfelelő szélsőértékek:

λL= max{bi/di |i∈I}, (3.19) λU = min{bi/di |i∈I+}.

Ha a λAz ≤b feladatnak nincs megengedett megoldása (vagyis λL > λU), akkor legyen λLU = 0.

A d = Az vektorok meghatározásánál – elkerülendő a mátrixszorzásokat minden z esetén – a következő módosítást kell alkalmazni a végső algoritmusban. Az vektort mint két U-beli vektor vi,j,s = 1

2(s1ui+s2uj) összegének transzformáltját kapjuk. Ezért a z=Tv=Tvi,j,s= 1

2(s1Tui+s2Tuj), tehát azAzszorzat meghatározásához definiáljuk a B =AT mátrixot és ezzel kapjuk a di,j,s =Azi,j,s = 12(s1Bui +s2Buj)egyenlőséget.

Így amikor egy U rendszert generálunk, akkor azonnal kiszámítjuk a ui = Bui/√ 2, i = 1, . . . , nvektorokat. Ezek után a di,j,svektorok meghatározása már csak azui =Bui/√

2 vektorok összeadását (kivonását) igényli (az összegnek az1/√

2 értékkel való normálását is a ui vektorokra végezzük, hogy a számítási időt csökkentsük). Ennek alapján megint csakndarabB =AT-vel való mátrixszorzásra van szükségünk aT és az Amátrixszokkal valón(n−1)mátrixszal való szorzás helyett (ami a durva becslés esetében szükséges lenne).

O2 algoritmus (poliéder, egy U rendszer esetén).

1. Generáljuk az U ={ui} rendszert és számítsuk ki az ui =Bui/√ 2, i= 1, . . . , n vektorokat.

2. Legyen Sum= 0.

3. Határozzuk meg az összes lehetséges d=di,j,s =s1ui+s2uj,

(i, j,s)∈J vektort és mindegyik d esetén végezzük el a következő lépést.

4. Kezdet (a valószínűségi tartalom e(d) függvényének meghatározása) a 3.2 szakaszban leírtakhoz hasonlóan járunk el

vége (az e(d) függvény kiszámításának).

5. Adjuk át a p=Sum/[2n(n−1)] értéket.

Ennek az általános poliéderre vonatkozó algoritmusnak speciális esete az, amikor a Φ(h) eloszlásfüggvény értékének kiszámítását, vagy egy téglatest valószínűségét akar-juk meghatározni. Természetesen a téglatestek valószínűségének (vagy eloszlásfüggvény értékének) meghatározására kifejlesztett eljárás valamivel gyorsabb, mint az itt leírt ál-talános módszer (lásd [De 86b], [De 98c]), hiszen a belépési és kilépési állandók egysz-erűbben számíthatók. Megjegyezzük még, hogy a fenti módon végezhető egy polihedrikus kúp esetén aλL, λU konstansok meghatározása is, hiszen az is a fenti formájú egyenlőtlen-ségekkel van megadva.

3.3.2. Hiperellipszoid

Tekintsünk egy B pozitív definit szimmetrikus mátrixot. Ekkor egy c középpontú, r sugarú nemdegeneráltn-dimenziósE ellipszoidot adhatunk meg a következő definícióval:

E ={x|(x−c)0B(x−c)≤r2}.

A λz egyenes akkor metszi el az E hiperellipszoidot, ha a (λz−c)0B(λz−c) = r2

egyenletnek két különbözőλ1, λ2 gyöke van. Ezeket a lehetséges gyököket az alábbi egyen-let megoldásával lehet megtalálni:

αλ2+βλ+γ = 0, (3.20)

ahol azα, β, γ együtthatókat az előző egyenletből lehet meghatározni:

α = z0Bz,

β = −2z0Bc, (3.21)

γ = c0Bc−r2.

Jelölje a kisebbik gyököt λL, a nagyobbik pedig legyen λU. Ha a 4(z0Bc)2 −4(c0Bc− r2)(z0Bz) < 0 egyenlőtlenség fennáll, akkor nincs megoldás, vagyis a λz egyenes nem metszi el a hiperellipszoidot. Egyetlen gyök létezése azt jelenti, hogy az egyenes csak érinti az E ellipszoidot.

Aγértékét csak egyszer kell kiszámítani. A szükséges számítások mennyiségét csökken-tendő nem közvetlenül számítjuk ki minden egyeszvektorra azα, β együtthatókat, hanem egy külön eljárást adunk. Az O2 becslésnek tetszőleges z vektorra való alkalmazása es-etén z = Tvi,j,s = 1

2(s1Tui+s2Tuj) egyenlőség áll fenn. A B mátrix felbontható egy TB felső háromszög mátrix segítségével B = TBTB0 alakban, ekkor a C = TB0 T jelölést bevezetve egy rögzítetti, j,s index hármasra kapjuk, hogy

z0Bz= 1

Azαegyütthatónak ez a formája az0Bzkifejezés kiszámításának a következő, számítástech-nikailag előnyös módját sugallja: előre számítsuk ki az ui = Cui, i = 1, . . . , n, rij = ui0uj, i, j = 1, . . . , n, i < j értékeket és utána a z0Rz mennyiséget egyszerűen skalárok összeadásával határozzuk meg:

α=z0Bz=s1s1rii+ 2s1s2rij +s2s2rjj.

A (3.20) másodfokú egyenlet lineáris tagjának β együtthatójára vonatkozóan pedig a következő kifejezést állíthatjuk elő: értéke szintén skalárok összeadásával kapható meg:

β =−2z0Bc=−2(s1d0ui+s2d0uj) =−2 s1ubi+s2buj .

A szükséges műveletek száma a következőképpen határozható meg: egy U rendszer (vagyis az O2 becslésben használt n(n −1) különböző egyenes) esetén a Cui értékek kiszámításához csak n darab mátrixszorzásra, az rij értékek kiszámításához n(n−1)/2 skalárszorzathoz, valamint az d0ui kiszámításához n darab skalárszorzatra van szükség – természetesen valamennyi összeadás és némi előkészítés is szükséges (például a d = T0Bc, C =TB0T értékek kiszámítása).

O2 algoritmus (hiperellipszoid, egy U rendszer).

0. Határozzuk meg a γ =c0Bc−r2 értéket.

1. Generáljuk az U ={ui} rendszert és számítsuk ki az ui =Cui,

i= 1, . . . , n, rij =ui0uj, i, j = 1, . . . , n, i≤j,ubi =d0ui, i= 1, . . . , n értékeket.

2. Legyen Sum= 0.

3. Határozzuk meg az összes lehetséges z=Tvi,j,s,(i, j,s)∈J vektort és mindegyik z vektorra végezzük el a következő lépést.

4. Kezdet (az e(z) függvény kiszámítása)

határozzuk meg az α, β együtthatókat, aztán a λL, λU értékeket, folytassuk a valószínűségi tartalom kiszámítását,

a 3.2 szakaszban leírt módon,

vége (az e(z) függvény értékének meghatározása)

5. Adjuk át az ellipszoid p=Sum/[2n(n−1)] valószínűségét.

3.3.3. Körkúp

Tekintsünk egyos középpontú ésr sugarú,n-dimenziós gömböt, ennek felszinét, valamint ennek egy hipersíkkal való metszetét, vagyis legyen

S ={x|(x−os)0(x−os) = r2, n0(x−os) = 0},

ahol n a gömb középpontján átmenő hipersík normálvektora. Jegyezzük meg, hogy S egy (n − 2)-dimenziós gömbfelület az Rn-ben. Egy általános C körkúpot, melynek csúcsa ac pontban van, és a felülete tartalmazza azS felületet úgy adhatunk meg, hogy a palástját a következő módon definiáljuk:

X ={y|y=µ(x−c) +c,x∈S, µ≥0}. (3.22) Egy adott, rögzített z vektor esetén a λz egyenesnek az X halmazzal való metszését a következőn+ 2 egyenlet adja meg:

µ(x−c) +c = λz, µ≥0,

n0(x−os) = 0, (3.23)

(x−os)0(x−os) = r2

Az első egyenletből kifejezzük azx= [λz−(1−µ)c]/µ vektort, a második sorból pedig a µ = [λn0z−n0c]/[n0os−n0c] értéket. Ezeket az utolsó sorba helyettesítve λ-ra egy másodfokú egyenletet kapunk:

αλ2+βλ+γ = 0, ahol (3.24)

α = [n0os−n0c]2z0z+ [c0c+os0os−2c0os−r2](n0z)2+ [2(n0os−n0c)](n0z)(c0z)−[2(n0os−n0c)](n0z)(os0z),

β = [2(n0c)r2+ 2(n0os+n0c)c0os−2(n0os)(c0c) + (n0c)(os0os)]n0z+ [−2(n0os−n0c)n0os]c0z+ [2(n0os−n0c)n0c]os0z,

γ = (n0os)2c0c+ (n0c)2os0os−2n0osn0c c0os−n0c n0cr2.

Jelölje a (3.24) egyenlet két megoldását λ1, λ2. Ekkor µ1 = [λ1n0z−n0c]/[n0os−n0c], µ2 = [λ2n0z−n0c]/[n0os−n0c].

Ha a (3.24) egyenletnek nincs megoldása, akkor az egyenesnek és az X halmaznak nincsen metszete. Ebben az esetben legyen λL = λU = 0. Ha két különböző λ1 és λ2 gyöke van az egyenletnek, akkor a sugár elmetszi a kúpot, de további elemzésre van szük-ség annak eldöntésére, hogy aλzegyenesnek melyik része van a kúpon belül. Nem szabad megfeledkezni arról, hogy minden gyök esetén ellenőrizzük aµ≥0nemnegatívitást is; ha egy adottλ1 gyök esetén például a megfelelőµ1 negatív, akkor aλ1zpont a kúp „negatív”

részén van, vagyis nincsen valódi metszet – a {λz, λ ∈ [λ2,∞]} félegyenes van a kúp-ban. A feladatban szereplő egyenes és a körkúp egymáshoz viszonyított elhelyezkedésétől (vagyis a λ1, λ2 gyökök értékeitől és a megfelelő µ1, µ2 értékek negatívitásától illetőleg

pozitívitásától) függően négy különböző esetet kell megkülönböztetnünk, ha az origó a kúpon belül van és tizenkét esetet, ha az origó a kúpon kívül van. Hasonlóképpen, ha az utolsó másodfokú egyenlet egy elsőfokúvá degenerálódik, amelynek csak egy λ0 gyöke van egy µ0 ≥ 0 értékkel, akkor a félegyenes a kúpban van és további vizsgálat szükséges annak eldöntéséhez, hogy(−∞, λ0] vagy pedig [λ0,∞) van a C kúpban.

A szükséges számítástechnikai munka mennyiségét csökkentjük a következő megfontolá-sok alapján. Az α, β, γ együtthatókban szereplő skalárszorzatokat három csoportba os-zthatjuk. Az első csoport tartalmazza azokat a szorzatokat, amelyek a konstans n,c,o vektorok szorzataként jelennek meg, ezeket csak egyszer kell meghatározni. A második csoportba tartoznak ac0z,n0z,o0zskalárszorzatok, a harmadik csoport pedig az0zszorzat – ezek a z vektortól függően változnak. Megmutatjuk, hogy az O2 becslés használata es-etén hogyan lehet a számítási munkát csökkenteni az0zszorzat esetén, valamint a második csoportból egy szorzat, a n0z kiszámítása esetén (a második csoport többi szorzata ha-sonlóképpen elintézhető).

Vezessünk be új jelöléseket, legyen ui = Tui és legyen zi,j,s = 1

2(s1Tui +s2Tuj) ekkor ubi = n0ui, i = 1, . . . , n, rij = ui0uj, i, j = 1, . . . , n. Ezekkel a jelölésekkel a két keresett skalárszorzat felírható mint skalárok összege: n0z = 1

2(s1bui +s2ubj) (ugyanezt kell végrehajtani a c0z,o0z szorzatokra is) és z0z=sisirii+ 2sisjrij +sjsjrjj.

Az előző részekben leírtakhoz hasonlóan a műveletek megfelelő csoportosításával és átrendezésével kaphatjuk a következő eljárást:

O2 algoritmus (körkúp, egy U rendszer).

0. Számítsuk ki a n0c,n0os,c0os,os0os,c0c szorzatokat.

1. Generáljuk az U ={ui} rendszert és utána számítsuk ki az ui =Tui, ubi =n0ui, i= 1, . . . , n mennyiségeket, majd a többi skalárszorzatot is a második és harmadik csoportból, végül pedig az rij értékeket.

2. Legyen Sum= 0.

3. Határozzuk meg az összes lehetséges z=zi,j,s, (i, j,s)∈J vektort, és minden egyes z vektorra végezzük el a következő lépést.

4. Kezdet (a vektor valószínűségi tartalmának meghatározása)

egy adott i, j,s indexhármas esetén határozzuk meg az α, β, γ skalárokat a következő lépések végrehajtásával: először meghatározzuk az rij,ubj értékeket, majd ezek segítségével számítsuk ki a z0z,n0z, ... értékeket, majd a λL = min {λ|λz∈X} és a λU = max {λ|λz∈X} számokat

a λ1, λ2 gyökök segítségével, végül a µ1, µ2 előjelének

figyelembevételével az egyenes valószínűségét adjuk a Sum változóhoz, vége (a valószínűségi tartalom meghatározása).

5. Adjuk át a valószínűség értékeként a p=Sum/[2n(n−1)] értéket.

Az iránymenti integrálás eljárásának minden egyes z vektorra való közvetlen alka-lmazásával n(n−1) darab T(λz) mátrixszorzásra lenne szükségünk. A fentebbi

algorit-musban javasolt számítási elrendezésben csak az ui = Tui mennyiségekhez szükséges n mátrixszorzást kell elvégezni, továbbábui =n0ui mennyiségekheznskalárszorzás, valamint az rij = ui0uj mennyiségekhez szükséges n(n−1)/2 skalárszorzás kell, vagyis még egy mátrixszorzásnyi művelet.

Ha egy polihedrikus kúp nagyon sok egyenlőtlenséggel van megadva, akkor érdemes lehet két körkúpot konstruálni, amelyek közül az egyik tartalmazza a polihedrikus kúpot, a másik pedig benne van. A két körkúp segítségével korlátokat adhatunk a polihedrikus kúp valószínűségére.