78
Budapest Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Számítástudományi és Információelméleti Tanszék Rendszeroptimalizálás – BMEVISZM117 Rendszeroptimalizálás Vizsga tételsor jegyzet Szerző: Gábor Bernát 2013. január 19.

primeranks.netprimeranks.net/yeti/University/msc/ropi/rendszeroptimiz... · 2013-01-19 · 4 Tartalomjegyzék 2. Matroidok 35 8. Matroiddefiniciójaésarangfüggvényszubmodularitása

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Budapest Műszaki és Gazdaságtudományi EgyetemVillamosmérnöki és Informatikai Kar

Számítástudományi és Információelméleti Tanszék

Rendszeroptimalizálás – BMEVISZM117

RendszeroptimalizálásVizsga tételsor jegyzet

Szerző:Gábor Bernát

2013. január 19.

2

Tartalomjegyzék

Tartalomjegyzék 3

1. Lineáris programozás 71. Egerváry algoritmusa, az optimális hozzárendelés problémája . . . . 7

1.1. Magyar módszer . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2. Egerváry algoritmusa . . . . . . . . . . . . . . . . . . . . . . . . 91.3. Az algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2. A lineáris programozás alapfeladata . . . . . . . . . . . . . . . . . . . . 132.1. Kétváltozós feladat grafikus megoldása . . . . . . . . . . . . . 132.2. Fourier-Motzkin elimináció . . . . . . . . . . . . . . . . . . . . 14

3. Farkas-lemma (két alakban), a lineáris program célfüggvény korlá-tossága . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.1. 1–es alak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2. 2–es alak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3. Korlátosság . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4. A lineáris programozás dualitás tétele . . . . . . . . . . . . . . . . . . 214.1. A lineáris programozás dualitás tétele (két alakban) . . . . . 214.2. LP bonyolultság . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5. Egészértékű programozás . . . . . . . . . . . . . . . . . . . . . . . . . . 235.1. Egészértékű programozás . . . . . . . . . . . . . . . . . . . . . . 235.2. A korlátozás és szétválasztás az IP feladatra . . . . . . . . . . 245.3. Gyakorlati tanácsok . . . . . . . . . . . . . . . . . . . . . . . . . 25

6. Totálisan unimoduláris mátrixok és alkalmazásai . . . . . . . . . . . . 276.1. Maximális összsúlyú párosítás IP feladatként . . . . . . . . . . 286.2. Intervallumgráf . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

7. A lineáris és egészértékű programozás alkalmazása hálózati folyam-problémákra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317.1. Minimális költségű folyam keresése . . . . . . . . . . . . . . . . 337.2. Több termékes folyam . . . . . . . . . . . . . . . . . . . . . . . 34

4 Tartalomjegyzék

2. Matroidok 358. Matroid definiciója és a rangfüggvény szubmodularitása . . . . . . . 35

8.1. Rangfüggvény szubmodularitása . . . . . . . . . . . . . . . . . 379. Mohó algoritmus matroidon és matroid megadása bázissal, duális

matroidok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399.1. Bázisos megadás . . . . . . . . . . . . . . . . . . . . . . . . . . . 409.2. Duális matroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419.3. A duális matroid rangfüggvénye . . . . . . . . . . . . . . . . . 41

10. Elhagyás, összehúzás, összeg,reprezentálhatóság . . . . . . . . . . . . 4311. Matroid osztályok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

11.1. Tuttle tételei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4811.2. Seymour tétel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

12. Matroidok összege, k-matroid-metszet probléma és bonyolultsága . . 4912.1. Matroid metszet probléma – MMPk . . . . . . . . . . . . . . . 4912.2. Bonyolultság . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

13. A k-matroid partíciós probléma – MPPk . . . . . . . . . . . . . . . . . 5113.1. Algoritmikus megoldás . . . . . . . . . . . . . . . . . . . . . . . 5113.2. 2-matroid-metszet probléma . . . . . . . . . . . . . . . . . . . . 53

14. k–polimatroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5514.1. k–polimatroid matching probléma . . . . . . . . . . . . . . . . 5514.2. Bonyolultság . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5614.3. Lovász–tétel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3. Kőzelitő és ütemező algoritmusok 5715. NP-nehéz feladatok polinomiális esetei, additív és multiplikativ hiba 57

15.1. Probléma osztályok . . . . . . . . . . . . . . . . . . . . . . . . . 5815.2. Additív hiba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6015.3. Multiplikatív hiba . . . . . . . . . . . . . . . . . . . . . . . . . . 61

16. Halmazfedés és a Steiner–fa . . . . . . . . . . . . . . . . . . . . . . . . 6316.1. Halmazfedés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6316.2. Steiner–fa probléma . . . . . . . . . . . . . . . . . . . . . . . . . 64

17. Az utazóügynök probléma . . . . . . . . . . . . . . . . . . . . . . . . . 6717.1. Metrikus utazó ügynök . . . . . . . . . . . . . . . . . . . . . . . 67

18. Teljesen polinomiális approximációs séma a részösszeg problémára . 6918.1. Részösszeg probléma . . . . . . . . . . . . . . . . . . . . . . . . 69

19. Ütemezési algoritmusok . . . . . . . . . . . . . . . . . . . . . . . . . . . 7319.1. 1∣∣Cmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7419.2. 1∣prec∣Cmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7419.3. 1∣∣∑Cj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7519.4. P2∣∣Cmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7519.5. P ∣∣Cmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Tartalomjegyzék 5

19.6. P ∣prec∣Cmax – Graham . . . . . . . . . . . . . . . . . . . . . . 7619.7. P ∣prec, pi = 1∣Cmax . . . . . . . . . . . . . . . . . . . . . . . . . 7719.8. P ∣in_tree, pj = 1∣Cmax – Hu algoritmusa . . . . . . . . . . . . 78

6 Tartalomjegyzék

1. fejezet

Lineáris programozás

1. Egerváry algoritmusa, az optimális hozzáren-delés problémája

Az optimális hozzárendelés problémája a következő kérdésre keresi a választ: ho-gyan rendelünk egymáshoz két halmaz elemeit valamilyen optimum kritérium sze-rint? Ilyen kritériumok lehetnek a maximális párosítás 1, minimális idő igény ésígy tovább. Grafikusan ábrázolva, legyen:

Elvégezendő munka – A

Rendelkezésre álló munkások – B

1. ábra: Egy optimális hozzárendelés probléma

Gráf alakban megfogalmazva, adott G = (V,E) gráf, ahol V = (A,B) és E =

(x, y), ahol x ∈ A és y ∈ B. Megkülönböztetünk 3 fajta helyzetet:Maximális párosítás problémája Ekkor azt szeretnénk, hogy a párosítások

száma minél nagyobb legyen.

Maximális súlyú párosítás problémája Itt létezik minden párosításnak egyjósági tényezője, egy súlya: w ∶ E → R; egy adottM párosítás esetén (M ⊂ E)

keressük azt, amely maximális összeget ad: max{∑e∈M w(e)}.1 Párosításnak nevezünk egyM élhalmazt, ha semelyik két élnek nincs közös pontja (független

él halmaz). Egy párosítás teljes, ha a gráf minden pontját lefedi.

8 Egerváry algoritmusa, az optimális hozzárendelés problémája

Maximális teljes párosítás problémája Most olyan párosítás halmazt keres-sünk, amely a lehető legtöbb párosítást létrehoz, a lehető legnagyobb összeg-gel. A teljes párositáshoz szükséges, hogy a vizsgált ponthalmaz páros legyen.Azt, hogy ez nem ekvivalens a korábbi feladattal a 2 ábra szemlélteti. Ekkora maximális súlyú párosítást az a2−b1 adja, míg a maximális teljes párosításproblémájára a helyes válasz az a1 − b1 és a2 − b2 él párok.

a1 a2

b1 b2

31 1

2. ábra: Maximális súlyú és teljes párosítás probléma

A maximális súlyú párosítás problémája visszavezethető a maximális tejles sú-lyú párosítás problémájára. A transzformációhoz a kevesebb csúcsú halmazt (Aés B közül) egészítsük ki, hogy a két halmaz számossága megegyezen. Majd ahiányzó és negatív súlyú éleken (a két halmazt közt) legyen w = 0.

1.1. Magyar módszerMegoldás ad a maximális párosítás problémára polinomiális időben. Induljunk kibármilyen meglévő párositásból, egy ilyent a 3 ábra mutat be.

B3 B2 B1

A3 A2 A1

3. ábra: Magyar módszer helyessége

Egy ilyen gráfon végezzük el a következő definiciókat:

Alternáló út olyan él sorozat (séta) amely A-ból indul és minden második élpárosításbeli.

Javító út olyan alternáló út amely B-ben végződik.

Ekkor a magyar módszer algoritmus lépései:

Lineáris programozás 9

1. Keresünk egy javító utat.

2. Cseréljük meg az út menetén a szerepeket:

• párosításbeli élek kivétele,• nem párosításbeli élek betétele.

3. Lépjünk, vissza az első lépéshez ameddig létezik javító út.Az algoritmus helyességének belátásához térjünk vissza a 3 ábrához, amely egy

köztes állapotot szemléltet. Legyen:(A1) – azon csúcsok halmaza, amelyet az M párosítás le nem fedett A–ban.

(B2) – A1–ből alternáló úton elérhető csúcsok halmaza,

(A2) – B2–hőz tartozó párosítás,Amennyiben az algoritmus leállt B2 halmaz csúcsainak végpontja A2 és A1 hal-

mazból induló élek, azaz B2 lefogó pontja 2 az A1 ∪A2 halmaznak. Azaz elmond-ható, hogy A3 és B2 lefogó pontja a gráfnak, ugyanakkor A3 és B2 elem–számamegegyezik a párosítás számával. A König tétel 3 értelmében ezért a párosításmaximális (∣M ∣ = ∣A3 ∪ B2∣ ⇒ ν(G) = τ(G) – |max független élhalmaz| = |minlefogó ponthalmaz|).

1.2. Egerváry algoritmusaAz Egerváry 4 algoritmus súlyozott páros gráfokra megadja a maximális összsúlyúteljes párosítást. Ehhez az algoritmus először definiálja a címkézés műveletet: min-den csúcshoz rendel egy valós értéket (c ∶ V → R) úgy, hogy minden él pár esetén(∀{x, y} ∈ E∣x ∈ A,y ∈ B) igaz a következő kifejezés: c(x)+ c(y) ≥ w(e). Amennyi-ben c(x)+c(y) = w(e) legyen az él „piros.” E címkézés mellet: ∑M w(e) ≤ ∑V c(v),azaz a maximális összsúlyú teljes párosítás összsúlya kisebb, mint a címkézés ős-szege.

Bizonyítás, adódik a definicióból:

∑M

w ≤∑M

[c(x) + c(y)] =∑V

c(v)

Lemma: Ha M–ben ∀ él piros, a párosítás maximális.2A lefogó ponthalmaz egy adott G (rész)gráf minden élének legalább egyik végpontját tartal-

mazza.3 A tétel Kőnig Dénestől származik. Legyen egy G páros gráf, ekkor ν(G) = τ(G) (azaz a

legnagyobb független él halmaznak ugyanannyi eleme van, mint a legkisebb lefogó pont halmaz-nak) és ha G–ben nincs izolált pont akkor ρ(G) = α(G) (azaz a legkisebb lefogó él halmaz azonosméretű a legnagyobb független pont halmazzal).

4Egerváry Jenő

10 Egerváry algoritmusa, az optimális hozzárendelés problémája

1.3. Az algoritmusVegyük továbbra is a 3 ábrát és az ott megfogalmazott definiciókat:

0. lépés (inicializálás):

c(v) =

⎧⎪⎪⎨⎪⎪⎩

max(w) v ∈ A,

0 v ∈ B.

1. lépés: keressük meg a maximális elem–számú párosítást a piros részgráfbanjavító utakkal. Legyen ez a párosítás M ′. Ha ez maximális megállunk.

2. lépesben legyen:

x ∈ A1 ∪A2,

y ∈ B1 ∪B3

{x, y} ∈ E

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

⇒ σ =min{c(x) + c(y) −w({x, y})} ,

Majd:

c′(v) =

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

c(v) − σ v ∈ A1 ∪A2,

c(v) + σ v ∈ B2,

c(v) másképp.Végül legyen M =M ′ és c = c′ és folytassuk az első lépéstől.

Az algoritmus helyességének alátámasztásához be kell látnunk, hogy:

1. A nulladik lépés címkézés.

2. Létezik {x, y} a második lépésben. Ez igaz, mert ha nem lenne akkor A1∪A2bármely szomszédja B2–ben volna és a Hall–feltétel 5 alapján nem léteznepárosítás (mivel ∣B2∣ ≥ ∣A1 ∪A2∣ nem teljesülne).

3. c′ címkézés e? Ehhez figyeljük meg, hogy σ hogyan változhat:A1 ∪A2 A3

B2 0 +σB1 ∪B3 −σ 0

Ugyanakkor a σ > 0, hiszen A1 ∪A2 és B1 ∪B3 között vezető élek között nemlehet piros él. Tehát a címkézés csak egy helyt csökken (ami elronthatná acímkézést), de itt csak a maximális csökkenthető értékkel csökken, tehát acímkézés tulajdonsága megmarad.

5∀ x0 ⊆ A–ra az ∣N(x0)∣ ≥ ∣x0∣ egyenlőtlenségnek teljesülnie kell, másképp nem létezik párosí-

tás (N x0 szomszédinak halmazát fedi).

Lineáris programozás 11

4. Ahol σ minimális ott egy piros él keletkezik, ezáltal a piros részgráf is meg-változik. Ha az ∈ B1 nő a párosítás mérete, mivel ha a párja A1–ben vanakkor simán összeköthető, ha meg A2–ben akkor az A1 −B2 −A2 −B1 utónelérhető és ez hosszab mint az eredeti.Ellenben, ha a piros él B3–beli akkor A3 és B2 között megszűnik egy piros él,de ez nem befolyásolja a párositást, hiszen az új piros és B3 –beli végpontjaelérhető lesz alternáló úton, ezért átkerül az B2–be.Tehát B3 legfeljebb n lépésből elfogy. A következő lépésben B1–belli a pirosél, tehát nő a párosítás ⇒ n2 iterációba legfeljebb megvagyunk. Egy iterációidőigénye O(e) (a σ kiszámolása és A1 ∪A2 előállitása), tehát az algoritmuskomplexitása O(n2e).

12 Egerváry algoritmusa, az optimális hozzárendelés problémája

Lineáris programozás 13

2. A lineáris programozás alapfeladata, kétválto-zós grafikus megoldás és Fourier-Motzkin eli-mináció

Egy egyenlőtlenségrendszer megoldásai közül kiválasztani azt, amely valamilyencélfüggvény szerint optimális:

max(cx ∶ Ax ≤ b).

Az elemek méretei:

[1 ⋯ n]

⎡⎢⎢⎢⎢⎢⎣

1⋮

n

⎤⎥⎥⎥⎥⎥⎦

⎡⎢⎢⎢⎢⎢⎣

1 ⋯ n⋮ ⋱ ⋮

m ⋯ 0

⎤⎥⎥⎥⎥⎥⎦

⎡⎢⎢⎢⎢⎢⎣

1⋮

n

⎤⎥⎥⎥⎥⎥⎦

⎡⎢⎢⎢⎢⎢⎣

1⋮

m

⎤⎥⎥⎥⎥⎥⎦

.

Ha az egyenletnek, vagy a feladat más alakban van megadva átalakítható azkövetkező összefűggések alapján:

αx ≥ β ⇒ − αx ≤ −β

αx = β ⇒

⎧⎪⎪⎨⎪⎪⎩

−αx ≤ −β

+αx ≤ +β

min(cx ∶ Ax ≤ b)⇒max((−c)x ∶ Ax ≤ b)

A minimumos egyenlet megoldása a maximum egyenlet megoldásának az ellen-téte lesz. Ha olyan egyenletünk van, ahol szigorú egyenlőtlenség van ( < vagy >)akkor ezeket elhagyjuk, mert a valós számok halmazán nem tudunk hipersik közeliértéket keresni. A kérdés amire keressük a válaszokat:

• Létezik e Ax ≤ b egyenletnek megoldása?

• cx korlátos e a megoldás halmazon?

• Melyik x–re maximális a cx kifejezés?

2.1. Kétváltozós feladat grafikus megoldásaαx ≤ β egyenlet meghatároz egy félsíkot, amelyet αx = β határol. Ha a félsí-kok metszete véges, egy konvex sokszöget alkotnak, amely megadja a megoldáshalmazt.

Ha a célfüggvényt különböző x–re felrajzoljuk meghatározható az optimálismegoldás és az ehhez tartozó x értékek. Egy alternativ megkőzelités, hogy vesszük

14 A lineáris programozás alapfeladata

4. ábra: Kétváltozós feladat grafikus megoldása

célfügvény irányvektor normálját és ennek irányából pásztázunk végig a meghatá-rozott konvex sokszögben, a metszőpontok mentén. A megoldást az utolsó meg-vizsgált metszőpont adja.

2.2. Fourier-Motzkin eliminációEnnek segítségével megvizsgálhatjuk az egyenlet megoldhatóságát: n változósegyenletet visszavezetjük n − 1 változóra, iteratívan, amíg egy változós egyenlet-rendszert nem kapunk; erre könnyű megoldhatóságot vizsgálni. A folyamat:

1. Minden egyenlet α ∈ R+ szorzással az alábbi alakra hozható:⎡⎢⎢⎢⎢⎢⎣

1 A+−1 A−0 A0

⎤⎥⎥⎥⎥⎥⎦

[x1 x′] ≤

⎡⎢⎢⎢⎢⎢⎣

b+b−b0

⎤⎥⎥⎥⎥⎥⎦

.

2. • Ha A− üres (= ∅):

1 ⋅ x1 +A+x′ ≤ b+

1 ⋅ x1 + αx′ ≤ β

x1 ≤ β − αx′

Ekkor válasszuk úgy x1–t, olyan kicsire hogy az összes sora e feltételteljesüljön. Ezután A+ teljes sorai elhagyható, továbbá elég A0 soraitvizsgálni, elhagyva a baloldalon található nulla oszlopot (n− 1 változóseset).

Lineáris programozás 15

• Ha A+ üres (= ∅):

−1 ⋅ x1 + αx′ ≤ β

x1 ≥ αx′ − β

Ekkor válasszuk úgy x1–t, olyan nagyra hogy e feltétel teljesüljön. Ez-után A− elhagyható.

• Ha A− ≠ ∅ és A+ ≠ ∅ akkor legyen i ∈ A− egy sora, j ∈ A+ egy sora,és képezzük az összes sora az alábbi ősszeget (ez exponenciális egyenletszaporodást jelent, e miatt az algoritmus futási ideje is exponenciális):

(αi + αj) ⋅ x′ ≤ bi + bj

Ezzel visszavezettük a kérdést n − 1 változós estre.

3. Ha n = 1 és

∃ b0 < 0⇒ nem megoldható/∃ A+ vagy /∃ A− < 0⇒megoldható

másképp igaz, hogy x1 ≤ β+ és x1 ≥ β−⇒megoldható ha max(−β−) ≤min(β+)

Ha n ≥ 1 folytassuk a 2–es lépéstől.

A Gauss eliminációval szemben itt csak pozítiv skalárral szorozhatjuk be a sort,az egyenlőtlenség miatt.

16 A lineáris programozás alapfeladata

Lineáris programozás 17

3. Farkas-lemma (két alakban), a lineáris prog-ram célfüggvény korlátossága

A következő egyenletekből csak a jobb vagy csak a bal egyenletrendszereknek lé-tezik egyidőben megoldása (a Farkas 6 lemma két alakja):

1. alak:A1

³¹¹¹¹¹·¹¹¹¹¹µAx ≤ b

A2³¹¹¹¹¹¹·¹¹¹¹¹¹µyA = 0y ≥ 0yb < 0

2. alak:B1

³¹¹¹¹¹·¹¹¹¹¹µAx = b

B2³¹¹¹¹¹¹·¹¹¹¹¹¹µyA ≥ 0

x ≥ 0 yb < 0

Legyen az alábbi mérettel rendelkező mátrixok:

y³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹µ

[1 ⋯ n]

A³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹µ⎡⎢⎢⎢⎢⎢⎣

1 ⋯ n⋮ ⋱ ⋮

m ⋯ 0

⎤⎥⎥⎥⎥⎥⎦

⎡⎢⎢⎢⎢⎢⎣

1⋮

n

⎤⎥⎥⎥⎥⎥⎦

´¸¶x

b³·µ⎡⎢⎢⎢⎢⎢⎣

1⋮

m

⎤⎥⎥⎥⎥⎥⎦

.

3.1. 1–es alakAz első alak két egyenletrendszere nem megoldható egyidőben mert:

0 = 0x = (yA) ⋅ x = y(Ax) ≤ yb.

Az átcsoportositást megtehetjük a szorzás asszociativitása miatt, míg az utolsóegyenlőtlenséget is át kell gondolni:

Ax ≤ b⇒ y(Ax) ≤ yb.

6Farkas Gyula, 1902.

18 Farkas-lemma (két alakban), a lineáris program célfüggvény korlátossága

Szerencsére ez igaz lesz mivel Ax elemei legyenek αi, b elemei βi és y elemei γi.∑γiαi ≤ ∑γiβi ⇒ y(Ax) ≤ y(b), mivel adott y ≥ 0 feltétel (tehát γi ≥ 0). Majdtovább futtatva a korábbi gondolatunkat yb < 0 amely ellentmond a kiinduló fel-tételeknek (0 = yAx ≤ yb < 0).

Vizsgáljuk meg, hogy mi történik, ha A1 nem megoldható (ezt tegyük fel),következik e ebből, hogy az A2 igen? Definiáljuk a következő C halmazt, amelyegy sorvektorok halmaza, és az A2 alak egyenleteire épül:

C = {z ∈ Rn+1∣z = y(A∣b), y ≥ 0}

.Célunk bizonyítani, hogy létezik C-ben (0,⋯,0,< 0) alakú sorvektor (ez azt

jelentené, hogy az A2–nek létezzik egy y megoldása), ha az A1 (Ax ≤ b) egyen-letrendszer nem megoldható.A megoldáshoz indukciót használunk, felhasználvaa Fourier–Motzkin eliminációt. Lássuk be, hogy az elimináció során felhasználtműveletek (szorzás pozítiv skalárral és vektorok összeadása) nem vezetnek ki ahalmazból.

A halmaz zártságára az alábbi lemmák igazak (z1, z2 ∈ C,λ > 0):

• z1 + z2 ∈ C, mertz1 = y1(A∣b)

z2 = y2(A∣b)}⇒ z1 + z2 = (y1 + y2)(A∣b) ahol y1 + y2 ≥ 0,

• λz1 ∈ C, mert z = y(A∣b)⇒ λz = λy(A∣b) ahol igaz, hogy λy ≥ 0.

Bizonyitjuk, hogy az eliminációval párhuzamosan mindig létre tudunk hozniilyen elemet a C–ben, ha A1–nek nincs megoldása (mint a kezdeti halmaz elemekegy lineáris kombinációja). Kiindulunk kezdeti (A∣b) mátrixból, amely sorai ∈ C,mert yi = 1–el (máshol a vektor 0) felvételt nyernek C–be. Most hajtsuk végre aFourier-Motzkin eliminációt (A∣b)–re, úgy, hogy a nullákat nem töröljük:

A b

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶sorai ∈ C

0000

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶sorai ∈ C

0 0 0 +1 b+0 0 0 −1 b−0 0 0 0 b0

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶sorai ∈ C

A zártsági lemma miatt az elimináció során a mátrix sorai C halmazon belülmaradnak. Végezzük el az eliminációt ismét és ismét amíg egy változós alakranem jutunk. Ha a feladat eredetileg nem volt megoldható, ezt a tulajdonságotaz elimináció megtartja, a végén sem lesz az, ez meg két feltétel melett történhetmeg:

Lineáris programozás 19

• Létezik 0 ⋅ xn ≤ γ egyenlet, ahol γ < 0. Ennek alakja (0,0,⋯,0,< 0), tehát asor ∈ C.

•+1 ⋅ xn ≤ αi−1 ⋅ xn ≤ αj

}⇒ ellentmondáshoz meg akkor jutunk ha αi < −αj.

Az i sor alakja (0,⋯,0,+1, αi), a j sor meg (0,⋯,0,−1, αj). Ennek az összegemeg (0,⋯,0,0, αi + αj) ami szintén ∈ C, mivel αi + αj < 0.

3.2. 2–es alakAz, hogy a két egyenletrendszer (B1 és B2) közül csak az egyik megoldható egyidőben indirekt bizonyítjuk. Legyen x, y egy–egy megoldás:

0 ≤ (yA)

´¸¶

sorvektor

x = y (Ax)´¸¶

oszlopvektor´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶

nem triviális lépés

= yb < 0

ahol ellentmondáshoz jutunk.Az hogy ha az egyik nem megoldható a másik igen visszavezetéssel bizonyítjuk

az 1–es alakra. Ehhez először is kibontjuk a B1 alakot:

Ax = b

x ≥ 0}⇒

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

Ax ≤ b

(−Ax) ≤ −b

(−Ex) ≤ 0

Most ennek az A1 alaknak felírjuk A2 alakját mint:

A−A−E

x ≤

000⇒ y1 y2 y3

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶y′

A−A−I

´¹¸¹¶A′

= 0,y1y2y3

T

000

T

, y1 y2 y3

b−b0

< 0

Azt állítjuk, hogy ha ez nem megoldható, akkor a yA ≥ 0, yb ≤ 0 páros igen.

y1A + y2(−A) + y3(−I) = 0y1 ⋅ b − y2 ⋅ b + y3 ⋅ 0 < 0,

y1, y2, y3 ≥ 0

20 Farkas-lemma (két alakban), a lineáris program célfüggvény korlátossága

Tehát:(y1 − y2) ⋅A = y3

(y1 − y2) ⋅ b < 0y1, y2, y3 ≥ 0

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

y=y1−y2ÔÔÔ⇒

⎧⎪⎪⎨⎪⎪⎩

y ⋅A ≥ 0y ⋅ b < 0

Ezzel felírtuk B2 alakot, azaz a B1 ?Ô⇒ B2 bizonyitását visszavezetük A1⇒ A2–re.

3.3. KorlátosságAz alábbi három kijelentés ekvivalens:

1. cx felülről korlátos az Ax ≤ b megoldás halmazon.

2. /∃ megoldása az⎧⎪⎪⎨⎪⎪⎩

Az ≤ 0cz > 0

egyenletrendszernek.

3. ∃ megoldása a⎧⎪⎪⎨⎪⎪⎩

yA = c

y ≥ 0egyenletrendszernek.

A tétel bizonyítását az 5 ábra szerint fogjuk belátni.1

2 3

(⋆) (⋅)

Farkas lemma AT , cT–re

5. ábra: A korlátosság bizonyítási kőrre

(⋆) – 1 ⇒ 2 : Legyen x0 megoldása az Ax ≤ b–nek és tegyük fel, hogy mégislétezik megoldása 2 –nek, úgy, hogy cx felülről korlátos. Ekkor legyen λ > 0,x0 + λz is megoldása az Ax ≤ b–nek, mert:

A(x0 + λz) = Ax0 + λ(Az) ≤ Ax0 + 0 ≤ bTovábbá c(x0 + λz) = cx0 + λ(cz), és mivel cz > 0 a λ alkalmas megválasztá-sával ez tetszőleges naggyá tehető. Ez meg ellentmond 1 –nek (mert így cxnem felülről korlátos), tehát feltevésünk hamis volt.

(⋅) – 3 ⇒ 1 : Legyen egy y ami teljesíti 3 –at és x ami megoldása 1 –nek.cx = (yA)x = y(Ax) ≤ yb

Ekkor yb a keresett felső korlát az Ax megoldás halmazán cx − re, tehát3 –ból következik 1 .

Lineáris programozás 21

4. A lineáris programozás dualitás tétele (két alak-ban), a lineáris programozás alapfeladatánakbonyolultsága

4.1. A lineáris programozás dualitás tétele (két alakban)A tétel kijelenti, hogy ha:

LP: max{cx ∶ Ax ≤ b}

megoldhatófelülről korlátos

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

1

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

DP: min{yb ∶ yA = c, y ≥ 0}megoldhatóalulról korlátos

2⎧⎪⎪⎨⎪⎪⎩

LP–nek ∃ maximumaDP–nek ∃ minimuma

3 maximum = minimumEzzel ekvivalens alakja az LP és a DP-nek a:

LP: max{cx ∶ Ax ≤ b, x ≥ 0}DP: min{yb ∶ yA ≥ c, y ≥ 0} .

Az 1 –est bizonyítottuk az LP korlátosságánál, a 2 és 3 –hoz felhasználjuk akövetkező lemmát:

Ax ≤ b megoldhatót ∈ RAx ≤ b–nek /∃ x megoldása, hogy cx ≥ t

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

⇒ {yA = c, y ≥ 0}–nak ∃ olyan meg-oldása amelyre yb < t.

A lemma bizonyításhoz, átfogalmazzuk a bal oldalt mint egy Farkas lemma alak:⎧⎪⎪⎨⎪⎪⎩

Ax ≤ b

−cx ≤ −t, és tudjuk, hogy a rendszer nem megoldható (nem létezzik x ami

teljesiti). Alkalmazzuk rá a Farkas–lemmát, ennek második alakja felírható, mint(λ ≥ 0, y ≥ 0):

[y λ] [A−c

] = yA − λc = 0⇒ yA = λc,

[y λ] [b−t

] = yb − λt < 0⇒ yb < λt

Ha λ = 0⇒yA = 0,y ≥ 0,yb < 0

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

Farkas–lemmaÔÔÔÔÔ⇒ Ax ≤ b nem megoldható, de ez ellentmondás az

22 A lineáris programozás dualitás tétele

állításnak, tehát λ nem lehet nulla (λ ≠ 0). Legyen y′ = 1λy így az egyenletrendszer

y′A = c, y′ ≥ 0, y′b < t alakú lesz és ezzel megadtunk minden y–ra egy y′–et amelyteljesíti a lemma kijelentését.

A 2 bizonyításához tegyük fel, hogy /∃ maximum LP–n, ekkor legyen t =

sup{cx ∶ Ax ≤ b} (hiszen bármely x ⊆ R,x ≠ ∅, x felülről korlátosnak ∃ szupré-muma, legkisebb felső korlátja, ha még maximuma nincs is). Ha t nem maximum⇒ Ax ≤ b–nek /∃ cx ≥ t–t teljesítő megoldása. Ekkor:

cx = (yA) ⋅ x = y(Ax) ≤ yb < t.

Így yb egy t-nél kisebb felső korlát cx-re, de ez ellentmondás, tehát t nemszuprémum és feltevésünk hamis volt, létezzik maximum LP–n. A DP–n történőbizonyításhoz használjuk fel az LP bizonyítást, átírva a feladatott max–ra (E –egység mátrix):

max

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

(−b)TyT ∶

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

( AT )yT ≤ cT

(−AT )yT ≤ −cT

(−E )yT ≤ 0

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

A 3 bizonyításához már láttuk, hogy a

max{cx ∶ Ax ≤ b} ≤min{yb ∶ yA = c, y ≥ 0}

fennáll. Legyen t = min{yb ∶ yA = c, y ≥ 0} és tegyük fel, hogy a fenti egyenlőt-lenségben nem egyenlőség áll. Tehát ekkor az LP–nek /∃ cx ≥ t kifejezést teljesítőmegoldása, amiből következik, hogy a duális feladatnak van olyan megoldása amireyb < t. De ez ellentmondás t választásának, tehát feltevéssünk hamis volt.

4.2. LP bonyolultságAz LP feladat megfogalmazható, mint eldöntési probléma: ∃? az Ax ≤ b–t kielégítőx vektor amelyre cx ≥ t? A probléma NP–beli. Tanú egy ilyen x. UgyanakkorcoNP–beli is, a duális feladat megoldása tanú erre. x, y mérete véges.

1947 – Dantzig – Szimplex módszer Hatékony gyakorlati feladatokon, de ex-ponenciális komplexitású.

1979 – Hacsijan – ellipszoid módszer Polinomiális komplexitás, de gyakor-latban lassú.

1984 – Karmakar – belső pontos módszer Polinomiális, hatékonyabb az el-lipszoidnál, de ez is a gyakorlatban lassabb a szimplexnél.

Lineáris programozás 23

5. Egészértékű programozás: a feladat bonyolult-sága, korlátozás és szétválasztás (Branch andBound)

5.1. Egészértékű programozásA feladat:

IP ∶ {max cx ∶ Ax ≤ b, x egész}DIP ∶ {min yb ∶ yA = c, y ≥ 0, y egész}

max(IP) ≤max(LP) =min(DLP) ≤min(DIP)

A feladat bonyolultságának meghatározásához fogalmazzuk át eldöntési prob-lémára: ∃? Ax ≤ b, x egész között olyan vektor, amelyre cx ≥ t? Az IP fel-adat NP–teljes. NP–beli mert x tanú. A dualitás tétel nem alkalmazható mivelmax(IP) < min(DIP) fent állhat, tehát a probléma nem coNP–beli. NP teljes,mivel visszavezethető a 3–SAT problémára.

A bizonyításhoz megadjuk a visszavezetést: definiálunk egy eljárást, amelytetszőleges logikai függvényhez megad egy olyan IP problémát, melyre akkor éscsak akkor igenlő a válasz, ha a függvény kielégíthető. A függvény alakja:

f(x1, x2,⋯, xk) =d

⋀i=1

(xei1i1

∨ xei2i2

∨ xei3i3

) .

Az IP probléma ismeretlenjei legyen zi=1,k egyenlőtlenségek, ahol 0 ≤ zi=1,k ≤ 1.Továbbá minden diszjunkcióra is felírunk egy egyenlőtlenséget:

zi1 + zi2 +zi3 ≥ 1 ha xi1 ∨ xi2 ∨ xi3zi1 + zi2 +(1 − zi3) ≥ 1 ha xi1 ∨ xi2 ∨ ¬xi3zi1 + (1 − zi2) +(1 − zi3) ≥ 1 ha xi1 ∨ ¬xi2 ∨ ¬xi3

(1 − zi1) + (1 − zi2) +(1 − zi3) ≥ 1 ha ¬xi1 ∨ ¬xi2 ∨ ¬xi3

Ha f kielégíthető, akkor zi = 1 ⇔ xi = „igaz”. Ez lesz az egyenletrendszeregészértékű megoldása.

Megfordítva, ha az egyenlőtlenség–rendszert egész zi értékkel ki tudjuk elégíteniakkor – mivel minden egész vagy 0, vagy 1 – az xi=„igaz” ⇔ zi = 1 választássalf–et kielégítő értéket adtunk a logikai változónak.

Eközben a ∑ki=1 zi összeg értétek valahol 0 és k között adódik, tehát c–enk

(1,1,⋯,1) választással tulajdonképpen a „Van-e a fenti egyenlőtlenség renszerek

24 Egészértékű programozás

feltételeit kielégítő (egész) vektorok között olyan, melyre cz ≥ 0?” kérdést tesszükfel. Az így kapott IP feladatra a válasz akkor és csak akkor igenlő, ha az f kielé-gíthető.

5.2. A korlátozás és szétválasztás az IP feladatraAlakja max{cx ∶ Ax ≤ b, f ≤ x ≤ g∣x, f, g ∈ Zn} , ahol az f és g korlátok, amelyekbiztosítják, hogy a feladat véges lépésben megoldható. A metódus kulcs gondolata,hogy az IP feladat megoldásához először megoldjuk mint LP, ha az eredmény egészmegvagyunk, egyébként tovább bontjuk két kisebb IP feladatra. Legyen w∗ = cx∗,az egyenlőtlenség mindig Ax ≤ b marad.

Az algoritmus folyamata:

0.

IP részfeladatok³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹µ

L =

⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎩

⎛⎜⎜⎜⎝

alsó³·µf ,

felső³·µg ,

w – maximum értéke³·µ∞

⎞⎟⎟⎟⎠

⎫⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎭

,

eddigi legjobb célfüggvény érték³¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹µw∗ = −∞ ,

legjobb megoldás³·µx∗

1. Ha L = ∅⇒ vége és a megoldás az aktuális w∗ és x∗.Egyébként L–ből vegyük ki IPi feladatott ⇒ (fi, gi,wi).

2. Ha wi ≤ w∗, IPi–nek a megoldása nem lehet w∗–nál jobb, folytassuk az elsőponttól (ez a Bound lépés).

3. Oldjuk meg a relaxált IPi feladatott (LPi–t).Ha /∃ megoldás visszalépünk az első ponthoz.Egyébként: wLPi – maximum érték, xi – maximum hely.

4. Ha wLPi ≤ w∗, IPi feladat és rész feladatai maximum értéke is legfeljebb w∗,lépjünk vissza az első ponthoz.

5. Ha wLPi > w∗ és xi ∈ Zn akkor w∗ = wLPi , x∗ = xi (adat frissítés) és visszalé-pünk az első ponthoz.

6. Választunk egy közbenső értéket (fij ≤ t ≤ gij) és egy ezt meghatározó xjelágazás változót xi–ből (j egy pozíció x vektorban, i az IP feladat sorszá-mát jelöli). Ezután L–ben elhelyezzünk két új feladatott: (t + 1, g,wLPi ) és(f, t,wLPi ). Lépjünk vissza az első ponthoz (Branch lépés).

Az algoritmus véges sok lépésben leáll és megtalálja a feladat optimumát. Avéges sok lépést f és g vektor garantálja, hiszen a kezdetben kitűzött feladatnak

Lineáris programozás 25

csak véges sok rész problémája lehet a felhasznált korlátok miatt. Az optimálisrészt indirekt bizonyítjuk: legyen w0 az optimum, de az eljárás w∗ < w0–t kapta.

Állítjuk, hogy L–ben mindig kellet, hogy legyen olyan IPi feladat amelynek azoptimum értéke w0. Ez kezdetben fent áll, és az algoritmus egy ilyen IP feladattala 5.–ik vagy 6.–ik lépéshez jut el. Ha az ötödikbe jut akkor az algoritmus mégiscsak megtalálja a w0 optimumot, ami ellentmondás.

Ha a hatodik lépés következik be, akkor a két keletkező IP feladat közül azegyikre teljesül, hogy a vizsgált tartományában a w0–hoz tartozó optimum bennevan, így w0 optimumot mindenképp megtaláljuk. Tehát már csak az lehet, hogyaz eljárás során a lista sosem ürült ki, de ekkor az algoritmus sose állhatott volnale, ami a keresett ellentmondás.

5.3. Gyakorlati tanácsok• LIFO alapú új feladat választás L–ből, mert a megoldás várhatóan mélyen

van a fába és ez tud legmélyebbre leggyorsabban lenyúlni. Ugyanakkor a duálszimplex módszerrel lehetséges így a korábbi számitások újra felhasználása.

• Elágazásnál a legkevésbé egész xj–t válasszuk elágazási változónak (ez a rela-xált IP feladatt megoldásának helyvektora, azaz azt az indexet ahol e vektorelemének törtrésze 1

2 -höz legközelebb van), közbülső értéknek pedig ennekegész értékét (lefele kerekitve) válasszuk. Ez azt jelenti, hogy az f és a gvektorban csak ez az indexen levő értéket modósitsuk,a többi feltétel marada korábbi.

f =

⎡⎢⎢⎢⎢⎢⎣

123

⎤⎥⎥⎥⎥⎥⎦

, g =

⎡⎢⎢⎢⎢⎢⎣

456

⎤⎥⎥⎥⎥⎥⎦

, x0 =

⎡⎢⎢⎢⎢⎢⎣

1.23.65.7

⎤⎥⎥⎥⎥⎥⎦

⇒ fb =

⎡⎢⎢⎢⎢⎢⎣

123

⎤⎥⎥⎥⎥⎥⎦

, gb =

⎡⎢⎢⎢⎢⎢⎣

436

⎤⎥⎥⎥⎥⎥⎦

, fj =

⎡⎢⎢⎢⎢⎢⎣

143

⎤⎥⎥⎥⎥⎥⎦

, gj =

⎡⎢⎢⎢⎢⎢⎣

456

⎤⎥⎥⎥⎥⎥⎦

A fenti példában x0 a talált optimum helyvektora. A 0.5-hőz leggközeleba 3.6 van, ez a második változó indexet jelenti, és értéke lekerekitve 3. Atöbbi megkőtés (f és g vektor elemei) marad a korábbi. Tehát t = 3 és f ésg vektort ennek megfelelően modósitjúk t és t + 1 értékkekel.

26 Egészértékű programozás

Lineáris programozás 27

6. Totálisan unimoduláris mátrixok és alkalmazá-sai

Egy totálisan unimoduláris mátrixon minden négyzetes részmátrixának determi-nánsa 0,1 vagy −1. Ehhez szükséges (de nem elégséges) feltétel, hogy a mátrixelemei is csak 0,1 vagy −1 lehetnek.

A totálisan unimoduláris – TUb egész vektorc tetszőleges ∈ Rn

max{cx ∶ Ax ≤ b} LP feladatami megoldható és véges

⎫⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭

⇒ Az IP feladat is megoldható és az LP feladatmaximuma megegyezik az IP feladat maxi-mumával.

Lemma: a totálisan unimoduláris tulajdonság megmarad, ha:

sor vagy oszlopot ⋅(−1) ⇒ ekkor a determináns előjele változik meg.

egységvektor sor vagy oszlopként való hozzáadása ⇒ ha a mátrixhoz egy-ségvektort veszünk hozzá például oszlopként, és egy kiválasztott négyzetesrészmátrixában ez az oszlop szerepel, akkor az új oszlop szerinti kifejtésbőlazonnal látszik, hogy a determináns megegyezik az eredeti mátrix egy négy-zetes részmátrixának determinánsával vagy annak ellentettjével, így értéke0,1 vagy −1.

sor vagy oszlop ismétlés ⇒ ha a kiválasztott részmátrixba az eredeti is szerepela determináns nulla lesz, ha csak az egyik marad, akkor előáll az eredetimátrixból képzett részmátrix, amely determinánsának értéke megmarad 0,1vagy −1.

transzponáljuk ⇒ megmarad a determináns definíciójának következményeként.

Tétel. Bármely irányított gráf illeszkedés mátrixa 7 totálisan unimoduláris..

Irányított illeszkedési mátrixnál az oszlopban 1 van, amely pontból indul azél, −1 ahova mutat; hurok–él esetében egyetlen 1–es található. A bizonyítástteljes indukcióval. Legyen M ∈ Mk×k méretű részmátrix. Ha k = 1 az állítás

7B(G(V,E)) = bi∈V j∈E =

⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎩

0 ha a j–edik él nem illeszkedik az i–edik ponthoz,+1 ha a j–edik élnek az i–edik pont kezdőpontja,−1 ha a j–edik élnek az i–edik pont a végpontja,+1 ha a j–edik él az i–edik ponthoz illeszkedő hurokél.

28 Totálisan unimoduláris mátrixok és alkalmazásai

nyilvánvaló. Ha k ≥ 2 és létezik egy darab oszlop, amelybe legfeljebb egy nemnulla elem van, akkor kifejtés a szerint és az indukció adja a többit (a kifejtésalapján −1 ⋅ detMn−1×n−1 lesz a determináns, ami 1,0 vagy −1).

Másképp minden oszlopában egy darab +1 és egy darab −1 van, és a többinulla. Így M sorainak összege null vektor, előállitható mint nem triviális lineáriskombináció, azaz a sorok összefűggöek, és ezért ⇒ detM = 0.

6.1. Maximális összsúlyú párosítás IP feladatkéntTétel. Páros gráf 8 illeszkedési mátrixa totálisan unimoduláris.

Mutasson minden él A–ból B–be. Irányított gráf illeszkedési mátrixa TU. Azeredeti illeszkedési mátrixának megkapásához B csúcsainak megfelelő sorokat −1–el szorozzuk.

Legyen x indikátor, hogy az él benne van e párosításban, w egy tetszőleges élsúlyfüggvény és B az illeszkedési mátrix (amely páros gráf lévén totálisan unimo-duláris). A feladat, megfogalmazható, mint max{wx ∶ Bx ≤ (1,⋯,1)T , x ≥ 0}. Azx ≥ 0 feltételt bevisszük B mátrixba kiegészítve azt egy m ×m–es egységmátrixellentettjével, de ez nem változtat TU tulajdonságon.

Az egyenlőtlenség így azt fejezi ki, hogy egy csúcsból legfeljebb egy kiindulóélet választunk ki, ami adja a párosítás feladatát.

B′ = [B−I

] TU

b egész

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

⇒ x egész vektor (0 vagy 1) értékű – IP feladat

A max{wx ∶ Bx ≤ (1,⋯,1)T , x ≥ 0} duálisa min{y(1,⋯,1)T ∶ yB ≥ w, y ≥ 0}.Az y megoldás minden v csúcshoz c(v) címkét rendel, ahogy Egerváry Jenő páro-sítás algoritmusa is:

yB ≥ w⇒ c(a) + c(b) ≥ w(e),∀e = {a, b} ∈ E.

6.2. IntervallumgráfA számegyenes véges sok intervallum alkossa egy gráf csúcshalmazát, és két csúcsakkor legyen szomszédos, ha a megfelelő intervallumok metszők; az így meghatáro-zott gráf az intervallumgráf. Feltehető, hogy a gráfot meghatározó intervallumok

8Páros gráfnak nevezünk egy G gráfot, ha csúcsainak halmazát fel tudjuk úgy osztani egy Aés B halmazra, hogy az összes G-beli élre teljesül, hogy az egyik végpontja A-ban van, a másikpedig B-ben.

Lineáris programozás 29

n–re az [1, n] egész végpontú, zárt részintervallumai. Legyen az I = {I1, I2,⋯, Im}

intervallumrendszer.Rendeljük ehhez n × m–es A(I) mátrixot: sorai feleljenek meg az 1,2,⋯, n

egészeknek, oszlopai pedig az I intervallumainak. Az i–ik sor és a j–ik oszlopkereszteződésben akkor álljon 1–es, ha i ∈ Ij, és minden más helyen álljon 0.

6. ábra: Példa intervallum gráfra

Tétel. Az így definiált A(I) mátrix totálisan unimoduláris.

A bizonyításhoz kiválasztunk egy tetszőleges k × k részmátrixot, majd teljesindukciót használunk az egyesek darabszáma szerint. Ha nulla darab egyesből álla mátrix az nyilván TU. Ha van benne két oszlop, amelyben az első egyes azonoshelyen áll, akkor a nagyobb egyes darabszámúból kivonjuk, a kisebb darabszámot.Ez az egyesek darabszámát csökkenti, de a determinánsát nem változtatja.

Ha nincs ilyen oszlop, de van csupa nulla oszlop, akkor a determináns nulla.Ha egyik sem teljesül, akkor pedig be tudjuk rendezni az oszlopokat úgy, hogy azalsóháromszög mátrixot kapunk oszlop cserével. Ez a művelet a determinánst csakelőjelbe változtatja meg, így a determináns 1 vagy −1 marad.

Tétel. Az intervallumgráfok tetszőleges k színre megszínezhetőek egyenletesen.

Az egyenletesen alatt azt értjük, hogy ha i–t tartalmazó intervallumok számadi, akkor ezek közül minden felhasznált szín esetén az ilyen színű intervallumokszáma ⌈dik ⌉

9 vagy ⌊dik ⌋10.

9felső egész rész10alsó egész rész

30 Totálisan unimoduláris mátrixok és alkalmazásai

Elég bebizonyítani, hogy az intervallumok közül kiválasztható néhány úgy, hogybármely 1 ≤ i ≤ n esetén az i–t tartalmazó intervallumok között ⌈dik ⌉ vagy ⌊dik ⌋ darabkiválasztott intervallum legyen. Ekkor a kiválasztott intervallumokat megszínez-zük egy színnel, majd elhagyjuk őket. A megmaradt intervallumra meg ugyanazk − 1–el és így tovább.

Legyen:

A = A(I) intervallumokhoz rendelt mátrixd = n dimenziós vektor i–ik komponense di⌈ dk ⌉ vektor i–ik komponense⌈dik ⌉⌊ dk ⌋ vektor i–ik komponense⌊dik ⌋⌊ dk ⌋ ≤ Ax ≤ ⌈ dk ⌉,0 ≤ x ≤ (1,⋯,1)T

⎫⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭

Erre nyilvánvalóan megoldás azx = ( 1

k ,⋯,1k)T de tudjuk, hogy

A TU⇒ ∃ egészértékű megoldásais .

Legyen x ez az egész értékű vektor, 0 vagy 1 elemeket tartalmaz, és az 1–eskomponenseknek megfelelő oszlopok összege ⌈ dk ⌉ és ⌊ dk ⌋ között van. Így ezeknek azoszlopoknak megfelelő intervallumukat kiválasztva valóbban ⌈dik ⌉ vagy ⌊dik ⌋ illesz-kedik i–re.

A tétel következménye, hogy az intervallumgráfok perfektek 11 (feltéve, hogyaz intervallumgráf minden részgráfja is intervallumgráf). Ez igaz, mivel legyen k =ω(G). Ekkor alkalmazva a fenti tételt azt kapjuk, hogy a csúcsok jól színezhetőekk színnel, vagyis ω(G) = χ(G).

11 Egy gráfot akkor nevezünk perfektnek ha rá és minden F feszített részgráfjára teljesül, hogyχ(F ) = ω(F ), azaz a kromatikus szám 12 megegyezik a maximásis klikkmérettel.

12k színnel kiszinezhető de k − 1–el már nem, ahol a kiszinhezhetőség azt jelenti, hogy mindencsúcsot ki lehet színezni k színnel úgy, hogy szomszédos csúcsók között nincs egyforma szinű

Lineáris programozás 31

7. A lineáris és egészértékű programozás alkalma-zása hálózati folyamproblémákra

Elöszőr is határozzuk meg, hogy mit nevezzünk folyamnak:

G(V,E) irányított gráfs, t ∈ V két kitűntet csúcsc ∶ E ↦ R+ nem negatív kapacitásfüggvényρx(v) – v–be belépő élek összege x szerintδx(v) – v–ből kilépő élek összege x szerintLegyen x ∶ E ↦ R+ tetszőleges függvény

⎫⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭

• x függvény akkor folyam, ha∀ v ∈ V − {s, t}–re:ρx(v) = δx(v)

• x megengedett, ha ∀e ∈ E–rex(e) ≤ c(e)

• A folyam értéke:δx(s) − ρx(s) = ρx(t) − δx(t)

Keressük a maximális folyamértéket (∑e∈s x(e) = ∑e∈t x(e)), ami a forrásbólkifutó és a terminálba bejövő értékek összege.

Tétel. Ford Fulkerson: A maximális folyam értéke megegyezik a minimálisvágás értékével.

A fenti tétel bizonyításhoz a feladatott megfogalmazzuk LP és DP alakban, deehhez szükségünk lesz a következő lemmára:

Adott x ∈ E ↦ R+

∀v ∈ V − {s, t}

⎧⎪⎪⎨⎪⎪⎩

δx(v) ≤ ρx(v)

δx(s) ≤ ρx(t)

⎫⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎭

⇒ x egy folyam

Azaz a folyamban a pontokban érték elvesztődhet, de nem keletkezik új. Ve-gyünk fel ∀v ∈ V − {s, t} csúcshoz egy új terminálba mutató élet, amelyekhezhozzárendeljük az x′(e) = ρx(v) − δx(v) ≥ 0 egyenlőtlenséget (a belépők többségbevannak a kilépőkhöz képest, és ami eltünnik az e új élen távozzik a terminálba).A többi élen maradjon meg a korábbi értékek, x(e) = x′(e).

Az így konstruált x folyamhoz tartozzik egy G′ gráf. Mivel ez is folyam igaz,hogy:

ρx(t) ≥ δx(s) = δx′(s) ≥ ρx′(t) ≥ ρx(t)

.

32A lineáris és egészértékű programozás alkalmazása hálózati folyamproblémákra

De itt csak egyenlőség állhat, ezért ρx′(t) = ρx(t), ami csak akkor teljesülhetha x folyam.

AZ LP felíráshoz először is egészítsük ki a gráfot egy e∗ = (t, s) pszeudó éllel,ez lesz később majd a folyam értéke, µ.

0bv ⋮

B 0s −1t 1

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶B∗

x

µ´¸¶x∗

≤ 0

Az így kapott gráf illeszkedési mátrixa legyenB∗. Minden v ∈ V −{s, t} csúcshoz tartozik egy sor,amelyre teljesül a bvx ≤ 0 feltétel (azaz a belépő élekösszege nagyobb, mint a kilépőké, mert a bvx hakifejtjük δx(v) − ρx(v) ≤ 0 amit átrendezve kapjuk,hogy δx(v) ≤ ρx(v)). Továbbá a forrás és a terminál

sorai alapjánδx(s) − µ ≤ 0µ − ρx(t) ≤ 0

} ⇒ δx(s) ≤ µ ≤ ρx(t).

Ezzel felírtúk az előző lemma összes feltételét, tehátx egy folyam, ahol e e∗ élen a folyam teljes átvitele átfolyik, δx(s) = µ = ρx(t), ésa folyam értéke µ.

Bs −1t 1

0E 0

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶B∗

x

µ´¸¶x∗

0

c

´¸¶M

E szerint meg a maximális folyam felírható mintmax{(0,⋯,0,1)x∗ ∶ B∗x∗ ≤ 0;x∗ ≥ 0; x ≤ c}. Azutolsó feltételt is hozzávesszük a mátrixhoz, mintaz E egy egységvektor és a hozzá tartozó c rész azM vektorban.

A duális feladat megfogalmazható mint egymin{yM ∶ yB∗ ≥ (0,0,⋯,0,1); y ≥ 0} optimalizá-lás. Láthatjuk, hogy ebből könyedén nem tudunkegy vágás fogalmat hozzárandelni. Ezért fejezzük

ki ebből y–t (π (v) ∣w (e)) alakban. Ekkor a duál feladat megegyezik az alábbiegyenletrendszerrel:

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

(1) π(v) ≥ 0 és w(e) ≥ 0,(2) minden e = (u, v) élre π(u) − π(v) +w(e) ≥ 0,(3) π(t) − π(s) ≥ 1.

A duális változói közül π a csúcsokhoz (mekkora csúcs a potenciálja), w azélekhez rendelhető (menyibe kerül nekem a szállítás az él mentén). A duális fel-adat célja az mDLP = min{∑e∈E w(e)c(e)} alak minimalizálása. Állítjuk, hogy ezmegegyezik a hálózati folyam minimális vágásának értékével (legyen ez mC).

A bizonyitáshoz belátjuk, hogy (A) mDLP ≤ mC és, hogy (B) mDLP ≥ mCamiből következzik, hogy mDLP =mC.

(A) Bármely adott mC vágáshoz könnyen készíthető olyan π és w amelyreaz mC = min{∑e∈E w(e)c(e)} következik. Bizonyításként adunk egy módszertehhez: legyen S (tartalmazza a forráspontot) és T (tartalmazza a terminál csúcsot)

Lineáris programozás 33

diszjunkt halmazok, ekkor:

⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎩

v ∈ S ⇒ π(v) = 0,v ∈ T ⇒ π(v) = 1,e ∈ (S,T ) él ⇒ w(e) = 1,másképp ⇒ w(e) = 0.

Erre teljesül a mC =min{∑e∈E w(e)c(e)}, amiből adódik az mDLP ≤mC, márcsak a másik irányú egyenlőtlenséget kell beállítani.

(B) Az B∗ mátrix totálisan unimoduláris, tehát y is egész értékű elemekbőláll (mivel a duális feladatban, min{yb ∶ yA = c; y ≥ 0}, szereplő c is az). Legyenadott (π,w) optimális, egészértékű megoldás, ebből kiindulva elkészítünk egy má-sik ugyancsak optimális megoldást, (π′,w′)–t , amely csak 0 vagy 1 értékű elemeket

tartalmaz: π′(v) =⎧⎪⎪⎨⎪⎪⎩

0, ha π(v) ≤ π(s),1, egyébként,

és w′(e) =

⎧⎪⎪⎨⎪⎪⎩

0, ha w(e) = 0,1, ha w(e) ≥ 1.

Ekkor (π′,w′)–re (1) és (3) teljesül. A (2)-öt indirekt bizonyítjuk. Tegyük fel,hogy egy adott e = (u, v) él esetén ez nem tejlesül, azaz π′(u) − π′(w) +w′(e) < 0.Ekkor a 0 − 1 értékűségük miatt π′(u) = w′(e) = 0 és π′(v) = 1 esetben valósulnameg. π′ definíciója miatt ebben az esetben π(v) > π(s) ≥ π(u), ami ellentmonda-na (2)–nek, hisszen w′ definíciójábból adodik, hogy w(e) = 0 (ami azt jelentené,hogy u–ból v–be úgy nőt a potenciál, hogy w = 0). A megoldás optimális mert∑w′(e)c(e) ≤ ∑w(e)c(e), mivel w′(e) ≤ w(e). Tehát (1), (2), (3) teljesül és az ígyfelírott π′,w′ egy helyes átírás.

Most visszatérve az S és T halmazainkra legyen, S = {v ∈ V ∶ π′(v) = 0} ésT = {v ∈ V ∶ π′(v) = 1}. Egy adott e = (u ∈ S, v ∈ T ) élre w′(e) = 1. Minden másélen w csak akkor lehet egy, ha c(e) = 0, mert egyébként w′(e) = 0 változtatásaután a feltételek továbbra is fennállnának, de a ∑w′(e)c(e) csökkenne. Ezért S ésT között feszülő élek alkotta vágás értéke mDLP, így mc ≤mDLP.

Ezzel egy általános bizonyítást adtunk a Ford–Fulkerson tételre, amely az ígyátfogalmazott alakban általánosabb kérdések megválaszolására is alkalmazható.

7.1. Minimális költségű folyam kereséseMinden élhez rendeljünk egy k költséget, amely kifejezi, hogy egy egységnyi folyamátviteli azon menyibe kerül. Ekkor kitűzhető egy olyan feladat, ami a legalábbm nagyságú folyamok között keres minimális költségűt. Lineáris programozásalakban:

min{kx ∶ B∗x∗ ≤ 0, x∗ ≥ 0, x ≤ c, µ ≥m} .

Ha az élek kapacitásai egész értékűek, akkor egész értékű folyam is választható.Ha az élek költsége is egészértékű, akkor ismert hatékony algoritmus megoldására,Ford–Fulkersontól.

34A lineáris és egészértékű programozás alkalmazása hálózati folyamproblémákra

7.2. Több termékes folyamAdott egy G = (V,E) irányított gráf és abban k darab pont pár: (si, ti)i=1,k. G–ttovábbra is képzelhetjük út– vagy csőhálózatnak, az (si, ti) pont párok pedig a kdarab szállítandó termék termelő–, illetve fogyasztó helyének felelnek meg. Végüllegyen adott egy c ∶ E ↦ R+ kapacitás függvény.

A feladat egy megoldása abból áll, hogy minden élhez k darab számot fogunkhozzárendelni, megmondva, hogy az egyes termékből ott éppen mennyi halad át.Erre az esetre is alkalmazható a lineáris programozás, sőt a legalább két termékesfolyamoknál már az egyetlen ismert hatékony algoritmus (k = 1–re a javító utasalgoritmus egész értékű megoldást ad polinomiális időben). Az egész értékű fel-adat viszont már itt is NP nehéz (mivel a feladatott leíró mátrix nem totálisanunimoduláris ekkor).

2. fejezet

Matroidok

8. Matroid definiciója és a rangfüggvény szubmo-dularitása

A matroidot definiálhatjuk a függetlenségi axiómákkal mint, legyen E egy tetsző-leges és véges alaphalmaz. Ugyanakkor F ⊆ 2E egy halmaz rendszer. Egy adottM = (E,F ) struktúra matroid, ha teljesül, hogy:

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

F1) ∅ ∈ F

F2)X ∈ F

Y ⊆X}⇒

Y ∈ F (F leszálló halmazrendszer – ha egy halmaz benne vanF–ben akkor annak összes részhalmaza is benne van F–ben,ehhez szükséges az F1 axióma).

F3)X,Y ∈ F

∣X ∣ > ∣Y ∣}⇒ ∃ x ∈ X − Y , hogy Y ∪ {x} ∈ F (szubmodularitás, kölcsö-

nösen bővithetőség – legyen két halmazrendszer a matroid-ból, ahol ez egyik számoságban több elemet tartalmaz; hae több eleműben létezik olyan elem amely a kisebbikbennincs, akkor ezzel a kisebbiket kiegésztive szintén F–belielemet kapunk).

Egy M = (E,F ) matroidban:

független halamaznak nevezzük E alaphalmaz F–hez tartozó részhalmazait (tehát X ⊆ E–re X ∈ F ).

maximális független halmaznak nevezzük azt az X ∈ F halmazt amelyhezmár nem bővithető tovább anélkül, hogy a halmaz függetlensége sérüljön.

matroid bázisai a matroid maximális független halmaza.

36 Matroid definiciója és a rangfüggvény szubmodularitása

minimálisan összefüggő halmaznak nevezzük azt az X inF halmazt amelynem független, de amelyből bárhogy veszünk el egy elemet a művelet függet-lené tesszi.

körnek nevezzük a minimálisan összefüggő halmazt.

hurok az egyelemű kör.

a halmaz rangja egy X ⊆ E halmaznak az X maximális független részhalmazá-nak mérete, elemszáma. Jelölése: r(X).

a matroid rangja az alaphalmaz rangja, azaz r(E), ahol r ∶ 2E ↦ Z+.

Legyen M = (E,F ) matroid ahol A ⊆ E és X1,X2 ∈ A maximális függetlenhalmazok A–ban (bázisok), akkor ∣X1∣ = ∣X2∣. A bizonyitás indirket megy, legyen∣X1∣ > ∣X2∣⇒ ∃e ∈ X1 −X2, ahol F3 miatt X1 ∪ {e} ∈ F ⇒ X1 nem maximális. Deez ellentmondás, tehát a feltevéssünk is hamis volt.

Lineáris (mátrix) matroid Grafikus matroid Uniformmatroid

⎛⎜⎜⎝

a

³·µ1

b

³·µ2

0 0

⎞⎟⎟⎠

ab U2,1

⎛⎜⎜⎝

a

³·µ1

b

³·µ0

c

³·µ1

0 1 1

⎞⎟⎟⎠

cba

U3,2

⎛⎜⎜⎝

a

³·µ1

b

³·µ0

c

³·µ1

d

³·µ2

e

³·µ0

0 1 1 0 0

⎞⎟⎟⎠

cba

d

e∣E∣ = 5,32 rész-halmaz

⎛⎜⎜⎝

a

³·µ1

b

³·µ0

c

³·µ1

d

³·µ1

0 1 1 2

⎞⎟⎟⎠

/∃ U4,2

2.1. táblázat: Példák matroidra

Grafikus matroid egy G gráf által leírt M = (G élei, G –beli erdők). A bázisfogalma megfelel a feszítő erdőnek. Jelőlése M(G) és még körmatroidnak isnevezzük.

Matroidok 37

Lineáris matroid egy mátrix által indukált matroid M = (A oszlopai, A lineári-san független oszlopai). Mátrixmatroid név alatt is ismeretes.

Uniform matroid egy M = ( tetszőleges véges halmaz, a halmaz lefeljebb kelemű részhalmazai). Legyen n = ∣E∣. Ekkor Un,k–val jelöljük az uniformmatroidot. Un,n a teljes/szabad matroid (grafikusan egy csillag alakzat), haösszes részhalmaza független. Un,0 a triviális matroid, amelyben csak az üreshalmaz független (grafikusan minden éle egy hurok).

8.1. Rangfüggvény szubmodularitásaBármely X,Y ⊆ E–re igaz, ha r ∶ 2E ↦ Z+ egy matroid rangfüggvénye, akkor:

⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎩

R1) r(∅) = 0R2) r(X) ≤ ∣X ∣

R3) r(Y ) ≤ r(X), ha Y ⊆X

R4) r(X) + r(Y ) ≥ r(X ∪ Y ) + r(X ∩ Y )

Azaz (fordítva), ha r egy egészérrtékű függvény E részhalmazain, amelyre tel-jesül a fenti négy tulajdonság, akkor r egy M = (E,F ) matroid rangfüggvénye,ahol:

F = {H ∶ r(H) = ∣H ∣} .

Az első három tulajdonság bizonyitása rögtön adódik a rang definiciójából. AzR4–re meg (ami a rangfüggvény szubmodularitása) legyen egy X,Y ∈ E. A egymaximálisan független halmaz X ∩ Y –ban (A ⊆X ∩ Y ), amely számossága α.

Nyilván A kiterjeszthető egy B halmazzá úgy, hogy az maximálisan függetlenlegyen X ∪ Y –ban. Ehhez X–ből β új elemet rakunk hozzá, és Y –ból γ darabot:

r(X ∩ Y ) = α

r(X ∪ Y ) = α + β + γ

E számok korlátot szabnak X és Y rangjára is mint:

r(X) ≥ α + β

r(Y ) ≥ α + γ

r(X) + r(Y ) ≥ α + β + γ´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶r(X∪Y )

+ α´¸¶r(X∩Y )

r(X) + r(Y ) ≥ r(X ∪ Y ) + r(X ∩ Y )

38 Matroid definiciója és a rangfüggvény szubmodularitása

X Y

βαγ

7. ábra: A rangfüggvény szubmodularitása

Példa arra, hogy az egyenlőség nem mindig áll fent:

cba

⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎩

X = (a, b), r(X) = 2Y = (a, c) r(Y ) = 2X ∪ Y, r(X ∪ Y ) = 2X ∩ Y, r(X ∩ Y ) = 1

Matroidok 39

9. Mohó algoritmus matroidon és matroid meg-adása bázissal, duális matroidok

M = (E,F ) matroid,w ∶ E ↦ R+ }

?Ô⇒

mekkora a maximális összsulyú független halmaz, azazmax{∑e∈X w(e)} ha X ∈ F , és mely ez az X?

A mohó algoritmus tetszőleges matroid és súlyfüggvényre optimális megoldást ada fenti kérdésre, a ∅ ∈ F–ből kiindulva, maximális sulyú elemeket csökenő sorrendbevéve (amik nem sértik a halmaz függetlenségét).

A bizonyitás indirekt történik, tegyük fel, hogy nem. Legyen ekkor Y az opti-mumot meghatározó halmaz,X pedig amit a mohó algoritmus adott. Tudjuk, hogyX és Y is maximálisan független, tehát az F3 alapján ∣X ∣ = ∣Y ∣ = n. A két halmazelemeit rendezzük csökkenő sorrendbe, és írjuk fel őket mint X = {a1, a2,⋯, an} ésY = {b1, b2,⋯, bn}, ahol:

w(a1) ≥ w(a2) ≥ ⋯ ≥ w(an)

w(b1) ≥ w(b2) ≥ ⋯ ≥ w(bn)

A mohó algoritmus a legnagyobb sulyú elemmet vesszi, amely esetén a füg-getlenségi tulajdonság nem sérül, tehát az első elem a legnagyobb elem lesz, azazw(a1) ≥ w(b1). Mivel a két halmaz különböző egymástol, ezért lesz egy i indexamire ez a feltétel megfordul, azaz w(bi) > w(ai), egyébbként a mohó is az op-timumot kapta volna meg. Amely lépésben ez előfordul a két halmaz felírhatómint:

A = {a1,⋯, ai−1},

B = {b1,⋯, bi}}

F3Ô⇒ ∃ bj ∈ B, amelyre A + bj ∈ F

Az A halmaz elemei csökkenő sorrendbe vannak rendezve, tehát w(bj) ≥ w(bi),de ugyanakkor itt w(bi) > w(ai). De ez ellentmondás, mert ekkor a mohó algorit-mus a bj elemet választotta volna, nem peddig az ai–t, tehát feltevéssünk hamisvolt, a mohó algoritmus megadja az optimális megoldást.

Ha a mohó algoritmus optimális megoldást ad és F1,F2 függetlenségi axiómákteljesülnek akkor F3 is igaz.

40 Mohó algoritmus matroidon és matroid megadása bázissal, duális matroidok

A bizonyitás ismét indirekt, tegyük fel, hogy a mohó algoritmus optimális meg-oldást ad, de F3 nem lesz igaz. IlyenkorX,Y ∈ F , ahol ∣X ∣ > ∣Y ∣ igaz, de /∃ x ∈X−Yúgy, hogy Y ∪ {x} ∈ F . Legyen:

r = ∣Y −X ∣∣X−Y ∣

w ∶ E ↦ R+

w(e) =

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

1 e ∈ Y,

r + 1−r2 e ∈X − Y,

0 másképp

⎫⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭

Az algoritmus elöszőr kiválasztja Y elemeket,de ezután már csak nulla sulyút választhat-na. Így az összsúly ekkor ∣Y ∣ ⋅ 1. X összsúlyvisszont ∣X∩Y ∣+∣X−Y ∣⋅(r+ 1−r

2 ), ami nagyobb.De így egy optimálisabb megoldást kaptunk,azaz a mohó nem az optimumot adta meg. Deez elentmond a kiinduló feltételünknek, teháta feltvésünk, hogy F3 nem teljesül, hamis.

X Y

0

1 − ε 1 1

γ α β

8. ábra: Ha a mohó algoritmus megoldása optimális, akkor F3 teljesül

9.1. Bázisos megadás

Legyen B egy matroid bázisainak halmaza, ekkor teljesül, hogy:

⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎩

B1) B ≠ ∅

B2) ∣X1∣ = ∣X2∣⇐ ∀X1,X2 ∈ B

B3)X1,X2 ∈ B

e1 ∈X1}⇒ ∃ e2 ∈X2,hogy X1 − e1 + e2 ∈ B

Fordítva, ha (E,B) egy halmazrendszer ahol a fenti három tulajdonság teljesülakkor M = (E,F ) matroidot alkot, ahol:

F = {H ∶H ⊆ C valamely C ∈ B–re}

Matroidok 41

9.2. Duális matroid

M = (E,F ) matroid,bázisai B = {B1,⋯,Bn}

}⇒

A duális matroid bázisai megfogalmazható mintB∗ = {E−B1,⋯,E−Bn}. Ez meghatározza F ∗–ot,és duális matroidot mint M∗ = (E,F ∗) jelöljük.

Bizonyitanunk kell, hogy azM∗ matroidra teljesülnek a függetlenségi axiómák.F1 és F2 nyilvánvaló. F3–at kell belátni, azaz, hogy X,Y ∈ F ∗ és ∣X ∣ > ∣Y ∣

esetébben létezzik x ∈X − Y , hogy Y + x ∈ F ∗. Legyen BX ⊆ E −X és BY ⊆ E − Yegy–egy M–beli bázis, amelyek a definició alpaján léteznek.

Ha létezzik X–beli elem amely nincs benne Y –ban és BY –ban se, akkor ezthozzávéve Y –hoz ismét F ∗–beli halmazt kapnánk. Ha ilyen nem létezzik akkorX ⊆ BY ∪ Y és

∣BY ∩X ∣ = ∣X − (X ∩ Y )∣ > ∣Y − (X ∩ Y )∣ ≥ ∣BX ∩ Y ∣.

BX és BY mérete megegyezik (∣BX ∣ = ∣BY ∣), tehát ∣BY −X ∣ < ∣BX − Y ∣. Most ekét halmazra alkalmazzuk F3–at, azaz ∃ z ∈ (BX − Y ) − (BY −X) eleme amelyre(BY −X)+ z független M–ben. Ezt a független halmazt egészitsük ki bázisá, úgy,hogy BY –ból vesszünk hozzá új elemeket, jelöljük ezt B′–el. B′ bázisába létezikelem E − BY –ból, tehát létezik olyan BY –beli elem amely nincs benne B′–ben.Legyen ez az elem u. E u elemre Y + u ⊆ E −B′, tehát Y + u ∈ F ∗. Megkaptuk azelemet amire mindig igaz lesz F3, tehát a bizonyitás teljes.

(M∗)∗ =M

9.3. A duális matroid rangfüggvénye

r∗(X) = ∣X ∣ − r(E) + r(E −X)

A bizonyitáshoz csupán le kell vezetni:

r∗(X) =max{∣X ∩ Y ∣ ∶ Y ∈ F ∗} =max{∣X ∩ Y ∣ ∶ Y ∈ B∗}

=max{∣X ∩ (E −Z)∣ ∶ Z ∈ B} = ∣X ∣ −min{∣Z ∩X ∣ ∶ Z ∈ B}

= ∣X ∣ − (r(E) −max{∣W ∩ (E −X)∣ ∶W ∈ B})

= ∣X ∣ − r(E) + r(E −X)

42 Mohó algoritmus matroidon és matroid megadása bázissal, duális matroidok

Matroidok 43

10. Elhagyás és összehúzás. T test felett repre-zentálhatóság. Matroidok direkt összege ésösszefüggősége.

Legyen M = (E,F ) matroidon X ⊆ E halmazra definiáljuk a következő művelete-ket:

elhagyás az M ∖X = (E −X,F ∖ Y ), ahol F /Y = {Y ⊆ E −X,Y ∈ F} (tehát azúj matroidot úgy kapjuk, hogy alaphalmazból elhagyjuk az X–beli elemektés a halmazrendszerből meg azon elemeket amelybe ezek részt vesznek).

összehuzás az M/X = (E − X,F /X), ahol az M/X rangfüggvénye felírhatór(Y ) = r(X ∪ Y ) − r(X), Y ∈ E −X alakban (ha kivesszük az alaphalmaz-ból az összehuzott elemeket az új alaphalmaz – Y – rangja egyenlő a teljeskezdeti alaphalmaz – X ∪ Y = E– és kivett alaphalmaz különbségével).

a

b c d

e

e él elhagyása

a

b c d

e él összehuzása

d

a

b c

9. ábra: Elhagyás és összehuzás művelet grafikus matroidban

Az elagyások és az összehuzás műveletek prioritása azonos, tehát felcserélhető.M matroid minora annak egy elhagyás és összehuzás sorozata. Bármely matroidminora előáll N = (M ∖A)/B alakban, ahol A és B diszjunkt halmazok.

Az elhagyás és az összehuzás duális művelet:⎧⎪⎪⎨⎪⎪⎩

M∗/X = (M ∖X)∗,

M∗ ∖X = (M/X)∗.

A bizonyitáshoz elég az elsőt belátni, mert ha az igaz, mindkét oldal duálisátvéve és M helyet M∗–ra alkalmazva azt következik a második kijelentés. Tudjuktehát, hogy az duális matroid összehuzásának (M∗/X) rangfüggvénye (legyen ezr1):

44 Elhagyás, összehúzás, összeg,reprezentálhatóság

r1(Y ) = r∗(X ∪ Y )

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶∣X∪Y ∣+r(E−X−Y )−r(E)

− r∗(X)

´¹¹¹¹¹¸¹¹¹¹¹¶∣X ∣+r(E−X)−r(E)

= ∣Y ∣ + r(E −X − Y ) − r(E −X)

Ugyanakkor a matroidból X elhagyásával (M∗/X) a rangfüggvény (r2):

r2(Y ) = ∣Y ∣ + r(T − Y ) − r(T ),

ahol T = E −X az M ∖X matroid alaphalmazza. Látjuk, hogy r1(Y ) = r2(Y )⇒

minden Y –ra a a két matroid megegyezik, s ezzel bizonyitásunk teljes.

direkt összegM1 = (E1, F1) matroid,M2 = (E2, F2) matroid,E1,E2 diszjunkt, nem üres

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

N =M1+M2 alaphalmaza E1∪E2, és

X ⊆ E1 ∪E2 halmaz akkor független a direkt összegben, ha X ∩E1 függetlenM1–ben és X ∩E2 független M2–ben.

egy matroid összefüggő ha nem áll elő matroidok direkt összegeként. A grafi-kus matroid akkor összefüggő, ha a gráf kétszeresen összefüggő.

M = (E,F ) reprezentálható T test felett, ha bármely elem az alaphalmazból Tfeletti vektor.

M matroid koordinázható T test felett, ha létezik olyan mátrix, amelynek osz-lopai T felett vektorok, és az ezek által meghatározott lináris matroid izomorM–el.

Bármely r = r(E), n = ∣E∣ matroidra létezzik A ∈Mr×n mátrix amelyel leírhatóM = (E,F ) matroid (és a mátrix sorai lineárisan függetlenek). Az A mátrixmegalkotásához r sorra van szükség, ha a matroid több elemet tartalmaz válaszunkki r lineárisan függetlent. Ekkor a jobb oldali alakra hozható A mátrix, ettől mégugyanazt a matroidot koordinázza:

egység alaká alakít³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹µ

1 ⋯ r⋮ det ≠ 0r

1 ⋯ n⋮ Ar

=

1 ⋯ n⋮ Br

=

1 ⋯ r 1 ⋯ n − r⋮ Ir ⋮ A′

r r

Ha M = (E,F ) matroid reprezentálható T test felett akkor a duálisa (M∗) is.

Matroidok 45

A bizonyitáshoz hozzuk a matroid mátrixát oly alakra, hogy a mátrix bal ol-dalán egy egységmátrix alakuljon ki. Legyen ennek r sorra, ekkor Er egységmát-rix M egy bázisa, míg A0 oszlopai a többi elemek. Megprobáljuk belátni, hogyA′ = (−AT0 ∣En−r) is reprezentálja a duális matroidot.

M =

1 0 0 C⋮ 1 0 A00 ⋯ 1

⇒M∗ =

1 0−CT 1 0

1 0AT0 1

0 1r−t t r−t n−2r+t

M matroid és a duálisának a mátrixa természetes modón megfelelhetőek egy-másnak, az ábrán balról jobbra az oszlopcsoportok megfelelnek egymásnak. Vá-laszunk ki az M valamely bázisának megfelelő részmátrixot A–ban. Feltehető,hogy ennek első t oszlopa éppen Er utolsó t oszlopa, míg a maradék r − t oszlopA0 első r − t oszlopa. Ennek a mátrixnak determinánsa akkor nem nulla, ha Cdeterminánsa nem nulla. Mivel B bázis, ezért C nem szinguláris.

B∗ = E −B elemeinek A′–ben az a mátrix felel meg, amely első r − t oszlopa−AT0 , a többi pedig En−r utolsó n− 2r + t oszlopa. Ennek a felső blokk–háromszögmátrix determinánsa akkor nem nulla, ha −CT determinánsa nem nulla. Azaz,hogy C nem szinguláris. Tehát a bázis komplementere is bázis, és fordítva, ésezért A′ valóban a duálist reprezentálja.

46 Elhagyás, összehúzás, összeg,reprezentálhatóság

Matroidok 47

11. Matroid osztályokA következő matroid osztályokat különböztetjük meg:

Típus Definició Példagrafikus ha egy G gráf által indukált (körmatroid). K3,K5kografikus a grafikus matroidok duálisa. K3,K∗

5síkba rajzolható ha grafikus ∩ kografikus. K3reguláris ha bármely test felett reprezentálható. K∗

3,3,K5 ⊕K∗5

bináris ha csak a bináris test felett reprezentálható. F7lineáris ha létezik test amely felett reprezentálható. F −

7összes ha a korábbiak közül egyik se. F7 ⊕ F −

7

2.2. táblázat: Matroid osztályok

Ugyanakkor igaz, az osztályokra, hogy grafikus, kografikus ⊆ reguláris ⊆ bináris⊆ lineáris ⊆ összes.

4

61

5

2

3

7

10. ábra: A Fano matroid

A Fano matroid egy olyan matroid, amelyben azalaphalmaz mérete 7 és minden 2 elemű részhalmazfüggetlen, de minden 3 elemű csak akkor ha a 10ábrán nincsenek egy körön vagy egy egyenesen. Hakör megkőtést elhagyjuk az így alkotott matroid azAnti–Fano matroid.

A Fano matroid pontosan azon testek felett rep-rezentálható amelyek karakterisztikája 2 (például abináris matroid). Az Anti-Fano meg azon testekfelett amelyek karakterisztikája nem kettő. Tehát

a két matroid direkt összege semilyen test felett nem reprezentálható, azaz nemlineáris.

Grafikus matroid bármely test felett reprezentálható (reguláris).

⇒ Induljunk ki egy n pontú gráfból, tetszőleges irányitással, rendeljünk min-den ponthoz egy-egy n dimmenziós egységvektort. Az élekhez rendeljük a kétvégpontjuk közti különbséget (az irányitás lényegtelen). Azt szeretnénk bebizonyi-tani, hogy egy élhalmaz akkor lineárisan független, ha az általa kifeszített részgráfkörmentes.

Az élek vektorjában csak 0,1 vagy −1 áll, tehát ezzek bármely test felett repre-zentálhatóak. Ha a gráfban egy kör menti éleket összeadjuk null vektort kapunk,mert a megfelelő nem nulla koordináták kiejtik egymást (az összeghez az élet hozzá-adjuk ha kör körbejárási iránya megegyezik az él irányával, és kivonjuk egyébbként– 1 vagy −1 együthatók).

48 Matroid osztályok

n darab élUn,n

körUn,n−1

Un,1

Un,0

11. ábra: Uniform matroidok

⇐ Fordítva, vegyünk egy összefüggő vektorhalmazt és ennek egy olyan Xnemüres részhalmazát amely olyan lineáris kombinációja ad nullát, ahol semelyikegyütható nem null. Az élvektorok azokon a koordinátákon nem nulla, amelyikpontokat összeköt.

Ahhoz, hogy a nullvektor kijöjjön miden ponthoz két darab nemnulla koordi-náta kell, hogy létezzen. Azaz egy pontra két él illeszkedik, amely szerint mindenilyen pont foka nagyobb mint 2. Egy adott részgráfban, ahol minden csúcs fokanagyobb mint kettő, biztosan létezik kör.

11.1. Tuttle tételei

M matroid

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

bináris ⇔ nem tartalmazza minorként: U4,2.

reguláris ⇔ nem tartalmazza minorként: U4,2, F7, F ∗7 .

grafikus ⇔ nem tartalmazza minorként: U4,2, F7, F ∗7 , M∗(K5),

M∗(K3,3).

11.2. Seymour tételM reguláris ⇔ előáll 1 grafikus, 1 kografikus és egy R10 matroid példányából adirekt összeg, 2-összeg és 3-összeg műveletek segítségével.

Az R10 egy 5 rangú elem, egy 10 elemű halmazon: nem grafikus és nem kogra-fikus.

1 1 1 1 1 1 0 0 0 01 1 1 0 0 0 1 1 1 01 0 0 1 1 0 1 1 0 10 1 0 1 0 1 1 0 1 10 0 1 0 1 1 0 1 1 1

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠

12. ábra: Az R10

Matroidok 49

12. Matroidok összege, k-matroid-metszet prob-léma és bonyolultsága

M1 = (E,F1),

M2 = (E,F2)}⇒M1 ∨M2 = (E,F ′),X ∈ F ′⇔X1,X2

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

X =X1 ∪X2

X1 ∈ F1

X2 ∈ F2

Tehát a matroid összegében azon elemek jelenek meg amelyek előállnak F1 ésF2–beli elemek uniójáként.

Matroidok összege is matroid.

A bizonyitáshoz ellenőrizük a függetlenségi axiómákat. F1 és F2 nyilvánvaló,tehát csak F3–at látjuk be indirekt. Tegyük fel, hogy nem igaz, X,Y ∈ F ′ és∣X ∣ > ∣Y ∣, de nem létezik x ∈ X − Y , hogy Y + x ∈ F . X és Y halmazokank mindiglétezzik X =X1 ∪X2 (X1,X2 ∈ F1) és Y = Y1 ∪ Y2 (Y1, Y2 ∈ F2) felbontása.

Válasszunk egy olyan felbontást, hogy a részhalmazok diszjunktak legyenek,∣X1∣ > ∣Y1∣ és az ∣X1 ∩ Y2∣+ ∣X2 + Y1∣ összeg minimális értéket vegyen fel. Ekkor M1matroidra alkalmazva az F3–at: létezzik x ∈X1 − Y1, hogy Y1 + x ∈ F1.

Ha x /∈ Y2 akkor x + Y benne van az összegben (∈ F ′), ami ellentmondana azindukciós feltevésünknek. Tehát x ∈ Y2, amiből következik, hogy létezik egy másikfelbontás Y = (Y1 + x) ∪ (Y2 − x) = Y ∗

1 ∪ Y ∗2 . Erre viszont a ∣X1 ∩ Y ∗

2 ∣ + ∣X2 ∩ Y ∗1 ∣

összeg egyel kevesebb, ami elentmond annak, hogy mi már a lehető legkisebbetválasztottuk korábban. Tehát a feltvéssünk hamis volt, F3 igaz.

M = (E,F ) matroid szabadmatroid, ha bármely részhalmaza független.

12.1. Matroid metszet probléma – MMPk

Adott k darab matroid közös alaphalmazon: Mi = (E,Fi)i=1,k. A kérédés amirekeressük a választ, hogy létezik e p ∈ N konstansra p méretű halmaz ∩Fi–ben. Azeredmény nem minden esetben lesz matroid.

MMP2 ∈P.

A bizonyitáshoz induljunk ki egy adott M1 = (E,F1) és M2 = (E,F2) matroidpárból és legyen p a halmazrendszerek metszetébben keresett halmazok méret. Hap >min(r1, r2) akkor a válasz nem, ilyen méretű halmaz nem létezik. Másképpencsonkoljuk a két matroidot amig rangjuk min(r1, r2, p)–re nem csökken:

50 Matroidok összege, k-matroid-metszet probléma és bonyolultsága

M = (E,F ) egy p rangú matroid0 ≤ k ≤ pp ≥ 1

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

F ′ = {X ⊆ E ∶X ∈ F, ∣X ∣ ≤ k}(E,F ′)M csonkolat matroidja

Ezzel a problémát redukáltuk a közös bázis megkeresésére. r1 = r2 = p–re aválasz akkor és csak akkor igenlő ha létezzik ilyen méretű közös bázis, azaz haM1 ∨M∗

2 = (E,2E) szabad matroid.⇒ Ha M1 és M2–nek van egy közös B bázisa, akkor M∗–ban E −B bázis. Az

E = B ∪(E −B) egy felbontása az összegnek, azaz az összegben E független, tehátM1 ∨M∗

2 szabadmatroid.⇐ Legyen E = C ∪D egy olyan felbontása a szabadmatroidnak, hogy C ∈ F1 és

D ∈ F ∗2 . Ekkor:

∣E∣ ≤ ∣C ∣ + ∣D∣ = r1(C) + r∗2(D) ≤ r1(E) + r∗2(E) = r1(E) + ∣E∣ − r2(E) = ∣E∣.

Mivel C és D–t diszjunkt halmazoknak választottuk, C közös bázisa az M1 ésM2 matroidnak.

12.2. BonyolultságMMPk bonyolultsága ha k ≥ 3–ra NP teljes. A feladatt NP–beli mert a p elembelihalmaz közös tanú a két halmazrendszerre.

Az NP teljeséghez figyeljük meg, hogy MMP3 visszavezethető Hamilton útkeresésére (amiről tudjuk, hogy egy NP teljes probléma). Legyen:

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

M1 = (E,F1)

X ⊆ E

X ∈ F1

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

⇔X részgráfban minden pont befoka legfejlebb egy és azu befoka nulla.

M2 = (E,F2)

X ⊆ E

X ∈ F2

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

⇔X részgráfban minden pont kifoka kisebb vagy egyenlőeggyel egy és a v kifoka nulla.

M3 a gráf körmatroidja.

Ekkor M1, M2, M3 közös ∣V ∣ − 1 elemű bázisai G irányított Hamilton útjai.

MMPk, ha k > 3 NP teljes. A bizonyitáshoz az imént konstruált struktúráhozvegyünk hozzá k − 3 darab szabad matroidot.

Matroidok 51

13. A k-matroid partíciós probléma – MPPk

Adott k darab Mi = (E,Fi), ahol i = 1, k matroid. A kérdés, hogy a matroidokösszege (∨ki=1Mi) a szabad matroidot (E,2E) adja e? Másképp megfogalmazvaelőáll e az alaphalmaz E az ∪ki=1Ei alakban, ha ∀i-re Ei ∈ Fi. Feltehető, hogy azEi halmazok diszjunktak, így egy partíciós problémához jutottunk.

MPPk P-beli probléma.

MPPk ∈ NP, mert ha a feladatnak van megoldása, az egy tanú, amely lineárisidőben ellenőrizhető. MPPk ∈ coNP, mert ha a feladatnak nem létezik megoldása,akkor adhatunk rá egy X ⊆ E halmazt, ami biztosan összefüggő az összegben, azaz∑ ri(X) < ∣X ∣.

13.1. Algoritmikus megoldás

Most adunk erre egy algoritmust amely megoldja a feladatott, ehhez kiindul üreshalmazokból és addig bővíti azokat amíg uniójuk E nem lesz. Ha egy adott pontnálnem bővíthető tovább egyik halmaz sem, akkor az lesz a keresett ellen példa, amibizonyítás arra, hogy a matroidok nem particionálhatók.

M1 M22

1 3

3

1 2

13. ábra: Példa, hogy a mohó algoritmus miért nem működik: E1 = {2}, E2 =

{3} állapotban nem tudunk újabb élt belevenni egyik halmazba sem. Egy jóparticionálás pedig a E1 = {1}, E2 = {2,3} felosztás.

Az algoritmus egy n + k pontú segédgráffal dolgozik (∣E∣ = n csúcs a halma-zoknak és k csúcs a partícióknak), tehát V ′ = E ∪ {p1, p2, . . . , pk}. A gráf éleitdefiniáljuk mint (

Ð→xy) ∈ E′ ahol:

x ∈ E

y = pi

x /∈ Ei

Ei ∪ {x} ∈ Fi

⎫⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎭

Egy ilyen él azt jelenti, hogy x-et hozzávehetjük Ei-hez a füg-getlenség megsérétése nélkül (Ð→xpi – az ábra felsõ részen a pi-kbe mutató élek).

52 A k-matroid partíciós probléma – MPPk

E1 E2

1

2 3

p1 p2

14. ábra: Segéd gráf

x, y ∈ E

x /∈ Ei, y ∈ Ei

Ei ∪ {x} /∈ Fi,

Ei ∪ {x} − {y} ∈ Fi

⎫⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎭

Egy ilyen él azt jelenti, hogy x-et hozzávehetjük Ei-hez,ha y-t elhagyjuk belöle (Ð→xy – az ábra alsó részén lévõélek).

0. ∀ i Ei = ∅ kezdeti állapot (i = 1, n). Erre igaz, hogy Ei ∈ Fi.

1. Keressük meg a legrövidebb irányított utat E − ∪iEi–ből {p1,⋯, pk}–ba.

2. Ha létezik irányított út akkor ez meghatároz egy módosítás-sorozatot, hogymelyik Ei-t hogyan kell módosítanunk. Az út utolsó éle egy pj-be megy, atöbbi E-beli elemek között, vagyis összesen 1-gyel növeljük Ei-k elem számát.Ha egy legrövidebb ilyen út mentén javítunk, akkor bizonyítható, hogy Ei-ka módosítások után függetlenek maradnak (mi nem bizonyítjuk).

3. Különben megállunk, nemleges a válasz, és a tanúX az E−∪Ei–ből irányítottúton elérhető pontok halmaza.

Lássuk be, hogy az algoritmus által megadott nemleges tanú valobban egy jóellenpélda, indirekten. Tehát:

∣X ∣k

∑i=1

∣X ∩Ei∣ =k

∑i=1ri(X ∩Ei) =

k

∑i=1ri(X)

ri(X) ≤ ri(X ∩Ei) mert ha ri(X) > ri(X ∩Ei) lenne akkor (F3) miatt X ∩Eikiegészíthető lenne egy u ∈X −Ei elemmel úgy, hogy Fi-ben továbbra is függetlenlegyen. Ugyanakkor ri(X) ≥ ri(X ∩Ei) triviális, tehát ∀i-re ri(X ∩Ei) = ri(X).

Tehát (X ∩Ei) ∪ {u} ∈ Fi, ezért:

• vagy Ei∪{u} ∈ Fi, ekkor u→ pi él be lenne húzva a gráfba és mivel u elérhetőE −⋃iEi-ből (X definíciója miatt), ezért pi is, tehát nem álltunk volna meg,ellentmondás.

Matroidok 53

E1 E2 . . . Ek

p1 p2 . . . pk

x

E

15. ábra: A halmazok

• vagy Ei∪{u} /∈ Fi, akkor van benne kör, ez a kör csak olyan lehet, ami Ei−X-be belemetsz (mivel ha X-ben lenne az egész kör, akkor (Ei ∪ {u}) ∩X =

(X∩Ei)∪{u} is összefüggő lenne, de nem az). Legyen a körnek egy Ei−X-belieleme v, ekkor Ei∪{u}−{v} független (mert független + 1 elemű halmazbancsak egy kör lehet, ha ezt megszüntetjük, újra független lesz), tehát lenneu→ v él a gráfban. Ez ellentmondás, mert akkor v X-beli lenne.

Mindkét eset ellentmondás, tehát ri(X) = ri(X ∩ Ei), így X tényleg jó tanúarra, hogy nincs jó partíció.

13.2. 2-matroid-metszet probléma

Adott k matroid (Mi = (E,Fi), ahol i = 1, k) és egy p egész szám. A kérdés, hogylétezik e Fi–nek legalább p méretű közös eleme?

Az így megfogalmazott probléma k = 2–re MMP2 komplexitása P–beli. MPPk–ra már beláttuk, hogy P–beli, MMP2-őt meg megfogalmazhatjuk mint a M1 ∨M∗

2összeg szabad matroid e?

54 A k-matroid partíciós probléma – MPPk

Matroidok 55

14. k–polimatroid

Egy f ∶ 2E ↦ N egy k–polimatroid rangfüggvénye, ha teljesül:

⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎩

KP1) r(∅) = 0KP2) r({X}) ≤ k, ekvivalens alak r(X) ≤ k∣X ∣

KP3) X ⊆ Y ⇒ r(X) ≤ r(Y )

KP4) r(X ∪ Y ) + r(X ∩ Y ) ≤ r(X) + r(Y )⇔ r(X ∪ Y ) ≤ r(X) + k∣Y ∣

Ha r({X}) ≤ 1, tehát k = 1 akkor r egy matroid rangfüggvénye.

14.1. k–polimatroid matching problémaHa r egy k–polimatroid rangfüggvény és X ⊆ E–re r(X) = k∣X ∣, akkor X–et egyk–matching halmaznak nevezzük. A k–polimatroid matching probléma felírhatómint:

E alap halmazr egy k–polimatroid rangfüggvényp ∈ N

⎫⎪⎪⎪⎪⎬⎪⎪⎪⎪⎭

?∃X⊆EÔÔ⇒

⎧⎪⎪⎨⎪⎪⎩

r(X) = k∣X ∣, tehát X k–matching∣X ∣ ≥ p

Figyeljük meg pár speciális esetét a problémának:

• Adott egy G gráf és egy t ∈ N. ν(G) ≥ t? 1 A probléma 2–polimatroidmatchingként: r(X) = ∣X által lefedett pontok halmaza∣ ≤ 2∣X ∣.

•két matroidt ∈ N

} létezik e X ⊆ E:⎧⎪⎪⎨⎪⎪⎩

∣X ∣ ≥ t

X ∈ F1 ∩ F2 (matroid metszet probléma)2–polimatroid matchingént megfogalmazva: r(X) = r1(X) + r2(X) ≤ 2∣X ∣

• A két korábbi problémát összevonva ν(G) egy adott G páros gráfban?

Hogy megfogalmazzuk k–polimatroid problémának felhasználjuk a fenti kétfeladatott. A páros gráf két csúcs halmaza legyen A és B. M1 grafikusmatroidban két él párhuzamos ha létezzük közös pontjuk A ponthalmazban.M2 hasonlóan van definiálva B–re.

1 ν(G) a G gráfban található független élek maximális száma.

56 k–polimatroid

14.2. BonyolultságTeljes általánosságban a probléma nem oldható meg polinom időben. Az általános-ság a függvény megadási módjára vonatkozik. ∀x ⊆ E–re egységnyi idő alatt r(X)

értéke megtudható, de ettől eltekintve a 2 polimatroid rangfüggvényéről semmitsem tudunk.

Ennek bizonyításához induljunk ki egy ∣E∣ = 2n alaphalmazból és ennek egy∣E0∣ = n részhalmaza. Továbbá legyen az alábbi két polimatroid rangfüggvény:

⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎩

∀X ⊆ E és ∣X ∣ < n, r1(X) = r2(X) = 2∣X ∣

∀X ⊆ E és ∣X ∣ > n, r1(X) = r2(X) = 2n∀X ⊆ E és ∣X ∣ = n és X = E0, r1(X) = r2(X) = 2n − 1∀X ⊆ E és ∣X ∣ = n és X ≠ E0, r1(X) = 2n − 1 és r2(X) = 2n

Mindkét függvény 2–polimatroid (a szubmodularitás tulajdonság bizonyításátnem részletezzük). Legyen most p = n. Arra a kérdésre, hogy van-e legalábbp-elemű 2-matching, a válasz nyílván nemleges lesz az r1 és igenlő az r2 inputfüggvény esetén.

Ha egy algoritmus teljes általánosságban meg tudja oldani a matroidpárosí-tási problémát, akkor a legrosszabb esetben mind (

2nn) darab n elemű n elemű

részhalmazra meg kell kérdeznie az ri függvény értékét.Hiszen, 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ől van szó (r1 vagy r2). Ezpedig már n függvényében exponenciálisan sok lépés (az analízisből ismert, hogy(2nn) aszimptotikusan egyenlő 4n√

πn–nel).

14.3. Lovász–tételVegyünk egy Mk×2n mátrixot amely R felett van koordinátázva. Oszlopai legyenekrendre {a1, b1,⋯, an, bn} majd definiáljunk az I = {1,2,⋯, n} index halmazon egyr függvényt. r(X) értéke egy adott X ⊆ I legyen az ∪i∈X{ai, bi} vektorhalmazáltal kifeszített altér dimenziója (hány független elem van a mátrixból kiválasztottoszlopok közül). Ilyenkor r egy 2–polimatroid rangfüggvény (∀ i–re r({ai, bi} = 2– nincs hurokél és ai párhuzamos bi–vel).

A matroidpárosítási probléma polinom időben megoldható, ha a 2-polimatroidrangfüggvény egy adott valós elemű M mátrixból a fent leírt módon nyerhető.

3. fejezet

Kőzelitő és ütemező algoritmusok

15. NP-nehéz feladatok polinomiális esetei, addi-tív és multiplikativ hiba

Független élhalmaznak nevezzük a gráf éleinek egy olyan halmazát amelybensemelyik két élnek nincs közös pontja – ν(G) jelöli a legnagyobb függetlenélhalmaz elemszámát.

Független ponthalmaz a csúcsók olyan részhalmaza amelyik semelyik két pontnincs közös élen – α(G) jelöli a legnagyobb független ponthalmaz elemszá-mát.

Lefogó ponthalmaz a gráf pontjainak egy halmaza amely a gráf minden élé-nek legalább egyik végét tartalmazza – τ(G) a legkisebb lefogó ponthalmazelemszáma.

Lefogó élhalmaz az élek egy halmaza, ha a gráf minden pontjára legalább egyelem illeszkedik – ρ(G) a legkisebb lefogó élhalmaz elemszáma.

Gallai tétel ∀ G gráf ahol a gráf:

• hurokmentes ⇒ τ(G) + α(G) = ∣V (G)∣.• izoláltpont mentes ⇒ ν(G) + ρ(G) = ∣V (G)∣.

König tétel ∀ G gráf ahol a gráf:

• páros ⇒ τ(G) = ν(G),• izoláltpont mentes ⇒ ρ(G) = α(G),

és a magyar módszer megtalálja mind a négy halmazt.

58 NP-nehéz feladatok polinomiális esetei, additív és multiplikativ hiba

König tétel G = (A,B,E) páros gráfban ⇒ χ(G) = ∆(G), azaz az élkromatikusszám 1 megegyezik a maximális fokszámmal.

Az utóbbi bizonyítása az algoritmus megadásával történik, mely segítségévelbármely G páros gráfban ∆(G) darab színnel az élek kiszínezhetőek; hatékonyan,nagy méretű gráfra is. Jelölje G éleit E = {ei}, ahol legyen ∣E∣ =m. Az algoritmusegymás után színezi az éleket ∆(G) szín valamelyikével. Eközben előfordul, hogyszint kell cserélni egy élen, de azt színtelené tenni nem.

Tegyük fel, hogy e1,⋯, ei−1 már ki van színezve és legyen ei = {u, v}, ahol u ∈ Aés u ∈ B. u és v csúcsra is legfeljebb ∆(G) él illeszkedik, de ezek közül ei mégbiztos, hogy színtelen. Tehát mindkét csúcsban van még legalább egy szabad szín(olyan színű él oda még nem kapcsolódik). Ha ez a szín azonos u és v–ben akkorhasználjuk azt, és készen vagyunk ei–vel.

Ha a szín nem közös, akkor tegyük fel, hogy u szabad színe piros, míg v szabadszíne kék. Legyen C a G gráf azon részgráfja amely felveszi G összes csúcsát, de azélek közül csak a piros vagy kék színűeket. C részgráfban minden minden pont fokalegfeljebb 2 (hiszen minden csúcsra legfeljebb egy piros és egy kék illeszkedhet).Ekkor C diszjunkt utakból és körökből épül fel.

Ugyanakkor u és v csúcs foka C–ben csak egy lehet hiszen u–nak piros, v–nekkék a szabad színe. Ezért u és v is egy C–beli út végpontja. Legyen Pu az útmelynek végpontja u. v nincs rajta ezen, mert másképp az út másik végpontjapont v lenne. Ekkor Pu páratlan sok élből állna, hiszen a gráf páros, az egyikosztályból indul (A) és másikban ér véget (B).

Tehát Pu–nak az élei váltakozó színűek, kezdete kék, tehát az utolsó él is kékszínű kell, hogy legyen. Így Pu végpontja nem lehet v, mert arra nem illeszkedik kékél. Fessük át Pu kék éleit pirosra és piros éleit kékre. Ezzel a színezést nem rontjukel, de most u–nak kék lett a szabad színe. Most már u szabad színe megegyezikv /∈ Pu szabad színével (kék), színezzük meg ezzel az ei élet és megvagyunk.

15.1. Probléma osztályokP a polinomiális időben megoldható problémák.

NP azon eldöntési problémák amelyre létezik az igen válaszra tanú.

co–NP azon eldöntési problémák amelyre létezik a nem válaszra tanú.

NP–nehéz ∀ NP–beli probléma visszavezethető az ilyen problémára.

A 16 ábra mutatja a probléma osztályok közötti relációkat, nyílt kérdés, hogyP = NP fen áll e vagy sem.

1A gráf élkromatikus száma k, ha a gráf élei k színnel kiszínezhető, úgy, hogy ∀ 2 szomszédosél különböző színű.

Kőzelitő és ütemező algoritmusok 59

NP

co–NPNP–nehézNP–teljes P

16. ábra: Probléma osztályok

Feladat Probléma Algoritmus

Összefüggőség P mélységi bejárás ésszélességi bejárás

∃ ? teljes párosítás gráfban P javító utak∃ ? 2 színezés gráfban P mélységi bejárás∃ ? 3 színezés gráfban NP–teljessíkba rajzolhatóság P Kuratowski–tételklikk NP–nehézMAXFTL NP–nehézMAXFTL páros gráfban P magyar–módszerHamilton kör NP–teljesutazó ügynők problémája NP–nehézmaximális élszámú vágás keresése NP–nehézmaximális élszámú vágás keresése,ha a hálózat síkba rajzolható NP–nehéz

α(G), τ(G), χ(G), χe(G) NP–nehézα(G), τ(G), χ(G), χe(G) ha G páros Pleghosszabb irányított út NP–nehézleghosszabb irányított út páros gráf-ban P mélységi bejárás

60 NP-nehéz feladatok polinomiális esetei, additív és multiplikativ hiba

15.2. Additív hibaLegyen egy f(X) minimalizálandó célfüggvény XI halmazon, amely I bemenetenértelmezett. Egy algoritmus c additív hibával közelítve old meg egy minimalizálásiproblémát, ha bármely I–re polinom időben ad egy yI ∈ XI megoldást, amireteljesül, hogy:

f(yI) = (minX∈XIf(X))

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶optimum

+ c´¸¶

hiba

.

Például határozzuk meg egy G gráfban (amelybe nincs hurokél, többszörös élés irányított él) az élkromatikus számot. Ekkor tudjuk, hogy ∆(G) = k és a Vizingtétel 2 alapján az élkromatikus szám k vagy k + 1. Hogy melyik azt eldönteni egyNP–teljes feladat, de a tétel bizonyítása alapján polinom időben megkapható egyk + 1 színezés, azaz 1 additív hibájú az algoritmus.

Egy másik példa a kromatikus szám (színezés) keresése egy gráfban. Az ötszín tétel alapján polinomiális időben beszínezhető bármely gráf. Tehát egy adottsíkgráfon az optimális színezés legyen 1 ha az üres, 2 ha az páros, és 5 másképpen.E utolsó esetben χ(G) ≥ 3, tehát a hiba ≤ 2.

De például egy gráfban a leghosszabb út megkeresésének problémája (amelyNP-teljes, hiszen a Hamilton-út keresését magába foglalja) semmilyen additív ckonstanssal közelítő algoritmussal nem oldható meg (ha csak P=NP nem teljesül).

Ennek belátásához tegyük fel, hogy lenne egy olyan Ac algoritmus, amely tet-szőleges G gráfbaban megadna egy olyan kört, amelynek hossza legfeljebb c–velkisebb a leghosszabb út hosszánál. Osszuk fel G minden élét c darab új ponttal,és a kapott gráfot jelöljük H–val. Beláthatjuk, hogy:

H–ban leghosszab kör hossza = (c + 1) ⋅G–ben leghosszab kör hossza

Tehát, H–ban leghosszab kör hossza egy c + 1–el osztható egész szám. Mostfutassuk le Ac algoritmust H–ra, és a kapott eredményt kerekitsük fel a legköze-lebbi c+1–el osztható számhoz. Ezzel megadtuk H–beli maximális kör hosszát, ésinnen G–beli is kifejezhető. Ez egy hatékony algoritmus lenne pontos leghosszabbút megkeresésére. De ennek létezése elentmond annak, hogy a feladatt NP–nehéz,tehát indirekt bizonyitottuk állitásunk.

2A Vizing-tétel alsó és felső korlátot ad egy egyszerű gráf élkromatikus számára. A tételtVagyim Georgijevics Vizing 1964–ben bizonyította be. A tétel szerint egy egyszerű gráf él-kromatikus száma legfeljebb eggyel nagyobb a maximális fokszámánál, azaz ha a gráf mindencsúcsában k-nál kevesebb él találkozik, akkor ki tudjuk színezni az éleit legfeljebb k színnel:∆(G) ≤ χ(G) ≤ ∆(G) + 1.

Kőzelitő és ütemező algoritmusok 61

15.3. Multiplikatív hibaEgy algoritmus k > 1 multiplikatív hibával közelítve old meg egy minimalizálásiproblémát, ha ∀ I bemenetre polinom időben ad egy yI ∈XI megoldást amire:

f(yI) ≤ k´¸¶

hiba

⋅ (minX∈XIf(X))

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶optimum

.

Például keressük egy G gráfban a minimális lefogó ponthalmazt (τ(G)). Vá-lasszuk ki a független élek maximális rendszerét (ν), mindkét végpontját tekintveegy 2ν elemű ponthalmazt kapunk. Definíció szerint legfeljebb annyi független élválasztható ki, mint a lefogó pontok minimális száma (ν ≤ τ), tehát egy k = 2multiplikatív hibával rendelkező algoritmusról van szó.

A maximális páros részgráf megállapításához keressük az n pontú gráf olyanszétosztását, ahol a két pontosztály között a legtöbb él halad. Ez a feladat egyNP–nehéz probléma. Induljunk ki egy tetszőleges kettéosztásból és, ha egy pontáthelyezése növeli a vágás élszámát akkor azt helyezzük át.

E naiv algoritmus a maximális vágás legalább felét kiadja, tehát ez is egy k = 2multiplikatív hibával rendelkező algoritmus. Az algoritmus lépésszám becslésemaxk{k ⋅ (n − k)} ≈

n2

4 , ami polinom idejű, tehát teljesíti a követelményeket.

62 NP-nehéz feladatok polinomiális esetei, additív és multiplikativ hiba

Kőzelitő és ütemező algoritmusok 63

16. Halmazfedés és a Steiner–fa

16.1. HalmazfedésA minimális lefogó ponthalmaz visszavezethető halmazfedésre, legyen a gráf élei alefedendő alaphalmaz és a lefedő halmazokat pedig a csúcsok (így egy lefedő hal-maz elemei a csúcsból kiinduló élek – alaphalmaz elemek). Minden lefedő halmazköltsége legyen egységnyi. Tehát a halmazfedés is egy NP–nehéz feladat.

A minimális összköltségű fedés problémára adunk egy közelítő algoritmust:

U alaphalmaz∣U ∣ = n

S1,⋯, Sk ⊆ U

c ∶ {Si}↦ R+ költségfüggvény

⎫⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎭

Legyen C ⊆ U az U halmazból már lefedett elemekrészhalmaza. Amig C ≠ U (van fedetlen elem) vá-lasszuk azt az Si halmazt amelyre c(Si)

∣Si−C∣ (az illetőelem hozzávétele után lefedett új elemek átlagosköltsége) minimális.

Legyen p(e) =c(Si)∣Si−C∣ , ahol Si az a halmaz amely először fedte le az e elemet.

Ugyanakkor legyen az elemek lefedési sorrendje e1, e2,⋯, en. Állítjuk, hogy az ekelemek ára legfeljebb p(ek) = OPT

n−k+1 , minden k = 1, n–ra.Egy optimális fedés során bármely pillanatban igaz, hogy a még fedetlen hal-

mazok összköltsége legfeljebb OPT értékű. Tehát ekkor létezik egy olyan elem ehalmazban amely értéke legfeljebb ennek ∣U − C ∣ hányada. Amikor az ek elemetlefedtük ∣U −C ∣ ≥ n − k + 1.

Mivel az algoritmusban mindig a minimális p(ek) elemet válassza:

p(ek) =c(Si)

∣Si −C ∣≤

OPT∣U −C ∣

≤OPT

n − k + 1 .

Innen meg a fedés összköltsége:

∑p(e) =OPT

1 +OPT

2 +⋯ +OPTn

= OPT ⋅n

∑i=1i = OPT ⋅Hn ≤ OPT ⋅ (ln(n) + 1).

Éles példa az U = {u1,⋯, un} halmazon álljon Si az n darab egyelemű halmaz-ból, valamint az U–ból. A költségfüggvény:

c ∶ E ↦ R+⎧⎪⎪⎨⎪⎪⎩

c(ui) =1i , ∀ i = 1, n

c(U) = 1 + ε, ε kis pozitív szám

Ekkor az algoritmus az n elemű halmazt válassza ki, pedig az optimális magaaz U halmaz lenne.

64 Halmazfedés és a Steiner–fa

16.2. Steiner–fa probléma

G(V,E) összefüggő gráfc ∶ E ↦ R+ költségfüggvényV = { T–beli terminálok,

S–beli Steiner pontok}

⎫⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎭

Keressünk minimális költségű fát G–ben, ami az összes terminált tartalmaz-za és esetleg pár Steiner pontot is.

Ha T = V (tehát a gráfban nem léteznek Steiner pontok) akkor a feladat mohóalgoritmussal megoldható, egyébként meg NP–nehéz. A metrikus Steiner fában aköltségfüggvény kielégíti a háromszög egyenlőtlenséget:

w

u v

⇒ c(u, v) ≤ c(u,w) + c(w, v).

Ilyenkor létezik k–approximációs algoritmus, és az általános Steiner–fa problé-ma visszavezethető a metrikus Steiner–fa problémára (polinom időben), úgy, hogya k– approximáció megmarad, tehát elégséges a metrikus esetet vizsgálni.

Az átalakításhoz képezzük G′ teljes gráfot V csúcs halmazon. Egy G′–beli{u, v} él költsége – c′(u, v) – legyen a legrövidebb út hossza u és v csúcsok között azeredeti gráfban (ez polinomiális időben meghatározható a Dijkstra–algoritmussal).A terminál és Steiner pont felosztás maradjon azonos az új gráfban is. Mindenélre G′–ben c′(u, v) ≤ c(u, v), tehát OPTG′ ≤ OPTG.

Legyen F ′ egy G′–beli Steiner–fa. F ′ éleit helyettesítjük G–ben a legrövidebbutakkal, hogy megkapjuk F Steiner–fát. G és G′ csupán élekben különbözik, ezértF és F ′ is tartalmazza az összes terminált; az összköltsége a két fának megegye-zik – c(F ) = c(F ′). F eszerint F ′–ből polinom időben számítható, tehát helyesvisszavezetés.

Ha F egy minimális költségű feszítőfa a terminálok halmazán: c(F ) ≤ 2⋅ OPT

Vegyünk egy optimális Steiner fát. Ennek éleit megduplázva egy összefüggőgráfot kapunk, ami minden terminált összeköt. Ebben keressünk Euleur–kört (errelétezik hatékony algoritmus). Az így kapott kör költsége 2OPT. Tegyük fel, hogyaz Euleur kör a p1, p2,⋯, pn = p1 sorrendben járja be a csúcsokat, egyes pontokatakár többször is érintve.

A kör mentén körbehaladva a fölösleges pontokat levágva állitsunk elé egyHamilton kört a terminálok halmazán. Tegyük fel, hogy p1, p2,⋯, pt még csupakülönböző terminál, de pt+1 már Steiner–pont vagy egy korábbi terminál pont ( a

Kőzelitő és ütemező algoritmusok 65

korábbi pont indexe i,1 ≥ i ≥ t). Legyen pt+j az első olyan terminál pont amelykülönbözik p1,t –től.

Helyettesítjük pt, pt+1,⋯, pt+j pont sorozatot a pt, pt+j út levágással. Ha nincsilyen pt+j akkor a pt, pt+1,⋯, pN–ot helyettesítjük pt, p1–el. Mindezt addig ismétel-jük amíg vissza nem jutunk p1 terminálhoz.

A háromszög egyenlőtlenségnek köszönhetően a levágásosok nem növelik a sétaköltségét, ezért a kapott Hamilton kör valamennyi élét kitörölve egy ikyab Hamil-ton utat kapunk a terminálok halmazán, melynek költsége legfeljebb 2⋅OPT. Ez azút a terminálokon feszítőfa, így legalább c(F ) költségű. Tehát c(F ) ≤ 2⋅OPT. A 2approximációs algoritmus a metrikus esetben így tehát nem más mint a terminálokhalmazán minimális költségű feszitőfa keresése.

Azt, hogy az algoritmus ennél jobb approximációt biztos nem ad, az alábbi élespélda bizonyítja:

T1

T2 T3

S2

2

2

11

1 OPTÔÔ⇒

T1 T2 T3

S

1 1 1 n = 3 és

T1

T2

T3

2 2 2(n − 1) = 4

Legyen az n + 1 teljes gráfon n terminál és egyetlen Steiner–pont. A Steiner–pontra illeszkedő élek költsége 1, a többi él legyen 2 költségű. Itt az optimum n,a terminálokon vett minimális költségű feszitőfa költsége viszont 2(n − 1).

66 Halmazfedés és a Steiner–fa

Kőzelitő és ütemező algoritmusok 67

17. Az utazóügynök problémaAdott egy G teljes gráf és egy c ∶ V ↦ R+ él súlyozás, keressünk minimális összsúlyúHamilton–kört. A probléma NP–nehéz. Az általános utazóügynök problémáranem létezik k–approximációs algoritmus (feltéve, hogy P≠NP), mivel a problémavisszavezethető egy nem teljes gráfban Hamilton–kör keresésére.

Legyen egy n–pontú G (nem teljes) gráf, a bemenet, hozzá tartozó G′ pe-dig teljes gráf. Ha G-ben szomszédos két pont, akkor G-ben egységnyi az élsúly,egyébként kn. Ha G-ben van Hamilton-kör, akkor G′-ben a minimális összsúlyúHamilton-kör összsúlya n, egyébként legalább n − 1 + kn.

Mivel ez több, mint az optimum k–szorosa, ezért nincs ilyen közelítés. Egyéb-ként az algoritmus meg tudná különböztetni a Hamilton-körrel rendelkező és nemrendelkező gráfokat. Ugyanez kn helyett tetszőleges f(n) függvénnyel, amely poli-nom időben kiszámolható, is igaz marad. Ezért a bemenettől függő approximációsem létezik.

17.1. Metrikus utazó ügynökA problémát egészítsük ki azzal a kikötéssel, hogy a háromszög egyenlőtlenség apontok közti élre teljesül (csúcs ↦ sík pontjai, élek súlya ↦ pontok közti távolság).Erre már létezik approximációs algoritmus.

2-approximációs algoritmus

Ha egy n pontú teljes gráfban (G):

1. vesszünk egy minimális F feszítőfát3,

2. duplázzuk meg F éleit, majd keresünk egy Euler–kört,

3. az ismétlődő pontokat a körből vágjuk le, elkészítve egy Hamilton-kört.

Ha létezik a Hamilton–kör legyen ennek költsége OPT. Ebből, ha elhagyunkegy élet, kapunk egy utat amely egy Hamilton–út, értéke kisebb mint OPT ésfeszitőfa is. Az algoritmus első lépésében megkaptuk az optimális feszitőfát, amelye OPT–nál biztos kisebb (vagy egyenlő).

Ennek megduplázásával 2⋅ OPT költségű zárt élsorozatott kaptunk, amelyhosszát az elhagyások csak csökkenteni tudják (a háromszög feltétel miatt), te-hát az algoritmus által talált összköltség ≤ 2⋅OPT.

3Kruskall algoritmusa – rendezzük az éleket növekvő sorrendbe, majd csökkenő sorrendbevegyünk be n − 1 élet amely a gráfban nem hoz létre kört.

68 Az utazóügynök probléma

c(talált Hamilton-kör) ≤ c(Euler–kör)= 2 ⋅ c(minimális feszítőfa)≤ 2 ⋅ c(minimális Hamilton-út)< 2 ⋅ c(minimális Hamilton-kör)= 2 ⋅OPT

Christofides algoritmusa

egy 32-approximációs algoritmus. Ez a második lépést két részre bontja:

(a) vegyük a feszitőfa páratlan foku pontjait. Ebből 2m darab van, tehát párossok. G–ből elhagyjuk azon pontjait amelyek nincsenek benne ebben a halmaz-ban. Legyen H az így kapott gráf.

(b) keressünk egy minimális összsúlyú teljes párosítást H–ban. A párosítás éleitegészítsük ki (adjuk hozzá) a feszitőfához. F most egy n − 1 + m élű gráf.Ebben keressük az Euler kört.

Tudjuk, hogy F súlya ≤OPT. Tehát ahhoz, hogy az approximáció igaz legyena fenti procedúrával kapott párosítás legfeljebb 1

2OPT értékű lehet. Jelöljük aminimális Hamilton-kört G gráfban H–val, G′ segédgráfban H ′–vel.

c(H ′) ≤OPT, mert H–t levágásokkal át tudjuk alakítani úgy, hogy csak G′–belicsúcsokat tartalmazzon, miközben nem nő az összköltsége, és az így kapott G′–beliHamilton-körnél H ′ nyilván nem nagyobb súlyú.

A minimális összsúlyú teljes párosítás pedig legfeljebb c(H′)2 költségű, mert H ′

páros élei és páratlan élei is teljes párosítást alkotnak, a kettő költségének összegec(H ′), tehát van legfeljebb c(H′)

2 összköltségű párosítás, aminél nem nagyobb aminimális összsúlyú teljes párosítás.

Mig a 2–approximáció idő igénye cn2, addig a Christofidesé cn3. Láthatjuk,hogy a jobb közelítés ára a nagyobb idő igény. A Hamilton–kör további javításávala pontosság még tovább csiszolható, például a Lin–Kernighan módszerrel 1 − 2 %is elérhető.

Kőzelitő és ütemező algoritmusok 69

18. Teljesen polinomiális approximációs séma arészösszeg problémára

Egy probléma polinomiális approximációs sémával közelíthető, ha ∀ ε > 0–ra vanrá (1 + ε)-approximáció. Ez nem mindig elég, mert ha a közelítő algoritmus lé-pésszáma például 2 1

εn4, még mindig exponenciálisan hosszú ideig fut. Ilyenkorugyanis rögzített ε–ra polinomiális az algoritmus, tehát a feltételnek megfelel.

Egy probléma teljesen polinomiális approximációs sémával közelíthető, ha ∀ ε >0–ra van rá (1 + ε)-approximáció, ami 1

ε–ban is polinomiális. Például a metrikusutazó ügynök problémára nincs P approximációs séma, de az euklideszi utazóügynök problémára van teljesen P approximációs séma.

18.1. Részösszeg probléma

A = {a1, a2,⋯an}

ai=1,n, t ∈ F}⇒ ∃? B ⊆ A, hogy ∑ bi = t

Partíciós problémáról beszélünk, ha t = ∑ai2 . Mindkét esetben a feladat NP–teljes. A részösszeg optimizálási probléma, ha azon B–re vagyunk kíváncsiakamelyre ∑ bi maximális és ∑ bi ≤ t . A feladat NP nehéz, mert a részösszeg problé-ma visszavezethető rá: ha találunk olyan B halmazt, amire ∑ bi = t, akkor igen aválasz a részösszeg problémára, különben nem. A feladat nem NP-beli, mert nemeldöntési probléma, tehát nem is NP-teljes.

A részösszeg probléma probléma teljesen polinomiális sémával közelíthető.

A bizonyítás egy konkrét algoritmus lesz:

1. Pontos megoldást adó algoritmusEz az algoritmus gyakorlatilag nem más, mint egy „brute-force” megoldó,amely minden lehetséges részösszeget kiszámol. Legyen a1 ≤ a2 ≤ ⋯ ≤ an.Definiáljunk két halmazsorozatot:

L′i = {I + ai∣I ∈ Li}, ahol L0 = {0}Li + 1 = Li ∪L′i

Az optimális részletösszeg max{I ∣I ∈ Ln és I ≤ t} lesz.

70 Teljesen polinomiális approximációs séma a részösszeg problémára

Például, ha a1 = 3 a2 = 5 a3 = 7:

L0 = {0}L′0 = {3} L1 = {0,3}L′1 = {5,8} L2 = {0,3,5,8}L′2 = {7,10,12,15} L3 = {0,3,5,7,8,10,12,15}

2. Polinomiális közelítő algoritmusEgyrészt vegyük észre, hogy az L′i halmazokból nincs szükségünk a t–nélnagyobb elemekre. Töröljük ki ezeket: L′i = (Li + ai) ∩ [0⋯t].

Ugyanakkor, ritkítsuk a halmazt δ–val: legyen L a növekvő sorrendbe ren-dezett halmaz. Ezután a halmaz minden elemét vizsgáljuk meg, növekvősorrendben, ha létezik kisebb elem (m) az aktuálisnál (l) amelyre l <m(1+δ)(az aktuális 1+ δ–szor nagyobb) akkor dobjuk ki az aktuálist (l–et). A ritkí-tás után bármely két szomszédos elem hányadosa legalább 1 + δ. A ritkítotthalmaz mérete felülről becsülhető: ∣Lritkított∣ ≤ log1+δ t + 2.

3. Ha a fenti algoritmus során a halmazok t–nél nagyobb elemeit minden lé-pésben levágjuk és az eredményt δ = ε

2n–vel ritkítjuk, (1 + ε)–approximációtkapunk a problémára, és a lépésszám n–ben, log t–ben és 1

ε–ban is polinomi-ális lesz.

Az 1 + ε approximációs tulajdonságot lássuk be. Ehhez elősző figyeljük meg akövetkező lemmát:

ln (1 +X) ≥X

1 +X , ha X ≥ 0.

Ha X = 0 mindkét oldal nulla lesz, tehát az állítás igaz. Ha X ≥ 0:

(ln (1 +X) −X

1 +X )

′=

11 +X −

(1 +X) −X

(1 +X)2 =1

1 +X −1

(1 +X)2 > 0

Tehát a derivált pozitív, amiből következik, hogy a függvény monotonan nő, teháta lemma igaz.

Most az algoritmus lépészámát vizsgálva, a kapott halmaz mérete:

log1+δ t = log1+ ε2nt =

ln tln(1 + ε

2n)≤

ln tε

2n1+ ε

2n

= (1 + ε

2n) ⋅ 2n ⋅ ln tε

Kőzelitő és ütemező algoritmusok 71

Az egyenlőtlenséghez felhasználtuk a lemmát⎛⎜⎝

ln(1 + ε

2n) ≥

ε

2n1 + ε

2n

⎞⎟⎠. Megfi-

gyelhetjük, hogy a lépésszám mind n–ben, log t–ben és 1ε is polinomiális.

Az algoritmus során n darab lista összefésülését kell elvégezni, aminek a komp-lexitása O(∑ ∣Li∣) =O(n ⋅ ∣Li∣). Felhasználva a korábbi becslésünket az algoritmusn–ben négyzetes, log t–ben lineáris, azaz mindkét esetben polinomiális. Most olyanmegoldást keressünk, amely az approximációs séma követelményeit teljesíti, azazmegoldása ≥

OPT1 + ε .

A kapott válasz relatív hibájának kis értékére való bizonyításához vegyük figye-lembe, hogy Li lista ritkításakor legfeljebb ε

n nagyságú hibát okozunk a megmaradóképviselő érték és a ritkítás előtti érték között. i–re vonatkozó teljes indukcióvalbizonyítható, hogy:

L =OPT

(1 + ε2n)

n≤ kapott érték ≤ OPT.

Ahhoz, hogy a bal oldal teljesüljön (1 + ε2n)

n ≤ 1 + ε is igaz kell legyen. Lássukbe, hogy ez igaz:

(1 + ε

2n)n

=n

∑i=0

2n)i

⋅ 1n−i ⋅ (ni) =

n

∑i=0

2n)i

⋅n!

i!(n − i)! ≤ 1 +n

∑i=0

2n)i

⋅ ni

≤ 1 +n

∑i=1

2)i

= 1 + ε2 +ε

4 +⋯ +ε

2n ≤ 1 + ε

A bizonyítás során felhasználásra került a binomiális tétel és a mértani sorösszegképlete.

72 Teljesen polinomiális approximációs séma a részösszeg problémára

Kőzelitő és ütemező algoritmusok 73

19. Ütemezési algoritmusokAz ütemezési feladat megfogalmazható mint:

Ji – munkákPi – megmunkálási időwi – súlydi – határidőri – rendelkezésre álló időCi – befejezési iödő

⎫⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭

⇒ + egy adott időben egy gépen egy munka folyikés létezik egy célfügvény amire nézve optimális üte-mezést keresünk.

Egy halmazfeladat gyors leírására a következő struktúrát használjuk:

α´¸¶

gépi infó

∣ β´¸¶

ütemezési infó

∣ γ´¸¶

optimalizálási kritérium

gépi információ alatt a rendelkezésre álló gép számosságot értjük. Lehet:

• 1 – egy gép áll rendelkezésre.• Pm – m darab párhuzamosan futó gép• P – a párhuzamosan futó gépek száma nincs rögzítve, tartalmazza az

1,2,⋯ feladatokat is.

ütemezési információ azt mondja meg, hogy milyen ütemezést illető megköté-seink vannak a halmaz elemeire:

• prec – létezik egy irányított a–ciklikus gráf amely meghatározza, hogya munka elkezdéséhez mely munkák kellet már befejeződjenek.

• rj – egy–egy munkának tudjuk, hogy mely időponttól áll rendelkezé-sünkre.

• Pj – tudjuk, hogy egy–egy munka elvégzése mennyi időt vesz igénybe(ez mindig adott).

optimalizálási kritérium arra vonatkozik, hogy a célfüggvényben mire fekte-tünk hangsúlyt:

• Cmax = max(Cj) – utolsó munka befejezési ideje legyen minél kisebb(gyorsan befejezni a csomagot).

• ∑Cj = ∑Cjn – a munka átlagos befejezési ideje legyen a lehető legkisebb

(átlagosan keveset várjunk a gépekre).

74 Ütemezési algoritmusok

19.1. 1∣∣CmaxEgy gépre teljes átfutási idő szerint optimizálunk. Cmax = ∑

ni=1Pi ⇒ tehát csak

felrakjuk a munkákat sorba, ügyelve arra, hogy ne létezzen pillanat amikor a gépáll és optimális megoldást kapunk.

19.2. 1∣prec∣CmaxMost olyan sorrendben végezzük el a felrakást, hogy ne legyen munka amire afüggőség még nem fejeződőt be. Ez a sorrend egy irányított a–ciklikus gráfban(DAG) nem mást mint a topologikus sorrend. Tehát első pontnak vegyünk egyforrás pontot a precedencia gráfból, ezt töröljük és ismételjük e folyamatot amíglétezik pont a gráfban. Ez polinomiális időben optimális megoldást ad.

Topologikus sorrend meghatározása

Adjunk hozzá a bemeneti DAG–hoz egy extra s élet amelyet a végén törölni fogunk.Minden s ↦ v, v ∈ V élt rakjuk be a gráfba. Minden pontra két címkét vezessünk:az egyik azt mutatja, hogy a pont elért e, és ha igen mely csúcsból; a másik értékmeg azt jelzi, hogy a csúcs átvizsgált már e vagy sem. Kezdetben s elért, de nemátvizsgált.

Amig létezik elért, de még nem átvizsgált él addig ismételjük:

• kiválaszt a legkésőbb elért de nem átvizsgált pontot ↦ u

• ha létezik u↦ v él a gráfban, ahol v nem elért legyen v cimkéje elért u–ból.

• ha nem talál akkor u címkéje lesz átvizsgált, feljegyezve, hogy az algoritmuséppen hányadik lépésnél tart.

Az átvizsgálási sorrend lesz a topologikus sorrend, ha s nem tagja az eredetigráfnak töröljük azt. Ha megfelelő adatstruktúrát használunk mindez az élszám-mal arányos időt vesz igénybe. Példa feladat:

G(V,E) összefüggő gráfc ∶ E ↦ R+ költségfüggvényV = { T–beli terminálok,

S–beli Steiner pontok}

⎫⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎭

Keressünk minimális költségű fát G–ben, ami az összes terminált tartalmaz-za és esetleg pár Steiner pontot is.

Ha T = V (tehát a gráfban nem léteznek Steiner pontok) akkor a feladat mohóalgoritmussal megoldható, egyébként meg NP–nehéz. A metrikus Steiner fában aköltségfüggvény kielégíti a háromszög egyenlőtlenséget:

Kőzelitő és ütemező algoritmusok 75

7 5 3

11 8

2 9 10

Az itt látható gráfnak több topologikus rendezése is van:

• 7, 5, 3, 11, 8, 2, 10, 9

• 7, 5, 11, 2, 3, 10, 8, 9

• 3, 7, 8, 5, 11, 10, 9, 2

• 3, 5, 7, 11, 10, 2, 8, 9

19.3. 1∣∣∑CjShortest–Processing–Time – SPT minél rövidebb egy munka annál korábban

rakjuk fel.

A Shortest–Processing–Time optimális megoldást ad a feladatra.

A bizonyításhoz, tegyük fel, hogy az SPT nem ad optimális megoldást. Legyenp1, p2,⋯, pn egy optimális megoldás, ami nem SPT típusú. Tehát létezik pi > pi+1(szomszédos elemek).

Látszik, hogy az összegen ekkor csak Ci és Ci+1 változik meg. Tehát a felcserélésvégre hajtásával a∑Cj csökken, de ez ellentmondás a feltevésünknek, tehát az SPToptimális.

19.4. P2∣∣Cmax

Ez egy NP–nehéz feladatt mivel visszavezethető a partíció problémára. Legyena1, a2,⋯, an ∈ Z∗. A kérdés, hogy létezik e I ⊆ {1,2,⋯, n} amire ∑i∈I ai = ∑i/∈I ai.Ez meg a részösszeg speciális esete. Vegyük most a megmunkálási időket {p1, p2,⋯, pn}, ekkor, ha OPT= ∑Pi2 ⇔ létezik p szám sorozatnak jó partíció.

Tehát nem létezik hatékony algoritmus a feladatra, ezért a problémának spe-ciális eseteit és approximációs megoldásokat vizsgálunk meg.

19.5. P ∣∣Cmax

List Scheduling – LS – listás ütemezés Legyen k gép és Pi=1,n feladat. Rak-juk fel ezeket sorrendben a gépekre, ha valamely gép végez megkapja a lis-tában a következő munkát.

Ez egy elég primitív módszer hiszen gyakorlatilag csak arra ügyelünk, hogy agépeink ne álljanak. Ennek ellenére, ha m gép van az LS egy 2− 1

m approximációt

76 Ütemezési algoritmusok

ad. Ennek belátásához legyen C∗max az optimális ütemezés. Erre fent állnak akövetkező alsó becslések:

∑Pim

≤ C∗max és Pk∈i ≤max(Pi) ≤ C∗max.

Most legyen Jk az a munka melyet az LS ütemezés utoljára befejez. Ez egyt pillanatban kezdődik el és tart Pk idő intervallumot (t + pk = Cmax). E adottt időpontig az összes gép dolgozik, megállás nélkül, mert, ha ez nem így lennestratégiánk szerint a Pk feladatott az a gép kapná meg. Tehát t pillanatig a Phalmaz teljesen le van fedve (m darab gép, t időn keresztül):

m ⋅ t ≤ ∑m≠k

Pi⇒ t ≤∑m≠k

Pi

m

Cmax = t + Pk ≤∑i≠k

Pim

+ Pk =∑i≠k

Pim

+ (1mPk −

1mPk) + Pk =

∑Pim

+ (1 − 1m

) ⋅ Pk

Erre meg használjuk fel az alsó becsléseink:

Cmax ≤ C∗max + (1 − 1m

) ⋅ Pk ≤ C∗max + (1 − 1

m)C∗max = C∗max ⋅ (2 − 1

m)

Látható a bizonyításból, hogy a Pk mérete döntően befolyásolja az ütemezéshosszát, így ha ez kicsi javíthatunk az approximációs faktoron.

Longest Procesisng Time – LPT Rakjuk a munkákat csökkenő sorrendbe, ése új lista szerint ütemezünk (a legrövidebb marad a végire).

Az LPT ütemezés approximációs faktora (43 −

13m). E jó approximációs köze-

lítés annak köszönhető, hogy a gépek egyforma gyorsak, tudásuk azonos.

19.6. P ∣prec∣Cmax – GrahamRendezzük listába a munkákat. Egy gép megkap egy munkát, ha áll és a következőmunka elkezdhető. Ez egy 2− 1

m approximáció. Ezen való javítás kulcsa, hogy hiábafejezzük be az utolsó feladathoz közeli feladatott mert a távoliak is be kell érjékezeket ( feltéve, hogy ezek függenek egymástól).

Legyen D irányított gráf a precedencia mátrixa a munkáknak. Ha bármelyirányított úton összeadjuk az utakat alkotó pontok megfelelő megmunkálási időket,akkor alsó becslést kapunk egy optimális megmunkálási időre.

Tehát egy pont szintje legyen a pontból kiinduló irányított utak mentén vettmegmunkálási idők összegének maximuma. Ezt megkaphatjuk, ha topologikussorrendbe állítjuk a munkákat, majd felfelé lépve számoljuk a szint értékeket.

Kőzelitő és ütemező algoritmusok 77

Rendezzük a munkákat a szintjük szerint csökkenő sorrendbe, és e lista szerintütemezünk.

Jobb közelítést ez sem add, viszont ha az élszámunk magas jó eredményt szo-kott adni. Példa arra, hogy a leghosszabb út szerinti sorrend nem mindig optimális,akkár az optimális kétszeresét is kiadhatja.

Legyen a 17 ábrán látható példa 9 munkával, 3 gépen. Ez nem 32 approximáció

mert az optimális és kapott arány 1711 ≈ 1.54 > 3

2 (több gépes példán, vagy nővelveG,H, I munkák értékét jobb ellenpélda is adható – azaz nagyobb eltérés 3

2–től).

A

D

E

F

G

B

C

H

I1(11)

3(10)

3(10)

3(10)

7(7)1(1)

1(1)

7(7)

7(7)

szint (szint érték) – precedencia gráf

A D G

B E H

C F I

1+ 3+ 7 = 11

H B

I C

A D E F G

1+ 3+3+ 3+ 7 = 17optimális ütemezés leghosszabb út szerint ütemezés

17. ábra: A leghosszabb út szerinti sorrend nem mindig optimális – példa

19.7. P ∣prec, pi = 1∣CmaxEbben az alakban a feladat NP–nehéz. Ha m = 2 gép áll rendelkezésünkre aCoffman-Graham algoritmus optimális megoldást ad. D precedencia gráfon vé-gezzük el a tranzitív redukciót:

A

B

C

A

B

C

Majd bontsuk csoportokra a csúcsokat: az első szinten azon csoportban talál-hatók akik kifoka 0, a másodikon akik kifoka 0, ha elhagyjuk az első szinten levő

78 Ütemezési algoritmusok

elemeket és így tovább. Majd az első szinten számozzuk meg a pontokat 1–tőlk1–ig, csoporton belül a sorrend nem számit.

A következő szinteken már a pontokat két körben számozzuk:

• első körben úgy számozzuk, hogy felsoroljuk mely pontokhoz van élük csök-kenő sorrendben. E számozásokat lexikografikusan növekvő sorrendbe ren-dezése adja a csoporton belüli sorrendet.

• második körben a csoportbeli pontokat számozzuk át, folytatva a korábbicsoport számozásától a kapott csoportbeli sorrenddel.

A kapott számozás szerint csökkenő sorrendbe rakjuk fel a gépekre a munkákatmint egy listás ütemezés. Ez optimális megoldást ad.

19.8. P ∣in_tree, pj = 1∣Cmax – Hu algoritmusaHa D precedencia gráf egy s gyökerű F–befenyő 4, akkor a szint szerinti ütemezés(gyökértől levő úthossz csökkenő sorrendben) optimális megoldást ad.

4A befenyő egy olyan irányított gyökeres fa, aminek az élei a gyökér felé vannak irányítva.