• Nem Talált Eredményt

3. SNS feladat több szétválasztó család felhasználásával felhasználásával

3.5. Az SNS-Multi feladattípus szigorú szuperstruktúrája szuperstruktúrája

3.5.2. Az RSS-Multi algoritmus

Kovács (2000) a következő módon fogalmazta meg az SNS feladatot: adott egy (F, P, ST) hármas, ahol F a betáplálások, P a termékek, ST pedig a felhasználható szétválasztó

típusok halmaza. A megfogalmazás tetszőleges feladattípusra vonatkozhat, de most csak az SNS-Multi feladattípust tekintjük. A betáplálások és termékek komponensáram vektoraikkal, a szétválasztók pedig a kimeneteiket meghatározó mátrixokkal illetve költségfüggvényeikkel adottak. Az SNS feladat adatait két csoportba lehet osztani. Az első csoportba tartoznak a komponens szám, betáplálás és termék szám, a felhasználható szétválasztók típusai és hogy a komponensáram vektorokban, hol vannak nulla értékek. A második csoportba tartoznak a komponensáram vektorok nem nulla elemeinek az értékei.

Látni fogjuk, hogy ha két SNS feladat csak a második csoportba tartozó adatokban tér el egymástól, akkor szigorú szuperstruktúrájuk megegyezik, mert annak konstruálása során csak az első csoport adatait használjuk fel. A szigorú szuperstruktúra az összes olyan SNS-Multi feladattípusba tartozó SNS feladat optimális struktúrájának az uniója, amelyeknél az első csoportba tartozó adatok megegyeznek.

Megállapítottuk, hogy az SNS-Multi feladattípus minden példájának létezik, olyan optimális hálózata, amelyben keverők csak közvetlenül a termékek előtt találhatóak. A következő lépés egy adott SNS feladat szigorú szuperstruktúrájának megadása ennek a tulajdonságnak a felhasználásával. Ehhez a stratégiánk az, hogy először felvesszük a betáplálásokat, a termékeket és az előttük lévő keverőket, hiszen ezeknek a helye rögzített. Ezután iteratív módon minden feldolgozatlan folyamhoz felveszünk minden hasznos műveleti egységet, konkrétan egy megosztót és minden olyan szétválasztót, amely az adott folyamon képes szétválasztást végrehajtani. A következőkben felvesszük a műveleti egységek közötti kapcsolatokat. Ez az új megosztó és az új szétválasztók közötti valamint az új megosztó és keverők közötti kapcsolatot jelenti. Összefoglalásul elmondhatjuk, hogy a rögzített részek felvétele után, felveszünk minden lehetséges műveleti egységet és köztük minden lehetséges kapcsolatot. Ebből következik, hogy az így kapott struktúra tartalmaz minden olyan struktúrát, amelynél keverő csak a termék előtt létezik, vagyis a struktúra ténylegesen szigorú szuperstruktúra.

Halmazok:

C komponensek halmaza

D megosztók véges halmaza

F betáplálások véges halmaza

M keverők véges halmaza

P termékek véges halmaza

S szétválasztók véges halmaza

TD megosztók átmeneti halmaza

ST felhasználható szétválasztó típusok halmaza

N a csúcsok halmaza

A (a, b) irányított élek halmaza G(N, A) hálózat; az algoritmus outputja

Operátorok:

δ( 1, 2, )= amely teljes hosszában tartalmazza komponenst 0 egyébként

prev(n) a hálózatban az n-t megelőző csúcsok halmaza

prev2(n) prev(prev(n))

prev3(n) prev(prev2(n))

next(n) a hálózatban az n-t követő csúcsok halmaza first(n) a hálózatban az n-t tartalmazó út első csúcsa qv(a) az a élhez tartozó minőség vektor

Paraméterek:

PRq,c [kg/s] a q termék c komponensárama FEf,c [kg/s] az f betáplálás c komponensárama

STUt a t szétválasztó típus felső kimenetéhez tartozó mátrix STLt a t szétválasztó típus alsó kimenetéhez tartozó mátrix

Az RSS-Multi (rigorous superstructure) algoritmus előállítja az SNS-Multi feladattípus szigorú szuperstruktúráját. Az algoritmus egzakt leírásához bevezetünk egy jelölés rendszert, amit a későbbiekben is felhasználunk. A δ operátor pontos definíciója is itt található meg, feladata a szuperstruktúra leírására. Értéke különböző paraméterekre, kiszámolható a bemeneti adatok, úgymint FEf,c, STUt, STLt, valamint G(N, A) segítségével. Egy folyam minőség vektorán egy olyan vektort értünk, amely 0-t tartalmaz azon komponenseknél, amelyek nem szerepelhetnek az adott folyamban. Az, hogy a nem nulla értékeknél ténylegesen mi fog állni, csak az optimalizálás után derül ki. δ megadja, hogy egy adott útvonal utolsó folyamának mi a minőség vektora. Például a 3.14. ábrán a (F2, D1) folyamot a [c1, c2, c3, 0] minőség vektorral jellemezhetjük, hiszen FE2,4 = 0.

Ebből következik, hogy δ(F2, D1, c3) = 1, de δ(F2, D1, c4) = 0. Két folyam minőségvektora csak akkor lehet azonos, ha mindkét folyam ugyanabból a betáplálásból származik. Mivel a megosztók a minőség vektort nem módosítják az előbbi vektor jellemzi a (F2, S1) folyamot is. qv(a)-al jelöljük az a élhez tartozó minőség vektort. Egy szétválasztó típusának megfelelően módosítja a minőség vektort. (F2, D2) minőség vektorát úgy kapjuk meg, hogy S1 bemenetének vektorát beszorozzuk 1

STUS -el, így a [c1, 0, 0, 0]-t kapjuk. A prev, next és first operátorok szintén a szuperstruktúrát írják le.

Egyértelmű esetekben az operátorok egy konkrét csomópontot adnak vissza, egyébként pedig csomópontok egy halmazát. A prev és a next operátort nem csak csomóponton, hanem azok halmazán is értelmezzük. Például prev(D2)=S1, next(M1)=P2, first(S2)=F2, next(D1)={M1, S1}, prev({D2, M1})= {S1, D1}, prev3(S2)=D1.

D1

3.14. ábra: Operátorok szemléltetése.

Az alábbiakban megadom az RSS-Multi algoritmust.

bemenet: (F, P, ST)

kimenet: G(N, A) szigorú szuperstruktúra eljárás: RSS-Multi

megjegyzés: iniciálás, kezdeti megosztók és keverők felvétele S = Æ; D = Æ; M = Æ; A = Æ; TD = Æ;

ciklus " f Î F

legyen d egy új megosztó TD = TD È {d}

legyen d egy elem TD halmazból TD = TD \ {d}

legyen f Î F olyan, hogy δ(f, d) = 1

megjegyzés: megosztó összekötése új szétválasztókkal ciklus " t Î ST

ha ($ i Î C, δ(f, d, i)*STUt,ii ≠ 0) és ($ i Î C, δ(f, d, i)*STLt,ii ≠ 0) akkor

legyen s egy új t típusú szétválasztó S = S È {s}

A = A È {(d, s)}

legyen d1 és d2 új megosztók TD = TD È {d1, d2}

D = D È {d1, d2}

A = A È {(s, d1), (s, d2)}

feltétel vége ciklus vége

megjegyzés: megosztó összekötése keverőkkel ciklus " p Î P

ha " i Î C, (δ(f, d, i) = 1 és PRp,i > 0) vagy δ(f, d, i) = 0 akkor

legyen m Î M olyan, hogy (m, p) Î A A = A È {(d, m)}

feltétel vége ciklus vége ciklus vége

N = F È P È S È D È M eljárás vége

Az algoritmus menete a következő. Az első lépés a szuperstruktúrát leíró halmazok iniciálása, ezek a szétválasztók, megosztók, keverők és összeköttetések halmazai. Ezután minden betápláláshoz felveszünk egy megosztót, amit összekötünk a hozzá tartozó bemenettel. Hasonlóan minden termékhez felveszünk egy keverőt és összekötjük a megfelelő keverő, termék párokat. Az algoritmus második részét végrehajtjuk egyszer minden a hálózatban lévő megosztóra. TD halmaz tartalmazza azokat a megosztókat, amelyekre az algoritmusnak ezt a részét még nem hajtottuk végre.

Egy d megosztó kiválasztása után a TD halmazból, d-t eltávolítjuk TD-ből és minden szétválasztó típusról eldöntjük, hogy az képes-e effektív szétválasztásra a d-hez tartozó folyamon. A szétválasztás akkor effektív, ha a potenciális szétválasztó mindkét kimenetén megjelenik egy-egy folyam. Ehhez az δ(f, d, i)*STUt,ii és az δ(f, d, i)*STLt,ii

szorzatokat kell megvizsgálni különböző i értékekre. Ha δ(f, d, i) = 1, akkor a d szétválasztóhoz tartozó folyamban jelen van az i komponens, ha ezt az STUt mátrix i-dik sorához és oszlopához tartozó elemmel megszorozva szintén 1-t kapunk, akkor ez a komponens a szétválasztó felső kimenetén jelenik meg ellenkező esetben az alsó kimeneten. Ha a felső és alsó kimenet komponensáram vektorában is legalább egy elem nem nulla, akkor felveszünk egy új t típusú szétválasztót a d-vel való összeköttetéssel együtt. Ezen felül az új szétválasztó mindkét kimenetét hozzákötjük egy-egy új megosztóhoz. Az új megosztók egyúttal TD-nek is az elemei lesznek. A szétválasztók létrehozása után kikerülő folyamokat hozunk létre d és az egyes keverők között. A d megosztó pontosan akkor kapcsolható össze egy m keverővel, ha a d-hez tartozó komponensáram vektor minden nem nulla eleme esetén, az m-hez tartozó termék komponensáram vektorának azonos pozíciójú eleme is nem nulla értékű. Ha egy termék

például nem tartalmazza a kettes komponenst, akkor egy azt tartalmazó betáplálásból nem vezethet kikerülő folyam az adott termékhez.

3-4. tétel: Az RSS-Multi algoritmus véges.

Bizonyítás: A betáplálások és a termékek halmazai végesek, ezért a kezdeti megosztók és keverők generálása is véges sok lépésben befejeződik. Az algoritmus második részében minden egyes iteráció végrehajtásával a TD halmaz eggyel csökken, ugyanakkor minden szétválasztóhoz két új megosztót hozunk létre, ami a TD halmazt növeli. Tudjuk, hogy egy szétválasztó kimenetein a komponensek száma legalább eggyel kisebb, mint a bemeneten, így mivel a komponensek száma is véges, véges sok szétválasztás után a kimenetek tiszták. Az egykomponensű folyamokhoz már nem hozunk létre új szétválasztókat, így a TD halmaz mérete ilyen iteráció esetén csak csökken. Ez azt jelenti, hogy véges sok lépés után a TD halmaz üres lesz és az algoritmus befejeződik. n

Vizsgáljuk meg az RSS-Multi algoritmus következő módosítását. Mielőtt d megosztóhoz létrehozunk egy új t1 típusú szétválasztót ellenőrizzük, hogy létezik-e olyan d-hez kapcsolódó, t2 típusú szétválasztó, amelynek kimenetei megegyeznek t1 kimeneteivel. Csak azt ellenőrizzük, hogy a kimenetek egyeznek, és nem azt, hogy a felső a felsővel és az alsó az alsó kimenettel egyezik. Ha létezik t2, akkor ne vegyünk fel új szétválasztót, de ha t1 teljes költségegyütthatója kisebb, mint t2-é, akkor a t2 típusú szétválasztót módosítsuk t1 típusúvá. Amennyiben nem létezik, az adott tulajdonságú szétválasztó, akkor a megszokott módon vegyünk fel egy új t1 típusú szétválasztót a d-vel való kapcsolatával együtt. A módosítás azt eredményezi, hogyha egy folyamon több szétválasztó ugyanazt a feladatot végzi el, akkor közülük csak a legolcsóbbat vesszük bele a szuperstruktúrába.

3-5. tétel: Az RSS-Multi algoritmus az előbbi módosítás után is az SNS-Multi szigorú szuperstruktúráját generálja.

Bizonyítás: Tekintsük az eredeti szigorú szuperstruktúrát és nevezzük az azonos megosztóhoz kapcsolódó, azonos kimenetű szétválasztókat ekvivalencia csoportnak. Az optimális megoldás minden szétválasztójára igaz, hogy az a szuperstruktúra szerinti ekvivalencia csoportjának legkisebb teljes költségegyütthatóval rendelkező tagja. Ha nem így lenne, akkor az adott szétválasztót kicserélve a minimális együtthatójú tagra jobb megoldást kapnánk, ami ellentmond a struktúra optimális voltának. Ebből következik, hogy a szigorú szuperstruktúrára, ami az optimális megoldások uniójának tekinthető, is igaz, hogy az ekvivalencia csoportoknak csak a legkedvezőbb elemét kell tartalmaznia. A módosított algoritmus pontosan ilyen tulajdonságú struktúrát hozz létre. n

Az SNS-Single feladattípusnál ilyen egyszerűsítés nem lehetséges, mert ott minden szétválasztó különböző kimeneteket állít elő. A 3.15. ábra példát mutat arra, hogy két különböző családba tartozó szétválasztó, adott folyamon hogyan hajthatja végre

ugyanazt a szétválasztást. Az OC paraméter a teljes költségegyütthatót jelenti és az összes komponensáram vektor a hagyományos komponens sorrend szerint van felírva.

Ezentúl az RSS-Multi algoritmus alatt mindig a módosított algoritmust értjük, mert a 3-5.

tétel alapján az is az SNS-Multi szigorú szuperstruktúráját generálja. Ráadásul a módosított algoritmus által generált szuperstruktúra kisebb, mint az eredeti, így a belőle származtatott matematikai modell gyorsabban megoldható.

c1 c2 c3 c4

c1 c3 c2 c4

OCt1=4.7 $/kg

OCt2=3.2 $/kg

[4, 0, 0, 0]

[0, 7, 0, 9]

[4, 0, 0, 0]

[0, 7, 0, 9]

[4, 7, 0, 9]

3.15. ábra: Különböző családba tartozó, de azonos hatású szétválasztók.