• Nem Talált Eredményt

Az iteráció szemcsézettségű optimalizálási algoritmusok globális dekom-

2. Optimalizálás párhuzamos számítógépeken 16

2.3. Az iteráció szemcsézettségű optimalizálási algoritmusok globális dekom-

A szekvenciális optimalizálási algoritmusok konvergenciájának bizonyítását a Zangwill [Zan 69] által kifejlesztett elméleten belül lehet elvégezni. Ehhez az optimalizálási algo-ritmus egy iterációs lépését, mint egy A : X → Y pont–halmaz leképezést tekintünk.

Az idevonatkozó eredmények ismertetését főleg Luenberger [Lue 84] jelöléseivel és kisebb mértékben Bazaraa [BSS 94] leírását követve adjuk meg.

Egy algoritmikus lépés (iteráció) úgy fogható fel, mint egyAleképezés, amely az előző iteráció végén kapott x ∈ X pontból előállít egy A(x) ∈ Y halmazt. Ha az A pont-halmaz leképezés zárt, akkor az A algoritmus ismételt alkalmazásával egy {xk},xk+1 ∈ A(xk)pontsorozatot tudunk előállítani, amelynek a konvergens részsorozatai egy optimális megoldáshoz konvergálnak. A továbbiakban az ilyen algoritmusokat egyszerűen konver-gensnek nevezzük. Egy további, enyhe feltétel esetén két konvergens B : X → Y, C : Y → Z algoritmus egymásutáni alkalmazásával kapott A = CB, A : X → Z összetett algoritmus is konvergens lesz.

Néhány jelölést vezetünk be. Tegyük fel, hogy a

min g(x), x∈S (2.3)

optimalizálási feladat megoldását keressük, ahol S egy konvex halmaz. Jelölje az op-timális megoldások halmazát Γ ⊂ S, és tegyük fel, hogy létezik az S halmazon egy, az A, S,Γ függvényeként megadható Z leszálló függvény, amely rendelkezik a következő tu-lajdonsággal: ha az A : S → S leképezés egy konvergens algoritmust valósít meg, akkor Z(y) < Z(x),∀y ∈ A(x), x ∈/ Γ esetén és Z(y) ≤ Z(x), ∀y ∈ A(x), ha x ∈ Γ fennáll.

Általában a leszálló függvény szerepére a (minimalizálandó) célfüggvényt használják, de néha ettől eltérő leszálló függvény konstruálására is szükség lehet. Egy B algoritmust az yk, k-adik iterációban előállított megengedett megoldás és a Z leszálló függvény tekin-tetében leszálló algoritmusnak nevezünk, ha az nem növeli meg a leszálló függvény értékét, vagyis ha yk+1 ∈B(yk), akkor Z(yk+1)≤Z(yk)is fennáll, minden yk∈S esetén.

A távolságtartó lépések tétele (spacer step theorem) fontos szerepet játszik a további-akban (a tételeket nem a legáltalánosabb formában mondjuk ki, csak a nekünk elégséges alakokat adjuk meg). Ez a tétel lényegében azt mondja ki, hogy ha egyH leszálló algorit-mus egy (vagy több) lépését beillesztjük egy konvergens C algoritmus lépései közé, akkor az A = CH (vagy A = CH· · ·H) összetett leképezés még mindig konvergens marad.

Jegyezzük meg, hogy itt a H algoritmus lehet heurisztikus algoritmus is, nem okvetlenül csak konvergens algoritmus használható ebben a szerepkörben. Más megfogalmazásban ez azt jelenti, hogy ha egy konvergens algoritmus (távolságtartó) lépéseit időnként (de végtelen sokszor) beillesztjük egy heurisztikus leszálló algoritmus lépései közé, akkor az összetett leképezés konvergens lesz.

5. Tétel. (Távolságtartó lépések tétele). Tegyük fel, hogy C egy konvergens algoritmus az S halmazon és hogy létezik egy C, S,Γ esetén használható Z leszálló függvény. Tegyük fel továbbá, hogy

(i) rendelkezésünkre áll egy olyan{xk}k=1 pontsorozat, amelyre Z(xk+1)≤Z(xk) fennáll, minden k= 1,2, . . . esetén,

(ii) az {x|Z(x)≤Z(x0)} nívóhalmaz kompakt,

(iii) ha k∈ K, akkor xk+1 ∈C(xk), ahol K egy végtelen indexhalmaz.

Ekkor az{xk}, k∈ Ktetszőleges konvergens részsorozatának azxhatárértéke egy optimális megoldás, vagyis x∈Γ.

Ezen előkészületek után az optimalizálási algoritmusok iterációs szemcsézettségű párhuzamosítására ajánlott globális dekompozíciót, valamint a megfelelő számítási eljárást adjuk meg. A

Pi, i = 1, . . . , N processzorokhoz hozzárendeljük a Ci és a Hi optimalizálási algoritmu-sokat, ahol a Ci algoritmusokról feltesszük, hogy konvergens eljárások, míg a Hi algorit-musról csak azt tesszük fel, hogy leszálló algoritmus minden olyan megengedett megoldás esetén, amelyet akármelyik processzornál a t időpillanatig kiszámítottunk (ezek a Hi al-goritmusok lehetnek akár konvergens, akár heurisztikus alal-goritmusok is, csak a leszálló

természetüket kötjük ki). Az algoritmusoknak a processzorokhoz való hozzárendelése tet-szőleges, de a kiválasztások elvégzése után nem változtatható. A Ci algoritmusok által adott megoldásokat x, a Hi által kiszámított megoldásokat y jelöli. A Hi algoritmus k-adik lépéseként használhatjuk a következő, egyszerű kiválasztási szabályt:

yik =yi(t) = argminm=1,2,...,N g(xmji(t))), (2.4) amely nyilván egy leszálló algoritmust ad. A xi(t) jelölést azért használjuk, hogy az időtől való függést is figyelembe tudjuk venni; ez azxi(t)aPi processzornál atidőpontban rendelkezésünkre álló megoldás, a τji(t) függvényt azt előző szakaszban definiáltuk, de most Ti csak azokat az időpillanatokat tartalmazza, amikor az xk = xi(t) értékének kiszámítását befejeztük, vagyis a Ci konvergens algoritmikus lépés befejeződött.

A processzorok végezte feladatok és a kommunikációs hálózat működése egyszerűen megadható: a Pi processzor végrehajt egy Ci algoritmikus lépést, aztán a kapott xik = xi(t) megoldást és az ehhez tartozó g(xi(t)), k skalárokat (a célfüggvény értékét és az iterációs lépésszámot) szétküldi a többi processzornak (vagy feltesszük, hogy valami-lyen módon az összes processzor hozzáfér a többi processzoroknál kiszámított xi,g(xi),k értékekhez). A megértés elősegítése céljából tegyük fel, hogy a Pi processzornál van egy kijelölt munkaterület, amelyet Xi = {Xmi }Nm=1 tömbként (N ×(n+ 2) mátrixként) jelölünk, amelynek m-edik sora tartalmazza a Pm processzortól kapott eredményeket, az Xmi = (xm(τ(t)), g(xm(τ(t))), k)értékeket.

Miután a Pi processzor szétküldte az {xi(t), g(xi(t)), k} értékeket, végrehajt egy Hi

iterációs lépést az eddig kapottXi megoldásokon, kiszámítva egyyk∈Hi(Xi)megoldást.

APiezek után egyCi lépést hajt végre azyk megoldásból kiindulva, vagyisxik+1 ∈Ci(yk).

Tehát ezzel lényegében az xik+1 ∈CiHi(Xi,xik) megoldást kaptuk.

6. Tétel. (A globális dekompozíció aszinkron konvergenciája)

Tegyük fel, hogy a Ci, i= 1, . . . , N algoritmusok konvergensek, a Hi algoritmusok leszálló algoritmusok az Xi és a g szerint, valamint tegyük fel, hogy a teljes aszinkronitás TA feltétele fennáll, akkor

(i) a {xi(t)}, t ∈ Ti megoldás sorozat tetszőleges konvergens részsorozata minden i = 1,2, . . . , N esetén konvergál egy optimális megoldáshoz, továbbá

(ii) ha a Pi processzornál a t időpontban rendelkezésünkre áll egy xi(t) megoldás, akkor van olyan t > t időpillanat, hogy g(xj(t)) ≤ g(xi(t)), ha t ≥ t minden j = 1,2, . . . , N index esetén.

Bizonyítás. A tétel (i) része egyszerű következménye a 5. Tételnek, ha azt minden egyes processzorra alkalmazzuk. A Hi pótlólagos algoritmikus lépés (a Pi processzornál a Ci algoritmikus lépés után beillesztett heurisztika, mondjuk a (2.4)-ben adott mini-malizálás) úgy tekinthető, mint a távolságtartó lépések közé beillesztett közbülső lépés.

Az {xi(t)}, t ∈ Ti megoldások halmaza megfelel az 5. Tételben megadott {xk}, k ∈ K halmaznak, amely konvergens, az{yik}vektorok halmaza pedig a{xk}, k /∈ Khalmaznak.

A tétel (ii) részének bizonyításához tekintsük azt a t ∈ Ti pillanatot, amikor Pi be-fejezte a xi(t) kiszámítását. A TA teljes aszinkronitás feltevésének második része miatt limt→∞τij(t) = ∞, azaz létezik egy olyantj időpillanat, amelyre τij(t)> t fennáll minden t > tj esetén. Ebből pedig az következik, hogy τij(tj) időpillanatra xi(t)) ∈ {Xj}i igaz, továbbá g xiij(t))

≤g(xi(t)), ∀t≥tj.

Legyen tj az az idő, amelyre Pj-nek szüksége van ahhoz, hogy a jelenlegi Hi iterációt befejezi, majd a Ci lépést elvégzi, valamint az ehhez kapcsolódó Hi leszálló lépést (itt tj véges a TA feltevés első része miatt), amivel kiszámítja axj(tj+tj)értéket.

Mivel atj időre aXj tömb tartalmazza már axi(t)értéket, ígyg(xj(tj+tj))≤g(xi(t) fennáll. Ha most t-vel jelöljük az összes ilyen idő maximumát: t = maxj=1,2,...,N(tj +tj), akkor tudjuk, hogy at időre az összesPj, j = 1, . . . , N processzoroknak olyan megoldások állnak a rendelkezésükre, amelyeken a felvett függvényértékek legalább olyan kicsik, mint aPi processzornál voltak at időben.

A tétel (ii) része azt mutatja, amit a legjobb megoldás elterjedésének nevezhetünk;

ha egyszer egy processzor már megtalált egy jó közelítést, akkor némi idő után az összes processzornál legalább ilyen jó függvényértéket adó közelítések lesznek. AHialgoritmusok által gyakran használt g(xj(t)) függvényértéket az egyes processzorok szétküldik azért, hogy a többi processzor ne végezzen felesleges munkát. A k iterációs számláló értékét azért küldik el azxj(t)megoldással együtt, hogy egy másik processzor mindig a legutolsó kiszámított (és nem a legutolsó megkapott) megoldást tárolja. Ez az óvintézkedés annak a nehézségnek az elkerülésére szolgál, hogyha némely, processzorok közti üzenet késik, vagyis ha egy korábban Pj-ből Pi-be küldött megoldás később ér a rendeltetési helyére, mint egy később kiszámított és elküldött megoldás, akkor ne cseréljünk. Matematikailag ez feleslegessé teszi aτji(t) függvény monotonitásának megkövetelését.