Rendszeroptimalizalas - Jordan Tibor, Recski Andras, Szeszler David

March 31, 2017 | Author: Roy Roy | Category: N/A
Share Embed Donate


Short Description

Download Rendszeroptimalizalas - Jordan Tibor, Recski Andras, Szeszler David...

Description

Tartalomjegyzék 1 Lineáris programozás 1.1. Az optimális hozzárendelés problémája . . . . . . . . . . . 1.2. A lineáris programozás alapfeladata . . . . . . . . . . . . . 1.3. A megoldhatóság vizsgálata . . . . . . . . . . . . . . . . . 1.3.1. Fourier–Motzkin elimináció . . . . . . . . . . . . . 1.3.2. Farkas-lemma . . . . . . . . . . . . . . . . . . . . . 1.4. Dualitás . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1. A célfüggvény korlátossága . . . . . . . . . . . . . 1.4.2. A lineáris programozás dualitástétele . . . . . . . . 1.4.3. A lineáris programozás bonyolultsága . . . . . . . . 1.5. Egészérték˝u programozás . . . . . . . . . . . . . . . . . . . 1.5.1. Az egészérték˝u programozás alapfeladata . . . . . . 1.5.2. Az egészérték˝u programozás bonyolultsága . . . . . 1.5.3. Korlátozás és szétválasztás . . . . . . . . . . . . . . 1.6. Totális unimodularitás . . . . . . . . . . . . . . . . . . . . . 1.6.1. Totálisan unimoduláris mátrixok . . . . . . . . . . . 1.6.2. Alkalmazás páros gráfokra . . . . . . . . . . . . . . 1.6.3. Alkalmazás hálózati folyamokra . . . . . . . . . . . 1.6.4. Alkalmazás intervallumgráfokra . . . . . . . . . . . 1.6.5. Bázismegoldások . . . . . . . . . . . . . . . . . . . 1.7. Szimplex módszer . . . . . . . . . . . . . . . . . . . . . . . 1.7.1. Az alapfeladat kanonikus alakja . . . . . . . . . . . 1.7.2. Szimplex módszer adott bázismegoldásból kiindulva 1.7.3. Kezdeti bázismegoldás keresése . . . . . . . . . . . 1.7.4. A szimplex módszer a gyakorlatban . . . . . . . . . 1.7.5. Változatok a szimplex módszerre . . . . . . . . . . 1.8. Ajánlott irodalom . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

9 9 13 16 16 18 21 21 24 25 26 27 27 29 32 32 34 36 40 41 47 47 50 54 55 63 65

2 Matroidok 2.1. Matroidok alaptulajdonságai 2.2. Duális matroid, minorok . . 2.3. Mátrixok és matroidok . . . 2.4. Matroidok összege . . . . .

. . . .

. . . .

. . . .

. . . .

66 66 73 77 81

. . . .

. . . . 5

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

TARTALOMJEGYZÉK

6 2.5. Matroidok metszete . . . . . . . . . . . . 2.6. Matroidmetszet-algoritmus . . . . . . . . 2.7. A matroidpárosítási probléma . . . . . . . 2.8. Mátrixok és matroidok II. . . . . . . . . . 2.9. Matroidelméleti tulajdonságok jellemzése 2.10. Ajánlott irodalom . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

84 86 88 89 92 93

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

94 95 96 97 98 100 102 102 103 106

4 Ütemezési algoritmusok 4.1. Alapfogalmak, problématípusok . . . . . . 4.2. Egygépes ütemezések . . . . . . . . . . . . 4.3. Ütemezés párhuzamos gépeken . . . . . . . 4.3.1. Listás ütemezés a P Cmax feladatra 4.3.2. P prec Cmax . . . . . . . . . . . . . 4.4. Két megoldott eset . . . . . . . . . . . . . 4.5. Ládapakolás . . . . . . . . . . . . . . . . . 4.6. Ajánlott irodalom . . . . . . . . . . . . . . 4.7. Függelék . . . . . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

107 107 108 109 110 112 113 117 117 118

5 Megbízható hálózatok tervezése 5.1. Hálózatok megbízhatósága . . . . . . . . . . . . . . . . . . 5.2. Gráfok összefügg˝osége . . . . . . . . . . . . . . . . . . . . 5.3. Az összefügg˝oség kiszámítása . . . . . . . . . . . . . . . . 5.4. Többszörösen összefügg˝o részgráfok . . . . . . . . . . . . . 5.4.1. Minimális költség˝u feny˝ok . . . . . . . . . . . . . . 5.4.2. Minimális méret˝u kétszeresen összefügg˝o részgráfok 5.4.3. Az összefügg˝oség növelése . . . . . . . . . . . . . . 5.5. Diszjunkt feny˝ok és feszít˝ofák . . . . . . . . . . . . . . . . 5.5.1. Többszörösen összefügg˝o irányítások . . . . . . . . 5.6. Ajánlott irodalom . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

122 122 122 124 126 127 128 129 132 135 137

6 VLSI hálózatok huzalozása 6.1. A huzalozási feladat . . . . . . . . . . . . . . . . 6.1.1. A huzalozási feladat szemléletes leírása . 6.1.2. A huzalozási feladat matematikai leírása . 6.2. A Gallai-algoritmus és alkalmazásai . . . . . . . 6.2.1. Egysoros huzalozás két rétegen . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

138 138 139 141 142 142

3 Közelít˝o algoritmusok 3.1. Közelítés kis additív hibával . . . . . 3.2. Közelítés kis multiplikatív hibával . . 3.2.1. A halmazfedési feladat . . . . 3.2.2. Steiner-fák . . . . . . . . . . 3.2.3. Az utazó ügynök probléma . . 3.3. Az euklidészi utazó ügynök probléma 3.3.1. Konstrukciók . . . . . . . . . 3.3.2. Javítások . . . . . . . . . . . 3.4. Ajánlott irodalom . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

TARTALOMJEGYZÉK

6.3.

6.4. 6.5. 6.6.

7

6.2.2. A Gallai-tétel gráfelméleti vonatkozása 6.2.3. Egysoros huzalozás egy rétegen . . . . 6.2.4. Csatornahuzalozás k rétegen . . . . . . Csatornahuzalozás kevés rétegen . . . . . . . . 6.3.1. 2 réteg, Manhattan-modell . . . . . . . 6.3.2. 2 réteg, megszorítás nélküli modell . . 6.3.3. 3 réteg, Manhattan-modell . . . . . . . Switchboxhuzalozás . . . . . . . . . . . . . . Éldiszjunkt huzalozás . . . . . . . . . . . . . . Ajánlott irodalom . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

144 145 146 148 148 149 151 153 155 159

7 Hálózatelméleti alkalmazások 7.1. Bevezetés . . . . . . . . . . . . . . . . . . . 7.2. Ellenállás-hálózatok . . . . . . . . . . . . . . 7.3. Kirchhoff „topológiai formulái” . . . . . . . 7.4. Általánosítás kétpólusú alkatrészek esetén . . 7.5. Általánosítás többpólusú alkatrészek esetén . 7.5.1. Ideális transzformátorok és girátorok 7.5.2. Lineáris n-kapuk . . . . . . . . . . . 7.6. Dualitás . . . . . . . . . . . . . . . . . . . . 7.7. Algoritmikus kérdések . . . . . . . . . . . . 7.8. Ajánlott irodalom . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

160 160 160 162 164 166 166 167 169 170 171

8 Néhány alkalmazás a statikában 8.1. Mikor merev egy rúdszerkezet? . . . . . . . 8.1.1. A rúdszerkezet mátrixa . . . . . . . 8.1.2. Valódi és infinitezimális mozgások . 8.2. A rudakban ébred˝o er˝ok kiszámítása . . . . 8.2.1. A rúdszerkezetek osztályozása . . . 8.2.2. Maxwell–Cremona-diagram . . . . 8.3. Minimális merev rúdszerkezetek . . . . . . 8.3.1. Generikus merevség . . . . . . . . 8.3.2. Laman, Lovász és Yemini tételei . . 8.4. Rúdszerkezetek rögzítése . . . . . . . . . . 8.5. 3-dimenziós rúdszerkezetek . . . . . . . . . 8.6. Síkbeli négyzetrácsok átlós rudakkal . . . . 8.7. Síkbeli négyzetrácsok átlós huzalokkal . . . 8.8. Egyszintes épületek átlós rudakkal . . . . . 8.9. Két további megjegyzés . . . . . . . . . . . 8.10. Ajánlott irodalom . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

172 172 172 174 175 175 176 179 179 181 183 184 185 186 187 189 189

. . . . . . . . . . . . . . . .

El˝oszó A huszadik század közepén sokan gondolták, hogy a véges sok eset átvizsgálásával megoldható matematikai problémák a számítógépek elterjedésével érdektelenné válnak. A tapasztalat azóta megcáfolta ezt a vélekedést: a gyakorlati élet számos olyan feladatot vet fel, amelyekben az összes eset kipróbálása még számítógéppel is reménytelenül sokáig tartana. Ha például néhány várost olyan sorrendben kell végiglátogatni, hogy az útiköltség a legkedvez˝obb legyen, akkor az összes lehetséges sorrend átvizsgálása a ma elképzelhet˝o legmodernebb szuperszámítógéppel már 30 város esetén is tovább tartana, mint a Naprendszer várható élettartama. Éppen ezért a huszadik század második felét˝ol gyors fejl˝odésnek indult az olyan módszerek kutatása, amelyek az egyszer˝u próbálgatásnál jóval hatékonyabban oldják meg a gyakorlati életb˝ol származó feladatokat. A matematikának több, egymást részben átfed˝o ága foglalkozik ilyen kérdésekkel: az operációkutatás, a számítástudomány és a kombinatorikus optimalizálás. Könyvünkben ezeknek a tudományterületeknek az anyagából válogatunk. Az els˝o négy fejezetben általánosabb, átfogó módszereket mutatunk be, a hátralév˝o négy fejezetben pedig konkrét esettanulmányokban alkalmazzuk a kombinatorikus optimalizálás módszereit. A könyv eredetileg a BME-n a m˝uszaki informatikus hallgatók számára tartott Rendszeroptimalizálás cím˝u, valamint az alkalmazott matematikus hallgatók számára tartott Kombinatorikus optimalizálás cím˝u tárgyakhoz készült. Azt reméljük azonban, hogy a tudományegyetemek matematikusképzésében meghirdetett, hasonló témájú tárgyak hallgatói is haszonnal forgathatják. A könyv megértéséhez szükséges el˝oismeretek nem lépik túl az alapképzésében oktatott matematikai alapm˝uveltség szintjét (lineáris algebra, gráfelmélet és algoritmuselmélet elemei). A könyv megírásához felhasználtuk Jordán Tibor és Recski András egy korábbi egyetemi jegyzetét, valamint két kollégánk, Csákány Rita és Radics Norbert meg nem jelent kéziratainak részleteit. Nagyon hálásak vagyunk továbbá Frank Andrásnak, akinek Operációkutatás cím˝u egyetemi jegyzetét az 1. fejezet megírásánál felhasználtuk, és akinek egyéb egyetemi el˝oadásai a könyv több más fejezetére is hatással voltak. Köszönetet mondunk még Helle Zitának, Salamon Gábornak, Szeg˝o Lászlónak és Wiener Gábornak, akik a könyv egyes fejezeteihez számos értékes észrevételt tettek. Végül köszönjük a „Pro Renovanda Cultura Hungariæ” alapítvány „Tudomány az oktatásban” szakalapítványának a könyv megírásához nyújtott támogatását. 8

1. fejezet

Lineáris programozás A lineáris programozás olyan átfogó technikának tekinthet˝o, amelynek a keretében számos optimalizációs probléma megfogalmazható és jól kezelhet˝o. A módszer akkor használható, ha a feladat feltételei és a célfüggvénye természetes módon megfogalmazhatók lineáris feltételekként. Ki fog derülni, hogy ez sok feladat esetében így van, még ha ez els˝o ránézésre nem is nyilvánvaló. Ebben a fejezetben els˝osorban a lineáris programozás alapfogalmaira, elméleti megalapozására és néhány matematikai alkalmazására helyezzük a hangsúlyt. Kisebb tér jut majd az algoritmusoknak, noha a szimplex módszert, a lineáris programozás alapfeladatát megoldó legismertebb eljárást a fejezet végén ismertetjük.

1.1. Az optimális hozzárendelés problémája Ebben a pontban bevezetésképpen bemutatunk egy kombinatorikus algoritmust. Kés˝obb fog csak kiderülni, hogy a háttérben valójában a lineáris programozás gépezete m˝uködik. Képzeljük el, hogy egy cég számos megrendelést kap különböz˝o munkák elvégzésére. Készítenek egy kimutatást arról, hogy a rendelkezésre álló dolgozók közül ki melyik megrendelt munkát tudja elvégezni. (Feltesszük, hogy csupa „egyszemélyes” és egyforma hosszú id˝ot igénybe vev˝o munkáról van szó.) A profit maximalizálása érdekében a cég célja az, hogy a lehet˝o legtöbb megrendelést vállalja el, vagyis a lehet˝o legtöbb dolgozójához rendeljen hozzá egy olyan munkát, amit az el tud végezni. A feladatot érdemes gráffal ábrázolni: a G A B; E páros gráfban az A-beli pontok az elvégzend˝o munkákat, a B-beli pontok a rendelkezésre álló dolgozókat jelöljék és az x y él jelentse azt, hogy az y B dolgozó el tudja végezni az x A munkát. Ekkor a feladat nem más, mint G-ben egy maximális méret˝u párosítást keresni. Ennek a feladatnak a megoldására a korábbi tanulmányainkból már ismerünk egy hatékony algoritmust: ez a „magyar módszer”. Az alábbiakban röviden emlé9

1. LINEÁRIS PROGRAMOZÁS

10

keztetünk a módszer m˝uködésére, de a részletekre és a szükséges fogalmak jelentésére már nem térünk ki. Az eljárás alapgondolata az, hogy egy tetsz˝oleges párosításból kiindulva ismételten javító utakat keres egészen addig, amíg ilyen létezik. (Egy olyan utat, ami párosítatlan A-beli pontból indul és minden második éle az aktuális párosításhoz tartozik, alternáló útnak nevezzük. Ha egy alternáló út párosítatlan B-beli pontban ér véget, akkor javító útnak hívjuk.) Ha talál egy javító utat, akkor az ebben lév˝o, aktuális párosításhoz tartozó éleket kidobja a párosításból, az úton lév˝o, párosításban nem szerepl˝o éleket pedig beveszi a párosításba; így a párosítás élszáma eggyel n˝o. Ha pedig már nincs több javító út, akkor egy egyszer˝u tétel garantálja, hogy az aktuális párosítás maximális. A bizonyítás alapgondolata a következ˝o: ha az algoritmus már leállt és az M párosítást adta, akkor jelöljük U-val az M által le nem fedett A-beli pontok halmazát, T -vel az U-ból alternáló úton elérhet˝o B-beli pontok halmazát, T -vel pedig a T -beli pontok M szerint vett párjait. (Lásd az 1.1. ábrát.) Ekkor könnyen belátható, hogy minden T U -beli pont minden szomszédja T A T U ugyanolyan méret˝u lefogó ben van. Ebb˝ol pedig következik, hogy T ponthalmaz G-ben, mint M éleinek száma, így M-nél nagyobb párosítás nem lehet. B

T

A

T

U 1.1. ábra

Tegyük most fel, hogy a fenti példában szerepl˝o cég nemcsak azt szeretné figyelembe venni, hogy hány munkát tud elvállalni, hanem azt is, hogy az egyes munkák révén mennyi bevétel keletkezik. Ekkor a feladat úgy módosul, hogy a megfelel˝o A B; E páros gráf minden e x y éléhez egy w e súly is hozzá van renG delve; ez azt fejezi ki, hogy mennyi lesz a haszon, ha az y dolgozó végzi el az x munkát. A cég feladata ekkor az, hogy maximális összsúlyú párosítást keressen, vagyis olyan M párosítást, amelyre a e M w e mennyiség maximális. Ezt a feladatot hívják az optimális hozzárendelés (optimum assignment) problémájának. A most következ˝o algoritmus nem közvetlenül ezt a feladatot oldja meg, hanem maximális összsúlyú teljes párosítást keres. Ez tehát azt jelenti, hogy feltesszük, hogy a páros gráfban van (legalább egy) teljes párosítás és azt az M teljes párosítást keressük, amelyre e M w e maximális. Az 1.2. ábra gráfja mutatja, hogy a két feladat nem ugyanaz: a maximális összsúlyú teljes párosítás súlya csak 2, míg párosításból van 100 súlyú is. A maximális összsúlyú párosítás keresése azonban könnyen visszavezethet˝o a maximális összsúlyú teljes párosítás keresésére: el˝oször is hagyjuk ki a gráfból a negatív súlyú éleket (mivel ezek úgysem kerülhetnek be maximális súlyú párosításba); ezután ha a páros gráf A és B pontosztálya nem azo-

1.1. AZ OPTIMÁLIS HOZZÁRENDELÉS PROBLÉMÁJA

11

nos méret˝u, akkor vegyünk a kisebbikhez annyi új csúcsot, hogy egyenl˝oek legyenek; végül minden x A, y B nem szomszédos pontpárt kössünk össze egy új éllel, aminek a súlya legyen 0. Ha az így konstruált páros gráfban találunk egy maximális összsúlyú teljes párosítást, akkor ebb˝ol az újonnan felvett 0 súlyú élek elhagyásával az eredeti gráf egy maximális súlyú párosítását kapjuk.

1

1 100

1.2. ábra Egyel˝ore ne a maximális összsúlyú teljes párosítás megkeresésével foglalkozzunk, hanem csak a következ˝o kérdéssel: ha valaki mutat egy M teljes párosítást, hogyan gy˝ozhet meg minket arról, hogy ez maximális súlyú? A maximális élszámú párosítás esetében a lefogó ponthalmaz volt a megfelel˝o eszköz; a súlyozott feladatnál a következ˝o lemma segít. 1.1. Lemma. Rendeljünk a G A B; E páros gráf minden v csúcsához egy cv címkét úgy, hogy minden e x y élére c x c y w e teljesüljön. Ekkor a maximális összsúlyú teljes párosítás összsúlya legföljebb cv. v A B

Bizonyítás: Legyen M egy tetsz˝oleges teljes párosítás. Mivel M élei minden pontot épp egyszeresen fognak le, ezért we e

xy

M

cx e

xy

M

cy

cv v A B

A továbbiakban címkézésnek fogjuk nevezni a lemma feltételeinek eleget tev˝o c függvényeket. A lemmából azonnal következik, hogy ha egyszerre sikerül mutatni G-ben egy M teljes párosítást és egy olyan címkézést, amelyben a címkék összege egyenl˝o M összsúlyával, akkor biztosak lehetünk abban, hogy M maximális súlyú. Ezt mondja ki az alábbi lemma: 1.2. Lemma. Ha a G páros gráfban adott egy c címkézés és egy M teljes párosítás úgy, hogy M minden e x y élére c x c y w e teljesül, akkor M maximális összsúlyú teljes párosítás. A továbbiakban pirosnak fogjuk nevezni azokat az e x y éleket (egy adott c címkézésre nézve), amelyekre c x c y w e teljesül; a piros élek által meghatározott részgráfot pedig piros részgráfnak fogjuk hívni. A fenti lemma tehát azt mondja, hogy ha egy adott címkézés mellett sikerül a piros részgráfban teljes párosítást találni, akkor ez maximális összsúlyú teljes párosítás G-ben.

1. LINEÁRIS PROGRAMOZÁS

12

Az alábbi, Egerváry Jen˝ot˝ol származó algoritmus éppen erre a gondolatra épül. A m˝uködése során nyilvántart egy c címkézést és egy piros élekb˝ol álló M (részleges) párosítást. Minden lépésben vagy M élszáma n˝o, vagy a c címkézés változik meg úgy, hogy v A B c v csökken. Végül M teljes párosítás lesz, ekkor pedig az 1.2. lemma szerint M maximális összsúlyú. Egerváry algoritmusa 0. lépés. Legyen M

és max

y B vy

cv

E

w vy ,

0,

ha v

A

ha v

B.

1. lépés. Az aktuális M párosításból kiindulva keressünk a javító utas algoritmussal a piros részgráfban egy maximális élszámú M párosítást. Ha ez teljes, akkor STOP, M a keresett párosítás, c a keresett címkézés. 2. lépés. Az 1.1. ábra szerint legyen U az M által le nem fedett A-beli pontok halmaza, T az U-ból a piros részgráfban alternáló úton elérhet˝o B-beli pontok halmaza, T pedig a T -beli pontok M szerinti párjainak halmaza. Mivel M maximális élszámú, ezért (a szakasz elején írtak szerint) minden T U -beli csúcs minden piros részgráfbeli szomszédja T -beli. Legyen ezért min c x

cy

w xy

xy

E x

T

U y

B T

majd c v

cv cv cv,

, ,

ha v T U, ha v T , különben.

Folytassuk az 1. lépésnél (M és c helyett M -vel és c -vel). Az algoritmus helyességének belátásához az alábbi észrevételeket kell végiggondolni: 1. A 0. lépésben megadott c valóban címkézés. 2. A 2. lépésben definíciójánál felvet˝odik a kérdés, hogy van-e egyáltalán T U és B T között vezet˝o él? A válasz szerencsére igenl˝o, hiszen ha nem volna, akkor G-ben minden T U -beli pont minden szomszédja T -ben volna, így a gráfban nem létezhetne teljes párosítás (a Hall-feltétel miatt). A 2. lépésnél írtakból ezek 0 is következik, hiszen a T U és B T között vezet˝o élek között után már pirosak nem lehetnek. 3. A 2. lépésben definiált c címkézés marad, mert a c x cy w x y különbség csak azokra az élekre csökken, melyek T U és B T között vezetnek. definíciója pedig éppen azt garantálja, hogy ezeken az éleken is igaz marad a cx cy w x y tulajdonság.

1.2. A LINEÁRIS PROGRAMOZÁS ALAPFELADATA

13

4. A 2. lépésben a címkézés megváltozása nyomán persze a piros részgráf is megváltozik. El˝ofordulhat, hogy kikerül bel˝ole egy x y él, de csak az x A T U , y T esetben. (Az ilyen élekre ugyanis a c x c y érték n˝o.) Ebb˝ol következik egyrészt az, hogy az M -beli élek pirosak maradnak, másrészt az is, hogy a T -beli csúcsok az új piros részgráfban is elérhet˝ok U-ból alternáló úton. 5. A címkézés megváltoztatása miatt legalább egy új piros él keletkezik: az, ahol a -t definiáló minimum felvétetik. Mivel ez az él T U és B T között vezet, ezért az 1. lépés következ˝o végrehajtásakor szerencsés esetben M élszáma n˝o, de ha nem, akkor is n˝o az U-ból alternáló úton elérhet˝o pontok T halmaza. Ezért, ha szokás szerint n-nel, illetve e-vel jelöljük a gráf pontjainak, illetve éleinek a számát, O n lépés után M elemszáma n˝oni fog (mert B T -b˝ol elfogynak az M által már lefedett pontok). Ezért O n2 ciklus után az algoritmus véget ér. Mivel egy ciklus id˝oigénye (a 2. lépésbeli , U és T el˝oállítása miatt) O e , ezért nagyon durva becsléssel is O n2 e lépés után véget ér az algoritmus. Látható, hogy a most bemutatott algoritmus m˝uköd˝oképességének a titka a címkézés gondolatában rejlik. Ez egy olyan, szerencsésen eltalált fogalom, amely a feladat kit˝uzéséb˝ol közvetlenül nem olvasható ki, de a bevezetése rendkívül hatékony eszköznek bizonyult. Kérdés persze, hogy hogyan jut valakinek az eszébe épp egy ilyen tulajdonságú c függvényt bevezetni? Az 1.6.2. szakaszban ki fog derülni, hogy itt valójában a lineáris programozás egyik alapfogalma, a dualitás (történetileg egyik els˝o) megjelenésér˝ol van szó.

1.2. A lineáris programozás alapfeladata Tegyük fel, hogy a Drakula M˝uvek kétféle szörnyeteget tud gyártani: az 1. típusúnak 2 lába van, de 4 feje, a 2. típusúnak 1 feje, de 3 lába. Melyik típusúból hányat gyártsanak, ha a raktárban 18 láb és 16 fej található? Ha x1 db 1. típusú és x2 darab 2. típusú szörnyeteget akarnak gyártani, akkor a fentiek szerint az alábbi feltételeket kell kielégíteniük:

2x1

3x2

18

4x1

x2

16

x1

0

x2

0

Ezt az egyenl˝otlenségrendszert az 1.3. ábrán látható egyenesekkel szemléltethetjük. Minden egyenes 2 félsíkra bontja a síkot, és az egyik félsík pontjainak koordinátái elégítik ki az egyenl˝otlenséget (természetesen az egyenes pontjai épp egyenl˝oséggel). A négy félsík metszete az 1.3. ábrán látható T tartomány – nyilván az abban található 24 darab egész koordinátájú pont bármelyike megoldás lehet.

1. LINEÁRIS PROGRAMOZÁS

14 x2 x2

T

16

4x1

3x2

18

2x1 x1

1.3. ábra

Tegyük most fel, hogy az 1. típusú szörnyeteg darabja c1 , a 2. típusú darabja c2 összegért adható el. Hogyan lehetne maximalizálni a bevételt, vagyis az s c1 x1 c2 x2 összeget? Ha például c1 c2 1, akkor az a kérdés, hogy maximum mekkora s-re lesz az x2 s x1 egyenesnek és T -nek közös pontja. Különféle s-ekre az egyenesek az 1.4a ábrán láthatóak. Ha viszont c1 10, c2 1, akkor az x2 s 10x1 egyeneseket kell vizsgálni, ezeket az 1.4b ábra mutatja. Jól látható, hogy az el˝obbi esetben s 7 és x1 3, x2 4, míg az utóbbiban s 40 és x1 4, x2 0 a legjobb választás. x2

s s s

30 40 50

x2

T

1.4a ábra

s s s s s

9 8 7 6 5 x1

T x1 1.4b ábra

A lineáris programozás alapfeladata nem más, mint egy lineáris egyenl˝otlenségrendszer megoldásai közül kiválasztani azt, amelyre egy szintén lineáris célfüggvény értéke maximális. (Persze eközben azt is el kell tudni dönteni, hogy az egyenl˝otlenségrendszer egyáltalán megoldható-e.)

1.2. A LINEÁRIS PROGRAMOZÁS ALAPFELADATA

15

A lineáris algebrában az egyenletrendszereket praktikus volt Ax b alakban írni; ehhez hasonlóan minden (szigorú egyenl˝otlenséget nem tartalmazó) lineáris egyenl˝otlenségrendszert Ax b alakba lehet írni, ahol A egy m n-es mátrix, x egy n dimenziós, b pedig m dimenziós oszlopvektor. A lineáris programozás alapfeladata tehát adott A mátrix, b és c vektorok esetén a max cx : Ax

b

érték meghatározása (és a maximumhely megkeresése). Az ilyen formában kit˝uzött feladatokat szokás lineáris programnak is nevezni. Az x vektor komponenseit a feladat változóinak nevezzük. Például a Drakula M˝uvek feladatában A

2 4 1 0

3 1 0 1

b

18 16 0 0

volt, az 1.4a ábrán c 1 1 , az 1.4b ábrán c 10 1 mellett. Ezen a példán is látható, hogy az Ax b írásmódba ax alakú egyenl˝otlenségek is beleférnek, csak ax alakban kell o˝ ket felvenni. S˝ot, könnyen kezelhet˝o az az eset is, ha a feltételek között egyenl˝oségek is szerepelnek: az ax egyenletet helyettesítik az ax , ax egyenl˝otlenségek. Id˝onként kényelmes lesz egyenl˝otlenségrendszereket yA c alakban is szerepeltetni, ez természetesen ekvivalens az AT yT cT rendszerrel. Végül maximalizálás helyett minimalizálásra is törekedhetünk, valójában ez sem jelent új feladatot: a min cx : Ax b lineáris program helyett a max c x : Ax b programot kell megoldani, majd a kapott maximum ellentettjét venni. (Valóban, a cx : Ax b halmaz éppen a c x : Ax b halmaz elemeinek ellentettjeib˝ol áll, ezért az els˝o halmaz minimumának ellentettje éppen a második halmaz maximuma.) A továbbiakban a mátrixokat mindig nagy bet˝uk (A, B, ), a vektorokat kis bet˝uk (x, y, ) jelölik. A sor- és oszlopvektorok írásmódját nem különböztetjük meg, a szövegkörnyezetb˝ol mindig ki fog derülni, hogy egy vektor éppen milyen. Például ha A m n-es mátrix, akkor az Ax szorzatban x egy n dimenziós oszlopvektor, az yA szorzatban viszont y egy m dimenziós sorvektor; x y mindig a két vektor skaláris szorzatát jelöli. Az A mátrix j-edik oszlopát a j , i-edik sorát ai , míg az x vektor i-edik komponensét x i vagy xi jelöli. A fentiek szellemében x y azt jelenti, hogy xi y i teljesül minden i-re. (Vigyázat, x y nem ugyanazt jelenti, mint x y !) Miel˝ott a lineáris programozás feladatának megoldásába belefognánk, érdemes a lineáris egyenl˝otlenségrendszereknek szemléletes jelentést is tulajdonítani. Láttuk, hogy az ax egyenl˝otlenség a síkban félsíkot határoz meg, térben pedig nyilván egy zárt félteret (aminek a határoló síkja az ax egyenlet˝u sík). Az ax megoldáshalmazát ezért tetsz˝oleges dimenzióban is szokás féltérnek nevezni, amit az ax hipersík határol. Így az Ax b egyenl˝otlenségrendszer megoldáshalmaza véges sok féltér metszete, amit ezért poliédernek is neveznek. Megjegyezzük, hogy ez a fogalom több is, kevesebb is mint a térben megszokott poliéder fogalma. Kevesebb, mert félterek metszeteként nyilván csak konvex halmazt lehet el˝oállítani; több,

1. LINEÁRIS PROGRAMOZÁS

16

mert félterek metszeteként nem korlátos alakzatok is el˝oállhatnak. (Belátható viszont, hogy ha a térben egy lineáris egyenl˝otlenségrendszer megoldáshalmaza nemüres és korlátos, akkor a most definiált poliéderfogalom egybeesik a konvex poliéder eredeti fogalmával.) Például a Drakula M˝uvek feladatánál a megoldások halmaza a T konvex sokszögtartomány, ami a térbeli konvex poliéder síkbeli megfelel˝oje.

1.3. A megoldhatóság vizsgálata Ebben a szakaszban egyel˝ore csak azt a kérdést vizsgáljuk, hogy az Ax b rendszernek mikor van megoldása. El˝oször megadunk egy kiküszöbölésen alapuló eljárást, amely ezt a kérdést eldönti, majd bebizonyítunk egy alapvet˝o tételt, amely szükséges és elégséges feltételt ad a megoldhatóságára.

1.3.1.

Fourier–Motzkin elimináció

A lineáris egyenl˝otlenségrendszerek megoldhatóságának vizsgálatára több hatékony eljárás ismert. Az ebben a pontban bemutatásra kerül˝o Fourier–Motzkin elimináció nem ilyen, mert az eliminációs lépések során az egyenl˝otlenségek száma reménytelenül nagyra (pontosabban: exponenciálisan sokra) n˝ohet. Ezért ez az eljárás a gyakorlatban csak kis feladatokra alkalmazható eredményesen. A f˝o el˝onye (az egyszer˝usége mellett) inkább az, hogy a segítségével fogjuk tudni bebizonyítani a megoldhatóságra vonatkozó feltételt. A módszer alapgondolata az, hogy az n változós esetet (tehát amikor az A mátrixnak n oszlopa van) visszavezetjük az n 1 változós esetre. Ennek a lépésnek az n 1 -szeri alkalmazásával eljutunk az egyváltozós esethez, amelyre a megoldhatóság kérdése már könnyen eldönthet˝o. A célunk tehát az, hogy elkészítsünk egy n 1 oszlopú A mátrixot és egy b oszlopvektort úgy, hogy Ax b-nek pontosan akkor legyen megoldása, ha A x b megoldható. Vegyük hozzá az n oszlopú A mátrixhoz új oszlopként b-t, a kapott mátrixot jelöljük A b -vel. El˝oször is vegyük észre, hogy az A b tetsz˝oleges sorának pozitív számmal való szorzása a megoldhatóságot nem befolyásolja. Ezt minden sorra alkalmazva elérhet˝o, hogy az A b els˝o oszlopának minden eleme 1, 1, vagy 0 legyen. (A sorok beszorzása után kapott mátrixot továbbra is A b -vel jelöljük.) Jelölje I azon A b -beli sorok indexeinek halmazát, amelyeknek els˝o tagja 1. Hasonlóan, jelölje J, illetve K a 1 -gyel, illetve 0-val kezd˝od˝o sorok indexeinek halmazát. Képzeljük most el Ax b-nek egy x megoldását; jelölje x els˝o komponensét , a maradék n 1 dimenziós oszlopvektort pedig x. ¯ Hasonlóan, jelölje a¯i az A máti rix a sorából az els˝o komponens elhagyásával keletkez˝o vektort. Jelölje továbbá A0 b0 azt a K n 1 -es mátrixot, amely A b -nek a 0-val kezd˝od˝o (vagyis K-hoz tartozó index˝u) soraiból áll, de ebb˝ol is elhagyva az els˝o (csupa 0) oszlopot. Nyilvánvaló, hogy ha x megoldása Ax b-nek, akkor x¯ megoldása A0 x¯ b0 -nak. A továbbiakban ezért feltesszük, hogy adott egy A0 x¯ b0 -t teljesít˝o x, ¯ és megvizs-

1.3. A MEGOLDHATÓSÁG VIZSGÁLATA

17

gáljuk, hogy milyen feltételek mellett választható egy alkalmas , hogy x

x¯ megoldása legyen Ax b-nek. El˝oször tekintsük azt az esetet, amikor J üres (tehát nincsen 1 -gyel kezd˝od˝o sor). Ilyenkor minden i I-re a a¯i x¯ b i feltétel adódik -ra. Átrendezve: i bi a¯ x¯ (i I). Mivel ez véges sok olyan feltétel, amelyek mindegyike azt kívánja, hogy valamilyen adott számot ne haladjon meg, ezek a feltételek nyilván együttesen is kielégíthet˝ok (például a min b i a¯i x¯ választással). Így ebben i I

az esetben az A b A0 b0 választással Ax b megoldását sikerült visszavezetni az A x b feladatra, amely már valóban n 1 változós. Teljesen hasonlóan elintézhet˝o az az eset is, amikor I üres: ilyenkor a¯j x¯ b j ( j J) választással kapunk jó megoldást. Mostantól tehát tegyük fel, hogy sem I, sem J nem üres. Ilyenkor (megismételve az el˝oz˝o bekezdés számolásait) -ra a bi

a¯i x¯

j

a¯ x¯ b j

( )

i

I

j

J

(

feltételek adódnak. Nyilvánvaló, hogy pontosan akkor létezik a leket kielégít˝o , ha minden i I j J pár esetén a¯j x¯ b j

bi

teljesül. (Ekkor ugyanis max a¯j x¯ b j

feltéte-

a¯i x¯ min b i i I

j J

és

)

a¯i x¯ választással jó -t

kapunk.) Ezt átrendezve: a¯i

a¯j x¯

bi

b j

i

I j

J

(

)

Ezzel tehát I J darab egyenl˝otlenséget kaptunk x-re ¯ nézve: ezek együttesen pontosan akkor teljesülnek egy A0 x¯ b0 -t kielégít˝o x-re, ¯ ha található olyan , hogy megoldása Ax b-nek. x¯ Mindez azt jelenti, hogy sikerült visszavezetni az Ax b megoldhatóságát egy n 1 változós feladatra: A0 x¯ b0 -t kiegészítjük a egyenl˝otlenségekkel. Ráadásul az új feladatot leíró A b mátrix nagyon egyszer˝uen elkészíthet˝o A b b˝ol: megtartjuk a 0-val kezd˝od˝o sorokat, valamint ( szerint) minden lehetséges módon kiválasztunk A b -b˝ol egy 1-gyel és egy 1 -gyel kezd˝od˝o sort, ezeket összeadjuk és az összeget új sorként felvesszük A b -ba. Végül az így kapott (I J K ) sorú) mátrixból elhagyjuk az els˝o (csupa 0) oszlopát. Végül csak az van hátra, hogy az egyváltozós eset megoldhatóságát eldöntsük. (Továbbra is feltesszük, hogy az A egyetlen oszlopának minden eleme 1, vagy 0.) Ha valamely k K-ra b k 0 (vagyis a k-adik sor 0 alakú, ahol 0), akkor a rendszer nyilván nem megoldható. Ha ilyen k nincs, akkor a K-beli soroknak megfelel˝o egyenl˝otlenségek automatikusan teljesülnek, ezért elhagyhatók. Ha x egyetlen komponensét x1 -gyel jelöljük, akkor az I és J-beli soroknak megfelel˝o egyenl˝otlenségek: x1 b i (i I), illetve x1 b j ( j J). Ha I és J közül valamelyik üres, x

1. LINEÁRIS PROGRAMOZÁS

18

akkor x1 kell˝oen nagyra, illetve kell˝oen kicsire választásával ezek a feltételek kielégíthet˝ok. Egyébként megfelel˝o x1 létezésének feltétele max b j min b i , i I

j J

ami könnyen ellen˝orizhet˝o.

1.3.2.

Farkas-lemma

Ebben a pontban bebizonyítunk egy, a lineáris programozás elméletében központi helyet elfoglaló tételt, az úgynevezett Farkas-lemmát. Ennek több szokásos alakja ismert, bármelyikb˝ol könnyen bizonyítható a többi. 1.3. Tétel. (Farkas-lemma) Tetsz˝oleges A és b esetén az alábbi rendszerek közül pontosan az egyiknek van megoldása:

(1) Ax

b

(2) yA

0, y

0, yb

0

Bizonyítás: Mindkét rendszernek egyszerre nem lehet megoldása, mert ha x az (1), y a (2) megoldása volna, akkor 0 0x yA x y Ax yb 0 adódna, ami ellentmondás. (Itt y Ax yb érvényessége a vektorok skaláris szorzásának definíciójából adódik Ax b és y 0 miatt.) Azt kell tehát belátnunk, hogy ha (1) nem megoldható, akkor (2) megoldható (vagyis a két rendszer közül az egyiknek mindig van megoldása). Ezt a változók (vagyis A oszlopainak) számára, n-re vonatkozó teljes indukcióval fogjuk megtenni. Kezdjük az n 1 eset vizsgálatával. Az el˝oz˝o pont végén láttuk, hogy csak két esetben lehetséges (1) megoldhatatlansága. Az els˝o eset az, ha valamely k-ra alakú, ahol 0. Ilyenkor jelölje y azt a vektort, amelynek a a k-adik sor 0 k-adik komponense 1, minden más komponense 0. Ekkor yA 0, yb 0, így (2) megoldható. Az el˝oz˝o pontban, a Fourier–Motzkin elimináció során az Ax b rendszernek már egy olyan alakját vizsgáltuk, amelyben el˝oz˝oleg a sorokat alkalmas pozitív számokkal szorozva elértük, hogy az els˝o oszlop minden eleme 1 vagy 0 legyen. Ez azonban a 0-val kezd˝od˝o sorokat nyilván nem érintette. Az (1) megoldhatatlanságának másik esete viszont a sorok beszorzása el˝otti állapotban azt jelentette, hogy valamely i-re és j-re az i-edik sor 1 1 , a j-edik sor 2 2 alakú, ahol

1

2

0 és

2

1

2

1

. Ebben az esetben legyen y i

2,

y j

1

és az y vektor minden más komponense legyen 0. Ekkor yA 0, 2 1 1 2 yb 0, vagyis (2) megoldható. 2 1 1 2 Tegyük most fel, hogy minden n 1 változós feladatra igaz, hogy ha (1) nem megoldható, akkor (2) megoldható és próbáljuk meg ugyanezt belátni egy n változós feladatra. Ehhez el˝oször azt vegyük észre, hogy ha y megoldása (2)-nek, akkor y y szintén megoldás minden 0-ra; alkalmas megválasztásával pedig elérhet˝o, hogy y b 1 teljesüljön. Ezért (2) megoldhatósága ekvivalens az y A b

1.3. A MEGOLDHATÓSÁG VIZSGÁLATA

19

00 0 1 , y 0 megoldhatóságával. Utóbbi pedig azzal ekvivalens, hogy az A b sorainak van a 0 0 1 sorvektort adó, nemnegatív együtthatós lineáris kombinációja. Hajtsuk most végre A b -n a Fourier–Motzkin elimináció egy lépését, a kapott mátrixot jelölje A b . Feltettük, hogy Ax b nem megoldható, ezért nincs megoldása A x b -nak sem. Mivel ez a feladat már n 1 változós, ezért alkalmazható rá az indukciós feltevés: az y A 0, y 0, y b 0 rendszer megoldható. Vegyük most hozzá A b -hoz az eliminációs lépés utolsó mozzanatában elhagyott els˝o, csupa 0 oszlopot; a kapott mátrixot jelölje A0 b . Nyilván erre is teljesül, hogy y A0 0 (és y 0, y b 0 továbbra is igaz), ami az el˝oz˝o bekezdés szerint azt jelenti, hogy A0 b sorainak van a 0 0 1 vektort adó, nemnegatív együtthatós lineáris kombinációja. Azonban a Fourier–Motzkin elimináció m˝uködéséb˝ol következik, hogy A0 b minden sora A b sorainak egy nemnegatív együtthatós lineáris kombinációja: az elimináció során el˝oször A b sorait pozitív számokkal szoroztuk, majd a kapott mátrixból mindig vagy egyetlen sort, vagy két sor összegét másoltuk át A0 b -ba. Így az A0 b sorainak lineáris kombinációjában a tagok összevonásával azt kapjuk, hogy a 0 0 1 vektor megkapható úgy is, mint A b sorainak egy nemnegatív együtthatós lineáris kombinációja. Ez viszont, ismét az el˝oz˝o bekezdésben írtak miatt azt jelenti, hogy (2) megoldható és éppen ezt akartuk bizonyítani. A most bizonyított tétel valóban szükséges és elégséges feltételt ad Ax b megoldhatóságára: a rendszer akkor és csak akkor megoldható, ha nem létezik a tételbeli (2) feltételt kielégít˝o y. Farkas-lemmának legtöbbször mégsem a fenti alakot nevezik, hanem az alábbi tételt; a továbbiakban mind a két alakot használni fogjuk. 1.4. Tétel. (Farkas-lemma) Tetsz˝oleges A és b esetén az alábbi rendszerek közül pontosan az egyiknek van megoldása:

(1) Ax

b, x

(2) yA

0, yb

0 0

Bizonyítás: Mindkét rendszernek egyszerre megint nem lehet megoldása, mert ha x és y egy-egy megoldás volna, akkor 0 yA x y Ax yb 0 adódna, ami ellentmondás. Elég lesz ezért belátni, hogy (2) megoldhatatlanságából következik (1) megoldhatósága. Ha (2) nem megoldható, akkor nincs megoldása az y A 0, yb 1, y b 1 rendszernek sem (mert egy y megoldásra yA 0, yb 1 teljesülne). Ezért alkalmazhatjuk az 1.3. tételt a A b b mátrixra és a 0 0 0 11 vektorra (illetve valójában ezek transzponáltjára). Azt kapjuk, hogy van megoldása a A b b x 0, x 0, 0 0 1 1 x 0 rendszernek. Jelölje x utolsó komponensét µ, utolsó el˝otti komponensét , a maradék oszlopvektort x. ¯ Ezekre tehát Ax¯ b µb 0, x µ 0, µ 0 adódik. Átrendezve: Ax¯ µ b,

1. LINEÁRIS PROGRAMOZÁS

20 µ ható.

0. Ezért az x

1

µ x¯ vektorra

Ax

b, x

0 teljesül, vagyis (1) megold-

Megjegyezzük, hogy a fenti tételbeli (1) rendszer a szokásos módon egyenl˝otlenségrendszerként is felfogható: Ax b, A x b, E x 0. Erre is alkalmazható az 1.3. tétel, amib˝ol (kicsit több számolással) ugyanúgy belátható a Farkaslemma 1.4. tételbeli alakja. Említettük, hogy a Farkas-lemma különböz˝o alakjai egymásból könnyen bizonyíthatóak; valóban, az 1.4. tételbeli alakból sem nehéz belátni az 1.3. tételbeli alakot (a részleteket az olvasóra bízzuk). Végül megemlítünk egy egyszer˝u, de hasznos lineáris algebrai állítást, amelyet kés˝obb használni fogunk. Ez a Farkas-lemma következményének is tekinthet˝o, de valójában egy annál sokkal egyszer˝ubb állításról van szó, amely a lineáris algebra eszköztárával is könnyen belátható. Éppen ezért két bizonyítást is adunk: egyet a Farkas-lemma, egyet pedig a Gauss-elimináció segítségével. 1.5. Állítás. Tetsz˝oleges A és b esetén az alábbi rendszerek közül pontosan az egyiknek van megoldása:

(1) Ax

b

(2) yA

0, yb

0

Els˝o bizonyítás: A két rendszernek egyszerre nem lehet megoldása, mert akkor 0 yA x y Ax yb 0 következne, ami ellentmondás. Tegyük fel ezért, hogy (1) nem megoldható és lássuk be, hogy ekkor (2) megoldható. Az (1) rendszer átírható a következ˝o alakba: Ax b, A x b. Alkalmazzuk erre a rendszerre a Farkas-lemma 1.3. tételbeli alakját. Azt kapjuk, hogy megoldható az A b y 0, y 0, y 0 ( ) A b rendszer. Jelöljük az y vektor els˝o (az A sorainak megfelel˝o) felét y1 -gyel, a második (a A sorainak megfelel˝o) felét y2 -vel. Ekkor ( ) átírható a következ˝o alakba: y1 A y2 A 0, y1 y2 0, y1 b y2 b 0. Ezt még tovább alakítva: y1 y2 A 0, y1 y2 0, y1 y2 b 0. Így tehát y1 y2 megoldása a (2) rendszernek. Második bizonyítás: Ismét elég lesz belátni, hogy a két rendszer közül legalább az egyik megoldható. Az (1) rendszer egy lineáris egyenletrendszer, ezért a megoldhatósága vizsgálható a Gauss-eliminációval. Tudjuk, hogy a Gauss-elimináció (sorokon végzett) lépései nem változtatnak Ax b megoldhatóságán. Könny˝u ellen˝orizni azt is, hogy az yA 0, yb 0 rendszer megoldhatóságán sem változtatnak. Például ha y egy megoldás és az ai sort (és persze b i -t is) megszorozzuk 0-val, akkor az új rendszer megoldásához úgy jutunk, hogy y i -t elosztjuk -val, de y többi komponensét változatlanul hagyjuk. (Az új rendszer megoldásából pedig nyilván az i-edik komponens -val való szorzásával kapjuk az eredeti megoldását.) A Gauss-elimináció egyéb típusú lépéseire az ellen˝orzés hasonlóan egyszer˝u.

1.4. DUALITÁS

21

0 0 alakú Ha a Gauss-elimináció során nem alakul ki tilos sor (vagyis 0 sor), akkor Ax b megoldható. Ha egy ponton az i-edik sorban tilos sor keletkezik, akkor az y 00 010 0 egységvektor (a nemnulla komponens az i-edik) megoldása az yA 0, yb 0 rendszernek (és akkor annak eredetileg is volt megoldása). A fenti állítás szemléletessé tehet˝o a következ˝o átfogalmazással: ha az A oszlopvektoraiból nem fejezhet˝o ki b lineáris kombinációval, akkor van olyan y vektor, ami mer˝oleges az A oszlopvektoraira, de nem mer˝oleges b-re.

1.4. Dualitás Ebben a szakaszban megismerkedünk a lineáris programozás elméletének talán legfontosabb fogalmával, a dualitással. Ki fog derülni, hogy minden (értelmesen kit˝uzött) maximalizálást tartalmazó lineáris programozási feladathoz hozzárendelhet˝o egy vele szoros kapcsolatban lév˝o, minimalizálást tartalmazó lineáris program, az úgynevezett duális feladat. Ennek nemcsak elméleti jelent˝osége van, hanem nagyban segíti a lineáris programozás feladatát megoldó algoritmusok m˝uködését is.

1.4.1.

A célfüggvény korlátossága

Térjünk vissza a lineáris programozás alapfeladatához, vagyis a max cx : Ax b lineáris program megoldásához. Ahhoz, hogy ennek a feladatnak értelme legyen, nem elég az Ax b rendszer megoldhatósága: szükség van arra is, hogy a cx függvény az Ax b megoldáshalmazán felülr˝ol korlátos legyen. Ezért el˝oször erre adunk szükséges és elégséges feltételeket. 1.6. Tétel. Tegyük fel, hogy az Ax b rendszer megoldható, c tetsz˝oleges adott vektor. Ekkor az alábbi állítások ekvivalensek:

(1) az Ax

b megoldáshalmazán cx felülr˝ol korlátos;

(2) nincs megoldása az Az (3) van megoldása az yA

0, cz c, y

0 rendszernek; 0 rendszernek.

Bizonyítás: El˝oször belátjuk, hogy (1)-b˝ol következik (2). Legyen x0 megoldása Ax b-nek és tegyük fel indirekt, hogy mégis létezik egy z, amelyre Az 0, cz 0. Ekkor tetsz˝oleges 0-ra x x0 z is megoldása Ax b-nek, mert Ax A x0 z Ax0 Az Ax0 0 b. Másrészt cx c x0 z cx0 cz , ami cz 0 miatt alkalmas megválasztásával tetsz˝olegesen naggyá tehet˝o. Ez ellentmond (1)-nek. (2) és (3) ekvivalenciája könnyen következik a Farkas-lemma 1.4. tételbeli alakjából, ha azt AT -ra alkalmazzuk és (2) esetében az esetleges megoldás ellentettjét vesszük.

22

1. LINEÁRIS PROGRAMOZÁS

yA

Végül belátjuk, hogy (3)-ból következik (1). Legyen y olyan vektor, amelyre c, y 0 teljesül és legyen x tetsz˝oleges megoldása Ax b-nek. Ekkor cx

yA x

y Ax

yb

( )

vagyis yb fels˝o korlát az Ax b megoldáshalmazán cx értékére, így (1) valóban teljesül. (2) (3) (1) következtetések érvényességét, Ezzel beláttuk az (1) amib˝ol a tétel állítása következik. A fenti tétel (3)-as feltételében felt˝unik egy új lineáris egyenl˝otlenségrendszer: yA c, y 0. S˝ot, a becslésb˝ol az is kiderül, hogy ha y ennek megoldása, x pedig az eredeti, Ax b rendszer megoldása, akkor cx yb. Ezért nyilván érdemes az yA c, y 0 rendszernek egy olyan y megoldását megkeresni, amelyre yb a lehet˝o legkisebb, hiszen így kapjuk a lehet˝o legjobb fels˝o becslést a max cx : Ax b értékre. Ezzel valójában egy új lineáris program jelent meg: min yb : yA

cy

0

Ezt a lineáris programot az eredeti program duálisának nevezzük, az eredeti, max cx : Ax b programra pedig a duálistól való megkülönböztetés érdekében szokás primál programként is hivatkozni. (Érdemes megfigyelni, hogy a duális programban maximalizálás helyett minimalizálást kívánunk, b és c szerepe felcserél˝odik, az A mátrix helyett áttérünk a transzponáltjára és egyenl˝otlenségrendszer helyett az egyenletrendszer nemnegatív megoldásait keressük.) A fenti tételb˝ol és a becslésb˝ol tehát az derül ki, hogy ha a primál program megoldható és felülr˝ol korlátos, akkor a duális program is megoldható, és a primál program maximuma legföljebb akkora, mint a duális program minimuma. Rövidesen belátjuk, hogy ennél sokkal több is igaz. El˝otte azonban vizsgáljuk meg a Drakula M˝uvek jól ismert feladatát és annak duálisát, például a c 12 12 célfüggvény mellett. (Ehhez célszer˝u a feladatnak a 15. oldalon látható, mátrixos alakját szem el˝ott tartani.) Primál feladat max 12x1 12x2 ha 2x1 3x2 18 4x1 x2 16 x1 0 x2 0

Duális feladat min 18y1 16y2 ha 2y1 4y2 y3 12 3y1 y2 y4 12 y1 0 y2 0 y3 0 y4 0

A duális feladatot ebben a formájában nem lehet olyan könnyen ábrázolni, mint ahogy azt az 1.3–1.4. ábrákon a primál feladattal tettük, hiszen y négydimenziós. Azonban megfigyelhetjük, hogy a fenti felírásban y3 -nak és y4 -nek nincs valódi

1.4. DUALITÁS

23

szerepe, hiszen az egyenletrendszerben csak egyszer, a célfüggvényben pedig egyszer sem jelennek meg. Például a 2y1 4y2 y3 12 egyenlet helyettesíthet˝o a 2y1 4y2 12 egyenl˝otlenséggel, hiszen az egyenletben 2y1 4y2 -b˝ol a nemnegatív y3 -at levonva kapunk 12-t. Ezek után y3 elhagyható a rendszerb˝ol, ezzel nyilván sem a megoldhatóságot, sem a célfüggvényértéket nem befolyásoljuk. Ugyanez megtehet˝o y4 -gyel is, így végül a duális programnak az alábbi, ekvivalens alakját kapjuk: Duális feladat (ekvivalens alak) min 18y1 16y2 ha 2y1 4y2 12 3y1 y2 12 y1 0 y2 0

Primál feladat max ha 2x1 4x1 x1 x2

12x1

12x2

3x2 18 x2 16 0 0

A duális feladat új alakja már valóban ábrázolható síkban, a megoldáshalmaz az 1.5. ábrán látható, nem korlátos tartomány. Az 1.2. szakaszban látott módszerrel könny˝u végiggondolni, hogy az optimum a 3 6 1 2 pontban vétetik fel és az értéke 18 3 6 16 1 2 84. Hasonlóan látható, hogy a primál feladat a 3 4 pontban veszi fel a maximumát és a maximum értéke is 12 3 12 4 84. y2 y2

12

3y1

4y2

12 y1

2y1

1.5. ábra A fenti példában a duális programot azért lehetett átírni a kényelmesebb ekvivalens alakba, mert a primál feladat utolsó két egyenl˝otlensége egyszer˝uen csak a változók nemnegatív érték˝uségét írta el˝o, így a feladatot leíró A mátrix utolsó két sora az egységmátrix ellentettje volt. A duális programban ezért az yA c rendszer minden egyenletében szerepelt egy yi tag, és minden ilyen változó az egyenletrendszerben összesen csak egyszer jelent meg (a célfüggvényben pedig egyszer sem). A gyakorlatban sokszor fordul el˝o olyan lineáris program, amelyben a változók nemnegatív érték˝usége ki van kötve, vagyis a primál feladat max cx : Ax b x 0

1. LINEÁRIS PROGRAMOZÁS

24

alakú. (Vigyázat, itt A és b már nem a feladathoz tartozó teljes egyenl˝otlenségrendszert írják le, a változók nemnegativitását nem tartalmazzák!) Általában is érdemes leszögezni, hogy ilyenkor a duális feladat a min yb : yA c y 0 ekvivalens alakba írható. (A duális program két alakjának ekvivalenciája pontosan azt jelenti, hogy bármelyikük megoldhatóságából következik a másik megoldhatósága, ekkor a minimum értéke is ugyanaz és bármelyik optimális megoldásból könnyen el˝o lehet állítani a másik alak egy optimális megoldását.) A duális fenti alakjának egy további el˝onye is van: szinte ránézésre látszik, hogy a duális feladat duálisa megegyezik a primál feladattal. Ugyanis a 15. oldalon írtaknak megfelel˝o átalakításokkal min yb : yA c y 0 max y b : y A c y 0 . Ennek a feladatnak a duálisa pedig (az el˝oz˝o bekezdés szec x: Ax b x 0 max cx : Ax b x 0 ; rinti alakban): min ez éppen a primál feladat. Nem nehéz végiggondolni, hogy a duális feladat duálisa akkor is ekvivalens a primál feladattal, ha az eredetileg bevezetett alakokkal dolgozunk.

1.4.2.

A lineáris programozás dualitástétele

Láttuk, hogy a Drakula M˝uvek feladatában a c 12 12 célfüggvény mellett a primál program maximuma és a duális program minimuma egybeesett: mindkett˝o 84. Sejthet˝o, hogy itt nem véletlen egybeesésr˝ol van szó; err˝ol szól az alábbi tétel. 1.7. Tétel. (A lineáris programozás dualitástétele) Ha a max cx : Ax b (primál) program megoldható és felülr˝ol korlátos, akkor

(1) a min yb : yA

cy

0 (duális) program is megoldható és alulról korlátos;

(2) a primál programnak létezik maximuma és a duális programnak létezik minimuma; (3) max cx : Ax

b

min yb : yA

cy

0

A (2) állítás kimondására azért van szükség, mert egy számhalmaz felülr˝ol korlátosságából általában nem következik, hogy létezik maximuma. Bizonyítás: Az (1) állítást az el˝oz˝o pontban már beláttuk. (2) és (3) pedig könnyen következik az alábbi állításból. Á LLÍTÁS . Tegyük fel, hogy Ax b megoldható és t tetsz˝oleges adott szám. Ha Ax b-nek nincs olyan x megoldása, amelyre cx t teljesülne, akkor yA c, y 0-nak van olyan megoldása, amelyre yb t teljesül. Az állítás bizonyítása: Az állítás feltétele azt jelenti, hogy az Ax b, c x t rendszer nem megoldható. Alkalmazzuk erre az 1.3. tételt, mégpedig úgy, hogy az abban szerepl˝o (2) rendszer y vektorának utolsó komponensét – ami a fenti cx t egyenl˝otlenségnek felel meg – különválasztjuk és -val jelöljük. Azt kapjuk, hogy létezik egy y 0 vektor és egy 0 valós szám, hogy yA c 0,

1.4. DUALITÁS

25

t 0. Átrendezve: yA c, yb t. Vegyük észre, hogy 0 lehetetlen, yb mert akkor yA 0, y 0, yb 0 teljesülne, vagyis az 1.3. tétel miatt Ax b nem 1 volna megoldható. Ezért 0, így bevezethetjük az y y vektort. Erre y A c, y 0, y b t teljesül, ami az állítást bizonyítja. Ha most a dualitástétel (2)-es állításával szemben a max cx : Ax b maximum nem létezne, akkor legyen t sup cx : Ax b (hiszen a valós számok minden nemüres, felülr˝ol korlátos részhalmazának van szuprémuma, legkisebb fels˝o korlátja). Mivel t nem maximum, ezért Ax b-nek nincs cx t-t teljesít˝o megoldása. Így a fenti állítás szerint van yA c, y 0-nak yb t-t teljesít˝o megoldása. Ekkor Ax b minden x megoldására az 1.6. tétel bizonyításában már látott becslés szerint cx yA x y Ax yb t áll. Ez viszont ellentmond t választásának, hiszen yb a t-nél kisebb fels˝o korlát. Ez az ellentmondás bizonyítja, hogy max cx : Ax b mégis létezik. Ezzel a tétel (2)-es állításának a primál programra vonatkozó részét beláttuk. Ebb˝ol viszont a duális programra vonatkozó állítás is következik, hiszen a korábban látott módon az is a primálhoz hasonló alakúra hozható: a max b T yT : A T yT cT A T yT cT E yT 0 maximum a fentiek szerint létezik, ennek ellentettje pedig a duális program minimuma. Végül belátjuk a tétel (3)-as állítását. Azt már láttuk, hogy max cx : Ax b min yb : yA c y 0 fennáll. Indirekt tegyük fel, hogy itt nem egyenl˝oség áll és legyen t min yb : yA c y 0 . Ekkor az indirekt feltevés miatt a primál programnak nincs cx t-t teljesít˝o megoldása. Ezért a fenti állítás szerint a duális programnak van olyan megoldása, amire yb t. Ez viszont ellentmond t választásának. A 24. oldalon említettük, hogy ha a primál feladat max cx : Ax b x 0 alakban van megadva, akkor a duális feladat a min yb : yA c y 0 ekvivalens alakba írható. Mivel a gyakorlati alkalmazások során gyakran kerül el˝o ez az alak, a teljesség kedvéért a dualitástételt kimondjuk erre vonatkozóan is. 1.8. Tétel. (A lineáris programozás dualitástétele – ekvivalens alak) Ha a max cx : Ax b x 0 (primál) program megoldható és felülr˝ol korlátos, akkor a min yb : yA c y 0 (duális) program is megoldható és alulról korlátos, a primál programnak létezik maximuma, a duális programnak létezik minimuma, valamint max cx : Ax b x 0 min yb : yA c y 0

1.4.3.

A lineáris programozás bonyolultsága

Az eddig bizonyított tételek valamilyen értelemben megoldják a lineáris programozás alapfeladatát: szükséges és elégséges feltételt adtunk az egyenl˝otlenségrendszer megoldhatóságára, a célfüggvény korlátosságára, valamint a dualitástétellel „képletet” nyertünk a maximum értékére. Felmerül azonban a kérdés: hogyan lehet hatékony algoritmussal eldönteni a megoldhatóságot és megtalálni a maximum értékét? Az ezzel kapcsolatos, máig is legalapvet˝obb eredmény 1947-b˝ol származik: ekkor tette közzé Dantzig az úgynevezett szimplex módszert, amelyet az 1.7. szakaszban ismertetünk. Ez egy olyan algoritmus, amely megoldja a lineáris programozás

1. LINEÁRIS PROGRAMOZÁS

26

alapfeladatát (és közben a megoldhatóság kérdésére is válaszol). A módszer a gyakorlati alkalmazások során nagyon hatékonynak bizonyult, viszont sajnos nem polinomiális futásidej˝u, elképzelhet˝o olyan input, amelynél a lépésszáma exponenciális. Érdemes a lineáris programozás alapfeladatát bonyolultságelméleti szempontból megvizsgálni. Ehhez fogalmazzuk át a feladatot eldöntési problémává: Van-e az Ax cx t?

b feltételt kielégít˝o x vektorok között olyan, amelyre

Ez a feladat nyilván NP-beli (tanú egy ilyen x). Az 1.7. tétel miatt co-NP-beli is, hiszen ha max cx : Ax b t, akkor ezt a tényt bizonyítja a dualitástétel szerint létez˝o, az yA c, y 0, yb t feltételeket kielégít˝o y vektor. (A teljesség kedvéért megjegyezzük, hogy valójában azt is bizonyítani kellene, hogy x és y polinomiális méret˝u tanúk, vagyis a leírásukhoz szükséges karakterek száma felülr˝ol becsülhet˝o az A, b, c és t leírásához szükséges karakterek számának polinomjával. Ez valóban belátható, de itt erre nem térünk ki.) A tapasztalat szerint, ha egy problémáról kiderül, hogy NP co-NP -ben van, akkor nagyon gyakran az is bebizonyosodik róla, hogy P-beli. A lineáris programozás alapfeladatának esetében ezt a szimplex módszer nem bizonyítja, hiszen err˝ol említettük, hogy nem polinomiális futásidej˝u. A természetesen felvet˝od˝o kérdés, hogy vajon a probléma végül is P-ben van-e, a szimplex módszer 1947-es megjelenését˝ol fogva a számítástudomány egyik legtöbbet vizsgált problémájává vált. A válaszra 1979-ig kellett várni: ekkor jelent meg Hacsijan ellipszoid módszer néven ismertté vált algoritmusa, amely polinomiális id˝oben oldja meg a lineáris programozás alapfeladatát. A korábbi várakozásokkal szemben azonban ez nem vezetett a feladat eredményesebb megoldhatóságához, mert a szimplex módszer a gyakorlatban felmerül˝o problémákban rendre sokkal hatékonyabbnak bizonyult. Máig is a szimplex módszer maradt a legtöbbet használt fegyver a feladat megoldására annak ellenére, hogy Karmarkarnak 1984-ben sikerült az ellipszoid módszernél jobb futásidej˝u, a gyakorlatban is eredményesen használható, polinomiális idej˝u algoritmust adnia.

1.5. Egészértéku˝ programozás A gyakorlatban el˝oforduló optimalizációs problémák jelent˝os része olyan, hogy a feladat természetéb˝ol fakadóan a megoldásnál csak egész számok jöhetnek szóba. Ilyen volt például a (gyakorlatinak csak fenntartásokkal nevezhet˝o) Drakula M˝uvekre vonatkozó feladat is. Itt olyan szerencsénk volt, hogy bármilyen célfüggvényt is választottunk, a kapott optimumhely mindkét koordinátája véletlenül egész volt. (Bajban is lettünk volna, ha 3 helyett mondjuk 3.2 darab 1. típusú szörnyet kellett volna gyártani.) Ez azonban tényleg csak véletlenül lehetett így – például az 1.5. ábrán az optimumhely nem egész koordinátájú. Az egészérték˝u programozás a lineáris programozástól „csak” annyiban különbözik, hogy a keresett megoldás változóiról kikötjük, hogy egész számok legyenek. Rövidesen kiderül, hogy ezzel a feladat bonyolultságát lényegesen befolyásoljuk.

1.5. EGÉSZÉRTÉKU˝ PROGRAMOZÁS

1.5.1.

27

Az egészértéku˝ programozás alapfeladata

Jelöljük a max cx : Ax b feladatot (LP)-vel és a duális min yb : yA c, y 0 feladatot (DLP)-vel. Módosítsuk mindkét feladatot úgy, hogy a célfüggvényt ne a szóba jöv˝o megoldások teljes halmazán próbáljuk optimalizálni, hanem csupán azokon, melyek minden koordinátája egész (az ilyen vektorokat egész vektoroknak nevezzük). A módosított max cx : Ax b x egész illetve min yb : yA c y 0 y egész feladatokat (IP)-vel, illetve (DIP)-vel fogjuk jelölni, az egészérték˝u programozás angol nevének (integer programming) kezd˝obet˝ui miatt. Könny˝u olyan (IP) feladatot mutatni, amelynek az optimumértéke különbözik a megfelel˝o (LP) feladatétól. (Ehhez csak azt kell elérni, hogy az (LP) feladat optimumhelyei között ne legyen egész vektor.) Általában ezért csak annyi mondható, hogy (amennyiben az 1.7. dualitástétel feltételei fennállnak) max IP

max

min DLP

LP

min DIP

hiszen ha például a maximumot nem az egész halmazon, hanem csak egy részén képezzük, akkor a maximum értéke lehet, hogy kisebb lesz. Mivel itt konkrét feladatok esetében valódi egyenl˝otlenség is állhat (azaz max min el˝ofordulhat), ezért DIP

IP

az egészérték˝u programozásban sajnos nem lehetséges az 1.7. tételhez hasonlóan általános dualitási tételt kimondani.

1.5.2.

Az egészértéku˝ programozás bonyolultsága

A lineáris programozás esetében a dualitástétel többek között arra is jó volt, hogy következett bel˝ole a feladat (eldöntési változatának) co-NP-belisége. Ahhoz, hogy az egészérték˝u programozás feladatának bonyolultságáról b˝ovebbet mondhassunk, el˝oször fogalmazzuk meg eldöntési problémaként: Van-e az Ax b, x egész feltételeket kielégít˝o x vektorok között olyan, amelyre cx t? Nyilvánvaló, hogy a probléma NP-beli (tanú az x vektor), de a dualitástétel hiányában nem adódik a co-NP-beliség. Ez nem is várható: 1.9. Tétel. Az (IP) probléma NP-teljes. Bizonyítás: Mivel a feladat NP-beliségét már láttuk, elég lesz a 3-SAT problémát visszavezetni az (IP) problémára. Megadunk tehát egy eljárást, amely tetsz˝oleges d

f x1 x2

ei

xi11

xk

ei

xi22

ei

xi33

i 1

alakban megadott logikai függvényhez megad egy olyan (IP) problémát, melyre akkor és csak akkor igenl˝o a válasz, ha f kielégíthet˝o. Az (IP) probléma ismeretlenei legyenek z1 z2 zk , az egyenl˝otlenségek:

1. LINEÁRIS PROGRAMOZÁS

28 0 minden i

zi

12

k-ra

1a

zi 1 minden i 1 2 k-ra 1b továbbá minden diszjunkcióra is felírunk egy egyenl˝otlenséget: ha egy diszjunkció xi1 xi2 xi3 alakú (vagyis minden változó negálatlanul szerepel benne), akkor zi1

zi2

ha egy negált változója van, például xi1 zi1

zi2

1

1

1

zi3

1

2b

xi3 alakú, akkor

xi2

zi2

2a

xi3 alakú, akkor

xi2

ha két negált változója van, például xi1 zi1

1

zi3

1

zi3

2c

végül, ha mindhárom változója negálva szerepel, akkor 1

zi1

1

zi2

1

zi3

1

2d

Azonnal látszik, hogy ha f kielégíthet˝o, akkor a zi

1

xi

„igaz”

választással az egyenl˝otlenségrendszernek megtaláltuk egy egészérték˝u megoldását. Megfordítva, ha az egyenl˝otlenségrendszert egész zi értékekkel ki tudjuk elégíteni, akkor – mivel minden egész vagy 0, vagy 1 – az xi „igaz” zi 1 választással f -et kielégít˝o értékeket adtunk a logikai változóknak. Eközben a ki 1 zi összeg értéke valahol 0 és k között adódik, tehát c 11 1 választással tulajdonképpen a „Van-e az 1a 1b és a 2a 2d feltételeket kielégít˝o, egész vektorok között olyan, melyre cx 0?” kérdést tesszük fel. Az így kapott (IP) problémára a válasz akkor és csak akkor igenl˝o, ha f kielégíthet˝o. A fenti tétel azt jelenti, hogy az egészérték˝u programozás feladatának megoldására nem várható polinomiális idej˝u algoritmus. Ez azért „baj”, mert a gyakorlatban felmerül˝o kombinatorikus optimalizálási feladatok egy jelent˝os része csak (IP) problémaként fogalmazható meg kényelmesen, (LP) feladatként nem. Azt természetesen megtehetjük, hogy az (IP) feladat helyett az egészérték˝uségi feltétel elhagyásával keletkez˝o (LP) feladatot oldjuk meg, könnyen el˝ofordulhat azonban, hogy az így kapott megoldás értelmetlen az eredeti feladat szempontjából. Tekintsük például a következ˝o, korábbi tanulmányainkból már jól ismert feladatot: határozzunk meg egy adott G gráfban egy maximális független ponthalmazt. Ahhoz, hogy ezt átfogalmazzuk egészérték˝u programozási feladattá, a G gráf minden vi csúcsához (i 1 2 n) rendeljünk hozzá egy xi változót: xi 1 azt fogja jelenteni, hogy vi bekerül a készül˝o független ponthalmazba, xi 0 pedig azt, hogy nem. Ehhez persze garantálni kell, hogy minden változó 0, vagy 1 érték˝u legyen, de ez könny˝u: minden 1 i n értékre az xi változót egészérték˝unek deklaráljuk és felvesszük a 0 xi 1 egyenl˝otlenségeket. Ezután azt kell még elérni, hogy a kapott ponthalmaz valóban független legyen, vagyis minden élnek legföljebb csak az

1.5. EGÉSZÉRTÉKU˝ PROGRAMOZÁS

29

egyik végpontjához tartozó változó értéke lehessen 1. Ez sem nehéz: a gráf minden vi v j E G élére felvesszük az xi x j 1 egyenl˝otlenséget. Végül a maximalizálandó célfüggvényt egyszer˝uen a változók x1 x2 xn összegének érdemes választani, hiszen ez az xi -k között szerepl˝o 1-esek számával, vagyis a kapott független ponthalmaz méretével lesz egyenl˝o. Könny˝u meggy˝oz˝odni arról, hogy ha a fenti (IP) feladatban eltekintünk az egészérték˝uségi feltételt˝ol, akkor a kapott (LP) feladat megoldása már valóban semmilyen információt nem hordoz a maximális független ponthalmazról. Például ha G egy 3 hosszú kör, akkor az (IP) feladat maximuma nyilván 1, hiszen egy háromszögben ennyi a független pontok maximális száma. Azonban a megfelel˝o (LP) feladat maximuma 32 , amelyet az x1 x2 x3 12 választással kapunk. Megjegyezzük, hogy korábbi tanulmányainkból az is ismert, hogy a maximális független ponthalmaz keresése NP-nehéz feladat (vagyis eldöntési problémaként megfogalmazva NP-teljes). Ezért amikor a fentiekben ezt a feladatot visszavezettük az (IP) problémára, lényegében arra is új bizonyítást adtunk, hogy az (IP) probléma NP-teljes.

1.5.3.

Korlátozás és szétválasztás

Az egészérték˝u programozás feladatának gyakorlati fontossága miatt kialakultak olyan eljárások, amelyekkel a feladat szerencsés esetben mégis kezelhet˝o. Természetesen ezek az algoritmusok nem polinomiálisak, hiszen láttuk, hogy az (IP) feladat NP-nehéz. Az alábbiakban a max cx : Ax

b f

x

g x egész

alakú problémák megoldására kifejlesztett módszerek közül csak a gyakorlatban (programcsomagokban) legelterjedtebb korlátozás és szétválasztás (branch and bound) módszer egy változatának a vázlatát ismertetjük. Itt f és g tetsz˝oleges egész vektorok, amelyek alsó, illetve fels˝o korlátot szolgáltatnak a változókra. A feladat ilyen formában való kit˝uzését az indokolja, hogy csak így fogjuk tudni garantálni, hogy az algoritmus véges sok lépésben véget ér. A módszer alapgondolata a relaxáció, vagyis a feltételek enyhítése. Ez a gyakorlatban azt jelenti, hogy a kit˝uzött (IP) feladat helyett a megfelel˝o (LP) feladatot oldjuk meg, vagyis eltekintünk az egészérték˝uségi követelményt˝ol. Ha a kapott optimális megoldás (amelyet például a szimplex módszerrel kereshetünk meg) véletlenül egészérték˝u, akkor persze az (IP) feladatot is megoldottuk. Ha nem, akkor a vizsgált (IP) feladatot felbontjuk két kisebb feladatra (ezeket (IP) és (IP) fogja jelölni) és ezekre megismételjük az eljárást. A feladat felbontása leggyakrabban az úgynevezett elágazási változó segítségével történik. Ha a max cx : Ax b f x g x egész (IP) feladatot vizsgáljuk, akkor ehhez kiválasztjuk valamelyik változóját, például x j -t; ez lesz az elágazási változó. Emellett választunk az x j -re vonatkozó f j alsó, és g j fels˝o korlátok között egy f j t g j egész közbüls˝o értéket is. Az (IP)-b˝ol keletkez˝o (IP) és (IP) problémákat úgy definiáljuk, hogy azok megegyeznek (IP)-vel, csak (IP) -ben az x j -re

1. LINEÁRIS PROGRAMOZÁS

30

vonatkozó fels˝o korlát g j -r˝ol t-re, (IP) -ben pedig az x j -re vonatkozó alsó korlát f j -r˝ol t 1-re változik. Formálisan felírva tehát legyen fi

fi , t 1,

ha i ha i

j, j,

és

gi

gi , t,

ha i ha i

j, j.

Az (IP) probléma ezek után max cx : Ax b f x g x egész , az (IP) pedig max cx : Ax b f x g x egész alakú. Mindebb˝ol úgy t˝unhet, hogy ha a kit˝uzött (IP) feladat helyett megoldott (LP) relaxáció optimális megoldása nem egész, akkor ebb˝ol semmi haszon nem származik (csak két további (IP) feladat). Valójában a relaxált (LP) feladat megoldása során kiszámolt célfüggvényértéknek kés˝obb jó hasznát tudjuk venni: biztosak lehetünk benne, hogy a kapott (IP) és (IP) feladatok maximumértéke ennél nagyobb nem lehet (ha ugyanis egy részhalmazon keresünk maximumértéket, akkor ez nem lehet nagyobb a b˝ovebb halmazon vett maximumértéknél). Ennyi el˝okészítés után most már megadhatjuk az algoritmus precíz leírását. A m˝uködése során fenntartja a kit˝uzött (IP) probléma részfeladatainak egy (IP i ) f i g i w i :i 1 2 listáját. Itt (IP i ) kit˝uzésében f i a feli adathoz tartozó alsókorlát-vektort, g a megfelel˝o fels˝okorlát-vektort jelenti, w i pedig egy el˝ore ismert érték, amelyr˝ol tudjuk, hogy (IP i ) maximumértéke ennél nagyobb nem lehet. (Az (IP i ) nyilvántartásához más adatot nem kell tárolni, mert a feladathoz tartozó egyenl˝otlenségrendszer mindig Ax b marad.) Az algoritmus ezenkívül nyilvántartja az eddig talált legjobb z célfüggvényértéket és a hozzá tartozó x megoldást (eszerint cx z ). 0. lépés. Legyen f g (IP) feladatból áll) és legyen z

(vagyis kezdetben csak az eredetileg kit˝uzött (és x nem definiált).

1. lépés. Ha üres, akkor STOP. Ha nem, akkor válasszunk adatot és töröljük -b˝ol.

-b˝ol egy (IP i ) fel-

2. lépés. Ha w i z , akkor folytassuk az 1. lépésnél (ugyanis (IP i )-nek nem lehet z -nál jobb célfüggvényértéket adó megoldása). 3. lépés. Oldjuk meg az (IP i )-nek megfelel˝o (LP i ) relaxált (lineáris programozási) feladatot. Ha nincs megoldása, akkor folytassuk az 1. lépésnél. Ha van, akkor a maximumérték legyen z i , a hozzá tartozó maximumhely pedig x i . 4. lépés. Három esetet különböztetünk meg: (4a) eset: ha z i z . Ekkor folytassuk az 1. lépésnél (mert ilyenkor (IP i )-nek és annak minden további részfeladatának a maximumértéke is legföljebb z lehet). (4b) eset: ha z i z és x i egész vektor. Ekkor legyen z új értéke z i és legyen i x új értéke x . Folytassuk az 1. lépésnél. (4c) eset: ha z i z , de x i nem egész vektor. Ekkor a korábban írtak szerint i i válasszunk egy x j elágazási változót és egy f j t g j közbüls˝o értéket. -hez vegyük hozzá a megfelel˝o (IP i ) és (IP i ) feladatokat; a hozzájuk tartozó w i és w i érték (a célfüggvényre vonatkozó fels˝o korlát) legyen z i . Folytassuk az 1. lépésnél.

1.5. EGÉSZÉRTÉKU˝ PROGRAMOZÁS

31

1.10. Állítás. A fenti algoritmus véges sok lépésben leáll és megtalálja az (IP) feladat optimumát. Bizonyítás: A feladat kit˝uzésében szerepl˝o f és g vektorok garantálják, hogy az algorimus véges sok lépésben leáll, hiszen a kezdetben kit˝uzött (IP) feladatnak csak véges sok részproblémája lehet. Legyen az (IP) optimumértéke z0 . Indirekt tegyük fel, hogy az eljárás leállt és a z értéket szolgáltatta, de z z0 . Állítjuk, hogy ekkor az algoritmus m˝uködése során -ben mindig kellett, hogy legyen olyan (IP i ) feladat, amelynek az optimumértéke z0 . Kezdetben ez persze igaz volt, (IP) ilyen. Ha pedig az eljárás éppen egy ilyen tulajdonságú (IP i ) feladatot vizsgál, akkor mindenképpen eljut a 4. lépésig és ott a (4b) vagy a (4c) eset következik be. Ha a (4b) eset áll fönn, akkor az algoritmus mégis megtalálja a z0 optimumértéket, ellentmondás. Ha viszont a (4c) eset következik be, akkor a keletkez˝o (IP i ) és (IP i ) feladatok közül az egyikre teljesül, hogy a vizsgált tartományában a z0 -hoz tartozó optimumhely benne van, így ennek is az optimumértéke z0 . Mindebb˝ol az következik, hogy az eljárás során az lista sosem ürült ki (mert mindig tartalmazott legalább egy, a mondott tulajdonságú feladatot). Így az algoritmus sosem állhatott volna le. Láttuk, hogy ez ellentmondás. Az algoritmus m˝uködését úgy érdemes elképzelni, hogy az egy bináris fát épít fel, amelynek a csúcsai (IP) részfeladatai. (Ezt a fát szokták branch and bound fának nevezni.) A fa gyökerében (IP) áll és minden olyan esetben, amikor a 4. lépésben a (4c) eset következik be, a fa (IP i ) csúcsához két új „fiút” csatolunk: (IP i ) -t és (IP i ) -t. Említettük, hogy (IP)-nek csak véges sok részproblémája van, így a fa véges. Általában még sincs esély az összes részproblémát végigvizsgálni, mert ezeknek a száma hatalmas. A módszer (viszonylagos) hatékonysága éppen abban z bekövetkezik, rejlik, hogy minden olyan esetben, amikor a 2. lépésben w i a fának egy ágát „letörjük”, ezeknek a feladatoknak a vizsgálatával már nem kell foglalkoznunk. Az algoritmus fenti leírásánál két kérdést hagytunk nyitva: (1) az 1. lépésben hogyan válasszuk meg a következ˝o (IP i ) feladatot? (2) a 4. lépés (4c) esetében hogyan válasszuk meg az x j elágazási változót és a t közbüls˝o értéket? Mindkét kérdésre csak abban az értelemben tudunk válaszolni, hogy a tapasztalat szerint a gyakorlatban milyen választások bizonyulnak hatékonynak. (1) (IP i ) választása. A legelterjedtebb szabály szerint a legutoljára keletkezett problémát (vagyis az lista legutolsó tagját) vizsgáljuk tovább, de csak akkor, ha ez az egyik fia annak a problémának, aminek a relaxáltját a 3. lépés legutóbbi végrehajtásakor megoldottuk. (Ennek a szabálynak a közkelet˝u neve LIFO az angol „last in, first out” kezd˝obet˝uib˝ol.) Ez több okból is el˝onyös. Egyrészt a tapasztalat azt mutatja, hogy az egészérték˝u megoldások általában mélyen vannak a fában; a LIFO szabály révén pedig egyre mélyebbre jutunk a fában és így remélhet˝o, hogy hamarabb következik be a 4. lépés (4b) esete, vagyis találunk egy egészérték˝u megoldást. Másrészt a

1. LINEÁRIS PROGRAMOZÁS

32

LIFO alkalmazása után egy olyan feladatot vizsgálunk, amely az el˝oz˝oleg vizsgált problémából csak egyetlen új egyenl˝otlenség (a megfelel˝o alsó vagy fels˝o korlát) hozzávételével keletkezett. Ez pedig azért el˝onyös, mert a szimplex módszer egy változatát, az úgynevezett duál szimplex módszert (lásd az 1.7.5. pontot) használva ilyenkor a számolást nem kell elölr˝ol kezdeni, hanem folytatható az el˝oz˝oleg kiszámolt optimumhelyt˝ol. Ha viszont az lista utolsó tagja nem az egyik fia annak a problémának, amivel a 3. lépésben legutóbb foglalkoztunk, akkor célszer˝u a listából azt az (IP i ) feladatot kiválasztani, amelyikhez tartozó w i érték a lehet˝o legnagyobb. (2) x j és t választása. Amikor a 4. lépés (4c) esetében elágazási változót választunk, el˝otte (a 3. lépésben) mindig megoldjuk az (LP i ) relaxált feladatot és azt tapasztaljuk, hogy az x i optimumhely nem egész. Célszer˝u ezért elágazási változónak x i egy törtérték˝u komponensét választani. Ezek közül is gyakran azt választják, amelyik a legmesszebb van az egészérték˝uségt˝ol, vagyis amelyiknek a törtrésze a lehet˝o legközelebb van 12 -hez. i

i

Ha pedig ez a komponens x j , akkor a t közbüls˝o értéknek x j -t választják. Említettük, hogy a bemutatott algoritmus nem polinomiális futásidej˝u. Ez még nem feltétlenül volna baj, hiszen ugyanezt a szimplex módszerr˝ol is elmondtuk, pedig az a gyakorlatban nagyon hatékony. A korlátozás és szétválasztás módszerének esetében sajnos nem ez a helyzet. Bár a feladatot megoldó, kereskedelmi forgalomban is kapható programok a fenti, vázlatosan leírt módszert sokkal kifinomultabban és több más változatban is használják (s˝ot, ett˝ol lényegesen különböz˝o eljárásokat is tartalmaznak), a gyakorlati alkalmazások során felmerül˝o, nagyméret˝u feladatokkal gyakran mégsem tudnak megbirkózni.

1.6. Totális unimodularitás Az el˝oz˝o szakaszban láttuk, hogy a lineáris programozás feladata lényegesen bonyolultabbá válik, ha kikötjük a változók egészérték˝uségét. Ebben a szakaszban megismerkedünk a probléma egy olyan speciális esetével, amelyben az egészérték˝u és a lineáris programozás közötti nehézségbeli különbség elt˝unik, mert a max max IP

LP

egyenl˝otlenség automatikusan egyenl˝oséggel teljesül. Látni fogjuk, hogy több gyakorlati feladat is ebbe a speciális esetbe tartozik és ebb˝ol néhány (részben már ismert) gráfelméleti eredmény is következni fog.

1.6.1.

Totálisan unimoduláris mátrixok

Az említett speciális eset leírásához szükségünk lesz az alábbi definícióra. Ehhez emlékeztetünk rá, hogy ha egy A mátrixból kiválasztunk k tetsz˝oleges (nem feltétlenül szomszédos) sort és k darab (szintén tetsz˝oleges) oszlopot, akkor az ezek keresztez˝odéseiben kialakuló k k-as mátrixot az A négyzetes részmátrixának nevezzük.

1.6. TOTÁLIS UNIMODULARITÁS

33

1.11. Definíció. Egy mátrixot akkor nevezünk totálisan unimodulárisnak, ha minden négyzetes részmátrixának a determinánsa 0, 1 vagy 1 . Nyilvánvaló, hogy a totálisan unimoduláris mátrix minden eleme is 0 vagy 1 (hiszen az elemek 1 1-es részmátrixnak tekinthet˝ok), de ez a feltétel nem elégséges, példa erre a következ˝o mátrix: 1 1

1 1

Az alábbi tétel ad választ arra, hogy a totálisan unimoduláris mátrix fogalma miért válik fontossá a lineáris és egészérték˝u programozás elméletében. 1.12. Tétel. Legyen A totálisan unimoduláris mátrix, b egész vektor, c tetsz˝oleges (valós koordinátájú) vektor. Tegyük fel, hogy a max cx : Ax b (LP) feladat megoldható és a maximuma véges. Ekkor a max cx : Ax b x egész (IP) feladat is megoldható és a maximuma megegyezik az (LP) feladat maximumával. Ebb˝ol a tételb˝ol tehát az derül ki, hogy ha egy (IP) feladat véletlenül olyan, hogy az együtthatómátrixa totálisan unimoduláris (és az egyenl˝otlenségek jobb oldalán egész számok állnak), akkor a feladat hatékonyan megoldható (például a szimplex módszerrel). A tétel bizonyításához hosszabb el˝okészít˝o munkára van szükség, ezért ezt csak az 1.6.5. pontban adjuk majd meg. Külön kiemeljük a tételnek azt az egyszer˝u, de fontos következményét, hogy ha Ax b megoldható, A totálisan unimoduláris és b egész vektor, akkor van egész megoldás is (alkalmazzuk a tételt a c 0 választással). Az 1.5.1. pontban már láttuk, hogy ha (LP) jelöli a max cx : Ax b primál feladatot, (DLP) jelöli a min yb : yA c y 0 duálist, továbbá (IP) és (DIP) jelöli a megfelel˝o egészérték˝u programozási feladatokat, akkor max IP

max LP

min DLP

min DIP

Az 1.12. tétel feltételei mellett maxIP és maxLP között egyenl˝oség van. Ahhoz, hogy minDLP és minDIP között is egyenl˝oség álljon, szükséges, hogy c is egész vektor legyen, hiszen a duális feladat egyenl˝otlenségrendszerének „jobb oldala” így lesz egész. Még így sem világos, hogy alkalmazható-e az 1.12. tétel a duálisra is, hiszen az ehhez tartozó együtthatómátrix A A E T . Az alábbi lemma garantálja, hogy ez a mátrix is totálisan unimoduláris marad, ha A az volt. Így ha A totálisan unimoduláris és b és c egész vektor, akkor maxIP minDIP is teljesül, vagyis ebben a speciális esetben igaz a dualitástétel megfelel˝oje az egészérték˝u esetben is. 1.13. Lemma. Egy mátrix totálisan unimoduláris marad, ha (1) egy sorát vagy oszlopát 1 -gyel szorozzuk; (2) egységvektort (azaz egyetlen 1-es és különben csupa 0 komponensb˝ol álló vektort) veszünk hozzá új sorként vagy oszlopként; (3) az egyik sorát vagy oszlopát új sorként, illetve oszlopként egy új példányban hozzávesszük; (4) transzponáljuk.

1. LINEÁRIS PROGRAMOZÁS

34

Bizonyítás: Nyilván csak azoknak a négyzetes részmátrixoknak változik a determinánsa, amelyeket a változtatások valamelyike érint. Egy négyzetes részmátrix determinánsa is 1 -szeres lesz, ha az egyik sorát vagy oszlopát 1 -gyel szorozzuk, így az értéke 1 vagy 0 marad. Ha a mátrixhoz egységvektort veszünk hozzá például oszlopként, és egy kiválasztott négyzetes részmátrixban ez az oszlop szerepel, akkor az új oszlop szerinti kifejtésb˝ol azonnal látszik, hogy a determináns megegyezik az eredeti mátrix egy négyzetes részmátrixának determinánsával vagy annak ellentettjével, így az értéke 1 vagy 0. Ha például a mátrix egyik sorát új sorként hozzávesszük és ez a sor szerepel egy részmátrixban, akkor vagy a sor eredeti példánya is szerepel és akkor a determináns 0, vagy a részmátrix sorcserékkel el˝oáll az eredeti mátrix egy négyzetes részmátrixából, így a determináns ismét 1 vagy 0 marad. (4) pedig közvetlen következménye a determináns alaptulajdonságának. Az 1.12. tétel persze csak akkor válik jól alkalmazhatóvá, ha totálisan unimoduláris mátrixok a gyakorlatban is el˝ofordulnak; err˝ol szól az alábbi tétel. 1.14. Tétel. (1) Irányított gráf illeszkedési mátrixa totálisan unimoduláris. (2) Páros gráf illeszkedési mátrixa totálisan unimoduláris. Bizonyítás: Válasszunk ki egy irányított gráf illeszkedési mátrixából egy k kas M részmátrixot. k-ra vonatkozó indukcióval belátjuk, hogy det M 1 vagy 0. k 1-re az állítás nyilvánvaló, hiszen minden elem 1 vagy 0. Ha k 2 és Mnek van olyan oszlopa, amelyben legföljebb egy nemnulla elem van, akkor fejtsük ki det M-et e szerint az oszlop szerint, ekkor az indukciós feltétel szerint készen vagyunk. Ellenkez˝o esetben M minden oszlopában egy 1 és egy 1 elem kell legyen; ekkor viszont M sorainak összege nullvektor, így det M 0. Ezzel tehát (1)-et beláttuk. (2) esetében irányítsuk a G A B; E páros gráf éleit úgy, hogy minden él A-ból B-be mutasson. A kapott irányított gráf illeszkedési mátrixa (1) szerint totálisan unimoduláris. Az eredeti páros gráf illeszkedési mátrixát ebb˝ol úgy kaphatjuk meg, hogy a B csúcsainak megfelel˝o sorokat 1 -gyel szorozzuk. Így (2) következik az 1.13. lemma (1)-es állításából. Érdemes megjegyezni, hogy a fenti tétel (1)-es állítását korábbi tanulmányaink során már lényegében beláttuk a (hurokmentes) irányított gráf illeszkedési mátrixának rangja kapcsán. Nevezetesen igaz az az er˝osebb állítás, hogy egy négyzetes részmátrix determinánsa pontosan akkor 1, ha a kiválasztott oszlopoknak megfelel˝o élek (irányítatlan értelemben) körmentes részgráfot határoznak meg, és a kiválasztott soroknak megfelel˝o csúcsok közt a körmentes részgráf minden komponenséb˝ol egy kivételével minden csúcs szerepel; minden más esetben a determináns 0.

1.6.2.

Alkalmazás páros gráfokra

Legyen az n csúcsú, m él˝u irányítatlan G gráf illeszkedési mátrixa B és tekintsük a Bx 11 1 T , x 0 rendszer egész megoldásait. Azonnal látható, hogy

1.6. TOTÁLIS UNIMODULARITÁS

35

minden ilyen megoldás 0 1 érték˝u (azaz minden komponense 0 vagy 1). Az is könnyen ellen˝orizhet˝o, hogy egy 0 és 1 komponensekb˝ol álló x vektor pontosan akkor megoldás, ha az 1 komponenseknek megfelel˝o élek független élhalmazt alkotnak G-ben. Ezért ha most w tetsz˝oleges m dimenziós (valós) vektor, akkor a max wx : Bx 11 1 T x 0 x egész (IP) feladat nem mást jelent, mint hogy G-ben maximális súlyú független élhalmazt (párosítást) keresünk, ahol az élek súlyait w tartalmazza. Tegyük fel most, hogy G páros gráf. Ekkor az 1.14. tétel szerint B totálisan unimoduláris. A fenti (IP) feladatot leíró mátrixot (az x 0 feltétel miatt) úgy kapjuk, hogy B-t kiegészítjük az m m-es egységmátrix ellentettjével, ez azonban az 1.13. lemma szerint a totális unimodularitáson nem változtat. Így az (IP) feladat maximuma megegyezik a megfelel˝o (LP) feladat maximumával. Erre viszont már alkalmazhatjuk a dualitástételt: max wx : Bx

1

1

T

x

0

min y 1

1

T

: yB

wy

0

(Itt az 1.8. tételbeli alakot használtuk.) Mivel a duális feladat megoldásának koordinátái a B sorainak felelnek meg, ezért egy y megoldás minden v csúcshoz egy c v címkét rendel. A címkékre nézve yB w azt jelenti, hogy ha az e E él két végpontja x és y, akkor c x c y w e teljesül. Ezért a fenti egyenl˝oség az alábbi alakban is megfogalmazható: A B; E páros gráf és minden e E élhez 1.15. Tétel. (Egerváry Jen˝o) Legyen G legyen adott egy w e súly. Ekkor a maximális összsúlyú párosítás összsúlya min

cv v A B

ahol a fenti minimum az összes olyan, a csúcsokon értelmezett, nemnegatív érték˝u c függvényen értend˝o, amelyre c x c y w e teljesül minden e x y élre. A fenti tételben megjelen˝o c x c y w e feltétel már ismer˝os lehet: ez éppen az 1.1. szakaszban definiált címkézés. Így most választ kaptunk az 1.1. szakasz végén felvetett kérdésre, nevezetesen, hogy hogyan juthat eszünkbe a címkézés fogalmát bevezetni: a címkék tulajdonképpen a duális feladat változói. A dualitástétel pedig az elméleti háttere annak a jelenségnek, hogy a címkézés fogalma ennyire hatékony eszköznek bizonyult az algoritmus m˝uködésében. Megjegyezzük, hogy az 1.1. szakaszban lényegében az 1.15. tételt is beláttuk. Ugyanis az ott leírt algoritmus következménye, hogy az 1.1. lemma állításában „legföljebb” helyett „egyenl˝o” is állhat (hiszen az algoritmus elkészít egy teljes párosítást és egy címkézést, amelyekre egyenl˝oség áll). Az 1.15. tételben ehhez képest két eltérés van: maximális súlyú párosításról (nem pedig teljes párosításról) szól és nemnegatív érték˝u címkézést tartalmaz. A 10. oldalon leírt visszavezetést alkalmazva az 1.15. tétel állítása azonban könnyen megkapható az Egerváry-algoritmus következményeként is (a részleteket az olvasóra bízzuk).

1. LINEÁRIS PROGRAMOZÁS

36

Az 1.1. szakaszban látott algoritmusból az is könnyen következik, hogy ha a w súlyfüggvény egészérték˝u, akkor az optimális c függvény is választható egészérték˝unek (hiszen az algoritmus ilyenkor egészérték˝u c-vel indul és utána mindig egész -val módosítja azt). Másrészr˝ol ez az állítás közvetlen következménye az 1.12. tételnek is, ha azt a fenti min y 1 1 1 T : yB w y 0 duális programra alkalmazzuk. Megjegyezzük még, hogy a König-tétel (miszerint páros gráfban a független élek maximális száma egyenl˝o az éleket lefogó pontok minimális számával) is könnyen következik a fenti tételb˝ol, valamint a c egészérték˝uségére vonatkozó el˝oz˝o megfigyelésb˝ol. Válasszuk ugyanis a w súlyfüggvényt azonosan 1-nek; ekkor az optimális, egészérték˝u c 0 1 érték˝u lesz (mert az esetleges 1-nél nagyobb komponenseket 1-re változtatva c jó marad) és az 1-es komponenseknek megfelel˝o csúcsok lefogó ponthalmazt alkotnak.

1.6.3.

Alkalmazás hálózati folyamokra

Legyen G V E irányított gráf, s t V két kitüntetett csúcs és legyen adott a c:E nemnegatív érték˝u kapacitásfüggvény. Ha x : E tetsz˝oleges függvény és v V csúcs, akkor jelölje x v az x függvény v-be belép˝o éleken felvett értékeinek összegét, és hasonlóan, jelölje x v az x függvény v-b˝ol kilép˝o éleken felvett értékeinek összegét. Emlékeztetünk rá, hogy egy nemnegatív érték˝u x függvényt akkor hívtunk folyamnak, ha minden v V s t esetén x v x v teljesül. Az x folyam megengedett, ha minden e E élre x e c e . Ekkor a x s x s x t x t közös értéket a folyam értékének neveztük. Adott G s t c négyes (hálózat) esetén a feladat maximális érték˝u megengedett folyam keresése. A továbbiakban az egyszer˝uség kedvéért feltesszük, hogy s-be nem lép be él és t-b˝ol nem lép ki él; ezzel csak triviális eseteket zárunk ki. Emlékeztetünk továbbá arra is, hogy ha a V csúcshalmazt úgy bontjuk fel az S és T diszjunkt halmazokra, hogy s S és t T , akkor az olyan élek C halmazát, amelyeknek egyik végpontja S-ben, a másik T -ben van, vágásnak neveztük. A C-hez tartozó élek közül csak az S-b˝ol kilép˝okön a c kapacitásfüggvény értékeit összeadva a vágás értékét kapjuk, amit mC -vel jelölünk. Nyilvánvaló, hogy mC fels˝o becslés tetsz˝oleges s-b˝ol t-be vezet˝o folyam értékére. Korábbi tanulmányaink során megismerkedtünk a maximális folyam keresésére szolgáló, Fordtól és Fulkersontól származó algoritmussal, amely egyben bizonyítja, hogy a maximális folyam értéke megegyezik a minimális vágás értékével. Ebben a pontban megmutatjuk, hogy ez az eredmény hogyan következik a lineáris programozás elméletéb˝ol és bizonyos általánosítási lehet˝oségekre is rámutatunk. Ehhez szükségünk lesz az alábbi lemmára. 1.16. Lemma. Legyen x : E esetén x v x v , valamint

x

t

olyan függvény, amelyre minden v x s teljesül. Ekkor x folyam.

V

st

Bizonyítás: Becsüljük meg kétféleképpen az S

x

v

x

v

v Vv st

összeget! Egyrészt a feltétel szerint az összeg minden tagja nemnegatív, így S

0.

1.6. TOTÁLIS UNIMODULARITÁS

37

u v és u s, v t, akkor Másrészt S értékét élenként is vizsgálhatjuk: ha e x e értéke megjelenik S-ben v-nél pozitív és u-nál negatív el˝ojellel, így összességében kiesik. Ha viszont u s, de v t, akkor x e értéke csak v-nél jelenik meg S-ben, mégpedig pozitív el˝ojellel; hasonlóan, az u s, v t esetben x e csak negatív el˝ojellel jelenik meg S-ben, mégpedig u-nál. Mindezek azt mutatják, hogy S x s x t . (Ennek az állításnak az érvényességét egy esetleges s t él sem befolyásolja: ebben az esetben x e az S-et definiáló összegben egyáltalán nem jelenik meg, a x s x t különbségben pedig kiesik.) Így a lemma második feltételéb˝ol S 0. 0 következik. Mivel azonban az S-et definiáló A fentieket összevetve S összeg minden tagja nemnegatív, ez csak úgy valósulhat meg, ha minden tag 0. Így x v s t esetén, vagyis x valóban folyam. x v igaz minden v Jelöljük G illeszkedési mátrixát B-vel, a v V csúcsnak megfelel˝o B-beli sort bv -vel. Adjuk most hozzá G-hez az e t s élt (ezen fogjuk tudni „lemérni” a folyam nagyságát), a kapott gráfot jelölje G . Jelölje G illeszkedési mátrixát B és vizsgáljuk meg a B x 0 rendszer egy x megoldását. Jelöljük x utolsó komponensét µ-vel, az utolsó komponens elhagyásával keletkez˝o vektort x-szel. Minden v V s t csúcsra bv x 0 áll, ami könnyen ellen˝orizhet˝oen azt jelenti, hogy 0. B x 0 pedig s-re és t-re nézve azt jelenti, hogy x s µ 0 x v x v és µ 0. Mindezeket összevetve: v V s t esetén x v x t x v és µ x t x s . Így az 1.16. lemma miatt x folyam, ezért x t x s , és így az x folyam értéke µ. Ezek szerint a max 0 0 0 1 x :B x 0x 0 x c lineáris program azt jelenti, hogy maximális folyamot keresünk a G s t c hálózatban. (Itt x-szel továbbra is az x utolsó komponensének elhagyásával keletkez˝o vektort jelöltük.) Természetes, hogy azonnal alkalmazzuk a dualitástételt, és nyilván azt várjuk, hogy megkapjuk a már említett Ford–Fulkerson tételt. Sajnos a helyzet nem ilyen egyszer˝u, a dualitástétel által nyújtott alak els˝o ránézésre olyan bonyolult, hogy nem könny˝u benne felismerni a minimális vágás értékét. Írjuk fel a duális feladatot ismét az 1.8. tételbeli ekvivalens alakban (ezzel csak az x 0 feltétel kezelése válik kényelmesebbé). A primál feladatot leíró mátrix az x c feltétel miatt B -ból úgy áll el˝o, hogy egy sor (az e -nak megfelel˝o sor) híján egy egységmátrixot veszünk hozzá. Ezért a duális feladat változóit úgy érdemes tekinteni, hogy azok egyrészt minden v V csúcshoz egy v értéket, másrészt minden e E élhez egy w e értéket rendelnek. A mátrixos felírás helyett rögtön és w segítségével írjuk le a duális feladat feltételeit: minimalizálandó a e E w e c e összeg, ha v 0 minden v V -re és w e 0 minden e E-re; minden e u v él esetén u v we 0; ( ) t s 1. ( ) 1.17. Állítás. A fenti minimum értéke megegyezik a hálózati folyam minimális vágásának értékével. Bizonyítás: Legyen a fenti minimum értéke mDLP , a minimális vágás értéke mC . Egy mC érték˝u vágáshoz könnyen készíthetünk olyan, a feltételeket kielégít˝o -t és

1. LINEÁRIS PROGRAMOZÁS

38

w-t, amelyre w e c e mC . Ha a vágás úgy készült, hogy V -t az S és T (s S, t T ) diszjunkt részhalmazaira bontottuk, akkor v S esetén legyen v 0, v T esetén legyen v 1; egy olyan e u v élre, amelyre u S és v T legyen we 1, és minden más élre legyen w e 0. Az így definiált és w tényleg jó és wece mC , így mDLP mC következik. A fordított egyenl˝otlenség belátásához el˝oször is figyeljük meg, hogy a duális feladatot leíró mátrix totálisan unimoduláris, hiszen egy irányított gráf illeszkedési mátrixát egységvektorokkal egészítettük ki. Ezért az 1.12. tétel szerint az optimális és w választható egészérték˝unek is. w optimális, egészérték˝u megoldás. Ebb˝ol kiindulva Legyen tehát adott egy elkészítünk egy w optimális megoldást, amely ráadásul 0 1 érték˝u. Legyen v

0 1

ha ha

v v

s s

és w e

0 1

ha w e ha w e

0 1

Ekkor w tényleg megoldás, mert ( ) nyilván igaz, és ha egy e uv élre u v w e 0 állna, akkor a 0 1 érték˝uség miatt ez csak a u 0 w e, v 1 esetben volna elképzelhet˝o; ekkor definíciója miatt v s u , ami ellentmondana ( )-nak, hiszen w definíciója miatt 0. Továbbá w e c e w e c e , mert w e w e minden e élre telwe jesül, ezért w optimális megoldás. Legyen most S v V: v 0 és T v V: v 1 . A fentiek szerint s S és t T . Ha egy e u v élre u S és v T , akkor ( ) miatt w e 1. Minden más élen w e értéke csak akkor lehet 1, ha c e 0, mert különben w e 0-ra változtatása után a feltételek továbbra is fennállnának, és w e c e csökkenne. Ezért az S és T között feszül˝o élek alkotta vágás értéke mDLP , így mC mDLP . Ezzel tehát új bizonyítást nyertünk a Ford–Fulkerson tételre. (Megjegyezzük, hogy a javító utas algoritmus önmagában csak abban a speciális esetben bizonyítja a Ford–Fulkerson-tételt, ha minden él kapacitása racionális szám. Az általános esethez ugyanis szükség van arra a tényre is, hogy az algoritmus véges sok lépésben leáll; ezt azonban csak az Edmonds–Karp-tétel garantálja. A most kapott, lineáris programozásbeli bizonyítás viszont az általános esetre is érvényes.) Továbbá új bizonyítást nyertünk a javító utas algoritmusnak arra az egyszer˝u következményére is, hogy ha a kapacitásérték minden élen egész, akkor van olyan maximális folyam is, ami minden élen egészérték˝u. Ehhez elég az 1.12. tételre hivatkozni, hiszen tudjuk, hogy a feladatot leíró mátrix totálisan unimoduláris. A folyamprobléma lineáris programozási feladattá való átfogalmazásának f˝o nyeresége mégis inkább az, hogy általánosabb kérdések kezelésére is alkalmas. Erre az alábbiakban két példát mutatunk. Minimális költségu˝ folyam A G s t c hálózatot szokás szerint képzelhetjük úthálózatnak, amelyen id˝oegységenként a lehet˝o legtöbb terméket szeretnénk eljuttatni s-b˝ol t-be. Természetes gondolat feltételezni, hogy minden e u v élen egy egységnyi termék átjuttatásának

1.6. TOTÁLIS UNIMODULARITÁS

39

van egy adott k e nemnegatív költsége (benzinköltség, autópályadíj, ). Ekkor van értelme a legalább M érték˝u folyamok közül a legolcsóbbat keresni, vagyis azt az x folyamot, amelyre a e E k e x e összeg minimális. Ez, a korábbi jelöléseket megtartva a min kx : B x 0x 0 x c µ M lineáris programmal fogalmazható meg, ahol a k vektor tartalmazza az élekhez rendelt költségeket. Az 1.12. tétel szerint itt is állíthatjuk, hogy ha M és az élek kapacitásai egész számok, akkor a legolcsóbb folyam is választható egészérték˝unek. Megjegyezzük, hogy ha ráadásul az élek költségei is egészérték˝uek, akkor ennek az esetnek a megoldására ismert hatékony, polinomiális algoritmus, amely szintén Fordtól és Fulkersontól származik. Bár ez a lineáris programozás technikáját közvetlenül nem használja, az algoritmus m˝uködésében itt is meghatározó szerepet játszanak a duális feladat változói, hasonlóan ahhoz, ahogy azt a páros gráfbeli maximális összsúlyú teljes párosításra vonatkozó algoritmusnál láttuk. Többtermékes folyamprobléma A hálózati folyamok gyakorlati alkalmazásaiban a hálózatot gyakran nem egy, hanem több termék szállítására kell használni. A feladat precíz megfogalmazásához legyen adott egy G V E irányított gráf és abban k darab pontpár: s1 t1 s2 t2 sk tk . G-t továbbra is képzelhetjük út- vagy cs˝ohálózatnak, az si ti pontpárok pedig a k darab szállítandó termék termel˝o-, illetve fogyasztóhelyének felelnek meg. Végül legyen adott a c : E kapacitásfüggvény. A feladat egy megoldása abból áll, hogy minden élre megmondjuk, hogy azon az egyes termékekb˝ol mennyi halad át; így minden élhez k darab számot fogunk hozzárendelni. Az xi : E (i 1 2 k) függvények tehát akkor adják a feladat egy megoldását, ha xi v v teljesül minden 1 i k és minden v V si ti esetén, xi k

valamint

xi e

c e teljesül minden e

E élre (vagyis az élen átfolyó folyamér-

i 1

tékek összege nem haladja meg az él kapacitását). A többtermékes folyamfeladatban k

maximalizálandó az összfolyamérték, vagyis a

xi i 1

si

xi

si

összeg (ami a k

darab folyam értékének az összege). (Megjegyezzük, hogy a feladat másképpen is megfogalmazható – például minden egyes termék esetén külön kiköthet˝o az elérni kívánt folyamérték –, de a különböz˝o megfogalmazások lényegében ekvivalensek.) Az így kapott többtermékes folyamfeladat könnyen megfogalmazható lineáris programozási feladatként. A feladat változói az xi folyamoknak az egyes éleken felvett értékei (így k E változónk lesz). A xi v xi v feltételek minden i termék és minden (si -t˝ol és ti -t˝ol különböz˝o) csúcs esetén egy-egy lineáris egyenletet adnak. A ki 1 xi e c e feltételek minden élre egy-egy lineáris egyenl˝otlenséget jelentenek. Végül még ki kell kötni a változók nemnegatív érték˝uségét is. Mivel a maximalizálandó célfüggvény is a feladat változóinak lineáris függvénye (bizonyos élekhez rendelt változók értékeinek egy el˝ojeles összege), ezért valóban lineáris programozási feladatot kaptunk. A többtermékes folyamfeladat ezért eredményesen támadható a lineáris programozás eszközrendszerével; s˝ot, k 2 esetén nem is ismert a

1. LINEÁRIS PROGRAMOZÁS

40

feladatot megoldó, másfajta algoritmus. (Megjegyezzük azonban, hogy a lineáris programozás elméletén belül létezik több, a probléma specialitásait kihasználó, a szimplex módszer közvetlen alkalmazásánál hatékonyabb algoritmus.) Végül érdemes szót ejteni a többtermékes folyamproblémának a gyakorlati alkalmazások szempontjából rendkívül fontos, egészérték˝u változatáról is. Ebben az élek kapacitásai egész számok, és a megoldásra nézve további feltétel, hogy az élek folyamértékei (az xi e számok) is egészek legyenek. Említettük, hogy a k 1 esetben a javító utas algoritmus automatikusan egészérték˝u megoldást szolgáltat, így a feladat polinomiális id˝oben megoldható. A k 2 esetben viszont a fent leírt, lineáris programozásbeli megközelítés nem használható, mert a feladatot leíró mátrix nem totálisan unimoduláris. Nem is várható azonban, hogy polinomiális idej˝u algoritmus születik a feladat megoldására, mert a probléma már a k 2 esetben is NP-nehéz.

1.6.4.

Alkalmazás intervallumgráfokra

A számegyenes véges sok intervalluma alkossa egy gráf csúcshalmazát, és két csúcs akkor legyen szomszédos, ha a megfelel˝o intervallumok metsz˝ok; az így el˝oálló gráfokat intervallumgráfnak nevezik. Könny˝u végiggondolni, hogy a fenti meghatározásban feltehet˝o, hogy a gráfot meghatározó intervallumok valamely n-re az 1 n egész végpontú, zárt részintervallumai; ezt az alábbiakban végig fel is tesszük. Legyen tehát adott az I1 I2 Im intervallumrendszer. Ehhez a következ˝o n m-es A mátrixot rendelhetjük: A sorai feleljenek meg az 1 2 n egészeknek, oszlopai pedig az intervallumainak; az i-edik sor és a j-edik oszlop keresztez˝odésében akkor álljon 1-es, ha i I j , és minden más helyen álljon 0. 1.18. Állítás. Az így definiált A

mátrix totálisan unimoduláris.

Bizonyítás: Válasszunk ki A -b˝ol egy k k-as M részmátrixot. Ennek minden oszlopa olyan lesz, hogy fölülr˝ol lefelé haladva egy darabig 0-k, azután 1-esek, végül megint 0-k követik egymást (persze bármelyik 0-kat vagy 1-eseket tartalmazó szakasz lehet üres). Az 1-esek számára vonatkozó indukcióval belátjuk, hogy egy ilyen szerkezet˝u M négyzetes mátrix determinánsa 0 vagy 1. Ha M-ben nincs egyes, akkor det M 0. Ha van két olyan oszlop, amelyben fölülr˝ol nézve az els˝o egyes ugyanabban a sorban található, akkor a két oszlop közül a több egyest tartalmazóból a másikat kivonva ugyanilyen szerkezet˝u, de kevesebb egyest tartalmazó mátrixot kapunk, miközben a determináns nem változott; így az indukció miatt készen vagyunk. Ellenkez˝o esetben M-ben vagy van csupa nulla oszlop, vagy oszlopcserékkel a f˝oátlójában csupa egyeseket tartalmazó alsóháromszögmátrixszá alakítható. Az el˝obbi esetben det M 0, az utóbbiban det M 1. 1.19. Tétel. Az 1 n egész végpontú, zárt I1 I2 Im részintervallumai minden k pozitív egészre megszínezhet˝ok k színnel úgy, hogy a színezés minden 1 i n esetén „egyenletes” legyen. Itt az egyenletes színezés azt jelenti, hogy ha az i-t tartalmazó intervallumok száma di , akkor ezek közül minden felhasznált szín esetén az ilyen szín˝u intervallumok száma dki vagy dki . ( alsó egészrészt, fels˝o egészrészt jelöl.)

1.6. TOTÁLIS UNIMODULARITÁS

41

Bizonyítás: Elég lesz bebizonyítani, hogy az intervallumok közül kiválasztható néhány úgy, hogy minden 1 i n esetén az i-t tartalmazó intervallumok között dki vagy dki darab kiválasztott legyen. Ha ugyanis ez már igaz, akkor az így kiválasztott intervallumokat megszínezzük egy színnel, majd elhagyjuk o˝ ket. A megmaradt intervallumokra a fenti állítást alkalmazzuk k 1 -gyel, vagyis kiválasztunk közülük néhányat úgy, hogy kdi1 vagy kdi1 illeszkedjen minden i-re, ezeket a következ˝o színnel színezzük stb. az 1.18. állításnak megfelel˝oen az intervallumokhoz rendelt Jelölje A A mátrixot. Legyen továbbá d az az n dimenziós vektor, aminek az i-edik komponense di . dk -val fogjuk jelölni azt a vektort, aminek az i-edik komponense dki , a dk vektor értelmezése hasonló. Tekintsük most a d k

Ax

d k

0

x

11

1

T

1 1 1 T rendszert. Ez megoldható, hiszen az x választással megoldást kak k k punk. Az 1.18. állításból és az 1.13. lemmából következik, hogy a rendszert leíró mátrix totálisan unimoduláris, így az 1.12. tétel szerint van egészérték˝u megoldás is. Ha most x egészérték˝u megoldás, akkor nyilván 0 1 érték˝u és az 1-es komponenseknek megfelel˝o oszlopok összege dk és dk között van. Így az ezeknek az oszlopoknak megfelel˝o intervallumokat kiválasztva valóban dki vagy dki darab illeszkedik minden i-re.

Ennek a tételnek egy egyszer˝u következménye korábbi tanulmányainkból már ismert lehet. Emlékeztetünk rá, hogy egy gráfot akkor neveztünk perfektnek, ha rá és minden F feszített részgráfjára F F teljesül, ahol F a kromatikus számot, F pedig a maximális klikkméretet jelöli. Alkalmazzuk most a fenti tételt a G intervallumgráfra a k G választással. Azt kapjuk, hogy a csúcsok jól színezhet˝ok G színnel, vagyis G G . Ezzel tehát arra a tényre nyertünk bizonyítást, hogy az intervallumgráfok perfektek (hozzátéve, hogy intervallumgráf minden feszített részgráfja is intervallumgráf).

1.6.5.

Bázismegoldások

Az el˝oz˝o pontokban láttuk, hogy a totálisan unimoduláris mátrixoknak és a rájuk vonatkozó 1.12. tételnek számos alkalmazása van. Egyel˝ore azonban adósak vagyunk az 1.12. tétel bizonyításával. Ebben a pontban törlesztjük ezt az adósságunkat, de ehhez el˝oször egy olyan alapvet˝o tétellel (és a hozzá kapcsolódó fogalmakkal) kell megismerkednünk, amely a szimplex módszer m˝uködésében is lényeges lesz. Térjünk most vissza a Drakula M˝uvek feladatához (lásd az 1.2. pontot). A feladatot vizsgálva megfigyelhet˝o, hogy a c célfüggvény választásától függetlenül az optimumhely mindig az 1.3. ábrán látható T tartomány valamelyik csúcsa volt. Ez nem is meglep˝o, hiszen a megoldás során egy egyenest addig toltunk önmagával párhuzamosan, amíg még éppen metszette a T tartományt; szemléletesen jól látszik, hogy ekkor a metszéspont általában egy csúcs. Persze ez nem mindig van így: ha ugyanebben a feladatban a c c1 c2 célfüggvényt például úgy választjuk, hogy

1. LINEÁRIS PROGRAMOZÁS

42

c1 4c2 teljesüljön, akkor a T tartománynak egy egész oldalszakaszán (a 3 4 és a 4 0 pontokat összeköt˝o szakaszon) minden pont optimumhely lesz (mert ekkor az önmagával párhuzamosan tolt egyenes T megfelel˝o oldalszakaszával is párhuzamos). Az viszont még ekkor is igaz, hogy az optimumhely választható úgy is, hogy csúcs legyen. Az alábbiakban a f˝o célkit˝uzésünk az lesz, hogy ezt a jelenséget általánosítsuk tetsz˝oleges lineáris egyenl˝otlenségrendszerre. Az ezzel kapcsolatos els˝o nehézség az, hogy általában a megoldáshalmaznak nem is feltétlenül van csúcsa; példa erre síkban az x y 0 (egyetlen egyenl˝otlenségb˝ol álló) rendszer, amely egy zárt félsíkot határoz meg. Ezért el˝oször egy olyan fogalmat kell értelmeznünk, amely az el˝oz˝o bekezdés végén megfogalmazott állításban a csúcsot helyettesíti; ez a fogalom az er˝os bázismegoldás lesz. Ennek a definíciója egyáltalán nem magától értet˝od˝o, hiszen azt szeretnénk, hogy egyrészt a csúcs fogalmát általánosítsa, másrészt akkor is létezzen, ha csúcs nincs. Ha a csúcs által nyújtott szemléletb˝ol akarunk kiindulni, akkor annyit azért mondhatunk, hogy olyan megoldását keressük az Ax b rendszernek, ami „minél több” egyenl˝otlenséget elégít ki egyenl˝oséggel, vagyis „minél több” határolóegyenesen (illetve síkon, vagy általában hipersíkon) van rajta. Megjegyezzük, hogy az (er˝os) bázismegoldás fogalmát a szakirodalomban általában csak egy speciális esetben, az Ax b, x 0 alakú rendszerekre vezetik be (lásd az 1.23. állítást). Mi a továbbiakban a Frank Andrástól származó, [2]-beli definíciót és az ennek megfelel˝o felépítést vesszük át. 1.20. Definíció. Tegyük fel, hogy az Ax b rendszernek x egy megoldása. Álljon Ax az A mátrix azon soraiból, amelyeknek megfelel˝o egyenl˝otlenségeket az x egyenl˝oséggel teljesíti. (Más szóval, az ai sor akkor kerül Ax -be, ha ai x b i .) Az x-et bázismegoldásnak nevezzük, ha r A r Ax . Egy x bázismegoldást er˝os bázismegoldásnak nevezünk, ha az x nemnulla komponenseinek megfelel˝o A-beli oszlopok lineárisan függetlenek. A definíció utolsó mondatát úgy kell érteni, hogy ha a nullvektor bázismegoldás (vagyis nincs nemnulla komponens), akkor automatikusan er˝os bázismegoldás is. Azonnal következik a definícióból az is, hogy ha A oszlopai lineárisan függetlenek, akkor bázismegoldás és er˝os bázismegoldás között nincs különbség. Tekintsük ismét a Drakula M˝uvek feladatát. Az egyenl˝otlenségrendszert leíró 2. mátrix (lásd a 15. oldalt) összesen két oszlopa lineárisan független, így r A Mivel bármelyik két sor lineárisan független, ezért egy megoldás akkor lesz bázismegoldás, ha a négyb˝ol két egyenl˝otlenséget egyenl˝oséggel teljesít, azaz ha az 1.3. ábrán látható T tartomány határolóegyenesei közül kett˝on rajta van. Más szóval, a rendszer bázismegoldásai a T tartomány csúcsai – és az oszlopok függetlensége miatt ezek egyben az er˝os bázismegoldások is. Második példaként vizsgáljuk meg az 1 x y 2 rendszert, amelynek a megoldáshalmaza két párhuzamos egyenes által határolt végtelen sáv (amelynek tehát nincs csúcsa). Mátrixos formában felírva: A

1 1

1 1

b

2 1

1.6. TOTÁLIS UNIMODULARITÁS

43

1, így egy megoldás akkor lesz bázismegoldás, ha egy sort egyenl˝oséggel Itt r A teljesít. Vagyis végtelen sok bázismegoldás van: az x y 1 és az x y 2 egyenesek pontjai. Mivel A két oszlopa lineárisan összefügg˝o, ezért a bázismegoldások közül csak azok lesznek er˝os bázismegoldások, amelyeknek van 0 komponense. Így négy er˝os bázismegoldás van: 1 0 , 2 0 , 0 1 , 0 2 . Korábban említettük, hogy az Ax b megoldáshalmazát poliédernek nevezik. A fenti két példa azt sugallja, hogy az (er˝os) bázismegoldás fogalmával valóban a poliéder csúcsát sikerült általánosítani, ha van egyáltalán ilyen. A bizonyítás és a részletek mell˝ozésével megemlítjük, hogy ez valóban igaz. Persze ahhoz, hogy ennek az állításnak értelme legyen, definiálni kellene a csúcs fogalmát tetsz˝oleges poliéderre. Ha az eredeti, térbeli poliéderekre gondolunk, ezeknek egy pontja akkor csúcs, ha nem található olyan, a poliéderhez tartozó szakasz, aminek a szóban forgó pont bels˝o pontja. Ez a meghatározás pedig elfogadható definíciónak az általános esetben is. Láttuk, hogy nem minden poliédernek van csúcsa. Az érdekesség kedvéért megemlítjük, hogy egy Ax b poliédernek pontosan akkor van csúcsa, ha nem tartalmaz egyenest; ez pedig pontosan akkor teljesül, ha A oszlopai lineárisan függetlenek. Ebben a fontos speciális esetben pedig a bázismegoldás, az er˝os bázismegoldás és a csúcs fogalma egybeesik. Az er˝os bázismegoldás geometriai szemlélet˝u megközelítése után szükségünk lesz az alábbi, algebrai jelleg˝u leírásra is. Ehhez emlékeztetünk arra, hogy egy négyzetes mátrixot akkor neveztünk nemszingulárisnak, ha a determinánsa nem 0 (vagyis ha a rangja egyenl˝o a sorainak, illetve az oszlopainak a számával). Emlékeztetünk továbbá arra is, hogy ha A nemszinguláris, négyzetes mátrix, akkor az Ax b lineáris egyenletrendszer tetsz˝oleges b esetén egyértelm˝uen megoldható. 1.21. Lemma. Legyen adott az Ax b rendszer. Válasszunk ki A-ból egy r A r A méret˝u nemszinguláris A részmátrixot, a b vektor A sorai által meghatározott részét jelölje b . Az A x b egyenletrendszer egyértelm˝u megoldását egészítsük ki az A -hoz nem tartozó oszlopoknak megfelel˝o helyeken 0 komponensekkel. Ha a kapott vektor megoldása Ax b-nek, akkor er˝os bázismegoldás. Megfordítva, minden er˝os bázismegoldás el˝oáll ilyen alakban. Bizonyítás: Tegyük fel el˝oször, hogy egy x megoldás a mondott alakú. Ekkor r A darab lineárisan független sort (nevezetesen az A -hoz tartozókat) egyenl˝oséggel teljesít, így r A r Ax . Másrészt a nemnulla komponenseknek megfelel˝o oszlopok az A -hoz tartozó oszlopok közül kerülnek ki, így ezek tényleg lineárisan függetlenek. Megfordítva, legyen x er˝os bázismegoldás. Válasszunk ki Ax sorai közül tetsz˝olegesen r A darab lineárisan függetlent. Az x nemnulla komponenseinek megfelel˝o oszlopok lineárisan függetlenek, így számuk legföljebb r A ; egészítsük ki ezeket tetsz˝olegesen úgy, hogy r A darab lineárisan független oszlopot kapjunk. Ekkor a kapott oszlopok és a kiválasztott sorok keresztez˝odéseiben kialakuló r A r A méret˝u nemszinguláris részmátrix a lemma szövege szerint éppen x-et határozza meg. (Itt felhasználtuk azt az állítást, hogy ha egy A mátrixból kiválasztunk r A darab lineárisan független sort és ugyanennyi lineárisan független oszlopot, akkor a

44

1. LINEÁRIS PROGRAMOZÁS

keletkez˝o négyzetes részmátrix nemszinguláris. Ennek az egyszer˝u lineáris algebrai állításnak a bizonyítását nem részletezzük.) A lemmából azonnal következik, hogy az er˝os bázismegoldások száma véges (hiszen A-ból csak véges sokféleképpen választhatjuk ki A -ot). Az alábbi tétel arra ad (részleges) választ, hogy az er˝os bázismegoldás fogalma miért kiemelked˝oen fontos a lineáris programozás elméletében. 1.22. Tétel. (Caratheodory) Tegyük fel, hogy Ax b megoldható és a megoldáshalmazán cx felülr˝ol korlátos. Ekkor minden x0 megoldáshoz létezik olyan x1 er˝os bázismegoldás, amelyre cx1 cx0 . Bizonyítás: A tételt három állításon keresztül fogjuk belátni. Á LLÍTÁS . Legyen x0 megoldása Ax b-nek. Ha x0 nem bázismegoldás, akkor létezik olyan z vektor, amelyre Ax0 z 0, cz 0, valamint A-nak van olyan ai sora, amelyre ai z 0. Az állítás bizonyítása:Ha x0 nem bázismegoldás, akkor r Ax0 r A , így A-nak van olyan a j sora, ami nem fejezhet˝o ki Ax0 soraiból lineáris kombinációval. Ekkor tehát nem megoldható az yAx0 a j egyenletrendszer. Így az 1.5. állítás szerint (azt az Ax0 transzponáltjára alkalmazva) létezik olyan z vektor, amelyre Ax0 z 0, a j z 0. Ha most cz 0, akkor z vagy z megfelel az állítás követelményeinek, hiszen z-r˝ol z -re áttérve Ax0 z 0, cz 0 továbbra is igaz marad, de a j z el˝ojelet vált. Ha viszont cz 0, akkor z vagy z közül a megfelel˝ot kiválasztva elérhet˝o, hogy cz 0 teljesüljön. Most Az 0 lehetetlen, mert akkor (cz 0 miatt) az 1.6. tétel (2) feltétele szerint Ax b megoldáshalmazán cx nem volna felülr˝ol korlátos. Vagyis van olyan ai sor, amelyre ai z 0, így az állítás követelményei ilyenkor is teljesülnek. Á LLÍTÁS . Legyen x0 megoldása Ax b-nek. Ha x0 nem bázismegoldás, akkor létezik Ax b-nek egy olyan x megoldása, amely x0 -nál több A-beli sort teljesít egyenl˝oséggel (vagyis Ax -nek több sora van, mint Ax0 -nek) és amelyre cx cx0 teljesül. Az állítás bizonyítása: Legyen z az el˝oz˝o állítás által garantált vektor és legyen x x0 z( 0). Belátjuk, hogy alkalmas választással x x megfelel az állítás feltételeinek. Ehhez vegyük észre, hogy Ax0 x Ax0 x0 z Ax0 x0 Ax0 z Ax0 x0 0, vagyis választásától függetlenül x az Ax0 sorait egyenl˝oséggel teljesíti. Ahhoz, hogy valamely 0-ra x megoldása legyen Ax b-nek, b i ai x a i x0 z ai x0 ai z kell hogy teljesüljön A minden (Ax0 -be nem tartozó) ai sorára. Ha valamely i-re ai z 0, akkor ez a feltétel minden 0-ra fennáll. Ha b i a i x0 i viszont a z 0 (és ilyen i a z választása miatt van), akkor kell hogy ai z teljesüljön. Legyen ezért b i ai x0 min ai z i:ai z 0

1.6. TOTÁLIS UNIMODULARITÁS

45

Ekkor tehát x megoldása lesz Ax b-nek, egyenl˝oséggel teljesíti az Ax0 sorait, valamint legalább még egy további ai sort: azt, ahol a -t definiáló minimum felvétetett. Másrészt viszont cx c x0 z cx0 cz cx0 0, így x x valóban megfelel az állítás követelményeinek. A most belátott állítás következménye, hogy minden x0 megoldáshoz létezik olyan x1 bázismegoldás, amelyre cx1 cx0 . Ha ugyanis x0 eleve bázismegoldás, akkor x1 x0 megfelel. Ellenkez˝o esetben alkalmazzuk x0 -ra a fenti állítást: ha a kapott x már bázismegoldás, akkor x1 x megfelel. Ha nem, akkor most x -re alkalmazzuk a fenti állítást stb. Mivel A-nak véges sok sora van, ezért ez az eljárás egy ponton leáll és szolgáltatja a kívánt x1 bázismegoldást. Á LLÍTÁS . Legyen x0 bázismegoldása Ax b-nek. Ha x0 nem er˝os bázismegoldás, akkor létezik Ax b-nek egy olyan x bázismegoldása, amelynek több 0 komponense van, mint x0 -nak és amelyre cx cx0 teljesül. Az állítás bizonyítása: Mivel x0 nem er˝os bázismegoldás, ezért a nemnulla komponenseinek megfelel˝o oszlopok lineárisan összefügg˝ok. Ez megfogalmazható úgy is, 0 zi 0 teljesül hogy létezik egy olyan z 0 vektor, amelyre Az 0 és x0 i minden i-re. (Ugyanis Az 0 azt fejezi ki, hogy A oszlopainak a z komponenseivel mint együtthatókkal képzett lineáris kombinációja a nullvektort adja. A z-re tett feltétel miatt azonban ebben a lineáris kombinációban csak az x0 nemnulla komponenseinek megfelel˝o A-beli oszlopok szerepelhetnek nemnulla együtthatóval.) Tekintsük ismét az x x0 z vektort, ahol most tetsz˝oleges. MegA x0 z mutatjuk, hogy minden értékére x bázismegoldás. Ugyanis Ax Ax0 Az Ax0 0 b, ezért x megoldás; továbbá (Ax Ax0 miatt) ugyanazokat a sorokat teljesíti egyenl˝oséggel, mint x0 (vagyis Ax0 Ax ), így bázismegoldás is. Emellett cz 0 is igaz, különben z-r˝ol esetleg z -re áttérve Az 0, cz 0 teljesülne, így az 1.6. tétel (2) feltétele szerint cx nem volna felülr˝ol korlátos Ax b megoldáshalmazán. Ezért cx c x0 z cx0 cz cx0 0. Azt kell tehát csak megmutatni, hogy alkalmas megválasztásával elérhet˝o, hogy x -nak több 0 komponense legyen, mint x0 -nak. Az x0 i 0 zi 0 feltétel miatt x0 i 0 x i 0 is nyilván teljesül minden i-re és minden -ra. Legyen ezért j olyan, hogy z j 0 (z 0 miatt ilyen j van), ekkor tehát x0 j 0 x0 j is igaz. Most x0 j z j 0 is teljesülni fog a választás mellett, így z j x x megfelel az állítás követelményeinek. Most már beláthatjuk a tétel eredeti állítását. Induljunk ki egy tetsz˝oleges x0 megoldásból. Azt már a fenti állítás el˝ott megmutattuk, hogy létezik olyan x1 bázismegoldás, amelyre cx1 cx0 . Ha x1 er˝os bázismegoldás, akkor megfelel a tétel követelményeinek. Ha nem, akkor alkalmazzuk rá a fenti állítást: ha a kapott x már er˝os bázismegoldás, akkor megfelel a tétel feltételeinek. Ha nem, akkor most x -re alkalmazzuk a fenti állítást stb. Az eljárás véges sok lépés után leáll és szolgáltatja a kívánt er˝os bázismegoldást, hiszen csak véges sok komponens van (és említettük, hogy ha a nullvektor bázismegoldás, akkor automatikusan er˝os bázismegoldás is).

1. LINEÁRIS PROGRAMOZÁS

46

A most bizonyított tétel megfogalmazható úgy is, hogy ha a max cx : Ax b lineáris program megoldható és a maximum véges, akkor a maximum felvétetik a rendszer er˝os bázismegoldásán is: alkalmazzuk a tételt egy tetsz˝oleges x0 maximumhelyre. Megjegyezzük, hogy ezzel új bizonyítást kaptunk az 1.7. dualitástétel (2)-es állítására is: az er˝os bázismegoldások száma véges, így ezeken meghatározva a cx célfüggvény értékét és a kapott véges sok érték maximumát véve a teljes megoldáshalmazon vett maximumhoz jutunk. Külön kiemeljük a tételnek azt a fontos következményét, hogy ha Ax b megoldható, akkor van er˝os bázismegoldása is: alkalmazzuk a fenti tételt a c 0 választással. Caratheodory tételének ismeretében most már bebizonyíthatjuk az 1.12. tételt. Ehhez fel fogjuk még használni a Cramer-szabály néven közismert lineáris algebrai tételt is. Ez a következ˝ot mondja ki: legyen A egy n n-es, nemszinguláris mátrix, és b egy n dimenziós oszlopvektor. Jelölje Ai azt a mátrixot, amelyet A-ból úgy kapunk, hogy az i-edik oszlopát a b vektorral helyettesítjük. Ekkor az Ax b lineáris egyenletrendszer egyértelm˝u megoldásának az i-edik komponense: xi

det Ai det A

A Cramer-szabály bizonyítása megtalálható számos lineáris algebráról szóló könyvben (például Freud Róbert: Lineáris algebra, ELTE Eötvös Kiadó, Budapest, 2001). Az 1.12. tétel bizonyítása: Azt fogjuk belátni, hogy az Ax b rendszer minden er˝os bázismegoldása egész vektor. Ebb˝ol már következni fog a tétel állítása, hiszen Caratheodory tételéb˝ol (1.22. tétel) tudjuk, hogy a max cx : Ax b lineáris program maximuma felvétetik er˝os bázismegoldáson is. Az 1.21. lemma állítása szerint az er˝os bázismegoldások el˝oállnak úgy, hogy A-ból kiválasztunk egy r A r A méret˝u, nemszinguláris A részmátrixot, megoldjuk a megfelel˝o A x b egyenletrendszert, majd a megoldást kiegészítjük 0 komponensekkel. A Cramer-szabály szerint x minden komponense egy olyan tört, amelynek a számlálója egy A és b elemeib˝ol képzett determináns, a nevez˝oje pedig det A . Ebb˝ol azonnal következik, hogy x egész vektor, hiszen a számláló A és b egészérték˝usége (és a determináns definíciója) miatt mindig egész szám, A totális unimodularitása miatt pedig det A 1. Megjegyezzük még, hogy a fenti bizonyításban azt az er˝osebb állítást láttuk be, hogy (az 1.12. tétel feltételei mellett) minden er˝os bázismegoldás egész vektor. Ez a tény azért válik fontossá, mert (amint azt az 1.7. szakaszban látni fogjuk) a szimplex módszer minden lineáris programozási feladat esetén olyan optimumhelyet szolgáltat, amely ráadásul er˝os bázismegoldás. Ez pedig azt jelenti, hogy ha egy (IP) feladatra az 1.12. tétel feltételei fennállnak, akkor a megfelel˝o (LP) feladatra alkalmazva a szimplex módszert, automatikusan az (IP) feladat megoldását kapjuk.

1.7. SZIMPLEX MÓDSZER

47

1.7. Szimplex módszer Ebben a szakaszban ismertetjük a szimplex módszert. Korábban már említettük, hogy noha ez az algoritmus nem polinomiális futásidej˝u, mégis máig a leghatékonyabbnak tekinthet˝o a lineáris programozás feladatát megoldó eljárások közül. A szimplex módszert eredeti formájában Dantzig tette közzé 1947-ben. A módszer m˝uködése szemléletesen úgy mondható el, hogy az egyenl˝otlenségrendszer megoldáshalmazát alkotó poliéder egy csúcsából kiindulva a célfüggvény szempontjából egyre jobb és jobb csúcsokra lép, míg végül megtalálja az optimumot. Megjegyezzük, hogy ez a szakasz követhet˝o csupán a lineáris programozás alapfeladatának (vagyis az 1.2. szakaszban írtak) ismeretében is. Ebben az esetben mind az 1.23. Állítást, mind az 1.7.1. szakasz végén a kanonikus alakú feladat duálisáról írtakat definíciónak lehet tekinteni (és a bizonyítást figyelmen kívül lehet hagyni). A szimplex módszerb˝ol egyben a fejezet számos eddigi tételére (így az 1.4., 1.6., 1.7. és 1.22 tételekre) is új bizonyítást lehet adni; ezekre itt nem térünk ki, a részletek végiggondolását az érdekl˝od˝o olvasóra bízzuk.

1.7.1.

Az alapfeladat kanonikus alakja

A szimplex módszer m˝uködése feltételezi, hogy a megoldani kívánt lineáris programozási feladat max cx : Ax b x 0 alakban van kit˝uzve, vagyis a feladat változóiról ki van kötve, hogy nemnegatív érA b ték˝uek. (A feladathoz tartozó teljes egyenl˝otlenségrendszer tehát x E 0 volna.) A gyakorlatban felmerül˝o feladatoknál valóban gyakori jelenség, hogy a változók nemnegatív érték˝usége automatikusan adódik a feltételekb˝ol, de ha nem ez a helyzet, az sem okoz nehézséget: ha valamelyik változónál – például x1 -nél – meg akarjuk engedni a negatív érték˝uséget is, akkor vezessük be x1 helyett az y1 és z1 új változókat, és az egyenl˝otlenségrendszerben valamint a célfüggvényben x1 -et mindenhol helyettesítsük y1 z1 -gyel. Ekkor y1 -r˝ol és z1 -r˝ol már kiköthetjük a nemnegatív érték˝uséget, hiszen minden szám el˝oáll két nemnegatív szám különbségeként. (Pontosabban ez tehát azt jelenti, hogy ha a max cx : Ax b lineáris programot akarjuk megoldani, akkor ez helyettesíthet˝o a max c

c

y : A z

A

y z

b

y z

0

programmal.) A szimplex módszer közvetlen alkalmazásához a feladatot el˝oször át kell alakítani az úgynevezett kanonikus alakba. Ez nem jelent mást, mint hogy az Ax b rendszer minden ai x b i egyenl˝otlenségét helyettesítjük az ai x u i bi egyenlettel, ahol u i egy újonnan bevezetett változó (úgynevezett eltérésváltozó), amelyr˝ol szintén kikötjük, hogy nemnegatív érték˝u. Ezzel a helyettesítéssel valóban csak „átfogalmaztuk” az ai x b i egyenl˝otlenséget, hiszen az eltérésváltozó

1. LINEÁRIS PROGRAMOZÁS

48

azt fejezi ki, hogy a bal oldalhoz egy nemnegatív számot kell adni, hogy a jobb oldalt kapjuk. Ahhoz pedig, hogy a feladat célfüggvénye is lényegében változatlan maradjon, a c vektort az eltérésváltozóknak megfelel˝o helyeken egyszer˝uen 0 komponensekkel kell kiegészíteni. A kanonikus alakra hozással ugyan megnöveljük a változók számát (mégpedig A sorainak számával), de cserében a feladat egyszer˝ubb szerkezet˝u: max c 0

x : AE u

x u

x u

b

0

(Itt az u komponensei értelemszer˝uen az eltérésváltozók.) Vezessük be a c¯

c 0 A¯

x u

A E x¯

jelöléseket; ezeket a szakasz során végig alkalmazni fogjuk. Ekkor a feladat végül is max c¯x¯ : A¯x¯

b x¯

0

(

)

alakú, vagyis egyenl˝otlenségrendszer helyett elég egy lineáris egyenletrendszer nemnegatív megoldásain keresni a célfüggvény maximumát. Az ilyen (vagyis alakú) feladatokat a továbbiakban kanonikus alakúnak fogjuk nevezni. Említettük, hogy a szimplex módszer csúcsról csúcsra lépve keresi meg a lineáris program optimumát. Ez pontosabban azt jelenti, hogy (er˝os) bázismegoldások egy sorozatát állítja el˝o. Így a bázismegoldás fogalma a szimplex módszer m˝uködése szempontjából alapvet˝o fontosságú. Ezért érdemes végiggondolni, hogy egy kanonikus alakú feladatnak honnan lehet felismerni egy bázismegoldását. 1.23. Állítás. Az A¯x¯ b, x¯ 0 rendszernek az x¯0 megoldása akkor és csak akkor bázismegoldás, ha az x¯0 nemnulla (azaz pozitív) komponenseinek megfelel˝o A¯-beli oszlopok lineárisan függetlenek. Érdemes megfigyelni, hogy noha az állítás feltétele látszólag ugyanaz, mint ami az 1.20. definícióban az er˝os bázismegoldást a bázismegoldástól megkülönböztette, itt valójában másról van szó. Ha ugyanis az A¯x¯ b, x¯ 0 rendszerre a bázismegoldás definícióját alkalmazni akarjuk, akkor azt el˝obb a szokásos módon egyenl˝otlenségrendszerré kell alakítani: A¯x¯ b, A¯ x¯ b , E x¯ 0. A most bizonyí¯ tandó állítás pedig A-beli oszlopokról szól, amelyek tehát a rendszert leíró mátrix oszlopainak csak részei. Bizonyítás: Az A¯x¯ b, x¯ 0 rendszer szokásos, egyenl˝otlenségrendszerként felírt ˆ ahol tehát alakja legyen Aˆ x¯ b, Aˆ

A¯ A¯ E



b b 0

Legyen x¯0 egy (egyel˝ore) tetsz˝oleges megoldás és jelölje Aˆ az x¯0 által egyenl˝oségˆ gel teljesített A-beli sorok által alkotott mátrixot. Az Aˆ -höz tartozó sorok nyilván

1.7. SZIMPLEX MÓDSZER

49

ˆ egyrészt az A-beli A¯ és A¯ rész sorai (hiszen ezekkel A¯x¯ b-t fogalmaztuk át), továbbá a E részb˝ol az x¯0 megoldás 0 komponenseinek megfelel˝o sorok. Jelölje végül az x¯0 pozitív komponenseihez tartozó Aˆ -beli oszlopok által alkotott mátrixot M. Az M oszlopainak a E mátrixba tartozó része csupa 0, így ¯ minden ilyen oszlop egy A-beli oszlopból, annak ellentettjéb˝ol és egy csupa 0 részb˝ol áll. Ebb˝ol könnyen következik, hogy M oszlopai akkor és csak akkor lineárisan ¯ es˝o részeik lineárisan függetlenek. függetlenek, ha az A-ba Rátérve a bizonyításra, tegyük fel el˝oször, hogy x¯0 bázismegoldás. Mivel Aˆ oszlopai nyilván lineárisan függetlenek, ezért ez azt jelenti, hogy Aˆ oszlopai is liner Aˆ ). Ezért M oszlopai árisan függetlenek (ugyanis ekkor teljesül, hogy r Aˆ is lineárisan függetlenek (hiszen ez részhalmaza Aˆ oszlopainak). Láttuk, hogy ek¯ kor a pozitív komponensekhez tartozó A-beli oszlopok is lineárisan függetlenek és éppen ezt akartuk bizonyítani. ¯ Megfordítva, tegyük most fel, hogy az x¯0 pozitív komponenseihez tartozó A-beli oszlopok lineárisan függetlenek. Láttuk, hogy ekkor M oszlopai is lineárisan függetlenek. Mivel M-nek a E mátrixba es˝o része csupa 0, ezért ha M-hez hozzávesszük az x¯0 nulla komponenseinek megfelel˝o Aˆ -beli oszlopokat is, még mindig lineárisan független rendszert kapunk (ugyanis egy, az Aˆ oszlopaiból képzett, 0-t adó lineáris kombinációban az M-en kívüli oszlopokhoz tartozó együtthatók a E ide es˝o része miatt automatikusan 0-k kell hogy legyenek, így valójában az M oszlopaiból képzett lineáris kombinációról van szó). Ezért r Aˆ n, így x¯0 valóban bázismegoldás. Külön kiemeljük, hogy mivel Aˆ oszlopai lineárisan függetlenek, ezért kanonikus alakú feladatok esetében bázismegoldás és er˝os bázismegoldás között nincs különbség. Ezért a szimplex módszer kapcsán a továbbiakban mindig csak bázismegoldásról fogunk beszélni. Továbbá a szokásos szóhasználatot követve bázisnak fogjuk nevezni az A¯ egy m m-es, nemszinguláris B részmátrixát, ahol m jelöli A¯ sorainak számát. (Bázis van, mert A¯ A E miatt A¯ sorai lineárisan függetlenek). A fenti állításnak megfelel˝oen azt fogjuk mondani, hogy az x¯ megoldás a B bázishoz tartozó ¯ bázismegoldás, ha az x¯pozitív komponenseihez tartozó A-beli oszlopok mind B-hez tartoznak. Azonnal látszik, hogy minden bázismegoldás valamilyen bázishoz tartozik, mert az 1.23. állítás szerint a pozitív komponensekhez tartozó oszlopok lineárisan függetlenek, ezeket pedig kiegészíthetjük úgy, hogy m lineárisan független oszlopot kapjunk. Természetesen elképzelhet˝o, hogy különböz˝o bázisokhoz ugyanaz a bázismegoldás tartozik, az viszont nyilvánvaló, hogy minden bázishoz legföljebb egy bázismegoldás tartozhat: ha a Bx b egyenletrendszer egyértelm˝u megoldását a B-hez nem tartozó oszlopoknak megfelel˝o helyeken kiegészítjük 0 komponensekkel és az így kapott x¯ vektorra x¯ 0 teljesül, akkor x¯ az egyetlen B-hez tartozó bázismegoldás. A szimplex módszerhez szükségünk lesz végül a kanonikus alakú feladatok duálisának felírására is. Ehhez célszer˝u a feladatot A¯ b max c¯x¯ : x¯ x¯ 0 A¯ b alakban felírni; ekkor a duális 1.8. tétel szerinti alakja:

1. LINEÁRIS PROGRAMOZÁS

50 min y1 y2

A¯ A¯

b : y1 y2 b

c¯ y1 y2

0

Itt a duális változóit a szokásostól eltér˝oen nem egyetlen vektorban fogtuk össze, ¯ hanem az A-hoz tartozó változókat az y1 , a A¯ -hoz tartozókat pedig az y2 vektor tartalmazza. Ezzel a jelöléssel a duális felírása egyszer˝usíthet˝o: min y1

y2 b : y1

y2 A¯

c¯ y1

0 y2

0

Vezessük be végül az y y1 y2 jelölést; ekkor az y1 0, y2 0 feltételek az y komponenseinek el˝ojelér˝ol már semmit nem mondanak, hiszen tetsz˝oleges vektor felírható két nemnegatív vektor különbségeként. Ebb˝ol az következik, hogy a duális feladat végül is a min yb : yA¯ c¯ ekvivalens alakban írható. A továbbiakban a kanonikus alakú feladat duálisának felírásakor ezt az alakot fogjuk használni.

1.7.2.

Szimplex módszer adott bázismegoldásból kiindulva

Jelöljük a kanonikus alakra hozott max c¯x¯ : A¯x¯ b x¯ 0 lineáris programban A¯ sorainak számát m-mel, oszlopainak számát n-nel. Ebben a pontban feltesszük, hogy a rendszer megoldható és eleve adott egy x¯0 bázismegoldása (és egy ehhez tartozó B0 bázis). A következ˝o pontban fogjuk csak megmutatni, hogy hogyan lehet egy ilyen x¯0 -t megtalálni. Egy (kanonikus alakú) feladat megoldása kapcsán el˝oször azt érdemes meggondolni, hogy egy x¯ megoldásra hogyan lehet rábizonyítani, hogy az optimális. Erre a dualitástétel ad választ: ha a max c¯x¯ : A¯x¯ b x¯ 0 primál program x¯ megoldása mellett sikerül megtalálni a min yb : yA¯ c¯ duális programnak egy olyan y megoldását is, hogy c¯x¯ yb teljesüljön, akkor biztosak lehetünk benne, hogy x¯ a primál, y pedig a duális program egy optimumhelye. Ha x¯ a primál feladatnak, y pedig a duálisnak egy-egy tetsz˝oleges megoldása, akkor a c¯x¯

yA¯ x¯

y A¯x¯

yb

becslés (amilyenhez hasonlót az 1.6. tételben már láttunk) mutatja, hogy c¯x¯ yb. Ugyanebb˝ol az is kiolvasható, hogy c¯x¯ yb pontosan akkor teljesül, ha minden 1 i n esetén x¯ i

0

ya¯i

c¯ i

( )

¯ (vagyis az x¯ pozitív komponenseinek megfelel˝o A-beli oszlopokra az yA¯ c¯ egyenl˝otlenségrendszer egyenl˝oséggel teljesül). A szimplex módszer alapgondolata éppen az, hogy egyszerre talál meg egy ( )-ot kielégít˝o x, ¯ y megoldáspárt. Ennyi el˝okészítés után az alábbiakban leírjuk a szimplex módszert. (A jobb követhet˝oség érdekében a lépéseket érdemes az utánuk következ˝o észrevételekkel párhuzamosan olvasni.)

1.7. SZIMPLEX MÓDSZER

51

0. lépés. Legyen x¯0 bázismegoldás és legyen B0 egy hozzá tartozó bázis. 1. lépés. A c¯ vektorból a B0 oszlopainak megfelel˝o részt jelölje c . Oldjuk meg az y0 B0 c egyenletrendszert. ¯ akkor STOP, az x¯0 és y0 optimális megoldásHa az y0 megoldásra y0 A¯ c, pár. Egyébként legyen i0 a legkisebb olyan index, amelyre y0 a¯i0 c¯ i0 . 2. lépés. Oldjuk meg a B0 z a¯i0 egyenletrendszert. Egészítsük ki a z megoldást a B0 -hoz nem tartozó oszlopoknak megfelel˝o helyeken n dimenziós vektorrá úgy, hogy az i0 -adik komponens legyen 1 , de minden más kiegészített komponens legyen 0; a kapott vektor legyen z0 . Ha z0 0, akkor STOP, a primál program maximuma nem véges. Egyébként álljon J azokból az 1 j n indexekb˝ol, amelyekre z0 j 0. x¯0 j Legyen min . j J z0 j Legyen j0 J a legkisebb olyan index, aminél a -t definiáló minimum felvétetik. 3. lépés. Dobjuk ki B0 -ból az a¯j0 oszlopot és vegyük be helyette az a¯i0 oszlopot; a kapott mátrixot jelöljük B1 -gyel. Legyen x¯1 x¯0 z0 . Folytassuk az 1. lépésnél (x¯0 és B0 helyett x¯1 -gyel és B1 -gyel). Az algoritmus helyességét az alábbi észrevételek bizonyítják: 1. Az 1. lépésben az y0 B0 c egyenletrendszer (egyértelm˝uen) megoldható, hiszen B0 nemszinguláris, négyzetes mátrix. 2. Ha az 1. lépésben kapott y0 vektorra y0 A¯ c¯ teljesül, akkor x¯0 és y0 valóban optimális megoldáspár, hiszen éppen úgy készültek, hogy kielégítsék a ( ) feltételt (ugyanis x¯0 -nak csak a B0 -hoz tartozó oszlopoknak megfelel˝o helyeken lehet pozitív komponense). 3. A 2. lépésben a B0 z a¯i0 egyenletrendszer ismét egyértelm˝uen megoldható, mert az együtthatómátrix megint B0 . 4. Megmutatjuk, hogy ha a 2. lépésben z0 0, akkor a primál maximuma valóban nem véges. Vezessük be ugyanis a v x¯0 z0 jelölést; megmutatjuk, hogy v megoldása az A¯x¯ b, x¯ 0 rendszernek minden 0 esetén. Ugyanis ¯0 Az

B0 z

a¯i0

a¯i0

a¯i0

0

(ahol z az algoritmus 2. lépésében értelmezett vektor), amib˝ol ¯ Av

A¯ x¯0

z0

A¯x¯0

¯0 Az

A¯x¯0

0

b

1. LINEÁRIS PROGRAMOZÁS

52

Másrészt x¯0 0, z0 0 és 0 miatt v 0 is következik, így v valóban megoldás. Most megmutatjuk, hogy növelésével cv ¯ tetsz˝olegesen naggyá tehet˝o. Ugyanis cz ¯0

cz

c¯ i0

y0 B 0 z

c¯ i0

y0 B0 z

c¯ i0

y0 a¯i0

c¯ i0

0

(Itt c -t az algoritmus 1. lépésében értelmeztük, és ugyaninnen látszik, hogy y0 a¯i0 c¯ i0 0.) Ebb˝ol következik, hogy cv ¯ c¯ x¯0 z0 c¯x¯0 cz ¯ 0 , ami cz ¯ 0 0 miatt tetsz˝olegesen nagy lehet. Így a primál maximuma valóban nem véges. (Megjegyezzük, hogy a most látott gondolatmenet nemcsak emlékeztet az 1.6. tétel bizonyításának els˝o bekezdésére, hanem valójában annak megismétlésér˝ol van szó a kanonikus alakú feladat speciális esetében.) 5. A 2. lépésben látszólag meglep˝o választását a következ˝o elv vezérelte: 0-t úgy szeretnénk megválasztani, hogy x¯0 z0 megoldása legyen A¯x¯ b, x¯ 0-nak, z0 b automatikude ezen belül a lehet˝o legnagyobb legyen. Ebb˝ol A¯ x¯0 san teljesül, ezt az el˝oz˝o észrevételben már igazoltuk ( 0 választással). Az x¯0 j z0 j 0 feltétel szintén magától igaz minden olyan j-re, amelyre z0 j 0. Az olyan j-kre pedig, amelyekre z0 j 0, az x¯0 j z0 j 0 követelmény átrendezéssel a x¯0 j z0 j feltételre vezet. Ezért ha -t a lehet˝o legnagyobbra akarjuk választani úgy, hogy az összes ilyen feltételt teljesítse, éppen a 2. lépésben írt definícióhoz jutunk. Megjegyezzük, hogy 0 természetesen el˝ofordulhat: akkor, ha van olyan j, amelyre x¯0 j 0 és z0 j 0. 6. Megmutatjuk, hogy a 3. lépésben definiált B1 is bázis. Mivel a B0 -hoz tartozó a¯i oszlopokra y0 a¯i c¯ i , a B0 -hoz nem tartozó a¯j oszlopokra pedig z0 j 0 teljesül, ezért y0 a¯i0 c¯ i0 , illetve z0 j0 0 mutatja, hogy a¯i0 nem tartozik B0 -hoz, a¯j0 viszont igen. Ezek szerint tehát B1 definíciója valóban egy m m-es mátrixot ad, azt kell csak belátni, hogy az oszlopai lineárisan függetlenek. Mivel B0 bázis volt, ezért az a¯j0 elhagyásával kapott m 1 oszlop lineárisan független. Ebb˝ol az m 1 oszlopból azonban a¯i0 nem fejezhet˝o ki lineáris kombinációval, mert ha mégis kifejezhet˝o volna, az azt jelentené, hogy a B0 z a¯i0 egyenletrendszernek volna olyan megoldása, amelyben az a¯j0 oszlophoz tartozó komponens 0. Ilyen megoldás azonban nem lehet, hiszen a B0 z a¯i0 egyenletrendszer egyértelm˝u megoldása az algoritmus 2. lépésében értelmezett z , amiben az a¯j0 -hoz tar0. Így az a¯j0 elhagyásával kapott m 1 oszlophoz a¯i0 -t tozó komponens z0 j0 hozzávéve ismét lineárisan független oszloprendszert kapunk. 7. Megmutatjuk, hogy a 3. lépésben definiált x¯1 a B1 bázishoz tartozó bázismegoldás. Azt már a fenti, 5. észrevételben igazoltuk, hogy x¯1 megoldás, ezért azt kell csak belátni, hogy a B1 -hez nem tartozó oszlopoknak megfelel˝o helyeken a komponensei 0-k. Legyen ezért a¯i egy B1 -hez nem tartozó oszlop és tegyük fel el˝oször, hogy i j0 . Ekkor a¯i nem volt benne B0 -ban sem, így x¯0 i 0. Továbbá a z0 vektor

1.7. SZIMPLEX MÓDSZER

53

0 is teljesül (ugyanis i i0 lehetetlen, mert a¯i0 2. lépésbeli értelmezése miatt z0 i benne van B1 -ben). Ezért x¯1 i 0 is igaz, hiszen x¯1 i x¯0 i z0 i 0 0. Ha x¯0 j0 viszont i j0 , akkor és j0 értelmezése miatt . Így z0 j0 x¯1 j0

x¯0 j0

z0 j0

x¯0 j0

x¯0 j0 z0 j0 z0 j0

0

8. Végül megmutatjuk, hogy c¯x¯1 c¯x¯0 . A fenti, 4. észrevételben már beláttuk, hogy cz ¯ 0 0. Ebb˝ol pedig c¯x¯1 c¯ x¯0 z0 c¯x¯0 cz ¯0 c¯x¯0 . S˝ot, az is látszik, hogy c¯x¯1 c¯x¯0 csak a 0 esetben fordulhat el˝o; ekkor pedig x¯1 x¯0 is igaz. A fentiekb˝ol kiderül, hogy a szimplex módszer valóban bázismegoldások egy (a szomszédok közti egyenl˝oséget is megenged˝o) x¯0 x¯1 sorozatát állítja el˝o, amelyre c¯x¯0 c¯x¯1 teljesül. Az algoritmus leírása el˝ott (és a fenti 2. észrevételben) azt is beláttuk, hogy ha az eljárás leáll, akkor valóban optimális megoldást szolgáltat (vagy kimutatja, hogy a primál feladat nem korlátos felülr˝ol). Felmerül azonban a kérdés: el˝ofordulhat-e, hogy a szimplex módszer soha nem áll le? Az alábbiakban bebizonyítjuk, hogy szerencsére ez lehetetlen. A bizonyítás kulcsa az algoritmus 1. és 2. lépésében alkalmazott választási szabály: mindkét esetben a legkisebb olyan indexet választottuk, amelyre y0 a¯i0 c¯i0 , illetve amelyre a -t definiáló minimum felvétetik. Ezt a (két) szabályt Bland-féle legkisebb index szabálynak nevezik. 1.24. Tétel. A szimplex módszer a Bland-féle legkisebb index szabály alkalmazása esetén véges sok lépésben leáll. Bizonyítás: Indirekt tegyük fel, hogy a szimplex módszer nem áll le, hanem a végtelenségig egymás után készíti a B0 B1 bázisokat (és ezekkel együtt az y0 y1 , a z0 z1 és az x¯0 x¯1 vektorokat, valamint az i0 i1 és a j0 j1 indexeket). A B0 B1 sorozatban lesz ismétl˝odés, hiszen a bázisok száma véges (legföljebb mn ). Tegyük fel tehát, hogy a B0 B1 BN BM (N M) bázisok még mind különböz˝ok, de BM 1 BN . Mivel mindegyik egyértelm˝uen meghatározza a következ˝ot, BM 1 -t˝ol kezdve a bázisok ciklikusan ismétl˝odnek. A fenti, 8. észrevételben írtakból következik, hogy c¯x¯N

c¯x¯N

1

c¯x¯M

c¯x¯M

1

c¯x¯N

Itt nyilván végig egyenl˝oség áll, ami (ismét a 8. észrevételnél írtak miatt) csak akkor lehetséges, ha BN -t˝ol kezdve az algoritmus 2. lépésében mindig 0 adódik és így x¯N x¯N 1 x¯M . Jelölje ezt a közös vektort x¯ és legyen I0 azoknak az i indexeknek a halmaza, amelyekre x¯ i 0. A bázisok ciklikus ismétl˝odéséb˝ol az is következik, hogy iN iN 1 iM jN jN 1 jM (ugyanis BN -t˝ol kezdve ha egy oszlopot kihagyunk valamelyik bázisból, azt kés˝obb vissza is kell venni, és fordítva). Jelöljük ezt az indexhalmazt I-vel; ekkor I I0 (hiszen ik I, N k M esetén az a¯ik oszlop nincs Bk -ban, így x¯k ik x¯ ik 0). Legyen továbbá r max I; ez tehát azt jelenti, hogy a¯r

1. LINEÁRIS PROGRAMOZÁS

54

a legnagyobb index˝u olyan oszlop, amit az algoritmus a végtelenségig „mozgat”, minden r-nél nagyobb index˝u oszlop BN -t˝ol kezdve vagy minden bázisban benne van, vagy egyikben sem. Legyen most r i p (N p M) és vezessük be a w y p A¯ c¯ jelölést. Ekkor (a legkisebb index szabály és i p algoritmusbeli értelmezése miatt) w r 0, de minden 1 k r esetén w k 0. Továbbá k I0 esetén w k 0, hiszen ha x¯ k x¯p k 0, akkor a¯k benne van B p -ben, így y p a¯k c¯ k . Legyen másrészt r jq (N q M). Láttuk, hogy jq értelmezésekor a 2. lépésben 0 adódik, ezért a -t definiáló minimum éppen azokon a j indexeken vétetik fel, amelyekre 0 és j I0 . Ezért (ismét a legkisebb index szabály miatt) zq r 0, de minzq j den 1 k r, k I0 esetén zq k 0. Végül pedig r megválasztásából az következik, hogy minden r k n-re w k zq k 0, mert w k 0 esetén a¯k nincs benne B p -ben, de akkor nincs benne Bq -ban sem (és k r miatt k iq ), így zq k 0. Ezeket a megfigyeléseket az alábbi táblázatban foglaljuk össze: k

r, k

I0

k

r, k

I0

k

r

wk

0

0

0

zq k

?

0

0

k

r

0

0

?

0

Mindezek összevetéséb˝ol wzq 0 látszik. Másrészt a fenti, 4. észrevételnél ír¯ q 0 és cz takból az következik, hogy Az ¯ q 0. Ebb˝ol wzq

y p A¯ c¯ zq

¯q y p Az

cz ¯q

0

cz ¯q

0

adódik. Ez az ellentmondás pedig bizonyítja a tétel állítását.

1.7.3.

Kezdeti bázismegoldás keresése

Az el˝oz˝o pontban bemutatott szimplex módszer m˝uködése feltételezi, hogy eleve ismert egy x¯0 bázismegoldás (és így persze a feladat megoldható). Ebben a pontban megmutatjuk, hogy hogyan lehet egy ilyen bázismegoldást megtalálni, vagy ha ilyen nincs, akkor a megoldhatatlanságot kimutatni. Kiderül majd, hogy ehhez szerencsére nincs szükség egy vadonatúj algoritmusra, elég az el˝oz˝o pontban látott szimplex algoritmust egy alkalmasan megválasztott lineáris programra futtatni. Emlékezzünk vissza rá, hogy a megoldandó lineáris program eredeti formájában max cx : Ax

bx

0

alakú volt és ezt hoztuk az u i eltérésváltozókkal a max cx : Ax

Eu

bx

0u

0

( )

kanonikus alakra. Ebb˝ol azonnal következik, hogy ha a b vektorra véletlenül b 0 áll (és a gyakorlatból származó feladatoknál sokszor ez a helyzet), akkor az x 0, u b választással azonnal az utóbbi feladat megoldását kapjuk. S˝ot, ez a megoldás

1.7. SZIMPLEX MÓDSZER

55

bázismegoldás is, hiszen csak az u-nak vannak pozitív komponensei, az ezekhez tartozó oszlopok pedig az E egységmátrix oszlopai közül kerülnek ki. Csak kicsit bonyolultabb a helyzet, ha b-nek vannak negatív komponensei is. Legyen a nemnegatív komponensek száma m1 , a többi m2 m m1 komponens legyen negatív. Válasszuk ketté az egyenleteket aszerint, hogy a jobb oldal negatív vagy sem: az A1 x E1 u1 b1 rész legyen olyan, hogy b1 0, az A2 x E2 u2 b2 részre pedig b2 0 teljesüljön. (Itt tehát E1 egy m1 m1 -es, E2 pedig m2 m2 -es egységmátrix, u1 és u2 pedig az u vektor A1 -hez, illetve A2 -höz tartozó része). Vezessünk be az A2 x E2 u2 b2 rendszer minden egyenletéhez egy új eltérésváltozót, tartalmazza ezeket az u3 vektor (ami tehát szintén m2 dimenziós) és tekintsük a max

1

1

1 u3 : A1 x

E1 u1

b1 A2 x x

E2 u 2

0 u1

E3 u3 0 u2

b2 0 u3

0

(

)

kanonikus alakú feladatot (amelyben tehát E3 szintén m2 m2 -es egységmátrix és az u3 -hoz tartozó új eltérésváltozók mindegyikéhez 1 , az összes többi változóhoz 0 komponens tartozik a célfüggvényben). Ehhez a feladathoz ismét könny˝u egy kezdeti bázismegoldást találni: x 0, u1 b1 , u2 0, u3 b2 . Az alábbi állítás teremt kapcsolatot a fenti és az eredetileg kit˝uzött feladat között. 1.25. Állítás. A maximumértéke 0.

feladat akkor és csak akkor megoldható, ha a

program

Bizonyítás: A program célfüggvénye az u3 komponensei összegének az ellentettje. Mivel u3 0, ezért maximumértéke vagy 0 (ha u3 0) vagy negatív (ha u3 0). El˝oször tegyük fel, hogy megoldható és x, u egy megoldás. Ekkor ebb˝ol a program egy olyan megoldását kapjuk, megoldásból az u3 0 választással a amelynek a célfüggvényértéke 0; így ez a megoldás optimális. Tegyük most fel, hogy program maximumértéke 0 és legyen x, u1 , u2 , u3 egy olyan megoldás, amelyre a célfüggvényérték 0. Láttuk, hogy ez csak az u3 0 esetben fordulhat el˝o. Ekkor pedig x, u1 , u2 a feladat megoldása. Mindez tehát azt jelenti, hogy ha a feladatot az el˝oz˝o pontbeli algoritmussal megoldva a maximumérték negatív, akkor az eredeti feladat nem megoldható. Ha viszont a maximumérték 0, akkor egyszer˝uen az u3 változóinak elhagyásával a megoldását kapjuk. Ráadásul ez a megoldás bázismegoldás, hiszen (u3 0 miatt) a pozitív komponenseihez tartozó oszlopok ugyanazok, mint a feladat esetében; azt viszont az el˝oz˝o pontban láttuk, hogy a szimplex módszer által szolgáltatott optimumhely mindig bázismegoldás (hiszen az algoritmus során keletkez˝o x¯k megoldások is mind bázismegoldások).

1.7.4.

A szimplex módszer a gyakorlatban

A fentiekben megadtuk a szimplex módszer teljes leírását; az algoritmus a bemutatott formájában akár közvetlenül is alkalmazható volna, hiszen az alapm˝uveleteken

1. LINEÁRIS PROGRAMOZÁS

56

kívül csak az 1. és 2. lépésbeli lineáris egyenletrendszerek megoldására van szükség, ami megtehet˝o volna például a Gauss-eliminációval. Ebben a pontban kiderül, hogy erre valójában nincs szükség: néhány egyszer˝u gondolat alkalmazásával az algoritmus futása sokkal hatékonyabbá tehet˝o. Az els˝o ötlet az, hogy mivel az 1. és a 2. lépésben is egy olyan egyenletrendszert kell megoldani, amelynek az együtthatómátrixa az aktuális Bk bázis (illetve annak transzponáltja), ezért érdemes meghatározni a Bk inverzét (ami kett˝o helyett megtehet˝o egyetlen Gauss-eliminációval). Ekkor az 1. lépésben yk c Bk 1 és a 2. lépésben z Bk 1 a¯ik . Az alábbi állításból kiderül, hogy Bk 1 ráadásul sokkal egyszer˝ubben, Gausselimináció nélkül is meghatározható. Ennek az a kulcsa, hogy az algoritmus során keletkez˝o bázisok mindig csak egyetlen oszlopban különböznek az el˝oz˝o bázistól, ezért Bk 11 könnyen megkapható Bk 1 -b˝ol. Az eljárás nyomon követéséhez minden Bk bázisra úgy érdemes tekinteni mint az A¯ mátrix oszlopainak egy Bk b1 b2 bm részhalmazára, amelyben az oszlopok sorrendje közömbös. Ennek megfelel˝oen a Bk 1 mátrixot pedig m dimenziós sorvektorok egy Dk d1 d2 dm halmazának érdemes tekinteni, amelyre di b j

1, 0,

ha i ha i

j j

teljesül. Ennek a megközelítésnek az a haszna, hogy így nem kell figyelni a Dk mátrixon belül a sorok sorrendjére; ehelyett minden sorhoz nyilván kell tartani, hogy ¯ az melyik A-beli oszlopnak – vagy ami ugyanaz, de szokásosabb: a feladat melyik változójának – felel meg. (Ez tehát pontosabban azt jelenti, hogy ha a bi Bk oszlop az A¯ mátrixnak az a¯l oszlopa, akkor a di Dk sorhoz az x¯l változót rendeljük hozzá.) 1.26. Állítás. Legyen adott a Dk mátrix, és tegyük fel, hogy az x¯jk változó az r-edik sorához van rendelve. Legyen továbbá z˜ Dk a¯ik . Ekkor Dk 1 megkapható Dk -ból a következ˝oképpen:

a Dk mátrix r-edik sorát osszuk el z˜ r -rel; minden 1 i m, i r esetén a kapott mátrix i-edik sorából vonjuk ki az (új) r -edik sor z˜ i -szeresét; az r-edik sorhoz rendelt változót cseréljük ki x¯ik -ra. Bizonyítás: Jelölje 1 i m esetén di a Dk mátrix i-edik sorát, az ennek megfelel˝o Bk -beli oszlop (ami nem feltétlenül az i-edik oszlop) legyen bi . Az el˝obb már említettük, hogy a szimplex módszer 2. lépésében értelmezett z vektor megkapható z Bk 1 a¯ik alakban. Ezért z és az állításbeli z˜ csak a komponensek sorrendjében különböznek. Így ha a di -hez rendelt változó x¯t , akkor zk t z˜ i (ahol zk -t is az algoritmus 2. lépésében értelmeztük). Ebb˝ol azonnal látszik, hogy z˜ r zk jk 0, így az állításban leírt lépések végrehajthatóak.

1.7. SZIMPLEX MÓDSZER

57

Jelölje 1 i m esetén a Dk mátrix di sorából az állításban leírt módon kapott sorvektort f i ; ekkor tehát fr

1 dr , és i z˜ r

r esetén fi

z˜ i dr z˜ r

di

Mivel Bk 1 Bk a¯jk a¯ik és a¯jk br (hiszen az állítás szövege szerint az x¯jk változó az r-edik sorhoz van rendelve), ezért azt kell belátni, hogy 1, 0,

fi b j

ha i ha i

j, j j, j

r r

és

1, 0,

f i a¯ik

ha i ha i

r r

teljesül. Az els˝o feltétel könnyen adódik, ha észrevesszük, hogy minden i-re 1 z˜ r f i di dr teljesül alkalmas választással. (Ez még i r-re is igaz z˜ r mellett.) Ebb˝ol ugyanis fi b j

di

dr b j

di b j

dr b j

1, 0,

di b j

ha i ha i

j j

ahol dr b j 0 azért igaz, mert r j. A második feltétel igazsága is könnyen ellen˝orizhet˝o: fr a¯ik illetve i

1 dr a¯ik z˜ r

1 dr a¯ik z˜ r

1 z˜ r z˜ r

1

z˜ i

z˜ i z˜ r z˜ r

r esetén

f i a¯ik

di

z˜ i dr a¯ik z˜ r

di a¯ik

z˜ i dr a¯ik z˜ r

0

A fenti állítás haszna tehát az, hogy a szimplex módszer során a Dk mátrixot sokkal kevesebb munkával „karban lehet tartani”, mint amennyit az ismételt Gausselimináció igényelne. Így a fenti állítás alkalmazása a szimplex módszert valóban felgyorsítja, még az yk c Bk 1 és a z Bk 1 a¯ik szorzások elvégzésével együtt is. A következ˝o állításból ráadásul az derül ki, hogy yk számítása még tovább egyszer˝usíthet˝o. A háttérben ismét az áll, hogy mivel Bk 1 csak egy oszlopban különbözik Bk -tól, ezért az yk 1 -et definiáló egyenletrendszer csak egyetlen egyenletben különbözik az yk -t definiáló egyenletrendszert˝ol. 1.27. Állítás. Az 1.26. állítás jelöléseit megtartva yk

1

yk

yk a¯ik c¯ ik dr z˜ r

Bizonyítás: Tudjuk, hogy yk megoldása az yk Bk c egyenletrendszernek, ahol tehát c az az m dimenziós sorvektor, amelyre c i c¯ t , ha a Dk mátrix i-edik sorához az x¯t változó van rendelve.

1. LINEÁRIS PROGRAMOZÁS

58

i

Jelölje az állításban értelmezett vektort egyel˝ore u; azt kell megmutatni, hogy r esetén ubi c i és ua¯ik c¯ ik . Legyen el˝oször i r; ekkor ubi

ahol dr bi ua¯ik

yk

yk a¯ik c¯ ik dr bi z˜ r

0 ismét i yk

yk bi

yk a¯ik c¯ ik dr bi z˜ r

yk bi

c i

r miatt igaz. Másrészt

yk a¯ik c¯ ik dr a¯ik z˜ r

yk a¯ik

yk a¯ik c¯ ik dr a¯ik z˜ r yk a¯ik c¯ ik yk a¯ik z˜ r z˜ r

c¯ ik

Mivel pedig Bk 1 nemszinguláris, így a szimplex módszer 1. lépésében az yk 1 -et definiáló egyenletrendszer megoldása egyértelm˝u, ezért u yk 1 valóban igaz. A szimplex tábla A szimplex módszer népszer˝usége többek között annak köszönhet˝o, hogy az eljárás során keletkez˝o adatokat egy táblázatban – az úgynevezett szimplex táblában – elrendezve az algoritmus lépései könnyen követhet˝ové és (nem túl nagyméret˝u feladatok esetén) akár kézzel is elvégezhet˝ové válnak. A Bk bázishoz tartozó szimplex tábla definíció szerint az alábbi: yk A¯ c¯ Dk A¯

c¯x¯k x˜k

x¯k1 x¯k2 .. . x¯km

Itt a Dk mátrix továbbra is a Bk 1 mátrixból a sorok egy tetsz˝oleges átrendezésével kapott mátrix, amelynek minden sorához hozzá van rendelve a feladat egyik változója; ezek láthatóak a szimplex táblától jobbra. (Így x¯k1 x¯k2 nem a feladat valamelyik változójának aktuális értékét, hanem magát a változót jelöli.) A tábla jobb széls˝o oszlopában álló x˜k vektor pedig az x¯k aktuális bázismegoldásnak a Dk soraihoz (vagyis a Bk oszlopaihoz) tartozó komponenseit tartalmazza, a táblától jobbra írt változóknak megfelel˝o sorrendben. Más szóval: az x˜k oszlop i-edik helyén a t˝ole jobbra írt x¯ki változó aktuális értéke áll. Megjegyezzük, hogy ezáltal a teljes x¯k bᯠzismegoldás adott, hiszen az x¯k1 x¯k2 -t˝ol különböz˝o változóknak megfelel˝o A-beli oszlopok nem tartoznak Bk -hoz, így ezek a komponensek 0-k. Érdemes megfigyelni, hogy mivel Bk az A¯ oszlopainak részhalmaza, ezért a Dk A¯ mátrixban a Bk oszlopainak megfelel˝o helyeken az egységmátrix oszlopai állnak. Pontosabban: ha a (vonal alatti) i-edik sor mellett az x¯t változó áll (vagyis a¯t Bk ), akkor a Dk A¯ mátrix t-edik oszlopában az i-edik helyen 1-es, mindenhol máshol 0

1.7. SZIMPLEX MÓDSZER

59

áll. S˝ot, a tábla t-edik oszlopában még a vonal fölött is 0 áll, hiszen a¯t Bk miatt yk a¯t c¯ t . Az 1.26. állításban láttuk, hogy Dk 1 könnyen megkapható Dk -ból. Ebb˝ol azon¯ nal következik, hogy Dk 1 A¯ is ugyanilyen könnyen megkapható Dk A-ból: ha a Dk 1 mátrix i-edik sora fi di dr alakú alkalmas -ra (és az 1.26. állítás bizonyítᯠsában láttuk, hogy ez minden i-re igaz), akkor ezt az egyenl˝oséget A-val szorozva: f i A¯ di A¯ dr A¯ . Ezek szerint az 1.26. állításban leírt lépéseket a Dk A¯ mát¯ kapjuk. Ráadásul a lépések elvégzéséhez szükséges rixra alkalmazva éppen Dk 1 A-t z˜ Dk a¯ik vektor kiolvasható magából a táblából: ez éppen a Dk A¯ mátrix ik -adik oszlopa. Így Dk 1 A¯ meghatározása közben az 1.26. állítás lépéseit magára a z˜ vektorra is elvégezzük; azonnal látszik, hogy a kapott oszlopvektorban az x¯jk -nak megfelel˝o sorban 1-es, mindenhol máshol 0 áll; ez pedig leegyszer˝usíti a megteend˝o lépések megjegyzését. ¯ Hasonlóan, ha az 1.27. állításbeli összefüggést A-val szorozzuk, majd levonunk c-t, ¯ az yk a¯ik c¯ ik yk 1 A¯ c¯ yk A¯ c¯ dr A¯ z˜ r összefüggést kapjuk. Ez tehát azt jelenti, hogy ha a Dk A¯ mátrix (x¯jk -nak megfelel˝o) ¯ már leosztottuk z˜ r -rel, és a kapott sor yk a¯i c¯ ik r-edik sorát (vagyis dr A-t) k szorosát kivonjuk a tábla fels˝o sorában álló yk A¯ c¯ vektorból, akkor éppen a következ˝o tábla fels˝o sorának megfelel˝o részét, yk 1 A¯ c¯ -t kapjuk. Ennek a megjegyzését is megkönnyíti az a tény, hogy a kapott vektor ik -adik komponense (vagyis a tábla ik -adik oszlopában a vonal fölé kerül˝o szám) is 0 lesz, hiszen az ott álló számból önmagát vonjuk le. A fentiekre tekintettel a szimplex módszer egy ciklusa a következ˝oképpen egyszer˝usödik le: 1. lépés. Ha a tábla legfels˝o sorában (a jobb fels˝o sarokban álló c¯x¯k -t most nem számítva) nincs negatív elem, akkor STOP, megtaláltuk az optimumot. Egyébként keressük meg balról az els˝o negatív komponenst; legyen ez az ik -adik oszlopban. 2. lépés. Az ik -adik oszlop vonal alatti részét jelölje z˜. Ha z˜ 0, akkor STOP, a primál maximuma nem véges. x˜ i Egyébként képezzük az hányadosokat a táblának azokra a soraira, z˜ i ahol z˜ i 0. Keressük meg a táblának azt a sorát, amelyben a kapott hányados a legkisebb; legyen az ehhez a sorhoz tartozó változó (amelyet a táblától jobbra nyilvántartunk) x¯jk . Ha a hányadosok között többször is el˝ofordul a legkisebb, a szóba jöv˝o sorok közül úgy válasszunk, hogy jk minimális legyen. 3. lépés. Legyen a táblának a 2. lépésben megtalált sora (amelyhez tehát az x¯jk változó tartozik) a Dk A¯ mátrix r-edik sora. Osszuk el ezt a sort egy alkalmas számmal, majd a kapott sornak egy-egy alkalmas többszörösét vonjuk ki az összes többi sorból (a vonal fölöttib˝ol

1. LINEÁRIS PROGRAMOZÁS

60

is) úgy, hogy a tábla ik -adik oszlopában az r-edik helyen 1, mindenhol máshol 0 álljon. Az r-edik sor mellett nyilvántartott x¯jk változót cseréljük ki x¯ik -ra. Folytassuk az 1. lépésnél. A 3. lépésben leírt m˝uveletet a szimplex módszernél szokásos terminológiával pivotálásnak nevezik. Az alábbi észrevételekben azt indokoljuk meg, hogy a fenti leírással valóban csak átfogalmaztuk a szimplex módszert. 1. Mivel a tábla fels˝o sorában (a függ˝oleges vonaltól balra) az yk A¯ c¯ vektor áll, ezért az els˝o negatív komponens megkeresésével valóban a legkisebb ik indexet találjuk meg, amelyre yk a¯ik c¯ ik . 2. A 2. lépésben kapott z˜ vektorra z˜ Dk a¯ik , így ez csak a komponensek sorrendjében különbözik a z Bk 1 a¯ik vektortól, ami az eredeti leírásban szerepelt. Ezért ha z˜ 0, akkor persze z 0 is igaz, amib˝ol zk 0 is következik (hiszen z -t 1 és 0 komponensekkel kell kiegészíteni, hogy zk -t kapjuk), így ekkor a primál maximuma x˜ i valóban nem véges. Ugyaninnen látszik, hogy az hányadosok minimuma az z˜ i algoritmus eredeti leírásában szerepl˝o -t határozza meg, és így jk értelmezése is ugyanaz, mint eredetileg. 3. Korábban már megmutattuk, hogy a fenti 3. lépésbeli pivotálással kapott új szimplex táblában megjelenik a Dk 1 A¯ mátrix és a vízszintes vonal fölött az yk 1 A¯ c¯vektor. Most megmutatjuk, hogy a jobb széls˝o oszlopban pedig valóban az x˜k 1 vektort kapjuk. A Dk A¯ mátrix r-edik sorát nyilván z˜ r -rel kell elosztani, így a jobb széls˝o x˜ r pozícióban az érték jelenik meg. Ez megfelel annak, hogy az algoritmus z˜ r eredeti leírásában x¯k

x¯k ik

1 ik

zk ik

0

1

áll (hiszen az r-edik sor mellé az x¯ik változó került). Ahhoz, hogy az ik -adik oszlop (vonal alatti részének) r-edik helyén kapott 1-es alatt és fölött álló számokat „kinullázzuk”, a vonal alatti sorokból a z˜ r -rel osztott r-edik sor z˜ i -szeresét kell kivonni, így a jobb széls˝o oszlop i-edik helyén x˜ i z˜ i jelenik meg, ami valóban megfelel x¯k 1 eredeti definíciójának. 4. Végül megmutatjuk, hogy a pivotálás után a tábla jobb fels˝o sarkába valóban c¯x¯k 1 kerül. A fentiek szerint a legfels˝o sorból a Dk A¯ mátrix z˜ r -rel osztott r-edik sorának yk a¯ik c¯ ik -szorosát kell kivonni. Korábban, a szimplex módszer eredeti leírása utáni 4. észrevételben megmutattuk, hogy yk a¯ik c¯ ik cz ¯ k . Ebb˝ol pedig következik, hogy a jobb fels˝o sarokban megjelen˝o új érték valóban c¯x¯k

yk a¯ik

c¯ ik

c¯x¯k

cz ¯k

c¯ x¯k

zk

c¯x¯k

1

A szimplex tábla használata Ahhoz, hogy a szimplex táblát eredményesen használni tudjuk, szükség van arra, hogy megtaláljunk egy kezdeti bázismegoldást és a kiinduló szimplex táblát ennek

1.7. SZIMPLEX MÓDSZER

61

megfelel˝oen kitöltsük. Az 1.7.3. pontban láttuk, hogy ha a kanonikus alakra hozott max cx : Ax Eu b x 0 feladat olyan, hogy b 0, akkor ez nagyon egyszer˝u: x 0, u b egy kezdeti bázismegoldás. Ekkor az ehhez tartozó bázis állhat az u komponenseihez tartozó oszlopokból, vagyis B0 E. Ebb˝ol persze B0 1 E ¯ választással indítani az is következik, így a legegyszer˝ubb a D0 E (és D0 A¯ A) eljárást (és így a tábla vonal alatti soraitól jobbra az u változói állnak). A kezd˝otábla vonal feletti sorához pedig y0 -t, vagyis az y0 B0 c egyenletrendszer megoldását kell megtalálni. Mivel itt c a c¯ c 0 célfüggvény B0 -hoz tartozó része, vagyis c 0, ezért y0 0 adódik. Ebb˝ol a tábla vonal feletti sora y0 A¯ c¯ c. ¯ A kezd˝otábla jobb fels˝o sarkába pedig 0 kerül, hiszen ez az aktuális célfüggvényérték. Ezek szerint tehát az eljárást az alábbi szimplex táblával lehet elkezdeni: 0

c

0 E

A

0 u1 .. .

b

Az általános esetben, amikor b 0 nem igaz, a kezdeti bázismegoldás megkereséséhez az 1.7.3. pontbeli feladatot kell megoldanunk, amelynek az együtthatómátrixa, illetve az egyenletrendszer jobb oldala (átvéve az 1.7.3. pont jelöléseit) M

A1 A2

E1 0

0 E2

0 E3

b

b1 b2

és célfüggvénye a d 0 0 1 1 sorvektor, amely tehát n m2 dimenziós és az utolsó m2 komponense 1 . Láttuk, hogy a feladat kezdeti bázismegoldása: x 0, u1 b1 , u2 0, u3 b2 . Így a kezdeti B0 bázis az u1 , illetve az u3 változóihoz tartozó M-beli oszlopokból áll (legalábbis választható így), vagyis B0

E1 0

0 E3

Ebb˝ol azonnal látszik, hogy B0 B0 1 , így legegyszer˝ubb a D0 B0 választásból kiindulni (ahol D0 els˝o m1 sorához az u1 , az utolsó m2 sorához az u3 változói tartoznak). Ebb˝ol a kiinduló szimplex tábla vonal alatti része (vagyis D0 M, illetve a vonaltól jobbra az induló bázismegoldás) már könnyen megkapható: az M b mátrix utolsó m2 sorát 1 -gyel kell szorozni. Ahhoz, hogy az induló szimplex tábla vonal feletti sorát is kitölthessük, meg kell határozni y0 -t, vagyis az y0 B0 0 0 1 1 egyenletrendszer megoldását. (Itt a jobb oldalon álló vektor els˝o m1 komponense 0, a többi m2 komponens 1 ; ez a d célfüggvény megfelel˝o része.) Ebb˝ol y0 0 01 1 adódik (ahol az els˝o m1 komponens 0). A szimplex tábla legfels˝o sora definíció szerint y0 M d; ez tehát a w 0 01 10 0 vektor, ahol w az A2 sorainak összege, ami után m1 darab 0, m2 darab 1-es, majd ismét m2 darab 0 következik. Végül a kezd˝otábla jobb fels˝o sarkába a kezdeti bázismegoldáshoz tartozó célfüggvényértéket kell írni, ami pedig a b2 komponenseinek az összege (jelölje ezt ). A fentieket összevetve, a kezdeti szimplex tábla végül is a következ˝o:

1. LINEÁRIS PROGRAMOZÁS

62 w A1 A2

0

0

1

1

0

0

E1

0

0

0

E2

E3

b1 b2

u1 1 .. . u3 1 .. .

Tegyük fel, hogy a fenti táblából kiindulva az algoritmus a Bt bázisnál áll le és az xt , u1 t , u2 t , u3 t bázismegoldást adja. Az 1.25. állításban láttuk, hogy ha a kapott célfüggvényérték negatív, akkor az eredetileg kit˝uzött feladat nem megoldható. Ha viszont a célfüggvényérték 0, akkor a tábla jobb széls˝o oszlopa a megoldandó feladathoz egy kiinduló bázismegoldást szolgáltat, ugyanis u3 t 0. Az azonban még el˝ofordulhat, hogy a kapott Bt bázisban szerepel néhány olyan oszlop, amely valamelyik u3 -beli változóhoz tartozik. Ez nem szerencsés, mert u3 változóit (és a tábla megfelel˝o oszlopait) el akarjuk hagyni, hogy az eredetileg kit˝uzött feladathoz tartozó szimplex táblát kapjuk. Ezért a kapott bázismegoldás pozitív komponenseihez tartozó Bt -beli oszlopokat ki kell egészíteni az M mátrix utolsó ¯ m2 oszlopának elhagyásával kapott mátrixból (vagyis A-ból) úgy, hogy m lineárisan független oszlopot kapjunk. Szerencsére ez nagyon egyszer˝uen megtehet˝o, ugyanis az M mátrixban az u3 -hoz tartozó oszlopoknak az u2 -höz tartozó oszlopok éppen az ellentettjei. Ezért ha az u3 i változóhoz tartozó oszlop szerepel Bt -ben, akkor ezt ki lehet cserélni az u2 i -hez tartozó oszlopra, ez nem változtat Bt oszlopainak lineáris függetlenségén. (Ez a csere elvégezhet˝o, hiszen ha mindkét oszlop Bt -hez tartozna, akkor az oszlopok nem volnának lineárisan függetlenek.) Mivel ezzel a cserével a Bt egyik oszlopa a 1 -szeresére változik, ezért ugyanez történik Dt megfelel˝o sorával, és így Dt M megfelel˝o sorával is. A szimplex táblán tehát a csere mindössze annyi változást okoz, hogy ha a táblától jobbra valamelyik sor mellett egy u3 i változó van nyilvántartva, akkor ezt a sort 1 -gyel kell szorozni, majd u3 i -t átjavítani u2 i -re. Ezek után a táblából az u3 -nak megfelel˝o oszlopok már elhagyhatók. Ahhoz, hogy az algoritmus futtatását az eredetileg kit˝uzött feladaton elkezdhessük, annyi van csak hátra, hogy a tábla legfels˝o sorát is beállítsuk; a feladat célfüggvényét ugyanis eddig még sehol sem használtuk fel. Jelölje B0 az el˝oz˝o bekezdés szerint legvégül kapott bázist. A legfels˝o sorba az y0 A¯ c¯ vektort kell írni, ahol y0 c B0 1 , c pedig a c¯ célfüggvényb˝ol a B0 oszlopainak megfelel˝o rész. Behelyettesítve és átzárójelezve: a c B0 1 A¯ c¯ vektor kerül a vonal fölé. Ebb˝ol pedig a B0 1 A¯ mátrix adott: a tábla vonal alatti részén álló D0 A¯ mátrix ett˝ol csak a sorok sorrendjében különbözik. Ezek szerint a tábla vonal alatti részének minden sorát meg kell szorozni a c¯megfelel˝o komponensével (hogy ez melyik, azt a sortól jobbra álló változó kijelöli), a kapott sorokat össze kell adni, az összegb˝ol c-t ¯ levonni, majd az így kapott sorvektort kell írni a legfels˝o sorba (a vonaltól balra). Valójában érdemes ugyanezt a számolást (a c¯levonásától eltekintve) a tábla teljes soraira elvégezni (nem csak a vonaltól balra es˝o részekre), mert így éppen az aktuális célfüggvényértéket kapjuk a tábla jobb fels˝o sarkában.

1.7. SZIMPLEX MÓDSZER

63

Összefoglalva tehát a fentieket, a szimplex táblával a következ˝oképpen lehet megoldani egy kanonikus alakra hozott feladatot: 1. Induljunk ki a 62. oldalon látott táblából és végezzük az 59. oldalon írt lépéseket, míg az algoritmus leáll. Ha ekkor a jobb fels˝o sarokban negatív szám áll, akkor a kit˝uzött feladat nem megoldható. Egyébként hagyjuk el a táblából a függ˝oleges vonaltól balra álló m2 oszlopot. 2. Ha a táblától jobbra álló változók között szerepel u3 i , akkor az emelletti sort szorozzuk meg 1 -gyel, majd u3 i -t cseréljük ki u2 i -re. Ezt ismételjük addig, amíg a táblától jobbra még van u3 -hoz tartozó változó. 3. Képezzük a tábla sorainak azt a lineáris kombinációját, amelyben az egyes sorokhoz tartozó együtthatót a sortól jobbra álló változónak megfelel˝o c-beli ¯ komponens jelöli ki. A kapott sorvektorból vonjuk ki a c¯ 0 vektort és az így kapott sort írjuk a tábla legfels˝o sorába. 4. Folytassuk az 59. oldalon írt lépések végrehajtását, míg az algoritmus leáll.

1.7.5.

Változatok a szimplex módszerre

A szimplex módszer alkalmazásának több mint fél évszázados története során az algoritmusnak több változata is kialakult. (Valójában az eddig bemutatott verzió sem teljesen azonos Dantzig eredeti algoritmusával.) Ezek a változatok a módszer lényegét ugyan nem érintik, de az algoritmus hatékonysága id˝onként mégis javítható velük. Ebben a ponban a teljesség igénye nélkül megemlítünk néhány változatot. A lexikografikus szabály Az 1.24. tételben bizonyítottuk, hogy a szimplex módszer véges sok lépésben leáll – amennyiben az algoritmus 1. és 2. lépésében alkalmazzuk a legkisebb index szabályt. Más szabály alkalmazásával is el lehet azonban kerülni, hogy az algoritmus végtelen ciklusba kerüljön; a szimplex módszer eredeti, Dantzig-féle változatában ezt a lexikografikus szabály biztosította. Legyenek u és v azonos dimenziós vektorok és tegyük fel, hogy u v. Azt mondjuk, hogy u kisebb v-nél a fordított lexikografikus rendezés szerint, ha ui v i teljesül a legnagyobb olyan i indexre, amelyre u i vi. A szimplex módszer 2. lépésében (a szimplex táblával dolgozva) a táblának egy olyan sorát kell megkeresnünk, amelyre z˜ i 0 és az xz˜˜ ii hányados minimális; a választott sort ezután a pivotálás során el kell majd osztani z˜ i -vel. Ha több ilyen sor is van, akkor a lexikografikus szabály szerint ezek közül úgy kell választani, hogy a z˜ i -vel való osztás után el˝oálló sor a fordított lexikografikus rendezés szerint a legkisebb legyen. (Itt sor alatt a tábla teljes sorát értjük, amelybe tehát a vonaltól jobbra es˝o elem is beletartozik.) Nem nehéz megmutatni, hogy ezt a szabályt alkalmazva a tábla legfels˝o sora a pivotálás során a fordított lexikografikus rendezés szerint határozottan nagyobb

64

1. LINEÁRIS PROGRAMOZÁS

lesz; ez pedig garantálja, hogy az algoritmus nem kerül végtelen ciklusba és így véges sok lépés után leáll. (A bizonyítás alapgondolata a következ˝o: a kiindulásnak választott szimplex tábla minden vonal alatti sorára teljesül, hogy jobbról az els˝o nemnulla eleme pozitív – más szóval a sor a fordított lexikografikus rendezés szerint nagyobb a nullvektornál. Könny˝u végiggondolni, hogy a lexikografikus szabály ezt a tulajdonságot fenntartja; ebb˝ol következik, hogy a legfels˝o sor valóban n˝o a fordított lexikografikus rendezés szerint.) A lexikografikus szabály alkalmazása valamivel több számolást igényel, mint a legkisebb index szabályé. Ezzel szemben megvan az az el˝onye, hogy az 1. lépésben a legfels˝o sor bármelyik negatív elemét választhatjuk, nem muszáj balról az els˝ot (vagyis a legkisebb index˝ut). Ezért felmerül a kérdés: vajon melyik negatív komponenst érdemes választani, hogy az algoritmus minél hamarabb leálljon? A szimplex módszerrel kapcsolatos irodalomban erre a kérdésre számos válasz létezik; ezek azonban csak a tapasztalaton alapulnak, egyik sem garantálja, hogy az algoritmus polinomiális legyen. A módosított szimplex módszer A szimplex tábla m˝uködésének hátterében az 1.26. és az 1.27. állítások állnak, amelyek segítségével Dk 1 és yk 1 gyorsan megkapható Dk -ból, illetve yk -ból. Ezeknek az állításoknak (és a z Bk 1 a¯ik képletnek) az alkalmazásával azonban a szimplex módszer az eredeti, szimplex táblát nem használó formájában is m˝uködtethet˝o, hiszen az algoritmushoz csak Dk , x¯k és yk nyomon követése szükséges. A szimplex módszernek azt a változatát, amely csak ezeket az adatokat tartja nyilván, módosított szimplex módszernek nevezik. A módosított szimplex módszer általában hatékonyabb, mint a szimplex tábla használata, hiszen az m n-es Dk A¯ mátrix helyett csak az m m-es Dk mátrixot tartja nyilván. Annyi hátránya azonban van, hogy az yk A¯ c¯ vektort mindig ki kell számítani, hogy ki lehessen választani egy negatív komponensét. Szerencsés esetben azonban nincs szükség a teljes vektor kiszámítására: az A¯ mátrix oszlopait egymás után vizsgálva esetleg hamar megtalálható egy olyan a¯t oszlop, amelyre yk a¯t c¯ t . Érdemes megfigyelni, hogy A¯ A E és c¯ c 0 miatt a szimplex tábla utolsó m 1 oszlopa éppen azokat az adatokat (valamint még c¯x¯k -t) tartalmazza, amelyek a módosított szimplex módszerhez szükségesek (ugyanis x¯k -nak a táblában fel nem tüntetett komponensei 0-k). Ezért a módosított szimplex módszer úgy is tekinthet˝o, hogy az a szimplex táblának csak az utolsó m 1 oszlopát tartja karban és a Dk A¯ mátrixból mindig csak a pivotáláshoz aktuálisan szükséges oszlopot számítja ki. Mivel a módosított szimplex módszer a gyakorlatból származó feladatokon rendre jóval hatékonyabb, mint a (teljes) szimplex tábla használata, ezért a szimplex módszer számítógépes implementációi ezt használják (illetve ennek további finomításait).

1.8. AJÁNLOTT IRODALOM

65

A duál szimplex módszer Tegyük fel, hogy a max cx : Ax b x 0 feladatot már megoldottuk a szimplex módszerrel, amikor a feladatban új feltételek merülnek fel: az Ax b rendszerhez újabb egyenl˝otlenségeket kell hozzávenni (miközben a régi egyenl˝otlenségek és a célfüggvény változatlanok maradnak). Ekkor a már kiszámolt optimum esetleg nem is megoldása az új rendszernek, így a szimplex módszert elölr˝ol kell kezdenünk. Erre a problémára jelent megoldást a duál szimplex módszer. Ennek az alapgondolata az, hogy mivel a szimplex algoritmus egyszerre oldja meg a kit˝uzött feladatot és annak duálisát (ezt láttuk az 1.7.2. pontban), ezért teljesen mindegy, hogy az eljárást a primál vagy a duális feladatra futtatjuk. Tegyük fel, hogy a primál helyett a duális min yb : yA c y 0 feladatot oldottuk meg és az y0 optimumhelyet kaptuk. Ha most Ax b-hez hozzávesszük az új a x egyenl˝otlenséget, akkor a duális feladat új alakja min yb : yA a cy 0 0 lesz (ahol tehát az y vektor tartalmazza a duális összes változóját). Ennek a feladatnak pedig az y y0 , 0 választással azonnal ismerjük egy megoldását. Ráadásul könny˝u ellen˝orizni, hogy ez a megoldás a duális feladat kanonikus alakjának bázismegoldása marad (kiegészítve persze az y0 -hoz tartozó eltérésváltozókkal), így a szimplex módszer folytatható az el˝oz˝oleg kiszámolt optimumtól. A duál szimplex módszert érdemes alkalmazni például az egészérték˝u programozási feladatok megoldására használt korlátozás és szétválasztás algoritmus belsejében (lásd az 1.5.3. pontot). Itt ugyanis a LIFO szabály révén valóban mindig egy olyan feladathoz jutunk, amely csak egyetlen új egyenl˝otlenségben különbözik az el˝oz˝oleg megoldottól.

1.8. Ajánlott irodalom [1] Bradley, S., A. Hax és T. Magnanti, 1977. Applied mathematical programming, Addison-Wesley Pub. Co, Reading. (Letölthet˝o a következ˝o címr˝ol: http://web.mit.edu/15.053/www/) [2] Frank A., 2002. Operációkutatás, egyetemi jegyzet. Letölthet˝o a következ˝o címr˝ol: http://www.cs.elte.hu/˜frank/jegyzet/opkut [3] Prékopa A., 1968. Lineáris programozás, Bolyai János Matematikai Társulat, Budapest. [4] Schrijver, A., 1986. Theory of linear and integer programming, John Wiley & Sons Ltd., Chichester.

2. fejezet

Matroidok 2.1. Matroidok alaptulajdonságai Egy tipikus optimalizálási probléma a következ˝o: Valamely E véges alaphalmazon adott egy halmazrendszer és egy w:E nemnegatív súlyfüggvény. Keressünk egy olyan X halmazt a halmazrendszerb˝ol, melynek összsúlya – e X w e – maximális. Tegyük fel még azt is, hogy a halmazrendszer nem üres, valamint „leszálló”, azaz ha egy halmaz benne van, akkor annak összes részhalmaza is -hez tartozik. (Így persze is áll.) Ilyen típusú feladatból többel is találkoztunk már: (1) Ilyen volt a maximális súlyú körmentes részgráf (feszít˝ofa) keresésének problémája. (Korábbi tanulmányaink során a minimális súlyú feszít˝ofa keresésével foglalkoztunk – egyszer˝u észrevétel, hogy a két feladat egymásra visszavezethet˝o.) (2) Ilyen volt a maximális párosítás keresésének problémája. (Abban a speciális esetben, amikor G páros, az 1.1 pontban algoritmust is megismertünk.) (3) Az alábbi probléma is ilyen: adott egy véges vektorhalmaz valamely T test feletti V vektortérben – például egy mátrix oszlopvektorainak halmaza – és egy súlyfüggvény a vektorokon, keressünk maximális súlyú lineárisan független részhalmazt. (4) Adott egy G páros gráf és pontjain egy nemnegatív súlyfüggvény. Keressünk G-ben maximális súlyú független ponthalmazt! Ezekre a problémákra különböz˝o – polinomiális idej˝u – megoldási módszereket láttunk. Az (1) példában szerepl˝o maximális súlyú feszít˝ofa keresésének problémája azonban bizonyos szempontból igazán egyszer˝unek bizonyult: nem kellett mást tegyünk, mint egy „mohó” eljárással, lépésr˝ol lépésre a lehet˝o legjobb új elemet választva felépíteni egy megoldást – és érdekes módon, ahogy ezt akkor be is bizonyítottuk, az így kapott halmaz mindig optimális volt. 66

2.1. MATROIDOK ALAPTULAJDONSÁGAI

67

Ebben a fejezetben azokkal a problémákkal – azokkal a halmazrendszerekkel – foglalkozunk, amelyekre ez a mohó algoritmus mindig m˝uködik. Látni fogjuk, hogy pontosan definiálható, milyen tulajdonságokkal kell rendelkezzen egy halmazrendszer ahhoz, hogy a fenti optimalizálási problémát – tetsz˝oleges súlyfüggvényre – mindig meg tudjuk oldani mohó algoritmussal, és az így nyert általános tételeink segítségével számos új optimalizálási feladatot meg fogunk tudni oldani. Miel˝ott továbblépünk, fogalmazzuk meg precízen, mit is nevezünk mohó alés w, ahol nem üres, goritmusnak a fenti alapfeladat esetén. Adott tehát E leszálló, w nemnegatív. megengedett megoldásból indulva a következ˝o szabály Az algoritmus az alapján növeli a megoldás méretét (és összsúlyát), amíg lehet: Ha a pillanatnyi megoldás X E, és létezik olyan elem, amelyet X-hez véve az új halmaz is -ben van, akkor legyen e egy olyan elem, melyre max w e : e

we

és legyen az új halmaz X

E

X :X

e

e.

Ha nincs az X-hez hozzávehet˝o elem, akkor készen vagyunk, X az output. Így m˝uködött a maximális súlyú feszít˝ofát megkeres˝o algoritmus is, és a végs˝o megoldás valóban mindig maximális súlyú volt. Könny˝u meggondolni – legyen például a gráf egy 3 él˝u út és w 1 –, hogy ez a módszer nem feltétlenül eredményez optimális megoldást a (2) feladat esetén. A (4) feladatra sem m˝uködik, a (3)-ra viszont igen, ahogy hamarosan látni fogjuk. 2.1. Definíció. Egy E alaphalmazon értelmezett nemüres, leszálló halmazrendszer matroid, ha tetsz˝oleges nemnegatív súlyfüggvényre a mohó algoritmus optimális – maximális súlyú – megoldást ad. Egy matroidot egy „párral” jelölünk: az E alaphalmaz és az halmazrendszer együtt az M E matroidot1 határozza meg. Tehát ha alaphalmazunk egy adott G gráf E élhalmaza, akkor a G-beli erd˝ok halmaza matroidot alkot. (Nemnegatív súlyfüggvény esetén mindig létezik olyan maximális súlyú erd˝o, ami feszít˝o.) A következ˝o tétel egy kézzelfoghatóbb, ekvivalens definíciót ad: 2.2. Tétel. Legyen tétel:

.

F1 F2 Ha Y

Ekkor E F3 Ha X Y 1A

olyan halmazrendszer E -n, amelyre teljesül az alábbi két fel-

X és X

akkor Y

akkor és csak akkor matroid, ha teljesül rá az alábbi: és X

Y , akkor létezik olyan x

X

Y , melyre Y

x

matroid elnevezést 1935-ben Whitney vezette be, utalva a mátrixokkal való szoros kapcsolatra.

.

2. MATROIDOK

68

Bizonyítás: Annak belátásához, hogy az ilyen halmazrendszerek valóban matroidok, a maximális súlyú feszít˝ofa esetén alkalmazott bizonyítást kell elismételni – kicsit általánosabb alakban. egy súlyfüggvény és legyen X a1 an a mohó alLegyen w : E goritmus által adott megoldás. (Mivel w nemnegatív, X egy nemb˝ovíthet˝o -beli halmaz lesz.) Indirekt tegyük fel, hogy létezik egy ennél nagyobb összsúlyú halmaz -ben, legyen ez Y b1 bm . Tegyük fel, hogy X elemeit ilyen sorrendben választotta ki a mohó algoritmus, azaz w a1 w an . Rendezzük Y elemeit is hasonlóan: w b1 w bm . Legyen k a legkisebb index, amelyre w bk w ak . Ilyen létezik, mert Y összsúlya nagyobb. (Világos, hogy n m, hiszen ellenkez˝o esetben a mohó algoritmus nem állt volna meg an -nél, hiszen például Y -ból is tudott volna újabb elemet választani X-hez az F3 tulajdonság alapján.) Legyen A a1 ak 1 és B b1 bk . (Ha k 1, legyen A .) Az F2 tulajdonság miatt A B , továbbá A B , így az F3 tulajdonság miatt létezik b j B, amelyre A b j . Ekkor viszont w b j w bk w ak miatt a mohó algoritmus nem választhatta volna az ak elemet a k-adik lépésben. Ez az ellentmondás mutatja, hogy X maximális súlyú lesz. Fordítva, indirekt tegyük fel, hogy minden súlyfüggvényre jól m˝uködik a mohó algoritmus, de F3 nem teljesül. Ez azt jelenti, hogy létezik olyan X és Y halmaz -ben, melyekre X Y , de semelyik x X Y elemre sem lesz Y x . Legyen r Y X X Y . Vizsgáljuk a következ˝o w : E súlyfüggvényt:

we

1 r 0

1

r 2

ha e Y ha e X Y és különben.

Hogyan fut le a mohó algoritmus? El˝oször az 1-súlyú elemekb˝ol választ, amíg lehet, így az összes elemet kiválasztja Y -ból. A továbbiakban – miután az Y összes elemét már beválasztotta – már nem választhat X Y -beli elemet az indirekt feltevésünk miatt, csak 0-súlyúakat E X Y -ból. Így a végs˝o megoldás összsúlya Y lesz. X összsúlya azonban – ami X Y X Y r 1 r 2 – ennél nagyobb. Így tehát a mohó algoritmus nem ad jó eredményt, ami ellentmond az indirekt feltevésünknek. A fenti F1 F2 F3 tulajdonságokat nevezzük függetlenségi axiómáknak. Megtehettük volna, hogy a matroidokat úgy definiáljuk mint a függetlenségi axiómákat kielégít˝o halmazrendszereket. Számos könyvben így definiálják a matroidokat. Az el˝obbi tétel szerint a két definíció ekvivalens, így ha kényelmesebb, mostantól mi is használhatjuk ezt a három axiómát mint definíciót. (Kés˝obb további ekvivalens definíciókat is mutatunk.) Figyeljük meg, hogy amikor a mohó algoritmus helyességét igazoltuk a maximális (minimális) súlyú feszít˝ofák esetére, akkor a dönt˝o lépés éppen annak igazolása volt, hogy az F3 tulajdonság teljesül a (feszít˝o)fákra.

2.1. MATROIDOK ALAPTULAJDONSÁGAI

69

E matroidban az alaphalmaz -hez tartozó részhal2.3. Definíció. Az M mazait független halmazoknak nevezzük. Ha az X E halmazra X , akkor X összefügg˝o. A maximális – nem b˝ovíthet˝o – független halmazok a matroid bázisai. A tartalmazásra nézve minimális összefügg˝o halmazokat köröknek nevezzük. Egy 1-elem˝u kör a matroidban hurok. Az M matroidban egy X E halmaz rangja, r X , egy X -beli maximális független halmaz mérete. Ez az r : 2E függvény a matroid rangfüggvénye. Gyakran mondjuk azt, hogy az M matroid rangja t , ha r E t. (A rangfüggvény jól definiált, amint azt a következ˝o egyszer˝u lemma mutatja.) 2.4. Lemma. Legyen E matroid, A E . Ha X1 és X2 maximális (A-n belül nem b˝ovíthet˝o) független halmazok A-ban, akkor X1 X2 . Bizonyítás: Indirekt tegyük fel, hogy X1 X2 , ahol ezek maximális független halmazok valamely rögzített A halmazban. Az F3 axióma miatt létezik egy olyan e X2 X1 elem A-ban, melyre X1 e , ami ellentmond annak, hogy az X1 nem b˝ovíthet˝o független halmaz volt A-ban. A lemma következménye, hogy r jól definiált, minden részhalmazban a maximális független halmazok mérete ugyanakkora. Speciálisan bármely matroidban a bázisok egyforma méret˝uek. Érdemes külön kiemelni a független halmazoknak az el˝obb is használt tulajdonságát: tetsz˝oleges X független halmaz és B bázis esetén az X kiegészíthet˝o bázissá a B-b˝ol vett elemekkel. Példák. (a) Egy G gráf által indukált matroidot – melynek független halmazai a G-beli erd˝ok – grafikus matroidnak nevezünk és M G -vel jelöljük. Szokás a G körmatroidja elnevezést is használni. (b) A (3)-as példában szerepl˝o struktúra is matroid (amelyben a független halmazok a lineárisan független vektorhalmazok lesznek), hiszen lineáris algebra tanulmányainkból tudjuk, hogy egy vektorhalmaz független részhalmazai teljesítik a függetlenségi axiómákat. A valamely mátrix oszlopvektorai által indukált matroidot mátrixmatroidnak nevezzük. (c) Álljon az n elem˝u E alaphalmaz összes legfeljebb k elem˝u halmazából (0 k n). Ekkor E matroid – F1 F2 F3 mind nyilvánvaló –, melyet uniform matroidnak nevezünk és Un k -val jelölünk. Ha E összes részhalmaza független – azaz M Un n –, akkor a matroidra a teljes (vagy szabad) matroid elnevezést használjuk. Ha csak az üres halmaz független – Un 0 –, akkor M-et triviális matroidnak hívjuk. (d) Legyen az E alaphalmaz partíciója (páronként diszjunkt részhalmazokra osztása) P1 P2 Pr , és minden Pi partíció-osztályhoz rendeljünk egy nemnegatív egész ai számot i 1 r . Egy X E halmaz akkor legyen független, ha X Pi ai minden i 1 r-re. Ezek valóban egy matroid független halmazai – mutassuk meg, hogy F1 F2 F3 teljesül! –, az így el˝oálló matroid neve partíciós matroid.

2. MATROIDOK

70 (e) Legyen G

A B E páros gráf, és legyen X

A : X bepárosítható B-be

Ekkor A matroidot alkot – ismét ellen˝orizzük, hogy F1 jesül! Az így el˝oálló matroid transzverzális matroid.

F2

F3 tel-

Láttuk, hogy a matroidok nem mások, mint a három függetlenségi axiómát kielégít˝o „független” halmazok családjai. Rögtön felmerülhet a kérdés: hogyan tudunk megadni egy matroidot, azaz hogyan tudjuk valamilyen tömör módon „tárolni” úgy, hogy a független halmazait ebb˝ol kés˝obb rekonstruálni lehessen? Gráfoknál ez egyszer˝u: az illeszkedési mátrix például megfelel˝o „elkódolás”, ami tömör, hiszen egy n pontú gráf esetén n2 nagyságrend˝u helyet foglal el. Ugyanígy megteszi, ha az összes élét felsoroljuk. (Az élek halmaza a pontpárok halmaza egy részhalmazának felel meg, így persze legfeljebb n2 él lehet.) Matroidok esetén is felsorolhatjuk a független halmazokat – ez azonban nem lesz mindig „tömör” megadás olyan értelemben, hogy a lista nem lesz polinomiális nagyságrend˝u az alaphalmaz méretének függvényében (ami kézenfekv˝o definíciója lehet a tömörségnek), mert egyszer˝uen túl sok független halmaz van ahhoz, hogy mindet felsoroljuk. Ez nem meglep˝o, hiszen az n pontú alaphalmaz 2n részhalmaza közül bizonyosak alkotják a független halmazok családját és ez a részcsalád könnyen lehet exponenciális méret˝u, gondoljunk például Un n 2 -re. Ez önmagában még nem lenne akadály, általában ilyen „tömör” tárolás azonban nem is létezhet, cn mivel n ponton a különböz˝o matroidok száma duplán exponenciális ( 22 ). A továbbiakban egy matroidot akkor tekintünk adottnak, ha rendelkezésünkre áll egy olyan algoritmus, mely az alaphalmaz bármely részhalmazáról megmondja, hogy az független-e a matroidban. Ennek az algoritmusnak a szokásos neve: függetlenségi orákulum. Például a maximális súlyú feszít˝ofa megkereséséhez nem kell egy lista az összes körmentes részgráfról – az algoritmus során csak arra a szubrutinra volt szükségünk, amely megmondta, hogy egy él hozzávehet˝o-e egy adott erd˝ohöz úgy, hogy ne keletkezzen kör. Ez éppen egy függetlenségi orákulum, ami persze ebben a speciális esetben nagyon egyszer˝uen – polinomid˝oben – megvalósítható. A továbbiakban látni fogjuk, hogy egy matroidot másképp is jellemezhetünk, nem csak a független halmazaival. Bázisainak, köreinek, rangfüggvényének megadása is egyértelm˝uen meghatározza a matroidot. 2.5. Tétel. Legyen

.

B1 B2

egy matroid bázisainak halmaza. Ekkor

X1

X2 minden X1 X2

B3 Ha X1 X2

és e1

-re.

X1 , akkor létezik olyan e2

Fordítva, ha E egy halmazrendszer a B1 M E matroidot alkot, ahol H:H

X2 , melyre X1

e1

e2

.

B2 és B3 tulajdonságokkal, akkor

B valamely B

-re

2.1. MATROIDOK ALAPTULAJDONSÁGAI

71

X2 Bizonyítás: A B1 tulajdonság áll F1 miatt. B2 is világos, hiszen X1 esetén X2 tovább b˝ovíthet˝o lenne F3 miatt. A B3 tulajdonság pedig speciális esete F3 -nak, mivel B2 miatt X1 e1 X2 , és mindkett˝o független. A másik irány: a fenti módon definiált halmazrendszerre F1 és F2 nyilván teljesül. Válasszunk X Y halmazokat, melyekre X Y . Definíció szerint ekkor léteznek BX és BY halmazok -ben, melyek tartalmazzák X-et, illetve Y -t. Ezek nem feltétlenül egyértelm˝uek. Válasszunk két olyat, amelyre BX BY maximális. Ha X BY Y , akkor ennek bármely x elemére Y x BY és így , amit bizonyítani akartunk. Y x Ha az X BY Y halmaz mellett (amelyr˝ol feltehet˝o a továbbiakban, hogy üres) a BY BX Y halmaz is üres lenne, akkor Y X X Y következne, ami nem lehet X Y miatt. Így tehát létezik egy z BY BX Y elem. (Lásd a 2.1. ábrát.) BX

X

Y z BY 2.1. ábra Ekkor B3 miatt létezik t BX BY , melyre BY BY z t szintén -hez tartozik. Erre BY BX BY BX , ami ellentmond BX és BY választásának. 2.6. Tétel. Legyen r egy matroid rangfüggvénye. Ekkor R1 r R2 r X

0. X minden X

R3 r Y

r X , ha Y

R4 r X

rY

E -re.

X.

r X Y

r X Y minden X Y

E halmazpárra.

Fordítva, ha r egy egészérték˝u függvény E részhalmazain, melyre teljesül R1 R4 , akkor r egy M E matroid rangfüggvénye, ahol H:r H

H

2. MATROIDOK

72

Bizonyítás: Az els˝o három tulajdonság a rang definíciójából rögtön látszik. Nézzük az R4 tulajdonságot, más szóval a rangfüggvény szubmodularitását. Egy adott X Y halmazpárra legyen A maximális független halmaz X Y -ban. Az A halmaz kiterjeszthet˝o egy B halmazzá, amely maximális független lesz X Y -ban. Nyilván B X Y A, és így B X B Y B A . Továbbá B X és B Y is függetlenek, így B X r X és B Y r Y , amib˝ol r X

rY

B

A

r X Y

r X Y

A fordított irány igazolását feladatként az olvasóra hagyjuk. 2.7. Tétel. Legyen C1

egy matroid köreinek halmaza. Ekkor

és nincs -ben két egymást tartalmazó halmaz.

C2 Ha X Y , X Y és e Z X Y e.

X

Y , akkor létezik olyan Z

halmaz, melyre

egy halmazrendszer a C1 és C2 tulajdonságokkal, akkor Fordítva, ha E M E matroidot alkot, ahol H : H nem tartalmaz -beli halmazt Bizonyítás: A definícióból C1 nyilvánvaló. Ha belátjuk, hogy T X Y e összefügg˝o, akkor C2 adódik, hiszen ekkor T tartalmaz kört. Tegyük fel, hogy T független, azaz r T T . Ekkor a rangfüggvény tulajdonságai alapján r T

r X Y

r X

rY X

r X Y 1 Y 1

X Y

X Y

2

T

1

adódik, ami ellentmondás. A fordított irány belátását feladatként az olvasóra hagyjuk. Ezek után matroidokat megadhatunk más formában is, nem csak a független halmazaikkal (azaz függetlenségi orákulummal). Használhatjuk az E , E r , E jelöléseket, ahol a bázisokat adja meg, r a rangfüggvényt, pedig a köröket. 2.8. Definíció. Az E matroidban egy X E halmaz lezártja egy maximális olyan halmaz, amely tartalmazza X -et és a rangja megegyezik X rangjával. (Bizonyítsuk be, hogy ez a halmaz egyértelm˝uen meghatározott!) Az X lezártjának jele X¯. Egy X halmaz zárt, ha X X¯. 2.9. Definíció. Két matroid, M E és M E izomorf, ha létezik olyan bijekció a két alaphalmaz, E és E között, amely független halmazt független halmazba visz. Az izomorfia jele M M .

2.2. DUÁLIS MATROID, MINOROK

73

Végül egy egyszer˝u lemmát lássunk be. A bizonyítás olvasásakor – itt is és máshol is – érdemes párhuzamosan a gráfok (grafikus matroidok) speciális esetére gondolni és megfigyelni, hogy terjeszthet˝ok ki bizonyos tulajdonságok az általános esetre.

matroidban X független halmaz. Ha X 2.10. Lemma. Legyen az E függ˝o valamely e E elemre, akkor X e pontosan egy kört tartalmaz.

e össze-

Bizonyítás: Tegyük fel, hogy X e két különböz˝o kört is tartalmaz, legyenek ezek C1 és C2 . Az nyilvánvaló, hogy e C1 C2 , és az is, hogy C1 C2 e független. Ez azonban ellentmond az el˝oz˝o tételben igazolt C2 tulajdonságnak.

2.2. Duális matroid, minorok Ebben a szakaszban több olyan m˝uvelettel ismerkedünk meg, amellyel egy adott matroidból további matroidokat lehet el˝oállítani. Ilyen m˝uvelet például a törlés és az összehúzás, amelyek a gráfoknál jól ismert élelhagyás, ill. élösszehúzás kiterjesztései. El˝obb azonban vizsgáljuk meg, hogy néz ki egy matroid „duálisa”. Az E alaphalmazon adott matroidunkból, M E -b˝ol kiindulva definiáljunk egy másik halmazrendszert, M duálisát, a következ˝o módon: alaphalmaza legyen E, és egy X E halmaz pontosan akkor legyen az új halmazrendszer eleme, ha E X tartalmaz M-beli bázist. Másképpen fogalmazva a duálisban egy X halmaz pontosan akkor legyen „bázis”, ha M-ben E X bázis. Ezt a halmazrendszert jelöljük -gal. A következ˝o tétel mutatja, hogy ez a m˝uvelet valóban egy matroidot definiál: 2.11. Tétel. Az M

E

pár matroid.

Bizonyítás: A három függetlenségi axiómát fogjuk igazolni M -ra. F1 és F2 nyilvánvaló a definícióból. A lényeges pont az F3 axióma. Ehhez be kell látnunk, hogy ha X Y és X Y , akkor van olyan x X Y elem, melyre Y x . Legyen BX E X és BY E Y két M-beli bázis. A duális definíciója alapján ilyen bázisok léteznek. Ha van olyan elem X-ben, amely nincs benne Y -ban és BY -ban sem, akkor ezt hozzávéve Y -hoz ismét -beli halmazt kapnánk. Tegyük fel, hogy nem ilyen egyszer˝u a helyzet, azaz X BY Y . X X Y Y X Y BX Y a feltevéseink miEkkor BY X att. Mivel BY és BX mérete ugyanakkora, ebb˝ol BY X BX Y következik. Erre a két halmazra – és az M matroidra – alkalmazva az F3 axiómát azt kapjuk, BX Y BY X elem, melyre BY X z független hogy létezik olyan z halmaz M-ben. Ezt a független halmazt egészítsük ki bázissá a BY bázisból véve az új elemeket. Legyen az így kapott bázis B . Ez a B bázis tartalmaz elemet E BY -ból, tehát létezik olyan BY -beli elem is – legyen ez u – mely nincs B -ben. Ez az u X Y elem az, amit kerestünk: Y u E B miatt Y u . A definícióból világos, hogy M

M.

2. MATROIDOK

74 Példák.

(a) Legyen M U5 2 , azaz uniform matroid. Ekkor M-ben minden legfeljebb 2 elem˝u halmaz – és csak ezek – független. A duálisban azok a halmazok lesznek függetlenek, amelyek komplementerei tartalmaznak M-beli bázist, azaz 2 elem˝u halmazt. Világos, hogy pontosan a legfeljebb 3 elem˝u halmazok tesznek eleget ennek a feltételnek, azaz M U5 3 . (b) Legyen M egy összefügg˝o G síkgráf körmatroidja. Korábbi tanulmányainkból tudjuk, hogy G-nek létezik (esetleg többféle) absztrakt duális gráfja, a szintén síkbarajzolható G . Ekkor G és G élei között létezik egy (kört vágásba viv˝o) természetes kölcsönösen egyértelm˝u megfeleltetés, amely teljesíti például azt, hogy ha egy élhalmaz G-ben feszít˝ofa, akkor G -ban egy feszít˝ofa komplementere, és viszont. Ugyanakkor M duális matroidjában a bázisok éppen M bázisainak, azaz a feszít˝ofáinak komplementerei. Ezek a fentiek alapján G feszít˝ofáinak felelnek meg. Így kimondhatjuk az alábbi állítást: 2.12. Tétel. A G síkbarajzolható gráfra M G

M G .

Itt érdemes megjegyezni azt is, hogy két grafikus matroid pontosan akkor izomorf, ha a gráfjaik gyengén izomorfak. Nézzük most meg, mi a kapcsolat M és M rangfüggvényei között. Definíció szerint egy X halmaz rangja M -ban – jelölje r X – az X-beli maximális M -beli független halmaz mérete. Ez persze nem más, mint az X és valamely M -beli bázis metszetének maximális mérete. Mivel a duális bázisai M bázisainak komplementerei, ez éppen az, mint X -b˝ol kivonva X és egy M-beli bázis metszetének minimális méretét. A kivonandó pedig nem más, mint egy M-beli bázis méretéb˝ol kivonva E X és egy M-beli bázis metszetének maximális méretét, azaz E X rangját. Így tehát 2.13. Tétel. Az M

E

matroid duális matroidjában egy X r X

X

r E

r E

E halmaz rangja

X

2.14. Definíció. Egy M E matroidban az X halmaz vágás, ha X kör M -ban. Egy e E elem híd, ha egyelem˝u vágás M -ben, azaz ha hurok M -ban. Egy G gráf vágásainak (tartalmazásra nézve minimális elvágó élhalmazainak) segítségével is lehet matroidot definiálni: az E G alaphalmazon a vágást nem tartalmazó élhalmazokat tekintjük függetlennek (azaz a matroid körei G vágásai lesznek). Ezt a matroidot G vágásmatroidjának nevezik. Könnyen belátható (érdemes végiggondolni), hogy ez a matroid azonos G körmatroidjának duálisával. (Ez egyben arra is bizonyíték, hogy a vágásmatroid valóban matroid.) Ha véletlenül G síkgráf, akkor a vágásmatroid egyszer˝ubben is elképzelhet˝o. Ismert, hogy a (síkbeli) dualitás kört vágásba, vágást körbe visz. Így G vágásmatroidja nem más, mint G duálisának körmatroidja (vagyis a 2.12. tételben szerepl˝o matroid).

2.2. DUÁLIS MATROID, MINOROK

75

2.15. Definíció. Az M matroid kografikus, ha el˝oáll egy gráf vágásmatroidjaként. (Azaz létezik olyan gráf, amelynek vágásai M köreinek felelnek meg.) Érdemes megemlíteni, hogy a grafikus matroidok (illetve gráfok) bizonyos tulajdonságai sok esetben kiterjeszthet˝ok tetsz˝oleges matroidra (ahogy erre már több példát is láttunk), de nem minden tulajdonság érvényes általában. Erre jó példa a gráfok azon tulajdonsága, hogy egy tetsz˝oleges kör egy tetsz˝oleges vágást mindig páros sok élben metsz. Léteznek olyan matroidok (érdemes keresni is ilyet), melyekben el˝ofordul olyan kör-vágás pár, melyek metszete páratlan! A szakasz hátralev˝o részében további négy egyszer˝u m˝uveletet definiálunk. LeE a kiindulási matroidunk. gyen M Rögzítsünk egy X E halmazt. Definiáljuk az halmazrendszert úgy, hogy pontosan akkor tartozzék egy halmaz -höz, ha -hez tartozik és részhalmaza E X-nek. Más szóval szorítsuk meg az halmazrendszert az E X alaphalmazra. Az így definiált M X E X halmazrendszer matroid (ellen˝orizzük az axiómákat!). Ez a m˝uvelet az X halmaz törlése (vagy elhagyása) az M matroidból. (Grafikus matroidoknál ez a m˝uvelet nem más, mint élek egy halmazának törlése. A törlés után kapott matroid rangfüggvénye pedig nem más, mint M rangfüggvényének megszorítása E X-re.) Célunk most az „összehúzás” m˝uveletének kiterjesztése matroidokra. Itt nem kézenfekv˝o, mi is a jó definíció. El˝oször érdemes meggondolni, hogy ha egy X élhalmazt összehúzunk egy G V E gráfban, akkor az új gráf matroidjában a független halmazok milyen kapcsolatban vannak az eredeti független halmazokkal? Más szóval a megmaradó élek mely részhalmazai lesznek az összehúzás után kapott gráfban körmentesek? Azok, amelyek X egy (tetsz˝oleges) feszít˝oerd˝ojével együtt körmentesek voltak G-ben. Azt sem nehéz megfigyelni, bár nem ennyire egyszer˝u, hogy egy Y E X élhalmaz új rangja éppen r X Y r X lesz, ahol r a G körmatroidjának rangfüggvénye. Ebb˝ol kiindulva már természetes az alábbi: E r matroid az r rangfüggvénnyel, és X E . Ek2.16. Definíció. Legyen M kor az E X alaphalmazon az R Y r X Y r X rangfüggvénnyel definiált E X R matroid az M -b˝ol az X összehúzásával áll el˝o, jele M X . Ez valóban egy matroid definíciója, azaz: 2.17. Lemma. R egy matroid rangfüggvénye az E

X alaphalmazon.

Bizonyítás: Igazoljuk az R1 R4 tulajdonságokat! R1 és R3 világos. R2 -höz igazolnunk kell, hogy R Y Y minden Y E X-re. Ez azonban az r X Y r X Y egyenl˝otlenségb˝ol következik, ami minden rangfüggvényre érvényes. (Egy elem hozzávétele a rangot legfeljebb eggyel növelheti.) A szubmoduláris egyenl˝otlenséghez azt kell megmutatni, hogy r X Y1

r X Y2

r X

Y1 Y2

r X

Y1 Y2

Ez az r rangfüggvényre R4 -b˝ol következik, ha megfigyeljük, hogy X X Y1 X Y2 .

Y1 Y2

2. MATROIDOK

76

A következ˝o lemma mutatja, hogy az el˝obbi definíció, amelyben M X-et a rangfüggvényével adtuk meg, teljesíti a független halmazokra vonatkozó elvárásainkat: 2.18. Lemma. Legyen X0 maximális független halmaza X -nek az M matroidban. Ekkor Y E X akkor és csak akkor független M X -ben, ha Y X0 független M -ben. Bizonyítás: Ha X0 Y független M-ben, akkor Y független az összehúzottban, mivel RY

r X Y

r X

r X0 Y

r X

X0 Y

X0

Y

RY

Másrészt, ha Y független M X-ben, akkor Y r X r X Y . Így ha X0 X maximális független, azt X Y -ban maximális függetlenné kiegészítve az Y X0 halmazt kell kapjuk. 2.19. Definíció. Az M matroidból törlések és összehúzások valamely sorozatával el˝oálló matroid az M minora. Az nyilvánvaló, hogy a részhalmazok törlése egymással felcserélhet˝o, azaz M A B M B A, és ez épp M A B . Azt sem nehéz látni a definícióból, hogy az összehúzások egymással felcserélhet˝ok. (Ez utóbbi mutatja, hogy az összehúzás m˝uveletét is definiálhattuk volna elemek egyenkénti összehúzásainak sorozataként.) További meggondolások mutatják, hogy M A B M B A is igaz. Ezt használva nyerhet˝o: 2.20. Tétel. M minden N minora el˝oáll N junkt halmazok.

M A B alakban, ahol A és B disz-

Fontos tulajdonság, hogy a törlés és az összehúzás egymás „duálisa”: 2.21. Tétel. Legyen az M M X M X.

matroidban X

E

E . Ekkor M X

M X és

Bizonyítás: Elég a második egyenl˝oséget igazolni, hiszen abból mindkét oldal duálisát véve és M helyett M -ra alkalmazva következik az els˝o egyenl˝oség. A duális matroid rangfüggvényének képletéb˝ol kapjuk, hogy M X rangfüggvénye – jelölje r1 – így írható: r1 Y

r X Y X Y

r X r E X

Y

r E

X Y

Ugyanakkor M X

r E r E

X

r E

X

Y

r E

X

rangfüggvénye – jelölje r2 – nem más, mint r2 Y

Y

r T

Y

r T

ahol T E X az M X matroid alaphalmaza. Ebb˝ol r1 Y Y -ra, tehát a két matroid megegyezik.

r2 Y adódik minden

2.3. MÁTRIXOK ÉS MATROIDOK

77

E1 1 és M2 E2 2 két matroid a disz2.22. Definíció. Legyen az M1 junkt E1 és E2 nemüres alaphalmazokon. Ekkor a két matroid direkt összege az N M1 M2 matroid, melynek alaphalmaza E1 E2 , és egy X E1 E2 halmaz pontosan akkor független N -ben, ha X E1 és X E2 független M1 -ben, illetve M2 -ben. 2.23. Definíció. Egy M matroid összefügg˝o, ha nem áll el˝o matroidok direkt összegeként. Érdemes végiggondolni, hogy egy G gráf akkor és csak akkor 2-szeresen összefügg˝o, ha az M G grafikus matroidja összefügg˝o; így a matroidok összefügg˝osége nem a gráfokra vonatkozó összefügg˝oség általánosítása. 2.24. Definíció. Legyen M E egy p-rangú matroid ( p 1), 0 k p egy egész szám. Legyen X E :X X k Ekkor az E halmazrendszert az M csonkolt matroidjának nevezzük. Könny˝u (de érdemes) ellen˝orizni, hogy a direkt összegként illetve csonkoltként definiált halmazrendszerek valóban matroidok.

2.3. Mátrixok és matroidok A két alapvet˝o matroidosztály, amelyekkel el˝oször találkoztunk, a grafikus és a lineáris matroidok osztálya volt. El˝obb-utóbb felmerül a kérdés: esetleg minden matroid ezen osztályok valamelyikébe tartozik? És ez a két osztály milyen kapcsolatban van egymással? Az el˝oz˝o szakasz végén utaltunk rá, hogy nem minden matroid áll el˝o egy gráf körmatroidjaként. Az sem igaz, amint majd látni fogjuk, hogy minden matroid el˝oállítható mint egy alkalmas test feletti mátrix oszlopvektorainak matroidja. A következ˝o kérdés ezek után: mely matroidokat lehet el˝oállítani valamely gráf körmatroidjaként, illetve melyek lineárisak? Ebben a szakaszban az utóbbi kérdést vizsgáljuk majd, melyhez további problémák is kapcsolódnak: ha egy matroidot el˝o lehet állítani egy mátrix segítségével, akkor hogyan lehet egy ilyen „reprezentációt” megkonstruálni? És még egy szempont, ami nem lényegtelen: milyen test feletti vektortérben állítható így el˝o a matroid? (Hamar kiderül: a vektortér alapteste fontos tényez˝o! Gondoljuk meg, milyen matroidot határoznak meg az 1 1 0 1 0 1 0 1 1 vektorok, ha az alaptest a racionális számok teste, illetve, ha a kételem˝u test, GF2 .) 2.25. Definíció. Az M matroid reprezentálható vagy koordinátázható az F test felett, ha létezik olyan mátrix, amely oszlopai által – az F test felett – meghatározott mátrixmatroid izomorf M -mel. Lineáris matroidnak akkor nevezzük M -et, ha létezik olyan F test, amely felett M koordinátázható. A kételem˝u test felett reprezentálható matroidokat bináris matroidnak nevezzük. Ha egy matroid tetsz˝oleges test felett reprezentálható, akkor reguláris.

2. MATROIDOK

78 A G B 2.2. ábra

Például a K4 teljes gráf körmatroidja az alábbi mátrixszal reprezentálható a kételem˝u test felett: 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 A 2.2. ábrán látható G páros gráf A színosztálya által indukált transzverzális matroid egy lehetséges reprezentációja a racionális test felett pedig az alábbi: 1 1 2 2 0 0 0 2 1 2

0 1

Bizonyos mátrixelemeket alkalmasan átcserélve az el˝obbi példákban szerepl˝o mátrixokban szintén jó reprezentációt kapunk – egyszer˝u észrevétel, hogy egy M matroidnak több reprezentációja is lehet valamely test felett. További fontos megfigyelés – lineáris algebrai tanulmányainkból világos –, hogy ha egy k l-es A mátrix reprezentálja a matroidunkat valamely test felett, és B egy nemszinguláris k k-as mátrix, akkor A és BA izomorf matroidokat határoznak meg. Más szóval sorm˝uveletek nem változtatnak a reprezentált matroidon, mivel nem változtatják meg A oszlopai egy részhalmazának rangját. Egy r rangú matroid esetén gyakran célszer˝u a reprezentáló mátrixok közül egy olyan típusút választani, amelynek r sora van, és az els˝o r oszlop egy egységmátrixot határoz meg, azaz egy bázisnak felel meg. A 2.3. ábrán látható gráf körmatroidjának egy ilyen típusú reprezentációja az alábbi: 1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

0 1 1 1

0 1 1 0

(Gondoljuk végig – az el˝obbi megfigyelésünkb˝ol következik –, hogy ilyen alakú reprezentáló mátrix valóban mindig létezik.) Az alábbi tétel reguláris matroidokra mutat példát, és egyúttal megválaszolja az egyik kérdésünket: minden grafikus matroid lineáris. (S˝ot, az alaptest is tetsz˝olegesen választható.) 2.26. Tétel. Grafikus matroidok tetsz˝oleges test felett reprezentálhatók. Bizonyítás: Legyen G a gráfunk, T pedig egy tetsz˝oleges test. A következ˝o eljárás egy jó reprezentációt ad: el˝oször rendeljünk a gráf minden xi pontjához

2.3. MÁTRIXOK ÉS MATROIDOK

79 2

1

5 6

3

4

2.3. ábra

x1 xn ) egy-egy különböz˝o n-dimenziós vi egységvektort, és rögzít(V G sük minden élre valahogyan végpontjainak a sorrendjét. (Más szóval irányítsuk a gráf éleit tetsz˝olegesen.) Ezután egy e xi x j élnek (ahol az él végpontjait ilyen sorrendben rögzítettük) feleljen meg a we vi v j vektor. Azt kell megmutatnunk, hogy egy élhalmaznak megfelel˝o vektorhalmaz pontosan akkor lesz lineárisan független, ha az általa feszített részgráf körmentes. Valóban, egy kör éleinek megfelel˝o vektorok egy megfelel˝o 1-es lineáris kombinációja a 0-vektort adja (ott választva 1 együtthatót, ahol az él rögzített irányítása ellentétes a kör egy rögzített körüljárási irányával), hiszen a konstrukció miatt a megfelel˝o nemnulla koordináták éppen kiejtik egymást. Fordítva, vegyünk egy összefügg˝o vektorhalmazt és ennek egy olyan X nemüres részhalmazát, amelynek egy olyan lineáris kombinációja ad 0-t, ahol semelyik együttható sem 0. (Világos, hogy ilyen mindig létezik.) Mivel egy v pontnak megfelel˝o koordináta pontosan azoknál a we vektoroknál lesz nemnulla, amelyeknél az e él illeszkedik v-re, ezért ha az X-nek megfelel˝o élek egyike illeszkedik valamely v pontra, akkor kell legyen (legalább egy) másik vektor is X-ben, amelynek megfelel˝o él v-re illeszkedik. Tehát az X éleinek gráfjában minden pont foka legalább kett˝o, így nem lehet körmentes. Figyeljük meg, hogy a fenti mátrix éppen G egy irányításának illeszkedési mátrixa. (Érdemes ezt összevetni a hurokmentes irányított gráf illeszkedési mátrixának rangjáról korábban tanultakkal, valamint az 1.14. tétel után tett megjegyzéssel.) A grafikus matroidok mellett a kografikus matroidok is regulárisak. Ez az alábbi fontos tételb˝ol következik: 2.27. Tétel. Ha M

E

reprezentálható az F test felett, akkor M is.

Bizonyítás: Legyen E n és M rangja legyen r. Feltehetjük, hogy az M-et reprezentáló A mátrixnak r sora van, és választhatjuk Er A0 alakúnak is, ahol az Er r r-es egységmátrix oszlopai M egy bázisának felelnek meg, míg A0 oszlopai a többi elemnek. Be fogjuk látni, hogy A AT0 En r reprezentálja M -ot. A két mátrix oszlopai természetes módon megfeleltethet˝ok egymásnak – a 2.4. ábrán éppen az egymás alatti oszlopok felelnek meg ugyanannak az elemnek. Vegyünk az M valamely B bázisának megfelel˝o részmátrixot A-ban. Feltehet˝o, hogy ennek els˝o t oszlopa éppen Er utolsó t oszlopa, míg a maradék r t oszlop A0 els˝o r t oszlopa (lásd az ábrát). Ennek a mátrixnak a determinánsa pontosan akkor nem nulla, ha C determinánsa nem nulla. Mivel B bázis, így C most nem szinguláris.

2. MATROIDOK

80 1

1

C 1

r

1

t

r

t 1

CT

M

t

1 r

t

t

n

2r

t

1 1

1

1

r

t

n

2r

M

1

t

1 r

t

t

r

t

n

2r

t

2.4. ábra

Mi felel meg E B elemeinek A -ben? Az a mátrix, melynek els˝o r t oszlopa AT0 els˝o r t oszlopa, a többi pedig En r utolsó n 2r t oszlopa. Ennek a „fels˝o blokk-háromszög” mátrixnak a determinánsa pontosan akkor nem 0, ha a bal fels˝o blokk (ami éppen CT ) determinánsa nem nulla. Ez persze ekvivalens azzal, hogy C nem szinguláris. Tehát bázis komplementere bázis, és fordítva, azaz A valóban a duálist reprezentálja. Nyilvánvaló, hogy ha M egy matroid, X E tetsz˝oleges részhalmaz, és A reprezentálja M-et, akkor az X-nek megfelel˝o oszlopokat törölve A-ból, az új mátrix M X-et reprezentálja. Így a tételb˝ol az is következik – felhasználva a 2.21. tételt –, hogy egy részhalmaz összehúzása után is reprezentálható matroidot kapunk. Azaz: 2.28. Tétel. Ha M reprezentálható az F test felett, akkor minden minora is reprezentálható. A 2.5. ábra mutatja a definiált matroidosztályok egymáshoz való viszonyát. A grafikus matroidok

kografikus matroidok

reguláris matroidok

relációk a 2.26., illetve a 2.27. tételekb˝ol, míg a reguláris matroidok

bináris matroidok lineáris matroidok

összes matroid

relációk a definíciókból következnek. A kisbet˝ukkel jelölt példákkal bizonyítjuk, hogy mindegyik tartalmazás valódi. Az a és b helyekre bármilyen síkba nem rajzolható gráf kör-, illetve vágásmatroidja kerülhet, míg a c helyre egy síkbarajzolható gráf körmatroidja. A d, e és g helyekre a 2.8. szakasz végén fogunk példákat látni. Könny˝u belátni, hogy az U4 2 uniform matroid az f helyre kerül.

2.4. MATROIDOK ÖSSZEGE

81

összes matroid

g

lineáris matroidok

f

bináris matroidok

e

reguláris matroidok d

grafikus matroidok a

c

b

kografikus matroidok

2.5. ábra

2.4. Matroidok összege Ebben a szakaszban egy olyan m˝uvelettel ismerkedünk meg, amely néhány – azonos alaphalmazon értelmezett – matroidból kiindulva egy új matroidot – az „összegüket” – határoz meg. Látni fogjuk, hogy számos nehéz gráfelméleti eredmény egyszer˝uen levezethet˝o, ha alkalmas matroidok összegének tulajdonságait vizsgáljuk. E 1 M2 E 2 Mk E k matroidok 2.29. Definíció. Az M1 k összege az az N i 1 Mi halmazrendszer, melynek alaphalmaza E , és egy halmaz pontosan akkor tartozik N -hez, ha el˝oáll különböz˝o Mi -kb˝ol vett független halmazok uniójaként. Azaz N E , ahol H1 H2

Hk : Hi

i

i

1

k

Az így definiált „összeg” m˝uveletet jellel fogjuk jelölni. Els˝o ránézésre egyáltalán nem világos, miért is lesz az így definiált N valóban matroid. A következ˝o eredmény Nash-Williamst˝ol és Edmondstól származik: 2.30. Tétel. Az Mi i 1 k matroidoknak az el˝obb látott módon definiált N E összege matroidot alkot. Bizonyítás: Elég két matroid összegére igazolni a tételt, mivel M1 M2 M3 M1 M2 M3 . Az F1 és F2 axiómák teljesülése nyilvánvaló. Legyen tehát a két összeadandó M1 E 1 és M2 E 2 , az összeg pedig N E . Tegyük fel, hogy az F3 axióma nem teljesül, azaz léteznek ezt megsért˝o X Y E párok -ben. Definíció szerint ezeknek a halmazoknak létezik (esetleg többféle) olyan felbontása, melyre X X1 X2 és Y Y1 Y2 , ahol

2. MATROIDOK

82

X1 Y1 1 és X2 Y2 2 . Válasszunk egy olyan párt, amelynek egy alkalmas felbontása az X1 Y2 X2 Y1 értéket minimalizálja és X1 X2 Y1 Y2 . Feltehetjük, hogy X1 Y1 . Az F3 axióma alapján – az M1 matroidra alkalmazva – létezik egy x X1 Y1 elem, melyre Y1 x 1 . Ha x Y2 , akkor ezt az elemet Y -hoz véve -höz tartozó halmazt kapnánk, ami ellentmondana X és Y váY1 x Y2 x egy lasztásának. Így tehát x Y2 áll. Ebb˝ol következik, hogy Y másik megfelel˝o felbontása Y -nak, ráadásul az ehhez és az X X1 X2 felbontáshoz tartozó el˝obbi érték – a megfelel˝o metszetek méretének összege – eggyel kevesebb lesz, ami ellentmond az X Y pár (és a felbontások) választásának. Ez mutatja, hogy nem létezhet az F3 axiómát sért˝o pár. Figyeljük meg, hogy az összeg definíciójában mindegy, hogy az uniót tetsz˝oleges unióként vagy diszjunkt unióként definiáljuk! Ha ugyanis egy X halmaz az összeghez tartozik, azaz el˝oáll X H1 H2 Hk alakban, ahol Hi i , akkor alkalmasan csökkentve bizonyos Hi halmazokat úgy is el˝o tudjuk állítani, hogy a felbontásában szerepl˝o halmazok páronként diszjunktak legyenek. Hogyan dönthetjük el, hogy az összegben egy X E halmaz független-e, ha rendelkezésünkre állnak a tagok függetlenségi orákulumai? Ez a matroidpartíciós probléma. Kés˝obb látni fogjuk, hogy ez a kérdés polinomid˝oben megválaszolható. Másik fontos kérdés, mi lesz vajon az összeg rangfüggvénye. Ez a következ˝oképp áll el˝o a „tagok” rangfüggvényeib˝ol: 2.31. Tétel. Az N összegmatroid r rangfüggvényére k

min

r X

Y X

ri Y

X

Y

i 1

ahol ri az Mi matroid rangfüggvénye (i

k).

1

A bizonyítás „könny˝u” irányát (max min) gondoljuk végig: legyen Y X és legyen U X maximális független halmaz az összegben. Legyen erre egy jó partíció U H1 H2 Hk . Ekkor Hi Y ri Y , tehát k

U

U

Y

U Y

U

Y

Hi Y i 1 k

U

Y

k

ri Y i 1

ri Y

Két példán szemléltetjük az új fogalom használatát. Legyen a G leges irányítatlan gráf (amelyben párhuzamos élek el˝ofordulhatnak). 1. probléma: Lefedhet˝ok-e G élei k erd˝ovel? 2. probléma: Létezik-e G-ben k éldiszjunkt feszít˝ofa?

X

Y

i 1

V E tetsz˝o-

2.4. MATROIDOK ÖSSZEGE

83

Tudva azt, hogy matroidok összege is matroid, nem nehéz a fenti két problémát M G a gráf körmatroidjából képzett átfogalmazni: legyen N M G M G k tagú összeg. Ekkor az 1. probléma nem más, mint „Független-e E az N összegmatroidban?” (Azaz r E E ?) A 2. probléma pedig „Az összegmatroidban van-e k r E méret˝u független halmaz?” (Azaz r E k r E ?) Felhasználva az N rangfüggvényére vonatkozó képletet, ezeket a kérdéseket – tetsz˝oleges matroid esetén is – meg tudjuk válaszolni. Grafikus matroidokra a következ˝o két klasszikus tételt nyerjük, ha a gráf matroidjának rangfüggvényét helyettesítjük az összeg rangfüggvényének képletébe: V E összefügg˝o irányítatlan gráf élei lefedheV ponthalmaz legfeljebb k X 1 élt feszít.

2.32. Tétel. (Nash-Williams) G t˝ok k erd˝ovel bármely X

2.33. Tétel. (Tutte) G V E irányítatlan gráfban létezik k élidegen feszít˝ofa V -nek bármely V1 V2 Vl Vi partíciójára a különböz˝o részhalmazok között men˝o élek száma legalább k l 1 . A 2.33. tételre mutatunk majd matroidokat nem használó, gráfelméleti bizonyítást is az 5. fejezetben. Ahogy a többi m˝uveletnél, itt is fontos kérdés, hogy ha a „tagok” reprezentációját ismerjük, hogyan kaphatjuk meg az összeg reprezentációját. Ezzel kapcsolatban két észrevételt fogalmazunk meg. Az egyik kézenfekv˝o kísérlet az összeg reprezentálására az lehet, hogy ha a valamely (közös) T test feletti A1 Ak reprezentációkat ismerjük, akkor elkészítünk egy olyan A mátrixot, amely úgy áll el˝o, hogy ezeket az Ai -ket egymás alá tesszük:

A

A1 A2 .. . Ak

(Természetesen el˝oz˝oleg úgy rendezzük az oszlopokat, hogy az egymásnak megfelel˝o oszlopok kerüljenek egymás alá.) A kérdés az, vajon jó lesz-e ez a nagy mátrix az összeg reprezentálására. Ehhez annak kellene teljesülni, hogy A-ban oszlopok egy halmaza akkor és csak akkor független, ha el˝oáll a megfelel˝o tagokban független oszlopok uniójaként. 2.34. Tétel. Legyen X az A-ban független halmaz. Ekkor X getlen az összegben.

k i 1 Mi ,

azaz X füg-

Bizonyítás: Az egyszer˝uség kedvéért vizsgáljuk a két összeadandó esetét. Ha X független A-ban, az azt jelenti, hogy létezik egy m m-es négyzetes A részmátrix az X oszlopai által meghatározott részmátrixban, amelynek determinánsa nem nulla. (Ahol X m ) Ennek els˝o néhány – m1 – sora A1 -hez tartozik, a többi m2 sor A2 -höz. Ennek a részmátrixnak a determinánsa el˝oáll olyan részdeterminánsok szorzatainak el˝ojeles összegeként, ahol az els˝o tényez˝o az els˝o m1

2. MATROIDOK

84

sor egy m1 m1 -es részmátrixának determinánsa, a másik tényez˝o pedig az utolsó m2 sor egy m2 m2 -es részmátrixának determinánsa. (Laplace-kifejtés.) Mivel az A mátrix nem szinguláris, ezért valamelyik tag nemnulla. Ennek a tagnak két tényez˝oje nemszinguláris részmátrixokat határoz meg A1 -ben és A2 -ben. Ezek mutatják, hogy X el˝oáll két független halmaz uniójaként. A megfordítás azonban nem igaz. Legyen például két uniform matroid az összeadandó, U2 2 U2 1 U2 1 . Itt U2 1 -et reprezentálja az 1 1 mátrix (tetsz˝oleges T test felett), a kétszer kettes azonosan 1 mátrix azonban nem reprezentálja U2 2 -t. Bizonyítás nélkül megemlítjük, hogy ha az összeadandók reprezentálhatók valamely közös test felett, akkor az összeg is mindig reprezentálható egy alkalmas test felett.

2.5. Matroidok metszete Két matroid, E 1 és E 2 „metszete” az E 1 2 halmazrendszer. Kis vizsgálódás után azt tapasztalhatjuk, hogy két matroid metszete nem feltétlenül matroid. (Ez még grafikus matroidokra sem mindig igaz. Legyen például M1 M G1 és M2 M G2 , ahol G1 és G2 a 2.6. ábrán látható.) 1

2

1

3

3

2 G2

G1 2.6. ábra

Számos érdekes kérdés fogalmazható meg (súlyozott) matroidmetszet problémaként, ahol két (vagy több) matroid metszetének egy maximális méret˝u (vagy súlyú) elemét keressük. Nézzük például a következ˝oket: Példák. (a) Párosítás páros gráfokban. Legyen G (mutassuk is meg!), hogy az i

Y

A1 A2 ; E páros gráf. Megmutatható

E : bármely Ai -beli pontra legfeljebb egy Y -beli él illeszkedik

élhalmazok (i 1 2) egy matroid független halmazai. Jelöljük Mi -vel (i 1 2) az így kapott matroidokat. (Vegyük észre, hogy ezek partíciós matroidok.) Ekkor a párosítások G-ben pontosan M1 és M2 közös független halmazainak felelnek meg, így a maximális párosítás keresésének problémája matroidmetszet-problémaként megfogalmazható.

2.5. MATROIDOK METSZETE

85

(b) Feny˝ok. Ha egy fa éleit úgy irányítjuk, hogy egy rögzített pont (a gyökér) befoka 0, de minden más pont be-foka 1, akkor a kapott irányított gráfot feny˝onek nevezzük. Ha a G irányított gráfnak az F részgráfja feny˝o és G minden VE pontját tartalmazza, akkor F-et feszít˝ofeny˝onek hívjuk. Legyen G egy irányított gráf, s V pedig egy rögzített gyökérpont, melynek be-foka 0. Az M1 matroid legyen a G körmatroidja (az irányításokat figyelmen kívül hagyva), M2 -ben pedig azok az élhalmazok legyenek függetlenek, amelyek által feszített gráfban minden pont be-foka legfeljebb 1. (Vegyük észre, hogy ez egy partíciós matroid.) Ekkor a két matroidnak pontosan akkor létezik V 1 elem˝u közös független halmaza, ha G-ben van s-gyöker˝u feszít˝ofeny˝o. Ez a kérdés tehát szintén matroidmetszet-problémára vezet – bár a megválaszolásához jóval egyszer˝ubb eszközök is elegend˝oek. A probléma súlyozott esete – a minimális költség˝u feszít˝ofeny˝o keresése – azonban jóval nehezebb kérdés. (Ezzel a feladattal és más, feny˝okkel kapcsolatos problémákkal az 5. fejezetben fogunk foglalkozni.) (c) Menger-tétel. Legyen G V E n-pontú egyszer˝u gráf, s t V rögzített pontok, melyek nem szomszédosak, és bármelyiket elhagyva a gráf összefügg˝o marad. Legyen Gs az a gráf, melyet G-b˝ol az s-re illeszked˝o élek összehúzásával és a t-re illeszked˝ok elhagyásával kapunk. A Gt gráfot a t-re illeszked˝ok összehúzásával és az s-re illeszked˝ok elhagyásával nyerjük. Legyen M1 M Gs és M2 M Gt a megfelel˝o körmatroidok. (Alaphalmazaik természetes módon azonosíthatók.) Gondoljuk végig, mik lesznek M1 és M2 közös független halmazai! Ezek azok az X P1 P2 Pk F1 F2 Fm halmazok lesznek, ahol a Pi páronként pontdiszjunkt utak halmaza, melyek mindegyike s valamelyik szomszédja és t valamelyik szomszédja között vezet, Fj pedig páronként diszjunkt olyan fák halmaza, amelyek mindegyikének a Pi utakkal, valamint s és t G-beli szomszédhalmazaival összesen legfeljebb egy közös pontja van. Továbbá igaz, hogy a pontdiszjunkt s t utak maximális száma éppen max X : X M1 M2 n 2 d s d t Tehát a pontdiszjunkt s t utak maximális számának kiszámolása visszavezethet˝o egy matroidmetszet-problémára. V E irányított gráf éleinek halmazán három (d) Irányított Hamilton-út. A G matroidot definiáljunk: M1 legyen a G körmatroidja, M2 azon élhalmazok matroidja, melyek gráfjában minden pont be-foka legfeljebb 1, míg M3 legyen a legfeljebb 1 ki-fokú élhalmazok matroidja (lásd a (b) példát). Ekkor pontosan abban az esetben létezik G-ben irányított Hamilton-út, ha létezik a három matroidnak V 1 elem˝u közös független halmaza. A fenti megjegyzések és példák után nem várhatjuk, hogy a matroidmetszetproblémát a mohó algoritmus megoldja, s˝ot, kett˝onél több matroid metszete esetén más polinomiális algoritmus sem várható, mivel NP-teljes problémákat is magába foglal. Két matroid metszete esetén azonban létezik polinomiális „matroidmetszetalgoritmus” (súlyozott esetben is). A következ˝o fejezetben egy ilyen algoritmust ismertetünk, amely egyúttal az alábbi alapvet˝o tétel érvényességét is igazolni fogja:

2. MATROIDOK

86

2.35. Tétel. (Edmonds matroidmetszet tétele) Legyenek E r1 és E r2 matroidok az r1 és r2 rangfüggvénnyel. Ekkor a mindkét matroidban független halmazok méretének maximuma: min r1 X r2 E X X E

Itt is világos a max min irány: ha U maximális független halmaz a metszetben, akkor tetsz˝oleges X-re r1 X X U és r2 E X U X , amib˝ol r1 X r2 E X X U U X U. A szakasz végén egy további fontos megfigyelés: a matroidmetszet-probléma és a matroidpartíciós probléma (2.4. szakasz) lényegében ekvivalens: E 1 és M2 E 2 két azonos rangú matroid. Ek2.36. Tétel. Legyen M1 kor M1 és M2 -nek pontosan akkor van közös bázisa, ha az M1 M2 összeg teljes matroid. Bizonyítás: Ha X közös bázis, akkor E X bázisa M2 -nak. Így az E X felbontás mutatja, hogy E független az összegben, azaz az összeg teljes. Másrészt ha E E1 E2 , ahol E1 1 és E2 2 , akkor E

E1

E2

r1 E1

r 2 E2

r1 E

r2 E

r1 E

E

r2 E

E

X

E

tehát mindenhol egyenl˝oségnek kell állnia. Így E1 és E2 szükségképp diszjunkt bázisai M1 -nek, illetve M2 -nak. Ezért E1 közös bázisa M1 és M2 -nek.

2.6. Matroidmetszet-algoritmus Ebben a szakaszban mutatunk egy polinomiális algoritmust, amely megoldja a (súlyozatlan) matroidmetszet-problémát. Legyen E M1 és E M2 a két matroidunk. Az algoritmus kezdetekor egy közös független A halmaz legyen adott – ha jobbat nem tudunk, legyen A –, amit a kés˝obbiekben lépésr˝ol lépésre b˝ovítünk majd egy-egy új elem hozzávételével, amíg lehet, meg˝orizve a közös függetlenséget. Az eljárás végén megmutatjuk, hogy a végs˝o A halmaz optimális. Tegyük fel tehát, hogy A az éppen rendelkezésünkre álló közös független halmaz. Ehhez konstruáljunk egy élszínezett páros gráfot, melynek ponthalmaza feleljen meg E elemeinek. Minden v E A elemre az A v halmaz legfeljebb egy kört tartalmaz M1 -b˝ol (a 2.10. lemma alapján). Ha tartalmaz kört, kössük össze v-t a kör többi elemével piros élekkel. A kék éleket hasonlóan definiáljuk a másik matroidot vizsgálva: ha A v tartalmaz egy C2 kört M2 -ben, kössön össze egy kék él v-t minden C2 v-beli elemmel. Legyen Si e E A : A e Mi , i 1 2. Ha valamelyik Si üres, akkor A maximális (hiszen bázis az egyik matroidban), tehát készen vagyunk. Ha S1 és S2 metsz˝ok, akkor a metszet bármely eleme A-hoz adható. Ebben az esetben növeljük meg az A halmazt valamely e S1 S2 -beli elemmel és kezdjük újra az eljárást.

2.6. MATROIDMETSZET-ALGORITMUS

87

Nézzük most az érdekesebb esetet, azaz tegyük fel, hogy S1 és S2 diszjunkt nemüres halmazok. Keressünk kék és piros éleket felváltva használó (alternáló) utat S1 -b˝ol S2 -be! Ha létezik ilyen, a következ˝o keres˝o algoritmus megtalál egy ilyet: címkézzük S1 elemeit 0-val címkézzük ezek szomszédait a kék gráfban 1-gyel (ezek mind A-beliek) címkézzük az 1 címkéj˝u pontok piros gráfbeli szomszédait 2-vel címkézzük a 2 címkéj˝u pontok kék gráfbeli szomszédait 3-mal, és így tovább. Legyen Y azon pontok halmaza, amelyek kaptak címkét. I. eset: Y S2 . (Azaz nincs alternáló út S1 -b˝ol S2 -be.) Ekkor a konstrukció miatt minden e A Y kört alkot M1 -ben A néhány elemével (hisz különben e benne lenne S1 -ben, és így meg lenne címkézve), méghozzá ez a kör benne lesz A Y -ban (különben létezne egy piros él e-b˝ol A Y -ba, azaz e meg lenne címkézve). Így tehát r1 E Y r1 A Y A Y Hasonlóan A Y . Így ha X E Y , akkor A r1 X r2 E X , ami A maximar2 Y litását mutatja. (Edmonds matroidmetszet-tételének triviális irányát alkalmaztuk.) II. eset: Y S2 . Ekkor létezik egy b0 a1 b1 ak bk út, melyben a bi 1 ai élek kékek, az ai bi élek pirosak, valamint b0 S1 és bk S2 . A címkézési eljárás biztosítja, hogy nincs olyan piros él, ami olyan ai -t kötne össze b j -vel, amelyekre i j, és nincs kék él ai és b j közt, ha j i 1. A a1 ak b0 bk halmaz Azt fogjuk megmutatni, hogy az A mindkét matroidban független. Mutassuk meg ezt mondjuk M1 -re. Indukcióval bizonyítunk i szerint, azaz azt látjuk be, hogy A a1 ai b0 bi M1 . Ez i 0-ra triviális (vagyis A b0 M1 teljesül) S1 definíciója miatt. Tegyük fel, hogy i-re már tudjuk, hogy igaz, és nézzük i 1-re. Tudjuk, hogy a1 ai 1 bi 1 M1 , mivel az egyetlen kör, amit bi 1 alkot A-val, az A tartalmazza ai 1 -et. Így meg tudjuk növelni A a1 ai 1 bi 1 -et a független A a1 ai b0 bi halmazból egy A 1 méret˝u független halmazzá. Ha meg tudjuk mutatni, hogy a hozzávett elemek között nem szerepelhet az ai 1 , akkor ezzel belátjuk, hogy a növelés után kapott M1 -beli független halmaz épp az A a1 ai 1 b0 bi 1 . Azonban A a1 ai bi 1 nem lehet független, mert az utak átlóiról tett megfigyeléseink alapján a bi 1 és A által alkotott kör minden elemének benne kell lenni A a1 ai bi 1 -ben. Ez mutatja, hogy találtunk egy nagyobb független halmazt. Figyeljük meg, hogy az algoritmus egyúttal bizonyítást adott Edmonds matroidmetszet-tételére: az output mindig egy olyan közös független X halmaz lesz, amelyre r1 X r2 E X X , mutatva, hogy min r1 X

X E

r2 E

X

max X : X közös független

88

2. MATROIDOK

Mivel a min max irányt már láttuk, az egyenl˝oség következik. Idézzük fel a matroidpartíciós probléma definícióját: adott k darab matroid egy közös E halmazon és egy X E részhalmaz, kérdés, hogy X független-e a matroidok összegében, vagyis partícionálható-e olyan X1 X2 Xk részhalmazokra, melyek rendre az els˝o, második stb. matroidban függetlenek. Ez a probléma is megoldható polinomid˝oben (ez k 2 esetén a 2.36. tétel alkalmazásával azonnal adódik a most ismertetett algoritmusból, k 2 esetén is hasonló algoritmust készíthetünk). Ugyanakkor a matroidmetszet-problémára nem remélhet˝o k 2 esetén polinomidej˝u algoritmus: az el˝oz˝o szakasz (d) példájában láttuk, hogy egy ilyen algoritmus megválaszolná az irányított Hamilton-út létezését kérdez˝o NP-teljes problémát is.

2.7. A matroidpárosítási probléma Tekintsük a 2.6. tételben szerepl˝o R1 R3 és R4 tulajdonságokat, de az R2 tulajdonság helyett írjuk el˝o az r x k tulajdonságot minden x E elemre. Az ilyen tulajdonságú, az E részhalmazain értelmezett egészérték˝u függvényeket k-polimatroid rangfüggvényeknek nevezzük. Ez nyilván általánosítása a matroid rangfüggvényeknek, melyek a k 1 speciális esetben adódnának. Ha r egy k-polimatroid rangfüggvény, akkor minden X E részhalmazra r X k X teljesül. Ha egy részhalmazra egyenl˝oség áll fenn, akkor azt k-matchingnek nevezzük. Els˝o példaként legyen G V E egy tetsz˝oleges gráf, és az E élhalmaz tetsz˝oleges X részhalmazára legyen r X az X-beli élek által lefedett pontok száma. Ez egy 2-polimatroid rangfüggvény és a 2-matching épp a közönséges párosításnak felel meg (innét az elnevezés). Második példánkhoz tekintsünk k darab matroidot ugyanazon az E halmak zon, rangfüggvényeik legyenek rendre r1 r2 rk . Ekkor az r i 1 ri függvény k-polimatroid rangfüggvény és egy részhalmaz akkor és csak akkor lesz k-matching, ha mind a k matroidban egyidej˝uleg független volt. A k-polimatroid matching problémát úgy definiáljuk, hogy egy E halmazon adott k-polimatroid rangfüggvényhez és egy adott p számhoz kérdezzük, létezik-e olyan X E részhalmaz, mely k-matching és legalább p elem˝u. A fenti második példából látszik, hogy ez a probléma speciális esetként tartalmazza a k matroidmetszet-problémát, tehát k 3 esetén biztosan NP-nehéz. Ugyanakkor a k 2 speciális eset (a matroidpárosítási probléma) megkülönböztetett figyelmet érdemel, mert speciális esetként tartalmazza egyrészt a matroidmetszetproblémát két matroid esetére, másrészt a gráfok párosításaira vonatkozó kérdést. Sokan azt várták, hogy még ez is megoldható lesz polinomid˝oben, de ez nem igaz: 2.37. Tétel. A matroidpárosítási probléma (teljes általánosságban) nem oldható meg polinomid˝oben. A zárójelben lev˝o kifejezés a függvény megadási módjára vonatkozik: azt jelenti, hogy bármely X E részhalmazra egy egységnyi id˝o alatt megtudhatjuk r X értékét, de ett˝ol eltekintve a 2-polimatroid rangfüggvényr˝ol semmit nem tudunk.

2.8. MÁTRIXOK ÉS MATROIDOK II.

89

Bizonyítás (vázlat): Legyen E egy 2n elem˝u halmaz és E0 egy rögzített n elem˝u részhalmaza. Két 2-polimatroid rangfüggvényt definiálunk; minden X E X n részhalmazra legyen r1 X r2 X 2 X és minden X E X n részhalmazra legyen r1 X r2 X 2n, a pontosan n elem˝u részhalmazokon azonban r1 legyen azonosan 2n 1 érték˝u, r2 viszont az E0 halmazon legyen 2n és a többin 2n 1 érték˝u. Mindkét függvény 2-polimatroid rangfüggvény lesz (a szubmodularitás bizonyítását nem részletezzük). Legyen most p n. Arra a kérdésre, hogy van-e legalább p elem˝u 2-matching, a válasz nyilván nemleges lesz az r1 és igenl˝o az r2 input függvény esetén. Ha egy algoritmus teljes általánosságban meg tudja oldani a matroidpárosítási problémát, u részhalmazra meg kell kérakkor a legrosszabb esetben mind a 2n n darab n elem˝ deznie az ri függvény értékét, hisz ha csak egy híján mindegyikre kérdezné meg és mindig 2n 1 választ kapna, akkor még nem tudhatná, hogy melyik esetünkr˝ol van szó. Ez pedig már n függvényében exponenciálisan sok lépés (az analízisb˝ol ismert, hogy 2n o 4n n -nel). n aszimptotikusan egyenl˝ Vegyük észre, hogy most nem NP-nehézséget bizonyítottunk be – ez a probléma akkor is „reménytelen” maradna, ha egyszer az derülne ki, hogy P NP. Szerencsére azonban az alkalmazások szempontjából legfontosabb speciális esetben ismeretes a problémára polinomidej˝u megoldás. Ennek el˝okészítéseképp tekintsünk egy k 2n méret˝u valós M mátrixot, oszlopai legyenek rendre a1 b1 a2 b2 an bn , majd definiáljunk az I 12 n indexhalmazon M egy r függvényt úgy, hogy X I esetén legyen r X az i X ai bi vektorhalmaz által kifeszített altér dimenziója. Könny˝u látni, hogy ilyenkor r egy 2-polimatroid rangfüggvény. 2.38. Tétel. (Lovász László) A matroidpárosítási probléma polinomid˝oben megoldható, ha a 2-polimatroid rangfüggvény egy adott valós elem˝u M mátrixból a fent leírt módon nyerhet˝o. A bizonyítás nagyon nehéz, nem részletezzük. Fontos kiemelni, hogy a kapott polinomidej˝u algoritmus az M mátrix elemei között numerikus feltételek teljesülését is vizsgálja, tehát nem lenne elegend˝o azt tudnunk a 2-polimatroid rangfüggvényr˝ol, hogy a fenti értelemben reprezentálható a valós test felett, hanem a tényleges reprezentációra is szükségünk van.

2.8. Mátrixok és matroidok II. Ebben a szakaszban a különféle testek feletti reprezentálhatósággal kapcsolatos további érdekes eredményekkel ismerkedünk meg. Már a 2.3. szakaszban szó volt arról, hogy nem mindegy, milyen test feletti vektortérben akarunk egy matroidot koordinátázni. Bemelegítésképp gondoljuk végig, hogy az 1 1 0 1 0 1 0 1 1

2. MATROIDOK

90

mátrix oszlopai lineárisan függetlenek a szokásos (valós test feletti) vektortérben, azonban lineárisan összefügg˝oek a bináris test feletti vektortérben, ahol 1 1 0, így a mátrix rangja attól függ˝oen 3 vagy 2, hogy a valós vagy a bináris test feletti vektortérben dolgozunk. Ha az F testhez van olyan pozitív egész k, melyre teljesül, hogy az x x x (k tagú) összeg értéke minden x F elemre zérus, akkor a legkisebb ilyen k számot a test karakterisztikájának nevezzük. Nem nehéz bebizonyítani, hogy minden véges testnek van karakterisztikája, ami mindig egy prímszám. (Még könnyebben látható, hogy elég, ha a k-tagú x x összeg egyetlen tetsz˝oleges, a zérustól különböz˝o x elemre zérust ad, ekkor már a test minden más elemére is teljesül ugyanez.) Például a mod p maradékosztályok teste (tetsz˝oleges p prím esetén) épp p karakterisztikájú; van azonban ezzel nem izomorf p karakterisztikájú test is. Ha az F testnek a fenti értelemben nincs karakterisztikája (például a racionális, valós vagy komplex számok teste), akkor F-et 0 karakterisztikájúnak nevezzük. A hételem˝u a b c d e f g halmazon két érdekes matroidot fogunk definiálni. Mindkét matroidban legyen minden legfeljebb kételem˝u részhalmaz független, minden legalább négyelem˝u részhalmaz összefügg˝o, a háromelem˝uek közül pedig pontosan azok legyenek függetlenek, melyeket nem köt össze vonal az alábbi ábrákon. A 2.7a ábra így a 73 darab hármasból hetet zár ki (hat egyenes, egy kör), a 2.7b ábra pedig csak hatot. A 2.7a ábra matroidját Fano-matroidnak nevezik és F7 -tel jelölik, a 2.7b ábráét anti-Fano-matroidnak nevezik és F7 -szal jelölik. e

f

e

d

f

g

a

b 2.7a ábra

d g

c

a

b

c

2.7b ábra

2.39. Tétel. A Fano-matroid pontosan azon testek felett koordinátázható, melyek karakterisztikája 2. Az anti-Fano-matroid pontosan azon testek felett koordinátázható, melyek karakterisztikája nem 2. Bizonyítás: Az általánosság korlátozása nélkül feltehetjük, hogy mindkét matroidban az a c és e elemeket rendre az 1 0 0 , 0 1 0 , illetve a 0 0 1 egységvektor koordinátázza. Akkor a b d és f elemek minden lehetséges koordinátázása x y 0 ,

2.8. MÁTRIXOK ÉS MATROIDOK II.

91

0 z u , illetve v 0 w alakú, ahol az x y bet˝uk alkalmas nemzérus testelemek lesznek. A g elemet egyel˝ore próbáljuk meg a q r s általános alakban felírni, ahol a q r s testelemek egyike sem lehet zérus (hisz például q 0 esetén a c e g hármas összefügg˝o lenne). e001

f v0w

d 0zu g qrs

a100

bxy0

c010

2.8. ábra Tekintettel arra, hogy az a d g részhalmaz nem független, az 1 0 0 , 0 z u , q r s vektorok lineárisan összefügg˝oek, tehát sz

ru

Hasonlóképp a c f g részhalmaz összefügg˝o voltából sv

qw

adódik, a b e g részhalmaz összefügg˝o voltából pedig rx

qy

Ha az els˝o egyenletb˝ol az r, a másodikból a q értékét kifejezzük az s függvényeként, majd a kapott értékeket behelyettesítjük a harmadik egyenletbe, akkor azt nyerjük, hogy xr x szu yq y sv w vagyis xzw

yuv

Eddigi megfontolásaink mindkét matroidra érvényesek voltak és a felhasznált test tulajdonságait nem használták ki. Nem foglalkoztunk azonban még a b d f részhalmazzal. A megfelel˝o három vektor akkor és csak akkor lineárisan összefügg˝o, ha x y 0 0 z u xzw yuv 0 v 0 w

2. MATROIDOK

92

Tekintettel arra, hogy a hat bet˝u egyike sem jelenthet zérust, ez és a formula egyidej˝uleg akkor és csak akkor teljesülhet, ha a test karakterisztikája 2, vagyis a nemzérus t értékekre t t teljesül. Ennek alapján megállapíthatjuk, hogy a 2.5. ábrán az e helyre beírhatjuk az F7 matroidot, hisz az bináris, de nem reguláris, a g helyre pedig a most megismert két matroid F7 F7 direkt összegét (lásd a 2.22. definíciót), hisz az olyan matroid, mely semmilyen test felett nem koordinátázható. Ugyanezt az ötletet felhasználva az ábra d helyére beírhatnánk egy síkba nem rajzolható gráf kör- és vágásmatroidjainak direkt összegét. A kés˝obbiek érdekében bemutatunk azonban egy másik példát is olyan matroidra, mely reguláris, de se nem grafikus, se nem kografikus: ez egy 5 rangú matroid egy 10 elem˝u halmazon és a kételem˝u test feletti koordinátázását az alábbi mátrix adja meg: 1 1 1 0 0

1 1 0 1 0

1 1 0 0 1

1 0 1 1 0

1 0 1 0 1

1 0 0 1 1

0 1 1 1 0

0 1 1 0 1

0 1 0 1 1

0 0 1 1 1

(A mátrix oszlopai éppen a három 1-esb˝ol és két 0-ból készíthet˝o, összes lehetséges 0 1 sorozatok.) Belátható, hogy ez az (általában R10 -zel jelölt) matroid reguláris, de se nem grafikus, se nem kografikus. További érdekessége, hogy izomorf a saját duálisával, és ha bármely elemét elhagyjuk, akkor a K3 3 Kuratowski-féle gráf körmatroidjához jutunk.

2.9. Matroidelméleti tulajdonságok jellemzése Korábban már láttuk, hogy az U4 2 uniform matroid nem bináris. A 2.28. tételb˝ol tudjuk, hogy a minorképzés nem vezet ki az adott test felett koordinátázható matroidok köréb˝ol, így az alábbi tételben szerepl˝o feltétel szükségessége nyilvánvaló. (Az elégségesség nehezebb, azt nem bizonyítjuk be.) 2.40. Tétel. Egy matroid akkor és csak akkor bináris, ha nem tartalmazza minorként az U4 2 matroidot. Hasonlóképpen a 2.5. ábrából és a 2.39. tételb˝ol látható, hogy ha egy bináris matroid reguláris, akkor nem tartalmazhatja minorként az F7 matroidot. A 2.27. tétel miatt akkor persze ennek duálisát sem tartalmazhatja (az el˝oz˝o tétel kimondásakor ezt csak azért nem kellett külön mondanunk, mert U4 2 U4 2 teljesül). Így az alábbi tételben is könnyen adódik a feltétel szükségessége (és most sem bizonyítjuk a jóval nehezebb elégségességet): 2.41. Tétel. Egy matroid akkor és csak akkor reguláris, ha nem tartalmazza minorként az U4 2 , F7 , F7 matroidokat.

2.10. AJÁNLOTT IRODALOM

93

Végezetül a reguláris matroidok közül kellene kiválasztanunk a grafikusokat. Könny˝u látni, hogy a Kuratowski-gráfok vágásmatroidjait ki kell zárni, bizonyítás nélkül kimondjuk, hogy mást már nem is. 2.42. Tétel. Egy matroid akkor és csak akkor grafikus, ha nem tartalmazza minorként az U4 2 , F7 , F7 , M K5 , M K3 3 matroidokat. Ezek az 1950-es évek végén, Tutte által bebizonyított, nehéz tételek a bináris, reguláris, illetve grafikus matroidok „tiltott minorokkal” való jellemzését oldották meg. Befejezésképp a reguláris matroidok három további jellemzését említjük meg. El˝oször is vegyük észre, hogy a regularitás „ellen˝orzéséhez” nem kell mind a végtelen sokféle test feletti koordinátázhatóságot vizsgálni. 2.43. Tétel. Egy matroid akkor és csak akkor reguláris, ha mind a kételem˝u test felett koordinátázható (vagyis bináris), mind pedig legalább egy olyan további T test felett, melynek karakterisztikája nem kett˝o. Bizonyítás: A szükségesség nyilvánvaló. Másfel˝ol ha egy ilyen matroid nem lenne reguláris, akkor a 2.41. tétel miatt tartalmazná minorként vagy az U4 2 matroidot (és akkor nem lehetne bináris), vagy az F7 , F7 matroidok egyikét (és akkor T felett nem lehetne koordinátázható). A következ˝o tétel (melyet szintén nem bizonyítunk) érdekes kapcsolatot teremt az 1. fejezet egyik alapvet˝o fogalmával. 2.44. Tétel. Egy matroid akkor és csak akkor reguláris, ha a racionális számok teste felett egy totálisan unimoduláris mátrixszal is koordinátázható. Végül vázlatosan megemlítjük Seymour egy 1980-as, igen mély tételét, amely a reguláris matroidok egy további jellemzését adja: egy matroid akkor és csak akkor reguláris, ha egy grafikus matroidból, egy kografikus matroidból és az el˝oz˝o szakaszban látott R10 matroid néhány példányából bizonyos (itt nem definiált) m˝uveletek segítségével el˝oállítható.

2.10.

Ajánlott irodalom

[1] D. J. A. Welsh, 1976. Matroid Theory, Academic Press, London. [2] E. L. Lawler, 1982. Kombinatorikus optimalizálás: hálózatok és matroidok, M˝uszaki Könyvkiadó, Budapest. [3] J. G. Oxley, 1992. Matroid Theory, Oxford University Press, New York. [4] A. Recski, 1989. Matroid Theory and its Applications in Electric Network Theory and in Statics, Springer, Berlin és Akadémiai Kiadó, Budapest. [5] Lovász L., 1971. A matroidelmélet rövid áttekintése, Matematikai Lapok 22, 249–267.

3. fejezet

Közelít˝o algoritmusok Tanulmányaink során els˝osorban olyan problémákkal ismerkedtünk meg, melyek Pbeliek voltak, vagyis melyeket „gyors” algoritmusokkal meg tudtunk oldani (tehát olyanokkal, melyek lépésszáma a legrosszabb esetben is felülr˝ol becsülhet˝o az input hosszának polinomjával). Azon problémák közül, amelyekre nem ismeretes polinomrend˝u algoritmus, elvétve találkoztunk olyanokkal is, melyek bonyolultsága nem ismert, de többségükr˝ol beláttuk (vagy legalábbis bizonyítás nélkül közöltük), hogy NP-nehezek. Ezekre tehát „gyors” algoritmus keresése reménytelen, gyakran azonban épp ezek bizonyulnak a gyakorlatban különösen fontosnak, szükséges tehát, hogy ezekkel is „tudjunk valamit kezdeni”. Természetesen az az ideális eset, ha a kombinatorikus optimalizálást alkalmazó mérnök vagy matematikus észreveszi, hogy a konkrét problémájának átfogalmazása során még valami extra információt felhasználhat. Így ugyanis gyakran egy NPnehéz probléma P-beli speciális esetéhez juthat. Például NP-nehéz általában a maximális élszámú s t -vágás keresése G G G vagy e G meghatározása a leghosszabb irányított út keresése

de P-beli, ha a hálózat gráfja síkbarajzolható a G gráf páros a gráfban nincs irányított kör

Ha ez nem sikerül, akkor az egyik lehet˝oség olyan algoritmus készítése, mely polinomidej˝u, csak nem pontosan a kívánt választ, hanem annak egy „közelítését” adja meg. Általában valamilyen célfüggvény minimalizálásával vagy maximalizálásával fogunk foglalkozni és a minimum vagy maximum értékének a közelítése lesz a célunk. (Néha érdekes lehet az a kérdés is, hogy a talált megoldás helye milyen messze van a minimum, illetve a maximum helyét˝ol, de ezzel nem fogunk foglalkozni.) 94

3.1. KÖZELÍTÉS KIS ADDITÍV HIBÁVAL

95

Egy ilyen eredmény persze matematikailag csak akkor értékelhet˝o, ha a közelítés mértékér˝ol is tudunk valamit mondani. Emlékeztetünk rá, hogy ha egy ismeretlen m mennyiséget valamilyen m értékkel közelítünk, akkor m m a közelítés abszolút hibája és m 0 esetén m m m a közelítés relatív hibája.

3.1. Közelítés kis additív hibával Tegyük fel, hogy egy f x célfüggvényt kell minimalizálnunk valamely XI halmazon, adott I input esetén. XG lehet például az adott G gráf megengedett színezéseinek halmaza és f x a színosztályok száma (ez a kromatikus szám keresése). Meg fogjuk engedni, hogy a célfüggvény is függjön az inputtól. Például XG lehet az adott G teljes gráf Hamilton-köreinek halmaza és fs x az x részgráfot alkotó e élek s e súlyainak összege (ez a pozitív s súlyokkal mint költségekkel definiált utazó ügynök probléma). 3.1. Definíció. Legyen C egy pozitív szám. Egy algoritmusról akkor mondjuk, hogy egy additív C hibától eltekintve jól közelítve oldja meg a problémát, ha minden I inputra polinomid˝o alatt szolgáltat egy olyan yI XI megoldást, melyre fI yI

min fI x x XI

C

Lényeges, hogy itt C egy, a konkrét inputtól független (vagyis csak a problémától és az algoritmustól függ˝o) konstans, mely tehát tetsz˝oleges input mellett felülr˝ol becsli a közelítés abszolút hibáját. Ha eredeti problémánk egy célfüggvény maximalizálása lett volna, akkor a definícióban értelemszer˝uen fI yI maxx XI fI x C szerepelne. Talán a legnevezetesebb ilyen példa a következ˝o. Tegyük fel, hogy egy adott G egyszer˝u gráf e G élkromatikus számát kell meghatároznunk. Vizing tétele szerint ez a szám vagy G , vagy G 1, ahol G jelöli a G gráfban található pontok fokszámainak maximumát. Jóllehet annak eldöntése NP-teljes, hogy e G G teljesül-e, a tétel ismert bizonyítása polinomidej˝u algoritmust ad az élek G 1 színnel való színezésére. Így tehát C 1 additív hibájú közelítést kaptunk. Másik példaként említsük meg, hogy a G 3 kérdés még a síkbarajzolható gráfok körében is NP-teljes, tehát NP-nehéz az ilyen gráfok kromatikus számának meghatározása. Könny˝u azonban az ötszín-tétel bizonyításának ötleteit felhasználva olyan polinomidej˝u algoritmust készíteni, mely minden síkbarajzolt gráfot öt színnel megszínez. Ezáltal a síkbarajzolható gráfok pontszínezésére egy C 3 additív hibájú közelít˝o algoritmust kapunk (s˝ot, C 2 is adódik, ha el˝oször egy szélességi kereséssel eldöntjük, hogy nem volt-e az input gráf véletlenül páros). Ugyanakkor megmutatjuk, hogy egy gráfban a leghosszabb kör megkeresésének problémája (amely NP-nehéz, hiszen a Hamilton-kör keresést magában foglalja) semmilyen additív C konstanssal közelít˝o algoritmussal nem oldható meg (hacsak P NP nem teljesül). Tegyük fel, hogy lenne egy olyan AC algoritmus, mely tetsz˝oleges G gráfban megadna egy olyan kört, melynek hossza legfeljebb C-vel kisebb

3. KÖZELÍTO˝ ALGORITMUSOK

96

a leghosszabb kör hosszánál. Osszuk fel G minden élét C darab új ponttal, a kapott gráfot jelölje H. Könny˝u belátni, hogy H-ban a leghosszabb kör hossza C 1 szerese a G-beli maximális kör hosszának, így az egy C 1 -gyel osztható egész szám. Ezért az AC algoritmust H-ra lefuttatva és a kapott eredményt a legközelebbi C 1 -gyel osztható számra felkerekítve pontosan meg tudnánk mondani a H-beli, és így a G-beli maximális kör hosszát is.

3.2. Közelítés kis multiplikatív hibával Az el˝oz˝o szakasz példáiban az abszolút hiba bármilyen input esetén egy fix korlát alatt maradt. Ha inputok I1 I2 sorozata olyan, hogy a hozzájuk tartozó optimumok végtelenhez tartanak, akkor a relatív hiba nullához tart. A gyakorlatban sokszor megelégszünk például 90%-os közelítéssel is. Ilyenkor az abszolút hiba (példánkban legfeljebb az optimum 10%-a) tarthat a végtelenhez, csak „ne túl gyorsan”. 3.2. Definíció. Legyen k 1 egy adott szám. Egy algoritmusról akkor mondjuk, hogy egy multiplikatív k hibától eltekintve jól közelítve oldja meg a problémát (vagy röviden k-approximációs algoritmus), ha minden I inputra polinomid˝o alatt szolgáltat egy olyan yI XI megoldást, melyre f I yI

k min fI x x XI

Hangsúlyozzuk, hogy k most is egy, a konkrét inputtól független (vagyis csak a problémától és az algoritmustól függ˝o) konstans, és k 1 felülr˝ol becsli a közelítés relatív hibáját. Az el˝oz˝o bekezdésben köznapi szóhasználattal egy 90%-os közelítésr˝ol beszéltünk – jelen definícióval ez egy k 1 1 szorzót adna.1 Értelemszer˝uen f I yI k 1 maxx XI fI x szerepelne a definícióban, ha az eredeti problémánk egy célfüggvény maximalizálása lenne. Tekintsük els˝o példaként a lefogó pontok minimális számának, G -nek a meghatározását. Ha kiválasztjuk független élek egy maximális rendszerét, akkor ezen élek mindkét végpontját tekintve egy 2 G -elem˝u ponthalmazhoz jutunk, mely persze minden élt lefog. A nyilvánvaló egyenl˝otlenség miatt ez a ponthalmaz legfeljebb kétszer annyi elem˝u, mint az optimális, vagyis k 2 volt a közelítés szorzója. Gondoljuk végig, hogy ha valamilyen mohó algoritmussal választjuk ki független élek egy tovább nem b˝ovíthet˝o, de esetleg -nél kevesebb elem˝u rendszerét, az is megfelel, így a gyorsabb algoritmus esetleg jobb közelítéshez vezethet. 1 A szakasz elején említettük, hogy bármilyen kis relatív hiba esetén elképzelhet˝o, hogy az abszolút hiba tart a végtelenhez. Nem szabad azonban ebb˝ol arra következtetni, hogy ha egy probléma véges additív hibájú algoritmussal közelíthet˝o, akkor bármilyen kis pozitív mellett elérhet˝o lenne k 1 multiplikatív rend˝u közelítés, hisz a relatív hibát az abszolút hiba és az optimum hányadosa adja, és az optimum nem feltétlenül tart végtelenhez. Például az élkromatikus szám meghatározása még a harmadfokú reguláris gráfok körében is NP-teljes, tehát az el˝oz˝o szakasz C 1 additív hibájú algoritmusa 4 3 multiplikatív hibájú közelítéshez vezet, és bármilyen más polinomrend˝u algoritmus is legfeljebb erre képes, hacsak P NP nem teljesül.

3.2. KÖZELÍTÉS KIS MULTIPLIKATÍV HIBÁVAL

97

Következ˝o példaként keressük egy n pontú gráf ponthalmazának azt a kettéosztását, mely mellett a két pontosztály között a lehet˝o legtöbb él halad (maximális élszámú vágás). Ez is NP-nehéz probléma, de könnyen belátható, hogy az alábbi algoritmus legalább a maximum felét kiadja: induljunk ki egy tetsz˝oleges kettévágásból és ha egy pont áthelyezése növeli a vágás élszámát, akkor helyezzük át. Nyilvánvaló, hogy ez az eljárás polinomszámú lépés után véget ér, hisz minden átn2 4 értéknél még egy helyezésnél n˝o a vágásbeli élek száma, de a maxk k n k teljes gráf esetén sem lehet több.

3.2.1.

A halmazfedési feladat

A halmazfedési feladatban adott egy n elem˝u U alaphalmaz részhalmazainak egy S1 S2 Sk családja, valamint egy c : költségfüggvény. A cél az halmazaiból néhányat kiválasztani úgy, hogy ezek együtt lefedjék az U alaphalmazt, és erre nézve a költségeik összege minimális legyen. Ez a feladat (melynek speciális esete a gráfok minimális lefogó ponthalmazának keresése) NP-nehéz. Az alábbi – bizonyos értelemben – „mohó” algoritmus olyan megoldást talál, amelynek költsége legfeljebb az optimum ln n 1 -szerese. A következ˝o fogalomra lesz szükségünk. Tegyük fel, hogy néhány halmazt már kiválasztottunk -b˝ol, és legyen ezek uniója C U. Ekkor egy Si (Si C) halmaz értéke legyen az a szám, amely az o˝ hozzávétele esetén a lefedett új elemek átlagos költsége, azaz c Si Si C . Egyúttal definiáljuk az Si C elemeinek árát, amely éppen az o˝ ket (el˝oször) fed˝o Si halmaz értéke. Ez tehát nem más, mint ezen új elemek lefedéséhez szükséges pluszköltség (c Si ) egy új elemre jutó része. Az algoritmus legyen a következ˝o: mindaddig, amíg van fedetlen elem, válasszuk ki azt az Si halmazt -b˝ol, melynek értéke (a korábban már kiválasztott halmazokra nézve) minimális, majd tegyük o˝ t is a kiválasztott halmazok közé. Az approximációs faktor igazolásához egy egyszer˝u lemmára lesz szükségünk. Számozzuk az U elemeit abban a sorrendben, ahogy o˝ ket az algoritmus során lefedtük. Az egyidej˝uleg fedett elemek egymáshoz viszonyított sorrendje tetsz˝oleges. Legyen e1 e2 en az így kapott sorrend. Szokás szerint jelölje OPT az optimális megoldás értékét. 3.3. Lemma. Az ek elem ára legfeljebb

OPT n k 1,

minden 1

k

n-re.

Bizonyítás: Bármely iteráció során egy optimális halmazfedés halmazai lefedik a még fedetlen elemeket legfeljebb OPT összköltséggel. Ezért kell legyen ezen halmazok között olyan, amelynek az értéke legfeljebb UOPTC , ahol C, mint korábban is, az addig lefedett pontok halmaza. Abban az iterációban, ahol az ek elemet lefedtük, U C mérete még legalább n k 1 volt. Mivel ek -t a legkisebb érték˝u halmazzal OPT fedtük, ezért az ek ára legfeljebb UOPTC . n k 1 3.4. Tétel. Az algoritmus által adott halmazfedés költsége legfeljebb az optimum 1 Hn -szerese, ahol Hn 1 12 13 ln n 1. n

3. KÖZELÍTO˝ ALGORITMUSOK

98

Bizonyítás: Mivel minden kiválasztott halmaz költségét az általa fedett új elemek közt szétosztottuk, az algoritmus által kiválasztott halmazok költségeinek összege megegyezik az elemek árainak összegével. Az el˝oz˝o lemma alapján ez legfeljebb 1 1 12 13 n OPT . Megjegyezzük, hogy a most látott eljárás a 3.2. definíció értelmében semmilyen k-ra nem ad k-szoros közelít˝o algoritmust, hiszen Hn nemcsak a problémától, hanem az inputtól is függ. Meglep˝o módon azonban ez az egyszer˝u eljárás lényegében a legjobb, amit a halmazfedési feladatra kaphatunk. Kimutatták, hogy a P NP feltevés mellett nem lehet az approximációs faktor O log n nagyságrendjén javítani. Érdemes egy éles példát is megvizsgálni, azaz megmutatni, hogy az algoritmus valóban adhat Hn OPT érték˝u megoldást. Az U u1 un halmazon álljon az n darab egyelem˝u halmazból, valamint az U-ból. Legyen c ui 1 i minden i-re, 1 valamely kis pozitív -ra. Ekkor az algoritmus az n darab és legyen c U egyelem˝u halmazt választja ki, pedig az optimális megoldás az U kiválasztása lenne.

3.2.2.

Steiner-fák

A Steiner-fa feladat eredete több évszázaddal ezel˝ottre nyúlik vissza. Egyúttal számtalan modern alkalmazása van, VLSI huzalozási feladatokon át (lásd a 6. fejezetet) egészen biológiai problémákig. A feladat inputja egy G V E összefügg˝o gráf, melynek élein adott egy c:E nemnegatív költségfüggvény, és melynek pontjai két részre vannak osztva: a T -beli terminálokra és az S-beli Steiner-pontokra. A cél olyan minimális költség˝u fát keresni G-ben, mely minden terminált tartalmaz (és esetleg néhány Steiner-pontot is). Amennyiben T V , a feladat hatékonyan megoldható a jól ismert mohó algoritmussal. Tetsz˝oleges T -re azonban már NP-nehéz. Az általános esetre egy 2-approximációs algoritmust fogunk kidolgozni. El˝oször megmutatjuk, hogy elég a metrikus esetet vizsgálni: ebben feltesszük, hogy G a teljes gráf és az élek költségei teljesítik a háromszög-egyenl˝otlenséget, vagyis bármely három u v w pontra c uv c uw c wv . 3.5. Tétel. A Steiner-fa feladat visszavezethet˝o a metrikus Steiner-fa feladatra úgy, hogy az utóbbira adott k-approximációs algoritmus az el˝obbire is legfeljebb k-szoros megoldást ad. Bizonyítás: A Steiner-fa feladat egy példányát (amely egy G V E gráfból, egy c költségfüggvényb˝ol és a V T S felosztásból áll) polinomid˝oben átalakítjuk a metrikus Steiner-fa feladat egy példányává. Legyen G a teljes gráf a V ponthalmazon. Egy G -beli u v él c u v költsége legyen egy G-beli legrövidebb (azaz legkisebb összköltség˝u) u v út hossza. A V T S felosztás G -ben is legyen ugyanaz. Mivel minden u v él költsége G -ben legfeljebb annyi, mint G-ben, ezért a G -ben a fenti inputra az optimális megoldás értéke legfeljebb akkora, mint a G-beli optimum.

3.2. KÖZELÍTÉS KIS MULTIPLIKATÍV HIBÁVAL

99

Legyen most F egy G -beli Steiner-fa. Helyettesítsük ennek éleit a megfelel˝o legrövidebb utakkal G-ben. Az így kapott részgráf G-ben összefügg˝o, minden terminált tartalmaz, és legfeljebb c F a költsége. Így tartalmaz legfeljebb c F költség˝u F Steiner-fát. Mivel F polinomiális id˝oben megkapható F -b˝ol, ezzel a tételt beláttuk. Tehát a metrikus esetre igazolt bármely approximációs faktor az általános esetre is érvényes. A továbbiakban tegyük fel, hogy G a teljes gráf és c kielégíti a háromszög-egyenl˝otlenséget. Egyszer˝uen kaphatunk megengedett megoldást a feladatra úgy, hogy keresünk a terminálok halmazán (ezek részgráfjában) egy minimális költség˝u feszít˝ofát. Ez hatékonyan megkapható, ugyanakkor nem lesz feltétlenül optimális a Steiner-fa feladatra. Ennek ellenére közelít˝o megoldásként felhasználható. Jelölje most is az optimum értékét OPT . 3.6. Tétel. Legyen F a terminálok halmazán egy minimális költség˝u feszít˝ofa. Ekkor c F 2OPT . Bizonyítás: Tekintsünk egy optimális Steiner-fát. Ennek minden élét megduplázva olyan összefügg˝o gráfot kapunk, mely minden terminált összeköt (esetleg néhány Steiner-pontot is felhasználva) és amelyben minden pont foka páros. Így ebben a gráfban létezik Euler-kör, melynek költsége 2OPT . Tegyük fel, hogy az Euler-kör a p1 p2 pN p1 sorrendben járja be a csúcsokat (persze egyes pontokat többször is érint), ahol p1 terminál. Az Euler-kör mentén végighaladva, a fölösleges szakaszok „levágásával” könnyen el˝oállíthatunk egy Hamilton-kört a terminálok halmazán. Ez pontosabban a következ˝ot jelenti. pt még csupa különböz˝o terminál, de pt 1 már vagy Tegyük fel, hogy p1 p2 Steiner-pont vagy pedig egy korábbi pi -vel i t azonos. Legyen j a legkisebb olyan pozitív egész szám, melyre pt j már az els˝o t darabtól különböz˝o terminál, és helyettesítsük a pt pt 1 pt j pontsorozatot a pt pt j „útlevágással”. Ha pN pontsorozatot helyettesítsük pedig ilyen j nincs, akkor az egész pt pt 1 pt p1 -gyel. (Mivel G teljes gráf, bármilyen „útlevágás” lehetséges.) Mindezt ismételjük addig, amíg visszajutunk p1 -hez. Mivel teljesül a háromszög-egyenl˝otlenség, a levágások nem növelik a séta költségét. Tehát a kapott Hamilton-kör valamely élét kitörölve egy olyan Hamiltonutat kapunk a T halmazon, melynek költsége legfeljebb 2OPT . Ez az út egyúttal feszít˝ofa is a terminálokon, így legalább c F költség˝u. Ebb˝ol pedig a kívánt cF 2OPT becslés következik. A 2-approximációs algoritmus (a metrikus esetben) így tehát nem más, mint a terminálok halmazán egy minimális költség˝u feszít˝ofa megkeresése. Éles példa a következ˝o. Legyen az n 1 pontú teljes gráfon n terminál és egyetlen Steiner-pont. A Steiner-pontra illeszked˝o élek költsége legyen 1, a többi él legyen 2 költség˝u. (Ez metrikus.) Itt az optimum n, a terminálokon vett minimális költség˝u feszít˝ofa költsége viszont 2 n 1 .

3. KÖZELÍTO˝ ALGORITMUSOK

100

3.2.3.

Az utazó ügynök probléma

A korábbról már ismert utazó ügynök feladatban egy élsúlyozott teljes gráfban kell minimális összsúlyú Hamilton-kört keresni. Megmutatjuk, hogy hacsak P NP nem teljesül, az utazó ügynök probléma egyáltalán nem közelíthet˝o semmilyen nagy multiplikatív hibával sem. Tegyük fel, hogy valamely k számra létezne egy olyan Ak algoritmus, mely tetsz˝oleges n pontú teljes gráfra és annak élein tetsz˝oleges s költségfüggvényre polinomid˝oben találna egy olyan Hamilton-kört, melynek költsége legfeljebb az optimum k-szorosa. Belátjuk, hogy erre visszavezethet˝o az a probléma, hogy létezik-e egy adott G gráfban Hamilton-kör. Legyen G pontjainak száma n, és az Ak algoritmus inputja legyen az alábbi élköltségekkel definiált n pontú teljes gráf: ha két pont G-ben szomszédos volt, akkor a teljes gráfban a köztük vezet˝o él költsége legyen egységnyi, különben pedig kn. Ha G-ben van Hamilton-kör, akkor az így definiált utazó ügynök probléma optimuma persze n; ha nincs, akkor ez az optimum legalább n 1 kn. Mivel ez utóbbi több mint kn (vagyis a Hamilton-körrel bíró gráfokra adódó optimum k-szorosa), az Ak közelít˝o algoritmus meg tudná különböztetni a Hamilton-körrel rendelkez˝o, illetve nem rendelkez˝o gráfokat. Ugyanennek a gondolatmenetnek egy apró módosításával megmutatható, hogy ha f n tetsz˝oleges, polinomid˝oben számítható függvény, akkor P NP esetén nem létezhet olyan közelít˝o algoritmus, amely az optimumhoz képest legfeljebb f n -szeres érték˝u megoldást talál az utazó ügynök problémára; ennek megmutatásához elég a fenti gondolatmenetben kn helyett f n n súlyúnak választani a G-hez nem tartozó éleket. (Így erre a feladatra nincs például log n -szeres közelít˝o algoritmus sem, amilyet a 3.2.1. pontban láttunk.) Megjegyezzük, hogy számos további olyan NP-nehéz probléma van, amely (az utazó ügynök problémához hasonlóan) semmilyen k konstansra sem közelíthet˝o kszoros multiplikatív hibával, hacsak P NP nem teljesül. Például az itt tanultaknál lényegesen nehezebb eszközökkel megmutatható, hogy G meghatározása ilyen2 . Az utazó ügynök probléma metrikus esete A fentiek miatt a továbbiakban tegyük fel, hogy az élsúlyokra teljesül (a 3.2.2. pontban már látott) háromszög-egyenl˝otlenség, vagyis az adott teljes gráf bármely három u v w pontjára az u v él súlya legfeljebb az u w és a w v élek súlyának összege. Ezt az esetet metrikus utazó ügynök problémának nevezik. Erre a feladatra el˝oször egy k 2 multiplikatív hibájú közelít˝o algoritmust ismertetünk. 1. lépés. Válasszunk egy minimális összsúlyú F feszít˝ofát az adott n pontú G teljes gráfban. 2. lépés. Duplázzuk meg F minden élét, és az így kapott gráfban keressünk egy Euler-kört. (Erre ismert hatékony algoritmus.) 2 Ez a hurokmentes gráfokra vonatkozó, Gallaitól származó n tételt figyelembe véve azt a tanulságot is szolgáltatja, hogy ha két probléma pontos megoldása egymásra polinomid˝oben visszavezethet˝o – ami egyébként bármely két NP-teljes problémára teljesül –, attól még hasonló állítás a közelít˝o megoldásaikra nem feltétlenül igaz.

3.2. KÖZELÍTÉS KIS MULTIPLIKATÍV HIBÁVAL

101

3. lépés. Ebb˝ol az Euler-körb˝ol a 3.6. tétel bizonyításában látott „útlevágásokkal” készítsük el G egy Hamilton-körét. Belátjuk, hogy az algoritmus által szolgáltatott Hamilton-kör költsége legfeljebb az ismeretlen OPT optimum kétszerese lehet. El˝oször gondoljuk végig, hogy van OPT -nál kisebb összsúlyú Hamilton-út (hagyjunk el egy élt egy legolcsóbb Hamilton-körb˝ol), és mivel az is feszít˝ofa, az 1. lépésben talált F fa összsúlya kisebb OPT -nál. Így a 2. lépés végére egy 2OPT -nál kisebb költség˝u zárt élsorozathoz jutunk, és a háromszög-egyenl˝otlenség miatt az „útlevágások” ezt a költséget már csak csökkenteni tudják, hasonlóan a 3.6. tétel bizonyításához. (Érdemes megfigyelni, hogy az útlevágás a fenti algoritmus egyik fontos lépése, míg a 3.6. tétel esetében csak a bizonyítás segédeszköze volt.) A fenti algoritmus némi módosításával ráadásul az approximációs faktor 2-r˝ol 3 2 -re javítható (ez Christofides algoritmusa). Ehhez csak a 2. lépést kell megváltoztatni: 2a. lépés. Tekintsük G azon pontjait, melyek F-beli fokszáma páratlan. Ezek száma q2m -mel. Tekintsük azt a H segédgráfot, menyilván páros, jelöljük o˝ ket q1 q2 lyet ez a ponthalmaz feszít ki az eredeti G gráfban, éleit súlyozzuk ugyanazokkal a súlyokkal, mint G-ben. 2b. lépés. Legyen M egy minimális összsúlyú teljes párosítás H-ban. M éleit adjuk hozzá F-hez, így egy olyan n 1 m él˝u gráfhoz jutunk, amelyben minden pont foka páros. Keressünk ebben a gráfban egy Euler-kört. Megmutatjuk, hogy a kapott Hamilton-kör költsége legfeljebb 32 OPT . Ehhez csak azt kell végiggondolnunk, hogy az M-beli élek x összköltsége nem lehet több 12 OPT -nál. Csakugyan, egyfel˝ol a H segédgráfban a legolcsóbb Hamiltonkör y költsége legfeljebb OPT (miért? – itt is fel kell használnunk a háromszögegyenl˝otlenséget), másfel˝ol, ha ennek az y költség˝u körnek minden második élét pirosra, a többit kékre festjük, H-nak két teljes párosításához jutunk. Ezek közül az olcsóbb költsége legfeljebb y 2, és persze legalább x, hisz egy teljes párosításról van szó, de nem feltétlenül a legolcsóbbak egyikér˝ol. Belátható, hogy a most megismert két közelít˝o algoritmus közül az els˝o lépésszámát cn2 -tel, a másodikét c n3 -bel lehet felülr˝ol becsülni (alkalmas c c konstansokkal). Nyilván nagyobb id˝oigénnyel fizetünk azért, hogy jobb közelítést tudjunk garantálni. Felmerülhet a kérdés, hogy az algoritmus további finomításával (vagy egy egészen más algoritmussal) az approximációs faktor tetsz˝olegesen közel vihet˝o-e 1-hez (megengedve, hogy közben a lépésszámra vonatkozó becslés kitev˝oje megn˝o)? 3.7. Definíció. Akkor mondjuk, hogy egy probléma polinomiális approximációs szkémával közelíthet˝o, ha tetsz˝olegesen kis pozitív -hoz található olyan polinomrend˝u algoritmus, mely a problémát egy multiplikatív 1 hibától eltekintve jól közelítve oldja meg. Világos, hogy ez a fogalom sokkal er˝osebb, mint ha csak egy konkrét k multiplikatív hibán belül közelíthetnénk. Az is nyilvánvaló azonban, hogy az approximációs

3. KÖZELÍTO˝ ALGORITMUSOK

102

szkéma sokkal gyengébb, mint egy polinomiális algoritmus: ha a definícióbeli -t 0-hoz közelítjük, akkor az újabb és újabb polinomrend˝u algoritmusok lépésszámigényét az input hosszának egyre nagyobb kitev˝oj˝u polinomjával lehet csak felülr˝ol becsülni. Belátható, hogy a metrikus utazó ügynök problémára nem adható polinomiális approximációs szkéma. Sok, a gyakorlatban is felmerül˝o feladatra azonban igen; ilyen például az utazó ügynök feladat egy további megszorítása is, amelyr˝ol a következ˝o szakaszban lesz szó.

3.3. Az euklidészi utazó ügynök probléma Az utazó ügynök problémának ebben a változatában az adott teljes gráf pontjai ténylegesen a sík pontjainak felelnek meg, és az élsúlyok a pontpárok közötti távolságok. Mivel a valódi távolságok kielégítik a háromszög-egyenl˝otlenséget, ez nyilván speciális esete a metrikus változatnak. Az el˝oz˝o pont végén említettük, hogy erre a feladatra létezik polinomiális approximációs szkéma; ennek bizonyítása megtalálható például az [5] vagy a [8] könyvben. A gyakorlatban lényegesen egyszer˝ubb, heurisztikus eljárásokat alkalmaznak; ezek egy részénél nem ismeretes (matematikailag bizonyított) fels˝o becslés a relatív hibára, a gyakorlati tapasztalat szerint azonban igen jól m˝uködnek. Néhány ilyet egy konkrét példát követve mutatunk be.

3.3.1.

Konstrukciók

El˝oször azzal foglalkozzunk, hogy lehet valamilyen „viszonylag jó” megoldáshoz jutni. 1. A legközelebbi szomszéd módszere bármely p1 pontból indítható; ha valamely i 1 indexre a pi pontban vagyunk, lépjünk a még be nem járt pontok közül a pi -hez legközelebbibe. Az utolsó pontból lépjünk vissza p1 -be. A következ˝o két módszerhez tegyük fel, hogy már van egy K körünk, amely nem halad át egy v ponton. Jelöljük N K v -vel azt a minimális költségnövekedést, amellyel v is beszúrható a körbe (valamely x y él x v v y élpárral való helyettesítésével). 2. A legközelebbi város beszúrásának módszere azt jelenti, hogy a K kör kezdetben egy pont, és azt a v0 pontot szúrjuk be, mely az N K v v K számhalmazt minimalizálja. Az eljárás akkor ér véget, ha K már egy Hamilton-kör. 3. A legtávolabbi város beszúrásának módszere azt jelenti, hogy a K kör kezdetben egy pont, és azt a v0 pontot szúrjuk be, mely az N K v v K számhalmazt maximalizálja. Az eljárás akkor ér véget, ha K már egy Hamilton-kör. Számos tapasztalat azt mutatja, hogy az els˝o módszer nem túl jó, az algoritmus hajlamos valamely sarokba bemenni, ahonnét csak nagy költség˝u élen tud kijutni. Meglep˝o, de a harmadik módszer gyakran jobbnak bizonyul a másodiknál is.

3.3. AZ EUKLIDÉSZI UTAZÓ ÜGYNÖK PROBLÉMA

3.3.2.

103

Javítások

Ha már van egy Hamilton-körünk, azt számos módszerrel javíthatjuk. 4. Keresztezés: Valamely Hamilton-kör a gráf pontjait a p1 p2

pi pi

pj pj

1

pn p1

1

sorrendben járja be. Helyettesítsük ezt a p1 p2

pi p j p j

pi

1

1

pj

pn p1

1

Hamilton-körrel, ha ezzel az összköltség csökken; álljunk meg, ha ilyen csökkenés már nem lehetséges. 5. Lin–Kernighan-módszer: Nevezzük a P

p1 p2

pi pi

pn pi

1

pontsorozatot -útnak (alakja általában egy bet˝uhöz hasonlít, és persze Hamiltonkör, ha i 1). Ebb˝ol egyrészt a H P

p1 p2

pi pn pn

1

pi

1

p1

m˝uvelettel készíthetünk Hamilton-kört, másrészt tetsz˝oleges j indexre elkészíthetjük a Pj p1 p2 pi pn pn 1 pi 1 p j -utat is. Az algoritmusnak az a lényege, hogy a P helyett a Pj -vel jelölt -utat választjuk, ha H Pj olcsóbb az eddig talált legolcsóbb Hamilton-körnél. Az alábbi táblázat els˝o oszlopa a fenti módszerek sorszámát tartalmazza, a második oszlopa azt, hogy tapasztalat szerint átlagosan az optimumnál hány százalékkal hosszabb utat szolgáltat. A 3.1. ábra egy konkrét 984 pontú feladatot mutat. Ennek a különböz˝o módszerekkel való megoldásai láthatóak a további ábrákon, a táblázat harmadik oszlopa az ábrák sorszámát, a negyedik oszlop az eredmény összhosszát tartalmazza. 1 (legközelebbi szomszéd) 2 (legközelebbi város beszúrása) 3 (legtávolabbi város beszúrása) 4 (keresztezés) 5 (Lin-Kernighan)

26 % 16 % 6% 1–2 %

3.2. ábra 3.3. ábra 3.4. ábra

3230 3522 3957

3.5. ábra

2804

Az adatokért és az ábrákért köszönettel tartozunk W. J. Cooknak, aki ezek elkészítéséhez felhasználta az általa és szerz˝otársai által írt Concorde programcsomagot. Err˝ol és az utazó ügynök feladatról b˝ovebb információ olvasható a http://www.tsp.gatech.edu oldalon. Innen az is kiderül, hogy a 3.1. ábra feladatának optimumértéke 2797 (így a 3.5. ábrán látható megoldás ennél csak 0.25 %-kal rosszabb). Végezetül hangsúlyozzuk, hogy a táblázat második oszlopában látható becslések nem matematikailag bizonyított, hanem gyakorlatban kapott adatok.

104

3. KÖZELÍTO˝ ALGORITMUSOK

3.1. ábra

3.2. ábra

3.3. AZ EUKLIDÉSZI UTAZÓ ÜGYNÖK PROBLÉMA

3.3. ábra

3.4. ábra

105

106

3. KÖZELÍTO˝ ALGORITMUSOK

3.5. ábra

3.4. Ajánlott irodalom [1] W. J. Cook, W. H. Cunningham , W. R. Pulleyblank, A. Schrijver, 1998. Combinatorial Optimization, Wiley, New York (különösen a 7. fejezet). [2] T. H. Cormen, C. E. Leiserson, R. L. Rivest, 1997. Algoritmusok, M˝uszaki Könyvkiadó, Budapest (különösen a 37. fejezet). [3] Gács P., Lovász L. Algoritmusok, M˝uszaki Könyvkiadó, Budapest, 1978, majd Tankönyvkiadó, Budapest, 1991 (különösen az 1.4 fejezet). [4] Imreh B., 2000. Kombinatorikus optimalizálás, Novadat Kiadó, Gy˝or (különösen a 10. fejezet). [5] B. Korte, J. Vygen, 2000. Combinatorial Optimization: Theory and Algorithms, Springer, Berlin (különösen a 16. és a 21. fejezetek). [6] C. H. Papadimitriou, 1994. Computational Complexity, Addison-Wesley, Reading (különösen a 13. fejezet). [7] Rónyai L., Ivanyos G., Szabó R., 1999. Algoritmusok, Typotex, Budapest (különösen a 9.3 fejezet). [8] V. Vazirani, 2001. Approximation algorithms, Springer, Berlin.

4. fejezet

Ütemezési algoritmusok 4.1. Alapfogalmak, problématípusok Ütemezési problémákban, általánosan fogalmazva, a cél bizonyos tevékenységek elvégzésére olyan id˝obeosztást találni, amely figyelembe veszi a rendelkezésre álló er˝oforrásokat, és valamilyen adott szempont szerint optimális. Ilyen típusú kérdések számtalan helyen felbukkannak. Egy többfogásos ebéd elkészítésekor például néha nem is olyan egyszer˝u eldönteni, hogy mikor mi kerüljön a t˝uzhelyre, ha a receptek el˝oírásait be akarjuk tartani és id˝ore el akarunk készülni. Ennél komolyabb ütemezési feladatot kellett megoldani a Mars megismerését célzó Viking program során, amely 20 000 ember munkájának az összehangolását igényelte. Nem meglep˝o, hogy több ezer különböz˝o ütemezési feladatról találhatunk cikkeket a szakirodalomban, és ez a szám egyre n˝o. Ebben a rövid fejezetben tehát legfeljebb az lehet a célunk, hogy a legegyszer˝ubb és legfontosabb problémák közül néhányat kiválasztva bemutassuk az ütemezési feladatok modellezésének alapfogalmait és néhány esetben ismertessük a feladat megoldására kidolgozott hatékony (közelít˝o) algoritmusokat. Ütemezési problémákban munkák (job) elvégzését ütemezzük gépeken (machine), bizonyos feltételek mellett, egy adott célfüggvényt optimalizálva. A feladat tehát egy ütemezés (schedule) meghatározása, amely megmondja, hogy melyik munkát mikor és melyik gépen végezzük. (A konkrét esetekben a gépeknek, illetve munkáknak megfelelhetnek például szerel˝ok és az elvégzend˝o javítási feladatok, számítógépek és rajtuk futtatandó programok stb.) Jelölje az elvégzend˝o munkák halmazát J1 Jn . Minden Ji munkához tartozik egy pi megmunkálási id˝o (processing time). Ennyi id˝ot vesz igénybe a munka elvégzése. Fel fogjuk tenni, hogy minden munkát megszakítás nélkül, egyhuzamban kell elvégezni, ugyanazon a gépen, amelyen megkezdtük. A Ji munkákhoz további paraméterek is tartozhatnak: az ri rendelkezésre állási id˝o (release time) jelöli azt a legkorábbi id˝opillanatot, amikor a munka elvégzése megkezdhet˝o. A munkákat néha wi súlyozással látjuk el, melyek a munkák fontos107

108

4. ÜTEMEZÉSI ALGORITMUSOK

ságát tükrözik. Definiálhatunk di határid˝ot (due date) is, amely el˝ott a Ji munka elvégzése be kell fejez˝odjön. Minden S ütemezést˝ol megköveteljük, hogy minden gép egy id˝oben legfeljebb egy munkán dolgozzon, és minden munkát egy id˝oben legfeljebb egy gépen végezzünk. Ha egy gép áll rendelkezésre, akkor egy S ütemezés minden Ji munkához meghatározza azt a pi hosszúságú id˝ointervallumot, amely alatt a gép a Ji munkán dolgozik. Több gép esetén azt is meg kell határozni, hogy melyik gép végezze el a munkát. Az S ütemezésben CiS fogja jelölni a Ji munka befejezési idejét (completion time), azt az id˝opillanatot, amikor a Ji elkészül. Ha több gép is rendelkezésre áll, mindig fel fogjuk tenni, hogy a gépek teljesen egyformák (parallel machines). További megkötés lehet az, hogy egy Ji munkát csak akkor lehet elkezdeni, ha a munkák valamely meghatározott részét már befejeztük. Az ilyen típusú feltételeket a munkák halmazán értelmezett részbenrendezéssel (vagy, ekvivalens módon, egy D aciklikus irányított gráffal) adhatjuk meg. Ebben az esetben azt mondjuk, hogy megel˝ozési feltételek (precedence constraints) adottak. Az optimalizálni kívánt célfüggvények közül a teljes átfutási id˝o (makespan), S azaz a Cmax maxi CiS érték, vagy az átlagos átfutási id˝o, azaz ni 1 CiS n minimalizálásával fogunk foglalkozni. Az utóbbi persze ekvivalens a ni 1 CiS minimalizálásával. Más célfüggvények is elképzelhet˝ok – például a maximális késés, azaz maxi CiS di minimalizálása. Már az eddig leírt változatok is számos különböz˝o ütemezési problémát határoznak meg. A problémák tömör és világos leírására az alábbi jelölési rendszert vezették be, melyet mi is használni fogunk. Minden problémát egy rendezett hármas jelöl, ahol jelöli a gépek számára és típusára vonatkozó megkötéseket, tartalmazza az egyéb feltételeket, és adja meg a célfüggvényt. Egygépes feladatnál az els˝o mez˝oben 1 áll. Több gép esetén az els˝o mez˝oben P áll, illetve, ha a gépek száma egy rögzített m egész, akkor Pm. A feltételek halmaza a második mez˝oben egy (esetleg üres) részhalmaza az alábbiaknak: p j 1, r j , prec. Ezek jelentése: minden megmunkálási id˝o egységnyi, lehetnek különböz˝o rendelkezésre állási id˝ok, illetve vannak megel˝ozési feltételek. A célfüggvények tömör jelölései: Cmax és C j .

4.2. Egygépes ütemezések A legegyszer˝ubb feladat az 1 Cmax . Ekkor persze pontosan azok az optimális ütemezések, amelyekben nincs állásid˝o, a gép folyamatosan dolgozik. A munkák sorrendje tetsz˝oleges. Az optimum értéke n1 pi . Könny˝u meggondolni, hogy az 1 prec Cmax feladatra is készíthet˝o olyan ütemezés, amelyben a gép folyamatosan dolgozik, és amely így optimális. Ekkor tehát adott egy D irányított gráf, amely a megel˝ozési feltételeket adja meg. Ha van D-ben irányított út a Jk -ból a Ji -be, akkor a Ji munka csak a Jk után kerülhet a gépre. A sorrend tehát lényeges. A jó sorrend éppen a D topologikus sorrendje lesz (ilyen van, hiszen a D-ben nincs irányított kör), melyet lineáris id˝oben megkaphatunk.

4.3. ÜTEMEZÉS PÁRHUZAMOS GÉPEKEN

109

Az el˝oz˝o esethez hasonlóan egygépes ütemezések esetén a feladat gyakran arra a kérdésre sz˝ukül, hogy a munkákat milyen sorrendben hajtsuk végre. Ebbe a csoportba tartozik az 1 C j feladat is, melyben a befejezési id˝ok összegét akarjuk minimalizálni. A célunk tehát az, hogy a munkákat egy gépen végezzük el, azaz minden Ji munkához rendeljünk egy pi hosszú id˝ointervallumot úgy, hogy ezek az intervallumok páronként diszjunktak legyenek, és a befejezési id˝ok összege minimális legyen. Világos, hogy egy optimális megoldásban a gép folyamatosan foglalt, azaz nincs szükségtelen állásid˝o. A kérdés tehát az, milyen sorrendben kövessék egymást a munkák. Természetes ötlet a sokáig tartó munkákat kés˝obbre tenni, és így az ezek által késleltetett munkák számát csökkenteni. Ezt valósítja meg a következ˝o: SPT sorrend (shortest processing time) a munkák a megmunkálási id˝ok szerint nemcsökken˝o sorrendben követik egymást. 4.1. Tétel. A munkák SPT sorrendben, állásid˝o nélküli ütemezése optimális megoldást ad az 1 C j feladatra. Bizonyítás: Tekintsünk egy optimális ütemezést. Ha ebben a munkák nem SPT sorrend szerint követik egymást, akkor létezik egy olyan Ji Jk pár, amelyre teljesül, hogy a Ji munka után közvetlenül a Jk munka kerül a gépre, de pi pk . Vizsgáljuk meg azt az ütemezést, amelyet a Ji és Jk munkák felcserélésével kapunk. A befejezési id˝ok közül csak Ci és Ck változik, mégpedig (ha az eredeti sorrendben a Ji munka elvégzése a t id˝opontban kezd˝odött, akkor) úgy, hogy t pi helyett t pk pi és t pi pk helyett t pk szerepel. Mivel pi pk , a felcserélés után C j csökken. Ez ellentmond az ütemezés optimalitásának. Tehát minden optimális ütemezésben SPT sorrendben követik egymást a munkák. A tétel ezután rögtön következik abból a megfigyelésb˝ol, hogy minden SPT sorrend szerinti ütemezésre a célfüggvény értéke ugyanaz. Ha minden j munkához adott egy w j súly, és célunk a súlyozott befejezési id˝ok összegének minimalizálása, akkor célszer˝unek t˝unik a munkákat a w j p j értékek szerint nemnövekv˝o sorrendbe állítani. Ez valóban optimális ütemezéshez vezet. Ennek igazolása hasonlóan történik, ezért az olvasóra hagyjuk. 4.2. Tétel. A munkák w j p j értékek szerint nemnövekv˝o sorrendben, állásid˝o nélküli ütemezése optimális megoldást ad az 1 w jC j feladatra.

4.3. Ütemezés párhuzamos gépeken A többgépes ütemezések közül csak a legegyszer˝ubb változatot, a párhuzamos gépek esetét vizsgáljuk. A egygépes esethez képest a különbség mindössze annyi, hogy ezúttal m teljesen egyforma gép áll rendelkezésre. Egy munka egy id˝oben továbbra is legfeljebb egy gépen futhat, és egy gép egy id˝oben legfeljebb egy munkán dolgozhat. A feladat alapváltozatát, melyben a teljes átfutási id˝o minimalizálása a

4. ÜTEMEZÉSI ALGORITMUSOK

110

cél, P Cmax jelöli. Amint az könnyen igazolható, ez a feladat már két gép esetén is NP-nehéz. Az NP-teljes PARTICIO problémában az input n pozitív egész szám, a1 a2 an , és a kérdés az, hogy a számok feloszthatók-e két csoportba úgy, hogy a csoportokban a számok összege megegyezzék. 4.3. Tétel. A P2 Cmax feladat NP-nehéz. Bizonyítás: A PARTICIO feladat egy a1 a2 an példányához definiáljuk a megai munkálási id˝oket a p j a j , 1 j n értékadással, és legyen b 2 . A tétel rögtön következik abból a megfigyelésb˝ol, hogy az így kapott n munka esetén a P2 Cmax feladat Cmax optimális megoldására Cmax b pontosan akkor áll, ha a PARTICIO feladat adott példányának van megoldása. A célunk tehát minél jobb approximációs algoritmusok kidolgozása lesz. Kezdjük a P Cmax feladat vizsgálatát két kézenfekv˝o alsó korlát meghatározásával. Jelölje Cmax az optimális teljes átfutási id˝ot. Ekkor: n

Cmax

( )

pj m 1

max p j

Cmax

j

(

)

Az els˝o korlát azt mondja, hogy a teljes átfutási id˝o legalább a megmunkálási id˝ok összegének átlaga, míg a másik szerint ez legalább annyi, mint a leghosszabb munka megmunkálási ideje.

4.3.1.

Listás ütemezés a P Cmax feladatra

Az ütemezéselmélet egyik legels˝o közelít˝o algoritmusa, melyre az approximációs faktort is pontosan meghatározták, a P Cmax feladatra adott úgynevezett „listás ütemezés” volt, mely R. Graham nevéhez f˝uz˝odik. Listás ütemez˝o algoritmus (LS): (i) Rögzítsük a munkák egy sorrendjét. (ii) Ütemezzük a munkákat úgy, hogy amint egy gép felszabadul, rögtön kezdje meg a sorrendben legelöl állót azon munkák közül, amelyeket még egyik géphez sem rendeltünk (ha van ilyen). Az algoritmus során tehát minden olyan id˝opillanatban, amikor egy (vagy több) gép szabaddá válik (azaz a t 0 id˝oben és kés˝obb minden olyan id˝opillanatban, amikor egy munka befejez˝odik), a sorrendben következ˝o munkát a(z egyik) szabad gépen azonnal megkezdjük. Ha több szabad gép van, akkor válasszuk például a legkisebb index˝ut. Világos, hogy az így kapott ütemezésben nem lesz fölösleges állásid˝o (azaz egy gép csak akkor állhat, ha már minden munka elvégzése megkezd˝odött). 4.4. Tétel. Az LS algoritmus 2

1 m

-approximációs a P Cmax feladatra.

4.3. ÜTEMEZÉS PÁRHUZAMOS GÉPEKEN

111

Bizonyítás: Könnyen látható, hogy a listás ütemezés polinomid˝oben elkészíthet˝o. Az approximációs faktor igazolásához legyen Jk az utoljára végz˝od˝o munka és legyen t a Jk megkezdésének ideje. Ezzel a jelöléssel Cmax t pk . Mivel minden gép folyamatosan foglalt legalább a t id˝opillanatig (különben az LS algoritmus szabálya szerint a Jk munkához valamely gép már el˝obb hozzákezdett volna), így 1 t p j . Így ( ) és ( ) miatt m j k

Cmax

t

pk

1 m

pj j k

pk

1 m Cmax

1

pj 1

1 m

1 Cmax m

pk 2

1 Cmax m

A közelít˝o algoritmusokról szóló fejezetben több példát láttunk olyan algoritmusokra, melyek bizonyíthatóan legfeljebb a minimum k-szorosát produkálják (ahol k 1). A most látott tétel is ebbe a csoportba tartozik. Megjegyezzük, hogy a fenti algoritmus on-line algoritmusként is m˝uködik. Nem nehéz végiggondolni, hogy az LS algoritmus approximációs faktora a fenti tételben írtnál tovább nem javítható. Az algoritmus egy apró módosításával azonban jelent˝os javulást lehet elérni. Célszer˝unek t˝unik a hosszú munkákkal kezdeni, hiszen ezzel elkerülhetjük azt, hogy az utolsónak leálló gép sokáig fusson egyedül. Erre szolgál az LPT (longest processing time) sorrend. LPT sorrend: rendezzük a munkákat nemnövekv˝o sorba a p j értékek szerint. Az LPT sorrend szerinti listás ütemezésben az LS algoritmus (i) lépésében az LPT sorrendet rögzítjük. 4.5. Tétel. Az LPT sorrend szerinti listás ütemezés 43 -approximációs algoritmus a P Cmax feladatra. Így például egy javítóm˝uhelyben érdemes reggel a legnagyobb id˝oigény˝u feladatokkal kezdeni, vagy egy leíró irodában a leghosszabb kéziratokkal. Érdemes példát mutatni arra is, hogy a listás ütemezés „mohó” eljárása másfajta ütemezési feladatokban igen rossz megoldáshoz is vezethet. Tegyük fel, hogy két gépünk van és két munkát szeretnénk elvégezni, melyek megmunkálási ideje egységnyi, a két gép azonban nem egyforma: az els˝o gép sebessége s1 1, a másiké pedig s2 x 2. Ekkor az LS algoritmus (akármilyen ügyesen választott sorrend szerint hajtjuk is végre) egy-egy munkát tesz a két gépre és a Cmax 1 megoldáshoz vezet. Ugyanakkor ha mindkét munkát a második gépen végezzük el egymás után, akkor a Cmax 2 x 1 értéket kapjuk. Így ha x nagy, az x 2 approximációs faktorunk tetsz˝olegesen nagy értékeket is felvehet.

4. ÜTEMEZÉSI ALGORITMUSOK

112

4.3.2.

P prec Cmax

A P prec Cmax feladatban olyan ütemezést kell készítenünk, amely egy, a munkák halmazán definiált D A aciklikus irányított gráffal adott megel˝ozési feltételeknek is eleget tesz. Az LS algoritmus természetes kiterjesztése erre az általánosabb feladatra az alábbi: a (ii) lépésben a szabaddá váló gép az abban a pillanatban elérhet˝o munkák közül válassza a sorrendben legelöl állót. Itt a Ji munkát akkor nevezzük elérhet˝onek a t id˝opillanatban, ha még egyik géphez sem rendeltük hozzá, és minden olyan Jk munka, amelyre Jk Ji , legkés˝obb a t id˝opillanatban véget ért. Vegyük észre, hogy ez a korábbi LS algoritmust speciális esetként tartalmazza. Az LS algoritmus megel˝ozési feltételek esetén is olyan ütemezést ad, melynek teljes átfutási ideje (tetsz˝oleges sorrend esetén) az optimum kétszerese alatt marad. 4.6. Tétel. Az LS algoritmus 2 adatra.

1 m

-approximációs algoritmus a P prec Cmax fel-

A fejezet további részeinek megismerése el˝ott érdemes elolvasni a függelékben található történetet, mely a listás ütemezés alkalmazására és az ezzel kapcsolatos meglep˝o jelenségekre mutat példát. Felvet˝odhet a gondolat, hogy alkalmas sorrend választása mellett az LS algoritmus approximációs faktora tovább javítható. Az egyik lehet˝oség a munkákhoz egy további paramétert, a munka szintjét kiszámolni, és ezt használva definiálni a sorrendet. Tekintsük ehhez a megel˝ozési feltételeket leíró D irányított gráfot. Ha bármely irányított út mentén összeadjuk az utat alkotó pontoknak megfelel˝o megmunkálási id˝oket, akkor alsó becslést kapunk az optimális átfutási id˝ore. Ez motiválja, hogy a munka szintje legyen a D-ben az adott munkának megfelel˝o pontból kiinduló irányított utak mentén vett megmunkálási id˝ok összegének maximuma. Ezeket az értékeket gyorsan kiszámolhatjuk a munkákat topologikus sorrendbe állítva, majd rekurzívan a nyel˝okt˝ol visszafele haladva. A függelékben megismert kerékpár-összeszerel˝o üzem precedenciáit a 4.1. ábra gráfja szemlélteti. Az egyes munkák alá két számot írtunk: el˝oször a munka megmunkálási idejét, majd zárójelben a szintjét. Célszer˝unek t˝unik a nagyobb szint˝u munkákat el˝obb elvégezni. Ez az LS algoritmus azon változatához vezet, melyben az (i) lépés során a munkákat szintek szerint nemnövekv˝o sorba állítjuk. A függelékben olvasható feladatra ezzel az algoritmussal a 4.2. ábrán látható megoldás adódik. A történetben szerepl˝o m˝uvezet˝o ezzel megvalósíthatta volna a 32 perces összid˝ot, ami optimális, hiszen egyik gép sem áll közben. Általában azonban ez a változat sem vezet jobb közelítéshez. Tekintsük például azt az esetet, amelyben 4 gép és 12 munka adott a 4.3. ábrán látható megel˝ozési feltételekkel. Erre a szinteken alapuló sorrenddel végrehajtott LS algoritmus a 4.4a ábrán látható ütemezéshez vezet, ami közel kétszer olyan sokáig tart, mint a 4.4b ábrán látható. A 4.6. tétel alapján azonban olyan példa nem készíthet˝o, melynek az összid˝oigénye az optimum kétszerese lenne.

4.4. KÉT MEGOLDOTT ESET

113

FW 7(25)

FP

FA

7(25)

18(18)

BW 7(25)

GC

LP

DE

3(28)

8(8)

2(30)

CW

CR

RP

2(12)

2(10)

8(8)

4.1. ábra Assembler 1

7

7

2

8

8

FW

BW

CR

LP

RP

Assembler 2 DE GC 2

3

FP

CW

FA

7

2

18

32 finishing time

4.2. ábra

4.4. Két megoldott eset egységnyi hosszú munkákkal A P prec Cmax feladat érdekes speciális esete a P prec p j 1 Cmax feladat, amelyben minden megmunkálási id˝o egységnyi. Ez a speciális eset is NP-nehéz, további megkötéseket téve azonban polinomid˝oben megoldható feladatokhoz juthatunk. Megjegyezzük, hogy a P prec p j 1 Cmax feladat bonyolultsága nem ismert abban az esetben, ha a gépek száma rögzített (azaz nem része az inputnak). Ez a kérdés az m 3 esetben is megoldatlan. Az els˝o ilyen jól kezelhet˝o változat a P prec p j 1 Cmax feladatnak az a speciális esete, amelyben a megel˝ozési feltételeknek megfelel˝o D A irányított gráf egy s gyöker˝u F be-feny˝o (in-tree). Erre az esetre az alábbi algoritmus ad optimális megoldást. Legyen a gépek száma m. Hu algoritmusa (i) Határozzuk meg minden j munkához az F-ben a j-t˝ol az s-ig vezet˝o út l j hosszát (azaz pontjainak számát). Rendezzük a munkákat az l j értékek (amelyek éppen a már definiált „szintek” lesznek) szerint nemnövekv˝o sorrendbe. (ii) Ütemezzük a munkákat az (i) lépésben készített sorrend szerinti listás ütemezéssel.

4. ÜTEMEZÉSI ALGORITMUSOK

114

B 1(1)

C

H

1(1)

3(13)

D

I

1(1)

A

3(13)

L

E

1(14)

J

10(10)

10(10)

3(13)

F

K

10(10)

3(13)

G 10(10)

4.3. ábra A H 1 3

I 3 E 10 F 10 G 10

J 3

K 3 B 1 C 1 D 1

4.4a ábra

L 10

A 1 B 1 C 1 D 1

H 3 I 3 J 3 K 3

E 10 F 10 G 10 L 10

4.4b ábra

Mivel minden munka egységnyi ideig tart, az algoritmus minden munkát egy t t 1 id˝ointervallumhoz rendel, valamely t nemnegatív egészre. (Könnyen látszik, hogy minden optimális ütemezés ilyen egész kezd˝opontú intervallumokat használ.) Másképpen fogalmazva a (ii) lépést azt mondhatjuk, hogy az algoritmus a t t 1 id˝oben úgy ütemez, hogy megvizsgálja a t id˝opillanatban elérhet˝o munkákat (jelölje ezek halmazát Lt ), majd ezekb˝ol min m Lt darabot egyesével a gépekhez rendel úgy, hogy els˝obbséget ad a nagyobb l j érték˝u munkáknak. El˝ofordulhat, hogy néhány gépnek így nem jut munka, az összes gép azonban nem állhat a t t 1 intervallumban, hiszen az Lt halmaz nem lehet üres (mindaddig, amíg van el nem végzett munka). 4.7. Tétel. Hu algoritmusa optimális megoldást ad a P in-tree p j adatra.

1 Cmax fel-

Az eljárást 17 munka és 3 gép esetén a 4.5. ábrán szemléltetjük. A most látott feladatosztálynál nem volt megkötés a gépek számára, viszont a precedenciafeltételek gráfja nem lehetett tetsz˝oleges. A másik jól kezelhet˝o esetben

4.4. KÉT MEGOLDOTT ESET

115

A

F

I

O

6

5

4

2

B

L

Q

6

3

1

C

G

J

P

6

5

4

2

D

M

6

3

E

H

K

N

6

5

4

3

A DG J LP Q B E H KM C F I NO 4.5. ábra a helyzet fordított. Legyen most a megel˝ozési feltételeket leíró D (aciklikus) irányított gráf tetsz˝oleges, a gépek száma viszont legyen 2. Ez a P2 prec p j 1 Cmax feladat. Coffman és Graham algoritmusa (i) Végezzünk tranzitív redukciót a D irányított gráfon, azaz minden olyan esetben, ahol az A-ból C-be men˝o él benne van D-ben, de érvényes az A B és B C feltétel is valamely B-re, az AC élt töröljük az irányított gráfból. Ez nem változtat a megel˝ozési feltételeken, de csökkenti D éleinek számát. (ii) Osszuk csoportokra a redukált gráf pontjait „jobbról balra” haladva úgy, hogy az els˝o csoportban legyenek azok a pontok, melyek ki-foka 0, a második csoportban azok, melyek ki-foka 0-vá válik, ha elhagyjuk az els˝o csoport pontjait stb. Ezután az els˝o csoport pontjait számozzuk meg tetsz˝olegesen 1-t˝ol k1 -ig. Ha már a p-edik csoport pontjainak a számozását (k p 1 1-t˝ol k p -ig) ismerjük, akkor a p 1 -edik csoport pontjait az alábbi módon számozzuk. El˝oször minden ilyen pont mellé odaírjuk csökken˝o sorrendben azon pontok sorszámát, amelyekbe bel˝olük él vezet. Ezután ezeknek a számsorozatoknak a nemcsökken˝o lexikografikus sorrendje jelöli ki k p 1 sorszámokat. a kp 1 kp 2 (iii) Ezek után az algoritmus a fenti sorszámok szerint csökken˝o sorrendbe rakja a munkákat, majd ezzel a rögzített sorrenddel listásan ütemez.

4. ÜTEMEZÉSI ALGORITMUSOK

116 5

D 10

6

4

1

A

E

G

H

(7,6,5)

7

F 9

2

B

I

(7,6,3,2) 8

3

J

C (7,6,3,2)

4.6. ábra Például a 4.6. ábra gráfja a tranzitív redukció és a csoportokra osztás után a 4. csoport számozását szemlélteti. Az els˝o három csoport munkáinak már meghatároztuk a sorszámát. A 4. csoportban lev˝o munkák mellé írandó számsorozatok A 7 6 5 , B 7 6 3 2 , C 7 6 3 2 . A lexikografikus sorrend miatt B és C kapja a 8. és 9., míg A a 10. sorszámot. A jelen példában a 4.7a ábrán látható ütemezéshez jutunk, melyben 5 id˝oegység alatt végzünk. Ez optimális. Ha a (iii) lépésben tetsz˝olegesen választott sorrenddel (vagy például a korábban definiált szintek szerinti sorrenddel) hajtunk végre listás ütemezést, akkor az A, B, C feladatok közül lehet, hogy a B C párral kezdtünk volna (hisz mindháromból ugyanolyan hosszú a leghosszabb irányított út), és akkor a 4.7b ábrán látható, eggyel hosszabb ütemezést kapnánk. A (ii) lépésben megadott sorrend azonban optimális megoldáshoz vezet.

AC F G I B DE J H 4.7a ábra

B A DF G H C I E J 4.7b ábra

4.8. Tétel. Coffman és Graham algoritmusa optimális megoldást ad a P2 prec p j 1 Cmax feladatra. Több más, szintén optimális megoldást adó, polinom lépésszámú algoritmus is ismert erre a feladatra. A Coffman–Graham algoritmus talán a legszemléletesebb: nemcsak azt veszi figyelembe, hogy milyen hosszú irányított utak indulnak ki egy pontból, hanem azt is, hogy azokon az utakon milyen nagy sorszámú (tehát minél hamarabb elvégzend˝o) munkák vannak. A legels˝o polinomidej˝u algoritmust erre a feladatra M. Fujii, T. Kasami és K. Ninomiya adták (1969), azóta már közel lineáris

4.6. AJÁNLOTT IRODALOM

117

idej˝u algoritmus is ismert (H. Gabow, 1982). Megemlítjük, hogy ha a megmunkálási id˝o 1 vagy 2 egység is lehet, a feladat már NP-nehéz.

4.5. Ládapakolás Az eddig vizsgált feladatokban feltettük, hogy a gépek száma adott, és általában a teljes átfutási id˝ot kívántuk minimalizálni. Gyakran a fordított problémával találkozunk: legalább hány gépre van szükség, ha az átfutási id˝o nem léphet túl egy adott határt? Ha például egy vízvezeték-szerel˝onek adott l1 l2 hosszúságú csövekre van szüksége, hány darab L hosszú szabványos csövet kell vennie, hogy azokat alkalmasan felvágva minden kívánt hosszúságot megkapjon (és persze minimális legyen a felhasználhatatlan maradék)? Egy papírgyári hengersor csak L szélesség˝u tekercseket képes gyártani – mi a teend˝o, ha különböz˝o l1 l2 szélesség˝u tekercsekre kapnak megrendelést? Elképzelhet˝o az is, hogy egy film közben L hosszú reklámszünetek vannak, és ezekbe kell „bevágni” adott l1 l2 hosszú reklámokat . . . Könny˝u felismerni, hogy itt a korábban már tanult NP-nehéz ládapakolási problémához jutunk, melyben minél kevesebb, egyformán L kapacitású ládába kell l1 l2 ln nagyságú tárgyakat pakolnunk. Röviden emlékeztetünk két jól ismert közelít˝o algoritmusra. Az els˝o egy természetes „mohó” eljárást alkalmaz: a tárgyakat egyesével pakoljuk be a ládákba, a következ˝ot mindig a legels˝o olyanba, amelybe még befér. Ha ilyen nincs (és csak ekkor), új ládát kezdünk meg. Ezt angol neve alapján FF(First-Fit) algoritmusnak szokás nevezni. 4.9. Tétel. (J. D. Ullman, 1973) Ha az elképzelhet˝o minimális ládaszám k, akkor az FF-algoritmus által igényelt ládák száma 17 10 k 2. Ez a multiplikatív konstans nem javítható, ismeretesek olyan példák, ahol az optimumnál tényleg 70 %-kal több ládát használ fel az FF algoritmus. Ezekben jellemz˝o módon az a baj, hogy a kés˝on érkez˝o feladatok között is lehetnek viszonylag nagyok, melyek miatt mindig új ládát kell kezdeni. Ezt elkerülhetjük, ha a fenti algoritmusban el˝oször csökken˝o sorrendbe rendezzük a feladatokat és a legnagyobbak elhelyezésével kezdünk. Ez az FFD- (First-Fit-Decreasing) algoritmus. 4.10. Tétel. (D. S. Johnson, 1974) Az el˝oz˝o tétel jelöléseivel az FFD-algoritmus által igényelt ládák száma 11 9 k 4. Ezzel tehát a legrosszabb esetben a veszteséget 70 %-ról kb. 22 %-ra lehet leszorítani.

4.6. Ajánlott irodalom [1] J. Blazewich, K. H. Ecker, E. Pesch, G. Schmidt, J. Weglarz, 1996. Scheduling Computer and Manufacturing Processes, Springer, Berlin.

118

4. ÜTEMEZÉSI ALGORITMUSOK

[2] P. Brucker, 2001. Scheduling algorithms, Springer, Berlin. [3] R. L. Graham, E. L. Lawler, J. K. Lenstra, A. H. G. Rinnooy Kan, 1979. Optimization and approximation in deterministic sequencing and scheduling: a survey. In: P. L. Hammer, E. L. Johnson és B. Korte (szerk.) Discrete Optimization II. North-Holland, Amsterdam, 287–326. [4] Imreh B., 2000. Kombinatorikus optimalizálás, Novadat Kiadó, Gy˝or (különösen a 13. fejezet). [5] E. L. Lawler, J. K. Lenstra, A. H. G. Rinnooy Kan, D. B. Shmoys, 1993. Sequencing and scheduling: Algorithms and complexity. In: S. C. Graves, A. H. G. Rinnooy Kan, P. H. Zipkin (szerk.) Handbooks in Operations Research and Management Science, Vol. 4. North-Holland, Amsterdam, 445–522. [6] M. Pinedo, 2002. Scheduling: Theory, Algoritmhs, and Systems, Prentice Hall. A különböz˝o ütemezési feladatok bonyolultságának felsorolása és további hasznos információk (például nyitott kérdések, részletes irodalomjegyzék) találhatók itt: http://www.mathematik.uni-osnabrueck.de/research/OR/class/

4.7. Függelék Az alábbi történet Ronald L. Grahamt˝ol származik: 1 Things had not been going at all well in the assembly section of the Acme Bicycle Company. For the past six months, the section had consistently failed to meet its quota and heads were beginning to roll. As newly appointed foreman of the assembly section, you have been brought on to remedy this sad state of affairs. You realize that this is your big chance to catch the eye of the upper management, so the first day on the job you roll up your sleeves and begin finding out everything you can about what goes on in the section. The first thing you learn is that the overall process of assembling a bicycle is usually broken up into a number of specific smaller jobs: FP - Frame preparation which includes installation of the front fork and fenders. FW - Mounting and aligning front wheel. BW - Mounting and aligning back wheel. DE - Attaching the derailleur to the frame. GC - Installing the gear cluster. CW - Attaching the chain wheel to the crank. CR - Attaching the crank and chain wheel to the frame. RP - Mounting right pedal and toe clip. LP - Mounting left pedal and toe clip. FA - Final attachments which includes mounting and adjusting handlebars, seat, brakes, etc. 1 R. L. Graham, 1978. Combinatorial scheduling theory. In: Lynn Arthur Steen (szerk.) Mathematics Today: Twelve Informal Essays, Springer, New York, 183–211. c Springer, 1978, a jogtulajdonosok engedélyével.

4.7. FÜGGELÉK

119

The Acme Bicycle 9

11

8 10

29

12 28

38 23

30

37

7

33

31 6

25

38

21

15 5

35 24

27

14 18 16

34

36

4 32

3

22

26 2

17 13

1

20

19

Key to Bicycle Parts: 1. Chainwheel 2. Pedal 3. Chain 4. Rear derailleur 5. Front derailleur 6. Caliper brake 7. Brake lever 8. Brake cable 9. Handlebars 10. Handlebar stem 11. Seat (saddle) 12. Seat post 13. Quick−release skewer (for instant wheel removal) 14. Bottom bracket 15. Gear−shift lever for rear derailleur 16. Freewheel gear cluster 17. Rim 18. Spoke 19. Valve

20. Tire 21. Hub (high−flange type) 22. Chainstay 23. Lug 24. Fender 25. Fork crown 26. Fork 27. Wheel dropout 28. Seat cluster lug 29. Seat stay 30. Seat tube 31. Steering head 32. Tension roller, rear derailleur 33. Top tube 34. Fender brace 35. Down tube 36. Cotterless crank 37. Rear drop out 38. Headset (top and bottom)

You also learn that your recently departed predecessor had collected reams of data on how long each of these various jobs takes a trained assembler to perform, which he had conveniently summarized in the following table: Job: Time:

FP 7

FW 7

BW 7

DE 2

GC 3

CW 2

CR 2

RP 8

LP 8

FA 18

4. ÜTEMEZÉSI ALGORITMUSOK

120

Because of space and equipment constraints in the shop, the 20 assemblers in the section are usually paired up into 10 teams of 2 people each, with each team assembling one bicycle at a time. You make a quick calculation: One bicycle requires altogether 64 minutes of total assembly time, so a team should manage this in 32 minutes. This means that in an eight-hour day, each team could assemble 15 bicycles and with all 10 teams doing this, your quota of 150 bicycles per day can be met. You can already taste your next promotion. Your enthusiasm dwindles considerably, however, when you realize that bicycles can’t be put together in a random order. Certain jobs must be done before certain others. For example, it is extremely awkward to mount the front fork to the frame of a bicycle if you have first already attached the handlebars to the fork! Similarly, the crank must be mounted on the frame before the pedals can be attached. After lengthy discussions with several of the experienced assemblers, you prepare the following chart showing which jobs must precede which others during assembly. must be preceded by

This job FA BW GC, CW LP, RP CR

These jobs FP, FW, BW, GC, DE GC, DE DE CR, CW, GC CW

In addition to these mechanical constraints on the work schedule, there are also two rules (known locally as “busy” rules) which management requires to be observed during work hours: Rule 1: Rule 2:

No assembler can be idle if there is some job he or she can be doing. Once an assembler starts a job, he must continue working on the job until it is completed.

The customary order of assembling bicycles at Acme Bicycle has always been the one shown in the schedule in Figure 4.8. The schedule shows the activity of each assembler of the team beginning at time zero and progressing to the time of completed assembly, called the finishing time, some 34 minutes later. Although this schedule obeys all the required order-of-assembly constraints given above, it allows each team to complete only slightly over 14 bicycles per day. Thus the total output of the section is just over 140 bicycles per day, well under the quota of 150. Assembler 1

7

7

8

8

FP

FW

LP

RP

Assembler 2 DE CWCR GC 2 2 2

3

BW

FA

7

18

Figure 4.8

34 finishing time

4.7. FÜGGELÉK

121

After wasting numerous pieces of paper trying out various alternative schedules with no success, you decide, in haste, to furnish all the assemblers with rented allelectric tools. This decreases the times of each of the jobs by exactly one minute, so the total time required for all the individual jobs is only 54 minutes. With a little luck, you hope it will be possible to push the output per team to nearly 18 bicycles per day. However, at the end of the first week using the rented tools, you notice that production has gone down to less than 14 bicycles per day. This seems hard to understand so you start jotting down a few possible schedules using the new reduced job times. Surprisingly, you find the best you can do is the one shown in Figure 4.9. All schedules obeying Rules 1 and 2 take at least 35 minutes for each assembled bicycle! Assembler 1

6

6

6

17

FP

FW

BW

FA

D C GC C Assembler 2 E W R 11 2 1

LP

RP

7

7

35 finishing time

Figure 4.9 So you return the rented electric tools and in desparation decide on a brute force approach: you hire 10 extra assemblers and decree that from now on, each of the 10 teams will consist of three assemblers working together to put the miserable bicycles together. You realize that you have increased labor costs by 50%, but you are determined to meet the quota or else. It only takes two days this time to decide that something is seriously wrong. Production has now dropped off to less than 13 bicycles per day for each 3-men team! Reluctantly, you again outline various schedules the teams might use. A typical one is shown in Figure 4.10. Curiously enough, you discover that every possible schedule for a 3-men team obeying Rules 1 and 2 requires 37 minutes for each assembled bicycle. You spend the next few days wondering around the halls and muttering to yourself “Where did I go wrong?” Your termination notice arrives at the end of the week. 7 Assembler 1

FP DE GC Assembler 2 2 3 CW CR Assembler 3 2

2 2

7

7

18

FW LP 8 RP

BW

FA

39 finishing time

8

Figure 4.10

5. fejezet

Megbízható hálózatok tervezése 5.1.

Hálózatok megbízhatósága

Telefon-, számítógép- vagy úthálózatok természetes módon modellezhet˝ok gráfokkal, melyekben például a telefonállomásoknak pontok, az o˝ ket összeköt˝o kábeleknek élek felelnek meg. Ilyen típusú hálózatokkal szemben az egyik alapvet˝o elvárás a megbízhatóság: néhány alkotóelem meghibásodása esetén a hálózat továbbra is maradjon „összefügg˝o”, ne sz˝unjön meg az összeköttetés a különböz˝o állomások (terminálok, városok stb.) között. A gráfmodellben a jobb megbízhatóság megfelel˝oje a többszörös összefügg˝oség: néhány pont vagy él elhagyása esetén a gráf maradjon összefügg˝o. Ebben a fejezetben a hálózatok megbízhatósági kérdései által felvetett gráfproblémákat vizsgálunk, egyúttal áttekintve a gráfok összefügg˝oségével kapcsolatos néhány fontos eredményt. A következ˝o szakaszban emlékeztetünk az alapfogalmakra, majd utána az alábbi kérdéseknek megfelel˝o gráfelméleti problémákra keresünk választ: Mennyire megbízható egy adott hálózat? Hogy készítsünk a lehet˝o legkisebb költséggel megbízható hálózatot? Hogyan növeljük egy adott hálózat megbízhatóságát? Milyen további paraméterekkel jellemezhetjük a megbízhatóságot?

5.2. Gráfok összefügg˝osége Legyen G V E egy gráf és u v V . Az u és v közötti lokális él-összefügg˝oség (lokális pont-összefügg˝oség), melyet u v ( u v ) jelöl, az u és v közti éldiszjunkt (bels˝oleg pontdiszjunkt) utak maximális száma. Menger tétele szerint u v egyenl˝o az u és v pontokat elválasztó ponthalmazok minimális fokszámával, azaz 122

˝ 5.2. GRÁFOK ÖSSZEFÜGGOSÉGE

123

uv min d X : X V u X v X . Itt d X jelöli az X fokszámát, azaz az X halmazból V X-be lép˝o élek számát. Hasonlóan, d X Y jelöli majd az X-b˝ol Y -ba men˝o élek számát, míg d v a v pont foka. Ha u és v nem szomszédosak, akkor Menger tétele szerint u v egyenl˝o az u és v pontokat szeparáló ponthalmazok minimális méretével, azaz uv

min S : S

V

uv

G

S -ben nincs u

v út

A G gráf élösszefügg˝oségi száma a G

min

u v :u v

Vu

v

érték. Hasonlóan, a G pontösszefügg˝oségi száma, G , a lokális pontösszefügg˝oségek minimuma. A gráf k-élösszefügg˝o (k-pontösszefügg˝o), ha G k ( G k) teljesül. A k 1 esetben az él, és a pontösszefügg˝oség között nincs különbség. Nagyobb k értékekre azonban lehet eltérés (ugyanakkor G G mindig érvényes). Így tehát G pontosan akkor k-élösszefügg˝o, ha minden X V ponthalmazra d X k teljesül, vagy másképp fogalmazva, ha k-nál kevesebb élt elhagyva a gráf összefügg˝o marad. Irányított gráfokra a fentiek hasonlóan definiálhatók. A k 2 eset külön figyelmet érdemel. A 2-összefügg˝o gráfok azok, amelyek a legenyhébb megbízhatósági követelménynek eleget tesznek: egy él, illetve egy pont törlése esetén összefügg˝oek maradnak. A G V E összefügg˝o gráfban az e élt, illetve a v pontot elvágó élnek (elvágó pontnak) nevezzük, ha G e (G v) nem összefügg˝o. A gráf blokk, ha nincs benne elvágó pont. Legalább hárompontú gráf tehát pontosan akkor blokk, ha 2-pontösszefügg˝o. Egy összefügg˝o gráfon belül vizsgálhatjuk annak többszörösen összefügg˝o részgráfjait, így például a blokkokat. Ezek struktúrája egyszer˝uen leírható. 5.1. Tétel. A G összefügg˝o gráf (tartalmazásra nézve) maximális blokkjai particionálják az élhalmazát. Bármely két maximális blokknak legfeljebb egy közös pontja van, továbbá a több blokkhoz tartozó pontok pontosan a gráf elvágó pontjai. A fenti tételben szerepl˝o blokkfelbontás alapján készítsük el a következ˝o gráfot: pontjai feleljenek meg G maximális blokkjainak és elvágó pontjainak. Két pontot pontosan akkor kössön össze él, ha az egyik egy maximális blokknak, a másik pedig az általa tartalmazott elvágó pontnak felel meg. Jelöljük ezt a gráfot T2 G -vel. Nem nehéz igazolni a következ˝ot. 5.2. Tétel. A T2 G gráf fa. A G gráf maximális 2-élösszefügg˝o részgráfjai a 2-komponensek. A 2-komponensek páronként diszjunktak és az elvágó élek kivételével minden él benne van valamely 2-komponensben. A 2-komponenseket egy-egy ponttá összehúzva körmentes gráfot kapunk.

124

5. MEGBÍZHATÓ HÁLÓZATOK TERVEZÉSE

5.3. Tétel. A G V E legalább 3 pontú gráf pontosan akkor 2-pontösszefügg˝o, ha (a) nincs elvágó pontja, (b) bármely két pontja rajta van egy körön, (c) bármely két A B V , A B 2 halmaz között vezet két pontdiszjunkt út, (d) bármely két éle rajta van egy körön. 5.4. Tétel. A G V E gráf pontosan akkor 2-élösszefügg˝o, ha (a) nincs elvágó éle, (b) bármely két pontja között vezet két éldiszjunkt út, (c) bármely éle benne van egy körben.

5.3. Az összefügg˝oség kiszámítása El˝oször azt vizsgáljuk, hogyan dönthet˝o el hatékonyan, hogy egy adott G VE gráf mennyire „megbízható”, azaz mennyi az él- vagy pont-összefügg˝oségi száma. Egy (esetleg irányított) gráf élösszefügg˝oségének kiszámolására kézenfekv˝o módszer a maximális folyam algoritmus használata, hiszen egy rögzített u v pontpárra a u v érték éppen az u és v közti maximális folyam értéke (abban a G-b˝ol készített hálózatban, ahol minden él kapacitása egységnyi). Így n2 (s˝ot, egyszer˝u megfigyelés, hogy n 1 is elég) folyamprobléma megoldása révén G polinomid˝oben megkapható. Hasonlóan számolhatjuk ki a gráf pont-összefügg˝oségi számát, illetve egy irányított gráf él- vagy pontösszefügg˝oségét. Nagamochi és Ibaraki mutatta meg, hogy egy irányítatlan gráf élösszefügg˝oségét folyamok használata nélkül is ki tudjuk számolni, mégpedig O mn lépésben. A gráf két pontját összehúzva a minimális vágás mérete nem csökkenhet, s˝ot, csak akkor n˝ohet, ha minden minimális vágás elválasztja az összehúzott pontokat. Így érvényes az alábbi G min u v Guv ahol Guv jelöli az u és v pontpár összehúzásával kapott gráfot. Így pontpárok ismételt összehúzásaival és a megfelel˝o u v érték kiszámolásával (mindezt n 1 -szer iterálva) a fenti képlet alapján kiszámolhatjuk a G értéket. (Ez éppen az iterációk során kapott n 1 darab u v érték minimuma lesz.) Az összehúzandó pontpárt tetsz˝olegesen választhatjuk, így elég azt megmutatni, hogy mindig létezik olyan u v pár, amelyre u v folyamok nélkül megkapható. A következ˝o sorrendezés segít ebben. AG V E gráf pontjainak egy v1 v2 vn sorrendje max-vissza sorrend, ha minden 2 i j n párra teljesül, hogy d vi Vi

1

d v j Vi

1

ahol Vl v1 v2 vl , minden 1 l n értékre. Ilyen sorrendet könny˝u készíteni, mindig csak arra ügyelve, hogy a soron következ˝o pont olyan legyen, amelyb˝ol a már sorba rakott pontokhoz a lehet˝o legtöbb él vezet.

˝ 5.3. AZ ÖSSZEFÜGGOSÉG KISZÁMÍTÁSA 5.5. Tétel. Legyen u vn vissza sorrendjében. Ekkor

1

és v

125

vn az utolsó két pont G pontjainak egy maxuv

d v

Ha tehát minden iterációban az összehúzandó párt egy max-vissza sorrend utolsó két pontjaként választjuk, a kívánt u v érték egyszer˝uen a d v fokszáma lesz. Így a következ˝o algoritmus helyesen számolja ki egy (legalább kétpontú) gráfra a G értéket. Nagamochi és Ibaraki algoritmusa 1. fázis: legyen

.

2. fázis: készítsük el a gráf pontjainak egy max-vissza sorrendjét. Ha ebben d vn , akkor legyen d vn . Ha még legalább hárompontú a gráf, húzzuk össze a sorrend utolsó két pontját, és kezdjük újra a 2. fázist. Ha már csak két pont maradt, legyen G . Nem ismert hasonló eljárás a pontösszefügg˝oség kiszámítására és irányított gráfokra sem. A következ˝o algoritmus randomizált, azaz véletlenszer˝u választásokat használ az élösszefügg˝oség meghatározására. Itt is (ezúttal szomszédos) pontpárok összehúzása történik, míg végül egy kétpontú gráf marad. Legyen az input a G V E gráf, élein egy c : E függvénnyel (ahol G egyszer˝u gráf, melyben c uv jelöli a „párhuzamos uv élek” számát). Valamely F E élhalmazra legyen cF e Fc e . Karger algoritmusa Válasszuk ki a gráf egy élét véletlenszer˝uen úgy, hogy egy uv él kiválasztásának valószín˝usége c uv c E , majd húzzuk össze a kiválasztott uv él két végpontját (a kapott hurkokat töröljük, és az esetleg keletkez˝o párhuzamos éleket a megfelel˝o c e értékek segítségével „kódoljuk”). Ezt ismételjük mindaddig, amíg végül egy kétpontú gráf marad. Legyen az output a végs˝o gráf (egyértelm˝u) vágása. 5.6. Tétel. Legyen A minimális vágás G-ben. Annak a valószín˝usége, hogy az al2 goritmus által adott megoldás éppen az A vágás lesz, legalább . nn 1 Bizonyítás: Az algoritmus pontosan akkor adja az A vágást, ha annak semelyik élét sem húzza össze. Vizsgáljuk meg azt az esetet, amikor az algoritmus éppen az i-edik élt húzta össze, és az eddig összehúzott élek egyike sem tartozik az A vágáshoz. Legyen G V E az így kapott gráf. Ekkor V n i. Mivel A minimális vágás G -ben, így a kapacitása legfeljebb a G -beli csillagok kapacitásainak átlaga,

5. MEGBÍZHATÓ HÁLÓZATOK TERVEZÉSE

126

azaz c A 2c E n i . Így annak a valószín˝usége, hogy az i 1 -edik lépésben az A vágás valamelyik élét húzza össze az algoritmus, az legfeljebb cA cE

2c E icE

n

2 n

i

Ezért annak a valószín˝usége, hogy nem A-beli élt húz össze, legalább 1

2 n

n i

2

i n

i

Annak a valószín˝usége pedig, hogy az algoritmus semelyik lépésben sem húz össze A-beli élt (és így az A vágást adja), legalább 2

n

n n

n

3 1

2 1 4 3

2 1

nn

Ha az algoritmus p valószín˝uséggel nem az A minimális vágást találja meg, akkor annak a valószín˝usége, hogy az algoritmust k-szor futtatva egyszer sem az A vágást kapjuk, éppen pk . Így a fenti tétel segítségével kiszámolhatjuk, hányszor kell lefuttatni az algoritmust, hogy az A megtalálásának valószín˝usége valamely adott értéket elérjen. Viszonylag kevés futtatás elegend˝o ahhoz, hogy szinte biztosan megkapjunk egy tetsz˝olegesen rögzített minimális vágást. 5.7. Tétel. Legyen A minimális vágás és legyen k egy pozitív egész. Ekkor annak a valószín˝usége, hogy az algoritmus nem találja meg A-t kn2 futás során, legfeljebb e 2k . Bizonyítás: Felhasználva a jól ismert 1 becslést kapjuk: 1

kn2

2 nn

1

1

x 2 n2

e

x

egyenl˝otlenséget, a következ˝o

kn2

e

2 n2

kn2

e

2k

Így például 10n2 -szer futtatva Karger algoritmusát, bármely minimális vágást legalább 1 e 20 1 1018 valószín˝uséggel megkapunk.

5.4. Minimális költségu˝ többszörösen összefügg˝o részgráfok Következ˝o kérdésünk az, hogy az „összekötend˝o” objektumok ismeretében hogyan lehet minimális költséggel olyan hálózatot készíteni, amelynek megbízhatósága elér egy el˝oírt szintet. Tehát azt kell eldöntenünk, hogy a lehetséges összeköttetések közül (melyek költségei adottak) melyeket célszer˝u megvalósítani. Az így kapott általános optimalizálási feladat a következ˝o: legyen adott egy G V E (irányított) gráf, élein egy w : E költségfüggvénnyel, valamint

5.4. TÖBBSZÖRÖSEN ÖSSZEFÜGGO˝ RÉSZGRÁFOK

127

követelményfüggvény a pontpárokon. Keressük G-nek olyan egy r : V 2 G V E feszít˝ográfját, melyben minden u v V pontpárra u v G r uv (illetve u v G r u v ) teljesül, és erre nézve w E minimális. Ez a feladat NP-nehéz. Például az r u v 2 és w 1 eset általánosítása a Hamilton-kör problémának. Ha a pontok egy T V részhalmazának pontpárjain a követelmény azonosan egy, egyébként pedig nulla, a Steiner-fa problémához jutunk, amely szintén NP-nehéz. Vannak jól kezelhet˝o speciális esetek is. Ha r u v 1 minden u v V párra, akkor a feladat egy minimális költség˝u feszít˝ofa keresése, melyre ismert hatékony (mohó) algoritmus.

5.4.1.

Minimális költségu˝ feny˝ok

Egy F V E irányított gráfot feny˝onek nevezünk, ha az élei irányítatlan értelemben fát feszítenek, és egy adott s V pontot (a gyökeret) kivéve minden pont be-foka egy, míg a gyökér be-foka nulla. Ez a fokszámfeltétel azzal ekvivalens, hogy az s gyökérb˝ol minden más ponthoz vezet irányított út. Nem nehéz igazolni, hogy egy D irányított gráfban pontosan akkor van s gyöker˝u feszít˝ofeny˝o (röviden s-feny˝o), ha s-b˝ol minden más pontba vezet irányított út. Tekintsük az el˝obbi általános feladat azon speciális esetét, melyben az input egy D V E irányított gráf, melyben egy kijelölt s V pontból minden más pontba vezet irányított út, és egy w : E költségfüggvény. Ha a követelmény minden u V s pontra r s u 1, egyébként nulla, akkor a feladat éppen egy minimális költség˝u s-feny˝o keresése. Erre az alábbi algoritmus optimális megoldást szolgáltat. (Feltehetjük, hogy s-be nem lép be él.) Fulkerson algoritmusa 1. fázis: minden v s pontra csökkentsük a v-be lép˝o élek költségét a v-be lép˝o élek költségeinek minimumával. Ha ezután létezik 0 költség˝u élekb˝ol álló s-feny˝o, kezdjük meg a 2. fázist. Ha nincs ilyen feny˝o, akkor húzzunk össze egy 0 költség˝u élekb˝ol álló kört, majd kezdjük újra az 1. fázist az új gráffal. 2. fázis: egy 0 költség˝u élekb˝ol álló s-feny˝ob˝ol kiindulva fújjuk vissza az összehúzott köröket, az összehúzás sorrendjében visszafelé haladva, és minden lépésben egészítsük ki az s-feny˝ot a visszafújt kör éleib˝ol az új gráf egy s-feny˝ojévé. Miután minden összehúzott kört visszafújtunk, a G gráf egy s-feny˝ojét kapjuk. A következ˝o megfigyelések mutatják, hogy a kapott feny˝o valóban minimális költség˝u: (i) amikor az 1. fázisban valamely v pontba lép˝o élek költségét egy w számmal csökkentjük, minden s-feny˝o költsége w-val csökken, (ii) ha nincs 0 költség˝u élekb˝ol álló s-feny˝o, akkor biztosan létezik 0 költség˝u élekb˝ol álló kör (mely nem tartalmazza az s pontot), (iii) 0 költség˝u élekb˝ol álló kört összehúzva az s-feny˝ok költségeinek minimuma nem változik.

5. MEGBÍZHATÓ HÁLÓZATOK TERVEZÉSE

128

Ez a feladat abban az esetben is megoldható polinomid˝oben, ha az r s u 1 követelmények helyett az általánosabb r s u k esetet nézzük. Ez súlyozott matroidmetszet-problémaként fogalmazható meg, melyre ismert hatékony algoritmus (2.6. szakasz).

5.4.2.

Minimális méretu˝ kétszeresen összefügg˝o részgráfok

A következ˝o speciális eset, mint már említettük, NP-nehéz: legyen G V E egy 2-élösszefügg˝o irányítatlan gráf, melyben minden él költsége egységnyi, és legyen r uv 2 uniform él-összefügg˝oségi követelmény. Ekkor a feladat egy minimális méret˝u (azaz élszámú) 2-élösszefügg˝o feszít˝ográf keresése G-ben. Figyeljük meg, hogy az optimum értéke pontosan akkor V , ha van G-ben Hamilton-kör. Optimális megoldást adó hatékony algoritmus erre a feladatra tehát nem várható. Hatékony közelít˝o algoritmus azonban létezik. A következ˝o algoritmus olyan 2-élösszefügg˝o feszít˝ográfot talál, melyben az optimumnál legfeljebb 32 -szer több él van. Khuller és Vishkin algoritmusa Hajtsunk végre egy mélységi keresést (DFS) a gráfban egy tetsz˝oleges pontból kiindulva, és közben jelöljük ki azt az E élhalmazt, amelyet a megoldásunk tartalmazni fog. A keresés során minden olyan él, mely a felépítend˝o T mélységi fa éle lesz, bekerül E -be. Ezenkívül minden olyan pillanatban, amikor a keresés egy v pontból visszalép a T valamely uv éle mentén (ekkor a T -nek a v pontnál gyökerez˝o T v részfáját már teljesen bejártuk), ellen˝orizzük, hogy az uv él elvágó él-e az eddig kijelölt E élhalmaz által feszített gráfban. Ha igen, adjunk egy olyan T v -b˝ol kilép˝o élt az E -höz, mely nincs T -ben, és a T v -n kívüli végpontját a keresés legel˝oször érte el. A mélységi keresés végén kapott E élhalmaz által feszített részgráf legyen az output. Könny˝u igazolni, hogy az algoritmus által adott E élhalmaz 2-élösszefügg˝o gráfot feszít a V ponthalmazon. Valamivel bonyolultabb annak igazolása, hogy az optimum (jelölje ) legalább kétszer akkora, mint a végs˝o E élhalmaz T -hez nem tartozó éleinek száma. Ezt felhasználva, és megfigyelve, hogy az optimum legalább V , hiszen minden megengedett megoldásban minden pont foka legalább kett˝o, a következ˝o becsléshez jutunk: E

E

E T

E T

2

V

1

3 2

( 32 )

Tehát a kívánt approximációs faktor következik. A jelenleg ismert legjobb approximációs faktor erre a feladatra egyébként 43 . Nézzük most az el˝oz˝o probléma pontösszefügg˝o változatát. Legyen G VE egy 2-összefügg˝o gráf. A következ˝o algoritmus olyan 2-összefügg˝o feszít˝ográfot talál, melyben az optimumnál legfeljebb 32 -szer több él van. Az algoritmus két lépésben épít fel egy közel optimális megoldást.

5.4. TÖBBSZÖRÖSEN ÖSSZEFÜGGO˝ RÉSZGRÁFOK

129

Cheriyan és Thurimella algoritmusa 1. fázis: keressünk egy minimális méret˝u F lefogó élhalmazt G-ben. 2. fázis: hagyjunk el G-b˝ol F-hez nem tartozó éleket amíg csak lehet, úgy, hogy a gráf 2-összefügg˝o maradjon. A megmaradó élek által feszített részgráf legyen az output. Az els˝o fázisban eljárhatunk úgy, hogy egy M maximális párosítást keresünk G-ben, majd ehhez egy-egy további élt adunk, lefogva azokat a pontokat is, melyeket M nem fed le. Az így kapott lefogó élhalmaz minimális. A második fázisban minden szóba jöv˝o uv élre ellen˝orizzük, hogy az elhagyása után 2-összefügg˝o marad-e a gráf. Ez pontosan akkor van így, ha u és v között vezet legalább három pontdiszjunkt út. Ezt egy maximális folyam algoritmussal dönthetjük el. Tehát a fenti egyszer˝u algoritmus, mely természetesen 2-összefügg˝o feszít˝ográfot talál, polinomiális idej˝u. Az approximációs faktor ez esetben is 32 (ennek bizonyítását nem részletezzük).

5.4.3.

Az összefügg˝oség növelése

A szakasz elején megfogalmazott általános feladat magában foglalja azt a kérdést is, hogy hogyan lehet egy adott hálózat megbízhatóságát új összeköttetések létesítésével megnövelni minél kisebb költséggel: ez esetben a már a hálózathoz tartozó élek költsége legyen nulla. Ha még azt is feltesszük, hogy minden lehetséges új él költsége ugyanannyi (és megengedjük azt is, hogy a megoldásunkban párhuzamos élek is legyenek), akkor egy – szinte minden követelménytípusra – hatékonyan megoldható speciális esethez, az „összefügg˝oség-növelési problémához” jutunk. Ennek egyik legegyszer˝ubb esete a következ˝o: tegyünk egy adott G V E irányítatlan gráfot minimális számú új él hozzáadásával 2-élösszefügg˝ové. Vezessük be a következ˝o fogalmakat és jelöléseket. A gráf egy 2-komponense levél (izolált levél), ha pontosan egy elvágó él (egy elvágó él sem) illeszkedik rá. Ha legalább három elvágó él illeszkedik rá, akkor bels˝o komponensnek nevezzük. Legyen két levél távolsága az o˝ ket összeköt˝o utak által érintett bels˝o komponensek száma (illetve végtelen, ha nem vezet út köztük). Az alábbi algoritmus optimális növelést talál. Plesnik algoritmusa Mindaddig, amíg a gráf még nem 2-élösszefügg˝o (és így legalább két levele van), válasszunk két olyan L1 L2 levelet, melyek távolsága maximális. Adjunk egy új élt a gráfhoz, mely L1 és L2 egy-egy (tetsz˝olegesen választott) pontját köti össze. Legyen l G l G 2l G , ahol l G (és l G ) jelöli G leveleinek (ill. izolált leveleinek) számát. Nem nehéz megfigyelni, hogy a fenti algoritmus során minden egyes új él hozzáadása az l G értéket kett˝ovel csökkenti (kivéve, ha l G 3). Mivel l G 2 élre mindenképp szükség van, az el˝obbi megfigyelés mutatja, hogy az algoritmus optimális megoldást ad, és egyúttal igazolja az alábbi tételt.

5. MEGBÍZHATÓ HÁLÓZATOK TERVEZÉSE

130

5.8. Tétel. A G gráf 2-élösszefügg˝ové növeléséhez szükséges új élek minimális száma l G 2 . Figyeljük meg, hogy ha G legalább 3 pontú, akkor az algoritmus futtatható úgy, hogy ne keletkezzenek párhuzamos élek. Hasonló fogalmakat definiálhatunk a pontösszefügg˝o esetben is. A G gráf egy blokkja levélblokk (izolált blokk), ha pontosan egy elvágó pontot (egyetlen egy elvágó pontot sem) tartalmaz. Legyen m G m G 2m G , ahol m G (m G ) jelöli G levélblokkjainak (izolált blokkjainak) számát. Legyen max c G

bG ahol c G

v aG

v :v

V

v komponenseinek száma.

5.9. Tétel. Tegyük fel, hogy a G gráf pontszáma legalább 3. Ekkor a G gráf 2pontösszefügg˝ové növeléséhez szükséges új élek minimális száma max b G

mG 2

1

Amennyiben a követelményfüggvény uniform, azaz r u v k, a kélösszefügg˝oség-növelési problémára létezik hatékony algoritmus mind az irányított, mind az irányítatlan esetben. A k-pontösszefügg˝o eset irányított esetben megoldott, míg irányítatlan esetben a probléma bonyolultsága nem ismert. A szakasz hátralev˝o részében az általános k-élösszefügg˝oség-növelési probléma megoldását ismertetjük. Ehhez el˝oször bevezetjük a „leemelési” m˝uveletet, amely számos egyéb összefügg˝oségi problémában is jól használható. Egy illeszked˝o élpár, su sv leemelése során az su sv éleket töröljük, és hozzáveszünk a gráfhoz egy új uv élt. Jelölje a kapott gráfot Guv . Ez a m˝uvelet csökkentheti bizonyos pontpárok között a lokális élösszefügg˝oséget, és a gráf él-összefügg˝oségi számát is. A következ˝o tétel mutatja, hogy (bizonyos feltételek mellett) létezik olyan élpár, melynek leemelése nem csökkenti a gráf élösszefügg˝oségét. A tétel kimondása el˝ott emlékeztetünk a fokszámfüggvény (egyszer˝uen igazolható, de) fontos tulajdonságaira. 5.10. Lemma. Legyen G d X d X

dY dY

V E irányítatlan gráf és X Y d X Y d X

Y

2d X

d X Y dY

V . Ekkor YY

2d X Y V

X

X X Y

5.11. Tétel. (Lovász L.) Legyen a G V E gráfban az s pont foka páros, valamint tegyük fel, hogy valamely k 2 számra teljesül, hogy d X

k minden

X

V

Ekkor minden su élhez van olyan sv él, amelyre a teljesül.

s halmazra

tulajdonság a Guv gráfban is

5.4. TÖBBSZÖRÖSEN ÖSSZEFÜGGO˝ RÉSZGRÁFOK

131

tulajdonság azzal ekBizonyítás: Megjegyezzük, hogy Menger tétele alapján a vivalens, hogy x y k bármely két x y V s pontra. Nevezzünk egy X V s halmazt veszélyesnek, ha d X k 1. Figyeljük meg, hogy egy su sv élpár pontosan akkor nem emelhet˝o le (azaz Guv -re nem teljesül ), ha van olyan X veszélyes halmaz, amelyre u v X. Így ha nincs az u pontot tartalmazó veszélyes halmaz G-ben, akkor bármely másik sv élre az su sv élpár leemelhet˝o. Tegyük fel, hogy van ilyen veszélyes halmaz, és álljon az u pontot tartalmazó maximális veszélyes halmazokból. El˝oször tegyük fel, hogy 1. Ha az X halmazban az s pont minden szomszédja benne van, akkor d V s X d X d s k 1 -nak. Ezért létezik olyan sv él, amelyre v X. Így következne, ami ellentmond az su sv élpár leemelhet˝o. Legyen most 2. Ekkor az X Y halmazokra az 5.10. Lemma alapján teljesül, hogy k

1

k

1

d X dY d X Y

dY

X

2d X Y V

X Y

k

k

2

amib˝ol következik, hogy d X Y V X Y 1, d X Y k és d X k 1. Tegyük fel, hogy s minden szomszédja az X vagy Y halmazban van. Jelölje az sb˝ol X-be men˝o élek számát a, az s-b˝ol Y -ba men˝o élek számát b. Feltehetjük, hogy b a, mert s foka páros és d s X Y 1. Ekkor d X s d X 2 k 1 2 k 1 következik, ami ellentmond -nak. Tehát van olyan v szomszédja s-nek, melyre v X Y . Ekkor az su sv élpár jó lesz. Végül vizsgáljuk az 3 esetet. Válasszuk az X Y párt úgy, hogy X Y a lehet˝o legnagyobb legyen, és legyen Z X Y . A fenti számításaink mutatják, hogy V X Y . Így az 5.10. Lemma alapján k

1

k

1

d X

dY

d X Y

d X Y

k

k

2

felhasználva, hogy X maximális veszélyes, így X Y nem lehet az. Ebb˝ol következik, hogy mindenhol egyenl˝oség áll, így d X k 1 és d X Y k. Hasonló okoskodással, a Z és az X Y halmazra alkalmazva az 5.10. Lemmát, igazolhatjuk, hogy X Y Z. Ekkor azonban az X Y pár választása miatt X Y X Z Y Z következik. Fentebb igazoltuk, hogy d X Y V X Y 1 teljesül bármely X Y X Y Z párra. Így d X Y 1 következik, ami ellentmond -nak. Ez a végs˝o ellentmondás bizonyítja, hogy van olyan sv, melyre az su sv pár leemelhet˝o. A tétel ismételt alkalmazásaival látható, hogy a fenti feltételek mellett az összes s-re illeszked˝o él leemelhet˝o úgy, hogy a kapott gráfra teljesüljön. Azaz a leemelések sorozatával kapott gráf (az s pont törlése után) k-élösszefügg˝o. Ezt a tényt használja a növelési probléma következ˝o megoldása. Legyenek X1 X2 Xt páronként diszjunkt ponthalmazok a G V E gráfban, melyekre d Xi k 1, 1 i t. Könny˝u megmutatni, hogy ekkor a G gráf k-élösszefügg˝ové növeléséhez szükséges új élek minimális száma legalább t 2 . 1 k d Xi

5. MEGBÍZHATÓ HÁLÓZATOK TERVEZÉSE

132

Adjunk a G input gráfhoz egy új s pontot és az s-re illeszked˝o éleket úgy, hogy a kapott gráfban teljesüljön . Igazolható, hogy ha ezt a kib˝ovítést úgy végezzük, hogy d s minimális legyen, akkor létezik olyan X1 X2 Xt diszjunkt halmazt rendszer V -ben, melyre d s k d X áll. Így a fenti megfigyelések alapján i 1 az s-re illeszked˝o éleket (melyekhez egy új élt adhatunk, ha d s páratlan) leemelve optimális növelést kapunk. Ez igazolja Watanabe és Nakamura alábbi tételét. 5.12. Tétel. A G nimális száma max

ak

V E gráf k-élösszefügg˝ové növeléséhez szükséges új élek mik

d Xi 2

: X1

Xt diszjunkt halmazok V -ben

Érdemes végiggondolni, hogyan következik az 5.12. tételb˝ol az 5.8. tétel, mely 2 esetnek felel meg.

5.5. Diszjunkt feny˝ok és feszít˝ofák Ebben a szakaszban a „többszörös összefügg˝oség” néhány további változatával foglalkozunk. Vizsgálhatjuk például azt az esetet, amikor a k-élösszefügg˝oséget csak egy rögzített gyökérpontból a többi felé követeljük meg. Irányítatlan gráfra ez ekvivalens a „globális” k-élösszefügg˝oséggel, irányított gráfra azonban nem az. Ez utóbbi esetben, mint látni fogjuk, ez k éldiszjunkt s-feny˝o létezésével ekvivalens. Egy ehhez hasonló elvárás lehet egy irányítatlan gráfban k éldiszjunkt feszít˝ofeny˝o létezése. Ennek szükséges és elégséges feltételét is igazolni fogjuk. Vizsgáljunk tehát egy D V E irányított gráfot, melyben egy adott s gyökérpontból minden v V s pontba vezet k éldiszjunkt irányított út. Menger tétele alapján ez ekvivalens azzal, hogy minden A V s halmazra A k. Itt A jelöli az A halmazba lép˝o élek számát. Az X, Y halmazokra jelölje d X Y az X és Y között (tetsz˝oleges irányban) men˝o élek számát. Használni fogjuk a be-fok függvény alábbi tulajdonságát. 5.13. Lemma. Legyen D X

V E irányított gráf, és X Y Y

X Y

X Y

V . Ekkor d X Y

5.14. Tétel. (Edmonds) A D V E irányított gráfban pontosan akkor létezik k éldiszjunkt s-feny˝o, ha A k teljesül minden A V s halmazra. Bizonyítás: Tegyük fel, hogy D-ben van k éldiszjunkt s-feny˝o és legyen A V s. Mivel minden s-feny˝o belép A-ba és a feny˝ok éldiszjunktak, így A k következik. A fordított irány igazolását k-ra vonatkozó indukcióval bizonyítjuk. Az állítás k 0-ra nyilvánvaló. Az indukciós lépés igazolásához be fogjuk látni, hogy van D-ben olyan F s-feny˝o, melyre a D D E F gráfban D A k 1 teljesül

˝ ÉS FESZÍTOFÁK ˝ 5.5. DISZJUNKT FENYOK

133

minden A V s halmazra. Mivel D -ben létezik k 1 éldiszjunkt s-feny˝o az indukciós feltevés szerint, így az F feny˝ovel együtt ezek a kívánt k s-feny˝ot adják D-ben. Legyen F olyan maximális élszámú (nem feltétlenül feszít˝o) s-gyöker˝u feny˝o D-ben, melyre a D D E F jelöléssel D A k 1 teljesül minden A V s halmazra. Ha F feszít˝ofeny˝o, akkor készen vagyunk. Ha nem, akkor az F maximalitása miatt minden V F -b˝ol V V F -be lép˝o él belép egy veszélyes halmazba, azaz olyan X V s halmazba, melyre D X k 1. Az ilyen halmazba belép˝o éleket nem vehetjük F-hez. Figyeljük meg, hogy az X Y metsz˝o veszélyes halmazok metszete és uniója is veszélyes. Ez következik az 5.13. Lemmából, hiszen ekkor k

1

k

1

D

X

D

Y

D

X Y

D

X Y

k

1

k

1

ez pedig csak akkor állhat fenn, ha a metszet és az unió is veszélyes. Legyen T V V F az F (rész)feny˝oben nem szerepl˝o pontok halmaza. Feltevésünk szerint minden T -beli halmaz be-foka legalább k, így ilyen halmaz nem lehet veszélyes. Így létezik olyan veszélyes halmaz, mely V F -be és T -be is belemetsz. Legyen ezek közül X olyan, amelyre X T minimális. Ekkor X T -b˝ol megy él X T -be, mert ellenkez˝o esetben k

1

D

X

T

D

X

k

1

állna, amelyb˝ol D X T k 1; ez pedig ellentmond annak, hogy T -ben nem lehet veszélyes halmaz. Legyen e egy X T -b˝ol X T -be men˝o él. Legyen Y olyan veszélyes halmaz, amelybe e belép; láttuk, hogy ilyen van. Ekkor a metsz˝o veszélyes halmazok metszetére vonatkozó állítás miatt X X Y veszélyes és X T . Mivel az e él töve nincs X -ben, ezért X T X T . Ez ellentmond X minimalitásának. Ha valamely T V halmazra létezik D-ben k éldiszjunkt s-feny˝o, melyek mindegyike tartalmazza T -t, akkor persze minden X T , s X halmazra X k teljesül. A megfordítás azonban nem érvényes. Edmonds tételének ezen esetleges általánosítására ellenpélda az 5.1. ábrán látható gráf és T halmaz (a k 2 esetben).

T

s 5.1. ábra A k éldiszjunkt feszít˝ofával rendelkez˝o gráfok jellemzéséhez Edmonds tételét fogjuk felhasználni a következ˝o irányítási tétel közbeiktatásával. A G V E gráfban legyen X1 X2 Xt a V halmaz egy partíciója. Ekkor jelölje e a

5. MEGBÍZHATÓ HÁLÓZATOK TERVEZÉSE

134

különböz˝o partíció-osztályok között vezet˝o élek számát. A G gráf minden élét egy irányított élre cserélve a G egy D irányítását kapjuk. 5.15. Tétel. (Frank A.) A G V E gráfnak pontosan akkor létezik olyan D irányítása, amelyben D X k teljesül minden X V s halmazra, ahol s V tetsz˝olegesen választott pont, ha V bármely X1 X2 Xl partíciójára e

k l

1

Bizonyítás: A szükségesség nyilvánvaló. A másik irány igazolásához legyen D a G gráf egy irányításából és néhány, az s-b˝ol kilép˝o új él hozzávételével kapott irányík minden X V s halmazra, és amelyre ezen irányított tott gráf, melyre D X gráfok közül az új élek száma minimális. (Ilyen D létezik, hiszen ha s-b˝ol minden másik pontba k új élt behúzunk, a be-fok feltétel teljesül.) Ha s-b˝ol nem lép ki új él, akkor D D a G kívánt irányítása. Tegyük fel tehát, hogy van s-b˝ol kilép˝o új él D -ben. Meg fogjuk mutatni, hogy néhány él irányítását megváltoztatva az új élek száma csökkenthet˝o a halmazok be-fokszámára vonatkozó feltétel megtartása mellett. Vizsgáljunk egy t V s pontot, amelybe belép egy új st él. Legyen T v: létezik t-b˝ol irányított út v-be és Y V T . Látható, hogy ekkor Y 0 és t T . Nevezzük az X V s halmazt kritikusnak, ha X k. Figyeljük meg, hogy ha Z kritikus és Z T , akkor Z T . Ez azért van így, mert egyrészt Y Z Y Z Y Z dY Z másrészt most Y 0, Z k Indirekt tegyük fel, hogy Y Z , azaz Y Z k. Ebb˝ol adódik, hogy d Y Z 0, Y Z 0, Y Z k, és t Z, mert különben az st él beleszámítana d Y Z -ba. Továbbá következik az is, hogy Z T -be nem lép be él T -beli pontból, ami ellentmond annak, hogy Z T . Ez az ellentmondás igazolja a megfigyelésünket. A továbbiakban két esetet különböztetünk meg: I. eset: Minden x T benne van egy Zx kritikus halmazban. Ekkor a fenti megfigyelés alapján Zx T , így x T Zx T . Mivel metsz˝o kritikusok metszete és uniója is kritikus, ezért létezik T -nek kritikusokból álló partíciója (a maximális kritikus halmazok particionálják). Legyen ez V2 Vl , legyen V1 Y , és legyen V1 V2 Vl . Ekkor l

e

m

Vi

kl

1

i 1

ahol m jelöli az s-b˝ol T -be men˝o új élek számát. Mivel m 1, ezért G-ben sérti a feltételt, ami ellentmondás. Tehát a II. eset áll fenn.

meg-

II. eset: Létezik x T , amely nincs benne kritikus halmazban. Ekkor fordítsuk meg egy t x út éleit, és hagyjuk el az új st élt. Legyen a kapott gráf D . Ekkor csak x befoka változott (pontosan eggyel csökkent), de mivel x

˝ ÉS FESZÍTOFÁK ˝ 5.5. DISZJUNKT FENYOK

135

k minden X V s halmazra, nincs kritikusban, továbbra is fennáll, hogy X hiszen minden halmaz befoka legfeljebb eggyel csökkent (és a kritikusoké nem). Így D X k teljesül minden X V s halmazra, ugyanakkor D -ben kevesebb új él lép ki s-b˝ol, mint D -ben. Ez ellentmond D választásának. 5.16. Tétel. (Tutte) A G V E irányítatlan gráfban pontosan akkor létezik k éldiszjunkt feszít˝ofa, ha V -nek bármely partíciójára teljesül . Bizonyítás: A szükségesség nyilvánvaló, hiszen minden feszít˝ofa legalább l 1 élt tartalmaz egy l részes partíció köztes éleib˝ol. A fordított irány igazolásához használjuk fel, hogy az 5.15. tétel alapján létezik G-nek olyan D irányítása, amelyre k minden X V s halmazra. Az 5.14. tétel szerint ekkor D-ben van k D X éldiszjunkt s-feny˝o. Ezek G-ben k éldiszjunkt feszít˝ofának felelnek meg. Tutte tételéb˝ol következik, hogy ha egy gráf élösszefügg˝oségi száma elegend˝oen nagy, akkor van benne k éldiszjunkt feszít˝ofa. 5.17. Tétel. Minden 2k-élösszefügg˝o gráf tartalmaz k éldiszjunkt feszít˝ofát. A k éldiszjunkt feszít˝ofát tartalmazó gráfok egy másik, „konstruktív” jellemzése a következ˝o. 5.18. Tétel. A G gráfban pontosan akkor van k éldiszjunkt feszít˝ofa, ha G el˝oáll az egy pontból álló gráfból kiindulva az alábbi m˝uveletekkel: (i) adjunk egy új élt a gráfhoz (meglév˝o pontok között), (ii) válasszunk ki j különböz˝o élt 0 j k és k j (nem feltétlenül különböz˝o) pontot a gráfból, és vegyünk fel egy új z pontot. Osszuk fel a j élt egy-egy új ponttal, húzzuk össze ezen osztópontokat a z pontra, majd adjunk egy-egy új élt a z pontból a kiválasztott k j pont mindegyikéhez.

5.5.1.

Többszörösen összefügg˝o irányítások

Természetes kérdés az is, hogy egy „irányítatlan” hálózatban mikor lehet az összeköttetéseket úgy egyirányúsítani, hogy a kapott „irányított” hálózat kell˝oen megbízható maradjon. Például mikor lehet egy város minden utcáját egyirányúvá tenni úgy, hogy továbbra is bárhonnan bárhová el lehessen jutni? Ezek a kérdések gráfok irányítási problémáihoz vezetnek. A D irányított gráf er˝osen összefügg˝o, ha minden u v pontpárra u v 1, azaz létezik u-ból v-be irányított út. Az úthálózat egyirányúsítási kérdését az alábbi tétel válaszolja meg. 5.19. Tétel. (Robbins) A G gráfnak pontosan akkor létezik er˝osen összefügg˝o irányítása, ha G 2-élösszefügg˝o.

5. MEGBÍZHATÓ HÁLÓZATOK TERVEZÉSE

136

Ezt a tételt kiterjeszthetjük magasabb élösszefügg˝oségre is. Hasonlóan az irányítatlan esethez, egy D irányított gráfra akkor mondjuk, hogy l-élösszefügg˝o, ha minden u v pontpárra u v l. Szükségünk lesz a következ˝o lemmára, mely Lovász leemelési tételével együtt elvezet az l-élösszefügg˝o gráfok jellemzéséhez, páros l-re. A G gráf minimális l-élösszefügg˝o, ha G l, de bármely e élre G e l 1. Menger tétele alapján ez éppen azt jelenti, hogy minden X ponthalmazra d X l és minden e él kilép egy olyan halmazból, amelynek foka pontosan l. 5.20. Lemma. Minden minimális l -élösszefügg˝o G gráfban van l -edfokú pont. Bizonyítás: Feltehetjük, hogy l 1. Legyen X egy tartalmazásra nézve minimális olyan halmaz, melyre d X l. Ha X 1, akkor készen vagyunk. Ha X 2, akkor van él az X halmazon belül, hiszen ellenkez˝o esetben egy X X1 X2 partíciót d X1 d X2 2l teljesülne, ami ellentmondás. Legyen e uv tekintve l d X az X két pontját összeköt˝o él. Mivel G minimális l-élösszefügg˝o, létezik egy Y V halmaz, melyre v Y , u Y és d Y l. Ha X Y V , akkor V Y X, ami X minimalitása miatt nem lehet (hiszen d V Y l). Ha X Y V , akkor l azaz d X Y

l

d X

dY

d X Y

d X Y

l

l

l. Ez szintén ellentmond az X minimalitásának.

Tegyük fel, hogy G 2k-élösszefügg˝o, ahol k 1. Élek elhagyásával „redukálhatjuk” G-t egy minimális 2k-élösszefügg˝o gráfra. Ebben a gráfban az el˝oz˝o lemma szerint van egy 2k-adfokú s pont. Mivel 2k páros, Lovász tétele alapján az s-re illeszked˝o élek leemelhet˝ok úgy, hogy a kapott gráf (az s elhagyása után) k-élösszefügg˝o maradjon. Ezt ismételve a G gráf végül „redukálható” egy két pontból (és 2k párhuzamos élb˝ol) álló 2k-élösszefügg˝o gráfra. Ebb˝ol következik, hogy a fenti két m˝uvelet megfordításával minden 2k-élösszefügg˝o gráfot megkaphatunk ebb˝ol a kétpontú gráfból. (Figyeljük meg, hogy az „inverz m˝uveletek” meg˝orzik a 2k-élösszefügg˝oséget.) 5.21. Tétel. A G gráf pontosan akkor 2k-élösszefügg˝o (k 1), ha el˝oáll 2k párhuzamos élb˝ol az alábbi m˝uveletekkel: (i) adjunk egy új élt a gráfhoz, (ii) válasszunk ki k élt, mindegyiket osszuk fel egy-egy új ponttal, majd ezeket az új pontokat húzzuk össze egy ponttá. Robbins tételének általánosítása ezek után könnyen igazolható. 5.22. Tétel. (Nash-Williams) A G gráfnak pontosan akkor létezik k-élösszefügg˝o irányítása, ha G 2k-élösszefügg˝o. Bizonyítás: A szükségesség nyilvánvaló. A másik irány következik az el˝obbi el˝oállítási tételb˝ol. Tegyük fel, hogy G 2k-élösszefügg˝o. Ekkor megkapható a kétpontú,

5.6. AJÁNLOTT IRODALOM

137

2k párhuzamos élt tartalmazó gráfból a fenti (i) és (ii) m˝uveletekkel. Irányítsuk a kiindulási gráfot k-élösszefügg˝ové, majd a gráf el˝oállítása során, minden m˝uvelet elvégzésekor a keletkez˝o új éleket irányítsuk az alábbiak szerint: (i) újonnan hozzáadott élt tetsz˝olegesen irányíthatunk, (ii) a k él „összecsípésével” keletkez˝o élek tartsák meg annak az élnek az irányítását, melynek felosztásával keletkeztek. Könny˝u igazolni, hogy így G egy k-élösszefügg˝o irányításához jutunk. Jóval nehezebb (egyel˝ore megoldatlan) kérdés annak eldöntése, hogy egy gráfnak létezik-e k-pontösszefügg˝o irányítása valamely adott k 2 számra. Még az is nyitott kérdés, hogy vajon minden k-hoz létezik-e olyan f k szám, melyre igaz, hogy bármely f k -pontösszefügg˝o gráfnak van k-pontösszefügg˝o irányítása. Ez utóbbi kérdésre az igenl˝o válasz csak k 2-re ismert.

5.6. Ajánlott irodalom [1] Frank András, 1994. Connectivity augmentation problems in network design. Mathematical Programming: State of the Art 1994, (szerk. J.R. Birge és K.G. Murty), The University of Michigan, Ann Arbor, MI, 34–63. [2] Frank András, 1995. Connectivity and network flows. Handbook of Combinatorics, Vol. 1, 2, Elsevier, Amsterdam, 111–177. [3] M. Grötschel, C.L. Monma és M. Stoer, 1994. Design of survivable networks. Handbook in Operations Research and Management Science, Volume 7, Network Models, (szerk. M.O. Ball, T.L. Magnanti, C.L. Monma és G.L. Nemhauser), NorthHolland, Amsterdam, 617–672.

6. fejezet

Nagy bonyolultságú hálózatok huzalozása A nagy bonyolultságú integrált áramkörök – avagy igen elterjedt angol nevén: VLSI (Very Large Scale Integrated) circuits – tervezése egyike a legszélesebb területeknek, ahol a kombinatorikus optimalizálás módszereit a gyakorlatban alkalmazzák. Az utóbbi két évtizedben számtalan eredmény született ebben a témában. Sok, már korábban klasszikusnak számító optimalizációs módszert sikerült eredményesen felhasználni az áramkörtervezés különböz˝o részproblémáiban. Hosszú a listája az err˝ol a területr˝ol származó NP-nehéz problémáknak is, ezek kezelésére gyakran igen jó heurisztikus algoritmusok ismeretesek. VLSI alatt általában nem egy problémát, hanem az áramkörök tervezése során felmerül˝o számos, egymástól lényegesen különböz˝o feladat összességét értik. Ezek ismertetésére ebben a fejezetben már csak terjedelmi okokból sem vállalkozhatunk. Behatóbban az úgynevezett részletes huzalozással fogunk csak foglalkozni: el˝oször megismerkedünk a részletes huzalozási feladattal, majd bizonyos speciális eseteinek megoldására hatékony algoritmust mutatunk; emellett megemlítünk néhány negatív eredményt is.

6.1. A huzalozási feladat Ha a matematika egy, a gyakorlati életb˝ol származó (és nem egy önmaga által felvetett) problémát akar megoldani, akkor az els˝o lépés mindig az, hogy megfelel˝o matematikai modellt kell találni, amelyben a probléma kezelhet˝o. A VLSI huzalozás tipikusan gyakorlati eredet˝u probléma, és a gráfelmélet az a modell, amelyen belül jól tárgyalható. Az alábbiakban ezért el˝oször úgy fogalmazzuk meg a feladatot, ahogyan az a gyakorlatban felvet˝odik, majd lefordítjuk a gráfelmélet nyelvére is.

138

6.1. A HUZALOZÁSI FELADAT

6.1.1.

139

A huzalozási feladat szemléletes leírása

Képzeljük el, hogy adott egy téglalap alakú áramköri lap, amelynek a szélein alkatrészek kivezetései (a továbbiakban: terminálok) helyezkednek el. Az áramkör tervez˝oje el˝ore meghatározta, hogy melyek azok a kivezetéscsoportok (a továbbiakban: netek), amelyeket huzalok segítségével egymással össze kellene kötni, mindegyiket külön-külön. Természetesen nem akárhogyan: a különböz˝o netekhez (azaz terminálcsoportokhoz) tartozó huzalok nem metszhetik egymást. S˝ot, nemcsak, hogy nem metszhetik egymást, de technológiai eredet˝u követelmény, hogy bármely két különböz˝o huzal között egy minimális fix távolságot meg kell tartani. Ennek legegyszer˝ubb megvalósítási módja az, hogy a huzaloknak egy el˝ore megadott négyzetrács élei mentén kell haladniuk. A négyzetrácsot alkotó vízszintes, illetve függ˝oleges egyeneseket soroknak, illetve oszlopoknak fogjuk nevezni. Jól látható, hogy a feladat a fenti „síkbeli” formájában nagyon ritkán volna megoldható: ha például egy net az áramköri lap két átellenes csúcsához közel es˝o két terminált tartalmaz, egy másik net pedig a másik átellenes csúcspárhoz közel es˝o két terminált, akkor az egyik net meghuzalozása lehetetlenné teszi a másikét. Szerencsére a lehet˝oségek ennél jóval tágabbak. Már a nyomtatott áramkörök h˝oskorában is a lap mindkét oldalát lehetett huzalozásra használni, és a két oldalon futó huzalok úgynevezett átmen˝o furatok mentén egymással összeköthet˝ok voltak. A mai modern technológia pedig azt is lehet˝ové teszi, hogy a huzalok több (4, 6, 8 vagy újabban akár még több) párhuzamos rétegen fussanak és a szomszédos rétegeken futó huzalok rácspontokban egymással összeköttetésbe kerüljenek.

1 2 1 1 2 3

1 1 3 2 3 3 6.1. ábra

Tekintsük például a 6.1. ábrán látható feladatot. A széleken elhelyezked˝o fekete körök a terminálokat jelölik. Az egy nethez tartozó terminálok azonos számmal vannak megjelölve (az ábrán tehát három net van). A huzalozás számára a középen látható (a terminálokat nem számítva) 3 3-as négyzetrács áll rendelkezésre. Könnyen látható, hogy a feladat egy rétegen nem volna megoldható, két rétegen azonban már van megoldás: ilyet mutat a 6.2a ábra, illetve egy egyszer˝usített formában a 6.2b ábra. (A 6.2b ábrán a fels˝o rétegen futó huzalokat szaggatott, az alsó rétegen haladókat folyamatos vonal jelöli; az üres karikák a rétegek közti átmenetek helyeit jelzik.) A 6.2b ábráról egyben a huzalozási feladat megfogalmazásának néhány további részlete is leolvasható. Az egyik ilyen, hogy a lap sarkain nincsenek terminálok,

6. VLSI HÁLÓZATOK HUZALOZÁSA

140 1

2

1

1

1

2

1

3

3

2

3

3

6.2a ábra

1 2 1 1 2 3

1 1 3 2 3 3 6.2b ábra

és ezeket a huzalok sem használják. A huzalok viszont bármelyik rétegr˝ol csatlakozhatnak a terminálokhoz. Ezeket a megállapodásokat a továbbiakban elfogadjuk (kivéve, ha erre külön felhívjuk a figyelmet). A szakirodalomban azonban számos más megközelítés is el˝ofordul. Van ezen kívül a 6.2b ábrán bemutatott konkrét megoldásnak egy további specialitása is: az egyik rétegen csak vízszintes (a lap alsó és fels˝o szélével párhuzamos, folyamatos vonallal jelölt), a másikon csak függ˝oleges (a lap bal és jobb szélével párhuzamos, szaggatott vonallal jelölt) huzalszakaszok futnak. Ennek nem kötelez˝o így lennie, de ha mégis így van, az bizonyos technológiák számára el˝onyös (mert elkerülhet˝ok a hosszan egymás fölött futó párhuzamos huzalszakaszok). Azt mondjuk, hogy egy huzalozási feladat egy konkrét megoldása Manhattan-modellbeli, ha a szomszédos rétegeken csak különböz˝o irányú huzalszakaszok futnak, azaz a rétegek felváltva tartalmaznak függ˝oleges és vízszintes huzalszakaszokat. (Az elnevezés onnan ered, hogy Manhattan utcái a Broadwayt˝ol eltekintve lényegében derékszög˝u rácsot határoznak meg. Ráadásul az észak-déli irányú utakat avenue-nak, a keletnyugati irányúakat streetnek nevezik; ez pedig azzal analóg, hogy a Manhattanmodellben a függ˝oleges és vízszintes irányú huzalok más rétegre kerülnek.) Ha egy megoldásra nézve nincs ilyen megkötés, akkor azt mondjuk, hogy az a megszorítás nélküli modellben van. A konkrét huzalozási feladatokat persze általában nem „csak” megoldani akarjuk (gyakran már ez is nagyon nehéz), hanem minél jobban akarjuk megoldani. Az, hogy mi a „jobb” megoldás, a körülményekt˝ol függhet, de általános cél – közismerten – a miniatürizálás. Például egy a 6.1. ábrán bemutatotthoz hasonló problémában, ahol a lapnak mind a négy oldalán vannak terminálok (ez az úgynevezett switchboxhuzalozási probléma), természetes cél lehet, hogy a lehet˝o legkevesebb rétegen oldjuk meg a feladatot. Nagyon gyakori azonban az olyan feladat is, amikor nem mind a négy oldalon, hanem csak a lap két szemközti oldalán (mondjuk az alsó és fels˝o szélén) vannak terminálok (ez az úgynevezett csatornahuzalozási probléma). Ilyenkor tipikus feladat, hogy el˝ore rögzítünk egy rétegszámot, amin a huzalozást meg akarjuk valósítani és a lap szélességét, azaz a rács felhasznált vízszintes sorainak

6.1. A HUZALOZÁSI FELADAT

141

számát akarjuk minimalizálni. Ez persze más megfogalmazásban a huzalozás által elfoglalt területnek a minimalizálását is jelenti, hiszen a lap hosszúságát eleve meghatározza a terminálok két sora.

6.1.2.

A huzalozási feladat matematikai leírása

Ebben a pontban a fentebb bevezetett fogalmakat pontos definíciók formájába öntjük. A fejezet további részei azonban a szemléletes leírás alapján is érthet˝ok, így a matematikai precizitás iránt kevésbé igényes olvasók ezt a pontot nyugodtan át is ugorhatják. El˝oször a k-réteg˝u derékszög˝u rácsgráfot kell definiálnunk, mégpedig úgy, hogy az megfeleljen az el˝oz˝o pontban bevezetett megállapodásainknak: a sarkokat kiiktatjuk és garantáljuk, hogy a terminálok bármely rétegr˝ol elérhet˝ok legyenek. 6.1. Definíció. Az 1 h 1 w 1 k halmaz legyen egy gráf csúcshalmaza, és két csúcs pontosan akkor legyen szomszédos, ha pontosan egy koordinátában térnek el és abban éppen eggyel. Vegyünk fel egy-egy új ti j csúcsot minden olyan i j párra, amelyre i

1 vagy i

j

1 vagy j

h és j w és i

1 1

w; vagy h.

A ti j csúcsot kössük össze minden i j l csúccsal, ahol l 1 k. Az így keletkezett Gk gráfot nevezzük k-réteg˝u derékszög˝u rácsgráfnak, amelynek termináljai a ti j csúcsok. A rács szélessége w, hosszúsága pedig h. A 6.3. ábrán a w h 3 értékekhez tartozó kétréteg˝u derékszög˝u rácsgráf látható. Most már definiálhatjuk, mit értünk pontosan huzalozási feladaton.

6.3. ábra

6. VLSI HÁLÓZATOK HUZALOZÁSA

142

6.2. Definíció. Ha adott egy derékszög˝u rácsgráf, ebben netnek nevezzük a terminálok egy részhalmazát. Huzalozási probléma alatt páronként diszjunkt netek egy N1 Nn halmazát értjük. Csak az van hátra, hogy a huzalozási feladat megoldását is definiáljuk. N1 Nn huzalozási probléma. Ennek egy 6.3. Definíció. Legyen adott az k-réteg˝u megoldása a Gk derékszög˝u rácsgráf páronként csúcsdiszjunkt, összefügg˝o részgráfjainak H1 Hn halmaza úgy, hogy Ni V Hi , vagyis Hi összeköti az Ni -hez tartozó terminálokat. A Hi részgráfokat más néven huzaloknak is nevezzük. Átmenetnek nevezzük a Hi részgráfok azon éleit, amelyek két különböz˝o réteg szomszédos pontjait kötik össze. Megjegyezzük, hogy a Hi részgráfokat, vagyis a huzalokat célszer˝u minimálisnak választani. Így Hi leggyakrabban egy fa, melynek els˝ofokú pontjai az Ni net termináljai. (A 3.2.2. pont elnevezéseit használva a huzalozási feladat tehát nem más, mint csúcsdiszjunkt Steiner-fák keresése a Gk rácsgráfban.) A Manhattan-modell és a megszorítás nélküli modell definícióit nem ismételjük meg, az el˝oz˝o pont definícióit fogadjuk el.

6.2. A Gallai-algoritmus és alkalmazásai A VLSI huzalozás témájában talán az els˝o klasszikus eredmény Gallai lineáris idej˝u algoritmusa, amelynek alapgondolata, az „intervallumpakolás” számos környezetben jól használható. Az alábbiakban el˝oször bemutatjuk az eredeti algoritmust, majd az intervallumpakolás két másik alkalmazását is.

6.2.1.

Egysoros huzalozás két rétegen

A huzalozási feladat legegyszer˝ubb alesete az, amikor a terminálok az áramköri lapnak csak az egyik, például a fels˝o oldalán helyezkednek el. (Illetve precíz megfogalmazásban: a rácsgráfnak csak az egyik oldalán elhelyezked˝o terminálcsúcsok tartozhatnak hozzá valamelyik nethez.) Erre az esetre egysoros huzalozási problémaként szokás hivatkozni. Gallai algoritmusa erre a feladatra ad optimális megoldást a kétréteg˝u Manhattan-modellben és egyben egy minimax tételt is bizonyít. Optimális megoldás alatt most azt értjük, hogy minimalizáljuk a huzalozás szélességét (vagyis a huzalozás által felhasznált vízszintes sorok számát). Az algoritmus lineáris idej˝u lesz, ami alatt azt értjük, hogy lépésszáma felülr˝ol becsülhet˝o a feladat hosszúságának (a terminálsor hosszának) konstansszorosával. Egy konkrét egysoros huzalozási feladat esetén minden, a lapot kettévágó függ˝oleges egyeneshez definiáljuk annak t e terhelését, ami legyen az egyenes által kettéválasztott netek száma (vagyis azoknak a neteknek a száma, amelyeknek az egyenest˝ol balra és jobbra is van terminálja). A 6.4. ábrán látható feladatban például az e egyenes terhelése 3, mert a hét net közül kettéválasztja az 1-est, a 4-est és a 6-ost, a többit pedig nem. Nyilvánvaló, hogy bármely huzalozásban minden

6.2. A GALLAI-ALGORITMUS ÉS ALKALMAZÁSAI

143

függ˝oleges egyenest legalább annyi vízszintes huzalszakasznak kell átmetszenie, mint amennyi az egyenes terhelése. Ebb˝ol azonnal következik, hogy a huzalozás szélessége legalább akkora lesz, mint az összes ilyen egyenesen vett terhelések maximuma, mert a vízszintes huzalszakaszok csak a lap egyik oldalán haladhatnak (hiszen a Manhattan-modellben vagyunk).

e 1 4 1 6 4 5 1 6 2 7 5 2 7 2 3 5 3

6.4. ábra 6.4. Tétel. (Gallai T.) Egy egysoros huzalozási probléma kétréteg˝u Manhattanmodellbeli megoldásának minimális szélessége megegyezik a lapot kettévágó függ˝oleges egyenesek maximális max t e terhelésével. Emellett ilyen szélesség˝u hue zalozás lineáris id˝oben található. Bizonyítás: Az algoritmust a 6.4. ábrán szemléltetjük; folytonos vonallal jelöltük az egyik, szaggatottal a másik rétegen haladó huzalszakaszokat. Az eljárás minden netet a lehet˝o legegyszer˝ubb módon huzaloz meg: az egyik réteg valamelyik sorában elhelyez egyetlen, a net bal széls˝o termináljától a jobb széls˝oig tartó vízszintes huzalszakaszt (a 6.4. ábrán folytonos vonallal) és a másik rétegen függ˝oleges szakaszok és átmenetek segítségével „beköti” a net termináljait (az ábrán szaggatott vonallal). A továbbiakban arról kell csak döntést hozni, hogy az egyes netekhez tartozó vízszintes szakaszok melyik sorba kerüljenek. Ha egy terminál a t-edik oszlopban van, akkor a továbbiakban azt fogjuk mondani, hogy az illet˝o terminál x-koordinátája t. Az algoritmus a netekkel a bal széls˝o termináljaik x-koordinátái szerinti növekv˝o sorrendben foglalkozik; legyen ez a sorrend Ni1 Ni2 Nin . (Például a 6.4. ábrán a sorrend: 1, 4, 6, 5, 2, 7, 3.) Az eljárás el˝oször meghuzalozza az Ni1 netet (a fent leírt módon). Ha az Ni1 Nik 1 netek huzalozása már kész, akkor keres a már megkezdett sorok közül egy olyat, amelyben az Nik net huzalozása „elfér” (vagyis amelyben az Nik bal széls˝o termináljának oszlopát a korábban meghuzalozott netek vízszintes szakaszai nem metszik). Ha talál ilyen sort, akkor ebben meghuzalozza az Nik netet is; ha pedig ilyen sor nincs, akkor nyit egy új (eddig használatlan) sort és ebben oldja meg az Nik huzalozását. Tegyük fel, hogy az így kapott huzalozás szélessége r. Azt kell megmutatnunk, hogy r max t e . Tekintsük az eljárás által felhasznált utolsó sorban található, e

els˝oként meghuzalozott Ni j netet (ez a 6.4. ábra példáján a 6-os). Legyen e az Ni j bal

144

6. VLSI HÁLÓZATOK HUZALOZÁSA

széls˝o termináljától közvetlenül jobbra húzódó függ˝oleges egyenes (ezt jelöltük a példán is e-vel). Állítjuk, hogy t e r. Valóban, az e egyenest a huzalozásnak mind az r sorában keresztezi vízszintes huzalszakasz, hiszen ha valamelyik sorban nem tenné, az azt jelentené, hogy az algoritmus az Ni j huzalozásakor hibásan döntött: az Ni j ugyanis elfért volna még ebben a sorban, az algoritmus mégis új sort nyitott neki. Ha pedig az e egyenest r vízszintes huzalszakasz metszi, az éppen azt jelenti, hogy a terhelése r. Azt kell még belátnunk, hogy az algoritmus megvalósítható lineáris id˝oben. Ehhez el˝oször haladjunk végig (balról jobbra) a terminálok során és minden netnek jelöljük meg a bal széls˝o, valamint a jobb széls˝o terminálját (két különböz˝o jellel). Egyúttal minden nethez jegyezzük fel a jobb széls˝o termináljának x-koordinátáját. Ennyi el˝okészület után a huzalozás elkészítéséhez elég lesz másodszor is végighaladni a terminálok során. Eközben érdemes karban tartani a „szabad sorok listáját”, vagyis egy listát azokról a sorokról, amelyekben az éppen vizsgált terminál oszlopát nem metszi vízszintes szakasz; ezekben a sorokban lehet majd a soron következ˝o netek huzalozását megoldani. Ezenkívül érdemes minden nethez feljegyezni, hogy melyik sorba kerül a hozzá tartozó vízszintes szakasz. Ha most a terminálok során haladva olyan terminálhoz érünk, amely egy Ni net bal széls˝o terminálja (ezt korábban megjelöltük), akkor a szabad sorok listájáról választunk egy sort, töröljük a listából és elhelyezzük benne az Ni -nek megfelel˝o vízszintes szakaszt. (Ehhez szükségünk van az Ni jobb széls˝o termináljának x-koordinátájára, amit el˝ore feljegyeztünk.) Egyúttal feljegyezzük, hogy az Ni vízszintes szakasza melyik sorba került. Ha a szabad sorok listája üres, akkor persze az Ni -nek új sort nyitunk. Ha viszont a terminálok sorában olyanhoz érünk, amely egy Ni net jobb széls˝o terminálja, akkor azt a sort, amelybe az Ni vízszintes szakasza került (ezt feljegyeztük), felvesszük a szabad sorok listájára. Ezen a módon tehát a netekhez tartozó vízszintes szakaszok valóban meghatározhatók a terminálsor végigvizsgálásával. Eközben pedig a huzalozáshoz tartozó függ˝oleges szakaszok és az átmenetek is könnyen meghatározhatók: ehhez minden terminál esetében csak azt kell kiolvasni, hogy melyik sorba került a szóban forgó net vízszintes szakasza. Természetes kérdés, hogy mit lehet mondani egy egysoros huzalozási probléma megoldásának minimális szélességér˝ol a kétréteg˝u, megszorítás nélküli modellben? Ekkor az alsó becslés 12 max t e -re módosul (a fels˝o egészrészt jelöl), hiszen e mindkét rétegen mehetnek vízszintes szakaszok. Fels˝o becslésként persze a Gallaitétel eredménye itt is alkalmazható (mert a Manhattan-modell speciális esete a megszorítás nélkülinek), de ekkor az már nem optimális. Ennél minden esetben jobb eredményt adó konstrukció azonban nem ismeretes, a probléma megoldatlan.

6.2.2.

A Gallai-tétel gráfelméleti vonatkozása

A fenti algoritmus alapgondolata az, hogy minden nethez hozzárendel egy intervallumot: a net bal széls˝o termináljától a jobb széls˝o termináljáig tartó szakaszt. A cél ezután az, hogy az intervallumokat úgy osszuk be minél kevesebb osztályba (azaz

6.2. A GALLAI-ALGORITMUS ÉS ALKALMAZÁSAI

145

úgy „pakoljuk be” minél kevesebb sorba), hogy az egy osztályba kerül˝o intervallumok ne metsszék egymást. Ez a megfogalmazás szinte felkínálja a feladat gráfelméleti megközelítését. Legyenek egy G gráf csúcsai a netek intervallumai, és két intervallum akkor legyen G-ben szomszédos, ha metsz˝ok. Ekkor a fentiek alapján a huzalozás minimális szélessége definíció szerint megegyezik a G gráf G kromatikus számával. A lapot kettévágó függ˝oleges egyenesek maximális terhelése is könnyen interpretálható a G gráfban: ez a lehet˝o legnagyobb számú intervallum, amelyek egymást páronként metszik, vagyis definíció szerint a G gráf G maximális klikkmérete. (Azt az egyszer˝u tényt használjuk ki, hogy ha a számegyenes néhány intervalluma közül bármelyik kett˝o metsz˝o, akkor az összes is metsz˝o.) A Gallai-tétel tehát a G gráfra nézve annyit jelent, hogy G G. A G gráf fenti értelmezéséb˝ol azonnal látszik, hogy G definíció szerint intervallumgráf. A G G állítást ezért már korábban, az 1.6.4. pontban a lineáris programozás eszközeivel beláttuk (és ugyanott azt is megemlítettük, hogy ezzel lényegében az intervallumgráfok perfektségét mondtuk ki). Az els˝o bizonyítást erre az állításra valószín˝uleg Gallai Tibor adta éppen a most bemutatott algoritmussal.

6.2.3.

Egysoros huzalozás egy rétegen

Korábban is utaltunk már arra, hogy egy rétegen nagyon kevés feladat oldható meg. Ezért az egyréteg˝u huzalozás gyakorlati szempontból szinte érdektelen. Mégis érdemes röviden foglalkozni az egysoros huzalozás egyréteg˝u esetével, mert a Gallaialgoritmus apró módosítása ezt a feladatot is megoldja, legalábbis abban az esetben, amikor megoldás egyáltalán létezik. Ha adott egy egysoros huzalozási probléma, nevezzük ebben az N1 és N2 neteket keresztez˝onek, ha található az N1 netnek t1 és t1 , az N2 netnek pedig t2 és t2 terminálja úgy, hogy a terminálok sorában ez a négy terminál a t1 t2 t1 t2 sorrendben követi egymást (nem feltétlenül közvetlen egymás után); a fogalmat a 6.5. ábra szemlélteti.

1 2

1

2

6.5. ábra Nyilvánvaló, hogy egy egysoros huzalozási feladat csak akkor lehet megoldható egy rétegen, ha nincsenek keresztez˝o netek. 6.5. Tétel. Egy egysoros huzalozási probléma akkor és csak akkor oldható meg az egyréteg˝u, megszorítás nélküli modellben, ha semelyik két net nem keresztez˝o. Ha pedig ez a feltétel teljesül, akkor a huzalozás minimális szélessége megegyezik a lapot kettévágó függ˝oleges egyenesek terhelésének maximumával. Bizonyítás: A huzalozhatóságra vonatkozó feltétel szükségességér˝ol már szóltunk. Tegyük ezért fel, hogy adott egy egysoros huzalozási feladat, ami a feltételt kielégíti.

146

6. VLSI HÁLÓZATOK HUZALOZÁSA

Legyen a lapot kettévágó függ˝oleges egyenesek maximális terhelése k. Ez ugyanúgy alsó becslés a huzalozás minimális szélességére, mint ahogy a kétréteg˝u Manhattanmodellben volt, ezért készen leszünk a bizonyítással, ha mutatunk k szélesség˝u huzalozást.

1 1 2 3 3 2 4 4 2 1

6.6. ábra Futtassuk le a 6.4. tétel bizonyításában leírt algoritmust a következ˝o két apró módosítással: egyrészt a vízszintes és függ˝oleges huzalszakaszok kerüljenek ugyanarra a(z egyetlen) rétegre, másrészt kezdjük a huzalozást a k-adik sorban, utána térjünk át a k 1 -edik sorra stb., az utolsóként meghuzalozott net vízszintes huzalszakasza az els˝o sorba kerüljön. Könny˝u meggondolni, hogy ha nincsenek keresztez˝o netek, akkor az így nyert huzalozás jó lesz. Az eljárást a 6.6. ábra szemlélteti.

6.2.4.

Csatornahuzalozás k rétegen

Említettük már, hogy a huzalozási feladatnak azt a speciális esetét, amelyben a terminálok a lapnak csak két szemközti (például alsó és fels˝o) szélén helyezkednek el, csatornahuzalozásnak nevezzük. Tekintsük most ezt a problémát a k réteg˝u Manhattan-modellben. A rétegek számát ismét el˝ore meghatároztuk, ezért a cél megint az lesz, hogy minél kisebb szélességben oldjuk meg a feladatot. Mivel a Manhattan-modellben vagyunk, bizonyos rétegek csak vízszintes huzalszakaszokat tartalmaznak, a többiek csak függ˝olegeseket (a továbbiakban a rövidség kedvéért ezeket vízszintes rétegnek, illetve függ˝oleges rétegnek fogjuk hívni). Legyen a vízszintes rétegek száma v, a függ˝olegeseké f . Ekkor nyilván k v f , és v és f között az eltérés 1, ha k páratlan, egyébként egyenl˝ok. Milyen alsó becslést lehetne nyerni a minimális szélességre? Az egysoros huzalozásnál a terhelés volt az a fogalom, amelynek révén hatékony alsó becslést lehetett kapni. Így lesz ez a csatornahuzalozás esetében is, de a fogalmat némileg módosítani kell. Ennek oka az, hogy az egysoros huzalozás esetében biztosak lehettünk abban, hogy nincs két olyan net, amelyek intervallumainak volna közös végpontja (hiszen minden oszlopban csak egy terminál volt, így ott csak egy intervallumnak lehetett végpontja). Éppen ezért elég volt azoknak az egyeneseknek a terhelését vizsgálni, amelyek a rács két szomszédos oszlopa között futottak (mint a 6.4. ábrán az e). A csatornahuzalozás esetében azonban már lehet az intervallumoknak közös végpontja, így a terhelést a rács oszlopainak egyenesein kell vizsgálnunk. Itt egy net intervalluma alatt a (mind az alsó, mind a fels˝o szélen vett) bal széls˝o és jobb széls˝o termináljának oszlopa között húzódó vízszintes szakaszt értjük. Ha pedig e a rács

6.2. A GALLAI-ALGORITMUS ÉS ALKALMAZÁSAI

147

egy oszlopa, akkor ennek t e terhelésén azon netek számát fogjuk érteni, amelyeknek intervallumát az e metszi. Például a 6.7. ábra feladatában a rács balról második oszlopát jelöltük e-vel. Ekkor e terhelése 3, mert az 1, 2 és 4 netek intervallumát metszi, az els˝o kett˝ot végpontjában, az utolsót bels˝o pontjában. (Érdemes megfigyelni, hogy ha a régi definícióval dolgoznánk, a szomszédos oszlopok között futó mindhárom egyenes terhelése csak 2 volna.) Jelölje végül a rács összes oszlopán vett maximális terhelést d; ezt szokás a feladat s˝ur˝uségének nevezni.

e 2 1 1 3

4 2 3 4 6.7. ábra 6.6. Állítás. Egy csatornahuzalozási feladat Manhattan-modellbeli megoldásának minimális szélessége legalább d v . Bizonyítás: Tegyük fel, hogy van w szélesség˝u huzalozás. Mivel egy d terhelés˝u egyenest csak a vízszintes rétegek soraiban metszhetnek huzalszakaszok, és ilyen sorból vw van, ezért vw d-nek teljesülnie kell. Így w d v . Mivel v és f eltérése kicsi (0 vagy 1), az alábbi tétel azt mutatja, hogy a fenti alsó becslés viszonylag jól megközelíthet˝o felülr˝ol. 6.7. Tétel. Minden csatornahuzalozási feladat megoldható d f 1 szélességben a Manhattan-modellben (ha f 2). Emellett ilyen szélesség˝u huzalozás található lineáris id˝oben. Bizonyítás: Legyen w d f 1 . Mutatni fogunk w szélesség˝u huzalozást. Az eljárást a 6.7. ábra szemlélteti: itt k 3, és a három rétegen futó huzalokat jelzik a szaggatott, folytonos, illetve pontozott vonalak. Az általános konstrukcióban a páratlan sorszámú rétegek lesznek a függ˝oleges rétegek, és a közbüls˝o v f 1 réteg lesz vízszintes réteg. A 6.4. tételben leírt módon ismét pakoljuk be a netek intervallumait d sorba és a bepakolt intervallumoknak megfelel˝oen helyezzünk el vízszintes huzalszakaszokat a vízszintes rétegek soraiba. (Ugyanaz a bizonyítás mutatja, hogy a pakoláshoz d

148

6. VLSI HÁLÓZATOK HUZALOZÁSA

sorra van szükség és mivel a vízszintes rétegeken összesen vw f 1 w d sor van, így ez megtehet˝o.) A függ˝oleges rétegeken felváltva indítsunk a lap fels˝o, illetve alsó szélének (els˝o közelítésben) minden termináljától huzalszakaszokat. (Ez tehát azt jelenti, hogy az 1. rétegen minden fels˝o termináltól, a 3.-on minden alsó termináltól, az 5.-en ismét minden fels˝o termináltól indítunk szakaszokat stb.) Mivel minden net vízszintes szakasza két olyan függ˝oleges réteg közé van beékelve, amelyek a lap szemközti széleit˝ol hoznak szakaszokat, a huzalozás könnyen befejezhet˝o: a netek termináljait átmenetek segítségével értelemszer˝uen bekötjük a megfelel˝o vízszintes szakaszhoz. (Megjegyezzük, hogy a fenti konstrukcióban a függ˝oleges rétegek huzalszakaszainak nagy része valójában fölösleges. Nyilván minden terminálhoz elég azon az egyetlen rétegen csatlakozni, amelyik szomszédos a terminál netjének huzalszakaszát befogadó vízszintes réteggel.) Jól látható, hogy a 6.6. állítás alsó becslése és a 6.7. tétel fels˝o becslése akkor esik egybe, ha f v 1, vagyis ha k páratlan és el˝ore eldöntjük, hogy a huzalozásban a függ˝oleges rétegek száma eggyel több kell legyen. Ha csak annyit tudunk, hogy k 2l 1 páratlan (és nincs eldöntve, hogy v és f közül melyik a nagyobb), akkor mindössze annyit mondhatunk, hogy a minimális szélesség d l 1 és d l közé esik. Ha pedig k 2l páros, akkor a minimális szélesség d l és d l 1 között van. Az érdekesség kedvéért megemlítjük, hogy NP-teljes annak az eldöntése, hogy a d l -es alsó becslés megvalósítható-e.

6.3. Csatornahuzalozás kevés rétegen Korábban említettük, hogy a huzalozási technológia kezdetben két réteg használatát tette lehet˝ové: a lap két oldalát. Azóta ezen a területen hatalmas fejl˝odés ment végbe, de a megvalósítható rétegek száma ma is komoly korlátozást jelent. Ezért továbbra is el˝onyt élveznek az olyan eredmények, amelyekben a rétegszám minél kisebb.

6.3.1.

2 réteg, Manhattan-modell

Az el˝oz˝o pontban láttuk, hogy ha k 3, akkor minden csatornahuzalozási feladat megoldható a k réteg˝u Manhattan-modellben (valamilyen szélességben). k 2-re viszont ez már nem igaz: ha például egy mindössze kett˝o hosszúságú csatorna fels˝o szélén az 1, 2, alsó szélén pedig a 2, 1 netekhez tartozó terminálok vannak (ebben a sorrendben), akkor az 1-es net meghuzalozása lehetetlenné teszi a 2-esét, bármennyi is a szélesség. Igaz ugyan, hogy a feladatok túlnyomó többsége megoldható valamilyen szélességben és a megoldhatatlan feladatok könnyen felismerhet˝ok, ám optimális szélesség˝u megoldást adó, polinomiális idej˝u algoritmusra nem lehet számítani, amint azt a következ˝o, bizonyítás nélkül közölt eredmény mutatja. 6.8. Tétel. (T. G. Szymanski, 1985) NP-teljes annak az eldöntése, hogy egy csatornahuzalozási feladat megoldható-e legföljebb k szélességben a kétréteg˝u Manhattan-modellben (ahol k része az inputnak).

6.3. CSATORNAHUZALOZÁS KEVÉS RÉTEGEN

149

A fenti tétel ellenére a kétréteg˝u Manhattan csatornahuzalozás az egyik legtöbbet vizsgált feladat a VLSI huzalozásban. A probléma fontossága miatt számos, a gyakorlatban jól m˝uköd˝o heurisztikus algoritmust fejlesztettek ki.

6.3.2.

2 réteg, megszorítás nélküli modell

Láttuk, hogy a Manhattan-modellben nem minden csatornahuzalozási feladat oldható meg 2 rétegen (és még a megoldható feladatok esetében is NP-nehéz a minimális szélesség meghatározása). Érdemes lesz ezért ezt a kérdést enyhébb feltételek között, a megszorítás nélküli modellben vizsgálni. Itt ugyanis már igaz, hogy minden feladat megoldható 2 rétegen. Erre el˝oször M. Marek-Sadowska és E. Kuh adott polinomiális idej˝u algoritmust. Kés˝obb Recski A. és F. Strzyzewski lineáris idej˝u algoritmust is talált. 6.9. Tétel. (Recski A. és F. Strzyzewski, 1990) Minden csatornahuzalozási feladat lineáris id˝oben megoldható a kétréteg˝u megszorítás nélküli modellben. Bizonyítás: El˝oször csak azokkal az esetekkel foglalkozunk, amelyekben minden netnek pontosan egy terminálja van a lap alsó és fels˝o szélén is. Az eljárást a 6.8. ábra szemlélteti: ezen már a jobb áttekinthet˝oség érdekében a két réteg külön látható, az átmenetek helyeit továbbra is üres karika jelöli.

1 2 3 4 5 6 7

1 2 3 4 5 6 7

6 4 3 7 1 5 2

6 4 3 7 1 5 2

1. réteg

2. réteg 6.8. ábra

Nevezzünk egy netet / alakúnak, ha a föls˝o szélen lev˝o termináljának xkoordinátája nagyobb, mint az alsó szélen lev˝o termináljáé; | alakúnak, ha a két terminálja a rácsnak ugyanabban az oszlopában van; alakúnak egyébként. Például a 6.8. ábrán a 4, 6, 7 netek / alakúak, a 3 net | alakú, az 1, 2, 5 netek alakúak.

150

6. VLSI HÁLÓZATOK HUZALOZÁSA

Az eljárásban minden net egy önálló sort fog kapni: ebben a sorban a net intervallumának megfelel˝o vízszintes szakasz fog helyet kapni valamelyik rétegen (hogy melyiken, az a net alakjától függ, lásd kés˝obb). Így a huzalozás szélessége megegyezik majd a netek számával. Az els˝oként meghuzalozott net kapja a legfels˝o sort, aztán a többi net sorban lefelé a többit. El˝oször a / alakú neteket huzalozzuk meg, mégpedig az alsó szélen lev˝o termináljaik x-koordinátái szerinti növekv˝o sorrendben (példánkon tehát a sorrend: 6, 4, 7). A netek intervallumának megfelel˝o vízszintes szakasz ebben az esetben az 1. rétegre kerül; az intervallum jobb szélén a huzalozás egy átmenettel áttér a 2. rétegre, majd egy függ˝oleges szakasszal kapcsolódik a net fels˝o termináljához; az intervallum bal szélén pedig az 1. rétegen maradva egy függ˝oleges szakasszal kapcsolódik a net alsó termináljához. Így minden ilyen nethez az 1. rétegen egy alakú huzalrész tartozik, amelyek azonban a választott sorrend miatt nem metszhetik egymást. Másodikként a | alakú netek következnek. Ezek huzalozása mindössze két függ˝oleges szakaszból áll, amelyek a net sorában egy átmeneten keresztül kapcsolódnak. Végül a alakú neteket huzalozzuk meg, most a fels˝o szélen lev˝o termináljaik x-koordinátái szerinti csökken˝o sorrendben (a 6.8. ábra feladatában a sorrend: 5, 2, 1). Ezeknek a neteknek a vízszintes szakasza a 2. rétegre kerül; az intervallum jobb szélén a huzalozás áttér az 1. rétegre, majd egy függ˝oleges szakasszal kapcsolódik a net alsó termináljához; az intervallum bal szélén a 2. rétegen marad és egy függ˝oleges szakasszal kapcsolódik a net fels˝o termináljához. A 2. rétegen most minden alakú nethez egy L alakú huzalrész tartozik, ezek sem metszhetik egymást. Könny˝u meggondolni, hogy az így nyert huzalozás valóban jó. Emellett megfigyelhet˝o, hogy a fels˝o terminálokhoz csak a 2. rétegen, az alsókhoz csak az els˝on csatlakoznak huzalok. Ez lehet˝oséget ad arra, hogy az általános esetet is megoldjuk, tehát amikor nem csak egy fels˝o és egy alsó terminálja lehet a neteknek. A két oldalon el˝oször külön-külön elvégezve ugyanis a Gallai-féle huzalozást (lásd 6.4. tétel) oly módon, hogy a fels˝o oldalon a 2. rétegre, az alsón az els˝ore kerüljenek a függ˝oleges huzalszakaszok, a két oldal összekötése éppen a már megoldott feladatra vezet: csak annyi el˝okészítésre van szükség, hogy minden netnek mindkét oldalon tetsz˝olegesen kijelöljük valamelyik terminálját, majd a fenti speciális eset megoldását a kijelölt terminálokra alkalmazzuk. (Persze elég azokból a netekb˝ol terminált kijelölni, amelyek mindkét oldalon el˝ofordulnak.) Így nyilván a huzalozás szélessége annyival b˝ovül ki, amennyit a két oldalon elvégzett két Gallai-algoritmus hozzátesz. Annak bizonyításához, hogy a bemutatott algoritmus lineáris, elég azt elleno˝ rizni, hogy az el˝oször leírt speciális eset huzalozása lineáris (hiszen a Gallai-algoritmusról ezt már tudjuk). Ez pedig csak azon múlik, hogy a szükséges rendezések lineáris idej˝uek (hiszen egyébként minden nethez csak konstans id˝o szükséges). A rendezéseknél viszont a rendezend˝o számok az 1 és n közé es˝o egészek közül kerülnek ki, ahol n a netek száma; egy ilyen feladat pedig lineáris id˝oben megoldható. A fenti algoritmus általában nem ad optimális szélesség˝u megoldást. (Belátható viszont, hogy a kapott huzalozás szélessége nem több a csatorna hosszúságának 32 -

6.3. CSATORNAHUZALOZÁS KEVÉS RÉTEGEN

151

szeresénél.) Természetesen felvet˝od˝o kérdés, hogy milyen bonyolultságú probléma a minimális szélesség meghatározása. Ez általánosan elfogadott sejtés szerint NPnehéz, de bebizonyítani ezt még nem sikerült.

6.3.3.

3 réteg, Manhattan-modell

Tegyük fel, hogy egy csatornahuzalozási feladatot a 3 réteg˝u Manhattan-modellben szeretnénk megoldani. A 6.2.4. pontban már láttuk, hogy ha a két széls˝o rétegen függ˝oleges huzalok haladnak (vagyis a 6.2.4. pont jelöléseivel f 2 és v 1), akkor a Gallai-algoritmus d szélesség˝u, vagyis optimális megoldást szolgáltat (d továbbra is a s˝ur˝uséget jelöli). A 6.6. állításból azonban látszik, hogy esetleg érdemesebb az f 1, v 2 lehet˝oséget választani, hiszen ekkor a szélességre vonatkozó alsó becslés d helyett d 2 . Válasszuk tehát az f 1, v 2 modellt és induljunk ki egy konkrét megoldásból, például a 6.9a ábrán láthatóból. Megtehetjük, hogy a fels˝o terminálsortól lefelé haladva az alsó réteg vízszintes huzalszakaszait egy fél egységgel lejjeb toljuk és „felhajtogatjuk” a fels˝o rétegre (lásd a 6.9b ábrát). Ezzel ugyan a huzalozás szélességét megkétszerezzük (a 6.9. ábrán 3-ról 6-ra), viszont egy 2 réteg˝u Manhattan megoldást kapunk. 1

2

3

1

2

3

1

2

1 2 3 1 2 3 1 2

4

6

6

5

4

5

6

5

6.9a ábra

4 6 6 5 4 5 6 5 6.9b ábra

Látható tehát, hogy a 3 réteg˝u, f 1, v 2 választás melleti megoldások és a 2 réteg˝u, Manhattan megoldások között szoros kapcsolat van. Ez pedig felhasználható 3 réteg˝u megoldások keresésére, hiszen korábban említettük, hogy a 2 réteg˝u feladat megoldására számos, a gyakorlatban elég jól m˝uköd˝o heurisztika ismert. A 6.9. ábrán bemutatott transzformáció azonban sajnos nem feltétlenül megfordítható: a 6.10a ábrán ugyanennek a feladatnak egy másik 2 réteg˝u Manhattan

6. VLSI HÁLÓZATOK HUZALOZÁSA

152

megoldása látható; ha itt a vízszintes huzalszakaszokat felváltva fel-, illetve lehajtogatnánk (lásd a 6.10b ábrát), akkor rossz 3 réteg˝u huzalozást kapnánk, mert a 2. és az 5. netekhez tartozó huzalok a bekarikázott helyen metszenék egymást. 1

2

6

5

3

1

2

3

1

2

1 2 3 1 2 3 1 2

4 6 6 5 4 5 6 5 6.10a ábra

4

6

6

5

4

5

6.10b ábra

A következ˝o problémát fogjuk tehát vizsgálni. Tegyük fel, hogy eleve adott egy csatornahuzalozási feladat w szélesség˝u megoldása 2 rétegen, a Manhattan-modellben. A cél egy olyan algoritmus, amely ezt átalakítja t szélesség˝u megoldássá a 3 réteg˝u, f 1, v 2 modellben úgy, hogy a w 2 t w szélesség minimális legyen. Itt az átalakítás azt jelenti, hogy a 2 réteg˝u megoldás minden soráról eldöntjük, hogy a 3 réteg˝u huzalozásban az alsó vagy a fels˝o rétegre kerüljön és ott melyik sorba. (Feltesszük tehát, hogy a 2 réteg˝u megoldás sorait nem bontjuk meg: ha egy sorban több vízszintes huzalszakasz található, akkor ugyanezek a szakaszok a 3 réteg˝u megoldásban is egy sort fognak alkotni.) Ha például a 6.10a ábrán látható megoldás van adva, akkor az algoritmusnak fel kell ismernie, hogy ebb˝ol elkészíthet˝o a 6.9a ábrán látható 3 réteg˝u megoldás (csak nem olyan egyszer˝uen, mint ahogy azt a 6.10b ábrán próbáltuk). A probléma megoldása érdekében definiálunk egy G irányított gráfot, amelynek a csúcsai az adott 2 réteg˝u megoldás sorainak felelnek meg. Az i-edik csúcsból a j-edik csúcsba vezet˝o él G-ben azt fogja jelenteni, hogy a készül˝o 3 réteg˝u huzalozásban az i-edik sornak mindenképpen a j-edik sor fölött kell maradnia. A 2 réteg˝u megoldásból könnyen kiolvashatók a G élei: ha i j és van egy olyan oszlop, amelyben az i-edik és a j-edik sorban is van egy-egy átmenet, akkor G-ben az i-edik csúcsból nyilván kell vezetni a j-edik csúcsba egy élet, hiszen a készül˝o megoldás egyetlen függ˝oleges rétegén a szóban forgó oszlopban felülr˝ol el kell tudni érni az i-edik sort, alulról pedig a j-edik sort. Ha például a 6.10a ábrán a sorokat

6.4. SWITCHBOXHUZALOZÁS

153

felülr˝ol lefelé számozzuk 1-t˝ol 6-ig, akkor a G gráf a 6.11a ábrán látható. (Az ábrán látható számok tehát nem a neteket jelölik, hanem a 2 réteg˝u huzalozás sorait.)

1

4

2

5

3

6 6.11a ábra

1 2 4 3 5 6 6.11b ábra

A kit˝uzött feladat ezek után G segítségével a következ˝oképpen fogalmazható: írjuk fel a G csúcsait két sorozatban úgy, hogy minden csúcs pontosan az egyik sorozatba kerüljön és G minden irányított élének a végpontja kés˝obb szerepeljen a felírásban, mint a kezd˝opontja (függetlenül attól, hogy a két pont egy sorozatba került-e vagy sem); az ilyen felírások közül is olyat keressünk, amelyben a hosszabbik sorozat hossza a lehet˝o legkisebb. (Ilyen felírás biztosan létezik még egy sorozatban is, hiszen G nyilvánvalóan aciklikus.) Ha ugyanis sikerül G csúcsainak egy ilyen felírását megtalálni, akkor ebb˝ol az egyik sorozatba kerül˝o csúcsoknak megfelel˝o sorokat a fels˝o rétegre, a másikba kerül˝oknek megfelel˝o sorokat az alsó rétegre helyezve valóban megkapjuk a kívánt 3 réteg˝u huzalozást (amelynek a szélessége a hosszabbik sorozat hossza lesz). Például a 6.11a ábra gráfjának esetében a 6.11b ábrán látható felírás megfelel˝o és éppen a 6.9a ábrán látható huzalozáshoz vezet. Kérdés ezek után, hogy hogyan lehet egy adott aciklikus G esetén a fenti feltételeknek megfelel˝o felírást megtalálni? Szerencsére nem nehéz felismerni, hogy itt burkoltan egy ütemezési feladatról van szó: a csúcsok az elvégzend˝o munkák, a felírás két sorozata két gépnek felel meg, és minden megmunkálási id˝o egységnyi. Ezzel tehát a P2 prec p j 1 Cmax ütemezési feladathoz jutottunk, amelyr˝ol a 4.4. pontban már láttuk, hogy polinomid˝oben megoldható, például a Coffman–Grahamalgoritmussal.

6.4. Switchboxhuzalozás A fentiekben láttuk, hogy az egysoros és a csatornahuzalozás esetében két réteg mindig elég a feladat megoldhatóságához (ha pedig a Manhattan-modellre szorítkozunk, akkor a csatornahuzalozás esetében három réteg kell). A huzalozási feladat legáltalánosabb esetében, amelyben a lapnak mind a négy oldalán lehetnek terminálok (vagyis az úgynevezett switchboxhuzalozási problémában) már nem ez a helyzet. S˝ot, semmilyen el˝ore rögzített számú réteg nem elegend˝o tetsz˝oleges switchboxhuzalozási feladat megoldásához.

6. VLSI HÁLÓZATOK HUZALOZÁSA

154

6.10. Tétel. (S. E. Hambrusch, 1985) Tetsz˝oleges k számhoz található olyan switchboxhuzalozási feladat, amely nem oldható meg k rétegen a megszorítás nélküli modellben. Bizonyítás: Tekintsük a 6.12. ábrán bemutatott switchbox-feladatot. Ezen az e egyenes terhelése h w, vagyis az e mind a h w netet kettéválasztja. Ezért, ha létezik k réteg˝u huzalozás, akkor h w kw-nek teljesülnie kell, hiszen minden rétegen w sor van, így összesen kw helyen lehet az e-t keresztezni. Ebb˝ol wh 1 k adódik. Nyilván k-hoz megválasztható h és w értéke úgy, hogy ez az egyenl˝otlenség ne teljesüljön, ami bizonyítja az állítást.

e 1 2

h 2

1 2

h 2

h +1 h +2

h +1 h +2

h+w

h+w h h 2 +1 2 +2

h

h h 2 +1 2 +2

h

6.12. ábra Látható, hogy a tételben foglalt jelenség mögött valójában az áll, hogy (szemben a korábbi feladattípusokkal) a switchbox esetében a lap méreteit a terminálok eleve meghatározzák, így terjeszkedni csak a rétegszámban lehet. Az is látszik, hogy a fenti bizonyítás csak a lap „deformáltságán” múlt: annál több rétegre van szükség egy switchboxhuzalozási probléma megoldásához, minél „hosszúkásabb” a lap, vagyis minél nagyobb az m max wh wh arány. (h-val továbbra is az oszlopok számát, w-vel a sorok számát jelöltük. Ezek szerepe switchboxok esetében már szimmetrikus, ezért kellett az m definíciójában a két hányados maximumát venni, hiszen ez fejezi ki, hogy a hosszabbik oldal hányszorosa a rövidebbnek.) A fenti tétel bizonyításából tehát az is kiderül, hogy egy switchboxhuzalozási feladat megoldásához legrosszabb esetben legalább m 1 rétegre van szükség. (Teljesen hasonlóan az is belátható, hogy ha a Manhattan-modellre szorítkozunk, akkor már 2 m 1 rétegre is szükség lehet.) Természetesen adódik ezért a kérdés, hogy ha m értékét rögzítjük, található-e már olyan szám, ahány rétegen minden feladat megoldható? A válasz igenl˝o: Boros E., Recski A. és Wettl F. 1995-ben bebizonyították, hogy minden switchboxhuzalozási probléma lineáris id˝oben megoldható max 18 2m 14 rétegen a megszorítás nélküli modellben. Ennek a tételnek a szerz˝oi azt a sejtést is megfogalmazták, hogy valójában már m 3 réteg is elég

6.5. ÉLDISZJUNKT HUZALOZÁS

155

a huzalozáshoz. Ez máig is nyitott probléma, noha azóta Szeszlér D. bebizonyí4 rétegen is adható huzalozás lineáris id˝oben (s˝ot, még a totta, hogy már 2 m Manhattan-modellben is).

6.5. Éldiszjunkt huzalozás Képzeljük el, hogy adott egy huzalozási feladat megoldása a kétréteg˝u Manhattanmodellben. Vetítsük most le függ˝olegesen a két rétegen futó huzalokat egyetlen rétegre. Amit kapunk, az természetesen nem egy egyréteg˝u huzalozás (abban az értelemben, ahogyan azt eddig értettük), hiszen a huzalok csúcsokban metszhetik egymást. Ennek ellenére az igaz, hogy a különböz˝o netekhez tartozó huzalok éldiszjunktak maradnak. S˝ot, a levetített huzalozásban a huzalok csak + alakban találkozhatnak, két huzal találkozása olyan módon, ahogyan azt a 6.13. ábra mutatja (ez az úgynevezett knock-knee, magyarul ikszláb), lehetetlen. Megfordítva, minden olyan egyréteg˝u „huzalozás”, amelyben megengedjük, hogy a huzalok + alakban metsszék egymást (de a knock-knee továbbra is tilos), azonnal átalakítható kétréteg˝u, Manhattan huzalozássá.

6.13. ábra Már a fenti egyszer˝u megfigyelés is motiválja, hogy (a 6.3 definíciót módosítva) olyan egyréteg˝u huzalozásokat is vizsgáljunk, amelyeknél csak a huzalok éldiszjunktságát követeljük meg (most már tehát a knock-knee sem tilos), a csúcsdiszjunktságtól eltekintünk. Ezt a továbbiakban éldiszjunkt huzalozásnak fogjuk nevezni, egy ilyen feladat és a megoldása látható a 6.14. ábrán. (Éldiszjunkt huzalozás esetén meg fogjuk engedni, hogy a sarkokon is legyenek terminálok, és a huzalok is használhassák a sarkokat, valamint a rács legszéls˝o sorait és oszlopait.)

2 1 4 3 1

1 4

2 3 4 3 6.14. ábra Egy éldiszjunkt huzalozásnak közvetlen gyakorlati alkalmazása nyilván nincs, de meg lehet próbálni átalakítani minél kevesebb réteg˝u, csúcsdiszjunkt huzalo-

156

6. VLSI HÁLÓZATOK HUZALOZÁSA

zássá. Ezt a feladatot réteg-hozzárendelésnek nevezik. Ez tehát nem más, mint hogy egy éldiszjunkt huzalozás minden éléhez hozzárendeljük valamelyik réteget úgy, hogy az alábbi feltételek teljesüljenek: 1. az egy csúcsban találkozó, különböz˝o netekhez tartozó huzalélek különböz˝o rétegre kerüljenek; 2. az egy csúcsban találkozó, azonos nethez tartozó huzalélek vagy azonos rétegre kerüljenek, vagy ha különböz˝o rétegre kerülnek, akkor a közbüls˝o rétegeken a szóban forgó csúcsnak megfelel˝o csúcsot más huzal ne használja (hogy a szükséges átmenetek beiktathatók legyenek). Viszonylag könny˝u eldönteni, hogy mely éldiszjunkt huzalozások alakíthatók át kétréteg˝u (nem feltétlenül Manhattan-modellbeli) csúcsdiszjunkt huzalozássá, de ezek köre nem túl tág. Három réteg esetén a feladat már sokkal nehezebb. 6.11. Tétel. (W. Lipski, Jr., 1984) NP-teljes annak az eldöntése, hogy egy éldiszjunkt huzalozás átalakítható-e háromréteg˝u, csúcsdiszjunkt huzalozássá. A fenti tétel ismeretében meglep˝o, hogy négy réteg viszont már minden feladathoz elég. 6.12. Tétel. (M. L. Brady és D. J. Brown, 1984) Minden éldiszjunkt huzalozás átalakítható négyréteg˝u, csúcsdiszjunkt huzalozássá. Éldiszjunkt huzalozással kapcsolatban az els˝o alapvet˝o eredmény Frank Andrástól származik: szükséges és elégséges feltételt ad egy éldiszjunkt huzalozási feladat megoldhatóságára abban az esetben, amikor minden netnek két terminálja van. Különösen ez és a 6.12. tétel adott nagy lendületet az éldiszjunkt huzalozás kutatásának. Frank tételének állításával azért is érdemes megismerkedni, mert újszer˝u, paritáson alapuló feltétel jelenik meg benne. Legyen adott egy olyan éldiszjunkt huzalozási feladat, amelyben minden netnek két terminálja van. Ilyenkor feltehet˝o – és a továbbiakban fel is tesszük –, hogy minden huzal egy út a net két terminálja között. Legyen X a rács csúcsainak egy tetsz˝oleges részhalmaza. Azt fogjuk mondani, hogy a rács egy éle kilép X-b˝ol, ha az egyik végpontja X-ben, a másik X-en kívül van. Jelölje e X azoknak a rácséleknek a számát, amelyek kilépnek X-b˝ol. Azt fogjuk mondani, hogy az X kettévág egy netet, ha a net egyik terminálja X-ben, a másik X-en kívül van. Jelölje n X azoknak a neteknek a számát, amelyeket az X kettévág. Nevezzük az X-et páratlan halmaznak, ha e X n X páratlan. Az alábbi egyszer˝u megfigyelés kulcsszerepet kap Frank tételében. 6.13. Állítás. Ha X páratlan halmaz, akkor egyetlen huzalozás sem használhatja az összes X -b˝ol kilép˝o élt. Bizonyítás: Ha egy netet az X nem vág ketté, akkor ennek a netnek a huzalozása páros sokat használ fel az X-b˝ol kilép˝o élek közül. Valóban, ha például mindkét

6.5. ÉLDISZJUNKT HUZALOZÁS

157

terminál az X-ben van, akkor az egyikt˝ol a huzalozás mentén a másik felé haladva valahányszor elhagyjuk X-et, mindannyiszor vissza is kell térnünk X-be (és hasonló a helyzet, ha mindkét terminál X-en kívül van). Teljesen hasonlóan következik, hogy ha az X egy netet kettévág, akkor ennek a netnek a huzalozása páratlan sokat használ fel az X-b˝ol kilép˝o élekb˝ol. A fentiekb˝ol látszik, hogy a huzalozás által összesen felhasznált, X-b˝ol kilép˝o élek száma ugyanolyan paritású, mint n X . Mivel pedig X páratlansága miatt e X és n X paritása különböz˝o, lehetetlen, hogy a felhasznált élek száma egyenl˝o legyen e X -szel.

2 3 4 5

2 3 4 5

1 1

5 1 4 3 2 6.15a ábra

5 1 4 3 2 6.15b ábra

Célunk most már, hogy szükséges és elégséges feltételt adjunk a huzalozhatóságra. A feladat nehézségét mutatja, hogy bár a 6.15. ábra két feladata alig különbözik egymástól, az egyik mégis megoldható, a másik nem. Érdemes az alább következ˝o tétel megismerése el˝ott megpróbálni a két feladat közül megtalálni és megoldani a megoldhatót (ez látható a 6.17a ábrán), a másikról pedig belátni a megoldhatatlanságot. A kívánt feltétel érdekében ismét megpróbálhatjuk bevetni a terhelés fogalmát: egy, a lapot függ˝olegesen vagy vízszintesen kettévágó (azaz a rács két szomszédos oszlopa vagy sora között haladó) e egyenes t e terhelése továbbra is az általa kettéválasztott netek száma. Jelölje emellett a korábbiaknak megfelel˝oen a rács sorainak számát w, oszlopainak számát h. Például a 6.17b ábrán látható feladatban (ami megegyezik a 6.15b ábra feladatával) w 6, h 5 és az e-vel jelölt egyenesre t e 4. A megoldhatósághoz nyilván szükséges feltétel, hogy minden függ˝oleges e egyenesre t e w, és minden vízszintes e-re t e h teljesüljön. Sajnos ez a feltétel nem elégséges: a 6.16. ábrán látható feladat nyilván nem megoldható, pedig w h 2 és minden egyenes terhelése is 2. (De a 6.17b ábrán bemutatott feladatról is rövidesen belátjuk, hogy nem megoldható, pedig könnyen ellen˝orizhet˝o, hogy a feltételek teljesülnek rá.) Ezért módosítani fogjuk a terhelés fogalmát, hogy er˝osebb feltételt nyerjünk. Nevezzünk egy, a lapot kettévágó vízszintes e egyenest szoros egyenesnek, ha t e h; hasonlóan, egy függ˝oleges e egyenes akkor szoros, ha t e w. A 6.17b ábrán pontozott vonal jelöli a szoros egyeneseket (szoros függ˝oleges nincs). Tegyük most fel, hogy egy feladatban a szoros vízszintesek száma v és legyen e egy tetsz˝oleges függ˝oleges egyenes. Ekkor a lap e-t˝ol balra es˝o felét a szoros vízszintesek

6. VLSI HÁLÓZATOK HUZALOZÁSA

158

1

2

2

1

6.16. ábra v 1 részre osztják; az e paritásterhelésének fogjuk nevezni és p e -vel fogjuk jelölni a v 1 résznek megfelel˝o csúcshalmazok közül a páratlan halmazok számát. A 6.17b ábrán v 3 és a lap e-t˝ol balra es˝o felén kialakuló v 1 4 részt mutatják a szaggatott vonallal körülhatárolt területek. Könny˝u ellen˝orizni, hogy mind a négy halmaz páratlan, így p e 4. A vízszintes egyenesek paritásterhelését analóg módon definiáljuk: ha a szoros függ˝olegesek száma f , akkor az e vízszintes egyenes fölötti lapfélen kialakuló f 1 csúcshalmaz között a páratlan halmazok száma lesz p e . (Megjegyezzük, hogy a paritásterhelés definíciójában nincs szerepe a balra-jobbra, illetve fölöttealatta irányoknak. Viszonylag könnyen belátható ugyanis, hogy ha például a függ˝oleges egyenes paritásterhelésének meghatározásában az „e-t˝ol balra” helyett „e-t˝ol jobbra” állna, akkor az e paritásterhelése nem változna.) Végül pedig egy (a lapot kettévágó) e egyenes módosított terhelésének fogjuk t e p e összeget. nevezni és t e -vel fogjuk jelölni a t e 6.14. Tétel. (Frank A., 1982) Tegyük fel, hogy egy éldiszjunkt huzalozási problémában minden netnek két terminálja van. Ilyenkor a feladat akkor és csak akkor oldható meg, ha minden, a lapot kettévágó függ˝oleges e egyenesre t e w, és minden vízszintes e-re t e h teljesül. A szükségesség bizonyítása. Tegyük fel, hogy adott egy, a tételnek megfelel˝o huzalozási feladat és annak egy éldiszjunkt megoldása. Legyen e függ˝oleges egyenes, a szoros vízszintesek száma legyen v és jelölje a p e definíciójában szerepl˝o v 1 Xp e . A 6.13. állításból tudjuk, hogy csúcshalmaz közül a páratlanokat X1 X2 minden Xi halmazhoz tartozik egy ei él, amely kilép az Xi -b˝ol és amelyet a huzalozás nem használ. Az ei azonban nem lehet függ˝oleges él, mert akkor átmetszene egy szoros vízszintest, márpedig bármely szoros egyenest átmetsz˝o minden élt a huzalozásnak fel kell használnia. Ebb˝ol következik, hogy az e1 e2 e p e élek egyrészt mind különböz˝ok, másrészt mindegyikük átmetszi az e egyenest. Mivel azonban az e kettéválaszt t e netet, kell lennie az e-t átmetsz˝o élek között legalább további t e darab olyan élnek, amelyeket a huzalozás felhasznál. Ezekb˝ol tehát w pe t e t e következik. Vízszintes e esetére pedig a bizonyítás teljesen hasonló. Ezzel beláttuk, hogy a 6.17b ábra feladata nem megoldható: az e egyenesre ugyanis t e t e pe 4 4 6 w adódik. A tétel feltételének elégségességét nem bizonyítjuk, de megemlítjük, hogy a bizonyításból O hw lépésszámú, azaz

6.6. AJÁNLOTT IRODALOM

159

e 2 3 4 5

2 3 4 5

1 1

5 1 4 3 2 6.17a ábra

5 1 4 3 2 6.17b ábra

a területben lineáris idej˝u algoritmus következik. A fenti eredménynek különböz˝o irányú általánosításai ismeretesek, de ezekre itt nem térünk ki.

6.6. Ajánlott irodalom [1] T.C. Hu és E. S. Kuh (szerk.), 1985. VLSI Circuit Layout: Theory and Design, IEEE Press, New York. [2] T. Lengauer, 1990. Combinatorial Algorithms for Integrated Circuit Layout, John Wiley & Sons Ltd., Chichester; B. G. Teubner, Stuttgart. [3] S. H. Gerez, 1999. Algorithms for VLSI Design Automation, John Wiley & Sons Ltd., Chichester. [4] R. H. Möhring, D. Wagner és F. Wagner, 1995. VLSI network design, In: Handbooks Oper. Res. Management Sci., Vol. 8, North-Holland, Amsterdam.

7. fejezet

Hálózatelméleti alkalmazások 7.1. Bevezetés A villamos hálózatok analízise igényelte el˝oször a gráfelmélet „valódi” alkalmazását. 1847-es cikkében Kirchhoff nemcsak a (kés˝obb róla elnevezett) csomóponti és hurokegyenletek megfogalmazásához használta a gráfokat mint modellt, hanem az egyenletrendszer egyértelm˝u megoldhatóságának bizonyításához is felhasznált gráfelméleti eredményeket. Kirchhoff a villamos hálózatok alkatrészeinek összekapcsolási módját gráfokkal modellezte, melynek során az alkatrészek a gráfok éleinek feleltek meg. Eredményei ennek megfelel˝oen csak kétpólusú alkatrészekb˝ol összekapcsolt hálózatokra alkalmazhatóak közvetlenül. Jelen fejezetben eredményein kívül azok általánosításaira, többpólusú alkatrészeket is tartalmazó hálózatokra való alkalmazásaira is kitérünk. Látni fogjuk, hogy részben nem is gráfelméleti, hanem matroidelméleti módszerekre lesz szükségünk.

7.2. Ellenállás-hálózatok Tegyük fel, hogy egy villamos hálózat kizárólag u

Ri egyenlet˝u ellenállásokat, u adott, i tetsz˝oleges egyenlet˝u idealizált feszültségforrásokat és i adott, u tetsz˝oleges egyenlet˝u idealizált áramforrásokat tartalmaz.

Tegyük fel továbbá, hogy az alkatrészek összekapcsolási módját egy G V E gráf írja le, ahol az élek az alkatrészeknek felelnek meg, ezen belül az E ER EU EI felbontás feleljen meg az ellenállások, feszültség-, illetve áramforrások halmazának. Például a 7.1a ábrán egy hálózat, a 7.1b ábrán a hozzátartozó gráf látható, ER 2 3 4 , EU 1 5 , EI . Az éleket irányítással láttuk el, ez megfelel 160

7.2. ELLENÁLLÁS-HÁLÓZATOK

7.1a ábra

161

7.1b ábra

az illet˝o alkatrészhez definiált „mér˝oiránynak”. Ha ismerjük az u1 t u5 t függvényeket és az ellenállások R2 R3 R4 értékét, akkor ezekb˝ol meghatározhatjuk az összes többi adatot, például azt, hogy a harmadik ellenállás árama i3

R4 u1 R2 u5 R2 R3 R2 R4 R3 R4

Általában is feltesszük, hogy ismertek a feszültségforrások feszültségei, az áramforrások áramai és az ellenállások; ezekb˝ol szeretnénk meghatározni a „többit”, vagyis az ellenállásokon és a feszültségforrásokon folyó áramokat, valamint az ellenállásokon és az áramforrásokon lees˝o feszültségeket. Ezt fogjuk a hálózatanalízis alapfeladatának nevezni. Egy ellenállás feszültsége és árama között az u Ri Ohm-törvény teremt kapcsolatot. A különböz˝o alkatrészek feszültségei közötti összefüggést a Kirchhoff-féle „huroktörvény” írja le (a hálózat gráfjának bármely köre mentén az alkatrészek feszültségeinek el˝ojeles összege zérus). A különböz˝o alkatrészek áramai közötti összefüggést a Kirchhoff-féle „csomóponti törvény” írja le (a hálózat gráfjának bármely vágása mentén az alkatrészek áramainak el˝ojeles összege zérus). A 7.1a ábrán látható hálózatra például u2 u3 u1 0 i4 i5 0 teljesülnek. Megjegyzések: 1. Mivel mind az Ohm-, mind a Kirchhoff-törvények lineárisak, a hálózatanalízis alapfeladata ebben a hálózatosztályban egyszer˝uen egy lineáris egyenletrendszer megoldása. Ennek ellenére a megoldhatóság gráfelméleti jellemzése nem triviális. 2. A csomóponti törvényeket általában nem vágásokra szokták kimondani, hanem „csillagokra”, vagyis egy-egy ponthoz illeszked˝o élhalmazokra. Kétszeresen összefügg˝o gráfokban minden csillag vágás és minden vágás el˝oáll csillagok szimmetrikus differenciájaként, ezért a csillagok vagy a vágások által generált egyenletrendszerek ekvivalensek. 3. A feszültségforrás definíciójában szerepl˝o „u adott” kitétel azt jelenti, hogy u egy adott konstans érték vagy egy adott, id˝ot˝ol függ˝o függvény. El˝obbi esetben a konstans elvileg zérus is lehet, ez fizikailag egy rövidzárnak felel meg. Hasonlóképp a szakadás tekinthet˝o speciális áramforrásnak is. Ezekre a lehet˝oségekre a 7.8. lemmában még visszatérünk. 7.1. Lemma. Egy ilyen hálózat egyértelm˝u megoldhatóságának szükséges feltétele, hogy az EU élhalmaz körmentes és az EI élhalmaz vágásmentes részgráfot határozzon meg.

162

7. HÁLÓZATELMÉLETI ALKALMAZÁSOK

Bizonyítás: Ha létezne csupa feszültségforrásból álló kör, akkor az egyenletrendszer valószín˝uleg meg se lenne oldható – a függetlenül adott feszültségértékek el˝ojeles összege mit˝ol lenne épp zérus? De ha véletlenül megoldható lenne is, akkor sem lehet a megoldás egyértelm˝u, hisz egy megoldásból mindig kaphatnánk egy újat úgy, hogy a kört alkotó feszültségforrások áramértékét ugyanazzal a konstanssal megváltoztatnánk. Hasonló gondolatmenetet alkalmazhatunk, ha csupa áramforrásból álló vágás létezne.

7.2. ábra A két szükséges feltétel együtt még nem elégséges. Ezt a 7.2. ábrán látható abszurd hálózat szemlélteti. A két ellenállás együtt úgy viselkedik, mint egy u 0, i tetsz˝oleges leírású feszültségforrás, amit nyilván nem kapcsolhatunk párhuzamosan egy másik feszültségforrással. Így ez a hálózat nyilván nem oldható meg egyértelm˝uen, holott az egyetlen élb˝ol álló EU halmaz körmentes részgráfot határoz meg. Kirchhoff persze csak az R 0 passzivitási feltételt kielégít˝o „valódi” ellenállásokra gondolt, a negatív ellenállásként modellezhet˝o aktív hálózati elemekre még nem. Olyankor a fentihez hasonló ellenpélda nem konstruálható: 7.2. Tétel. Egy feszültségforrásokat, áramforrásokat és pozitív ellenállásokat tartalmazó hálózat egyértelm˝u megoldhatóságának szükséges és elégséges feltétele, hogy az EU élhalmaz körmentes és az EI élhalmaz vágásmentes részgráfot határozzon meg. A feltétel szükségességét már láttuk (7.1. lemma), az elégségesség közvetlen bizonyítása (lásd például [1], [2]) számos gráfelméleti és lineáris algebrai eszközt igényel és elég hosszadalmas. Ehelyett könnyen meg fogjuk ezt kapni a következ˝o szakaszban a 7.3. tétel következményeként.

7.3. Kirchhoff „topológiai formulái” A 7.1. ábrán látható hálózatban i3 mellett további négy alkatrész áramát és három alkatrész feszültségét kellene kiszámítanunk. Tényleges számolás nélkül is látszik, hogy mindegyik olyan tört lenne, melynek nevez˝oje R2 R3 R2 R4 R3 R4 hisz a Cramer-szabály szerint (lásd a 46. oldalt) egy (ugyanannyi egyenletb˝ol és ismeretlenb˝ol álló, egyértelm˝uen megoldható) lineáris egyenletrendszer megoldásában minden nevez˝o azonos (t. i. az egyenletrendszer M együtthatómátrixának a determinánsa). A hálózat gráfjának 8 fája van (az 1 2 3 és a 3 4 5 kivételével minden élhármas), ezek közül három olyan, mely a feszültségforrásoknak megfelel˝o 1 5

7.3. KIRCHHOFF „TOPOLÓGIAI FORMULÁI”

163

éleket tartalmazza. A közös nevez˝o is három szorzat összegéb˝ol áll – ez az egybeesés nem véletlen: 7.3. Tétel. Tegyük fel, hogy teljesülnek a 7.2. tétel feltételei. Ilyenkor az összes ismeretlen közös nevez˝oje det M Ri F

i F

ahol a hálózatot modellez˝o gráf azon részgráfjainak halmaza, melyek EI egyetlen élét sem tartalmazzák és EU éleivel egyesítve fát alkotnak. Az ismeretlenek számlálóira is hasonló, csak valamivel bonyolultabb tételek mondhatóak ki (ismeretlenenként más és más). Ezeket gy˝ujt˝onéven topológiai formuláknak szokták nevezni. Az elnevezés arra utal, hogy az algebrai kifejezések szerkezete (hány tagú az összeg, az egyes tagjai hány tényez˝os szorzatok, mely éleknek megfelel˝o ellenállásértékeket kell összeszorozni) csak az összekapcsolás gráfjától függ (és a gráfelméletet f˝oleg régebben a topológia részének tekintették). A 7.3. tételb˝ol igen egyszer˝uen következik a 7.2. tétel bizonyításának nehéz iránya: ha ugyanis az EU élhalmaz körmentes és az EI élhalmaz vágásmentes részgráfot határoz meg, akkor léteznek olyan fák, melyek tartalmazzák az összes feszültségforrást és egyetlen áramforrást sem tartalmaznak, tehát a halmaz nem üres. Mivel minden szorzat pozitív számok szorzata, csupa pozitív számot szummázunk, tehát det M 0 vagyis az egyenletrendszer egyértelm˝uen megoldható. Megjegyezzük, hogy lényegileg ez volt Kirchhoff eredeti bizonyítása is. A 7.3. tétel bizonyításának az alapgondolata a következ˝o. Ha rendre eU eR eI jelöli a hálózat gráfjában a feszültségforrások, az ellenállások, illetve az áramforrások számát, akkor a hálózatra vonatkozó Ohm-törvények száma eR , a Kirchhoff-féle feszültség-, illetve áramtörvények közül pedig e n 1, illetve n 1 darab lineárisan független választható ki. (Itt e és n jelöli a hálózat gráfjában az élek, illetve a pontok számát és feltesszük, hogy a gráf összefügg˝o.) Mivel az ismeretlenek száma eU eI 2eR e eR (hisz az ellenállásoknak mind a feszültségét, mind az áramát kérdezzük, a többi alkatrésznek csak egy-egy adatát), az egyenletrendszer szimbolikusan az alábbi alakba írható:

ahol C és Q jelöli a gráf redukált kör-, illetve vágásmátrixát, míg az uU uR uI iU iR iI vektorok rendre a három alkatrészcsoport feszültségeit, illetve áramait tartalmazzák. Az együtthatómátrixot 5 függ˝oleges vonallal gondolatban 6 részre osztottuk. Az els˝o és az utolsó részek az uU illetve az iI mennyiségekre vonatkoznak,

164

7. HÁLÓZATELMÉLETI ALKALMAZÁSOK

amelyek nem ismeretlenek (azok függvényeként keressük a megoldást), a „maradék” négyzetes mátrixot jelöltük M-mel. Fejtsük ki gondolatban ennek a mátrixnak a determinánsát! Nyilván az els˝o e n 1 sorból a C mátrix egy maximális nemszinguláris C részmátrixának megfelel˝o oszlopokat kell vennünk, melyek a gráf egy F1 fája komplementerének felelnek meg (ezt korábbi tanulmányainkból tudhatjuk). Ezen oszlopok között az uU -nak megfelel˝o „els˝o” rész oszlopai persze nem szerepelnek, tehát EU F1 . Ugyanígy a következ˝o n 1 sorból a Q mátrix egy maximális nemszinguláris Q részmátrixának megfelel˝o oszlopokat kell vennünk, melyek a gráf egy F2 fájának felelnek meg és EI F2 . Az utolsó eR sor mindegyikéb˝ol vagy 1 -et választunk ki (ha az illet˝o ellenállás F1 komplementerében van), vagy R-et (ha az ellenállás F2 -ben van). Mivel azonban ezekb˝ol a sorokból is pontosan egy nemzérus elemet kell kiválasztanunk, ez akkor és csak akkor lehetséges, ha F1 F2 (vagyis ha a fa olyan, hogy egyidej˝uleg tartalmazza EU -t és diszjunkt EI -t˝ol, és minden ellenállásnak megfelel˝o élnek vagy a feszültségoszlopa tartozik C -be, de az áramoszlopa nem tartozik Q -be, vagy fordítva). El˝obbi esetben az ellenállás nem tartozik a fába és a 1 u Ri egyenletnek megfelel˝o sorban az R elemet választjuk ki, utóbbi esetben az ellenállás a fa eleme és a 1 -et kell kiválasztanunk. Ezzel beláttuk, hogy det M eF i F Ri F ahol eF a szóban forgó kifejtési tag el˝ojele. Hosszadalmasabb számolással megállapítható, hogy minden tagnak azonos az el˝ojele, ami a bizonyítandó állításhoz vezet.

7.4. Általánosítás egyéb kétpólusú alkatrészek esetén Természetesen már a XIX. században is voltak olyan villamos hálózatok, melyek nem csak ellenállásokat, valamint feszültség- és áramforrásokat tartalmaztak, hanem tekercseket és kondenzátorokat is. Az u Ri Ohm-törvényhez hasonlóan ez di utóbbi alkatrészek idealizált modelljeit is lineáris egyenletek írják le: u L dt teldu jesül a tekercsekre és i C dt a kondenzátorokra (az L konstanst a tekercs induktivitásának, a C-t a kondenzátor kapacitásának nevezzük). Mostantól persze feltesszük, hogy a feszültségforrások nem u konstans, hanem u u t egyenlet˝uek (és hasonlóan az áramforrások árama is függhet az id˝ot˝ol), hisz tisztán egyenáramú hálózatban a tekercs rövidzárként, a kondenzátor szakadásként funkcionálna.

7.3. ábra Például a 7.3. ábra hálózatában a feszültségtörvényt u1 t u2 t C2 R3 dtd u2 t alakba írhatjuk, ekkor a többi egyenlet lineáris algebrai (nem differenciál-) egyenlet lesz, és a hálózatanalízis alapfeladatának a megoldásához el˝oször

7.4. ÁLTALÁNOSÍTÁS KÉTPÓLUSÚ ALKATRÉSZEK ESETÉN

u2 t

u2 t0

C2 R3

1

t t0

et

C2 R3

165

u1 t dt

ahonnét már a többi ismeretlen könnyen kiszámítható. Természetesen ismernünk kell az u2 t0 értéket, vagyis azt, hogy a hálózat összekapcsolásának t0 id˝opillanatában mekkora volt a kondenzátor kezdeti feszültsége. Általánosabban is igaz az alábbi, bizonyítás nélkül közölt tétel. Ehhez az eddigiekkel összhangban jelöljük a hálózat kondenzátorainak, illetve tekercseinek halmazát EC -vel, illetve EL -lel. 7.4. Tétel.

1. Egy feszültségforrásokat, áramforrásokat, továbbá pozitív ellenállásokat, tekercseket és kondenzátorokat tartalmazó hálózat egyértelm˝u megoldhatóságának szükséges és elégséges feltétele, hogy az EU élhalmaz körmentes és az EI élhalmaz vágásmentes részgráfot határozzon meg. 2. Ha még EU EC is körmentes és EI EL is vágásmentes, akkor a hálózatot leíró differenciálegyenlet EC EL rend˝u lesz és a megoldásakor a kondenzátorok kezdeti feszültségei és a tekercsek kezdeti áramai egymástól függetlenül el˝oírhatóak. Természetesen, ha a tétel 2. felében szerepl˝o er˝osebb feltétel nem teljesül (például ha egy feszültségforrás és egy kondenzátor párhuzamosan van kapcsolva), akkor a kondenzátorok kezdeti feszültségei és a tekercsek kezdeti áramai egymástól függetlenül mind nem lehetnek el˝oírhatóak (például a feszültségforrással párhuzamos kondenzátor kezdeti feszültsége megegyezik a feszültségforrás t0 -beli értékével). Ez nem teszi a feladatot megoldhatatlanná, csak azzal a következménnyel jár, hogy a hálózatot leíró differenciálegyenlet rendje csökkenni fog: 7.5. Tétel. Tegyük fel, hogy egy feszültségforrásokat, áramforrásokat, továbbá pozitív ellenállásokat, tekercseket és kondenzátorokat tartalmazó hálózatra teljesül a 7.4. tétel 1. részének feltétele. Legyen F a hálózat gráfjának egy olyan fája, mely

tartalmazza EU összes elemét, olyan sok elemet tartalmaz EC -b˝ol, amennyit csak lehet úgy, hogy ezek XC halmazára még EU XC is körmentes legyen, EI egyetlen elemét se tartalmazza,

olyan kevés elemet tartalmaz EL -b˝ol, amilyen keveset csak lehet úgy, hogy a fából kimaradó élek XL halmazára még EI XL is vágásmentes legyen. XL rend˝u lesz és a megoldásakor Ekkor a hálózatot leíró differenciálegyenlet XC az XC -beli kondenzátorok kezdeti feszültségei és az XL -beli tekercsek kezdeti áramai egymástól függetlenül el˝oírhatóak. Megjegyezzük, hogy a differenciálegyenlet rendjének (vagyis a függetlenül el˝oírható kezdeti feltételek maximális számának) a hálózatelméletben szokásos elnevezése a rendszer szabadsági fokainak száma.

166

7. HÁLÓZATELMÉLETI ALKALMAZÁSOK

7.5. Általánosítás többpólusú alkatrészek esetén 7.5.1.

Ideális transzformátorok és girátorok

Ha nem csak kétpólusú alkatrészekb˝ol áll a hálózat, akkor nem világos, hogy az alkatrészek összekapcsolásának leírására egyáltalán a gráfok szolgáltatják-e a legalkalmasabb modellt. Ha például egy ideális transzformátort tekintünk, az négy ponton át kapcsolódik a többi alkatrészhez, és az ábrán jelölt két „kapuján” mérhet˝o ki2 egyenletrendszer teremt kapfeszültségek és áramok között az u2 ku1 i1 csolatot (tehát nem egy-egy egyenlet az u1 i1 pár, illetve az u2 i2 pár között, hanem egy egyenletrendszer a négy fizikai mennyiség között).

7.4. ábra Nyilván a 7.4. ábrán látható hálózat nem is oldható meg egyértelm˝uen, hisz a bal oldali u t érték˝u feszültségforrás és a transzformátor együtt úgy viselkedik, mint egyetlen ku t érték˝u feszültségforrás, amit nem kapcsolhatunk párhuzamosan a jobb oldalival. Hasonlóan abszurd hálózathoz jutnánk, ha egy ideális transzformátor mindkét oldalával áramforrást kötnénk sorba. Általában is belátható az alábbi állítás: 7.6. Tétel. Egy feszültségforrásokból, áramforrásokból, ellenállásokból és ideális transzformátorokból álló hálózat egyértelm˝u megoldhatóságának szükséges feltétele, hogy létezzen a hálózat gráfjában olyan F fa, melyre a szokásos EU F , EI F feltételeken kívül minden k-ra F ek fk 1 is teljesül, ahol e1 f1 e2 f 2 jelöli az egyes transzformátoroknak megfelel˝o élpárokat. Egy másik nevezetes négypólusú alkatrész a girátor, melyet az u1 Ri2 , u2 Ri1 egyenletrendszer definiál. Könny˝u végiggondolni, hogy itt – a 7.4. ábrával analóg módon – akkor jutnánk ellentmondáshoz, ha az egyik kapuval feszültségforrást kötnénk párhuzamosan, a másikkal áramforást kötnénk sorba. Ezek után nem túl meglep˝o a 7.6. tétel analógja: 7.7. Tétel. Egy feszültségforrásokból, áramforrásokból, ellenállásokból és girátorokból álló hálózat egyértelm˝u megoldhatóságának szükséges feltétele, hogy létezzen a hálózat gráfjában olyan F fa, melyre a szokásos EU F , EI F feltételeken kívül minden k-ra F ek f k 1 is teljesül, ahol e1 f1 e2 f2 jelöli az egyes girátoroknak megfelel˝o élpárokat. Lényegesen bonyolultabb kérdés, hogy milyen további, az alkatrészek paramétereire vonatkozó feltevések kellenek ahhoz, hogy ezek a feltételek elégségesek is legyenek. Ezzel itt nem foglalkozunk.

7.5. ÁLTALÁNOSÍTÁS TÖBBPÓLUSÚ ALKATRÉSZEK ESETÉN

167

A 7.5. tételhez hasonlóan most is kombinatorikusan jellemezhet˝o egy feszültségforrásokat, áramforrásokat, ideális transzformátorokat, ellenállásokat, tekercseket és kondenzátorokat tartalmazó hálózatot leíró differenciálegyenlet rendje. Ha egy ilyen hálózatnak létezik egyértelm˝u megoldása, akkor a hálózat gráfjában létezfeltételeken kívül minnek olyan F fák, melyekre a szokásos EU F, EI F den j-re F ej f j 1 is teljesül, ha e1 f1 e2 f2 jelöli az egyes ideális transzformátoroknak megfelel˝o élpárokat és minden k-ra F ek f k 1 is teljesül, ha most e1 f1 , e2 f2 , jelöli az egyes girátoroknak megfelel˝o élpárokat. Az összes ilyen fára – gondolatban – határozzuk meg a cF EC F EL F értéket. Ezek maximuma adja meg a differenciálegyenlet rendjét, és amely F fára ez felvétetik, ott XC EC F és XL EL F választással a differenciálegyenlet megoldásakor az XC -beli kondenzátorok kezdeti feszültségei és az XL -beli tekercsek kezdeti áramai egymástól függetlenül el˝oírhatóak.

7.5.2.

Lineáris n-kapuk

Az ideális transzformátor és a girátor a lineáris n-kapuk két speciális esete: tekintsünk most általában egy olyan „fekete dobozt”, mely n póluspáron keresztül kapcsolódik a külvilághoz, a póluspárokon mérhet˝o u1 u2 un feszültségek által alkotott u vektor és a rajtuk átfolyó i1 i2 in áramok által alkotott i vektor pedig elégítse ki az Au Bi 0 egyenletet, ahol az A B egy n-rangú, n 2n méret˝u mátrix. Ha nem akarjuk el˝ore megmondani a kapuk számát, akkor a lineáris sokkapu elnevezést használjuk. Természetesen az ellenállás is tekinthet˝o 1-kapunak. Így például az el˝oz˝o szakaszban látott ideális transzformátor, illetve girátor esetén az A B mátrixok az alábbiak: k 0

1 0 0 1

0 k

1 0 0 1

0 R

R 0

Ha egy hálózat feszültség- és áramforrásokból, valamint sokkapukból áll, akkor az összekapcsolás módját most is egy gráffal tudjuk leírni: a források változatlanul éleknek felelnek meg és a sokkapu minden kapuját is egy-egy éllel helyettesítjük. 7.8. Lemma. Legyen H egy feszültségforrásokból, áramforrásokból és lineáris sokkapukból álló hálózat, melyben szokás szerint megköveteljük, hogy az EU élhalmaz körmentes és az EI élhalmaz vágásmentes részgráfot határozzon meg. Helyettesítsük a feszültségforrásokat rövidzárral, az áramforrásokat szakadással. (Matematikailag ez azt jelenti, hogy a hálózat gráfjában húzzuk össze a feszültségforrásoknak megfelel˝o éleket és hagyjuk el az áramforrásoknak megfelel˝o éleket.) Az új H hálózat akkor és csak akkor oldható meg egyértelm˝uen, ha az eredeti H hálózat egyértelm˝uen megoldható volt. Bizonyítás: Az állítás fizikailag világos, hisz korábban már láttuk, hogy a rövidzár is egy speciális feszültségforrás és a szakadás is egy speciális áramforrás. Érdemes azonban az állítás matematikai tartalmát is végiggondolni. Ha a H hálózat megoldását egy Ax b lineáris egyenletrendszer szolgáltatja, akkor A négyzetes mátrix és a

168

7. HÁLÓZATELMÉLETI ALKALMAZÁSOK

jobb oldali b vektor elemei a feszültségforrások feszültségei és az áramforrások áramai. Így a H hálózat megoldásához az ugyanazzal az A mátrixszal felírható Ax 0 homogén lineáris egyenletrendszert kell vizsgálnunk. Ha H egyértelm˝uen megoldható, akkor det A 0 teljesül, vagyis a homogén egyenletrendszernek csak a triviális x 0 a megoldása. Megfordítva, ha H egyértelm˝uen megoldható, akkor det A 0 miatt A oszlopai bázist alkotnak, melynek elemeib˝ol lineáris kombinációval b egyértelm˝uen áll el˝o. Mostantól jelölje G a H hálózat gráfját (ami tehát a feszültségforrások éleinek összehúzása és az áramforrások éleinek elhagyása után keletkezett). Ennek E G e1 e2 e p élhalmaza megfelel a sokkapuk kapujai által alkotott halu1 u2 u p , ilmaznak, tehát a sokkapuk feszültségeinek és áramainak AU letve AI i1 i2 i p halmazaiból képzett A AU AI halmazon a sokkapuk leíró egyenleteib˝ol összesen p darab lineárisan független egyenletet kaphatunk. Ezeknek az egyenleteknek az együtthatói egy p 2p méret˝u N mátrixot határoznak meg. 7.9. Tétel. Legyen H egy feszültségforrásokból, áramforrásokból és lineáris sokkapukból álló hálózat, melyben szokás szerint megköveteljük, hogy az EU élhalmaz körmentes és az EI élhalmaz vágásmentes részgráfot határozzon meg. Helyettesítsük a feszültségforrásokat rövidzárral, az áramforrásokat szakadással. Az új H hálózat (és a 7.8. lemma miatt akkor az eredeti H hálózat is) egyértelm˝u megoldhatóságának szükséges feltétele, hogy létezzék az A halmaznak olyan Ag Aa kettéosztása, melyre

1. Ag AU vágásmentes G-ben, Ag AI körmentes G-ben, továbbá 2. az N mátrix Aa -nak megfelel˝o oszlopai lineárisan függetlenek; ahol G jelöli a H hálózat gráfját és N az összes sokkapu leíró mátrixából képzett p 2p méret˝u mátrixot. Bizonyítás: A H hálózatot leíró egyenletrendszer M együtthatómátrixa

alakba írható, amit felfoghatunk két egymás alatti M1 M2 blokknak is, ha C és Q (a G gráf kör-, illetve vágásmátrixa) a két zérusblokkal együtt alkotja M1 -et és M2 N. Mindkét blokk p 2p méret˝u. A determinánsok Laplace-féle kifejtési szabálya szerint det M det M1 det M2 ahol a szummázás azt jelenti, hogy mind a 2p p lehetséges módon kiválasztjuk M oszlopainak a felét, ezek és M1 sorai alkotják az M1 mátrixot, a maradék oszlopok

7.6. DUALITÁS

169

és M2 sorai pedig az M2 mátrixot. (A jel utal arra, hogy a szorzatokat bizonyos el˝ojelszabállyal kell összegezni, de ezt a bizonyítás során nem kell figyelembe vennünk.) Ha a hálózat egyértelm˝uen megoldható, akkor det M 0 miatt legalább egy ilyen det M1 det M2 szorzat nem zérus. Ez definiálja az M oszlopai által alkotott A halmaznak egy (az M1 -t alkotó Ag és az M2 -t alkotó Aa részekre való) kettéosztását. Mivel det M2 0 az N mátrix Aa -nak megfelel˝o oszlopai nyilván lineárisan függetlenek lesznek. Hasonlóképpen, az M1 blokkdiagonális mátrix Ag -nek megfelel˝o oszlopai is lineárisan függetlenek lesznek, ez utóbbi pedig akkor és csak akkor lehetséges, ha Ag AU egy G-beli fa komplementere, Ag AI pedig egy G-beli fa.

7.6. Dualitás Ismeretes, hogy ha egy H1 villamos hálózat csupa kétpólusú alkatrészb˝ol áll és az összekapcsolásukat leíró G1 gráf síkbarajzolható, akkor a H1 alkatrészeinek feszültségeit és áramait leíró Kirchhoff-féle egyenletek formailag ugyanolyanok, mintha a G1 duálisaként nyert G2 gráfból indulnánk ki – „csak” az a különbség, hogy a feszültségeket és áramokat jelöl˝o u, illetve i bet˝uket is fel kellene cserélni. Ha ugyanígy felcserélnénk az u és i bet˝uket az alkatrészeket leíró egyenletekben is (vagyis minden alkatrészhez rendelnénk egy „párt”), és a duális gráfra való áttéréskor az alkatrészeket is a párjukkal helyettesítenénk, akkor a teljes egyenletrendszer is formálisan változatlan maradna. Az ellenállásokat leíró u Ri Ohm-törvény helyett szokatlan lenne egy i Ru egyenletet felírni, de matematikailag csupán arról van szó, hogy az Ohm-törvény állításának (a feszültség egyenesen arányos az áramer˝osséggel) a formális leírásakor az arányossági tényez˝ot nem R-rel, hanem R 1 -nel jelöltük. Ilyen értelemben tehát az ellenállás nev˝u alkatrész helyett egy másik ellenállást kapnánk, csak az ellenállás értéke változna a reciprokára. (A fizikában az ellenállás reciprokát egyébként vezetésnek nevezik, ezt tüntettük fel az alábbi táblázat hatodik sorában; a többi „párba állítás” nyilvánvaló.)

1 2 3 4 5 6a 6b 7 8 9 10

Az eredeti (síkbarajzolható) gráfban élek körök vágások feszültség áram ellenállás (mint alkatrész) ellenállás (mint fizikai mennyiség) feszültségforrás áramforrás tekercs kondenzátor

Az új (duális) gráfban élek vágások körök áram feszültség ellenállás vezetés áramforrás feszültségforrás kondenzátor tekercs

7. HÁLÓZATELMÉLETI ALKALMAZÁSOK

170

7.10. Tétel. Tegyük fel, hogy egy H1 villamos hálózat csupa kétpólusú alkatrészb˝ol áll és az összekapcsolásukat leíró G1 gráf síkbarajzolható. Helyettesítsük G1 -et a duális G2 gráffal és minden H1 -beli alkatrészt a „szótárunkban” szerepl˝o párjával. Az így kapott H2 hálózat és az eredeti H1 alkatrészeinek feszültségeit és áramait leíró teljes egyenletrendszerek formailag azonosak lesznek, csak a feszültségeket és áramokat jelöl˝o u, illetve i bet˝uket kell felcserélni. Értelmes marad-e ez az állítás (és ha igen, igaz marad-e), ha nemcsak kétpólusú alkatrészeket, hanem lineáris sokkapukat is meg akarunk engedni? A válasz nyilván attól függ, hogy mit értünk egy alkatrész „párján”. A 7.5.2. szakasz elején láttuk, hogy a lineáris n-kapukat n 2n méret˝u, n-rangú mátrixokkal lehet leírni. Mivel ezek oszlopvektorai n-rangú matroidokat koordinátáznak egy 2n-elem˝u halmazon, természetes ötlet e matroidok duálisát venni. Így például az ideális transzformátorhoz könny˝u a „párját” megkapni: k 0

1 0

0 0 1 k

1 k 0 0 0 k

0 1

így egy olyan alkatrészt definiáltunk, melynek egyenletei u1 ku2 ki1 i2 . Persze azonnal észrevehet˝o, hogy ezt sokkal egyszer˝ubben is megkaphattuk volna – elég lett volna az áramok és a feszültségek szerepét felcserélni a transzformátort leíró egyenletrendszerben. Feltehet˝oleg így gondolkodhattak a kutatók több évtizeden keresztül, mert nem vizsgálták azt a kérdést, hogy a fenti dualitás-elvben szerepl˝o kifejezés (az alkatrész „párja”) végül is az u és i bet˝uk formális felcserélését vagy a matroidelméleti értelemben vett dualitás képzését jelenti-e – mindenki úgy gondolta, hogy a két dolog tulajdonképpen ugyanaz, másképp megfogalmazva. Ez azonban nem így van, két különböz˝o áram-feszültség szimmetria létezik a lineáris n-kapuk elméletében, csak a legtöbb alkatrész (például a fenti transzformátor) esetén ezek egybeesnek. A 7.10. tétel állításának sokkapukra való kiterjesztése persze csak akkor marad igaz, ha a bet˝ucserével definiáljuk az alkatrész „párját”, de a másik esetben is szoros kapcsolat lesz a H1 és a H2 hálózatok villamosságtani tulajdonságai között. Az i1 0 u2 cu1 egyenletrendszerrel definiált „er˝osít˝o” (hivatalos nevén: feszültségvezérelt feszültségforrás) a legegyszer˝ubb példa arra, hogy a két dolog nem mindig esik egybe: a matroidelméleti dualitás az u1 cu2 i2 0 egyenletrendszerrel adott 2-kapuhoz vezet. Ez viszont nem egy áramvezérelt áramforrás lesz, hanem egy másik feszültségvezérelt feszültségforrás, melynek kapui helyet cserélnek egymással.

7.7. Algoritmikus kérdések Az alábbi táblázat összefoglalja, hogy milyen – korábban már tanult – gráfelméleti vagy matroidelméleti eszközökre van szükség a fejezetben szerepl˝o tételek feltételeinek algoritmikus ellen˝orzéséhez:

7.8. AJÁNLOTT IRODALOM Tétel (lemma) sorszáma 7.1., 7.2., 7.4. 7.5. 7.6. 7.7. 7.9.

171 hogyan ellen˝orizhet˝o a feltétele? például szélességi kereséssel például mohó algoritmussal matroidmetszet-algoritmussal matroidpárosítási algoritmussal matroidpartíciós algoritmussal

Megjegyzések: 1. A 7.5. tételben szerepl˝o F fát a mohó algoritmussal határozhatjuk meg, ha az EU éleihez 1 az EC éleihez 2 az ER EL EI éleihez pedig rendre 3 4 illetve 5 súlyokat rendelünk, majd a legkisebb súlyú fák egyikét vesszük. 2. A 7.6. tétel alkalmazásakor, miután ellen˝oriztük, hogy EU körmentes és EI vágásmentes, húzzuk össze EU elemeit és hagyjuk el EI elemeit a hálózat gráfjának körmatroidjában. Jelöljük a kapott matroidot -vel. Legyen a és b az ellenállások, illetve az ideális transzformátorok száma. Ekkor az matroid S alaphalmaza a 2b elem˝u, rangját jelöljük r-rel. Definiáljunk az S halmazon egy matroidot, melyben egy részhalmaz akkor és csak akkor független, ha minden ek f k párból legfeljebb egy elemet, az ellenállásokból pedig legfeljebb r b elemet tartalmaz. (Jól látható, hogy az matroid uniform matroidok direkt összege.) A 7.6. tételben szerepl˝o szükéges feltétel akkor és csak akkor teljesül, ha -nek és -nak van közös bázisa. 3. A 7.7. tételben szerepl˝o szükséges feltétel is polinomid˝oben ellen˝orizhet˝o, hisz a matroidpárosítási problémát olyan matroidra kell alkalmazni, melynek ismert a valósak teste feletti koordinátázása (s˝ot, csak 0 1 elemeket alkalmazunk hozzá). 4. A 7.5.1. szakasz utolsó bekezdésében írtak alapján könny˝u végiggondolni, hogy ha egy hálózat csak ideális transzformátorokat tartalmaz, de girátorokat nem, akkor a súlyozott matroidmetszet-algoritmussal meghatározhatjuk a szabadsági fokainak számát. Nem világos azonban, hogy tehet˝o ez meg polinomid˝oben girátorokat is tartalmazó hálózatok esetén, hisz a matroidpárosítási probléma polinomid˝oben megoldható speciális eseteiben általában nem ismeretes a „súlyozott változatra” is polinomrend˝u megoldás.

7.8. Ajánlott irodalom [1] Recski A., 1989. Matroid theory and its applications in electric network theory and in statics, Springer, Berlin és Akadémiai Kiadó, Budapest. [2] Rohrer, R. A., 1970. Circuit theory: An introduction to the state variable approach, Mc-Graw-Hill, New York. [3] Recski A., 2002. Dualitás a matematikában és sok más helyen, In: Hraskó András (szerk.): Új matematikai mozaik, Typotex, Budapest.

8. fejezet

A kombinatorikus optimalizálás néhány alkalmazása a statikában Ebben a fejezetben példákat látunk arra, hogy a rúdszerkezetek vizsgálatát milyen lineáris algebrai, gráfelméleti és matroidelméleti módszerek alkalmazása könnyíti meg. Rúdszerkezeten olyan (idealizált) rendszert értünk, amely merev, nyújthatatlan és összenyomhatatlan rudakból áll, melyeket a végükön tetsz˝olegesen elfordítható csuklók kapcsolnak össze. El˝oször modellezzük az ilyen rendszereket, definiáljuk, hogy mikor tekinthet˝oek merevnek. Utána bemutatjuk, hogyan lehet kiszámítani egy, a merevséghez épp szükséges számú rudat tartalmazó síkbeli rúdszerkezet egyes éleiben ébred˝o er˝oket. Az ezt követ˝o szakaszban az úgynevezett generikus merevséggel foglalkozunk, majd a 2-dimenziós négyzetrácsok és a 3-dimenziós kockarácsok átlókkal való kimerevítését tárgyaljuk.

8.1. Mikor merev egy rúdszerkezet? 8.1.1.

A rúdszerkezet mátrixa

Egyel˝ore tegyük fel, hogy csak síkbeli rúdszerkezeteket vizsgálunk. A csuklókat egy G V E gráf pontjainak, a rudakat a gráf éleinek tekinthetjük, jelöljük egy tetsz˝oleges vi V pontnak megfelel˝o csukló helykoordinátáit xi yi -vel. Egy vi v j E él azt jelenti, hogy az i-edik és a j-edik csuklókat egy nyújthatatlan és összenyomhatatlan, li j hosszú rúd köti össze, tehát xi

xj

2

yi 172

yj

2

li2j

8.1. MIKOR MEREV EGY RÚDSZERKEZET?

173

teljesül. Ha n és e jelöli a gráf pontjainak, illetve éleinek a számát, akkor így egy 2n ismeretlenes, e darab egyenletb˝ol álló rendszerhez jutunk, ennek megoldásai jelentik a rúdszerkezetnek a síkba való elhelyezéseit. Legyen R3 egy olyan rúdszerkezet, mely 3-3 csuklóból és rúdból áll és gráfja egy 3 él˝u kör. Legyen R4 hasonlóan egy 4 hosszú körnek megfelel˝o rúdszerkezet. Végül ha R4 valamely két átellenes csuklóját egy további rúddal összekötjük, egy 5 rudat tartalmazó R4 szerkezethez jutunk. A köznapi szóhasználatban R3 -at merevnek nevezzük (hisz, ha két csuklóját lerögzítjük, a harmadik se tud elmozdulni), R4 -et nem (hisz, ha két szomszédos csuklóját lerögzítjük, a másik kett˝o még mozoghat), végül R4 ismét merev, hisz ezt a mozgást az átlós rúd megakadályozza (8.1a-b ábrák). Már ezek az egyszer˝u példák is mutatják, hogy lényeges volt a szakasz elején a tér dimenziójának a lerögzítése – a térben R4 sem merev, hisz az átló körül az egyik rúdpár még elfordulhat (8.1c ábra).

R4

R4

R3

1

4

1

3 2 8.1a ábra

8.1b ábra

8.1c ábra

Intuíciónk azt sugallja, hogy „minél merevebb egy rúdszerkezet, annál kevesebb megoldása lehet a fenti egyenletrendszernek”. Általában igen nehéz kérdés egy nemlineáris egyenletrendszer megoldhatóságát, megoldásainak számát stb, vizsgálni, egy egyszer˝u ötlettel azonban a fenti egyenletek „linearizálhatóak” és így a lineáris algebra szokásos eszközeivel kezelhet˝oek lesznek. Mivel úgyis arra vagyunk kíváncsiak, milyen „mozgásai” vannak a csuklóknak, a korábban bevezetett xi yi helykoordinátákat tekinthetjük a t id˝o xi t yi t függvényeképp is. Ha tehát a fenti xi x j 2 yi y j 2 li2j egyenleteket id˝o szerint deriváljuk, a 2 xi

x j x˙i

x˙ j

2 yi

y j y˙i

y˙ j

0

egyenletekhez jutunk, amelyek (2-vel való osztás után) a következ˝o alakba rendezhet˝oek át: xi x j x˙i x j xi x˙ j yi y j y˙i y j yi y˙ j 0 Az x˙i y˙i mennyiségekre (a csuklók sebességkoordinátáira) tehát egy e darab lineáris egyenletb˝ol álló Aw 0 rendszert kapunk, ahol w

x˙1 x˙2

x˙n y˙1 y˙2

y˙n

T

8. NÉHÁNY ALKALMAZÁS A STATIKÁBAN

174

Így például a korábban definiált R3 rúdszerkezethez az alábbi A együtthatómátrix tartozik: x1 x1

x2 x3 0

x2 x2

0

x1 0 x3

x3 x3

x1 x2

y1 y1

y2 y3 0

y2 y2

0

y1 0 y3

y3 y3

y1 y2

Az Aw 0 egy homogén egyenletrendszer, tehát a w 0 biztos megoldása (ami fizikailag annak felel meg, hogy a rúdszerkezet egyik csuklója sem mozog). Még merev rúdszerkezetek esetén is lesznek azonban egyéb megoldások is, hisz, ha az egész rúdszerkezetet mint egyetlen merev testet a síkban (eltolással vagy valamely pont körüli forgatással) máshova visszük, ez a mozgás sem változtatja meg a csuklók egymástól való távolságát, tehát az ilyen mozgás sebességeib˝ol képzett w vektor is ki fogja elégíteni az Aw 0 egyenletrendszert. A w vektor egy 2n-dimenziós tér eleme. E térben a sík összes ilyen „merev testszer˝u” mozgásai egy 3-dimenziós alteret alkotnak (hisz valamely P pont mindkét koordinátáját szabadon megválaszthatjuk – ez megfelel a test eltolásának –, majd egy további pont egyik koordinátáját még mindig változtathatjuk – ez meg a P körüli forgatásnak felel meg). Így az A mátrix rangja legfeljebb 2n 3 lehet. Ha egy rúdszerkezetnek nem egybevágósági mozgásai is vannak (például a 8.1b ábrán), akkor még további w megoldások is lesznek, ez indokolja az alábbi definíciót. 8.1. Definíció. Egy n csuklót tartalmazó síkbeli rúdszerkezet merev, ha a hozzá tartozó A mátrix rangjára r A 2n 3 teljesül. Ebb˝ol azonnal adódik, hogy 8.2. Tétel. Egy n csuklót és e rudat tartalmazó síkbeli rúdszerkezet merevségének szükséges feltétele, hogy e 2n 3 teljesüljön.

8.1.2.

Valódi és infinitezimális mozgások

Ha felírjuk a 8.2. ábrán látható két, 5-5 csuklóból és 7-7 rúdból álló rúdszerkezet A mátrixát, csak a bal oldalinak lesz 7 a rangja, tehát a fenti definíció szerint a jobb oldali nem merev, holott bármely két csuklójának helyét lerögzítve a többi csukló helye matematikailag egyértelm˝uen adódik. A statikusok azonban nem is szeretnék a jobb oldali rúdszerkezetet merevnek nevezni, mert az 1. pontnak az 1-3 egyenesre mer˝oleges irányú „infinitezimálisan kicsi” elmozdulásai is elkerülend˝oek. Ez utóbbi mondat pontosításához idézzük fel Hooke törvényét: egy merev test deformálódásának mértéke egyenesen arányos az F deformáló er˝o nagyságával (ha F elég kicsi). Ha a 8.3a ábrán a középs˝o pontot x-szel lejjebb akarjuk tolni, ehhez a rudak hosszát y2 h2 -r˝ol y2 h x 2 -re kell csökkenteni, míg a 8.3b ábrán a rudak hosszát y-ról y2 x2 -re kell növelni. Felhasználva a a b a b a b összefüggést, a bal oldali esetben a deformáció mértéke 2hx x2 y2 h 2 y2 h x 2 , a jobb oldali esetben 2 2 2 x y x y . Kihasználva, hogy x nagyságrendekkel kisebb mint y és h, azt

˝ KISZÁMÍTÁSA 8.2. A RUDAKBAN ÉBREDO˝ EROK

175 3 1 2

8.2a ábra

8.2b ábra

kapjuk, hogy a középs˝o pont x mérték˝u lesüllyedéséhez a bal oldali esetben cx-szel, a jobb oldali esetben cx2 -tel arányos (tehát a jobb oldali esetben nagyságrenddel kisebb) deformáló er˝ore van szükség. x h x y

y

8.3a ábra

8.3b ábra

Ebben a – most már matematikailag is pontos – értelemben tehát egy rúdszerkezet az el˝oz˝o szakaszban szerepl˝o definíció szerint vagy merev, vagy ha nem, akkor elképzelhet˝o az is, hogy „valódi” mozgása van (mint a 8.1b ábrán), az is, hogy csak infinitezimális (mint a 8.2b ábrán), de ezek között nem fogunk különbséget tenni. Ez indokolja, hogy a 8.1. definícióban bevezetett merevséget szokás infinitezimális merevségnek is nevezni.

8.2. A rudakban ébred˝o er˝ok kiszámítása 8.2.1.

A rúdszerkezetek osztályozása

Ha egy rúdszerkezet nem merev, akkor két szomszédos csuklóját lerögzítve (és ezzel a merevtest-szer˝u mozgásokat kizárva) még további (valódi vagy infinitezimális) mozgások lehetségesek (lásd például a 8.1b ábrát, illetve a 8.2b ábrát). Emiatt az ilyen rúdszerkezeteket szokás dinamikailag határozatlannak, a mereveket pedig dinamikailag határozottaknak is nevezni. Egy másik fontos kérdés, hogy mikor lesz egy rúdszerkezet statikailag határozott, vagyis hogy ha két szomszédos csuklóját lerögzítjük (és ezzel a merevtest-szer˝u mozgásokat kizárjuk) majd bizonyos csuklóinál megterheljük, akkor a rudakban ébred˝o húzó, illetve nyomóer˝ok egyértelm˝uen meghatározhatóak-e. A 8.1a, 8.1c ábrán és a a 8.2a ábrán látható rúdszerkezetek ilyenek, de ha például a 8.1c ábrán látható

176

8. NÉHÁNY ALKALMAZÁS A STATIKÁBAN

rúdszerkezetet az 1-3 átló mentén egy további rúddal kib˝ovítenénk, akkor a rendszer statikailag határozatlanná válna. Az eddigiekb˝ol látszik, hogy ha egy síkbeli rúdszerkezet merev és az e 2n 3 reláció egyenl˝oséggel teljesül, akkor ez a rendszer szükségképp minimálisan merev, vagyis bármely rúdját elhagyva megsz˝unik a merevsége. Épp ezek az egyidej˝uleg statikailag és dinamikailag határozott rendszerek, a továbbiakban csak ezekkel foglalkozunk1 . A következ˝o szakaszban bemutatjuk az ilyen szerkezetek rúdjaiban ébred˝o er˝ok kiszámításának klasszikus módszerét.

8.2.2.

Maxwell–Cremona-diagram

A rudakról már korábban feltettük, hogy csak húzó- és nyomóer˝ot továbbíthatnak, és egy ilyen szerkezet akkor van nyugalomban, ha minden csuklóban a hozzá illeszked˝o er˝ok – részben a rúder˝ok, részben a csuklóban ható terhek – vektoriális összege zérus. Még ebben a szakaszban is csak kétdimenziós rúdszerkezetekkel foglalkozunk, így egy vasúti hidat úgy képzelhetünk el, mint például a 8.4. ábrán látható síkbeli rúdszerkezetet (illetve ebb˝ol két példányt párhuzamos síkokban). A két végén látható háromszögek azt szemléltetik, hogy az egyik parton fixen rögzíthetjük a hidat, míg (például a h˝o okozta hosszúságváltozások miatt) a másik oldalon vízszintes irányú mozgást megengedünk2 .

8.4. ábra Hogyan lehet kiszámítani az egyes rudakban a terhelés hatására ébred˝o er˝oket? Ezt egy még egyszer˝ubb példán, a 8.5a ábrán látható rúdszerkezeten szemléltetjük. Tegyük fel, hogy egy függ˝oleges T1 er˝o (8.5b ábra) képviseli a híd terhelését. Nyilvánvaló, hogy ezzel a feleakkora nagyságú, ellentétes irányú F2 , F3 er˝ok tartanak egyensúlyt (hisz az F3 -nak vízszintes komponense nem lehet, és akkor F2 -nek sem, nagyságuk pedig a szimmetria miatt azonos). Mivel a rudak csak húzó- és nyomóer˝ot továbbíthatnak, az F2 er˝ot csak a 8.6a ábrán látható két egyenes irányában ható er˝ok összege ellensúlyozhatja – ez csak a 8.6b ábrán látható F4 és F5 er˝okkel lehetséges (melyek vízszintes komponensei egymást, függ˝oleges komponensei az F2 er˝ot semlegesítik). Úgy is mondhatjuk, hogy a 8.6c 1 Ezt a megszorítást azért tesszük, hogy az ismertetend˝ o eredmények matematikailag minél egyszer˝ubb alakban adódjanak. Természetesen a gyakorlatban „túlbiztosított” (statikailag határozatlan) rendszereket készítenek, nehogy egyetlen rúd sérülése az egész rendszer merevségét veszélyeztesse. 2 Vegyük észre, hogy a bal oldali csukló teljes lerögzítésével és a jobb oldali csukló y koordinátájának lerögzítésével épp azt a három „szabadsági fokot” vettük el, amir˝ol a merevség definíciójakor esett szó.

˝ KISZÁMÍTÁSA 8.2. A RUDAKBAN ÉBREDO˝ EROK

177

4 8

F2 4

F3

5

6 8

5

6

7 T1

7 8.5a ábra

8.5b ábra

ábrán látható vektorsokszög „záródása” fejezi ki a csuklóra ható er˝ok egyensúlyát. Ebb˝ol nemcsak az olvasható le, hogy az 5. (és szimmetriaokokból a 7.) rúdban húzóer˝o és a 4. (és a szimmetria miatt a 6.) rúdban nyomóer˝o ébred, hanem ezen er˝ok nagysága is kiszámítható: a 8.6c ábrán látható háromszög oldalainak aránya azonos az er˝ok nagyságának az arányával. 4 F2

F4

F4

F5

F5

F2 5 8.6a ábra

8.6b ábra

8.6c ábra

Végül a 8.7. ábra a vagy b részén látható, hogyan lehet a 8. rúdban ébred˝o er˝ot meghatározni a fels˝o, illetve az alsó csuklóra ható vektorsokszögek záródásából. A 8.7c ábrán látható, a jobb oldali csuklóra vonatkozó vektorsokszöget csak a teljesség kedvéért rajzoltuk fel, ez a 8.6c ábra tükörképe. F5

T1

F4

F8 F6

F8 F6 8.7a ábra

F3 F7 8.7b ábra

F7 8.7c ábra

Vegyük észre, hogy mivel például a 4. rúdban nyomóer˝o ébred, ez a rúd mind a bal oldali, mind a fels˝o csuklót „nyomja”, tehát az F4 er˝o irányítása ellentétes a 8.6c

8. NÉHÁNY ALKALMAZÁS A STATIKÁBAN

178

és a 8.7a ábrán. Ugyanígy indokolható, hogy az F5 er˝o irányítása is ellentétes a 8.6b és a 8.7b ábrán, mivel az 5. rúd mind a bal oldali, mind az alsó csuklót „húzza”. Általában is elmondható, hogy a 8.5b ábrán látható T1 F2 F3 er˝ok a négy csuklóra vonatkozó négy vektorsokszög közül egyben szerepelnek, míg a rudakban ébF8 er˝ok mindegyike kétszer, egymással ellentétes irányítással. red˝o F4 Lehetséges a négy vektorsokszöget egyetlen rajzba foglalni (8.8a ábra – egyel˝ore ne tör˝odjünk az ábrába írt A B bet˝ukkel), ezen már csak az els˝o három er˝o irányát tüntettük fel (mert a többi két-két ellentétes iránya egymást „kioltotta”) – vegyük észre, hogy ez a három er˝o is egy záródó (példánkban elfajuló) vektorsokszöget alkot. Ez a rajz a rúdszerkezetnek (az adott terhelésre vonatkozó) Maxwell– Cremona-diagramja, ami tartalmazza minden rúdban ébred˝o er˝onek a nagyságát. C

4

6 8

D

5 A 4 2 1 C 8 6 3 7 B E 8.8a ábra

A

B

5

7

D

E

8.8b ábra

A rúdszerkezet Maxwell–Cremona-diagramját is vizsgálhatjuk egy G2 gráfként (ha eltekintünk az élek hosszától, egymással bezárt szögét˝ol – amelyekt˝ol persze a statikus nem fog eltekinteni). Ekkor G2 „lényegileg” a rúdszerkezet G1 gráfjának a duálisa kell hogy legyen (feltéve, hogy G1 síkbarajzolható, amit e szakasz hátralév˝o részében felteszünk), hisz a csuklóknak a G1 -ben egy-egy vágás (a csuklókhoz illeszked˝o rudak halmaza) felel meg, a G2 -ben pedig egy kör (a vektorsokszög). Nem meglep˝o, hogy a statikusok is felfedeztek a diagram megszerkesztésére egy olyan geometriai módszert, ami a szokásos dualitásképzésre emlékeztet (ahol a tartományokban felvett pontok lettek a duális gráf pontjai). Itt az a különbség, hogy a terhelés(-ek) és az ellener˝o(-k) vektorait (a fenti példában a T1 F2 F3 er˝oket) el˝oször meghosszabbítjuk (gondolatban a végtelenig), így a rúdszerkezet G1 gráfjának nem egyetlen küls˝o (nem korlátos) tartománya lesz, hanem példánkban három, általában pedig annyi, mint a terhelések és az ellener˝ok együttes száma. Eddigi példánkban a 8.5a ábra rúdszerkezete két bels˝o, A B tartományt, a 8.5b ábrán feltüntetett er˝ok három további C D E tartományt határoznak meg (lásd

8.3. MINIMÁLIS MEREV RÚDSZERKEZETEK

179

a 8.8b ábrát). Ezek a tartományok felelnek meg a 8.8a ábrán látható, a megfelel˝o bet˝uvel megjelölt pontoknak. Ellentétben a szokásos dualitásszerkesztési módszerrel, itt általában nem tudjuk szépen egymásra rajzolni a gráfot és a „duálisát”: míg ott az egymásnak megfelel˝o élek metszették egymást (gondoljunk a f˝ovárosokat összeköt˝o vasútvonalra, mely metszi az országhatárt), addig itt éppen ellenkez˝oleg, párhuzamosak. A rúder˝ok kiszámításának ezt a módszerét (az ún. Bow-módszert) ma már sokan f˝oleg kultúrtörténeti kuriózumnak tartják, hisz a számítógépes tervezési eljárások elterjedése szükségtelenné tette, hogy a statikus pontról pontra kézzel szerkessze meg a rúder˝oket. Ennek ellenére ma is tanítják ezt a módszert, mert segíti az épít˝omérnököket a „statikai érzék” kialakításában. Ennek az eljárásnak egyéb részleteivel nem foglalkozunk, de megjegyezzük, hogy a diagram nem a rúdszerkezetre, hanem annak konkrét terhelésére vonatkozik: más teher hatásának a vizsgálatakor megváltoznak a rudakban ébred˝o er˝ok és ez nemcsak a diagram alakját (az élek hosszainak arányát) változtatja meg, hanem esetleg magát a gráfot is, hisz elképzelhet˝o, hogy bizonyos terhelés hatására egy adott rúdban nem ébred er˝o, és ilyenkor a végeinek megfelel˝o pontok egybeesnek.

8.3. Minimális merev rúdszerkezetek kombinatorikus jellemzése 8.3.1.

Generikus merevség

Már korábban láttuk, hogy egy n csuklót és e rudat tartalmazó síkbeli rúdszerkezet minimális merev voltának szükséges feltétele, hogy e 2n 3 teljesüljön. Ez a feltétel természetesen nem elégséges, gondoljunk például a 8.9. ábrán látható rúdszerkezetre: a „bal oldali” négyzetben a szükségesnél eggyel több átló van, a „jobb oldali” négyzet viszont ugyanúgy mozogni fog, mint a 8.1b ábrán látható rúdszerkezet.

8.9. ábra A 8.9. ábrán nyilván az volt a baj, hogy a bal oldali négyzet egy statikailag határozatlan („túl sok rudat tartalmazó”) részrendszer, így „másutt nem jut elég rúd” a merevség biztosításához. A „túl sok rúd” közül az egyik elvileg elhagyható lenne anélkül, hogy az esetleges merevséget elrontaná, viszont összesen csak 2n 3 rúd van. Ennek az észrevételnek a felhasználásával kimondhathatjuk az alábbi lemmát: 8.3. Lemma. Ha egy síkbeli rúdszerkezet minimális merev, akkor G gráfjára vonatkozó e 2n 3 egyenl˝oségen kívül az e 2n 3 relációnak is teljesülnie kell G

8. NÉHÁNY ALKALMAZÁS A STATIKÁBAN

180

minden legalább 2 pontú, feszített G részgráfjára, ahol e és n jelöli a G éleinek, illetve pontjainak a számát.3 Természetesen vet˝odik fel az a kérdés, hogy ez az er˝osebb szükséges feltétel már elégséges-e ahhoz, hogy egy rúdszerkezet minimális merev legyen a síkban. A válasz sajnos nemleges: a 8.2. ábra két rúdszerkezete közül a 8.2a ábrán látható minimális merev, a 8.2b ábrán látható nem, holott ugyanaz a gráfjuk. Ez az ellenpélda arra világít rá, hogy pusztán a rúdszerkezet gráfja nem tartalmaz elég információt a merevség eldöntéséhez. Egy másik példa látható a 8.10. ábrán. Ha a K3 3 Kuratowski-féle gráfot a bal oldali módon valósítjuk meg, akkor merev rendszerhez jutunk, míg a jobb oldali rendszer nem merev – belátható, hogy a nyilak egy infinitezimális mozgást határoznak meg.

8.10a ábra

8.10b ábra

A 8.2. és a 8.10. ábrán látható 2-2 rúdszerkezetr˝ol tehát elmondható, hogy gráfjaik izomorfak, de mindkét párból csak a bal oldaliak merevek. A 8.2b ábra rúdszerkezete azért nem merev, mert az 1., 2. és 3. sorszámú csuklók „véletlenül” egy egyenesbe estek; a 8.10b ábrán látható rúdszerkezetr˝ol pedig belátható, hogy azért nem merev, mert a hat csukló „véletlenül” egy kúpszeleten (esetünkben körön) van. Általában is megállapítható, hogy ha két rúdszerkezet gráfja izomorf, de csak az els˝o merev, akkor a második csuklóinak koordinátái között valami speciális algebrai kapcsolatnak kell teljesülnie: a merevség eldöntéséhez használandó A mátrixot a gráf ismeretében szimbolikusan már fel tudjuk írni, és amikor az egyes xi x j vagy yi y j kifejezésekbe konkrét numerikus értékeket helyettesítünk be, akkor a bal oldali esetekben r A 2n 3, a jobb oldali esetekben r A 2n 3 lesz az eredmény, vagyis A sorai a bal oldali esetekben lineárisan függetlenek, a jobb oldali esetekben lineárisan összefügg˝oek lesznek. A fentiekkel ellentétben akármilyen geometriai adatokkal készült egy rúdszerkezet, biztos nem merev, ha gráfja a négy hosszú kör. Más szavakkal: a 4 hosszú kört nem lehet merev rúdszerkezetként megvalósítani, a 8.2a ábra gráfját vagy a 8.10a ábrán látható K3 3 gráfot merevként is lehet. 3 Az intuíciónak némiképp ellentmondani látszik, hogy az e 2n 3 reláció szükséges a merevséghez (tehát az, hogy viszonylag kevés rúd legyen a rúdszerkezet valamely részében). Vegyük azonban észre, hogy minimális merev rúdszerkezetekr˝ol van szó, tehát azt kell tiltani, hogy lokálisan túl sokat használjunk fel.

8.3. MINIMÁLIS MEREV RÚDSZERKEZETEK

181

8.4. Definíció. Egy gráf generikusan merev (a síkban), ha létezik olyan (síkbeli) merev rúdszerkezet, melynek o˝ a gráfja. 8.5. Tétel. Ha egy gráf generikusan merev, akkor „majdnem minden” megvalósítása merev (vagyis, ha az n pont összesen 2n koordinátáját egyenletes eloszlással véletlenszer˝uen választjuk ki az összes valós szám-2n-es közül, akkor 1 valószín˝uséggel merev rúdszerkezethez jutunk). Bizonyítás (vázlat): Ismert, hogy a valós számok közül majdnem mindegyik irracionális (hisz a kontinuum-sok valós szám közül a racionálisak csak egy megszámlálható részhalmazt alkotnak). Hasonlóképp az irracionális számok között csak megszámlálható sok algebrai szám van (vagyis amelyik el˝oáll egy egész együtthatós, nem azonosan zérus polinom gyökeként), a többi szám transzcendens. Egyetlen szám transzcendens voltának általánosításaképp k darab számról akkor mondjuk, hogy algebrailag függetlenek a racionális test felett, ha nem létezik olyan egész együtthatós, nem azonosan zérus k-változós polinom, melynek ezek lennének a gyökei. (Ilyenkor persze külön-külön mind a k szám is transzcendens.) Ha a tételben említett valós szám-2n-esek közül olyat választunk, melyben a 2n darab szám algebrailag független a racionális test felett, akkor az ezekkel a koordinátákkal megvalósított rúdszerkezet merev lesz (hisz koordinátái között semmiféle algebrai kapcsolat nem lehet). Így csak azt kell végiggondolnunk, hogy véletlenszer˝uen választva a valós szám-2n-esek közül 1 valószín˝uséggel algebrailag független számhalmazt kapunk, hisz az összes egész együtthatós (akárhány változós) polinomok együtt is csak egy megszámlálható számosságú halmazt alkotnak.

8.3.2.

Laman, Lovász és Yemini tételei

Az el˝oz˝o szakasz elején láttuk, hogy pusztán a rúdszerkezet gráfja nem tartalmaz elég információt a merevség eldöntéséhez. Az a kérdés azonban eldönthet˝o, hogy egy adott gráf generikusan merev-e. Csak azzal az egyszer˝ubb kérdéssel foglalkozunk, hogy minimális ilyen tulajdonságú-e a gráf. 8.6. Definíció. Jelöljük Pk -val a következ˝o problémát: Input egy gráf, kérdés, hogy a k-dimenziós térben minimális generikusan merev-e. 8.7. Lemma. P1

P.

Bizonyítás: Az 1-dimenziós térben (vagyis az egyenesen) a nem merevtest-szer˝u mozgás azt jelentené, hogy a csuklók távolsága változhat. Így egy rúdszerkezet akkor és csak akkor generikusan merev, ha a gráfja összefügg˝o, speciálisan P1 -re a válasz akkor és csak akkor igenl˝o, ha G fa – ez pedig polinomid˝oben eldönthet˝o. 8.8. Lemma. Pk

NP minden k-ra.

8. NÉHÁNY ALKALMAZÁS A STATIKÁBAN

182

Bizonyítás (vázlat): Ha egy gráf generikusan merev, akkor létezik olyan merev rúdszerkezet, melynek o˝ a gráfja. Legyen tanú ez a rúdszerkezet (a csuklók koordinátáinak konkrét megadásával). A merevséget a konkrét numerikusan adott A mátrix rangjának kiszámításával ellen˝orizhetjük, ez például a Gauss-eliminációval polinomid˝oben elvégezhet˝o. Annak ellen˝orzése ezután, hogy minimális merev-e, egyszer˝uen az e 2n 3 egyenl˝oség ellen˝orzését jelenti. (k 3 esetén is hasonlóan járhatunk el, értelemszer˝u módosításokkal, lásd a következ˝o fejezetet.) A bizonyításban az az egyetlen hiányosság, hogy be kellene látnunk, hogy a tanú hossza is felülr˝ol becsülhet˝o az input hosszának polinomjával. Ez nem magától értet˝od˝o, hisz hiába lesz a gráf majdnem minden megvalósítása merev, az ennek bizonyításakor használt gondolatmenetre most nem hivatkozhatunk, mert nekünk most nem transzcendens, hanem racionális (s˝ot, viszonylag kevés számjeggyel leírható) számok kellenek. 8.9. Tétel. P2

co-NP.

A bizonyítás az alábbi tételb˝ol következik: 8.10. Tétel. (Laman) Egy G gráf akkor és csak akkor minimális generikusan merev a síkban, ha az e 2n 3 egyenl˝oségen kívül az e 2n 3 reláció is teljesül G minden legalább 2 pontú, feszített G részgráfjára, ahol e és n jelöli a G éleinek, illetve pontjainak a számát. Az utóbbi tételb˝ol, mely tehát azt fejezi ki, hogy a szakasz elején szerepl˝o lemma szükséges feltétele generikus esetben elégséges is, automatikusan következik a co-NP-beliség: Ha G nem minimális generikusan merev a síkban, akkor vagy e 2n 3, vagy egy olyan feszített részgráfja lesz a tanú, melyre e 2n 3. Laman tételében a feltétel elégségességének a bizonyításából csak néhány gondolatot ismertetünk. (1) Ha van G-ben egy másodfokú p pont, akkor jelölje a b a két szomszédját. Ha G rendelkezett a kívánt tulajdonsággal, akkor az a gráf is rendelkezni fog, melyet a p pont és a p a p b élek elhagyásával kapunk. Ha ez utóbbi megvalósítható egy merev R rúdszerkezetként a síkban, akkor G is, csak arra kell ügyelni, hogy a p-nek megfelel˝o csuklót (és az ezt az R-hez rögzít˝o két rudat) úgy helyezzük el, hogy az a b p pontoknak megfelel˝o csuklók ne legyenek egy egyenesben. (2) Hasonlóképp, ha van g-ben egy harmadfokú q pont, akkor jelölje a b és c a szomszédjait. Ha G rendelkezett a kívánt tulajdonsággal, akkor azon három gráf közül is legalább egy rendelkezni fog vele, melyeket a q pont és a q a q b q c élek elhagyásával, továbbá az a b c pontok közül kett˝onek új e éllel való összekötésével kapunk. Ha ez utóbbi három gráf közül valamelyik megvalósítható egy merev R rúdszerkezetként a síkban, akkor G is, csak arra kell ügyelni, hogy (az e-nek megfelel˝o rúd eltávolítása után) a q-nek megfelel˝o csuklót (és az ezt az R-hez rögzít˝o három rudat) úgy helyezzük el, hogy az a b c q pontoknak megfelel˝o csuklók koordinátáira ne teljesüljön egy bizonyos magasabb fokú algebrai egyenlet. (3) Ezzel a két m˝uvelettel (az ún Henneberg-féle transzformációkkal) G lépésr˝ol lépésre lebontható egy háromszögre, illetve megfordítva, a G-t megvalósító merev

8.4. RÚDSZERKEZETEK RÖGZÍTÉSE

183

rúdszerkezet felépíthet˝o ebb˝ol a háromszögb˝ol. A lebontás során soha nem akadhatunk el, vagyis mindig van legfeljebb harmadfokú pont. Ha ugyanis egy gráfban minden pont foka legalább negyedfokú, akkor éleinek száma (vagyis a fokszámok összegének a fele) legalább a pontszám kétszerese lenne (nem pedig 2n 3). A P2 probléma eszerint NP co-NP-beli, így nem meglep˝o az alábbi eredmény: 8.11. Tétel. (Lovász, Yemini) Adható olyan, a pontszámban polinom lépésszámú algoritmus, mely eldönti egy gráfról, hogy minimálisan generikusan merev-e a síkban. Bizonyítás: A 2.32. tételb˝ol könnyen belátható, hogy Laman tételének szükséges és elégséges feltétele ekvivalens az alábbi feltétellel: A G gráfra teljesüljön az e 2n 3 egyenl˝oség, és bármelyik f élének megduplázásával keletkez˝o 2 n 1 él˝u G f gráf élei lefedhet˝ok legyenek két erd˝ovel, vagy ami ezzel ekvivalens, a G f álljon el˝o két éldiszjunkt feszít˝ofa uniójaként. Ez a tulajdonság viszont nyilván polinomid˝oben ellen˝orizhet˝o, hisz csak azt kell minden f -re ellen˝orizni, hogy G f körmatroidjának az önmagával vett összege a szabad matroid-e.

8.4. Rúdszerkezetek rögzítése Egy R rúdszerkezet merevsége – mint láttuk – azt jelenti, hogy R-nek csak merev test-szer˝u mozgásai lehetnek. Ha ezeket lehetetlenné tesszük (például a 8.4. vagy a 8.5. ábrán látható módon, vagyis úgy, hogy egy A csuklóját rögzítjük, egy másik B csuklójának pedig csak egy kitüntetett – az ábrákon vízszintes – irányú elmozdulását engedjük meg), akkor R minden pontját lerögzítettük.4 Ha ehelyett legalább két csuklóját rögzítjük, akkor annál inkább igaz, hogy ezzel minden pontját lerögzítettük. Ha azonban egy R rúdszerkezetr˝ol csak azt tudjuk, hogy két csuklóját lerögzítve minden pontját lerögzítettük, akkor ebb˝ol visszafelé nem következik, hogy R merev lenne – gondoljunk a 8.1b ábrán látható R4 rúdszerkezetre, ha két átellenes csuklót választunk ki. Általában: 8.12. Definíció. Jelöljük Qk -val a következ˝o problémát: Input egy rúdszerkezet és egy t szám, kérdés, hogy a k-dimenziós térben kiválasztható-e a rúdszerkezetnek legfeljebb t csuklója úgy, hogy ezek lerögzítésével már a rúdszerkezet minden pontját lerögzítettük. 8.13. Lemma. Q1

P.

4 Fontos persze, hogy az A B csuklók által meghatározott egyenes ne legyen mer˝ oleges a kitüntetett irányra.

8. NÉHÁNY ALKALMAZÁS A STATIKÁBAN

184

Bizonyítás: A 8.7. lemmában mondottak alapján nyilvánvaló, hogy a rúdszerkezet gráfjának minden összefügg˝o komponenséb˝ol legalább egy csuklót rögzítenünk kell (és mindegy, hogy melyiket). 8.14. Tétel. (Lovász) Q2

P.

Bizonyítás: Legyen az adott R rúdszerkezet csuklóinak a száma n. Az R mátrixának az oszlopai az x˙1 x˙2 x˙n y˙1 y˙2 y˙n halmazon egy matroidot koordinátáznak a valós test felett. A Q2 kérdésre a válasz akkor és csak akkor igenl˝o, ha van a rúdszerkezetnek t darab olyan csuklója, hogy a nekik megfelel˝o x˙ j y˙ j értékeket 0vá téve a többi ismeretlen már csak 0 lehet. Ehhez pontosan az kell, hogy legyen ebben a matroidban olyan 2n 2t-elem˝u független halmaz, mely minden x˙ j y˙ j párból vagy mindkét elemet tartalmazza, vagy egyiket sem. Ez épp a matroidpárosítási probléma, amely a valós test felett reprezentált matroidokra polinomid˝oben megoldható.

8.5. 3-dimenziós rúdszerkezetek Az eddig tárgyalt kérdések magasabb dimenziós terekben is tárgyalhatóak. A rúdszerkezet mátrixa ilyenkor dn oszlopból áll (ahol d a tér dimenziója), és könny˝u belátni, hogy a merevtest-szer˝u mozgások e térben d 2 1 dimenziós alteret alkotnak5 . 3n 6 feltétellel definiáljuk és ebb˝ol azonnal Így a térbeli merevséget az r A adódik, hogy egy n csuklót és e rudat tartalmazó térbeli rúdszerkezet merevségének szükséges feltétele, hogy e 3n 6 teljesüljön. A P3 problémáról (minimális generikusan merev-e a térben egy adott gráf) már láttuk, hogy NP-beli. Nyitott probléma, hogy co-NP-beli-e. A Laman-tétel analógiájaképp megfogalmazható feltétel (az e 3n 6 egyenl˝oségen kívül az e 3n 6 reláció is teljesüljön G minden legalább 2 pontú feszített G részgráfjára, ahol e és n jelöli a G éleinek, illetve pontjainak a számát) persze szükséges, de biztosan nem elégséges: a 8.11. ábrán látható gráf a legegyszer˝ubb ellenpélda – ellen˝orizhet˝o, hogy ezt a feltételt teljesíti, azonban nyilván nem merev, hisz az A B csuklói által meghatározott egyenes mentén a rúdszerkezet egyik fele elfordulhat a másik körül (mint egy ajtó a zsanérjain az ajtókerethez képest), és ez a rudak hosszának bármilyen kombinációja mellett teljesül, tehát „generikusan nem merev” ez a gráf. Ennek megfelel˝oen a P3 probléma bonyolultsága nem ismert – sokan azt sejtik, hogy P3 P lesz a valódi válasz. 8.15. Tétel. (Mansfield) A Q3 probléma NP-teljes. 5A

legfontosabb d 3 esetre gondoljuk végig, hogy egy test azáltal rögzíthet˝o, ha három, nem egy egyenesbe es˝o pontját rögzítettük. E pontoknak 3-3 koordinátája van, viszont a pontok közötti távolságok adottak, tehát 3 3 3 6 szabadsági fokunk van.

8.6. SÍKBELI NÉGYZETRÁCSOK ÁTLÓS RUDAKKAL

185

A

B 8.11. ábra

A bizonyítást nem részletezzük. Az NP-beliség nyilvánvaló, hisz egy konkrét numerikusan adott mátrix rangját kell ellen˝oriznünk, másfel˝ol a 3-SAT probléma egy változatát lehet erre a problémára visszavezetni.

8.6. Síkbeli négyzetrácsok merevítése átlós rudakkal Vegyünk egy k l-es négyzetrácsot, ami merev rudakból és (a rácspontokban) csuklókból áll. Egy ilyen rúdszerkezet mozgását nagyon egyszer˝uen le lehet írni. Tekintsük ugyanis egy négyzet szemben lév˝o oldalait. Az itt lév˝o rudak a rács bármely elmozdulása után párhuzamosak maradnak, ami azt jelenti, hogy a rács deformációját le tudjuk írni a sorok és oszlopok elmozdulásával. A 8.12. ábrán látható átlós merevít˝o rúd hatását is egyszer˝uen megadhatjuk: x2 y1 , vagyis a második sor és az els˝o oszlop elmozdulásának mértéke megegyezik. A fenti típusú rúdszerkezetekhez tudunk konstruálni egy páros gráfot: a rács sorainak, illetve oszlopainak feleltessünk meg csúcspontokat, így kapunk két csúcshalmazt. Két csúcs akkor és csak akkor legyen éllel összekötve, ha a csúcsoknak megfelel˝o sor és oszlop metszetében lév˝o négyzetben található átlós merevít˝o rúd, azaz ha a sor és az oszlop elmozdulása a rács bármely elmozdulásánál megegyezik. ˝ bizonyították ennek Ezt a gráfelméleti modellt Bolker és Crapo alkotta meg. Ok segítségével, hogy egy síkbeli, négyzetrács alakú rúdszerkezet akkor és csak akkor lesz infinitezimálisan merev, ha a rúdszerkezethez tartozó páros gráf összefügg˝o. Ebben az esetben ugyanis a sorok és oszlopok elmozdulásai (röviden az xi és y j mennyiségek) páronként megegyeznek, így bármely elmozdulás szükségszer˝uen az egész rúdszerkezet merevtest-szer˝u elmozdulása lesz. Ennek alapján azt is megállapíthatjuk, hogy egy k l-es négyzetrácsot minimálisan kimerevít˝o rendszer k l 1 átlós rúdból áll, amelyeknek megfelel˝o élek a kapcsolódó gráfban egy feszít˝ofát alkotnak.

8. NÉHÁNY ALKALMAZÁS A STATIKÁBAN

186

y2

y1

x2 x1 8.12. ábra

Ha adott átlós merevít˝o rudaknak egy k l 1 -elem˝u rendszere, akkor annak eldöntése, hogy ez merevvé teszi-e a négyzetrácsunkat, mindössze O k l lépést igényel (ennyi lépés szükséges a gráf összefügg˝oségének ellen˝orzéséhez, például szélességi kereséssel). Összehasonlításképpen: a fejezet elején említett módszerrel a k 1 l 1 csuklót tartalmazó rúdszerkezet mátrixának rangmeghatározása O k l 6 lépésben számítaná ki ugyanazt.

8.7. Síkbeli négyzetrácsok merevítése átlós huzalokkal A valóságban a merevítéshez használt rudak nem viselkednek tökéletes merevít˝oként: amíg a feszítésnek jól ellenállnak, addig a nyomást nem képesek ugyanolyan mértékben torzulásmentesen elviselni. Ha tehát pontosabban szeretnénk modellezni a valóságot, akkor új eszközöket kell használnunk a merevítéshez. Használhatunk egyrészt továbbra is rudakat, amelyek a feszítésnek és a nyomásnak egyaránt ellenállnak, másrészt huzalokat, amelyek csak a feszítésnek, illetve támaszokat, amelyek csak a nyomásnak állnak ellen. Mivel a négyzetrácsban bármely átlós huzal helyettesíthet˝o egy, az eredeti átlóra mer˝oleges irányú támasszal és viszont, a továbbiakban a rudakon kívül csak huzalokat fogunk használni. (Az ábrákon a rudakat folytonos, a huzalokat szaggatott vonallal fogjuk jelölni.) A rúddal ellentétben az átlós huzal csak az egyik irányban tudja megakadályozni a négyzet deformációját, ami azt jelenti, hogy egy egyenl˝otlenséget tudunk felírni a négyzet oldalainak elmozdulásai között. Az egyenl˝otlenség iránya természetesen függ a huzal átlójának irányától, így a gráfelméleti modellben az átló irányának is szerepet kell kapnia: a huzaloknak irányított éleket fogunk megfeleltetni, az élek irányítását pedig a huzalok iránya határozza meg. Ha egy négyzetben a huzal

8.8. EGYSZINTES ÉPÜLETEK ÁTLÓS RUDAKKAL

187

északkelet-délnyugat irányú, akkor a négyzethez tartozó sornak megfelel˝o csúcsból mutasson egy irányított él az oszlopnak megfelel˝o csúcsba. (Lásd a 8.13. ábrán.) Az él irányítása egyben az egyenl˝otlenség irányát is jelzi, az el˝oz˝o esetben például: xi y j . Ha rudakat is használunk merevítésre, akkor azoknak továbbra is irányítatlan éleket fogunk megfeleltetni, mivel hatásuk megfelel két ellentétes irányú huzalénak. Baglivo és Graver megmutatták, hogy egy négyzetrács alapú rúdszerkezet átlós huzalokkal (és esetleg átlós rudakkal) akkor és csak akkor lesz infinitezimálisan merev, ha a hozzá kapcsolódó irányított páros gráf er˝osen összefügg˝o (az irányítatlan élek természetesen két párhuzamos, ellentétesen irányított élnek felelnek meg). A 8.13. ábrán például nem vezet kifelé irányított él az y3 y5 x4 csúcshalmazból, így a rúdszerkezet nem merev. Mivel minden csúcsba kell befelé és kifelé is mutatnia élnek, ezért legalább 2 max k l átlós huzalra van szükség a k l-es négyzetrács merevvé tételéhez (ha nem használhatunk átlós rudakat). x1

y1

x2

y2

x3

y3

x4

y4

y5

8.13. ábra

8.8. Egyszintes épületek átlós rudakkal Egyszintes épületen egy négyzetrácsot értünk a térben, melynek minden csuklója egy-egy egységnyi hosszúságú függ˝oleges rúddal a síkhoz van rögzítve. (Úgy képzeljük, hogy a függ˝oleges rudak alsó végei is csuklókban végz˝odnek.) Az els˝o észrevétel, ami ezzel kapcsolatban felmerül, hogy ha egy átlós merevít˝o rudat teszünk egy függ˝oleges falba, akkor az a fal már nem tud deformálódni a saját síkjában, a síkjára mer˝olegesen azonban mozoghat. Ez azt is eredményezi, hogy ha két metsz˝o függ˝oleges falba teszünk átlós rudat, akkor a falak metszetében lév˝o függ˝oleges rudat rögzítettük, annak már semmilyen mozgása nem lehet. Ha tehát az épület négy küls˝o falába ily módon átlós rudakat teszünk, akkor a térbeli problémánkat visszavezettük egy speciális síkbeli problémára: adott egy síkbeli négyzetrács, amelynek a négy sarka le van rögzítve, és ezt szeretnénk merevvé tenni. (Természetesen a sarkok lerögzítése után már csak infinitezimális elmozdulások lehetségesek – lásd kés˝obb a 8.15. ábrát –, de ezeket is meg akarjuk szüntetni.) Az a feltétel, hogy a rács négy sarka a síkhoz van rögzítve, azt jelenti, hogy a sorok, illetve az oszlopok elmozdulásainak összege nullával kell hogy megegyezzen: x1

x2

xk

0

y1

y2

yl

0

8. NÉHÁNY ALKALMAZÁS A STATIKÁBAN

188

Ezen egyenletek felhasználásával belátható, hogy egy k l méret˝u egyszintes épület esetén a minimálisan szükséges átlós rudak száma k l 2 (természetesen a falakban lév˝o négy rúdon kívül). 8.16. Tétel. (Crapo) Az egyszintes épületet, amelynek a négy küls˝o falában egyegy átlós merevít˝ot már elhelyeztünk, a „mennyezetben” lév˝o átlós rudak egy halmaza akkor és csak akkor tesz merevvé, ha a rudakhoz konstruált páros gráf vagy összefügg˝o vagy egy aszimmetrikus 2-komponens˝u gráf. Az aszimmetria azt jelenti, hogy V1 A V2 A

V1 B V2 B

0

ahol V1 és V2 az összefügg˝o komponensek csúcshalmazait, míg A és B a páros gráf két csúcsosztályát jelöli. A 8.14. ábrán láthatunk két négyzetrácsot és a hozzájuk tartozó 2-komponens˝u erd˝oket. A sorok és oszlopok számainak aránya az els˝o gráf két komponensében 3:3, illetve 3:6, így a gráf aszimmetrikus, ami azt jelenti, hogy az els˝o rúdszerkezet merev. Ugyanezek az arányok a második gráfban 2:3, illetve 4:6, vagyis megegyeznek, a gráf szimmetrikus. A tétel szerint a második rúdszerkezet nem merev, mint az a 8.15. ábrán látható. (Könnyen beláthatjuk azt is, hogy az átlós rudak akkor és csak akkor teszik merevvé a rúdszerkezetet, ha a sorok és oszlopok megfelel˝o permutációját követ˝oen, „blokkdiagonális alakra” hozva a rácsot, a két komponens által meghatározott három speciális pont, az ábrán u v és w pontok, nem kollineárisak.) Ezek alapján könnyen belátható, hogy egy gráf aszimmetrikus 2-komponens˝u erd˝oi egy matroid bázishalmazát alkotják. Ez tetsz˝oleges, nem feltétlenül páros gráfokra is általánosítható. u

u v v

w

8.14a ábra

w

8.14b ábra

8.10. AJÁNLOTT IRODALOM

189

u v

w 8.15. ábra

8.9. Két további megjegyzés Mind a 8.6., mind a 8.8. szakaszban látott rúdszerkezetek esetén a merevítéshez szükséges átlós rudak minimális rendszerei egy-egy matroid bázisait alkotják. (A síkbeli esetben egy páros gráf körmatroidjának a bázisait, az egyszintes épületek esetében egy bonyolultabb, általában nem grafikus matroidéit.) Mivel a matroidok körében a „legolcsóbb” bázis a mohó algoritmus segítségével polinomid˝oben megtalálható, a merevítések során felmerül˝o speciális igényeket is figyelembe lehet venni. Ha a „megrendel˝o” azt kívánja, hogy minimális számú átlóval merevítsük ki a rúdszerkezetet és közben bizonyos „szobákat” lehet˝oleg ne csúfítsunk el átlókkal, akkor a „legszebb” megoldás is polinomid˝oben nyerhet˝o. Utaltunk már rá, hogy a valóságban olyan rúdszerkezeteket terveznek, melyekben nem csak épp a merevséghez szükséges minimális számú rúd található, hiszen akkor egyetlen rúd sérülése az egész rendszer merevségét veszélyeztetné. Így természetes lenne a 8.6. és 8.7. szakaszokban leírt irányítatlan, illetve irányított gráfokat többszörösen összefügg˝ové tenni. A szakirodalomban található legtöbb olyan algoritmus, mely a gráfok összefügg˝oségi számának növelését minimális számú további él behúzásával éri el, nem tör˝odik azzal, hogy a gráf páros volt, és a páros voltát meg is kell o˝ riznünk; ilyen algoritmust el˝oször J. Bang-Jensen, H. N. Gabow, Jordán Tibor és Szigeti Zoltán adott.

8.10.

Ajánlott irodalom

[1] J. A Baglivo és J. E Graver, 1983. Incidence and Symmetry in Design and Architecture, Cambridge University Press, Cambridge. [2] Cholnoky Tibor, 1969. Mechanika I. Statika, Tankönyvkiadó, Budapest, 1969. [3] W. Whiteley, 1997. Rigidity and scene analysis. In: J. E. Goodman és J. O’Rourke (szerk): Handbook of Discrete and Computational Geometry, CRC Press, Boca Raton. (2nd edition, 2004)

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF