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.