• Nem Talált Eredményt

HSS 1 HSS 2 HSS 3 HLH 2 , HLH 3

5. Az SNS-Multi feladat redukált szuperstruktúrája szuperstruktúrája

5.5. Matematikai komplexitás

A redukált és a hagyományos szuperstruktúra segítségével ugyanazt a feladatot oldottuk meg és megállapítottuk, hogy a megoldás is ugyanaz, ha az optimum egyedi. A redukált szuperstruktúra hatalmas előnye, hogy ugyanahhoz a feladathoz kisebb matematikai

modellt generál, így azt gyorsabban lehet megoldani. Ebből az is következik, hogy nagyobb méretű feladatokat lehet megoldani reális időn belül. Ebben az alfejezetben meghatározzuk, hogy a redukált és a hagyományos szuperstruktúra mérete hogyan aránylik egymáshoz, mert ebből következtethetünk a végrehajtási időre is.

A matematikai modell pontos mérete a feladat paramétereitől függ, úgymint a betáplálások száma és milyensége, komponensek száma, a felhasználható szétválasztók fajtái, a termékek száma. Tegyük fel, hogy csak egy betáplálás van és csak egy szétválasztó család tagjait használhatjuk fel. Ekkor a legfontosabb paraméter a komponens szám. Tudjuk, hogy a változók száma a strukturális modellben lévő megosztók kimeneteinek összegével egyezik meg. A kimenetek közvetlenül kapcsolódnak vagy a termékek előtti keverőkhöz vagy a szétválasztókhoz. A keverőkhöz kapcsolódó kimenetek száma függ attól, hogy hány termék van és hogy azok milyen komponenseket tartalmaznak. Ezért a megosztók kimeneteinek a számát pontosan nem tudjuk meghatározni. Azt azonban biztosan tudjuk, hogy a hagyományos szuperstruktúra jóval több ilyen kapcsolatot tartalmaz, mint a redukált. Ellenben a szétválasztókhoz kapcsolódó kimenetek számát meg tudjuk adni a komponens szám függvényében, ami egyenlő a szétválasztók számával. Jelölje SN(n) a hagyományos és CN(n) a redukált szuperstruktúrában lévő szétválasztók számát. SN(n)-t az 5.23. képlet segítségével számolhatjuk ki. A triviális esetben, amikor csak egy komponenst tartalmaz a betáplálás, nincs szükség szétválasztóra. Ha a betáplálás n komponenst tartalmaz, akkor tegyük fel, hogy az i-dik komponens után vágunk, ez egyszer egy szétválasztás. Ehhez hozzáadódik a felső kimenet teljes feldolgozása, ami SN(i) szétválasztót igényel, mert az i komponenst tartalmaz. Hasonlóan az alsó kimenet feldolgozása SN(n-i) szétválasztót igényel. Mivel a kezdeti szétválasztást n-1 helyen hajthatjuk végre, ezekre az i-t összegezni kell.

1 nem rekurzív formára. Ehhez első lépésként fejtsük ki az összegzést, lásd 5.24. egyenlet, majd módosítsuk a tagok sorrendjét, lásd 5.25. egyenlet. Láthatjuk, hogy SN(n) tartalmazza SN(n-1)-t, így felírhatunk egy egyszerűbb, rekurzív alakot, 5.26. egyenlet.

1 (1) ( 1)

1 (1) ( 2) könnyen meg tudjuk határozni, lásd az 5.29.-5.32. egyenletek. g(n) definíciójából adódik az 5.33., amelybe a zárt alakot behelyettesítve kapjuk 5.34.-t, SN(n) zárt alakját. A zárt alak egyértelműen mutatja, hogy SN(n) exponenciálisan nő.

( ) 3 ( 1) 1 / 1, 1 szuperstruktúrában a szétválasztók száma a lehetséges folyamösszetételek számától függ, hiszen minden i darab komponenst tartalmazó összetételhez pontosan i-1 féle szétválasztó tartozik egy szétválasztó család esetén. Mivel egy betáplálást feltételezünk, a lehetséges összetételek száma annyi, ahányféleképpen ki lehet választani n komponensből legalább 2 egymás melletti komponenst. Tegyük fel, hogy i darab egymás melletti komponenst

akarunk kiválasztani. Ekkor n komponens esetén n+1-i féleképpen lehet kiválasztani az egymás melletti komponenseket. CN(n)-t tehát úgy kapjuk, hogy az összetételek számát megszorozzuk az összetételenkénti szétválasztók számával és a szorzatot összegezzük i-re, kettőtől n-ig, lásd 5.35. egyenlet. Az egyenletet kifejtjük, 5.36., részekre bontjuk, 5.37., és az egyes részek zárt alakjait meghatározzuk, 5.38.-5.40. Ezek után CN(n) zárt alakját az 5.41. egyenlet írja le, amiből látjuk, hogy CN(n) polinomiális növekedésű.

( )

hogy CN minőségileg kedvezőbb, ugyanis CN a polinomiális, SN pedig az exponenciális függvények osztályába. Mi több CN a polinomiális függvények között sem számít nehéznek, hiszen csak köbös bonyolultságú. Az 5.1. táblázat SN(n) és CN(n) értékeit hasonlítja össze néhány n esetén, az 5.8. ábra pedig grafikusan ábrázolja a két függvényt.

Láthatjuk, hogy az első néhány n-re a két függvény megegyezik és még négy komponens esetén sem nagyon nagy az eltérés, de utána a különbség rohamosan nő. Ebből az következik, hogy a redukált szuperstruktúrán alapuló megoldó módszer jelentős gyorsulást eredményez.

5.1. táblázat: SN(n) és CN(n) értéke néhány n esetén

n 1 2 3 4 5 6 7 8 9 10

SN(n) 0 1 4 13 40 121 364 1093 3280 9841 CN(n) 0 1 4 10 20 35 56 84 120 165

0 2000 4000 6000 8000 10000

1 2 3 4 5 6 7 8 9 10

n

SN(n) CN(n)

5.8. ábra: SN(n) és CN(n) növekedésének összehasonlítása.

5.6. Feladat

A módszer működését egy szemléltető példán keresztül mutatjuk be. Láttuk, hogy legalább négykomponenses betáplálás szükséges ahhoz, hogy a redukált szuperstruktúra, szétválasztó számot tekintve, kisebb legyen, mint a hagyományos. Az 5.2. és az 5.3.

táblázat tartalmazza a feladat paramétereit. Egy betáplálásból három kevert terméket kell előállítani egy szétválasztó család tagjainak a felhasználásával.

5.2. táblázat: A betáplálás és a termékek komponensáramai az 5.6. feladatnál

c1 (kg/s)

c2 (kg/s)

c3 (kg/s)

c4 (kg/s)

F1 10 8 12 4

P1 2 3 5 1

P2 3 1 2 1

P3 5 4 5 2

5.3. táblázat: A felhasználható szétválasztók az 5.6. feladatnál

Komponens sorrend c1 c2 c3 c4

Szétválasztó S1 S2 S3

Teljes költségegyüttható ($/kg) 4 2 3

Az első lépésben előállítjuk a redukált szuperstruktúrát a rRSS-Multi algoritmus segítségével. Az iniciálás során létrehozunk egy megosztót a betáplálásnak és egy-egy keverőt a termékeknek. Ezután az első iterációban kiválasztunk egy még nem vizsgált megosztót és új szétválasztókat hozzunk létre hozzá. A szétválasztók kimeneteire egyenként meghívjuk az S_kimenet eljárást, amely most minden kimenethez egy új keverő, megosztó párt hoz létre, valamint a QMf halmazt is bővíti. Ezután a kiválasztott keverőt hozzákötjük a termék előtti megosztókhoz is, lásd 5.9. ábra.

A második iterációban tiszta terméket kell kezelnünk, amit csak a megfelelő keverőkkel kell összekötni, lásd 5.10. ábra. A harmadik iterációban is összekötjük a termékek előtti keverőkkel az aktuális megosztót, de új szétválasztókat is létre kell hozni.

Tekintsük az S4-es szétválasztó kimeneteit. A felső kimenethez, az eddigiekhez hasonlóan létrehozunk egy megosztót és egy keverőt. Az alsó kimenet minőség vektora, [0, 0, c3, c4], azonban már létezik az S2 alsó kimeneténél, ezért S4 alsó kimenetét ide kötjük, lásd 5.11. ábra. Összesen 18 iterációt végzünk el, hogy megkapjuk a redukált szuperstruktúrát, lásd 5.12. ábra.

P1

P2

P3 F1

S1

[10, 8, 12, 4] [3, 1, 2, 1]

[2, 3, 5, 1]

[5, 4, 5, 2]

[0, c2, c3, c4]

[c1, 0, 0, 0]

[c1, c2, 0, 0]

[0, 0, c3, c4]

[c1, c2, c3, 0]

[0, 0, 0, c4]

1

S22

S33

5.9. ábra: Redukált szuperstruktúra generálása: iniciálás és az 1. iteráció.

P1

P2

P3

F1

S1

[10, 8, 12, 4] [3, 1, 2, 1]

[2, 3, 5, 1]

[5, 4, 5, 2]

[0, c2, c3, c4]

[c1, 0, 0, 0]

[c1, c2, 0, 0]

[0, 0, c3, c4]

[c1, c2, c3, 0]

[0, 0, 0, c4]

1

S22

S33

5.10. ábra: Redukált szuperstruktúra generálása: 2. iteráció.

P1

P2

P3

F1

S1

[10, 8, 12, 4]

[3, 1, 2, 1]

[2, 3, 5, 1]

[5, 4, 5, 2]

[0, c2, c3, c4]

[c1, 0, 0, 0]

[c1, c2, 0, 0]

[0, 0, c3, c4]

[c1, c2, c3, 0]

[0, 0, 0, c4]

[0, c2, 0, 0]

[0, c2, c3, 0]

1

S22

S33

S35 S24

5.11. ábra: Redukált szuperstruktúra generálása: 3. iteráció.

P1

P2

P3

F1

S1

[10, 8, 12, 4]

[3, 1, 2, 1]

[2, 3, 5, 1]

[5, 4, 5, 2]

[0, c2, c3, c4]

[c1, 0, 0, 0]

[c1, c2, 0, 0]

[0, 0, c3, c4]

[c1, c2, c3, 0]

[0, 0, 0, c4]

[0, c2, 0, 0]

[0, c2, c3, 0]

[0, 0, c3, 0]

1

S22

S33 S92

S18 S37 S61 S35

S102 S24

5.12. ábra: Redukált szuperstruktúra generálása: 18. iteráció, teljes szuperstruktúra.

Ezután következik a matematikai programozási modell felírása, amelyben a megosztók minden kimenetéhez tartozik egy betáplálási megosztás arány típusú változó.

Jelen példánál az összes megosztó kapcsolatban van mindhárom termékkel és minden szétválasztóhoz kapcsolódik egy-egy megosztó kimenet. Ezt felhasználva a változók száma a redukált szuperstruktúra esetében 10*3+10 = 40, míg a hagyományosnál 27*3+13 = 94. A redukált szuperstruktúrához tartozó modellben az egyenletek száma 17-el kevesebb, mint a hagyományos esetben, mert ennyivel kevesebb a megosztók száma. A modell GAMS nyelvű megvalósítása megtalálható az elektronikus mellékletben. Az optimalizálás végrehajtása után az eredményül kapott hálózatot egyszerűsítésével kapjuk az optimális struktúrát, lásd 5.13. ábra. Az eredeti feladatot a hagyományos szuperstruktúrán alapuló módszerrel megoldva ugyanezt a megoldást kapjuk.

P1

P2

P3

F1

[10, 8, 12, 4] [3, 1, 2, 1]

[2, 3, 5, 1]

[5, 4, 5, 2]

D1 S2

S3 S1

költség=37,966 $/s

1, 1 0, 2 xD M =

D2

D3

M4 M1

M2

M3 1, 2 0,125

xD M =

1, 3 0,417 xD M =

1, 4 0,05 xD M =

1, 2 0,208 xD S =

3, 2 0,166 xD M =

3,3 0,042 xD S =

2, 3 0,083 xD M =

2, 4 0,125 xD M =

4, 2 0,083

xD M = xD M4, 3=0,083 D4

2

7 1-6

5.13. ábra: Az 5.6. feladat optimális struktúrája.