Content extract
					
					http://www.doksihu  Eötvös Loránd University Faculty of Science  Györgyi Péter  Hálózati optimalizálási modellek BSc szakdolgozat  Témavezet®:  Frank András, egyetemi tanár Operációkutatási Tanszék  Budapest, 2010   http://www.doksihu  El®szó  Szeretném megköszönni a témavezet®mnek, Frank Andrásnak, hogy a rendszeres konzultációink során irányította munkámat, szakmai és formai észrevételei sokat segítettek a szakdolgozatom elkészítésében.  i   http://www.doksihu  Tartalomjegyzék  Bevezet®  1  Jelölések  3  1. Három példa  4  1.1 Van-e még esély a bajnoki címre?                      4  1.2 Repül®jegyek szétosztása                           5  1.3 Optimális energiapolitika meghatározása                  6  2. A probléma felvázolása  8  2.1 A feladat meghatározása                           8  2.2 A matematikai modell                            9  2.3 A célfüggvény                                11  3. A standard eset  12  3.1
Az eset áttekintése                             12 3.2 Egy egyszer¶sítési lehet®ség                        13 3.3 Az egy sor esete                               15 3.4 A hálózati modell                              17  4. Az ütközésmentes eset  20  4.1 Egy technikai akadály                            20 4.2 Az els® modell                                21 4.3 A második modell                              23  ii   http://www.doksihu  TARTALOMJEGYZÉK  iii  5. Egy újabb feltétel  27  5.1 A nyúlvány-és-horony kialakítás                      27 5.2 A minimális TG-hiba modellezése                     29  6. A minimális felbontásszám  31  6.1 Burkard tétele kétsoros mátrixra                      31 6.2 Baatar tétele egysoros mátrixra                      31  7. Az egészérték¶ség problémája  34  7.1 A kanonikus felbontás                           34 7.2 Kanonikus felbontás minimális TG-hiba esetén              36 7.3 Az optimális felbontás
meghatározása                   37  Irodalomjegyzék  41   http://www.doksihu  Bevezet®  Számos gyakorlatban felmerül® probléma jól kezelhet® gráfok segítségével, majd a gráfalgoritmusok gyakran vezetnek a feladat megoldásához. Az optimalizálási feladatok esetén különféle mennyiségek optimumát (minimumát, maximumát) kívánjuk meghatározni. A gráfokon jó néhány optimalizáló algoritmus ismert, ilyen például Dijkstra-algoritmus a legrövidebb út keresésére pozitív élköltségek esetén, vagy a Ford-Fulkerson-algoritmus a maximális folyam meghatározására. Bizonyos esetekben a gráf segítségével jutunk egy lineáris programozási feladathoz, felhasználva a gráf valamilyen nevezetes mátrixát. A szakdolgozatom célja, hogy különféle gyakorlati problémákat visszavezessünk egy már ismert hálózati optimalizálási feladatra. Néhány esetben teljesen természetesen adódik ez a visszavezetés Vannak azonban olyan feladatok, ahol
el®ször nem is gondolnánk az ilyen jelleg¶ megoldásra, pedig sok esetben gyorsabb algoritmust kapunk az eredeti problémára, mint más, közvetlenebb módszerrel. Szakdolgozatom elején bemutatom három egyszer¶ feladat leírását a gráfok segítségével úgy, hogy a kapott gráfon, egy jól ismert algoritmus segítségével, meg tudjuk oldani az eredeti feladatot. A szakdolgozat nagyobbik része egy bonyolultabb problémát ír körül A rákos betegek sugárkezelésénél merül fel egy optimalizálási feladat: egy ismert kiterjedés¶ daganatot akarunk sugárzásnak alávetni, hogy a daganat megsemmisüljön, de az ép sejtek a lehet® legkevésbé károsodjanak. A sugárzás szabályozásában fontos szerepe van egy eszköznek, a Multileaf Collimator-nak Ezen gép beállításai próbáljuk meghatározni úgy, hogy különböz® feltételeknek eleget tegyünk. A 2. fejezetben felvázoljuk a problémát, majd megadjuk egy matematikai modelljét (mátrixok segítségével)
A következ® fejezet a standard esetr®l szól, ezt átírjuk egy minimális költség¶ folyam meghatározásának problémájára A 4 fejezet 1   http://www.doksihu  BEVEZET  2  egy, a gyakorlatban fontos, feltételt szab meg nekünk. Ez lényegesen bonyolultabbá teszi a feladatot, azonban a megoldást továbbra is kereshetjük egy minimális folyam képében, igaz most már lényegesen bonyolultabb a gráfunk és mellékfeltételeket is kénytelenek leszünk tenni. Az ezt követ® fejezet Bárász Mihály [5] eredményeit, amelyben egy újabb megkötést tesz számunkra, írja át a folyamproblémára. Az utolsó el®tti fejezet bemutat egy az ugyanebben a környezetben felmerül® feladatot, amelyr®l belátjuk, hogy módszereinkkel kezelhetetlen, hiszen NP-nehéz. Legvégül vázlatosan ismertetünk egy másik módszert, amely egy elméletben fontos eredményt, az egészérték¶séget biztosítja számunkra.   http://www.doksihu  Jelölések  Ha külön nem jelezzük, akkor
egy G = (V, E) gráf csúcsszáma n, élszáma m. Irányított gráf esetén gyakran A-val jelöljük az élek halmazát. A v csúcsba befutó élek halmazát A− (v)-vel, az onnan indulókat A+ (v)-vel jelöljük Az éleken lév® esetleges költségfüggvény c (a nem jelölt éleken az értéke 0), a fels® és alsó korlátokat u(e)-vel és l(e)-vel jelölöm az e élen. Ezek a korlátok alapesetben +∞ illetve −∞ értékeket vesznek fel (természetesen sok esetben az l ≡ 0-t is nyilvánvaló-  nak vesszük). A csúcsokon lehetnek feleslegeink illetve igényeink, ezeket az i csúcs esetén bi -vel jelöljük, felesleg esetén bi > 0, igény esetén bi < 0. Egy folyam értékét az e élen x(e)-vel jelöljük, nyilván minden e esetén l(e) ≤ x(e) ≤ u(e). A folyamunknak ki kell elégítenie az igényeinket a feleslegeinkb®l, azaz minden v ∈ V -re bv +  P  e∈A− (v) x(e) −  P  e∈A+ (v) x(e) = 0  .  3   http://www.doksihu  1. fejezet  Három példa  Ebben a
fejezetben néhány gyakorlati példán keresztül bemutatjuk a hálózati modellezés hasznosságát, széles alkalmazhatóságát. A fejezet alapvet®en válogatás [3]-ból. Ezen könyvben számos gráfalgoritmusokra találhatóak alkalmazások, most azonban a teljesség igénye nélkül válogatunk közülük.  1.1  Van-e még esély a bajnoki címre?  A feladatunk az, hogy baseball bajnokság egy adott pillanatában eldöntsük, hogy van-e még esélye a csapatunknak a végs® gy®zelemre. A bajnokság gy®ztese a legtöbb gy®zelemmel rendelkez® csapat (döntetlen nincs, a holtversenyes gy®zelmünket is elfogadjuk). Jelöljük a csapatokat az 0, 1, 2, , n számokkal, a mi csapatunk legyen a 0. Tegyük fel, hogy az i csapat eddig w(i) darab gy®zelemmel rendelkezik, továbbá azt, hogy az i. és a j capat még g(ij) mérk®zést játszik egymással Nekünk az a legjobb eset, ha a csapatunk minden hátralév® mérk®zését megnyeri, tegyük fel, hogy ekkor w(max) gy®zelme
lesz. A feladatunk egyenérték¶ az alábbi gráfon lév® megengedett folyamproblémával (1. ábra), hiszen, ha van megengedett folyam, akkor van egészérték¶ megengedett folyam is, ennek a jobb oldali része pedig pont egy nekünk jó kimenetelt mutat (az i-b®l (i, j)-be mutató él azt jelenti, hogy az i. csapat hány mérk®zést nyer meg a j . ellen) A másik irány hasonlóan nyilvánvaló  4   http://www.doksihu  1.2 Repül®jegyek szétosztása  5  1. ábra Van-e még gy®zelmi esély?  1.2  Repül®jegyek szétosztása  Van egy p kapacitású kis helyi repül®járatunk, amelyik sorban meglátogatja az 1, 2, ., n városokat Tegyük fel, hogy az i városból b(ij) utas akar a j  városba  menni. A jegyek árát központilag meghatározták: i-b®l j -be f (ij)/f® Feladatunk meghatározni, hogy a különféle jegyekb®l mennyit árusítsunk, hogy a bevételünk maximális legyen, de mindenhol betartsuk a kapacitáskorlátunkat. A probléma megfeleltethet® egy minimális
költség¶ folyamfeladatnak (n = 4 esetén lásd 2 ábrát, más n-re hasonlóan). Minden (i, j) csúcsban vannak az i − j útra váró utasok, akik utaz-  nak közülük, azok a baloldali élen "mennek el" (és zetnek nekünk f (ij)-t a jegyért), a többiek a jobboldalin. A repül® az alsó vízszintes éleken halad (az itteni értékek kapacitások, míg a többi költség). Innent®l kezdve az ekvivalencia nyilvánvaló (az egészérték¶ség most is adódik).   http://www.doksihu  1.3 Optimális energiapolitika meghatározása  6  2. ábra Repül®jegyek kiosztása n = 4 esetén  1.3  Optimális energiapolitika meghatározása  Tegyük fel, hogy az országunk négyféle módon tud energiához jutni: k®olajból, szénb®l, uránból és vízer®m¶b®l. Az ország energiaigénye is négy részre osztható: szükség van elektromos áramra, háztartási olajra, benzinre és gázra. Minden alapanyagból képesek vagyunk bizonyos energiák el®állítására,
például szénb®l tudunk elektromos áramot csinálni, azonban ez az átalakítás veszteséggel jár, amely arányos az átalakítandó mennyiséggel. Célunk, hogy mindenb®l kielégítsük az ország igényét és a lehet® legkevesebbet költsük. Jelöljük az alapanyagainkat 1, 2, 3, 4-gyel, az el®állított energia fajtákat 10 , 20 , 30 , 40 -vel Az i energiahordozóból a(i)-t tudunk vásárolni c(i) áron. Az i-b®l j 0 -be történ® átalakítás költsége c(ij 0 ), az átalakítandó mennyiség m(ij 0 ) része marad meg (a többi veszteség). j 0 -b®l b(j 0 ) igény van A feladatot az  általánosított folyamproblémára vezethetjük vissza, amely azt is megengedi, hogy bizonyos (uv) éleken a folyam m(uv)-szeresére változik. A megfelel® gráf most is egyszer¶en adódik (lásd 3. ábra), c-t és b-t az ábrán jelöltük (most csak az igényeinket kell kielégíteni, felesleg maradhat!), az (S, i) éleken a(i) fels®, a (j 0 , T ) éleken b(j 0 ) alsó kapacitás
van. Az (i, j 0 ) "átalakító" éleken m(ij 0 )-szeresére módosítjuk  a folyamunkat. A gráfunkon lév® minimális költség¶ folyam mutatja az optimális stratégiánkat.   http://www.doksihu  1.3 Optimális energiapolitika meghatározása  3. ábra Energiapolitika meghatározása  7   http://www.doksihu  2. fejezet  A probléma felvázolása  2.1  A feladat meghatározása  A rákos betegek kezelésének egyik leggyakoribb módszere a sugárkezelés, különösen akkor, ha a tumor jól lokalizálható. Ebben az esetben az a célunk, hogy a sugarak elpusztítsák a rákos sejteket, de közben a létfontosságú ép sejtek ne károsodjanak. A kezelés úgy történik, hogy a betegre több (leggyakrabban 3-7) irányból párhuzamos sugárnyalábot bocsájtunk egy lineáris gyorsító nev¶ géppel (linear accelerator). Annak érdekében, hogy mindenhova a megfelel® mennyiség¶ sugárzás jusson a célterületet minden irányból kis cellákra osztjuk, majd
meghatározzuk, hogy az egyes cellákra mekkora intenzitású sugárzást kívánunk bocsájtani. A megadott intenzitáseloszlás (intenzitástérkép) el®állításához egy sokleveles kollimátor (Multileaf Collimator, továbbiakban MLC) nev¶ eszköz áll rendelkezésünkre. Ez a szerkezet lényegében egy állítható sz¶r®, amely az érkez® sugarat csak bizonyos pozíciókban engedi át. A sz¶r® több (napjainkban általában 20-100) függetlenül mozgó fémnyelvpárból áll, a sugárzás csak az egymással szemben elhelyezked® nyelvek közti területen tud áthaladni (lásd 4. ábra) Az intenzitástérkép el®állításának gyakori módja az úgynevezett step-and-shoot módszer, amely statikus módon m¶ködik: el®ször beállítjuk a nyelveket, majd bekapcsoljuk a sugarat egy megadott ideig, ezután átállítjuk a nyelveket és újra sugározunk, stb. A másik el®állítási módszerrel, miszerint állandó sugárzás mellett folyamatosan mozgatjuk a nyelveket, nem
foglalkozunk. Ebben a fejezetben megadjuk a problémai matemetikai leírását, 8   http://www.doksihu  9  2.2 A matematikai modell  bevezetünk néhány kés®bb felhasználra kerül® deníciót, továbbá meghatározzuk, hogy milyen célfüggvényekre kívánunk optimalizálni.  4. ábra Egy MLC ([8])  2.2  A matematikai modell  A feladat matematikai modellje a következ®: adott egy nemnegatív mátrixunk (általában feltehet®, hogy az értékek egészek, jelöljük I -vel és legyen M ∗ N -es, ez az intenzitás mátrix), ezt akarjuk felbontani speciális bináris mátrixok, úgynevezett sorintervallum mátrixok (szegmensek), nemnegatív lineáris kombinációjára (I =  PK  ). Ezen Si mátrixok felelnek meg az egyes fémnyelv beállítá-  i=1 (xi ∗ Si )  soknak (ott van 1-es, ahova eljut a sugárzás), a együtthatóik pedig azt mutatják, hogy mennyi ideig sugárzunk az adott beállítás mellett. Ez úgy is megfogalmazható, hogy minden i ∈ {1, 2, .M }-re egy S
szegmens i sorához hozzárendelünk egy ([li , ri )) számpárt, ahol li ∈ {1, 2, 3, ., N + 1}; ri ∈ {1, 2, 3, , N + 1}; li ≤ ri és S(i, j) = 1 ⇔ li ≤ j < ri , különben 0. Vagyis li mutatja az i sorban lév® baloldali  fémnyelv által az els®, még pont nem lefedett mez®t, míg ri a jobboldali fémnyelv által lefedett els® mez®t mutatja.   http://www.doksihu  10  2.2 A matematikai modell  5. ábra Az l=3, r=N-1 eset  Példa. Egy példa a felbontásra:   4    1    3    4  3  4 3 0 6 3 4 1 4 3 6 4      1      0 0      0  = 3∗ 0      1 0    3 0  1 0 0 1 1 1 0 1 1 1 1      1      1 0      0 +1∗ 1      1 0    1 1  1 1 0 1 0 1 1 1 0 1 1      0      0 0      0 +2∗ 1      0 0    0 1  0 1 0 1 0 0 0 0 0 1 0      0    0
   0   0  A nyelvek állása ezen szegmensek esetén a következ®:  6. ábra A nyelvek elhelyezkedése a példában A másik megfogalmazás szerint, az els® szegmens esetén l1 = 1, r1 = 3, l2 = 2, r2 = 4, l3 = 2, r3 = 3, l4 = 1, r4 = 4, l5 = 2, r5 = 5.  Megjegyzés. A szegmensek és a nyelvbeállítások között nincs bijekció, hiszen a csupa nulla sort több beállítással is elérhetjük. Ez azonban nem jelent gondot a kés®bbiekben, így gyakran használjuk felcserélhet® módon ezen fogalmakat.   http://www.doksihu  11  2.3 A célfüggvény  2.3  A célfüggvény  Nyilván minden egész elemekb®l álló mátrix el®állítható legfeljebb M ∗ N darab sorintervallum mátrix lineáris kombinációjaként, hiszen az egyetlen egyesb®l és különben csupa nullákból álló mátrixok sorintervallum mátrixok, míg ezen mátrixokat megfelel® együtthatókkal beszorozva az intenzitás mátrix minden egyes eleme tetsz®legesen beállítható. Ezt nevezik
triviális felbontásnak, de ez a gyakorlatban használhatatlan Több célt is ki szoktak t¶zni annak megfelel®en, hogy milyen felbontást kívánunk elérni. A leggyakoribb cél az összsugárzási id® (  PK  i=1 xi  ) minimalizálása, hiszen ekkor  kevesebb sugárzás éri az ép sejteket. A modellünkben az összsugárzási id®t a felbontásban szerepl® együtthatók összege adja, gyakran felbontási id®ként hivatkozunk majd rá (decomposition time, DT). Fontos cél lehet még a kezelés idejének minimalizálása, hiszen ekkor több beteg kezelésére kerülhet sor A kezelési id® jól jellemezhet® a nyelvek beállításához szükséges id® és az összsugárzási id® összegével, azaz a  PK  i=1 (xi + c(Si , Si−1 ))  számmal, ahol c(Si , Si−1 ) az i. elrendezés beállításának  az ideje az i − 1-b®l (S0 a kezdeti elrendezés). Ebben az esetben gyakran fel szokták tenni, hogy a nyelvek újrakongurálása konstans id®t vesz igénybe, így jelent®sen
egyszer¶sítve a problémát. Bizonyos esetekben a felbontásszám (K , decomposition cardinality, DC) minimalizálása a cél. Mi alapvet®en a felbontási id® minimumát fogjuk vizsgálni, majd belátjuk, hogy a felbontásszám minimumának meghatározása már nagyon speciális esetben is NP-nehéz (bár vannak jól közelít® heurisztikus algoritmusok).  Példa. Az el®bbi példa esetén a felbontásszám 3, míg a felbontási id® 3+1+2 = 6 Triviális felbontásnál a felbontásszám 16 (a nulla elemekhez nem kell külön szegmens), a felbontási id® 4 + 4 + 3 + 1 + 6 + 3 + 3 + 4 + 1 + 4 + 4 + 3 + 3 + 6 + 4 + 3 = 56. Látható már ebben az esetben is, hogy a triviális felbontás lényegesen rosszabb eredményt ad, akármelyik mennyiség szerint vizsgálódunk.   http://www.doksihu  3. fejezet  A standard eset  3.1  Az eset áttekintése  Standard esetnek azt nevezzük, ha az eddigi feltételek mellett nem vezetünk be újabbakat. A legtöbb esetben sajnos kénytelenek
vagyunk további feltételeket szabni, azonban a mostani modellünk is hasznos a gyakorlatban. Léteznek olyan MLC-k, amelyek beállításaiban felhasználják a standard eset eredményeit. Ez lényegesen gyorsabban kapható meg, mint például a következ® fejezetben tárgyalásra kerül® ütközésmentes eset. Ebben a fejezetben bemutatjuk, hogy létezik egy O(M N )-es algoritmus, amely megadja nekünk a minimális összsugárzási id®t. Az algoritmus visszavezeti a feladatot egy adott gráfon való minimális költség¶ folyamproblémára. Ez a fejezet els®sorban Ahuja és Hamacher [1] munkájának eredményeit mutatja be: leegyszer¶sítjük a problémát az M = 1 esetre, majd ennek megoldására megadunk egy hálózati modellt. A feladatunk a minimális összsugárzási id® meghatározása, azaz a következ® feladat megoldása: min z ∗ :=  PL  k=1 xk  (1)  feltéve, hogy: I=  PL  k=1 xk Sk  (1a)  Sk szegmens ∀k ∈ {1, 2, ., L}-re (1b) xk ≥ 0 ∀k ∈ {1, 2, ., L}-re
(1c)  12   http://www.doksihu  13  3.2 Egy egyszer¶sítési lehet®ség  Megjegyzés. 1) Itt feltehetjük, hogy L az összes szegmens száma, hiszen a 0 együtthatóval rendelkez® szegmensek nem változtatják meg a minimumot. 2) z ∗ -gal a feladat megoldását, vagyis a legkisebb összsugárzási id®t jelöljük a továbbiakban. 3.2  Egy egyszer¶sítési lehet®ség  A probléma nem tartalmaz semmiféle megkötést a sorok között, ezért célszer¶ a feladatot soronként vizsgálni, majd a sorokra kapott eredményekb®l megpróbálni megkonstruálni az (egyik) optimális felbontást. Ezzel a módszerrel M egymástól független feladatot kaptunk. Egy sor esetén a feladatunk a egy adott N dimenziós vektor felbontása olyan N dimenziós 0-1 vektorok nemnegatív lineáris kombinációjára, amelyekben az egyesek egy tömbben szerepelnek. A feladatot minden sor esetén átírjuk egy irányított hálózatban lév® minimális költség¶ folyam problémává. Az így kapott
hálózat meglehet®sen speciális lesz: nem lesz benne kör, de amúgy teljes lesz (ha a csúcsokat 1,2,.-tal jelöljük, akkor minden olyan (i, j) élt behúzunk, ahol i < j ); a költség függvényünk azonosan 1 lesz, míg kapacitás korlátunk semelyik élen se lesz. Be fogjuk bizonyítani, hogy ebben a speciális esetben a minimális költség¶ folyamproblémának a megoldására létezik O(N )-es algoritmus, továbbá, ha ezt mind az M sor esetében megcsináljuk, akkor ezek segítségével az eredeti feladatra adunk egy O(M N )-es algoritmust. Könnyen belátható, hogy nem létezik ennél gyorsabb algoritmus a standard eset megoldására. Az i. sor esetén a feladatunk a következ®: min zi :=  PL  k=1 xk  (2)  feltéve, hogy: Ii,. =  PL  k=1 xk rk  (2a)  rk egysoros szegmens vektor (továbbiakban szegmenssor) ∀k ∈ {1, 2, ., L}-re (2b) xi ≥ 0 ∀i ∈ {1, 2, ., L}-re (2c)  Az el®z® megjegyzés 2) pontjához hasonlóan itt is zi -vel jelöljük a kés®bbiekben a
minimumot. A következ® állítás bizonyítása megmutatja, hogy hogyan kaphatjuk meg (1) megoldását úgy, hogy ismerjük minden sor esetén (2) megoldását.   http://www.doksihu  14  3.2 Egy egyszer¶sítési lehet®ség  Jelölés. zmax :=max {zi : 1 ≤ i ≤ M } Azaz zmax a sorok minimális összsugárzási idejei közül a legnagyobb.  Állítás. zmax = z ∗  Vagyis az el®bb deniált mennyiség az I mátrix esetén a legkisebb összsugárzási id®, tehát (1) megoldása megkapható, ha minden sorára megoldjuk (2)-t, majd megkeressük ezek közül a legnagyobbat.  Bizonyítás. Nyilvánvaló, hogy (1) megoldása legalább akkora, mint bármely sor esetén (2) megoldása, hiszen ellenkez® esetben I felbontásának megfelel® sora jobb felbontást adna, mint (2), ami viszont ellentmondás, hiszen (2) a legjobb felbontást keresi. Tehát zmax ≤ z ∗  Az egyenl®séget úgy fogjuk bizonyítani, hogy megadjuk I -nek egy olyan felbontását, ahol az összsugárzási id®
éppen zmax . Legyenek ri1 , ri2 , , rip az i sorhoz tartozó szegmenssorok az optimális felbontásban (p i-t®l függ). Ezekhez tartozzanak az xi1 , xi2 , ., xip együtthatók (ekkor nyilván zi =  Pp  k=1 xk  ). I egy optimális felbon-  tását egy egyszer¶ algoritmus segítségével kaphatjuk meg. Az els® lépésben minden 1 ≤ i ≤ M esetén kiválasztunk egy tetsz®leges rik1 -t, majd ezeket a szegmenssorokat összerakva megkonstruáljuk S1 -et Ennek együtthatója legyen x1 = minxik1 : 1 ≤ i ≤ M . Ezután lecsökkentjük a kiválasztott szegmenssorok együtthatóját x1 -gyel Amennyiben egy szegmenssor együtthatója 0 lesz (legalább egy ilyen biztosan lesz), akkor azt a szegmenssort elfelejtjük a továbbiakban. Ezután újra kiválasztunk M darab szegmenssort, ezekb®l megkonstruáljuk S2 -t, majd az el®bbihez hasonlóan megadjuk x2 -t, végül újra redukálunk. Ha egy sor esetén már nem tudunk szegmenssort kiválasztani, akkor a csupa nulla sort választjuk. Ezt
addig csináljuk, amíg el nem fogy az összes szegmenssor. A kapott felbontás összege nyilván I lesz, hiszen soronként vizsgálva a (2a) feltétel biztosítja ezt számunkra Tehát (1a) teljesül. (1b) is igaz lesz, hiszen szegmenssorokat összerakva nyilván szegmenst kapunk, míg (1c) triviális. Tegyük fel, hogy zmax = zj  Ekkor nyilván az algoritmus segítségével kapott felbontás ideje zj , hiszen az i. sor esetén a hasznos (nem azonosan nulla) szegmenssorok együtthatójának összege zi lesz (ehhez azt használjuk ki, hogy ha egy szegmenssort sugárzunk x ideig, majd y ideig, akkor az összsugárzási id® ugyanakkora lesz, mintha x + y ideig sugároztuk volna). Tehát beláttuk, hogy I -nek   http://www.doksihu  15  3.3 Az egy sor esete  létezik zmax idej¶ felbontása, viszont ennél jobb nincs, tehát ez a felbontás minimuma, vagyis z ∗ = zmax .   Megjegyzés. Az optimum meghatározása a most belátott állítás segítségével elérhet® O(M N ) id®ben
Ezzel szemben az ehhez tartozó felbontáshoz már több id®re lesz szükség, ugyanis a bizonyításban szerepl® algoritmus nem fut le ennyi id® alatt. Megjegyezzük továbbá, hogy ezt a méretet számos esetben már az output (a szegmenseink) is túllépheti. 3.3  Az egy sor esete  Tehát (1) megoldása helyett elegend® megoldani I minden sorára (2)-t, innen az el®bbi algoritmus segítségével megkaphatunk egy optimális felbontást. Mostantól tehát (2)-t próbáljuk megoldani. Az egyszer¶ség kedvéért az i indexeket elhagyjuk, valamint Ii,. helyett egy adott b vektort kell "kikevernünk" a (2a) feltételben A jobb áttekinthet®ség miatt transzponáljuk le az egész feladatunk, tehát rk és b legyenek oszlopvektorok. Feltehet®, hogy semely k-ra nem lesz rk ≡ 0, hiszen ezeket elhagyhatjuk Ezután minden rk -ról el lehet mondani, hogy az els® néhány koordinátája nulla, majd a következ® néhány (legalább egy) egyes, majd a maradék néhány nulla.
rk -t jelöljük ruv -val, ha az els® egyes koordinátája u és az utolsóé v − 1 (u és v  megfelel az el®z® fejezetben deniált, a nyelvek állását meghatározó li és ri számoknak). Legyen A = {(u, v) : 1 ≤ u ≤ N, u + 1 ≤ v ≤ N + 1}! Nyilvánvaló, hogy |A| = n + (n − 1) + . + 1 = n(n + 1)/2 A feladatunk tehát a következ®:  min z :=  P  (u,v)∈A xuv  (3)  feltéve, hogy: b=  P  (u,v)∈A xuv ruv  (3a)  xuv ≥ 0 ∀(u, v) ∈ A (3b)  Példa. N = 3 esetén A = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)}, tehát z = x12 + x13 + x14 + x23 + x24 + x34 . A (3a) feltételt mátrixos alakban írjuk fel és  már a hálózati modellt el®készítend® beszúrunk egy csupa nulla sort is a végére:   http://www.doksihu  16  3.3 Az egy sor esete      1    0    0  0  1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0    x    12     b 0  x13    1       0   x14   b2  = 
     1   x23   b3         0 0  x24    x34  Természetesen a (3b) feltételnek megfelel®en x12 , x13 , x14 , x23 , x24 , x34 ≥ 0 Más N esetén is vegyünk fel egy csupa nulla sort, majd írjuk át a (3a) feltételt úgy, hogy a mátrix minden sorából (az els® sort kivéve) kivonjuk a felette lév® sort. Ha a b vektort is ennek megfelel®en módosítjuk, akkor nyilvánvalóan egy ekvivalens LP feladatot kapunk Jelölje b0 a módosított b vektort A konstrukciónak köszönhet®en (miszerint az egyesek minden oszlopban egy blokkban helyezkednek el) a módosított feladat egy ruv -nak megfelel® oszlopa egy darab egyest tartalmaz az u. sorban és egy darab (-1)-est a v  sorban, míg a többi érték nulla lesz Tehát a következ® feladatot kaptuk: min z :=  P  (u,v)∈A xuv  (4)  feltéve, hogy: b0 =  0 (u,v)∈A xuv ruv  P  (4a)  xuv ≥ 0 ∀(u, v) ∈ A (4b)  Példa. Az el®bbi példát (N = 3) folytatva a
következ®t kapjuk:   x12           x  1 1 1 0 0 0 b1    13          −1 0 0 1 1 0   x14   b2 − b1    =        0 −1 0 −1 0     1 x b − b2     23   3    0 0 −1 0 −1 −1  x24  −b3   x34   A b ≥ 0 feltételb®l (b vektor eredetileg az I mátrix egyik sora volt, tehát nemnegatív) triviálisan következnek az alábbi észrevételek:   http://www.doksihu  17  3.4 A hálózati modell  1. Észrevétel  PN +1 0 i=1 bi = 0  2. Észrevétel  Pj  3.4  0 i=1 bi ≥ 0  minden j ∈ {1, 2, ., N + 1}-re  A hálózati modell  A kapott lineáris programozási feladatunk egy jól ismert példa a hálózati folyam probléma alkalmazására, például Ahuja és társai is foglalkoznak vele [5] munkájukban. Vezessük be a következ® G = (V, A) irányított gráfot: legyen V = {1, 2, , N + 1} a
csúcshalmazunk és, mint már korábban jeleztük legyen A = {(u, v) :≤ u ≤ N, u + 1 ≤ v ≤ N + 1} az élek halmaza. Minden él költsége legyen 1, míg vala-  mennyi él kapacitása legyen ∞ (az alsó kapacitás legyen minden élen 0). A j  csúcs feleslege vagy igénye legyen b0j .  Példa. N = 3 esetén a következ® gráfot kapjuk:  7. ábra A standard eset gráfja Ha ezen a gráfon megoldunk egy minimális költség¶ folyam problémát, akkor a (4)-gyel egy ekvivalens feladatot oldunk meg, hiszen a (4a) feltétel épp az igények és a feleslegek kiegyenlítését jelenti, míg a (4b) az alsó kapacitásoknak felel meg. A folyam költsége  P  (u,v)∈A xuv  , amely mennyiség minimumát keressük (4)-ben, tehát  a folyam probléma és (4) ekvivalens feladatok. Most pedig belátjuk, hogy a mostani minimális költség¶ folyam problémánk megoldható O(N ) lépésben. Az algoritmus hatékonysága a következ® triviális meggyeléseken múlik:   http://www.doksihu 
3.4 A hálózati modell  18  3. Észrevétel 1) A hálózatunk körmentes, de amúgy teljes lesz (minden olyan (i, j) élt behúzunk, ahol i < j )  2) c ≡ 1; u ≡ ∞ Az algoritmusunk a következ® lesz: kiindulunk az üres folyamból, majd kiválasztjuk az els® olyan csúcsot (u), ahol felesleg van (b0u > 0) és az els® olyat (v ), ahol igény van (b0v < 0). A 2 Észrevétel miatt u < v , hiszen különben j = u estén ellentmondást kapnánk Legyen ezt követ®en xuv = min{|b0u |, |b0v |} (itt kihasználtuk a 3. észrevétel 1) pontjának második felét) Végül b0u értékét lecsökkentjük xuv -val, míg b0v értékét megnöveljük xuv -val. Ugyanezeket a lépéseket csináljuk egészen addig, amíg minden b0i nulla nem lesz. A korábban tett két meggyelésünk a módosított b0 értékek mellett is nyilván fennáll. Az els® észrevétel miatt amíg van valahol felesleg, addig lesz valahol igény is, míg a második észrevétel miatt az els® felesleggel
rendelkez® csúcs mindig megel®zi az els® igénnyel rendelkez®t, tehát az algoritmusunk nem akad el. Minden lépés után valamelyik i csúcs esetén bi nulla lesz, tehát az algoritmusunk O(N )-es lesz, hiszen a lépések konstans idej¶ek (az els® felesleget tartalmazó csúcs és az els® igénnyel rendelkez® csúcs meghatározása folyamatosan történik, azaz mindig 1-el növeljük a megfelel® indexet, amíg megfelel® b-vel rendelkez® csúcsot nem találunk, így összesen tart O(N ) ideig). Azt, hogy az algoritmusunk jó úgy bizonyítjuk, hogy ez egy speciális esete az ismert legrövidebb út algoritmusnak. Ez az algoritmus szintén az üres folyamból indul és mindig az éppen aktuális x folyamhoz tartozó G(x) gráfon dolgozik. G(x) csúcsai megegyeznek G csúcsaival és minden A-beli (i, j) élt egy c((i, j)) költség¶ és rj,i = ui,j − xi,j kapacitású (i, j) és egy −c((i, j)) költség¶ rj,i = xi,j kapacitású (j, i)  éllel helyettesítünk. Ha egy
él kapacitása nulla, akkor elhagyjuk Az algoritmus minden lépésben G(x) egy felesleggel rendelkez® csúcs és egy igénnyel rendelkez® csúcs között megkeresi a legrövidebb utat, módosítja x-et és b-t, és ezt addig csinálja, amíg b ≡ 0 nem lesz. Nyilvánvaló, hogy a mi algoritmusunk ennek egy egyszer¶bb esete  A jobb érthet®ség miatt nézzük csak az algoritmust:   http://www.doksihu  3.4 A hálózati modell  u := min{w : bw > 0}; v := min{w : bw < 0};  amíg u és v értelmes, addig δ := min{bu , −bv }; xuv := δ ; bu := bu − δ ; bv := bv + δ ;  amíg bu ≤ 0, addig u := u + 1;  amíg bv ≥ 0, addig v := v + 1;  19   http://www.doksihu  4. fejezet  Az ütközésmentes eset  4.1  Egy technikai akadály  Bár vannak MLC-k, amelyeknél hasznos az el®z® fejezetben bemutatott módszer, leggyakrabban mégis kénytelenek vagyunk további mellékfeltételeket szabni. Az MLC-k többségénél, technikai okok miatt, a szomszédos sorokban lév®,
egymással szemközt elhelyezked® nyelvek nem nyúlhatnak túl egymáson. Vagyis a korábbi jelölésekkel: ∀i ∈ {2, 3, ., M }-re li ≤ ri−1 és ∀j ∈ {1, 2, , M − 1}-re li ≤ ri+1  Az ilyen beállításoknak megfelel® szegmenseket ütközésmentes szegmenseknek fogjuk hívni. Mint látni fogjuk, ez a feltétel a feladat bonyolultságát jelent®sen megnöveli Ebben a fejezetben bemutatjuk Bolandnak és társainak [6] cikkében tárgyalt eredményét, amely két hálózati modell segítségével is megmutatja, hogy a feladat polinomiális id®ben megoldható. Az els® modell egyegyszer¶ gráfot használ számos mellékfeltétellel, míg a második modell a mellékfeltételek egyszer¶sítését, a hálózatba való beépítését célozza meg. Ebben a modellben egy hálózati folyamproblémát kapunk azzal a mellékfeltétellel, hogy bizonyos éleken a folyamértékek megegyezését követeljük meg. Az így kapott lineáris program LP-megoldóval már hatékonyan
(polinomiálisan) kezelhet®. Összefogalva a következ® feladatot szeretnénk megoldani (L-re most úgy gondolhatunk, mint az összes ütközésmentes szegmens száma): min z ∗ :=  PL  k=1 xk  feltéve, hogy: 20  (5)   http://www.doksihu  21  4.2 Az els® modell  I=  PL  k=1 xk Sk  (5a)  Sk ütközésmentes szegmens ∀k ∈ {1, 2, ., L}-re (5b) xk ≥ 0 ∀k ∈ {1, 2, ., L}-re (5c)  Deníció. Jelölje H egy adott sorban lév® nyelvpár pozícióinak a halmazát, azaz H = {(u, v) : u ∈ {1, 2, .N + 1}, v ∈ {u, u + 1, , N + 1}} Emlékeztetésül meg-  jegyezném, hogy az el®z® fejezetben deniált A halmaz nem engedte meg az u = v esetet, vagyis a csupa nulla sort.  4.2  Az els® modell  Vezessük be a következ® G = (V, A) gráfot: legyen V = {(i, l, r) : i ∈ {1, 2, ., M }, (l, r) ∈ H} ∪ {S, T }  Egy rögzített (i0 , l0 , r0 ) csúcs annak felel majd meg, hogy az i0 . sorban a baloldali nyelv az l0 pozícióban van, míg a jobboldali az r0 -ban. A gráfot úgy
képzeljük el, hogy M szintje van, minden szinten az adott sorhoz tartozó csúcsok helyezkednek el, míg a 0. szinten az S és az M +1 szinten a T mesterséges csúcs van Két csúcs között akkor húzunk be élt, ha szomszédos szinten vannak és a nekik megfelel® beállítások nem ütköznek. Ezen kívül összekötjük még S -et az összes 1 szinten lév® csúccsal és az összes M . szinten lév® csúcsot összekötjük T -vel, valamint behúzzuk a (T, S) élt Ez utóbbi kivételével minden élt lefele irányítunk, azaz a magasabb szint¶ csúcs fele mutatnak. Összefoglalva (lásd 8 ábra): A = {((i, j, r), (i + 1, l0 , r0 )) : i ∈ {1, 2, ., M − 1}, l ≤ r0 , l0 ≤ r}∪ ∪{(S, (1, l, r)) : (l, r) ∈ H} ∪ {((M, l, r), T ) : (l, r) ∈ H} ∪ {(T, S)}  Vegyük észre a következ® két nyilvánvaló állítást:  1. Észrevétel A G gráf a (T, S) élt elhagyva körmentes, vagyis minden kör átmegy a (T, S) élen   http://www.doksihu  22  4.2 Az els® modell 
2. Észrevétel Minden G-beli kör megfelel egy ütközésmentes szegmensnek és minden ütközésmentes szegmens megfelel egy G-beli körnek.  Példa. M = 4, N = 2 esetén a gráfunk a következ® (az éleknek csak egy része van berajzolva, színessel két adott szegmenshez tartozó kört láthatunk):  8. ábra Az M = 4, N = 2 eset A két színessel jelölt kör az alábbi szegmenseknek felel meg (az els® a piros, a második a kék):    1    1    0  0  0     0     1   1 ,   1   1   0 1  0      1    0   0  Mivel minden ütközésmentes szegmens megfelel egy körnek, ezért egy adott felbontásban szerepl® minden ütközésmentes szegmensnek megfeleltethetünk egy   http://www.doksihu  23  4.3 A második modell  folyamot oly módon, hogy a neki megfelel® kör éleinek a folyamértéke az ® együtthatója legyen. Ha egy felbontás esetén ezeket a folyamokat összeadjuk (élenként),
akkor minden felbontásnak megfeleltettünk egy folyamot.  Példa. Tekintsük az alábbi felbontást:   1 0      0 0      2 0                 1 1   5 5   1 1        2∗  = +3∗  1 0   3 2   0 1        3 0 1 0 0 0  Ekkor a következ® folyamot kapjuk: a piros éleken xe = 2 , a kékeken xe = 3, xT S = 5, míg a többi élen x ≡ 0.  Az 1. Észrevétel miatt egy felbontásnak megfelel® folyamban a felbontás ideje épp a (T, S) él folyamértéke lesz. Ez adja nekünk a következ® ötletet: vezessünk be egy költségfüggvényt úgy, hogy cT S = 1, míg különben c ≡ 0. Ezáltal egy folyam költsége épp a (T, S) él költsége lesz, vagyis ahhoz, hogy a feladatunk egy minimális folyamprobléma legyen, már csak az (5a) feltételt kell garantálnunk. Ezt az els® modellben a következ® mellékfeltétellel biztosítjuk: Pj  l=1  PN +1
P r=j+1  e∈A− (i,l,r) xe = Iij  (6) ∀i ∈ {1, 2, ., M }, ∀j ∈ {1, 2, , N }  Emlékeztetésül: A− (i, l, r) az (i, l, r) csúcsba befutó élek halmazát jelöli. A hálózati folyamproblémánk a (6) mellékfeltétellel egy lineáris programozási formulát adnak nekünk, amely segítségével már megkereshetjük az optimális felbontást. A formulában a változók és a feltételek száma polinomiális, így jó algoritmushoz jutottunk. Ezt követ®en érdemes a modellünket átalakítani úgy, hogy minél közelebb kerüljünk egy egyszer¶ folyamproblémához. 4.3  A második modell  Célunk elérésének érdekében szükség lesz a mátrix mez®it jelképez® élekre, melyeken a folyamértéket pontosan meg kívánjuk szabni, vagyis ezen éleken az alsó és a fels®   http://www.doksihu  24  4.3 A második modell  korlátot is Iij -re állítjuk be. Minden szegmensbeállítás egyértelm¶en meghatározza, hogy mely mez®k kapnak sugárzást, így az ezeken a
csúcsokon áthaladó folyamértékekb®l állítjuk össze a megfelel® értékeket. Legyen G0 = (V 0 , A0 ) gráf az alábbi: V 0 := {(i, l, r)1 , (i, l, r)2 : (i, l, r) ∈ V }∪ ∪{(i, j) : i ∈ {1, 2, ., M }, j ∈ {1, 2, , N + 1}} ∪ {S, T } A0 := Aeddigi ∪ Abe ∪ Aki ∪ Aint  Aeddigi := {((i, l, r)2 , (i + 1, l0 , r0 )) : i ∈ {1, 2, ., M − 1}, l ≤ r0 , l0 ≤ r}∪ ∪{(T, S)} ∪ {(S, (1, l, r)1 ) : (l, r) ∈ H} ∪ {((M, l, r)2 , T ) : (l, r) ∈ H} ∪ {(T, S)} Abe := {((i, l, r)1 , (i, l)) : (i, l, r)1 ∈ V 0 )} Aki := {((i, r), (i, l, r)2 ) : (i, l, r)2 ∈ V 0 )} Aint := {((i, j), (i, j + 1) : i ∈ {1, 2, .M }, j ∈ {1, 2, , N })}  Az intenzitás éleken (utolsó halmaz) fels® és az alsó kapacitás is bevezetünk: ∀e = ((i, j), (i, j + 1)) ∈ Aint : u(e) = l(e) = Ii,j . A többi élre l(e) = 0, u(e) = ∞ c továbbra is csak a (T, S) élen 1, különben 0. Nézzük meg, hogy változott meg a  korábbi modellünk! A korábbi csúcsokat kettévágtuk
és a keletkezett két új csúcs között átvezetjük a rajtuk átmen® folyamot azokon az éleken, amelyek azoknak a mez®knek felelnek meg, melyeket sugárzás ér. Ezeken az éleken már beállíthatjuk a kívánt értékeket a kapacitásokkal. Azonban az intenzitás éleken több beállításhoz tartozó kör is keresztülmegy, így ezek összekeveredését csak mellékfeltétellel tudjuk elkerülni: x((i, l, r)1 , (i, l)) = x((i, r), (i, l, r)2 ) (7) ∀(i, l, r) ∈ V  A hálózaton a fenti mellékfeltétellel kell minimális költség¶ folyamot keresnünk. Nyilvánvaló, hogy |V 0 | = O(M N 2 ) és |A0 | = O(M N 4 ) (minden szinten O(N 2 ) csúcs van és két szint közötti O(N 2 ) él a domináns tag), tehát polinomiális algoritmussal megkereshet® a legolcsóbb folyam, vagyis polinomiális id®ben megkaphatjuk a minimális összsugárzási id®t és a hozzá tartozó felbontást.   http://www.doksihu  4.3 A második modell  25  Megjegyzés. A mellékfeltétel miatt a
modell nem biztosítja az egészérték¶séget Erre valójában nincs is szükség, hiszen a sugárzási id®t nagy pontossággal be tudjuk állítani. Kombinatorikus algoritmusokkal ez az eredmény is elérhet®, vázlatosan bemutatjuk ezt is az utolsó fejezetben  Példa. A korábbi példa a kiterjesztett gráfon (az éleknek csak egy része van behúzva; ahol a két kör megegyezik, azokat az éleket lilával jelöltük, továbbá a szemléletesség miatt a kettévágott csúcsokat színeztük az indexelés helyett):   http://www.doksihu  26  4.3 A második modell  9. ábra A kib®vített gráf   http://www.doksihu  5. fejezet  Egy újabb feltétel  5.1  A nyúlvány-és-horony kialakítás  A szomszédos sorokban elhelyezked® nyelvek között mindig van egy kis rés, ezért az ilyen jelleg¶ hibák minimalizálása miatt a nyelvek oldala speciális, úgynevezett nyúlvány-és-horony (tongue-and-groove, továbbiakban TG) kialakítású. Ez a kialakítás segíti az érintkez®
nyelvek közti sugárárnyékolást, azonban ha egy élnek csak az egyik oldalán van nyelv, akkor ezen a részen különféle hibák (alul- vagy túlsugárzás) lépnek fel. Ebben a fejezetben a korábbi feltétel (ütközésmentesség) megtartása mellett úgy keressük a minimális összsugárzási id®t, hogy a TG hiba minimális legyen. A problémával [5]-ben találkozhatunk, most azonban az el®z® fejezetben bemutatott modelleket fogjuk úgy módosítani, hogy az újabb feltételnek is megfeleljünk.  Deníció. Egy A = (aij )i∈{1,2,,M },j∈{1,2,,N } (nemnegatív) mátrix TG-hibája a következ®: T G(A) =  M −1 X N X  |aij − ai+1,j |  i=1 j=1  Deníció. Azt mondjuk, hogy két M ∗ N -es mátrix (A és B) kompatibilis prolú, ha minden i ∈ {1, 2, ., M − 1} és j ∈ {1, 2, , N } esetén teljesül a következ® két állítás: 1) aij ≤ ai+1,j esetén bij ≤ bi+1,j 27   http://www.doksihu  28  5.1 A nyúlvány-és-horony kialakítás  2) aij ≥ ai+1,j esetén
bij ≥ bi+1,j Az alábbi két észrevétel triviális módon adódik a deníciókból:  1. Észrevétel T G(cA) = cT G(A) (c tetsz®leges valós) 2. Észrevétel T G(A + B) ≤ T G(A) + T G(B) és egyenl®ség akkor és csak akkor van, ha A és B kompatibilis prolú.  Deníció. Egy I =  PL  k=1 xk Sk  (nemnegatív) felbontás TG-hibája:  T G({xk }, {Sk }) =  L X  xk T G(Sk )  k=1  Állítás. Legyen I =  PL  k=1 xk Sk  , ahol minden változó nemnegatív. Ekkor:  T G(I) ≤ T G({xk }, {Sk })  és egyenl®ség akkor és csak akkor van, ha minden Sk azonos prolú I -vel.  Bizonyítás. A két Észrevétel többszöri alkalmazásával az állítás nyilvánvaló  Meghatároztuk tehát, hogy milyen szegmensek szerepelhetnek a felbontásban, ha a TG-hibát minimális szinten kívánjuk tartani. Jelöljük az I -vel kompatibilis prolú, ütközésmentes szegmensek halmazát U (I)-vel. A feladatunk tehát a következ®: min z ∗ :=  PL  k=1 xk  (8)  feltéve, hogy: I=  PL  k=1 xk Sk
 (8a)  Sk ∈ U (I) ∀k ∈ {1, 2, ., L}-re (8b) xk ≥ 0 ∀k ∈ {1, 2, ., L}-re (8c)  Bárász Mihály cikkében ([5]) egyrészt átfogalmazza a feladatot egy lineáris programozási feladattá, amely biztosít egy hatékony algoritmust, másrészt mutat egy kombinatorikus algoritmust, amely lineáris id®ben megadja az optimális összsugárzási   http://www.doksihu  5.2 A minimális TG-hiba modellezése  29  id®t (lásd az utolsó fejezetben), igaz felbontást nem mutat hozzá (mint a 3. fejezetben említettük, rossz esetben már az output mérete is túl nagy lehet, így nem is létezhet lineáris algoritmus). Ennek az eredménynek els®sorban elméleti jelent®sége van, hiszen különféle heurisztikus algoritmusok eredményességét lehet gyorsan meghatározni. A kombinatorikus algoritmus biztosítja az egészérték¶séget is, ellentétben az el®z® fejezet most bemutatásra kerül® modelljének módosított verziójával Látható tehát, hogy nem mindig érdemes
feltétlenül ezt a módszert követni, bizonyos esetekben más algoritmusok a célravezet®bbek.  5.2  A minimális TG-hiba modellezése  Az el®z® fejezetben bemutatott modellek szinte teljesen megfelelnek a mostani feladat ábrázolásához, csupán néhány élt kell elhagynunk, hogy a nem I -kanonikus szegmensek ne fordulhassanak el® a felbontásban. Pontosabban fogalmazva az el®z® fejezet els® modelljében szerepl® A els® részében szerepl® feltétel a következ®kkel (9) egészítend® ki: 1) (l < l0 ) ⇒ ∀j ∈ [l, l0 ) : Iij ≥ Ii+1,j (9a) 2) (l > l0 ) ⇒ ∀j ∈ [l0 , l) : Iij ≤ Ii+1,j (9b) 3) (r < r0 ) ⇒ ∀j ∈ [r, r0 ) : Iij ≤ Ii+1,j (9c) 4) (r > r0 ) ⇒ ∀j ∈ [r0 , r) : Iij ≥ Ii+1,j (9d) Vagyis egy I intenzitásmátrix minimális TG-hibájú ütközésmentes felbontásai közül a minimális összsugárzási id®t adót meghatározásához a következ® G = (V, A) gráfon kell a minimális költség¶ folyamot keresni a (6)
mellékfeltétel mellett: V = {(i, l, r) : i ∈ {1, 2, ., M }, (l, r) ∈ H} ∪ {S, T } A = {((i, j, r), (i + 1, l0 , r0 )) : i ∈ {1, 2, ., M − 1}, l ≤ r0 , l0 ≤ r, (9)}∪ ∪{(S, (1, l, r)) : (l, r) ∈ H} ∪ {((M, l, r), T ) : (l, r) ∈ H} ∪ {(T, S)}   http://www.doksihu  30  5.2 A minimális TG-hiba modellezése  Példa. M = 2, N = 3 esetén, ha  I=  1 5 2 2 3 4     akkor:  10. ábra A minimális TG-hiba esete Természetesen ezt a modellt is átalakíthatjuk a korábbihoz hasonló módon. Ebben a modellben egyedül Aeddigi -t kell értelemszer¶en módosítani a (9) feltétel segítségével, az így kapott modellben már csak (7) lesz mellékfeltételként.   http://www.doksihu  6. fejezet  A minimális felbontásszám  6.1  Burkard tétele kétsoros mátrixra  Ebben a fejezetben nem a felbontási id®t fogjuk vizsgálni, hanem a felbontásszámot. A problémára 2002-ben adott választ Burkard [6] cikkében, mégpedig negatívat Az alábbi tétel
belátásával bizonyította, hogy a minimális szegmensszámú felbontás meghatározása NP-nehéz:  Tétel (Burkard). Legyen a1 , a2 , , an adott Ekkor az alábbi A mátrixnak akkor és csak akkor van felbontása n szegmens nemnegatív kombinációjára, ha létezik az {1, 2, ., n} számoknak olyan {i1 , i2 , , ik } részhalmaza, amelyre ai1 +ai2 ++ain = M.   A=  a1  0  a2  0  a3  . an  M M M M M M M     Megjegyzés. Az utóbbi probléma ismert NP-nehéz feladat 6.2  Baatar tétele egysoros mátrixra  2005-ben Baatar és társai [4]-ben a következ® tétellel belátták, hogy már egysoros mátrixok esetén is NP-nehéz a feladat:  31   http://www.doksihu  32  6.2 Baatar tétele egysoros mátrixra  Tétel. Tekintsük az alábbi két problémát: Felbontásszám probléma (DC) Adott: A = (a1 , a2 , ., aN ), K pozitív egész szám Kérdés: létezik-e I -nak felbontása legfeljebb K darab szegmensre.  Hármas particionálás (Three Partitioning, 3-PART) Adott: B, Q, b1 ,
b2 , ., b3Q pozitív egész számok, melyekre  P3Q  j=1 bj = QB  és min-  den j -re B/4 < bj < B/2. Kérdés: létezik-e a {b1 , ., b3Q } számoknak felosztása T1 , T2 , , TQ hármasokra, hogy  P  b∈Tq b = B  minden q ∈ {1, 2, ., Q}-ra  Legyen: 1) N := 4Q 2) ha n ≤ 3Q, akkor an :=  Pn  j=1 bj  , különben an := (4Q − n + 1)B  3) K := 3Q Állítás: A két problémára ugyanakkor lesz igen a válasz.  Megjegyzés. A hármas particionálás ismert NP-nehéz feladat Bizonyítás. Ha a 3-PART-ra igen a válasz, akkor a következ® felbontása lesz Anak: ha bj ∈ Tq , akkor Sj esetén legyen l = j, r = 3Q + q + 1 (most csak egy sorunk van). xj pedig legyen bj  Nyilván K darab szegmensünk lesz és könnyen ellen®rizhet®, hogy el®állítottuk A-t, tehát az egyik iránnyal készen vagyunk. Mivel A els® 3Q eleme monoton növ®, ezért A felbontásában biztosan pontosan K darab szegmens van. Jelöljük a Sq -t intervallumként: Iq = [lq , rq ) (lq és rq l-  nek és
r-nek felel meg az Sq szegmens esetén). Vegyünk A-nek azt a {Iq , xq }, q ∈ {1, 2, ., 3Q} (K elem¶) felbontását, amelyre az intervallumok összhossza maximális  Az általánosság rovása nélkül feltehetjük, hogy lq = q (az els® 3Q mez® mindegyikében kell kezd®dnie intervallumnak). Figyeljük meg az alábbiakat: 1) Ebben a felbontásban semely p, q ∈ {1, 2, ., 3Q}-ra nem lesz lq = rp , mert különben Ip és Iq helyett vehetnénk Ip ∪ Iq -t min{xp , xq } együtthatóval és Ip -t vagy Iq -t a maradék együtthatóval, így n®ne az intervallumok összhossza.  2) rq > 3Q∀q ∈ {1, 2, ., 3Q}, mivel az els® 3Q mez® mindegyikéb®l indul intervallum, de 1) miatt ezekben a mez®kben nem lehet vége intervallumnak   http://www.doksihu  6.2 Baatar tétele egysoros mátrixra  33  3) rq 6= 3Q + 1∀q ∈ {1, 2, ., 3Q}, mert a3Q = a3Q+1 , tehát valamelyik intervallumnak kéne kezd®dnie 3Q + 1-ben is, hogy kiegyenlítsük a két mez®t, de ez nem lehet. 4) Az eddigiek
miatt minden intervallum vége (rq ) a {3Q + 2, 3Q + 3, ., 4Q + 1} halmazban van. Legyen bj ∈ Tq ⇔ rj = 3Q+j +1. A deníciója mutatja, hogy jól particionáltunk (az elemek B -esével csökkennek az utolsó Q mez®n), tehát beláttuk a másik irányt is.   Megjegyzés. Bizonyos speciális alakú mátrixokra (például bináris mátrixokra és konstansszorosaikra) ismert polinomiális algoritmus. Ennek azonban csak elméleti jelent®sége van, a gyakorlatban jól közelít®, heurisztikus algoritmusokat használnak. Egy ilyen algoritmus megtalálható például [4]-ben.   http://www.doksihu  7. fejezet  Az egészérték¶ség problémája  Az utolsó fejezetben felvázoljuk a kombinatorikus módszert, amely biztosítja számunkra az egészérték¶séget is. Mint már említettük erre a gyakorlatban nincs szükség, azonban számos esetben (például a minimális felbontásszám közelítésére) kombinatorikus módszert használnak, továbbá így hasonló problémák
megoldásához is jól hasznosítható algoritmust kapunk. Ebben a részben [4] és [5] segítségével bemutatjuk, hogyan biztosítható az egészérték¶ség az ütközésmentes, illetve a minimális TG-hibájú esetben. Ez a fejezet csak egy vázlatot ad, részletes bizonyítások és a kombinatorikus módszer további felhasználásai a fenti forrásokban találhatóak.  7.1  A kanonikus felbontás  Deníció. Egy S szegmens esetén legyen L(S) egy olyan M ∗ (N + 1)-es mátrix, amelyben minden i ∈ {1, 2, ., M } esetén, az i sorban pontosan az li  mez®ben van egyes, különben minden eleme nulla. Egy {ck , Sk } felbontás esetén legyen L := P  ck ∗L(Sk ), amelyre baloldali végpontok mátrixaként fogunk hivatkozni. Hasonlóan  deniáljuk az R mátrixot is (jobboldali végpontok mátrixa).  Észrevétel. Könnyen látszik, hogy L és R minden sorösszege megfelel a felbontás idejének.  Deníció. Tetsz®leges M ∗ N -es I mátrix esetén legyen I d azaz M ∗ (N +
1)-es mátrix, amire Iijd = Ii1 , ha j = 1; Iij − Ii,j−1 , ha j ∈ {2, 3, ., N }; és −IiN , ha 34   http://www.doksihu  35  7.1 A kanonikus felbontás  j = N + 1.  Észrevétel. Nyilvánvaló, hogy L − R = I d  A következ® tétel segítségével jól jellemezhetjük az L és R mátrixokat:  1. Tétel L és R pontosan akkor tartoznak I egy ütközésmentes felbontásához, ha L − R = I d és minden i = 1, ., M − 1-re és t = 1, , N -re (i) t X j=1  és (ii)  t X j=1  lij ≥  t X  ri+1,j  j=1  li+1,j ≥  t X  ri,j  j=1  Egy a fenti feltételekkel adott L és R mátrixpár több különböz® felbontáshoz is tartozhat (de ezek ideje ugyanakkora), mi azonban kiemelünk közülük egyet, így megfeleltetjük a speciális felbontásokat és a mátrixpárokat egymásnak. Mostantól tehát elég lesz L és R mátrixokat meghatározni.  Deníció. Egy {[xk , yk ]} intervallumrendszer kanonikus, ha nincs két olyan intervalluma, hogy az egyik szigorúan tartalmazza a másikat
Egy szegmensrendszer kanonikus, ha minden sorára megszorítva kanonikus intervallumrendszert kapunk (egy szegmens sora alatt az [li , ri ) intervallumot értjük). Egy ({ck }, {Sk }) felbontás kanonikus, ha a szegmensei kanonikus rendszert alkotnak. L és R segítségével könnyedén megkaphatjuk azt a hozzátartozó kanonikus fel-  bontást, amelyben nincsenek nulla együtthatójú szegmensek és amelyben semely szegmens nem szerepel kétszer. Az algoritmusból könnyen látszik, hogy amennyiben L és R elemei egészek, abban az esetben minden részeredmény, így a ck együtt-  hatók is egészek lesznek, tehát a kés®bbiekben csak L és R egészérték¶ségével kell foglalkoznunk:   http://www.doksihu  36  7.2 Kanonikus felbontás minimális TG-hiba esetén  k := 1  amíg L 6= 0 Minden i-re legyen αil az L i. sorának els® nem 0 eleme és li ennek az indexe Hasonlóan deniáljuk R mátrix esetén az αir és az ri változókat. l r Sk := ([li , ri )), ck := min{α1l , .,
αM , α1r , ., αM }  L i. sorának li  eleméb®l kivonunk ck -t, R-re hasonlóan k := k + 1  7.2  Kanonikus felbontás minimális TG-hiba esetén  Ha a TG-hibát is minimalizálni szeretnénk, akkor hasonlóan kell eljárnunk. Az alábbi tétel megmutatja, hogy ezt megtehetjük:  2. Tétel A minimális felbontási idej¶ I -kompatibilis (minimális TG-hibájú) felbontások között van kanonikus  Bizonyítás (vázlat). Megmutatjuk, hogy minden felbontáshoz létezik egy kanonikus felbontás is ugyanakkora felbontási id®vel Ha a felbontásunkban van két szegmens (S és S 0 ) melyek nem kanonikusak (azaz van olyan soruk, ahol li < li0 ≤ ri0 < ri , vagy fordítva), akkor ezt a két szegmenst ki tudjuk úgy cserélni  (legfeljebb) három szegmensre, hogy a sorokat kicseréljük a [min(li , li0 ), min(ri , ri0 )), [max(li , li0 ), max(ri , ri0 )) sorokra (értsd: ezekben az intervallumukban lesznek egye-  sek) és a nagyobb együtthatóval rendelkez® szegmens i. sorára Az
így kapott három szegmens már I -kompatibilis lesz (ez egyszer¶ esetvizsgálattal adódik), továbbá az együtthatók könnyedén beállíthatóak úgy, hogy minden feltételt kielégítsünk. Amíg van a kanonikusságot sért® szegmenspár, addig folyamatosan cserélünk. Az eljárásunk során (feltéve, hogy I egész együtthatós) a  P  k ck  PM i  (rk,i −lk,i )2 kifejezés min-  den lépésben legalább eggyel csökken, így véges algoritmust kaptunk, tehát készen vagyunk (rk,i illetve lk,i az Sk szegmens esetén jelöli ri -t, illetve li -t).  A fejezet els® tételéhez hasonló tételt kaphatunk a minimális TG-hibájú esetben   http://www.doksihu  37  7.3 Az optimális felbontás meghatározása  is:  3. Tétel L és R pontosan akkor tartoznak I egy minimális TG-hibájú ütközésmentes felbontásához, ha L − R = I d és minden i = 1, , M − 1-re és t = 1, , N -re (i)  t X  lij ≥  j=1  és (ii)  t X  t X  ri+1,j  j=1  li+1,j ≥  j=1  t X  ri,j  j=1  ha
Ii,t ≤ Ii+1,t , akkor (iii) t X  és (iv)  lij ≤  t X  j=1  j=1  t X  t X  rij ≥  j=1  j=1  t X  t X  li+1,j  ri+1,j  ha pedig Ii,t ≥ Ii+1,t , akkor (v)  és (vi)  j=1  t X  t X  j=1  7.3  lij ≥  j=1  rij ≤  li+1,j  ri+1,j  j=1  Az optimális felbontás meghatározása  A fejezet korábbi részein már beláttuk, hogy egy optimális megoldás el®állításához elegend® meghatározni az L és R mátrixokat. Ezek ismeretében a kanonikus felbontás algoritmusa már biztosít számunkra egy optimális felbontást Azt is beláttuk, hogy az együtthatók egészérték¶ségét L és R egészérték¶sége biztosítja. Ebben a részben egy O(M N )-es algoritmussal el®állítjuk L-t és R-t, továbbá belátjuk, hogy mindkett® elemei egészek lesznek.   http://www.doksihu  38  7.3 Az optimális felbontás meghatározása  Fogalmazzuk át a problémát: az, hogy L és R nemnegatív, továbbá L − R = I d pont annak felel meg, hogy egy nemnegatív W -re L = I+d + W és R =
I−d + W (I+d és I−d I d pozitív és negatív része koordinátánként). Ez a meggyelés koordinátánként  nézve triviális. Tehát elegend® W -t meghatározni Könnyen belátható, hogy az L és R mátrixok jellemzésére használt 1. illetve 3. tétel feltételei mind átírhatóak W segítségével Például (i) esetén a következ®t kapjuk:  t X  (wij − wi+1,j ) ≥  j=1  t X  d ((Ii+1,j )− − (Iijd )+ )  j=1  A többi feltétel is átírható hasonló alakra, így a következ® feladatot kell megoldanunk (a felbontás ideje megegyezik L és R tetsz®leges sorának összegével, amely akkor minimális, ha W tetsz®leges sorösszege minimális):  min  PM +1 j=1  w1j (10)  feltéve, hogy: dit ≤  Pt  j=1 (wij − wi+1,j ) ≤ eit  Minden i ∈ {1, 2, .M − 1}-re t ∈ {1, 2, , N + 1}-re (10a) W ≥ 0 (10b)  A (10a) feltételben dit és eit rögzített I -t®l függ® számok (ütközésmentes esetben (i) és (ii) segítségével kaphatóak meg, míg minimális
TG-hiba esetén (i)-(vi) segítségével). A következ® lemma azt mutatja meg, hogy az optimális W -t megkaphatjuk úgy, hogy oszloponként határozzuk meg:  1. Lemma Ha W (10) egy megengedett megoldása, ennek k oszlopa wk , és w' egy olyan nemnegatív M dimenziós oszlopvektor, amely koordinátánként kisebb wk -nál és dik ≤  k−1 X  0 (wij − wi+1,j ) + wi0 − wi+1 ≤ eik  j=1  akkor W k. oszlopát w'-re, k + 1-et wk+1 − w' + wk -ra cserélve szintén megengedett megoldást kapunk ugyanakkora célfüggvénnyel.   http://www.doksihu  39  7.3 Az optimális felbontás meghatározása  Bizonyítás. Egyedül t = k feltétel esetén változnak (10a)-ban a feltételek, de ennek fennállását a lemma feltétele biztosítja (10b) és a célfüggvény változatlansága triviális.  A lemma miatt W -t meghatározhatjuk oszloponként, ha minden sorban a minimális értéket írjuk be (hamarosan látni fogjuk, hogy ezt megtehetjük). Tehát, ha az els® k − 1
oszlop ismert, akkor a következ® feladat megoldásával kapjuk wk -t: 0 ) (11) min (w10 , .wM  feltéve, hogy: 0 wi+1 − wi0 ≤  Pk−1  (11a)  0 − wi0 ≥ wi+1  Pk−1  (11b)  j=1 (wij − wi+1,j ) − dit j=1 (wij − wi+1,j ) − eit  wi0 ≥ 0 (11c) ∀i ∈ {1, 2, ., M − 1}  (11)-ben a minimumot úgy értjük, hogy minden koordinátájában kisebb egyenl®, mint bármely más megengedett megoldás megfelel® koordinátája. Ha találunk (11)nek megoldását és W k oszlopának ezt véve minden k-ra jó megoldáshoz jutunk, hiszen semelyik koordinátáját nem tudjuk tovább csökkenteni, így a sorösszeg minimális lesz. A feladatunkat kicsit általánosabban fogalmazva a következ®t kell megoldanunk: min (x1 , .xM ) (12) feltéve, hogy: xi+1 − xi ≤ fi (12a) xi+1 − xi ≥ gi (12b) xi ≥ 0 (12c) ∀i ∈ {1, 2, ., M − 1}  A következ® lemma biztosítja, hogy lesz koordinátánként minimális megoldásunk:  2. Lemma Ha x és x0 két megoldása (12)-nek, akkor a
koordinátánként vett minimumuk is megoldása lesz (12)-nek.   http://www.doksihu  7.3 Az optimális felbontás meghatározása  40  Bizonyítás. Tekintsük (12a)-t egy tetsz®leges i esetén Feltehetjük, hogy xi ≤ x0i  Ekkor min{xi+1 , x0i+1 } ≤ xi+1 ≤ xi + fi = min{xi , x0i } + fi . (12b) hasonlóan kapható meg, míg (12c) triviális.  A következ® vázlatos algoritmus el®állítja nekünk az optimális x vektort. Az algoritmus három részb®l fog állni. El®ször egy (12b)-t kielégít® megoldást adunk: x1 = 0, xi =  Pi−1  l=1 gl  , ha i > 1. Ezután az egész sorozatot megemeljük úgy, hogy a  legkisebb eleme 0 legyen (így kielégítjük (12c)-t), az els® 0 el®tti elem indexe legyen k . Végül amíg k ≥ 1, addig az x1 , , xk kezd®szeletet eltoljuk lefele annyival, hogy  a feltételeink ((12a) és (12c)) ne sérüljenek. Ha (12a) miatt állunk meg, akkor k-t eggyel csökkentjük, különben a nullává vált elem elé állítjuk. A feltételek
fennállása némi esetvizsgálat után könnyen adódik, míg az optimalitás valamivel bonyolultabban indukcióval jön ki. Nyilvánvaló, hogy ha az elején minden egész volt, akkor a végén is minden az maradt, így W egész együtthatós lesz, ezért L és R is, vagyis a felbontás együtthatói is. Érdemes megjegyezni továbbá, hogy a módszer O(M N ) id®ben adja meg az optimális felbontás idejét (vagyis például L egy sorának összegét), tehát a módszer ilyen téren is optimális.   http://www.doksihu  Irodalomjegyzék  [1] R. K Ahuja, H W Hamacher, A Network Flow Algorithm to Minimize Beam-  On Time for Unconstrained Multileaf Collimator Problems in Cancer Radiation Therapy, Networks (2005), 36-41. [2] R. K Ahuja, T L Magnanti, J B Orlin, Network ows: Theory, algorithms,  and applications, Prentice-Hall, Englewood Clis, NJ (1993) [3] R. K Ahuja, T L Magnanti, J B Orlin, M R Reddy: Applications of Network  Optimalization in: Network models (M. O Ball, T L
Magnanti, C L Monma, G. L Nemhauser), Elsevier (1995) [4] D. Baatar, H W Hamacher, M Ehrgott, G J Woeginger, Decomposition of in-  teger matrices and multileaf collimator sequencing, Research Report, Department of Mathematics, University of Kaiserslautern, Germany (2004) [5] Bárász M., Egy daganatos betegségek sugárkezelésénél felmerül® optimalizációs  probléma vizsgálata, Publikálatlan kézirat (2006) [6] N. Boland, H W Hamacher, F Lenzen, Minimizing Beam-On Time in Cancer  Radiation Treatment Using Multileaf Collimator, Networks 43 (2004) 226-240. [7] R. E Burkard, Open research question section of Oberwolfach conference, (2002) [8] http://varian.mediaroomcom  41