online jegyzet az egészérték¶ programozás i. és ii....

100

Upload: others

Post on 10-Nov-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhoz

Király Tamás és Szeg® László

May 18, 2012

Page 2: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Egészérték¶ programozás I. vizsgatematika2011. ®sz

1. Az egészérték¶ lineáris programozási feladat de�níciója, néhány alapvet® típus (ter-melési feladat, hátizsák-feladat, szolgáltató-elhelyezés, szabási feladat, stb.). Vegyesprogramozási feladat. Egészérték¶ változókkal kifejezhet®: indikátor változó, rácsbólvett értékek, poliéderek uniója (1).

2. LP relaxáció, egész pontok konvex burka, Meyer tétele (2.1.

3. Dinamikus programozás: hátizsákfeladat, nemnegatív mátrixú egészérték¶ feladat,maximális súlyú stabil halmaz fában, termelés-ütemezési feladat (6).

4. LP alapú kolátozás és szétválasztás (branch and bound) módszer. Alkalmazás ahátizsák-feladatra (9.2).

5. Gomory-féle vágás és algoritmus, Gomory-féle vegyes vágás 9.1).

6. Az utazó ügynök probléma de�níciója, komplexitása. Lokális keresés, túranövel®módszerek, túrajavító módszerek, Christo�des heurisztikája, Lin-Kernighan algoritmus(7,7.1,7.2).

7. Az utazóügynök probléma alsó korlátjai: 1-fa korlát, Held és Karp korlátja, lineárisprogramozási alsó korlát. Az utóbbi kett® megegyezik. Módszerek a lineáris programo-zási alsó korlát kiszámolására (8.1,8.2,8.3).

8. Lagrange relaxáció. A Lagrange duális feladat, Geo�rion tétele. Módszerek a Lagrangeduális feladat megoldására (9.3).

9. Többtermékes folyam feladat Lagrange relaxációval és oszlopgenerálással. Egydimenziósszabási feladat (10.1), (10.2).

10. Hilbert bázisok, Graver féle teszthalmaz, unimoduláris mátrixok (2.2, 9.8).

11. Teljes duális egészérték¶ség. Racionális poliéderek TDI leírása, teljes dimenzióspoliéderek egyértelm¶ minimális leírása (3.1).

1

Page 3: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Egészérték¶ programozás II. vizsgatematika2012. tavasz

1. Gomory-Chvátal-vágások, Chvátal-rang (5.1, 5.2).

2. Vágások a hátizsák-feladatra és az utazóügynök feladatra, fés¶-egyenl®tlenségek (5.3,8.4).

3. Virág-egyenl®tlenségek és eldöntésük (8.4, 13.6).

4. Felemelés bináris feladatoknál, alkalmazás a stabil halmaz poliéderre. Felemelés ésvetítés (5.6, 9.6).

5. Rácsok, redukált bázis, LLL algoritmus, legközelebbi vektor közelítése (4.1).

6. Egészérték¶ programozási feladat megoldása �x dimenzióban (4.2). Racionális számokközelítése kis nevez®j¶ törtekkel (4.3).

7. Csoport-feladat � relaxáció maradékosztályok segítségével. Sarokpoliéderek és metszetvágások. (9.4,9.5).

8. Jain iteratív kerekít® algoritmusa az irányítatlan hálózattervezési feladatra (11.3).

2

Page 4: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Contents

1 Példák egészérték¶ optimalizálásra 6

2 Poliéderben lév® egész pontok 102.1 Meyer tétele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2 Hilbert-bázisok, unimodularitás . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Nemmegoldhatóság . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4 Bonyolultság . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3 Teljesen duálisan egészérték¶ség 163.1 Teljesen duálisan egészérték¶ség . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2 Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4 Egészérték¶ programozás �x dimenzióban 204.1 Rácsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.1.1 Kitér®: ILP feladat alternatív formulációja . . . . . . . . . . . . . . . 214.1.2 Redukált bázisok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.1.3 Redukált bázis keresése . . . . . . . . . . . . . . . . . . . . . . . . . . 234.1.4 Legközelebbi vektor közelítése . . . . . . . . . . . . . . . . . . . . . . . 25

4.2 Polinomiális algoritmus �x dimenziós egészérték¶ programozásra . . . . . . . 264.3 Racionális számok egyidej¶ közelítése kis nevez®j¶ törtekkel . . . . . . . . . . 28

5 Gomory-Chvátal-vágások 295.1 Gomory-Chvátal-levezetések . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.2 Chvátal-rang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.3 Vágások a bináris hátizsák-feladatra . . . . . . . . . . . . . . . . . . . . . . . 325.4 Vágás-típusú algoritmusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.5 Szeparáció és optimalizálás . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.6 Lifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.7 Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

6 Dinamikus programozás 376.1 Legrövidebb utak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376.2 A hátizsákfeladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6.2.1 A 0-1 hátizsákfeladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.2.2 Egészérték¶ hátizsákfeladat . . . . . . . . . . . . . . . . . . . . . . . . 39

6.3 Fa optimális részfája . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.4 Maximális súlyú független csúcshalmaz fában . . . . . . . . . . . . . . . . . . 426.5 Termelésütemezési feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3

Page 5: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

7 Az utazóügynök feladat heurisztikái 447.0.1 A heurisztikus algoritmusok viselkedése . . . . . . . . . . . . . . . . . 46

7.1 Christo�des heurisztikája . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477.2 Lin és Kernighan heurisztikája . . . . . . . . . . . . . . . . . . . . . . . . . . 477.3 Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

8 Az utazóügynök feladat alsó korlátjai 498.1 Held és Karp korlátja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498.2 Lineáris programozási alsó korlát . . . . . . . . . . . . . . . . . . . . . . . . . 508.3 Oszlopgenerálós megoldás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528.4 Vágósíkok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

8.4.1 Fés¶-egyenl®tlenségek . . . . . . . . . . . . . . . . . . . . . . . . . . . 548.4.2 Virág-egyenl®tlenségek . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

8.5 Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.6 Korlátozás és szétválasztás módszere . . . . . . . . . . . . . . . . . . . . . . . 56

9 Általános egészérték¶ programozási módszerek 589.1 Vágósíkos eljárások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

9.1.1 Lexikogra�kus duál szimplex módszer . . . . . . . . . . . . . . . . . . 599.1.2 Gomory módszerének végessége . . . . . . . . . . . . . . . . . . . . . . 609.1.3 Gomory-féle vegyes vágás . . . . . . . . . . . . . . . . . . . . . . . . . 61

9.2 Korlátozás és szétválasztás módszere . . . . . . . . . . . . . . . . . . . . . . . 629.2.1 LP alapú korlátozás és szétválasztás . . . . . . . . . . . . . . . . . . . 629.2.2 Korlátozás ügyesebben . . . . . . . . . . . . . . . . . . . . . . . . . . . 649.2.3 Alkalmazás a bináris hátizsák-feladatra . . . . . . . . . . . . . . . . . . 64

9.3 Lagrange-relaxáció . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659.3.1 Lagrange-duális feladat . . . . . . . . . . . . . . . . . . . . . . . . . . 659.3.2 A Lagrange-duális feladat er®ssége . . . . . . . . . . . . . . . . . . . . 669.3.3 A szubgradiens-módszer . . . . . . . . . . . . . . . . . . . . . . . . . . 67

9.4 Csoport-feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689.5 Sarokpoliéderek és metszet vágások . . . . . . . . . . . . . . . . . . . . . . . . 699.6 Felemelés és vetítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729.7 Benders dekompozíció . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749.8 Graver-féle teszthalmaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

10 Oszlopgenerálás 7610.1 Többtermékes folyamok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

10.1.1 Lagrange relaxáció . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7610.1.2 Ford-Fulkerson algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . 77

10.2 Egydimenziós szabási feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . 7910.3 Dantzig-Wolfe dekompozíció . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

11 Közelít® algoritmusok 8111.1 2-közelít® algoritmus minimális súlyú lefogó csúcshalmaz keresésére . . . . . . 81

11.1.1 Legkisebb lefogó csúcshalmaz . . . . . . . . . . . . . . . . . . . . . . . 8111.1.2 Minimális költség¶ lefogó csúcshalmaz . . . . . . . . . . . . . . . . . . 82

11.2 Goemans�Williamson-algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . 8311.2.1 A feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8311.2.2 Alkalmazások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8311.2.3 Az algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

11.3 Jain iteratív kerekít® algoritmusa . . . . . . . . . . . . . . . . . . . . . . . . . 86

4

Page 6: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

11.3.1 Az általános irányítatlan hálózattervezési feladat . . . . . . . . . . . . 86

12 Általános heurisztikus algoritmusok 9012.1 Lokális keresés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9012.2 Tabukeresés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9012.3 Szimulált leh¶lés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9012.4 Genetikus algoritmusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

13 Függelék 9113.1 Lineáris programozási emlékeztet® . . . . . . . . . . . . . . . . . . . . . . . . 91

13.1.1 A lexikogra�kus duál-szimplex módszer . . . . . . . . . . . . . . . . . 9213.2 A feszít®fák poliédere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9213.3 Prim feszít®fa algoritmusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9413.4 Nagamochi és Ibaraki algoritmusa . . . . . . . . . . . . . . . . . . . . . . . . . 9413.5 Az egészérték¶ programozási feladat NP-teljes . . . . . . . . . . . . . . . . . . 9513.6 Minimális T -vágások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9513.7 El®zetes egyszer¶sítések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

14 Jelölések 97

5

Page 7: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 1

Példák egészérték¶ optimalizálásra

Hozzárendelési feladat

Adott n darab munka és elvégzésükhöz n ember. Tudjuk, hogy az i-edik ember a j-edikmunkát cij összegért végzi el. Célunk a munkák olyan kiosztása, amely a lehet® legkisebbköltségráfordítással jár.

Vezessük be az xij vátozókat, amelyek értéke 1, ha az i-edik ember a j-edik munkát kapja,és 0, ha nem.

A feladatkiosztást leíró feltételek ekkor a következ®k:egyrészt minden munkát el kell végeztetnünk:

n∑i=1

xij = 1 j = 1, 2, . . . n,

másrészt minden ember csak egy munkát kaphat (a számosságok miatt pontosan egy munkátkap):

n∑j=1

xij = 1 i = 1, 2, . . . n.

A célfüggvény pedig a következ®.

minn∑i=1

n∑j=1

cijxij .

Hátizsák feladat

Többféle hátizsák feladatot is ismerünk, amelyekkel b®vebben majd a 6.2 fejezetben foglal-kozunk. Most az úgynevezett bináris hátizsák feladatot tekintjük. Adott egy b költségvetés¶pénzügyi keret (magyarán b Forint), és n darab befektetési lehet®ség, amelyek költségigényeai összeg az i = 1, 2, . . . n értékekre. A befektetések várható hozama ci (i = 1, . . . , n). Célunka lehet® legnagyobb hozam elérése.

Az xi változó legyen 1, ha befektetünk pénzt az i-edik lehet®ségbe, és 0, ha nem.Mivel az elköltend® pénzösszeg nem haladhatja meg a rendelkezésünkre állót:

n∑i=1

aixi ≤ b.

A maximalizálandó függvény pedig:n∑i=1

cixi.

6

Page 8: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Halmazfedési feladat

Adott egy alaphalmaz és annak néhány részhalmaza, amelyeknek költsége is van. Válasszuk kia legkisebb összeköltséggel részhalmazok egy olyan rendszerét, amely az alaphalmaz mindenelemét tartalmazza.

A feladat egy lehetséges motivációja: tekintsük egy nagyvárosban a lehetséges t¶zoltó-állomások halmazát azok megépítési költségeivel együtt. Továbbá tekintsük a város térképét,amelyen bejelöltük, hogy az egyes lehetséges állomásokról mely területek érhet®k el a helyiszabályozás szerinti maximális kiszállási id®n belül. Célunk a legkisebb költséggel egy olyant¶zoltó-állomás hálózat létrehozása, amely a város minden részébe a megadott id®korlát alattegységeket tud küldeni.

Az xj változó legyen 1, ha kiválasztjuk a j-edik részhalmazt (példánkban a j-edik lehetségesállomásról elérhet® területet), és 0, ha nem.

Tegyük fel, hogy m darab részhalmazunk van, az alaphalmaz pedig n elem¶. Az aij értéklegyen 1, ha az alaphalmaz i-edik eleme benne van a j-edik részhalmazban. Ekkor, mivelminden elemnek benne kell lennie valamelyik kiválasztandó részhalmazban:

m∑j=1

aijxj ≥ 1 i = 1, 2, . . . , n.

A minimalizálandó költségfüggvény pedig:

m∑j=1

cjxj .

Az utazóügynök feladata

Adott a G = (V,E) teljes gráf és a c : E → R+ élhossz-függvény. Feladatunk a legrövidebbolyan körnek a megkeresése, amely a gráf minden pontján áthalad.

Az alapgráf minden élének feleltessünk meg egy változót, és tekintsük az alábbi egyenl®tlen-ség-rendszert.

x(δ(v)) = 2 ∀v ∈ V

xe ∈ {0, 1} ∀e ∈ E.

Ennek megoldásai a gráfot fed® diszjunkt körök karakterisztikus vektorai. A következ®feltételek hozzávétele után azonban már csak a Hamilton-körök lesznek a megoldások.

x(δ(S)) ≥ 2 ∀S ⊂ V, S 6= ∅.

A célfüggvény pedig a következ®:

min∑e∈E

cexe.

Szolgáltató-elhelyezési feladat (facility location)

Adott potenciális szolgáltatóhelyek N = {1, 2, . . . , n} és megrendel®k M = {1, 2, . . . ,m}halmaza. Legyen a j szolgáltatóhely megnyitásának �x költsége fj , kapacitása pedig uj . Azi megrendel®nek di igénye van; ha egységnyi igényét a j szolgáltatóhely elégíti ki, akkor azcij költséget jelent. Döntsük el, hogy mely szolgáltatóhelyeket használjuk (amelyek feltevésszerint elegend®en nagy kapacitásúak), és az egyes megrendel®k igényeinek mekkora részétteljesítsék az egyes szolgáltatóhelyek.

7

Page 9: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Vezessük be az yj bináris változókat, amelyek értéke 1, ha használjuk a j szolgáltatóhelyet,és 0, ha nem. Az xij nemnegatív változó jelölje azt, hogy mekkora igényét teljesíti az imegrendel®nek a j szolgáltatóhely.

Mivel minden megrendel® teljes igényét ki kell elégítenünk, ezért:∑j∈N

xij = di ∀i ∈M.

Ha a j raktárból szállítunk valahová, akkor a következ® egyenl®tlenségek biztosítják, hogyvalóban yj = 1 legyen a j ∈M raktárra:

xij ≤ ujyj ∀i ∈M.

A célfüggvényünk pedig a következ®.

min∑i∈M

∑j∈N

cijxij +∑j∈N

fjyj .

Termelésütemezési feladat

Egy adott termék termelésér®l kell döntenünk egy n periódusú id®szakban. Az alábbi ada-tokkal rendelkezünk:

ft: a t-edik periódusban a termelés �x költsége,

pt: a t-edik periódusban az egységnyi mennyiség termelésének költsége,

ht: a t-edik periódusban az egységnyi mennyiség tárolásának költsége,

dt: ennyi mennyiség¶ termékre van igény a t-edik periódusban.

De�niáljuk a következ® változókat.

xt: a t-edik periódusban termelt mennyiség,

zt: a t-edik periódus végén tárolt mennyiség,

yt = 1, ha a t-edik periódusban termelünk, 0, ha nem.

A célfüggvény és a feltételek:

min

n∑t=1

ptxt +

n∑t=1

htzt +

n∑t=1

ftyt,

zt−1 + xt = dt + zt ∀t = 1, 2, . . . , n,

xt ≤Myt ∀t = 1, 2, . . . , n,

z0 = 0, zt, xt ≥ 0, yt ∈ {0, 1} ∀t = 1, 2, . . . , n,

aholM egy megfelel®en nagy szám ahhoz, hogy ne korlátozza a megtermelend® mennyiségeket.Amennyiben zn = 0-nak is teljesülnie kell, akkor M választható például

∑ni=t di értéknek az

yt-hez tartozó sorban.

8

Page 10: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Rácsból vett értékek

Egészérték¶ feladatként azt is fel tudjuk írni, ha azt szeretnénk, hogy x ∈ Rn vektorváltozónkcsak egy L(B) ⊆ Rn rács pontjait vehesse fel értékként, ahol B egy n× d-es d rangú mátrix(a rács de�níciója a 4.1 fejezetben található). Tegyük fel hogy feladatunk a következ®:

max{cx : Ax ≤ b, x ∈ L(B)}.

Ezt egészérték¶ programozási feladatként a következ®képpen írhatjuk fel y ∈ Zd változóksegítségével:

max{(cB)y : (AB)y ≤ b, y ∈ Zd}.

Korlátos poliéderek uniója

Adott k darab korlátos poliéder: Pi = {x ∈ Rn : Aix ≤ bi, −d ≤ x ≤ d} (i = 1, . . . , k). Akövetkez® feladatot szeretnénk modellezni:

max{cx : x ∈ ∪ki=1Pi}.

Létezik olyan β szám amire −d ≤ x ≤ d esetén Aix ≤ bi + β1 minden i-re. Enneksegítségével a felírás vegyes programozási feladatként:

max cx

−d ≤ x ≤ dAix ≤ bi + β(1− yi)1 (i = 1, . . . , k)

k∑i=1

yi = 1

y ∈ {0, 1}k

9

Page 11: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 2

Poliéderben lév® egész pontok

Az alábbiakban röviden összefoglaljuk a jegyzetben használt fogalmakat és jelöléseket.Az {x ∈ Rn : Ax ≤ b} poliédert racionális poliédernek mondjuk, ha az A mátrix és a b

vektor elemei racionális számok. Feltehetjük, hogy ekkor A és b elemei egészek.Az x ∈ Rn vektort egész vektornak mondjuk, ha minden komponense egész. A vektor

elnevezés mellett használni fogjuk a pont elnevezést is. Pontként többnyire akkor hivatkozunkrá, amikor poliéderes környezetben vagyunk, vektorként pedig akkor, amikor valamely térnekegy elemére gondolunk.

A P poliéder egész poliéder, ha minden oldala tartalmaz egész pontot. Egyenesmentes,azaz csúcsos poliéder esetén ez azt jelenti, hogy a csúcsai egész pontok.

A fejezet elején az Olvasó �gyelmébe ajánljuk a 13.1 fejezet lineáris programozási em-lékeztet®jét.

2.1 Meyer tétele

A továbbiakban PI jelöli a P poliéder egész pontjainak konvex burkát. (Emlékeztetünk arra,hogy egy poliéder karakterisztikus kúpja a poliéder által tartalmazott irányok halmaza.)

2.1 tétel (Meyer, 1974). Ha P racionális poliéder, akkor PI is poliéder. Ha PI 6= ∅, akkor Pés PI karakterisztikus kúpjai megegyeznek.

A fenti tétel a nemracionális poliéderekre nem érvényes. El®fordul, hogy csak végtelen sokféltér metszereként áll el® a PI �poliéder�. Az is el®fordulhat, hogy PI nem zárt halmaz!Bizonyítás. Tekintsük a P Motzkin-tétel (13.4 tétel) szerinti Q+ C el®állítását, ahol felte-hetjük, hogy a C kúpot az y1, y2, . . . , ys egész vektorok generálják. Legyen

B := {s∑i=1

µiyi : 0 ≤ µi ≤ 1, i = 1, 2, . . . , s}.

Megmutatjuk, hogy PI = (Q + B)I + C, ami elegend®, hiszen Q + B korlátos halmaz, azaz(Q+B)I valóban politóp, s így poliéder is.

El®ször bebizonyítjuk, hogy PI ⊆ (Q+B)I +C. Mivel (Q+B)I +C konvex halmaz, elégbelátni, hogy a P minden egész p pontja benne van.

Motzkin tétele szerint p felírható q + c alakban, ahol q ∈ Q, c ∈ C. Ekkor léteznek olyannemnegatív µi együtthatók, melyekkel:

p = q + c = q +

s∑i=1

µiyi =

10

Page 12: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

= (q +s∑i=1

(µi − bµic)yi) +s∑i=1

(bµic)yi) =: (q + b) + c′.

b ∈ B nyilvánvalóan teljesül, továbbá q+ b egész, mivel q+ b = p− c′, azaz el®áll két egészvektor különbségeként.

Most bebizonyítjuk, hogy PI ⊇ (Q+B)I + C.

(Q+B)I + C ⊆ PI + C = PI + CI ⊆ (P + C)I = PI ,

ahol felhasználtuk, hogy CI = C, mivel C racionális. 2

2.2 Hilbert-bázisok, unimodularitás

2.2 de�níció. Legyen C ⊆ Rn egy poliéderkúp. Az a1, a2, . . . , am C-beli egész vektorok végeshalmazát Hilbert-bázisnak nevezzük, ha minden C-beli egész vektor el®áll az ai vektoroknemnegatív egész együtthatós lineáris kombinációjaként.

Nincs minden poliéderkúpnak Hilbert-bázisa. C = {(x, y) ∈ R2 : x ≥ 0,√

5x ≤ y}.

2.3 tétel (Gordan 1873, Hilbert 1890). Minden racionális poliéderkúpnak létezik Hilbert-bázisa.

Bizonyítás. Weyl tétele (13.2 tétel) szerint feltehetjük, hogy a C racionális poliéderkúp azy1, y2, . . . , ys egész vektorok által generált kúpként is el®áll. Legyen H := {a1, a2, . . . , am} akövetkez® korlátos halmazba es® összes egész vektor.

V := {s∑i=1

λiyi : 0 ≤ λi ≤ 1, i = 1, 2, . . . , s}.

Megmutatjuk, hogy H a C Hilbert-bázisa.Legyen b egy tetsz®leges C-beli egész pont. Ekkor

b =s∑i=1

µiyi =s∑i=1

(µi − bµic)yi +s∑i=1

bµicyi.

Az els® szumma eredményét jelölje v. v ∈ V triviálisan teljesül. Mivel az yi vektorokbenne vannak H-ban, elegend® azt megmutatni, hogy v is benne van a H halmazban. v =b−∑s

i=1bµicyi, azaz v megkapható egész vektorok összegeként, ezért v is egész, tehát valóbanH-ban van. 2

Mikor nevezünk egy kúpot csúcsosnak? Ha van csúcsa, azaz ha nem tartalmaz egyenest.Ez azt jelenti, hogy végesen generált kúp esetén a kúpot generáló nemnulla vektoroknak nemlétezik nemtriviális, nemnegatív lineáris kombinációja, amely a 0 vektort adná eredményül.A szemléletünk által elvárható módon most a Farkas-lemma (13.5 tétel) következményekéntmegmutatjuk, hogy ez azzal ekvivalens, hogy létezik egy vektor, amellyel az összes nemnullageneráló vektor hegyesszöget zár be, azaz érvényes az alábbi, ahol a B mátrix sorai a kúpgeneráló vektorai.

2.4 lemma. Az adott B mátrixhoz akkor és csak akkor létezik x megoldása a Bx > 0 rend-szernek, ha nem létezik megoldása a következ®nek:

yB = 0, y ≥ 0, y 6= 0.

11

Page 13: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Bizonyítás.∃x : Bx > 0⇔ ∃x : Bx ≥ 1⇔ ∃x : Bx ≤ −1.

A Farkas-lemma (13.5 tétel) szerint ez azzal ekvivalens, hogy

6 ∃y : yB = 0, y ≥ 0, y(−1) < 0⇔6 ∃y : yB = 0, y ≥ 0, y 6= 0.

2

2.5 tétel (van der Corput 1931). Ha C csúcsos kúp, akkor létezik egyértelm¶ minden Hilbert-bázis által tartalmazott Hilbert-bázisa.

Ha C-nek nincs csúcsa, akkor nem létezik egyértelm¶ minimális Hilbert-bázis. Például R-etmint kúpot tekintve, az összes (p, q) pár Hilbert-bázis, ahol p negatív egész, q pozitív egész,és relatív prímek.Bizonyítás. Legyen M azon C-beli nemnulla, egész vektorok halmaza, amelyek nem állnakel® két C-beli egész vektor összegeként. M elemeinek nyilván minden Hilbert-bázisban bennekell lennie. M véges halmaz, mivel az el®z®, 2.3 tétel szerint létezik H Hilbert-bázis. Azállítjuk, hogy M Hilbert-bázis.

Mivel C csúcsos, ezért az el®z® lemma szerint létezik egy y ∈ Rn vektor, amelyre yx > 0teljesül a C minden nemnulla x elemére.

Tegyük fel indirekten, hogy a C-beli c egész vektor nem áll el® M -b®l nemnegatív egészegyütthatós lineáris kombinációként. Legyen c olyan, amelyre az yc skaláris szorzat minimális!Létezik ilyen c, hiszen a véges H halmazban kell lennie.

Ekkor mivel c /∈M , c = c1 + c2, ahol c1, c2 C-beli egész vektorok. Mivel vc1 < vc, vc2 < vc,ezért c1 és c2 el®áll M -beliekb®l, következésképpen c is, ami ellentmondás. 2

Legyen most A egy m×m-es nemszinguláris mátrix egész elemekkel. Azt vizsgáljuk, hogyA oszlopai mikor alkotják az általuk generált kúp Hilbert-bázisát.

2.6 tétel. A oszlopai pontosan akkor alkotják az általuk generált kúp Hilbert-bázisát, ha|det(A)| = 1.

Bizonyítás. Ha |det(A)| = 1, akkor A−1 is egész mátrix. A generált kúp tetsz®leges egészb elemére az ®t adó lineáris kombináció együtthatóit A−1b adja, tehát ezek egészek, azaz azoszlopok Hilbert-bázist alkotnak.

A másik irányhoz tegyük fel, hogy az oszlopok Hilbert-bázist alkotnak. Ebb®l következik,hogy ha egy egész b-re A−1b nemnegatív, akkor egész. Azt állítjuk, hogy minden egész b-reA−1b egész. Ha adott b-re ez nem teljesülne, akkor vegyünk egy olyan egész y vektort, amirey + A−1b ≥ 0, ; legyen b′ := A(y + A−1b) = Ay + b. Ekkor b′ egész, de A−1b′ nemnegatív ésnem egész, ami ellentmond a Hilbert-bázis tulajdonságnak.

Beláttuk tehát, hogy A−1b egész minden egész b-re, speciálisan minden egységvektorra is.Ezért viszont A−1 egész mátrix, tehát det(A−1) egész. A det(A−1)det(A) = 1 összefüggésmiatt tehát |det(A)| = 1. 2

2.7 de�níció. Egy A m × n-es m rangú egész mátrix unimoduláris, ha minden bázis deter-minánsa 1 vagy −1.

2.8 tétel (Veinott, Dantzig, 1968). Legyen A egy m × n-es m rangú egész mátrix. A akkorés csak akkor unimoduláris, ha a Pb := {x : Ax = b, x ≥ 0} poliéder minden egész b-re egészpoliéder.

12

Page 14: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Bizonyítás. Ha A unimoduláris, akkor tetsz®leges egész b-re a Pb poliéder minden bázis-megoldása egész, tehát Pb egész poliéder.

A fordított irányhoz legyen B egy bázis. Mivel minden b-re Pb minden bázismegoldása(speciálisan a B-hez tartozó is, ha megoldás) egész, ezért B oszlopai az általuk generált kúpHilbert-bázisát alkotják. A 2.6. Tétel szerint ekkor |det(B)| = 1. 2

2.9 de�níció. Egy mátrix teljesen unimoduláris (TU), ha minden négyzetes D részmátrixáradet(D) ∈ {0, 1,−1}.

2.10 állítás. Az A mátrix pontosan akkor TU, ha az [A, I] mátrix unimoduláris.

Bizonyítás. Könny¶. 2

2.11 tétel (Ho�man, Kruskal, 1956). Az A mátrix pontosan akkor TU, ha a Qb := {x :Ax ≤ b, x ≥ 0} poliéder minden egész b-re egész poliéder.

Bizonyítás. Qb egész poliéder minden egész b-re ⇔ {z : [A, I]z = b, x ≥ 0} egész poliéderminden egész b-re ⇔ [A, I] unimoduláris ⇔ A TU. 2

2.12 tétel (Ho�man, Kruskal, 1956). Ha az A mátrix TU, akkor az {x : Ax ≤ b} poliéderminden egész b-re egész poliéder.

Bizonyítás. A TU⇒ [A,−A] TU⇒ {z : [A,−A]z ≤ b, z ≥ 0} egész poliéder minden egészb-re ⇒ {x : Ax ≤ b} egész poliéder minden egész b-re. 2

Legyen D = (V,E) egy irányított gráf, és legyen F ⊆ E egy olyan kijelölt élhalmaz, amiirányítatlan értelemben feszít® fa. Tekintsük a következ® A mátrixot, aminek sorai F éleivel,oszlopai pedig E − F éleivel vannak indexelve. Egy adott uv ∈ E − F élhez tartozik F -benegy egyértelm¶ (nem feltétlenül irányított) út v-b®l u-ba. Legyenek ennek élei e1, . . . , ek.Az A mártix uv-hez tartozó oszlopa legyen a következ®: egy ei élhez 1 tartozik, ha irányamegegyezik az út irányával, és -1, ha az irány fordított; a többi F-beli élhez pedig 0 tartozzon.

2.13 de�níció. Egy mátrixot hálózati mátrixnak nevezünk, ha el®áll egy irányított gráfbólés egy feszít® fából a fenti módon.

2.14 állítás. Hálózati mátrix részmátrixa is hálózati. Sort vagy oszlopot −1-gyel szorozva ishálózati mátrixot kapunk.

Bizonyítás. Könny¶. 2

2.15 tétel (Tutte, 1965). Minden hálózati mátrix teljesen unimoduláris.

Bizonyítás. Elég belátni négyzetes hálózati mátrixra. Használjunk indukciót a mátrixméretére. Legyen D = (V,E) és F a mátrixot adó irányított gráf és fa, és legyen uv ∈ Fa fának egy u levélre illeszked® éle (feltehet®, hogy így van irányítva). Ha uv sorában csak1 nemnulla elem van, akkor a determináns kifejtési szabály miatt indukcióval kész vagyunk.Különben feltehet®, hogy pontosan 1 su ∈ E − F él lép u-ba, a többi él kilép u-ból. Könny¶ellen®rizni, hogy ha su oszlopát hozzáadjuk egy ut ∈ E−F él oszlopához, akkor újra hálózatimátrixot kapunk: az ut kihagyásával és egy st él hozzávételével kapott gráfhoz tartozót. Adetermináns persze nem változik. Ezt a m¶veletet elvégezve minden ut ∈ E − F élre olyanmátrixot kapunk, ahol uv sorában csak 1 nemnulla elem van, ilyenr®l pedig már láttuk hogydeterminánsa 0, 1 vagy -1. 2

13

Page 15: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

2.3 Nemmegoldhatóság

A Caratheodory-tétel egy érdekes egészérték¶ analogonját adja a következ® tétel.

2.16 tétel (Bell és Scarf, 1977). Ha az {aix ≤ βi, 1 ≤ i ≤ m} rendszernek nem létezik egészmegoldása, akkor van egy legfeljebb 2n elem¶ részrendszere, amelynek már szintén nincs egészmegoldása.

Bizonyítás. Megmutatjuk, hogy ha nincs egész megoldás, de minden j-re létezik xj egész,amelyre ajxj > βj , és minden i 6= j indexre aixj ≤ βi, akkor m ≤ 2n.

Legyen Z := Zn ∩ conv{x1, x2, . . . , xm}. Ekkor a következ® rendszernek nem létezik Z-belimegoldása (de persze az már lehetséges, hogy egész megoldása van).

a1x < minz∈Z{a1z : a1z > β1},

... (2.1)

amx < minz∈Z{amz : amz > βm}.

Válasszuk úgy a γj ∈ R , j = 1, 2, . . . ,m számokat, hogy γj ≥ minz∈Z{ajz : ajz > βj}, ésa következ® rendszernek ne létezzen Z-beli megoldása, ezen belül pedig

∑mj=1 γj maximális

legyen.

a1x < γ1,... (2.2)

amx < γm.

Ilyen γ létezik (lásd (2.1)), γj felülr®l is korlátos (γj ≤ ajxj), a γ vektorok halmaza pedigzárt, hiszen a komplementere nyílt:

{γ ∈ Rm : ∃z ∈ Z, melyre aiz < γi ∀ i = 1, 2, . . .m} =

=⋃z∈Z{γ ∈ Rm : aiz < γi ∀ i = 1, 2, . . .m},

ez utóbbi pedig nyíltak uniója.Mivel

∑mj=1 γj maximális, ezért minden j-re létezik yj ∈ Z, hogy ajyj = γj , és aiyj < γi

minden i 6= j indexre. Mivel indirekten m > 2n, ezért léteznek k és l különböz® indexek,amelyeknek a megfelel® komponenseik azonos paritásúak. Ekkor yk+yl

2 ∈ Z, ami viszontkielégíti (2.2)-at. Ellentmondás. 2

Megjegyezzük, hogy a fenti tételben szerepl® 2n éles, amint azt a következ® példa mutatjan ≥ 2 esetben: ∑

i∈Ixi −

∑i 6∈I

xi ≤ |I| − 1 ∀ I ⊆ {1, 2, . . . , n}.

A fenti tétel egészérték¶ optimalizációs feladatokra vonatkozó következménye az alábbi.

2.17 tétel (Scarf, Todd, 1977). Ha µ := max{cx : Ax ≤ b, x egész} véges, akkor létezik egylegfeljebb 2n − 1 sorból álló A′x ≤ b′ részrendszer, amelyre max{cx : A′x ≤ b′, x egész} = µ.

Bizonyítás. A következ® rendszernek nem létezik egész megoldása semmilyen t ∈ Z+

paraméterre.

Ax ≤ b, (2.3)

cx ≥ µ+1

t.

14

Page 16: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Az el®z®, 2.16 tétel szerint minden t-re létezik egy legfeljebb 2n sorból álló részrendszer,amelynek nem létezik egész megoldása. Mivel mindegyiknek tagja a cx ≥ µ+ 1

t , ezért létezikegy A′x ≤ b′ keresett méret¶ rendszer, amely végtelen sok t-re szerepel, ami azt jelenti, hogyaz {A′x ≤ b′, cx > µ} rendszernek nincs egész megoldása. 2

2.4 Bonyolultság

Vizvári Béla jegyzetének 45. oldalán szerepl® tétel, itt biz. nélkül.

2.18 tétel.

A küszöbgráfok el®állítási tétele.

2.19 tétel (Chvátal és Hammer, 1977). Tetsz®leges G gráfra az alábbi három állítás ekvivalens.

1. G el®áll a ponthozzáadás, és pontszorzás m¶veletek alkalmazásával.

2. G küszöbgráf.

3. G-nek nincs feszített 2K2, P4 vagy C4 részgráfja.

Bizonyítás. 1 -b®l 2, és 2 -b®l 3 egyszer¶en következik.Most megmutatjuk 3 -ból 1 -et. A G pontszámára vonatkozó indukcióval bizonyítunk.

Amennyiben G-ben van izolált pont (amelyre de�níció szerint nem illeszkedik él), kész va-gyunk. Ha nincs ilyen pont, akkor tekintsünk egy maximális fokszámú v pontot. Ha v mindenmás ponttal össze van kötve, újfent készen vagyunk, ha pedig nem ez a helyzet, tekintsünkegy z pontot, amely nem a szomszédja.

Mivel z nem izolált pont, létezik egy t szomszédja. Mivel v maximális fokú, kell léteznieolyan s szomszédjának, amely t-nek nem szomszédja. Ekkor a vt és uz élek meglétét®l füg-g®en a 3 -ban tiltott feszített részgráfokat kapunk, következésképpen v-nek minden más pontszomszédja. 2

15

Page 17: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 3

Teljesen duálisan egészérték¶ség

A poliéderes kombinatorika a lineáris porgramozás dualitástételét használja fel kombinatorikaifeladatokkal kapcsolatos következtetések levonására. Ebben a fejezetben a teljesen duálisanegészérték¶ség fogalmát ismertetjük, és a vele kapcsolatos legfontosabb eredményeket.

A bevezetend® fogalom alapgondolata a következ®. Kombinatorikus struktúrákhoz ren-delünk poliédereket, és ezen poliéderek csúcsai ha egészek, akkor az elég sok információt adnekünk. Belátjuk, hogy ha tetsz®leges egész célfüggvény esetén egész az optimum értéke,akkor a poliéder is egész. Ezután egy poliéder egészségét majd úgy próbájuk bebizonyítani,hogy meghatározzuk egy olyan leíró rendszerét, amely duálisának az optimuma minden egészcélfüggvényhez egész vektoron is felvétetik. Amint az ki fog derülni, ez egy nagyon gyümölc-söz® elgondolás.

3.1 Teljesen duálisan egészérték¶ség

3.1 tétel (Ho�man, 1974). A P korlátos racionális poliéder akkor és csak akkor egész, ha amax{cx : x ∈ P} érték minden egész c vektorra egész.

Bizonyítás. Világos, hogy egész poliéderre teljesül a feltétel, most lássuk be, hogy a Pkorlátos racionális poliéderre a feltétel teljesülése maga után vonja, hogy egész.

Legyen v = (v1, v2, . . . , vn) a P egy csúcsa, és legyen c ∈ Zn olyan célfüggvény, melyre akövetkez® maximum egyedül a v ponton vétetik fel: max{cx : x ∈ P}. (Lásd 2. feladat.)

A c esetleges felszorzásával elérhet®, hogy cv > cu + u1 − v1 fennáljon a P minden más ucsúcsára. Ekkor viszont a c′ := (c1 + 1, c2, . . . , cn) egész célfüggvényre szintén a v-n véteik felmax{c′x : x ∈ P}. Ami viszont azt jelenti, hogy a két egész optimum cv−c′v = v1 különbségeegész. Hasonlóan belátható, hogy a v minden koordinátája is egész, és mivel v tetsz®legescsúcsnak választható, beláttuk, hogy a P egész poliéder. 2

Edmonds és Giles ezt a tételt kiterjesztette tetsz®leges poliéderre 1977-ben (tehát nem kell,hogy korlátos legyen, s®t még csúcsának sem kell lennie.)

3.2 tétel (Edmonds, Giles, 1977). A P racionális poliéder akkor és csak akkor egész, ha amax{cx : x ∈ P} érték minden egész c vektorra egész.

Bizonyítás. A bizonyításhoz a következ® lemmát használjuk:

3.3 lemma. Legyen A egész mátrix, és b egész vektor. Pontosan akkor létezik egész x vektoramire Ax = b, ha minden y vektorra, amire yA egész, yb is egész.

Bizonyítás. Ha létezik jó egész x, akkor az (yA)x = yb összefüggésb®l következik az y-ravonatkozó tulajdonság. A fordított irányhoz feltehet®, hogy Ax = b-nek van megoldása, és

16

Page 18: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

A sorai lineárisan függetlenek. Könnyen ellen®rizhet®, hogy mind x mind y létezése szem-pontjából ekvivalens rendszert kapunk, ha oszlopokat felcserélünk, illetve egy oszlop egésztöbbszörösét egy másikhoz adjuk. Ilyen m¶veletekkel a mátrix [B, 0] alakba hozható, ahol Begész háromszögmátrix.

Mivel B−1[B, 0] egész mátrix, a feltevésb®l következik, hogy B−1b egész vektor. Így az

x :=(B−1b

0

)vektor jó lesz, hiszen [B, 0]x = b. 2

A tételhez azt kell bizonyítanunk, hogy a P poliéder minden P ′ minimális oldalának vanegész pontja. Tudjuk, hogy P ′ egy a�n altér, ami leírható egy A′x = b′ egyenlettel, ahol A′

és b′ egész. Azt is tudjuk, hogy tetsz®leges y ≥ 0-ra a c := yA′ célfüggvényre a P ′ pontjaioptimálisak. A feltétel szerint tehát az yb′ érték egész minden olyan nemnegatív y-ra, amireyA′ egész. Könny¶ látni hogy itt a nemnegativitási feltételt el lehet hagyni (kell®en nagyegész vektort hozzáadva y-hoz). Ekkor viszont alkalmazhatjuk a lemmát, tehát létezik egészx vektor amire A′x = b′, azaz P ′-nek létezik egész pontja. 2

Ezen tétel fényében nagyon hasznosnak bizonyul az alábbi fogalom.

3.4 de�níció. Az Ax ≤ b racionális számokból álló egyenl®tlenség-rendszert teljesen duálisanegészérték¶nek mondjuk, ha minden olyan egész c ∈ Zn célfüggvényre, melyre az optimumkorlátos, a min{by : yA = c, y ≥ 0} duális feladat optimuma egész y vektoron is felvétetik.

Az angol elnevezés (total dual integrality) után a fenti tulajdonságot TDI-ségnek rövidítjük.

3.5 tétel (Edmonds, Giles 1977). Legyen a P = {x : Ax ≤ b} racionális poliéder, továbbá begész vektor. Ha az Ax ≤ b rendszer teljesen duálisan egészérték¶, akkor a P egész poliéder.

Bizonyítás. Mivel b egész, a duális feladat optimuma egész, tehát a dualitástétel (13.9 tétel)szerint max{cx : Ax ≤ b} is egész minden egész c-re, azaz a 3.2 tétel szerint P egész poliéder.2

3.6 tétel (Giles és Pulleyblank, 1979). Legyen P egy racionális poliéder. Ekkor létezik egyAx ≤ b TDI rendszer, amelyre A egész mátrix, és P = {x : Ax ≤ b}. Továbbá amennyiben Pegész poliéder, b is választható egésznek.

Bizonyítás. Legyen P = {x ∈ Rn : Mx ≤ d}, ahol M egész mátrix. Legyen L := {l ∈ Zn :l = yM, 0 ≤ y ≤ 1}, azaz azon egész vektorok halmaza, amelyek el®állnak az M soraiból 0és 1 közti együtthatókkal vett lineáris kombinációként. Világos, hogy L véges halmaz. Jelöljeβ(l) := max{lx : x ∈ P}.

Most megadjuk a keresett rendszert. Álljon az Ax ≤ b az összes lx ≤ β(l) sorokból, aholl ∈ L. Mivel az M minden sora benne van L-ben, ezért P = {x ∈ Rn : Ax ≤ b}. Ha pedig Pegész, akkor a b is egész.

Most megmutatjuk, hogy az Ax ≤ b TDI-rendszer. Legyen c ∈ Zn olyan egész vektor,amelyre a max{cx : x ∈ P} korlátos. Megadjuk a duális min{yb : yA = c, y ≥ 0} egy egészoptimális megoldását. A dualitás tétel (13.9 tétel) szerint:

max{cx : Ax ≤ b} = min{yb : yA = c, y ≥ 0} =: z∗.

Jelölje y∗ a duális egy olyan megoldását, amelyen a minimum felvétetik, és jelölje y∗M az Msoraihoz tartozó részét. A c′ := (y∗M − by∗Mc)M vektor benne van az L halmazban, továbbáβ(c′) ≤ (y∗M − by∗Mc)d. Eszerint z∗ ≥ β(c′) + by∗Mcd, viszont z∗ szitén optimumértéke amin{yd : yM = c, y ≥ 0} feladatnak, azaz az M soraihoz tartozó duális változóknak by∗Mc,a c′x ≤ β(c′) sorhoz tartozó változónak pedig 1 értéket adva a duális egy egész optimálismegoldását kapjuk. 2

17

Page 19: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

A bizonyításban a racionális poliédert meghatározó egyenl®tlenség-rendszerhez hozzátet-tünk nagyon sok újabb redundáns feltételt, ami után a duális feladat megváltozott (változóinaka száma n®tt), és lehet®vé tette, hogy egész optimum is létezzen. Az el®adáson tekintettünkegy példát, amelyben a K4 gráf 2-párosítási poliéderének minimális leírásáról láttuk, hogynem TDI, viszont egy redundáns sort hozzávéve már TDI leírást kaptunk.

Leírunk egy másik bizonyítást is Giles és Pulleyblank tételére, ami a TDI tulajdonságHilbert-bázisok segítségével történ® jellemzését használja.

3.7 de�níció. Legyen A egész mátrix, és F a P = {x : Ax ≤ b} poliéder egy oldala. Az Amátrix ai sorát F -re nézve aktívnak nevezzük, ha aix = bi minden x ∈ F vektorra. Jelölje CFaz F -re nézve aktív sorok által generált kúpot. A kiegészít® eltérések tétele értelmében CFazon c vektorok halmaza, amikre az {Ax ≤ b, max cx} feladatnak F összes pontja optimálismegoldása; így CF nem függ a P -t de�niáló rendszert®l.

3.8 lemma. Legyen A egész mátrix. Az Ax ≤ b rendszer akkor és csak akkor TDI, ha{x : Ax ≤ b} minden minimális oldalára igaz, hogy a rá nézve aktív sorok Hilbert-bázistalkotnak.

Bizonyítás. Ha Ax ≤ b TDI, és F a P = {x : Ax ≤ b} poliéder egy oldala, akkor mindenegész c ∈ CF -re a duális {yA = c, y ≥ 0, min yb} feladatnak van olyan egész y megoldása, aholyi = 0 ha ai nem aktív F -re nézve. Következésképp az F -re nézve aktív sorok Hilbert-bázistalkotnak.

Másik irány: tegyük fel, hogy egy egész c-re a primál feladat optimuma korlátos, de a duálfeladatnak nincs egész megoldása. Létezik egy F minimális oldal, aminek pontjai c-re nézveoptimálisak. Ekkkor c ∈ CF , de c nem áll el® F -re nézve aktív sorok nemnegatív egész lineáriskombinációjaként, mert az a duál feladat optimális megoldása lenne. 2

A 3.6. tétel alternatív bizonyítása. Legyen A′x ≤ b′ a P egy de�niáló rendszere, ésP minden F minimális oldalára legyen HF a CF egy Hilbert-bázisa. Adott h ∈ HF -re azαh := hx érték azonos F minden x pontjára, és a hx ≤ αh egyenl®tlenséget P minden pontjateljesíti.

Az Ax ≤ b rendszer álljon a hx ≤ αh egyenl®tlenségekb®l minden h ∈ HF -re és mindenF minimális oldalra. Ekkor A′x ≤ b′ minden lényeges egyenl®tlensége el®áll ezek nemnegatívlineáris kombinációjaként (hiszen mindegyik aktív valamelyik oldalra nézve), így Ax ≤ b a Pde�niáló rendszere. A 3.8. Lemma értelmében az Ax ≤ b rendszer TDI.

Végül ha P egész poliéder, akkor P minden minimális oldala tartalmaz egész pontot, teháta fenti αh értékek egészek. 2

3.9 állítás. Ha P teljes dimenziós racionális poliéder, akkor CF csúcsos kúp minden F min-imális oldalra.

Bizonyítás. Tegyük fel, hogy c ∈ CF és −c ∈ CF valamilyen c 6= 0 vektorra, és legyenα := cx egy tetsz®leges x ∈ F -re. Ekkor cx ≤ α és −cx ≤ −α is teljesül P minden pontjára,tehát P nem teljes dimenziós. 2

3.10 de�níció. A P racionális poliédernek egy de�niáló Ax ≤ b TDI rendszere minimális,ha tetsz®leges egyenl®tlenség elhagyásával kapott A′x ≤ b′ rendszer vagy nem TDI, vagyP 6= {x : A′x ≤ b′}.

3.11 tétel (Schrijver, 1981). Legyen P teljes dimenziós racionális poliéder. Ekkor létezik egyegyértelm¶ minimális Ax ≤ b TDI rendszer, amire A egész és P = {x : Ax ≤ b}. P akkor éscsak akkor egész poliéder, ha b egész.

18

Page 20: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Bizonyítás. Az Ax ≤ b rendszert a 3.6. Tétel bizonyításához hasonlóan de�niáljuk, csakHF -nek mindig a CF csúcsos kúp egyértelm¶ minimális Hilbert-bázisát választjuk. Ekkor Aegész és Ax ≤ b TDI.

Tegyük fel, hogy van olyan P -t de�niáló A′′x ≤ b′′ TDI rendszer, amire A′′ egész, és Pvalamely F minimális oldalára és h ∈ HF -re a hx ≤ αh egyenl®tlenség nem szerepel azA′′x ≤ b′′ rendszerben. Ekkor F minden pontja a max{hx : A′′x ≤ b′′} lineáris programoptimális megoldása, tehát a duális feladat minden optimális megoldásaban yi = 0, ha a′′iaz A′′-nak nem aktív sora F -re nézve. Mivel h nem áll el® mint más CF -beli egész vektoroknemnegatív egész lineáris kombinációja, a duális feladatnak nincs egész optimális megoldása,ami ellentmond a TDI tulajdonságnak.

Ha P egész poliéder, akkor a 3.6. Tétel bizonyításához hasonlóan látható, hogy b egész. 2

Végül bebizonyítunk egy tételt, mely szerint egy TDI rendszerben egy egyenl®tlenségetegyenl®ségre változtatva ismét TDI rendszert kapunk.

3.12 tétel. Legyen Ax ≤ b TDI rendszer, és ax ≤ β ennek a rendszernek egy egyen®tlensége.Ekkor az ax ≥ β egyenl®tlenséget hozzávéve a rendszerhez TDI rendszert kapunk.

Bizonyítás. Legyen c egy egész vektor amire az optimum korlátos, erre keresünk egészoptimális duális megoldást. Legyen y∗ egy optimális megoldás, és legyen az ax = β-hoztartozó duális érték λ∗ − µ∗, ahol λ∗, µ∗ ≥ 0. Legyen c′ = c + Na, ahol N ≥ µ∗, N egész,és Na egész. Ha y∗-ban λ∗ − µ∗-t lecseréljük λ∗ + N − µ∗-re, akkor x∗-gal teljesülnek akomplementaritási feltételek, tehát x∗ optimális megoldása a max{c′x : Ax ≤ b} feladatnak.Mivel Ax ≤ b TDI rendszer volt, van c′-re egész optimális duális megoldás: y′, λ′, ami x∗-galteljesíti a komplementaritási feltételeket. Ebb®l viszont látszik, hogy y′, λ′ − N optimálisduális megoldása az ax ≥ β-val kiegészített feladatnak a c célfüggvényre. 2

3.2 Feladatok

1 feladat. Az alábbi bizonyításával mutassuk meg, hogy a TDI-ség használatakor nagyonfontos a jobb oldali b vektor egészérték¶sége.

Tetsz®leges racionális Ax ≤ b rendszerhez létezik olyan t pozitív egész, amelyre 1tAx ≤

1t b

�teljesen duálisan egészérték¶�.

2 feladat. Mutassuk meg, hogy tényleg létezik a 3.1 tétel bizonyításában használt olyan egészcélfüggvény, amely egy korlátos poliéderen kizárólag egy el®re megadott ponton veszi fel a max-imumát.

19

Page 21: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 4

Egészérték¶ programozás �xdimenzióban

Ebben a fejezetben megmutatjuk, hogy �x dimenzióban az egészérték¶ programozási feladatpolinom id®ben megoldható. Bináris feladatnál ez persze könny¶, hiszen d dimenzió eseténcsak végig kell nézni a 2d lehet®séget. De általános esetben korántsem ilyen egyszer¶ a dol-gunk: ha M egy fels® korlát a változókra, akkor Md lehet®séget kellene végignézni, de azinput lehet hogy csak O(logM) hosszú.

A módszer, amit ismertetni fogunk, nagy vonalakban úgy írható le, hogy az LP relaxáltlegalább α célfüggvény-érték¶ megoldásai vagy egy �sovány� poliédert alkotnak, és akkor apoliédert alacsonyabb dimenziós szeletekre vághatjuk, vagy �kövér� poliédert alkotnak, éskönnyen találunk egész megoldást. A poliéderek testalkatának precíz de�niálásához azonbanszükség van a rácsok elméletére, úgyhogy el®ször ezzel foglalkozunk.

4.1 Rácsok

De�níció. Adott egy B = [b1, . . . , bd] ∈ Rn×d mátrix, aminek oszlopai lineárisan függetlenek.Az mondjuk, hogy

L = L(B) = {Bv : v ∈ Zd}

a B által generált rács, és B az L rács egy bázisa.

4.1 tétel. Egy L ⊆ Rn részhalmaz pontosan akkor rács, ha Rn-nek diszkrét részcsoportja,azaz olyan részcsoport, ami tetsz®leges korlátos halmazból csak véges sok elemet tartalmaz.

Bizonyítás. El®ször lássuk be, hogy ha B ∈ Rn×d d rangú mátrix, akkor L = L(B) diszkrétrészcsoport (az nyilvánvaló, hogy részcsoportja Rn-nek. Egészítsük ki B-t új oszlopokkalnemszinguláris mátrixszá, legyen ez Q. Jelölje α a Q−1 mátrix elemeinek legnagyobb abszolútértékét. Adott z = Qλ ∈ L-re λ = Q−1z, amib®l a |λi| ≤ αn‖z‖ becslés adódik (i =1, . . . , d). Tehát ha egy korlátos halmaz rácspontjait nézzük, akkor az el®állításukban szerepl®λi együtthatók abszolút értékei egy közös korlát alatt vannak, tehát véges sok λ jöhet szóba,azaz véges sok rácspont van a halmazban.

A másik irányhoz tekitsük Rn egy diszkrét L részcsoportját. Legyen g1, . . . , gd ∈ L az L-ttartalmazó legsz¶kebb altér egy bázisa, és legyen

X = {x ∈ Rn : x =d∑i=1

λigi, 0 ≤ λi ≤ 1(i = 1, . . . , d)}.

20

Page 22: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Az X halmaz korlátos, tehát az X ∩ L halmaz véges. Válasszuk meg g1, . . . , gd-t úgy, hogyaz egész együtthatós kombinációikként el®álló L-beli pontok halmaza tartalmazásra nézvemaximális.

4.2 állítás. X ∩ L = {0}.

Bizonyítás. Indirekt tegyük fel, hogy X ∩ L tartalmaz nemnulla vektort, és válasszuk aztaz x∗ =

∑di=1 λigi ∈ X ∩ L nemnulla vektort, aminek az el®állításában λ lexikogra�kusan

minimális (ilyen van, mert a diszkrétség miatt X ∩ L véges). Legyen λi a legkisebb index¶pozitív együttható. Vegyük azt a k számot, amire (k − 1)λi < 1, de kλi ≥ 1, és tekintsük a

z = (kλi − 1)gi +

d∑j=i+1

(kλj − bkλjc)gj

rácsvektort. Ennek az együtthatóvektora lexikogra�kusan kisebb λ-nál kλi − 1 < λi miatt,tehát z csak a nullvektor lehet. Ez azt jelenti, hogy

gi = kx∗ −d∑

j=i+1

bkλjc)gj ,

azaz ha gi-t lecseréljük x∗-ra a bázisban, akkor szigorúan nagyobb halmaz áll el® egész együt-thatós kombinációként, ellentmondásban g1, . . . , gd választásával. 2

Ha X ∩ L = {0}, akkor L = L(g1, . . . , gd), tehát L rács. 2

4.3 tétel. Legyen B ∈ Rn×d egy L rács bázisa.a) Ha U ∈ Zd×d unimoduláris, akkor B′ = BU is bázisa L-nek.b) Ha B és B′ bázisa L-nek, akkor létezik U unimoduláris mátrix amire B′ = BU .c) Ha B és B′ bázisa L-nek, és n = d, akkor | det(B)| = |det(B′)|.

Bizonyítás. Legyen B egy L rács bázisa, és legyen B′ az L-t tartalmazó legsz¶kebb altéregy bázisa. Ekkor van egy egyértelm¶ U invertálható mátrix, amire B = B′U . Világos,hogy B′ pontosan akkor bázisa L-nek, ha mind U , mind U−1 egész mátrix, hiszen pontosanekkor lesznek egész együtthatók mind B oszlopainak el®állításában a B′ bázisban, mind B′

oszlopainak el®állításában a B bázisban. Ez pedig azzal ekvivalens, hogy U unimoduláris. Adeterminánsra vonatkozó állítás következik abból, hogy |det(U)| = 1. 2

A tétel értelmében de�niálhatjuk a det(L) = |det(B)| (B bázisa L-nek) értéket. Ez arács-parallelepipedon térfogata.

4.1.1 Kitér®: ILP feladat alternatív formulációja

Tudjuk, hogy ha A ∈ Zm×n egy m rangú mátrix, akkor létezik U unimoduláris mátrix, hogyAU = [B, 0], ahol B egy reguláris alsó-háromszögmátrix. Ezt nevezzük az A mátrix egésznormál formájának.

4.4 tétel. Legyen A ∈ Zm×n egy m rangú mátrix és AU = [B, 0] az egész normál formája.Ekkora) {x ∈ Zn : Ax = b} pontosan akkor nemüres, ha B−1b ∈ Zm.b) Ha {x ∈ Zn : Ax = b} nemüres, akkor minden eleme felírható x = U1B

−1b + U2z (z ∈Zn−m) alakban, ahol U = [U1, U2].c) L = {x ∈ Zn : Ax = 0} rács, és U2 oszlopvektorai bázist alkotnak.

21

Page 23: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Ennek a tételnek a segítségével egy max{cx : Ax = b, x ∈ Zn+} feladatot más lineárisrendszerekkel is leírhatunk. Feltesszük hogy A m rangú egész mátrix, b ∈ Zm és c ∈ Zn.Legyen F = {x ∈ Zn+ : Ax = b}, és legyen az A mátrix egész normál formája AU = [B, 0].Ha B−1b nem egész, akkor nincs megoldása a feladatnak, tehát tegyük fel hogy egész. Ekkor∃x0 ∈ Zn : Ax0 = b, és így

x ∈ F ⇔ ∃y ∈ Zn : −x0 ≤ y,Ay = 0, x = x0 + y.

Legyen L = {y ∈ Zn : Ay = 0}. Ha D ennek a rácsnak egy bázisa, akkor a feladatunkfelírható

max{cDz : Dz ≥ −x0, z ∈ Zn−m}

alakban. Különböz® bázisok (amiket különböz® unimoduláris mátrixokkal kaphatunk) külön-böz® leírásokat adnak.

4.1.2 Redukált bázisok

Adott b1, . . . , bd ∈ Qn lineárisan független vektorhalmazra jelölje b∗1, . . . , b∗d a Gram-Schmidt

ortogonalizációt, azaz

b∗i = bi −i−1∑j=1

µijb∗j ,

ahol

µij =bib∗j

‖b∗j‖2.

Ennek megvannak a következ® jó tulajdonságai:

• 〈b1, . . . , bi〉 = 〈b∗1, . . . , b∗i 〉 (i = 1, . . . , d) (ahol 〈x1, . . . , xk〉 az x1, . . . , xk vektorok általgenerált altért jelöli),

• b∗1, . . . , b∗d páronként mer®legesek,

• ‖b∗j‖ ≤ ‖bj‖ (j = 1, . . . , d)

• Ha d = n, akkor det(L(b1, . . . , bn)) =∏nj=1 ‖b∗j‖.

Ha egy L = L(b1, . . . , bn) rácsnak b∗1, . . . , b∗n is bázisa, akkor könnyen látható, hogy egy

x =∑n

j=1 λjb∗j vektorhoz a legközelebbi rácspont

∑nj=1bλjeb∗j , ahol bae az a-hoz legközelebbi

egész számot jelöli.Általános esetben a legközelebbi rácsvektor probléma NP-nehéz, de ha találunk egy

nagyjából mer®leges bázist, akkor valamennyire közelíteni tudjuk. Ez motiválja a redukáltbázis fogalmának bevezetését.De�níció. Legyen L = L(b1, . . . , bn), és legyen b∗1, . . . , b

∗n a Gram-Schmidt ortogonalizáció.

A b1, . . . , bn bázis redukált, haa) |µij | ≤ 1

2 minden 1 ≤ j < i ≤ n-re,b) ‖b∗i+1 + µi+1,ib

∗i ‖2 ≥ 3

4‖b∗i ‖2 minden i ∈ {1, . . . , n− 1}-re.

4.5 tétel. Redukált bázis esetén igaz, hogya) ‖b∗i+1‖2 ≥ 1

2‖b∗i ‖2 (i = 1, . . . , n− 1)

b) ‖b1‖ ≤ 2(n−1)/4 det(L)1/n

c)∏ni=1 ‖bi‖ ≤ 2n(n−1)/4 det(L)

22

Page 24: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Bizonyítás. a) A redukált bázis de�nícióját használva

3

4‖b∗i ‖2 ≤ ‖b∗i+1 + µi+1,ib

∗i ‖2 = ‖b∗i+1‖2 + ‖µi+1,ib

∗i ‖2 ≤ ‖b∗i+1‖2 +

1

4‖b∗i ‖2,

tehát ‖b∗i+1‖2 ≥ 12‖b∗i ‖2.

b) Az a) tulajdonságból következik, hogy

‖b∗j‖2 ≥(

1

2

)j−1

‖b∗1‖2 =

(1

2

)j−1

‖b1‖2 (j = 1, . . . , n).

Ebb®l

det(L)2 =n∏j=1

‖b∗j‖2 ≥(

1

2

)n(n−1)/2

‖b1‖2n.

c) A redukált bázis tulajdonságait használva

‖bi‖2 = ‖b∗i ‖2 +i−1∑j=1

µ2ij‖b∗j‖2 ≤ ‖b∗i ‖2 +

1

4

i−1∑j=1

‖b∗j‖2

≤ ‖b∗i ‖2 +1

4

i−1∑j=1

2i−j‖b∗i ‖2 = ‖b∗i ‖2(1 +1

4(2i − 2)) ≤ 2i−1‖b∗i ‖2

tehátn∏i=1

‖bi‖2 ≤ 2n(n−1)/2n∏i=1

‖b∗i ‖2 = 2n(n−1)/2 det(L)2.

2

4.1.3 Redukált bázis keresése

Legyen b1, . . . , bn egy rács bázisa. El®ször egy olyan algoritmust adunk, ami kiszámol egy újbázist, aminek az ortogonalizációja ugyanaz, és µij ≤ 1

2 minden 1 ≤ j < i ≤ n-re.

Együttható-csökkent® algoritmus

For i = 2, . . . , nFor j = i− 1, . . . , 1

Ha |µij | > 12 : bi := bi − bµijebj ;

Számoljuk újra a Gram-Schmidt ortogonalizáció együtthatóit.Return b1, . . . , bn

4.6 állítás. A kapott bázisnál |µij | ≤ 12 (1 ≤ j < i ≤ n).

Bizonyítás. Tegyük fel hogy l ∈ {2, . . . , n} és k ∈ {1, . . . , l − 1} indexeknél tartunk, ésµlk >

12 , de µlj ≤

12 (j = k + 1, . . . , l − 1).

Legyen q1, . . . , qn az új bázis, és µ′ij az új együtthatók. Ekkor

• i < l elsetén qi = bi, tehát q∗i = b∗i és j < i < l-re µ′ij = µij .

• i = l, j = k + 1, . . . , l − 1-re µ′lj = µlj , mert bk mer®leges b∗j -ra, és így bl − bµlkebk-nakugyanaz a vetülete mint bl-nek.

23

Page 25: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

• i = l, j = k-ra:

µ′lk =qlq∗k

‖q∗k‖=

(bl − bµlkebk)b∗k‖b∗k‖2

= µlk − bµlke

és ezért |µ′lk| ≤12 .

A fentiekb®l látszik, hogy µlk-t az algoritmus további részében már nem módosítjuk. 2

4.7 állítás. Az algoritmus során a Gram-Schmidt ortogonalizáció nem változik.

Bizonyítás. Már láttuk, hogy i < l esetén q∗i = b∗i , i > l-re pedig qi = bi, úgyhogy elégi = l-re bizonyítani.

q∗l = ql −l−1∑j=1

µ′ljq∗j = bl − bµlkebk −

l−1∑j=1

µ′ljb∗j ,

tehát q∗l és b∗l különbsége 〈b∗1, . . . , b∗l−1〉-beli, de mindketten mer®legesek erre az altérre, tehátegyenl®ek. 2

Ezt az algoritmust szubrutinként használja a bázis redukció algoritmus. Ez az úgynevezettLLL-algoritmus (Lenstra-Lenstra-Lovász).

Bázis redukciós algoritmus

Input: b1, . . . , bn ∈ Zn bázisOutput: L(b1, . . . , bn) redukált bázisa

• Kiszámítjuk a Gram-Schmidt ortogonalizációt

• Alkalmazzuk az együttható-csökkent® algoritmust

• Ha van olyan i, hogy ‖b∗i+1 + µi+1,ib∗i ‖2 < 3

4‖b∗i ‖2, akkor a legkisebb ilyen i-re

bi-t és bi+1-et felcseréljük; vissza az els® lépésre.

• A végén kapott bázis redukált bázis.

Az algoritmus helyességéhez csak azt kell belátni, hogy polinom id®ben végetér. Ezt nembizonyítjuk precízen, csak a bizonyítás lényegét ismertetjük. Ez a lényeg abban áll, hogy az

F (b1, . . . , bn) =n∏i=1

i∏j=1

‖b∗j‖2

mennyiségre a következ®k teljesülnek az algoritmus során:

• Mindig egész szám (ez abból látszik, hogy∏ij=1 ‖b∗j‖2 felírható egy egész mátrix detem-

inánsaként:∏ij=1 ‖b∗j‖2 = det(BT

i Bi), ahol Bi a bj (j = 1, . . . , i) oszlopvektorokból állómátrix)

• Az együttható-csökkentésnél nem változik

• bi és bi+1 felcserélésekor legalább 34 -ére csökken.

A harmadik állításhoz tekintsük a felcserélési lépést, legyen b1, . . . , bn az eredeti bázis, ésq1, . . . , qn az új bázis. Ekkor i < k és i > k + 1 esetén q∗i = b∗i . Azt is tudjuk, hogy∏nj=1 ‖q∗j ‖ =

∏nj=1 ‖b∗j‖ hisz ugyanahhoz a rácshoz tartoznak; tehát

‖q∗k‖‖q∗k+1‖ = ‖b∗k‖‖b∗k+1‖.

24

Page 26: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Másrészt

q∗k = bk+1 −k−1∑j=1

µ′kjb∗j = bk+1 −

k−1∑j=1

µk+1,jb∗j = b∗k+1 + µk+1,kb

∗k,

tehát

‖q∗k‖2 = ‖b∗k+1 + µk+1,kb∗k‖2 <

3

4‖b∗k‖2.

4.1.4 Legközelebbi vektor közelítése

A legközelebbi vektor problémánál az a feladat, hogy egy rácsban találjuk meg a legközelebbielemet egy adott x vektorhoz. Ez NP-nehéz, úgyhogy egy közelít® algoritmust ismertetünk,ami legfeljebb

√2n − 1-szer olyan messze lév® rácsvektort ad, mint az optimális.

Mivel egy rácshoz tudunk polinom id®ben redukált bázist találni, feltesszük, hogy a rácseleve egy redukált bázissal van megadva.

Legközelebbi vektor közelít® algoritmus

Input: b1, . . . , bn ∈ Zn redukált bázis, x ∈ Qn

Output: b ∈ L, amire

‖b− x‖2 ≤ (2n − 1) min{‖q − x‖2 : q ∈ L},

b− x =

n∑i=1

λib∗i ahol |λi| ≤

1

2.

• Legyen xn = x.

• For i = n, . . . , 1

1) σij együtthatók kiszámolása, amikre xi =∑i

j=1 σjib∗j . (Ez értelmes, mert

xi mindig benne lesz a 〈b∗1, . . . , b∗i 〉 altérben)2) λi = bσiie − σii3) xi−1 = xi − bσiiebi + λib

∗i (így xi−1 ∈ 〈b∗1, . . . , b∗i−1〉)

• Return b =∑n

i=1bσiiebi = x+∑n

i=1 λib∗i .

Az algoritmus végén x0 = 0, tehát tényleg b = x +∑n

i=1 λib∗i , és |λi| ≤ 1

2 minden i-re.Kés®bb fontos lesz, hogy itt még nem használtuk, hogy a bázis redukált.

4.8 állítás. ‖b− x‖2 ≤ (2n − 1) min{‖q − x‖2 : q ∈ L}.

Bizonyítás. Legyen b az x-hez legközelebbi rácspont, legyen b − x =∑n

i=1 σib∗i , valamint

legyen b− b =∑n

i=1 αibi ahol αi ∈ Z (hiszen b− b rácsvektor).Ha k a legnagyobb index, amire σk 6= λk, akkor i > k-ra αi = 0, és λk − σk = αk ∈ Z. Így

|σk| ≥ |αk| − |λk| ≥ 12 . Ebb®l a következ® becsléseket kapjuk:

‖b− x‖2 ≥ 1

4‖b∗k‖2 +

n∑i=k+1

λ2i ‖b∗i ‖2,

‖b− x‖2 ≤ 1

4

k∑i=1

‖b∗i ‖2 +

n∑i=k+1

λ2i ‖b∗i ‖2

Innen az állítás kijön azzal, hogy a redukált bázisnál 1 ≤ i ≤ k esetén ‖b∗i ‖2 ≤ 2k−i‖b∗k‖2. 2

25

Page 27: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

4.2 Polinomiális algoritmus �x dimenziós egészérték¶ pro-

gramozásra

A �x dimenziós egészérték¶ programozási algoritmus két összetev®b®l áll. Az egyik a leg-közelebbi vektor közelít® algoritmus, ahol ugyan a közelítés faktora a dimenzióban exponen-ciális, azonban ez �x dimenzióban nem okoz gondot. A másik összetev® egy poliéderbe beírtmaximális térfogatú ellipszoidot keres® algoritmus. Ezt nem ismertetjük részletesen, csak ki-mondjuk a tételt a létezésér®l. A bizonyítás történhet ellipszoid módszerrel, vagy bels®pontosalgoritmussal.

Egy n-dimenziós ellipszoid egy D ∈ Rn×n nemszinguláris mátrix és egy d ∈ Rn vektorsegítségével adható meg:

E = E(D, d) =

{x ∈ Rn : (x− d)TD−2(x− d) ≤ 1

(n+ 1)2

}.

Az ellipszoid térfogata | det(D)|-vel arányos. Az alábbi tételt bizonyítás nélkül használjuk.

4.9 tétel. Legyen P = {x ∈ Rn : Ax ≤ b} egy korlátos teljes dimenziós poliéder, ahol A egészmátrix és b egész vektor. Ekkor polinom id®ben megtalálható a P -be beírt maximális térfogatúE ellipszoid. Erre az ellipszoidra az is teljesül, hogy (n+ 1)E ⊇ P .

A továbbiakban feltesszük, hogy a P = {x ∈ Rn : Ax ≤ b} poliéder teljes dimenziós.A 4.9. Tételt felhasználva a megengedettségi feladatra adunk algoritmust, azaz annak eldön-tésére, hogy van-e P -nek egész pontja. Megjegyezzük, hogy ennek segítségével az optimalizálásis megoldható, bináris kereséssel az optimális célfüggvény-értékre.

Az algoritmus f® része a dimenzió csökkentése: A poliéderben vagy találunk egy egészpontot, vagy megadunk konstans darab alacsonyabb dimenziós poliédert, amik közül pontosanakkor tartalmaz valamelyik egész pontot, ha az eredeti poliéder tartalmazott.

Dimenzió-csökkent® algoritmus

Input: A ∈ Zm×n, b ∈ Zm, P = {x ∈ Rn : Ax ≤ b} teljes dimenziós és korlátosOutput: z ∈ P ∩ Zn, vagy legfeljebb f(n) darab (n− 1) dimenziós poliéder: P -nekpontosan akkor van egész pontja ha ezek valamelyikének van.

• Kiszámoljuk a P -be írható maximális térfogatú ellipszoidot: E(D, d).

• Legyen P ′ = {x ∈ Rn : ADx ≤ b}, és legyen p = D−1d.

• Legyen L = L(D−11 , . . . , D−1

n ), ahol D−1j a D−1 mátrix j-edik oszlopa. Szá-

moljuk ki a bázis-redukciós algoritmussal L egy redukált bázisát: b1, . . . , bn.Számozzuk át a bi vektorokat hossz szerint növekv® sorrendbe: q1, . . . , qn. Szá-moljuk ki a Gram-Schmidt ortogonalizációt.

• A legközelebbi vektor közelít® algoritmussal számoljunk ki egy p-hez közelít®enlegközelebbi rácsvektort: f ∈ L. Ha f ∈ P ′, kész vagyunk, hisz Df ∈ P ∩ Zn.

• Ha f /∈ P ′: Legyen c = q∗n/‖q∗n‖2.

• Minden k ∈ K = {bcp− ‖c‖c, . . . , dcp+ ‖c‖e} egészre legyen

Pk = {z ∈ Rn−1 : ADQ(z, k) ≤ b},

ahol Q a q1, . . . , qn oszlopok által alkotott mátrix.

• Return Pk (k ∈ K).

26

Page 28: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

4.10 állítás.

max{cx : x ∈ P ′ ∩ L} −min{cx : x ∈ P ′ ∩ L} < (n+ 1)√n · 2

n(n−1)4 .

Bizonyítás. Jegyezzük meg, hogy mikor megváltoztatjuk a redukált bázis sorrendjét, akkormegsz¶nik redukált bázis lenni.

Legyen f − p =∑n

i=1 λiq∗i (itt |λi| ≤ 0.5, mivel ez akkor is igaz a legközelebbi vektor

közelít® algoritmusnál, ha nem redukált bázisunk van). Jelölje B(p, r) a p körüli r sugarúgömböt. Ekkor

B(p,1

n+ 1) ⊆ P ′ ⊆ B(p, 1).

Mivel f /∈ P ′, így ‖f − p‖ > 1n+1 , tehát

1

n+ 1< ‖f − p‖ ≤

√√√√1

4

n∑i=1

‖q∗i ‖2 ≤1

2

√n‖qn‖,

tehát1

‖qn‖<

1

2(n+ 1)

√n.

A redukált bázisokról bizonyítottak alapján

n∏i=1

‖qi‖ =n∏i=1

‖bi‖ ≤ 2n(n−1)

4 det(L) = 2n(n−1)

4

n∏i=1

‖q∗i ‖ ≤ 2n(n−1)

4 ‖q∗n‖n−1∏i=1

‖qi‖,

tehát2−

n(n−1)4 ‖qn‖ ≤ ‖q∗n‖ ≤ ‖qn‖.

Most már készen állunk az állítás bizonyítására:

max{cx : x ∈ P ′ ∩ L} −min{cx : x ∈ P ′ ∩ L}≤ max{cx : x ∈ B(p, 1)} −min{cx : x ∈ B(p, 1)}

≤ cT(p+

c

‖c‖

)− cT

(p− c

‖c‖

)= 2‖c‖

=2

‖q∗n‖≤ 2 · 2

n(n−1)4

‖qn‖≤ (n+ 1)

√n · 2

n(n−1)4 .

2

4.11 állítás. P -nek pontosan akkor van egész pontja ha a Pk (k ∈ K) poliéderek valame-lyikének van.

Bizonyítás. Világos, hogy minden x ∈ P ′ ∩ L-re x = Q(z, k) valamilyen z ∈ Zn−1-re ésk ∈ Z-re. Mivel ‖cqn‖ = 1 és i < n esetén cqi = 0, cx = k ∈ Z. Az el®z® állítás alapjáncx ∈ [cp− ‖c‖, cp+ ‖c‖], tehát cx = k ∈ K. 2

4.12 tétel. Fix n-re van polinomiális algoritmus, ami eldönti, hogy P ∩Zn üres-e, és ha nem,talál egy ilyen vektort.

27

Page 29: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Bizonyítás. Hogy rekurzívan használhassuk a Dimenzió-csökkent® algoritmust, azt kellmegmutatnunk, hogy a Pk = {z ∈ Rn−1 : ADQ(z, k) ≤ b} poliéderek is teljesítik afeltételeket. Ehhez az kell, hogy ADQ egész mátrix legyen. Tudjuk, hogy D−1 és Qugyanannak a L rácsnak a bázisa, így létezik U unimoduláris mátrix, hogy D−1U = Q.Így ADQ = ADD−1U = AU ∈ Zm×n. 2

Megjegyzzés. Kannan megmutatta, hogy olyan dimenzió-csökkent® algoritmus is adható,ahol csak O(n

52 ) darab alacsonyabb dimenziós poliéderre bontjuk a feladatot. Barvinok bebi-

zonyította, hogy �x dimenzióban a következ® feladat is polinomiálisan megoldható: adott Ppoliéderre számoljuk meg, hogy hány egész pontja van.

4.3 Racionális számok egyidej¶ közelítése kis nevez®j¶

törtekkel

4.13 tétel. Legyenek α1, . . . , αn racionális számok, és 0 < ε < 1. Ekkor léteznek p1, . . . , pnés q egészek, amikre

1 ≤ q ≤ ε−n

és|αiq − pi| ≤ ε (i = 1, . . . n).

Bizonyítás. Legyen a = (α1, . . . , αn, εn+1), és legyen L = L(e1, . . . , en, a). Ekkor det(L) =

εn+1.A Minkowski konvex test tétel alapján létezik b rácsvektor, amire ‖b‖∞ ≤ ε. A b rácsvektor

felírható b = p1e1 +p2e2 + · · ·+pnen+qa alakban, ahol pi (i = 1, . . . , n) és q egészek, és q > 0mert ε < 1.

Ekkor egyrészt bi = pi − qαi, tehát |pi − qαi| ≤ ε (i = 1, . . . , n), másrészt bn+1 = εn+1q,tehát q ≤ ε−n. 2

4.14 tétel. Legyenek α1, . . . , αn racionális számok, és 0 < ε < 1. Ekkor van polinomiálisalgoritmus, ami kiszámol p1, . . . , pn és q egészeket, amikre

1 ≤ q ≤ 2n(n+1)

4 ε−n

és|αiq − pi| ≤ ε (i = 1, . . . n).

Bizonyítás. Legyen a = (α1, . . . , αn, 2−n(n+1)

4 εn+1), és legyen L = L(e1, . . . , en, a). Ekkor

det(L) = 2−n(n+1)

4 εn+1.Számoljuk ki az L rács b1, . . . , bn+1 redukált bázisát, és legyen b = b1. Ekkor ‖b‖ ≤

2n4 det(L)

1n+1 = ε. A b rácsvektor felírható b = p1e1 + p2e2 + · · ·+ pnen + qa alakban, ahol pi

(i = 1, . . . , n) és q egészek, és q > 0 mert ε < 1.Ekkor egyrészt bi = pi − qαi, tehát |pi − qαi| ≤ ε (i = 1, . . . , n), másrészt bn+1 =

2−n(n+1)

4 εn+1q, tehát q ≤ 2n(n+1)

4 ε−n. 2

28

Page 30: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 5

Gomory-Chvátal-vágások

A lineáris programozás egyik alaperedménye annak meghatározása, hogy egy tetsz®leges,megoldható Ax ≤ b egyenl®tlenség-rendszer megoldásai teljesítik-e az adott wx ≤ t egyen-l®tlenséget. A választ a Farkas-lemma (vagy Farkas-tétel) adja meg, amely szerint ez pontosanakkor teljesül, ha létezik egy megfelel® méret¶, nemnegatív y vektor, amelyre yA = w, yb ≤ t.Ebben a fejezetben azt a kérdést vizsgáljuk, hogy az Ax ≤ b egyenl®tlenség-rendszer egészmegoldásai mikor teljesítenek egy adott wx ≤ t egyenl®tlenséget.

5.1 Gomory-Chvátal-levezetések

5.1 de�níció. A wx ≤ t vágást a P = {x : Ax ≤ b} poliéderre vonatkozóan érvényesneknevezzük, ha az összes P -beli egész pont teljesíti.

Az Ax ≤ b egyenl®tlenség-rendszer által meghatározott P poliéder (els®fajú) Gomory-Chvátal-vágásának (röviden GC-vágásának) nevezzük a cx ≤ bdc vágást, amennyiben c egész,és létezik az y nemnegatív vektor, amelyre yA = c, yb = d.

Könnyen látható, hogy a GC-vágások érvényes vágások a poliéder egész pontjaira vonatko-zóan. Ám ennek a fordítottja még nem igaz, viszont az is világos, hogy a GC-vágásokkal ésaz eredeti egyenl®tlenség-rendszer vágásaival újabb GC-vágásokat generálva szintén érvényesvágásokat kapunk. (A vágás elnevezés onnan származik, hogy a tekintett egyenl®tlenségeketesetleg nem teljesíti az eredeti poliéder minden pontja, így azokat a újonnan tekintett egyen-l®tlenséggel levágjuk. De a vágás kifejezést az egyenl®tlenség szinonimájaként használjuk.)

Azt mondjuk, hogy a wx ≤ t vágásnak létezik Gomory-Chvátal-levezetése (röviden GC-levezetése), ha az eredeti egyeln®tlenség-rendszerhez hozzávett GC-vágásokból el®állított GC-vágásokkal, és azoknak a rendszerhez való hozzávételének az ismételgetésével el®áll GC-vágásként. Formálisan a de�níció a következ®:

A wx ≤ t vágásnak a P = {x : aix ≤ bi, i = 1, 2, . . .m} poliédert de�niáló rendszerb®llétezik GC-levezetése, ha léteznek az

am+kx ≤ bm+k (k = 1, 2, . . .M)

vágások azykj (1 ≤ k ≤M, 1 ≤ j ≤ m+ k − 1)

nemnegatív számokkal együtt, amelyekre minden k = 1, 2, . . .M értékre az am+kx ≤ bm+k

vágás azaix ≤ bi (i = 1, 2, . . .m+ k − 1)

rendszer GC-vágása, és az utolsó egyenl®tlenség a wx ≤ t.

29

Page 31: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Egy ilyen levezetés természetszer¶leg azt is bizonyítja, hogy a wx ≤ t vágás érvényes vágás,azaz a P minden egész pontja teljesíti.

Az alábbi tétel Chvátaltól származik 1973-ból. (Bár Gomory 1960-as eredményeib®l islevezethet®.)

5.2 tétel. Legyen P = {x : Ax ≤ b} egy racionális korlátos poliéder, és wx ≤ t egyérvényes vágás, melyre w egész vektor. Ekkor wx ≤ t′-hez létezik egy Gomory-Chvátal-levezetés valamely t′ ≤ t-re.

A továbbiakban Schrijver 1980-ból származó bizonyítása szerint haladunk. A fenti tételbizonyításához szükségünk lesz a következ® speciális esetre.

5.3 tétel. Legyen P = {x : Ax ≤ b} egy korlátos racionális poliéder, amely nem tartalmazegész pontot. Ekkor létezik a 0x ≤ −1 vágásnak Gomory-Chvátal-levezetése.

Bár nem teljesen pontos a 0x ≤ −1 egyenl®tlenséget vágásnak nevezni, mi mégis ezt tesszük.Vegyük észre, hogy az el®z® tétel a Farkas-lemma egészérték¶ megfelel®je, különösképpen, haa Farkas-lemma alábbi alakját tekintjük.

5.4 lemma (Farkas-lemma). Az alábbi két rendszer közül pontosan az egyik oldható meg.

• Ax ≤ b

• yA = 0, y ≥ 0, yb = −1.

A fenti tételekre a poliéder dimenziójára vonatkozó teljes indukciós bizonyítást adunk,amelyben nagy hasznunkra lesz a következ® lemma.

5.5 lemma. Legyen F a P korlátos racionális poliéder egy oldala. Ha cx ≤ bdc az F egyGC-vágása, akkor létezik a P -nek egy c′x ≤ bd′c GC-vágása, melyre

F ∩ {x : c′x ≤ bd′c} = F ∩ {x : cx ≤ bdc}.

Bizonyítás. Legyen P = {x : A1x ≤ b1, A2x ≤ b2}, ahol Ai és bi (i = 1, 2) egész kompo-nenseket tartalmaz, és F = {x : A1x ≤ b1, A2x = b2}. Mivel cx ≤ bdc GC-vágás, létezik y1 ésy2, melyekre

y1A1 + y2A2 = c,

y1b1 + y2b2 = d.

Az y2-nek lehetnek negatív koordinátái is mivel egyenl®ségfeltételekhez tartozik (Egy ax = βegyenl®séget az ax ≤ β, (−a)x ≤ −β egyenl®tlenségekkel helyettesítve a két nemnegatív yegyüttható különbsége nem feltétlenül nemnegatív.).

Legyen c′ és d′ a következ®

c′ := y1A1 + (y2 − by2c)A2 = c− by2cA2,

d′ := y1b1 + (y2 − by2c)b2 = d− by2cb2.

Ekkor c′ egész, és c′x ≤ bd′c a P egy GC-vágása (mivel y2 − by2c nemnegatív). Továbbá,mivel bdc = bd′c+ by2cb2,

F ∩ {x : c′x ≤ bd′c} =

= F ∩ {x : c′x ≤ bd′c, by2cA2x = by2cb2} =

= F ∩ {x : cx ≤ bdc}.

30

Page 32: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

2

A 5.3 tétel bizonyítása. A P poliéder dimenziójára vonatkozó indukciót használunk.Ha P nulladimenziós, azaz egy pontból áll (amely tehát nem egész), akkor az állítás a du-alitástétel egyszer¶ következménye. Tegyük fel, hogy P dimenziója legalább egy, és mindennála alacsonyabb dimenziós korlátos poliéderre az állítás igaz.

Legyen w egész vektor, és wx ≤ t egy olyan vágás, amelyre P ∩{x : wx = t} a P egy valódioldala. Jelölje P ′ a wx ≤ btc GC-vágással kapott poliédert, azaz P ′ := P ∩ {x : wx ≤ btc}.

Ha P ′ = ∅, akkor a Farkas lemma (5.4 lemma) szerint a 0x ≤ −1 azonnal megkapható (GC-levezethet®) az Ax ≤ b, wx ≤ btc rendszerb®l. Tegyük fel tehát, hogy P ′ 6= ∅, és F := {x ∈P ′ : wx = btc}. A wx ≤ t vágás választása miatt tudjuk, hogy F dimenziója kisebb, mint Pdimenziója. Az indukciós feltevés szerint tehát 0x ≤ −1 GC-levezethet® az Ax ≤ b, wx = btcrendszerb®l. A 5.5 lemma szerint ekkor az Ax ≤ b, wx ≤ btc rendszerb®l valamely cx ≤ dvágásnak létezik GC-levezetése, amelyre F ∩ {x : cx ≤ bd} = ∅. Következésképpen azAx ≤ b, cx ≤ bdc rendszernek a wx ≤ t− 1 GC-vágása.

Ezután a P = P ∩{x : wx ≤ t−1} poliéderre alkalmazva a fentieket, a P korlátossága miattszeleteléssel egy olyan wx ≤ t vágás GC-levezetését kapjuk, amelyre P ∩ {x : wx ≤ t} = ∅.Ekkor a Farkas-lemma segítségével a 0x ≤ −1 egy azonnali levezetését kapjuk. 2

A 5.2 tétel bizonyítása. Tegyük fel el®ször, hogy a P nem tartalmaz egész pontot.Ekkor a 5.3 tétel szerint a 0x ≤ −1 vágásnak létezik GC-levezetése. Mivel P korlátos, azl := max{wx : x ∈ P} véges. A dualitástétel szerint tehát a wx ≤ blc GC-vágás. Ekkor ehheza 0x ≤ −1 alkalmas pozitív számmal való felszorzottját hozzáadva a wx ≤ t′ GC-levezetésétkapjuk valamely t′ ≤ t értékre.

Most tegyük fel, hogy P tartalmaz egész pontot. Legyen ismét l := max{wx : x ∈ P}, ésP ′ := P∩{x : wx ≤ blc}. Ha blc ≤ t, akkor készen vagyunk, ha pedig nem, akkor mivel wx ≤ térvényes vágás, ezért az F := {x ∈ P ′ : wx = blc} valódi oldal nem tartalmaz egész pontot.A 5.3 tétel szerint ekkor a 0x ≤ −1 vágásnak létezik GC-levezetése az Ax ≤ b, wx = blcrendszerb®l. A 5.5 lemma szerint ekkor az Ax ≤ b, wx ≤ l rendszerb®l valamely cx ≤ dvágásnak létezik GC-levezetése, amelyre P ′ ∩ {x : cx ≤ bdc, wx = l} = ∅. Következésképpenaz Ax ≤ b, cx ≤ bdc rendszernek a wx ≤ l − 1 GC-vágása.

Ennek ismételgetésével a P korlátossága miatt valamely wx ≤ t′ vágás GC-levezetésétkapjuk, amelyre t′ ≤ t. 2

5.2 Chvátal-rang

Jelölje P ′ azon P -beli pontok összességét, amelyek minden GC-vágást teljesítenek. Mivelvégtelen sok GC-vágás van, nagyon érdekes az alábbi, Schrijvert®l származó tétel.

5.6 tétel. Ha P racionális poliéder, akkor P ′ is racionális poliéder.

Bizonyítás. Belátjuk, hogy P ′-t az Ax ≤ b és azon

(yA)x ≤ bybc (5.1)

egyenl®tlenségek határozzák meg, melyekre 0 ≤ y < 1 és yA egész vektor. (Ez elég, hiszen(5.1) bal oldalán korlátos együtthatók szerepelhetnek, következésképpen véges sok egyenl®tlen-ségr®l van szó.) Most belátjuk, hogy minden GC-vágás el®áll az Ax ≤ b sorainak valamelynemnegatív lineáris kombinációjának és egy (5.1) alatti egyenl®tlenségnek az összegeként.

Legyen wx ≤ btc egy GC-vágás, amely az Ax ≤ b rendszerb®l az y nemnegatív vektorralvezethet® le. Legyen y′ := y − byc. Ekkor a w′ = y′A = w − bycA egész vektor, továbbá at′ := y′b = t− bycb törtrésze megegyezik a t törtrészével.

31

Page 33: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Ezek szerint a w′x ≤ bt′c, y′-vel megkapott (5.1)-beli GC-vágás, és az Ax ≤ b soraibóla nemnegatív byc vektorral kapott (bycA)x ≤ bycb egyenl®tlenség összegeként megkapjuk awx ≤ btb GC-vágást.

2

Jelölje P (2) (P ′)′-t, és P (i) (P (i−1))′-t. Ekkor a 5.6 tetel szerint poliéderek egy láncátkapjuk:

P =: P (0) ⊇ P (1) ⊇ P (2) ⊇ . . . ⊇ PI .

A 5.2 tételb®l következik, hogy PI minden lapja GC-levezethet®, tehát létezik olyan k, hogyPI minden lapja levezethet® k lépésben. Ez az alábbi tételt adja.

5.7 tétel. Legyen P = {x : Ax ≤ b} egy racionális korlátos poliéder, ekkor P (k) = PI valamelyk pozitív egészre.

A legkisebb ilyen k-t nevezzük a P poliéder Chvátal-rangjának. (Nemkorlátos racionálispoliéderekre való kiterjesztést lásd Schrijver [2]-ben.)

5.3 Vágások a bináris hátizsák-feladatra

A bináris hátizsák-feladat lineáris relaxációja:

P = {x ∈ Rn : 0 ≤ x ≤ 1,n∑j=1

ajxj ≤ b},

ahol aj és b pozitív egészek, és feltesszük, hogy b ≥ a1 ≥ a2 ≥ · · · ≥ an. Jelölés: [n] ={1, . . . , n}.

5.8 de�níció. Egy C ⊆ [n] halmaz függ®, ha∑

j∈C aj > b. Jelölés:

C = C ∪ {k ∈ [n] \ C : ak ≥ aj ∀j ∈ C}.

5.9 állítás. A következ® egy Gomory-Chvatal vágás:∑j∈C

xj ≤ |C| − 1.

Bizonyítás. Könny¶ látni, hogy az LP relaxáció minden megoldása teljesíti a∑

j∈C xj < |C|szigorú egyenl®tlenséget. Így létezik ε > 0, hogy az LP relaxáció minden megoldása teljesítia∑

j∈C xj ≤ |C| − ε egyenl®tlenséget. 2

Azt akarjuk megvizsgálni, hogy milyen feltételekkel lesznek ezek a vágások lapjai a PIpoliédernek. Tudjuk, hogy PI n-dimenziós poliéder, hiszen 0 és az egységvektorok bennevannak. Tehát egy ax ≤ β vágás pontosan akkor de�niál lapot, ha n darab a�n függetlenPI -beli vektor egyenl®séggel teljesíti.

Legyen C egy minimális független halmaz, és a két legkisebb elemét jelölje j1 ≤ j2.

5.10 lemma. Tegyük fel hogy a következ® két feltétel teljesül:

j ∈ C \ C ⇒ C \ {j1, j2} ∪ {j} független, (5.2)

j ∈ [n] \ C ⇒ C \ {j1} ∪ {j} független. (5.3)

Ekkor a∑

j∈C xj ≤ |C| − 1 egyenl®tlenség a PI poliéder lapját de�niálja.

Bizonyítás. A következ® vektorok a�n függetlenek a feltételek teljesülése esetén:

32

Page 34: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

• χC\{j}, j ∈ C,

• χC\{j1,j2}∪{j}, j ∈ C \ C,

• χC\{j1}∪{j}, j ∈ [n] \ C.

A feltételek szerint ezek PI -ben vannak. 2

5.4 Vágás-típusú algoritmusok

Lényegében a fentiekkel ekvivalens vágásokkal a lexikogra�kus szimplex módszer használatáraépül® egészérték¶ programozási algoritmust dolgozott ki Gomory az 1950-es években. LásdVizvári Béla jegyzetét [5] és a 9.1 fejezetet.

A gyakorlatban az érvényes vágásokat a következ®képpen használhatjuk egészérték¶ prog-ramozási feladatok megoldására. Adott a következ® feladat max{cx : Ax ≤ b, x ∈ Zn},és néhány vágás-család, amelyekr®l tudjuk, hogy érvényes vágások (például megadhatjuk ál-talánosan a feladatosztályra vonatkozó Gomory-Chvátal-levezetéseket). El®ször oldjuk mega max{cx : Ax ≤ b, x ∈ Rn} lineáris programozási relaxált feladatot. Amennyiben a kapottx∗ optimális megoldás egész, akkor megoldottuk az eredeti feladatunkat. Ha pedig nem,akkor keressünk a vágás-családjainkban egy olyan érvényes vágást, amelyet az x∗ nem telesít,azaz cx∗ > d, de cx ≤ d minden egész megoldásra igaz. Vegyük hozzá az egyenl®tlenség-rendszerünkhöz ezt a vágást, és iteráljuk az eljárást.

Ha szerencsénk van, akkor elég kitartóan alkalmazva a fenti eljárást, megoldjuk az egész-érték¶ programozási feladatot. De ha ezt nem is gy®zzük kivárni, akkor is az optimáliscélfüggvényérték egyre jobb fels® becsléséhez jutunk, amit például kiválóan tudunk használiegy korlátozás és szétválasztás módszerére épül® algoritmusban (9.2 fejezet).

5.5 Szeparáció és optimalizálás

Ebben a fejezetben röviden ismertetjük a Grötschel, Lovász, Schrijver szerz®hármastól 1986-ból származó eredményt a szeparáció és optimalizálás ekvivalenciájáról. Hacsijan 1979-benközzétette az ellipszoid-módszerként ismeretes polinomiális algoritmusát a lineáris programo-zási feladatra. Ennek a módszernek a következménye Grötschel et al. tétele, amelynek elméletijelent®sége bizonyos problémák polinomiális megoldhatóságának poliéderes eszközökkel valóbizonyítása.

Tekintsük a következ® feladatot. Adott egy G = (V,E) gráf, két kitüntetett s és t pontja,és az élein egy nemnegatív c súlyfüggvény. Keressük meg a minimális súlyú s-t-vágást, azazazt az élhalmazt, amelynek a gráfból való törlésével s és t különböz® komponensekbe kerül.

Ezen feladat lp-relaxáltja a következ®.

min∑e∈E

cexe

∑e∈K

xe ≥ 1 ∀ K ∈ K

0 ≤ xe ≤ 1 ∀ e ∈ E

ahol K az összes s-b®l t-be vezet® út halmaza. Könnyen látható, hogy a 0-1-megoldások éppenaz s-t-vágások, és az is világos Ford és Fulkerson maximális folyamokra vonatkozó tételéb®l,hogy a fenti poliéder minden csúcsa egész.

33

Page 35: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Igaz ugyan, hogy az ellipszoid-módszer polinomid®ben megoldaná a fenti feladatot, csak-hogy a gráfhoz képest a feladat mérete exponenciális, tekintve, hogy rengeteg s-b®l t-be vezet®út létezhet. Ám ha adott egy 0 ≤ x∗ ≤ 1 vektor, akkor annak ellen®rzése a feltételek nagyszámát tekintve is gyorsan megy, hogy teljesíti-e az összeset. Nevezetesen az x∗e nemnegatívélsúlyok mellett csak azt kell ellen®riznünk, hogy a legrövidebb s-b®l t-be vezet® út hosszabb-e1-nél. ha igen, akkor minden feltételt teljesít x∗, ha pedig nem akkor a kezünkben van egyfeltétel, azaz egy (legrövidebb) út, amelyhez tartozó feltételt megsérti x∗.

Ennek fényében nagyon érdekes lesz a megfelel®en értelmezett poliéderosztályokon a sze-paráció és optimalizálás ekvivalenciáját kimondó igen mély tétel, amit itt nem bizonyítunk.

Általánosan a szeparációs probléma a következ®. Amennyiben adott a P ⊆ Rn korlátosracionális poliéder és egy racionális v ∈ Rn, akkor döntsük el, hogy a v pont benne van-eP -ben, ha pedig nem, akkor adjunk meg egy racionális c ∈ Rn vektort, amelyre cx < cvteljesül a P minden x pontjára.

Az optimalizálási probléma pedig így fest. Adott a P ⊆ Rn korlátos racionális poliéder ésegy racionális c ∈ Rn (célfüggvény) vektor. Döntsük el, hogy a P poliéder üres-e, és ha nem,akkor adjunk meg egy x∗ ∈ P pontot, melyre cx ≤ cx∗ teljesül a P minden x pontjára.

A fent említett tétel szerint ezen két feladat polinomiálisan ekvivalens a megfelel®en értel-mezett feladatosztályokon. A feladatosztályok korrekt értelmezése helyett példaként megem-lítjük, hogy a gráfok teljes párosítási poliéderét tekinthetjük egy poliéder osztálynak, amintehát ekvivalens az optimalizálás és a szeparálás. Mivel ismert az Edmondstól származó min-imális súlyú teljes párosítási algoritmus, az optimalizáció polinomiális. Grötschel et al. tételeszerint tehát létezik polinomiális algoritmus a szeparációs problémára is.

Míg Edmonds algoritmusa a hatvanas évek végér®l való, az els® teljes párosítási szeparálóalgoritmust csak 1982-ben adta meg Padberg és Rao, amit általánosabb formában megtalál-hatunk a 13.6 fejezetben. Mivel ez egy igen egyszer¶ algoritmus, megtörténhetett volna, hogyel®ször ez születik meg, és csak utána az optimalizációs problémára vonatkozó polinomiálisalgoritmus, amelynek tehát a Grötschel et al. tétel szerint léteznie kell.

Ezen alfejezetben ünnepelt tételnek azonban egyel®re csak elvi jelent®sége van, algoritmikusszempontból még nem sikerült hasznot húzni bel®le. Elvi jelent®sége szerint ha sikerül egyproblémának olyan poliéderes leírását adni, amely segítségével a szeparációs feladatot polino-mid®ben meg tudjuk oldani, akkor joggal várhatjuk, hogy egy direkt kombinatorikai jelleg¶optimalizálásis algoritmus is kidolgozásra kerül. Így történt ez példának okáért az úgynevezettútpárosítási feladattal.

5.6 Lifting

A 5.5. Lemmában láttuk, hogy ha a P racionális poliéder egy F oldalára van egy G-Clevezethet® cx ≤ d vágás, akkor P -re van olyan G-C-levezethet® c′x ≤ d′ vágás, amireF ∩ {x : c′x ≤ d′} = F ∩ {x : cx ≤ d}. Az alábbiakban azt a speciális esetet nézzük,amikor P ⊆ [0, 1]n, és F = {x ∈ P : x1 = 0}. Azt vizsgáljuk, hogy egy F -re érvényes vágásP -re való felemelése mikor határozza meg PI egy lapját.

Példaként tekintsük egy G = (V,E) gráf stabil halmaz poliéderét. Legyen P = {x ∈ RV :x ≥ 0, xu + xv ≤ 1 ∀ uv ∈ E}. Ekkor PI a stabil halmazok karakterisztikus vektorainakkonvex burka, ezt nevezzük stabil halmaz poliédernek. Könny¶ látni, hogy PI teljes dimenziós.

5.11 tétel (Padberg). Legyen C ⊆ V egy klikk. A∑

v∈C xv ≤ 1 vágás érvényes, és pontosanakkor határozza meg lapját PI-nek, ha C tartalmazásra nézve maximális klikk.

Bizonyítás. Ha C nem tartalmazásra nézve maximális, akkor létezik C ′ ) C klikk. A∑v∈C′ xv ≤ 1 vágás szigorúan dominálja a

∑v∈C xv ≤ 1 vágást, tehát utóbbi nem lehet lap.

34

Page 36: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Ha C tartalmazásra nézve maximális, akkor meg tudunk adni |V | darab PI -beli a�nfüggetlen vektort, ami az egyenl®tlenséget egyenl®séggel teljesíti:

• v ∈ C-re χv,

• v /∈ C-re χ{v,w}, ahol w egy olyan C-beli csúcs, amire vw /∈ E (ilyen van, mert Cmaximális).

2

Ismert tétel, hogy PI -nek pontosan akkor nincs más lapja, ha G perfekt gráf. Tegyük felmost, hogy G-ben van egy H páratlan lyuk, azaz egy 2k + 1 elem¶ feszített kör, ahol k ≥ 2.Ekkor

∑v∈H xv ≤ k érvényes vágás. Ha V = H, akkor persze ez lapja PI -nek, hiszen van

2k+1 a�n független megoldás ami egyenl®séggel teljesíti, más esetben viszont nem feltétlenül.Például ha V = H + z, és vz ∈ E minden v ∈ H-ra, akkor nem lap (az ilyen gráfot nevezzükwheel-nek, a vz élek a küll®k). Ahhoz, hogy lapot csináljunk bel®le, meg kell vizsgálnunk, miaz a maximális α, amire

αxz +∑v∈H

xv ≤ k

érvényes vágás. Látható, hogy α = k-ra még érvényes, de nagyobb α-ra már nem, a {z}egyelem¶ stabil halmaz miatt. Így a

kxz +∑v∈H

xv ≤ k

érvényes vágás, ráadásul lapja PI -nek, mert a χz vektor is egyenl®séggel teljesíti, és af-�n független az eddigi 2k + 1 vektorral. Ezt a vágást nevezzük a

∑v∈H xv ≤ k vágás

felemeltjének.Általánosan a következ® tételek mondják ki a felemelt vágás létezését. Legyen P ⊆ [0, 1]n

racionális poliéder, P 0 = P ∩ {x : xn = 0}, és P 1 = P ∩ {x : xn = 1}.

5.12 tétel (Wolsey). Tegyük fel, hogy∑n−1

j=1 cjxj ≤ d érvényes P 0I -re, és k dimenziós oldalt

határoz meg. Tegyük fel továbbá, hogy P 1I nem üres. Ekkor az α = d−max{

∑n−1j=1 cjxj : x ∈

P 1I } értékre az

αxn +

n−1∑j=1

cjxj ≤ d

vágás érvényes PI-re, és k + 1 dimenziós oldalt határoz meg.

Bizonyítás. Az érvényességet könny¶ ellen®rizni α de�níciója alapján. A dimenziónövekedése abból adódik, hogy P 1

I -ben is van vektor ami egyenl®séggel teljesíti. 2

5.13 tétel (Wolsey). Tegyük fel, hogy∑n−1

j=1 cjxj ≤ d érvényes P 1I -re, és k dimenziós oldalt

határoz meg. Tegyük fel továbbá, hogy P 0I nem üres. Ekkor a β = −d+ max{

∑n−1j=1 cjxj : x ∈

P 0I } értékre a

βxn +

n−1∑j=1

cjxj ≤ d+ β

vágás érvényes PI-re, és k + 1 dimenziós oldalt határoz meg.

35

Page 37: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Bizonyítás. Hasonlóan az el®z®höz. 2

A fentiekb®l például következik, hogy ha egy gráfban van egy H páratlan lyuk, és P astabil halmaz poliéder, akkor a

∑v∈H xv ≤ (|H| − 1)/2 egyenl®tlenséget lépésenként egy

csúcsot hozzávéve fel tudjuk emelni PI lapjává. Megjegyzend®, hogy a kapott lap függhet acsúcsok hozzávételének sorrendjét®l.

Egy másik fontos alkalmazás, hogy a korlátozás és szétválasztás módszerénél egy részfela-datnál kapott érvényes vágást fel tudunk emelni az eredeti feladat érvényes vágásává, és aztánazt használhatjuk a többi részfeladatnál.

5.7 Feladatok

3 feladat. Mekkora a Chvátal-rangja a következ® poliédernek?

P := conv{(1/2, 1), (3/2, 3), (5/2, 1)}.

4 feladat. Legyen k egy pozitív egész szám. Mutassuk meg, hogy az alábbi poliéder Chvátal-rangja legalább k.

P := conv{(0, 0), (1, 0), (1/2, k)}.

5 feladat. Bizonyítsuk be a 5.3 tételt egypontú poliéder esetére.

6 feladat. Mekkora a törtpárosítás poliéder Chvátal-rangja?

7 feladat. Bizonyítsuk be, hogy a 5.7 tétel tetsz®leges korlátos poliéderre is kiterjeszthet®.

8 feladat. Legyen az Ax ≤ b totálisan duálisan egészérték¶ rendszer, amelyre A egész mátrix.Bizonyítsuk be, hogy P ′ = {x : Ax ≤ bbc}, ahol P ′ := {x : Ax ≤ b}.

9 feladat. Az összefügg® G = (V,E) gráfhoz de�niáljuk a következ® P poliédert, ahol x ∈ RV .

xu + xv ≤ 1 ∀ uv ∈ E (5.4)

xv ≥ 0 ∀ v ∈ V

Világos, hogy a G stabil ponthalmazai karaktarisztikus vektorainak a konvex burka (S(G))benne van a fenti poliéderben, továbbá PI = S(G). Adjuk meg a Gomory-Chvátal-levezetéséta következ® érvényes vágásoknak.

(i) Legyen C ⊆ V a G egy páratlan körének ponthalmaza.

x(C) ≤ (|C| − 1)/2.

(ii) Legyen W ⊆ V a G egy 5-kerekének ponthalmaza (5-keréknek nevezünk egy gráfot, haegy 5 hosszú körb®l áll és egy hatodik pontból, amely az össze többivel össze van kötve). Jelöljer az 5-kerék középontját (a másik öt ponttal öszekötött pontot).

2xr + x(W − r) ≤ 2.

(iii) Legyen K ⊆ V a G egy teljes részgráfjának ponthalmaza.

x(K) ≤ 1.

36

Page 38: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 6

Dinamikus programozás

A dinamikus programozás elnevezés a matematikai programozásban egy bizonyos fajta algorit-musszervezési eljárást takar. Az általános de�níciótól eltekintünk, ehelyett konkrét példákonmutatunk be néhány dinamikus programozási algoritmust, amelyekb®l minden Olvasó képetalkothat magának arról, miben is áll ezen elgondolás, és mikor is alkalmazható. Az alábbi-akban [6]-re támaszkodva bemutatunk négy-öt alapfeladatot és azok dinamikus programozásimegoldását. A dinamikus programozás nem más, mint a rekurzív megoldhatóság lehet®sége,a rekurzió maga.

6.1 Legrövidebb utak

Adott egy irányított D = (V,A) gráf, és minden irányított e élén egy ce nemnegatív költség(vagy hossz). Adott továbbá egy s kiindulási pont, és szeretnénk meghatározni s-b®l az összestöbbi pontba vezet® legrövidebb irányított utat.

Tegyük fel, hogy a p pont rajta van az s-b®l a t pontba vezet® legrövidebb úton, amelyutat jelöljünk P -vel.

6.1 meg�gyelés. A P s-b®l p-ig vezet® része egy legrövidebb s-b®l p-be vezet® út, a p-t®lt-ig vezet® rész pedig egy legrövidebb p-b®l t-be vezet® út.

Ha ez nem volna igaz, akkor egy rövidebb részúttal egy rövidebb s − t-utat kaphatnánk.(Vegyük észre, hogy leghosszabb utakra bár hosszabb élsorozatot kapnánk, de nem feltétlenülutat.) A következ® összefüggés adódik.

6.2 állítás. Jelölje d(v) az s-b®l v-be vezet® legrövidebb út hosszát. Ekkor

d(v) = minu∈V −

{d(u) + cuv}, (6.1)

ahol V − azon pontok halmazát jelöli, amelyekb®l vezet él v-be.

Ez azt jelenti, hogy ha ismerjük v-b®l az összes V −-beli pontba vezet® legrövidebb úthosszát, akkor könnyen meg tudjuk határozni a v-be vezet® legrövidebb út hosszát is.

Azonban ez a meg�gyelés közvetlenül nem ad még algoritmust, hiszen elképzelhet®, hogyd(z) kiszámításához szükségünk van d(w)-re, ugyanakkor d(w) kiszámításához pedig d(z)ismeretére volna szükség. Ámde irányított köröket nem tartalmazó, úgynevezett aciklikusgráfokra mégis kaptunk egy egyszer¶ algoritmust.

6.3 meg�gyelés. Legyen adva a D = (V,A) aciklikus irányított gráf és a V ponthalmazánakegy olyan (ún. topologikus) sorrendje, melyre minden él korábbi pontból kés®bbi pontbamutat. Ekkor ezen sorrend szerint a pontokon az (6.1) rekurzió szerint végighaladva s-b®l

37

Page 39: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

az összes többi pontba vezet® legrövidebb út meghatározható. Ezen algoritmus futási idejeO(|A|).

Vegyük észre, hogy a fenti algoritmus tetsz®leges élsúlyozás mellett is helyes eredményt ad,azaz nem kell megkövetelni az élhosszak nemnegativitását.

Tetsz®leges irányított gráfra viszont másképp kell valamiféle alkalmas sorrendet meghatá-roznunk. Ennek egy módja azon Dk(v) függvény bevezetése, ahol Dk(v) az s-b®l v-be vezet®legrövidebb legfeljebb k darab élb®l álló út hosszát jelöli. Ekkor igaz a következ®:

Dk(v) = min{Dk−1(v), minu∈V −

[Dk−1(u) + cuv]}. (6.2)

Ha a k-t 1-t®l |V | − 1-ig növeljük, akkor a Dk(v) értékeket az összes v ∈ V pontra a (6.2)rekurzió szerint kiszámolhatjuk. Ez így egy O(|V ||A|) futási idej¶ algoritmust szolgáltat, éspersze d(v) = Dn−1(v).

6.2 A hátizsákfeladat

Ebben a fejezetben a hátizsákfeladat néhány különböz® változatát oldjuk meg dinamikusprogramozási módszerrel. Amennyiben a feladatban szerepl® mennyiségek nem túl nagyok,ez a módszer nagyon hatékonynak bizonyul.

6.2.1 A 0-1 hátizsákfeladat

Tekintsük az alábbi 0-1 hátizsákfeladatot.

z := maxn∑j=1

cjxj

n∑j=1

ajxj ≤ b

x ∈ {0, 1}n

ahol az aj együtthatók és a b pozitív egész számok.Tekintsük az alábbi kisebb feladatokat, ahol a λ szám a 0, 1, . . . b értékeket veszi fel, az r

paraméter pedig az 1, 2, . . . n értéket. Jelölje Pr(λ) a következ® feladatot.

fr(λ) := max

r∑j=1

cjxj

r∑j=1

ajxj ≤ λ

x ∈ {0, 1}r

Ekkor z = fn(b) adja az eredeti feladat maximumát. Most megadunk egy rekurziót, amelyaz fr(λ) értékeket azon fs(µ) értékekb®l számolja, melyekre s ≤ r és µ < λ.

Mit mondhatunk a Pr(λ) probléma x∗ optimális megoldásáról? Nyilván vagy x∗r = 0, vagyx∗r = 1.

• Ha x∗r = 0, akkor könnyen látható, hogy fr(λ) = fr−1(λ).

38

Page 40: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

• Ha x∗r = 1, akkor fr(λ) = cr + fr−1(λ− ar).

Ezek szerint a következ® rekurziót kapjuk:

fr(λ) = max{fr−1(λ), cr + fr−1(λ− ar)}.

Világos, hogy f0(λ) = 0 minden λ ≥ 0 értékre, vagy inkább lépjünk eggyel tovább: f1(λ) =0 minden 0 ≤ λ < a1 esetén, és f1(λ) = max[c1, 0] minden λ ≥ a1 esetén. Ekkor a fentirekurzió segítségével egymás után ki tudjuk számítani az f1, f2, . . . fn értékeit minden 0-tólb-ig terjed® λ-ra.

Az összes megfelel® függvényérték kiszámítása után felmerül az a kérdés is, hogy hogyantalálhatunk meg egy optimális megoldást (amelyhez ugye fr(λ) célfüggvényérték tartozik).Vagy megtarjuk az összes fr(λ) értéket, vagy csak egy pr(λ) indikátort, amelynek az értéke 0legyen, ha fr(λ) = fr−1(λ), és 1 különben.

Ha pn(b) = 0, akkor fn(b) = fn−1(b), és x∗n = 0. A többi koordinátát pedig fn−1(b)-gyelfolytatva hasonlóképp határozhatjuk meg. Ha pn(b) = 1, akkor fn(b) = cn + fn−1(b − an),és x∗n = 1. A többi koordinátát pedig fn−1(b − an)-nel folytatva hasonlóképp határozhatjukmeg.

Az algoritmus lépésszáma O(nb), hiszen az fr(λ) értékek mindegyikének a kiszámításáhozcsak konstans sok összeadásra, kivonásra és összehasonlításra van szükség. Az optimummeghatározása ezek után hasonló nagyságrend¶ lépés megtételével történik.

Gyakorlat. A fenti algoritmus segítségével oldjuk meg a következ® feladatot!

z := max 10x1 + 7x2 + 25x3 + 24x4

2x1 + x2 + 6x3 + 5x4 ≤ 7

x ∈ {0, 1}4

6.2.2 Egészérték¶ hátizsákfeladat

Tekintsük az alábbi egészérték¶ hátizsákfeladatot.

z := max

n∑j=1

cjxj

n∑j=1

ajxj ≤ b

x ∈ Zn+ahol szokás szerint az aj együtthatók és a b pozitív egész számok.

Az el®z® alfejezet gondolatmenetét követve de�niáljuk az alábbi Pr(λ) feladatokat, ahol aλ szám a 0, 1, . . . b értékeket veszi fel, az r paraméter pedig az 1, 2, . . . n értéket.

gr(λ) := max

r∑j=1

cjxj

r∑j=1

ajxj ≤ λ

39

Page 41: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

x ∈ Zr+Hogyan kapunk rekurziós formulát? Pr(λ) optimális x∗ megoldásában az x∗r = t mellett

gr(λ) = crt+ gr−1(λ− tar). Tehát

gr(λ) = maxt=0,1,...bλ/arc

{crt+ gr−1(λ− tar)}.

Mivel b λar c = b a legrosszabb esetben, ezért az algoritmus lépésszáma O(nb2).Fontos megjegyezni, hogy a fenti elgondolás alkalmas fels® korlátokkal rendelkez® hátizsák-

feladat megoldására is. Legyen tehát

z := maxn∑j=1

cjxj

n∑j=1

ajxj ≤ b

xj ≤ dj j = 1, 2, . . . n

x ∈ Zn+ahol szokás szerint az aj együtthatók, a dj számok és a b pozitív egészek.

Ekkor a szokásos jelöléseinkkel az alábbi rekurzió egy O(nb2) lépésszámú algoritmust ha-tároz meg.

gr(λ) = maxt=0,1,...min[dr,bλ/arc]

{crt+ gr−1(λ− tar)}.

A továbbiakban azt vizsgáljuk meg, hogy tudunk-e gyorsabb algoritmust meghatározni afels® korlátokat nem tartalmazó esetben. A válasz igen, mégpedig a következ® apró módosítás-sal élve: a Pn(λ) optimális x∗ megoldását tekintve az alábbi megállapításokat tehetjük.

• Ha x∗r = 0, akkor gr(λ) = gr−1(λ).

• Ha x∗r ≥ 1, akkor gr(λ) = cr + gr(λ− ar).

Ez egy O(nb) lépésszámú algoritmust eredményez, ahol az optimális megoldások megha-tározása hasonlóan az el®z®ekhez pr(λ) indikátorok segítségével történhet.

Gyakorlat. A fenti algoritmus segítségével oldjuk meg a következ® feladatot!

z := max 7x1 + 9x2 + 2x3 + 15x4

3x1 + 4x2 + x3 + 7x4 ≤ 10

x ∈ Z4+.

Még egy rekurziót megadunk az egészérték¶ feladatra az alábbi részfeladatok segítségével.

h(λ) := maxn∑j=1

cjxj

n∑j=1

ajxj ≤ λ

x ∈ Zn+

40

Page 42: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Ekkor ha valamely x∗j = 1, akkor h(λ) = cj + h(λ − aj). Így hát a következ® rekurzióhozjutunk:

h(λ) = max[0, maxj:aj≤λ

{cj + h(λ− aj)}].

Ez a formula szintén O(nb) futási idej¶ algoritmushoz vezet. Vegyük észre, hogy h = gn.A teljesség kedvéért megjegyezzük, hogy a hátizsákfeladat a fels® korlátokat nem tartal-

mazó esetben megfogalmazható aciklikus irányított gráfban való leghosszabb út kereséseként.De�niáljuk a D = (V,A) irányított gráfot a következ®képpen. V := {1, 2, . . . b}. Az irányí-tott élek pedig legyenek a következ®k: (λ, λ + 1) minden lehetséges λ-ra 0 hosszúsággal, és(λ, λ + aj) minden lehetséges λ-ra és j-re cj hosszúsággal. Ekkor h(λ) éppen a 0-ból a λ-bavezet® leghosszabb út hosszával egyenl®.

Nemnegatív mátrixú egészérték¶ feladat

Most a fentihez hasonló dinamikus programozási algoritmust adunk több egyenl®tlenség es-etén. Legyen a feladatunk

max{cx : Ax ≤ b, x ≥ 0, x ∈ Zn},

ahol A, b, c nemnegatív és egész.Adott k ∈ {1, . . . , n} szám és 0 ≤ d ≤ b egész vektor esetén legyen

fk(d) = max{k∑j=1

cjxj :

k∑j=1

aijxj ≤ di (i = 1, . . . ,m), x ≥ 0}.

De�niáljuk ezen kívül f0(d)-t 0-nak minden 0 ≤ d ≤ b-re. A következ® rekurzióval lehetk ≥ 1-re és 0 ≤ d ≤ b-re kiszámolni a függvényértékeket:

fk(d) =

{fk−1(d) ha valamilyen i-re aik > di,

max{fk−1(d), fk(d− a.k) + ck} ha a.k ≤ d.

Az optimumértéket fn(b) adja meg. A lépésszám O(n∏mi=1(bi + 1)), ami sajnos a legtöbb

feladatnál nagyon lassú algoritmust ad.

6.3 Fa optimális részfája

Most egy olyan dinamikus programozási megoldást ismertetünk, amelynek nincs közvetlenköze legrövidebb utak kereséséhez. Legyen adva egy T = (V,E) fagráf (azaz összefügg®,körmentes irányítatlan gráf) és egy kijelölt r ∈ V úgynevezett gyökérpontja. Továbbá adotta gráf minden v ∈ V csúcsán egy cv ∈ R súly. Határozzuk meg azt a maximális pozitívösszsúlyú részfát, amely tartalmazza az r csúcsot.

A T egy tetsz®leges v 6= r csúcsára jelölje p(v) a v-b®l az r felé egyértelm¶ úton elindulvaaz els® csúcsot (p(v)-t a v szül®jének nevezik). Jelölje S(v) a v többi szomszédját, azazS(v) = {w ∈ V : p(w) = v} (S(v) elemeit szokás v gyerekeinek nevezni). Jelölje továbbá T (v)azt a v gyöker¶ részfát, amely az összes olyan csúcsot tartalmazza, amelyb®l az r-be vezet®egyértelm¶ út átmegy v-n.

A T egy tetsz®leges v csúcsára jelölje H(v) a v-gyöker¶ T (v) részfán a feladatunk optimálismegoldását. Amennyiben nincs pozitív összsúlyú v-gyöker¶ részfa, akkor H(v) := 0. Mindenmás esetben az optimális részfa tartalmazza a v csúcsot. Ezen optimális részfa tartalmazhattovábbi T (w)-részfákat, amelyek valamely w ∈ S(v) gyöker¶ek. Ekkor könnyen látható, hogyezeknek a részfáknak a súlya H(w). Ezek alapján a következ® rekurzió adódik:

41

Page 43: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

H(v) = max{0, cv +∑

w∈S(v)

H(w)}.

A rekurziót a fa leveleinél, azaz az els®fokú csúcsainál tudjuk elkezdeni a következ®képp:H(v) := max[cv, 0]. Ezek után a H(v) értékek felfelé haladva könnyen kiszámíthatók. Magá-nak az optimális fának a meghatározása visszafelé haladva történhet azon fáknak a törlésével,amelyek v gyökerére H(v) = 0. Az algoritmus lépésszáma O(|V |).

6.4 Maximális súlyú független csúcshalmaz fában

Egy gráfban egy csúcshalmaz független (vagy stabil), ha nem feszít élt. Egy tetsz®leges gráfbanmegkeresni a legnagyobb független csúcshalmazt NP-nehéz feladat, de mint látni fogjuk, fábanmég a maximális súlyú független csúcshalmazt is meg tudjuk találni tetsz®leges súlyozásesetén.

Legyen T = (V,E) egy fagráf, és legyen adott a gráf minden v ∈ V pontján egy cv ∈ R+

nemnegatív súly. Feladatunk a maximális súlyú független csúcshalmaz megkeresése. Jelöljünkki egy tetsz®leges r ∈ V gyökeret. Használjuk ugyanazokat a jelöléseket egy csúcs szül®jére,gyerekeire és részfájára, mint az el®z® fejezetben.

A T egy tetsz®leges v csúcsára jelölje a(v) a v-gyöker¶ T (v) részfán a feladatunk optimálismegoldását, b(v) pedig jelölje az olyan független halmaz maximális súlyát T (v)-ben, ami nemtartalmazza v-t. Ha v levél, akkor mind a(v), mind b(v) könnyen kiszámolható: a(v) =cv, b(v) = 0. Egyéb v csúcsokra pedig a következ® rekurzió adódik:

a(v) = max{∑

w∈S(v)

a(w), cv +∑

w∈S(v)

b(w)},

b(v) =∑

w∈S(v)

a(w).

Ez alapján a levelekt®l felfele haladva az a(v) és b(v) értékek minden csúcsra kiszámolhatók.Az a(r) érték pedig megadja a maximális súlyú független csúcshalmaz súlyát. Magának acsúcshalmaznak a meghatározása visszafelé haladva történhet.

6.5 Termelésütemezési feladat

Ebben az alfejezetben az 1 fejezetben bemutatott termelésütemezési feladat megoldására mu-tatunk be egy dinamikus programozási megközelítést.

A továbbiakban feltesszük, hogy zn = 0, azaz az n-edik id®periódus végére már nem rak-tározhatunk semmit, azaz az összes megtermelt anyag mennyisége meg kell, hogy egyezzék azigények összegével.

6.4 állítás. Létezik olyan optimális megoldása is a termelésütemezési feladatnak, amelybenzt−1xt = 0 minden t-re.

A fenti állítás azt jelenti, hogy csak abban az id®periódusban termelünk, amikorra a raktármár kiürült. Ez az alábbival ekvivalens.

6.5 állítás. Létezik olyan optimális megoldás is, amelyben ha xt > 0, akkor xt =∑t+k

i=t divalamely k > 0 értékre.

42

Page 44: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Amint az könnyen látható, a z vátozók kifejezhet®k az x változók, és a d igények segítségével:

zt =t∑i=1

xi −t∑i=1

di.

Ezt a célfüggvénybe behelyettesítve az alábbit kapjuk:

n∑t=1

ptxt +

n∑t=1

htzt +

n∑t=1

ftyt =

n∑t=1

ptxt +

n∑t=1

ht(

t∑i=1

xi −t∑i=1

di) +

n∑t=1

ftyt =

n∑t=1

ctxt −n∑t=1

ht(t∑i=1

di) +n∑t=1

ftyt,

ahol ct = pt +∑n

i=t hi. A h és d értékeket tartalmazó kifejezés egy konstans érték, amelyreaz optimum kiszámításánál elég csak végül beszámítani.

A 6.5 állítás szerint érvényes az alábbi rekurzió, ahol H(t) az t = n periódus mellett jelöliaz optimális célfüggvényértéket (a konstanstagtól eltekintve).

H(k) = mint=1,2,...,k

H(t− 1) + ft + ct(

k∑i=t

di).

A H(k) értékeket tehát egymás után meg tudjuk hatázozni 1-t®l kezdve n-ig. Visszafeléhaladva az optimális xt értékeket is meg tudjuk határozni, ezzel egy O(n2) algoritmust kapva.

10 feladat. Fogalmazzuk meg a termelésütemezési feladatot irányított gráfbéli legrövidebb útfeladatként.

43

Page 45: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 7

Az utazóügynök feladat heurisztikái

Az utazóügynök feladata a G = (V,E) n pontú teljes gráfban a c : E → R+ élhosszakesetén a legrövidebb olyan körnek a megkeresése, amely a gráf minden pontján áthalad. Ezta kört a gráf legrövidebb Hamilton-körének vagy optimális (utazóügynök-) túrájának fogjuknevezni. Természetesen megfogalmazható az a feladat is, amikor az u pontból v-be haladvamás az él hossza, mint a v-b®l az u-ba haladva. A továbbiakban mi csak a fenti, úgynevezettszimmetrikus utazóügynök feladattal foglalkozunk, ráadásul még feltesszük azt is, hogy azélhosszakra (más szóval élsúlyozásra vagy élköltségekre) teljesül az háromszög-egyenl®tlenségis, azaz tetsz®leges u, v, z pontokra igaz az alábbi:

c(uv) + c(vz) ≥ c(uz).

Utazóügynök feladat

A G = (V,E) teljes gráfban a c : E → R+ élhosszak esetén a legrövidebb olyankörnek a megkeresése, amely a gráf minden pontján áthalad. Feltesszük, hogy cteljesíti a háromszög-egyenl®tlenséget.

Most tekintsünk néhány eljárást, amelyek nagyon gyorsan megadnak valamilyen túrát. Azt,hogy mennyire van közel az optimumhoz egy ilyen ún. heurisztika által megadott túra, többfélemér®számmal is jellemezhetjük. Legkézenfekv®bbnek látszik a matematikai viselkedés, azazmegadni, hogy tetsz®leges gráfra a heurisztika által adott megoldás sohasem lesz rosszabb,mint az optimum K-szorosa. Ez a matematikailag garantált K érték azonban a legtöbb al-goritmus esetén nagyon távol áll a gyakorlatban felmerül® problémákra adott megoldásokoptimummal való hányadosától! A következ® áthidaló megoldás született. Reinelt összeállí-tott hozzávet®leg 100 tipikus gyakorlati feladatot a TSPLIB [11] könyvtárba, és a különféleheurisztikákat ezen feladatokra adott megoldásaik alapján jellemezhetjük úgy, hogy a TSPLIBmér®számuk azon számok átlaga, ahányszorosát a TSPLIB-feladatok optimumának adják. Eza mér®szám adja meg legjobban, hogy egy konkrét feladatra várhatóan milyen jól m¶ködikegy heurisztika, vagy akár a saját magunk által kidolgozott algoritmus.

A legközelebbi szomszéd heurisztikája

Keressünk meg egy legrövidebb élet, aztán ennek az egyik végpontjából elindulva lépjünktovább mindig egy legközelebbi pontba, ahol még nem jártunk. Végül egy n-hosszú utatkapunk, és kényszer¶ségb®l lépjünk a kiindulópontunkba. Ennek az algoritmusnak a TSPLIBmér®száma 1.26. (Esetleg indíthatjuk tetsz®leges pontból is az algoritmust.)

44

Page 46: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

(Ezen módszer nem meglep® módon igen kacifántos bejárásokat ad annak ellenére, hogylokálisan a legjobb továbblépést választja. Nagyon könnyen kihagy ugyanis pontokat, amiketa túra utolsó pontjainak meghatározásakor csak igen nagy költségekkel jár be.)

Túranövel® módszerek

Az alábbi heurisztikák mind úgy m¶ködnek, hogy kiválasztanak valamilyen szabály szerintegy kiindulási élet, aztán hozzávesznek egy pontot, három pontból álló túrát kapva így. Atovábbiakban, ha van már egy kisebb túránk, akkor valamilyen szabály szerint kiválasztják akövetkez® beszúrandó pontot (ez a szabály különbözteti meg ezen algoritmusokat), és beszúr-ják a túrába azon két pont közé, amellyel a túra hossza a lehet® legkevesebbel n®, azaz megke-resi azon két, a meglév® túrában egymás után kövektkez® u, v pontot, amelyre a beszúrandós ponttal a következ® érték minimális:

c(us) + c(vs)− c(uv).

• Legközelebbi pont beszúrása. Egy legrövidebb élb®l indulunk ki. Egy meglév®túrától egy adott pont távolsága a túra pontjaitól vett távolságok minimuma. A leg-közelebbi pont beszúrása azt jelenti, hogy a túrához legközelebbi pontot választjuk ki,és azt szúrjuk be (a fenti általános szabály szerint, azaz a legkisebb hossznövekedéssel).Ezen algoritmus TSPLIB mér®száma: 1.??.

• Legtávolabbi pont beszúrása. Egy leghosszabb élb®l indulunk ki, és mindig a túrátóllegtávolabbi pontot szúrjuk be. TSPLIB: 1.16.

• Legolcsóbb beszúrás. Egy legrövidebb élb®l indulunk ki, és megnézzük, hogy atúrában nem szerepl® pontok beszúrása mekkora túrahossz-növekedést eredményez. Azta pontot szúrjuk be, amelyre ez minimális. TSPLIB: 1.??.

• Véletlen pont beszúrása. Véletlenül választjuk ki a soron következ® beszúrandópontot.

Talán meglep®nek t¶nik, hogy a legtávolabbi pont beszúrása m¶ködik a legjobban a földikörülmények között. Erre magyarázat talán, hogy a végs® túra hozzávet®leges alakját márelég korán megtaláljuk, és aztán már csak kicsi változások történnek. (Persze ennyire azt ismeg tudnánk indokolni, ha bármely másik beszúrási módszer m¶ködne jobban a többinél.)

Túrajavító módszerek

Ha már ismerünk egy Hamilton-kört, akkor abból könnyen kaphatunk újabbakat is. Hátharövidebbekhez juthatunk.

7.1 de�níció. Egy T túrát 2-optimálisnak nevezünk, ha tetsz®leges uv, ab élpárjára teljesül,hogy c(uv) + c(ab) ≥ c(ua) + c(bv), ahol T − {uv, ab} ∪ {ua, bv} szintén túra.

Könnyen látható, hogy ha T −{uv, ab}∪ {ua, bv} nem túra (azaz két diszjunkt kör), akkorT − {uv, ab} ∪ {ub, av} viszont túra.

A 2-opt heurisztika úgy m¶ködik, hogy mevizsgáljuk, hogy az adott T túra 2-optimális-e.Ha nem, akkor azonnal a rövidebb túrával folytatjuk az eljárást. Annak az eldöntése, hogyegy T túra 2-optimális-e, O(n2) id®t igényel, ám a fenti algoritmus mégsem polinomiális, azaznem feltétlenül áll le polinomiális id® alatt. TSPLIB: 1.06.

A fentiekhez hasonlóan meg tudunk fogalmazni k-optimális túrákat, és k-opt algoritmusokatis. De mivel k növekedtével a k él eltörlése után a különböz® lehet®ségek száma, amikor túrát

45

Page 47: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

kapunk, nagyon gyorsan n®, ezen algoritmusokat ritkán alkalmazzuk. Például csak már 2-optimális túrát vizsgálunk, 3-optimális-e. 3-opt TSPLIB: 1.04.

k = 2 → 1

k = 3 → 4

k = 4 → 20

k = 5 → 148

k = 6 → 1358

k = 10 → 51290496

7.0.1 A heurisztikus algoritmusok viselkedése

7.2 tétel (Rosenkrantz, Stearns, Lewis, 1977). A legközelebbi pont beszúrási heurisztikája általaz utazóügynök feladatra adott megoldás hossza az optimális megoldás legfeljebb 2-szerese.

Bizonyítás. Prim feszít®fa algoritmusát (13.3 fejezet) használjuk. Megmutatjuk, hogy aPrim algoritmusa által adott F feszít®fa és a vizsgált heurisztika által szolgáltatott T túrahosszára teljesül, hogy c(T ) ≤ 2c(F ). Mivel az optimális túra hosszánál nem lehet hosszabbegy minimális feszít®fa hossza, ezzel a tételünket be is bizonyítjuk.

Belátjuk, hogy Prim algoritmusa és a heurisztika párhuzamos lefutása közben a c(T ′) ≤2c(F ′) összefüggés mindig fennáll az azonos pontszámú T ′ résztúra és F ′ fa hossza között.A kiindulási három pontú fára és körre nyilván igaz, ha pedig általában is teljesül, akkorvegyük észre, hogy a fa és a kis túra ponthalmaza megegyezik, az új pont hozzávételekorpedig a háromszög-egyenl®tlenség szerint legfeljebb kétszerannyival n® a fa hossza, mint atúráé, ugyanis ha v a beszúrandó pont, amely a T ′ u pontjához van legközelebb, amelyetT ′-ben a w pont követ, akkor az F ′-höz v-t hozzávéve c(F ′) éppen a c(uv) értékkel növekszik,míg v-t az u és w közé beszúrva a T ′ hossza c(uv) + c(vw) − c(uw) értékkel n®ne, azaz aminimális növekménnyel való beszúrás szabálya miatt a T ′ hossza legfeljebb ennyivel n®, amia háromszög-egyenl®tlenség szerint legfeljebb 2c(uv). 2

7.3 tétel (Rosenkrantz, Stearns, Lewis, 1977). Tetsz®leges beszúrási módszer által az utazóüg-ynök feladatra adott megoldás hossza az optimális megoldás legfeljebb (dlog2 ne+ 1)-szerese.

Bizonyítás. Legyen v1, v2, . . . vn a pontok tetsz®leges beszúrási sorrendje. Az eredményülkapott túrát jelölje B. A vi pont beszúrásakor a túra hosszának a növekedését jelölje b(vi).b(v1) := 0, b(v2) := 2c(v1v2), ami alapján

∑ni=1 b(vi) = c(B).

Tekintsünk tetsz®leges két pontot, vi-t és vj-t! Azt állítjuk, hogy

2c(vivj) ≥ min{b(vi), b(vj)},

hiszen ha vi már szerepelt a túrában vj beszúrásakor, akkor vj-nek a vi és az aktuális kisrésztúrában rákövetkez® vl közé való beszúrásakor a túra hosszának a növekménye c(vivj) +c(vlvj)−c(vivl), ami a háromszög-egyenl®tlenség szerint legfeljebb 2c(vivj). Ennél pedig b(vi)nem lehet nagyobb.

Tekintsük az optimális, TSP-vel jelölt túrát. Ennek egy vivj élének egyik végpontjáhozfogjuk hozzárendelni a b(vi) és b(vj) közül a kisebbet. A TSP minden második élét tekintveebb®l következik, hogy a hozzárendelt pontok beszúrásakor a túra össznövekménye legfeljebbc(TSP ). (Esetleg nem minden második élet, hanem minden páratlanadik élét kell a túránaktekintenünk, hogy a kiválasztott élek összhossza legfeljebb a c(TSP ) fele legyen.)

46

Page 48: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Tekintsük a TSP azon pontjait, amelyekhez még nem rendeltünk b(vj) értéket. Ezeken apontokon a TSP-ben lév® körüljárás szerint haladva, olyan kört kapunk, amelynek a hosszaa háromszög-egyenl®tlenség miatt legfeljebb c(TSP ). Erre a körre alkalmazva az el®z® hoz-zárendelési gondolatot, és tovább folytatva, az eljárás akkor ér véget, amikor már csak kétpont marad hozzárendelés nélkül, viszont ezen pontok távolsága nyilván kisebb, mint a TSPhossza. Továbbá az egyedül megmaradt pont beszúrása sem növelhette a túra hosszát jobban,mint c(TSP ).

Az el®bbiek szerint összegezve a beszúrásokat kapjuk a tétel állítását. 2

7.1 Christo�des heurisztikája

Christo�des heurisztikája 1976-ból származik, és mindmáig a legjobb elméleti korlátot adóalgoritmus. Az már más kérdés, hogy gyakorlatban nem a várakozásokhoz mérten m¶ködik.TSPLIB mér®száma: 1.14, és továbbfejlesztett változatáé is mindössze 1.09, amely ered-mények könnyen túlszárnyalhatóak voltak az elemibb heurisztikákkal. Megjegyezzük, hogyezek az eredmények is természetesen jobbak, mint az elméleti 1.5-ös fels® korlát.

Az algoritmus a háromszög-egyenl®tlenséget kielégít® nemnegatív súlyok esetén m¶ködik.Els® lépésként keressünk a gráfban egy minimális súlyú F feszít® fát, például Kruskal algo-ritmusával.

Legyen W azon csúcsok halmaza, amik F -ben páratlan fokúak. Keressük meg G[W ] (a Wáltal feszített súlyozott részgráf) minimális súlyú teljes párosítását, jelöljük ezt M -mel.

Most nézzük az F ∪M gráfot, ami a mindkett®ben szerepl® éleket két példányban tartal-mazza. Ennek a gráfnak minden foka páros, tehát van Euler-séta. Ha minden csúcs foka 2,akkor egy túrát kaptunk, tehát leállunk. ha van legalább 4 fokú csúcs, akkor az Euler sétánakerre illeszked® egymás utáni két élét egy éllel helyettesítjük. Az így kapott gráfban továbbrais van Euler-séta. Ilyen m¶veleteket csinálunk egészen addig, amíg túrát nem kapunk.

7.4 tétel (Christo�des, 1976). Az algoritmus által az utazóügynök feladatra adott megoldáshossza az optimális megoldás legfeljebb 3

2 -szerese.

Bizonyítás. Legyen Topt egy optimális túra. Tudjuk, hogy c(F ) ≤ c(Topt). Tekintsük aG[W ] gráfnak azt a TW túráját, amit a W pontjainak Topt-beli sorrendje ad. A háromszög-egyenl®tlenség teljesülése miatt c(TW ) ≤ c(Topt). Mivel TW el®áll mintW két teljes párosításá-nak uniója, M de�níciójának értelmében 2c(M) ≤ c(Topt), azaz c(T ∪M) ≤ 3

2c(Topt). Meginta háromszög-egyenl®tlenség miatt a végs® túra súlya is legfeljebb c(T ∪M), így bebizonyítot-tuk a tételt. 2

7.2 Lin és Kernighan heurisztikája

Ebben a fejezetben az általában legjobban m¶köd® utazóügynök bejárást adó heurisztikákalapsémájával ismerkedünk meg. Az elgondolás Lint®l és Kernighant®l származik 1973-ból.

7.5 de�níció. A v1, e1, v2, e2, . . . , vn, en, vn+1 n pontú és n él¶ gráfot δ-útnak nevezzük, havn+1 = vi valamely 1 ≤ i ≤ n értékre, és minden más pont különböz®.

Ha P egy δ-út, akkor jelölje T (P ) a P -b®l az en = vnvn+1 él eltörlése és az e′n = vnv1 élhozzávételével kapott túrát. A Lin-Kernighan-algoritmus, amint látni fogjuk, δ-utak sorozatasegítségével keres egyre rövidebb bejárásokat.

47

Page 49: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Lin-Kernighan-alapalgoritmus

Adott egy T túra G-ben.

1. lépés: (Élkeresés) A G minden v pontjára és rá illeszked® T -beli e = uv élre hajtsukvégre a 2�5. lépést.

2. lépés: (Élkeresés inicializálása) u0 := u. P 0 legyen az a δ-út, melyet T -b®l az u0v éltörlésével, és egy olyan u0w0 hozzáadásával kapunk, melyre c(u0w0) ≤ c(u0v). Ha nincs ilyenw0 pont, akkor az Élkeresésnek vége. i := 0.

3. lépés: (Túrateszt) Ha c(T (P i)) kisebb, mint az eddig talált legjobb túra hossza, akkorT (P i)-t megjegyezzük.

4. lépés: (Következ® δ-út) Legyen ui+1 a wi másik szomszédja a deltaút körén. Ha wiui+1

T -nek nem éle, akkor ugorjunk az 5. lépésre. Különben keressünk olyan wi+1 pontot, amelyreui+1wi+1 nem éle T -nek, és c(P i − wiui+1 + ui+1wi+1) ≤ c(T ). Ha nincs ilyen pont, akkorugorjunk az 5. lépésre. Különben legyen P i+1 := P i − wiui+1 + ui+1wi+1, i := i + 1, ésugorjunk a 3. lépésre.

5. lépés: Ha találtunk jobb túrát, akkor legyen az az új T , és ugorjunk az 1. lépésre.Különben folytassuk az Élkeresést.

Fontos megjegyezni, hogy egy Élkeresés során a T éleit csak törölhetjük a δ-utakból, a T -bennem szerepl® éleket pedig csak hozzávehetjük. A fenti algoritmusnak az is egy lényeges eleme,hogy amikor egy rövidebb túrára lelünk, nem iteráljuk rögtön az algoritmust, hanem el®bbbefejezzük az élkeresést, remélve, hogy még jobb túrákat találunk a már felépített struktúrasegítségével. (Bár ennek jelent®ségét sokan kétlik).

Ezen alapalgoritmusnak is van két �nomítása, amelyek közül az egyik az inicializálás körül-tekint®bb végrehajtását végzi el, a másik pedig a δ-utak választásakor jár el �gyelmesebben,de ezen részleteket itt nem tárgyaljuk.

Láncolt Lin-Kernighan-algoritmus

Természetesen, ha id®nk engedi, célszer¶ a Lin-Kernighan-alapalgoritmust több kiindulásitúrából is lefuttatni, és a legjobb kapott túrát kiválasztani. A tapasztalat szerint a külön-féle kiindulási túrák egy jó választása az, amikor a Lin-Kernighan-alapalgoritmus által adottlegjobb túrán végrehajtunk egy véletlenszer¶ 4-cserét, és azzal iteráljuk az algoritmust. Ma-gyarázatként az szolgálhat, hogy a 4-cserék annyira megváltoztatják egy adott túra szerke-zetét, olyannyira eltávolodunk az addig tekintett túráktól, hogy az esetlegesen nagyon rossz(hosszú) kiindulási túra ellenére is reménykedhetünk majd jobb lokális optimumban.

A Lin-Kernighan-alapalgoritmus TSPLIB mér®száma 1.02, a láncolt változaté 1.01. Perszea láncolt változat nem véges, leállási kritériumként megfogalmazhatjuk, hogy ha már egy id®elteltével nem tapasztalunk javulást, akkor véget vetünk az algoritmus m¶ködésének.

7.3 Feladatok

11 feladat. Mutassuk meg, hogy Christo�des heurisztikájának m¶ködésére adott 32 -es fels®

korlát nem javítható.

12 feladat. Mutassuk meg, hogy amennyiben a Lin-Kernighan-algoritmus során minden le-hetséges élet hozzávehetünk a δ-utakhoz, akkor az algoritmus lefutása után kapott T túra 3-optimális, azaz T -n a 3-opt algoritmus nem változtat.

48

Page 50: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 8

Az utazóügynök feladat alsó korlátjai

Amennyiben nem tudjuk el®re feladatunk optimális megoldását, nem tudjuk azt sem, hogya kapott heurisztikus megoldásunk mennyire jó, azaz mennyire van közel az optimális meg-oldáshoz. Mivel a TSPLIB feladataira már ismertek javarészt az optimális megoldások, arranagyon alkalmasak, hogy heurisztikus algoritmusunk várható viselkedését el®re megjósoljuk azátlagos m¶ködés tekintetében, de egy új feladat megoldásánál újabb teend®ink vannak. Ezenteend®k az optimális megoldására vonatkozó alsó korlátok keresését jelentik, ezen alsó korlá-tokkal tudjuk megmondani, hogy a heurisztikus megoldásaink milyen jók, és persze minél jobbalsó korlátot tudunk adni, annál pontosabban értékelhetjük a már meglév® megoldásainkat.

Ebben a fejezetben megismerkedünk néhány, az utazóügynök feladatra vonatkozó alsó kor-lát számítási módszerrel. Ezen módszerek vezettek el kés®bb az olyan általános módszerekhez,mint a Lagrange-feladat, a korlátozás és vágás módszere (branch and cut).

8.1 Held és Karp korlátja

Azt már korábban is használtuk, hogy az utazóügynök feladat megoldásának egy alsó korlátjátadja a minimális feszít®fa hossza. Most ennél egy lehelletnyit ki�nomultabb alsó korlátotadunk, amib®l azonban egy igen használható módszer születik.

Adott tehát a G = (V,E) teljes gráf a c : E → R+ élsúlyozással. Legyen v1 ∈ V egyrögzített pont. Legyen A a v1-re illeszked® két legolcsóbb él költségének az összege, B pedig av1 elhagyása utáni gráf minimális feszít®fájának a súlya. Ekkor A+B az utazóügynök feladategy alsó korlátja.

1-fa korlát

A G = (V,E) teljes gráfban a c : E → R+ élhosszak esetén a v1 ∈ V ponthoz tartozó1-fa korlát az A+ B összeg, ahol A := min{ce + cf : e, f ∈ δ(v1), e 6= f}, B pedig aG− v1 gráf minimális költség¶ feszít®fájának a költsége.

Ezzel a korláttal egyáltalán nem lehetünk elégedettek, hiszen elképzelhet®, hogy az 1-fakorlátot adó élhalmaz alakja nagyon távol esik az utazóügynök túráktól, például nagyon nagyfokú pontok lehetnek a feszít®fában, és ennek következtében nagyon sok els®fokú pont islétezhet. Ezen viszont valamelyest tudunk segíteni a következ® módon. Válasszunk ki egy, afában nagyfokú v pontot, és minden, a G-ben rá illeszked® él súlyát növeljük meg M -mel. Mitörténik az új súlyozásban az 1-fa korláttal? Jól eltalált M érték esetén v kisebb fokú lesz afában, azaz az 1-fa korlát értéke kevesebbel n®, mint dF (v) ·M , de azért 2M -nél többel n®het.Ámde minden túra hossza pontosan 2M -mel n®tt, azaz jobb alsó korláthoz juthetunk.

Ezt az elgondolást egyszerre fogjuk alkalmazni az összes pontra. Legyen y : V − v1 → R apontokon egy súlyfüggvény. Legyen C a következ® új élsúlyozással kapott 1-fa korlát: minden

49

Page 51: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

e = uv ∈ E élre ce := ce − yu − yv.

8.1 állítás (Held és Karp korlátja). C+2∑

v∈V−v1 yv az eredeti utazóügynök feladat egy alsókorlátja.

Az állítás bizonyítása abból adódik, hogy az új súlyozás mellett minden túra hossza2∑

v∈V yv értékkel csökken.

Held�Karp-korlát

A G = (V,E) teljes gráfban a a c : E → R+ élhosszak esetén adott a v1 ∈ V pont,és az y : V − v1 → R súlyfüggvény. A C + 2

∑v∈V−v1 yv összeget az y súlyozáshoz

tartozó Held�Karp-korlátnak nevezzük, ahol C a ce := ce−yu−yv élsúlyozású gráfbanaz 1-fa korlát.

A korlát nagy el®nye abban rejlik, hogy újabb és újabb pontsúlyozásokat tekintve jelent®senjavítható. Held és Karp 1971-ben az alábbi módszert javasolta: jelölje dF (v) a v pont fokát azF 1-fa korlátot adó élhalmazban, és minden v ponton változtassuk meg az yv pontsúlyozásta következ®képpen:

yújv := yv + t(2− dF (v)),

ahol t egy pozitív szám, az úgynevezett lépéshossz.Ez azt jelenti, hogy az els®fokú pontokra illeszked® élek súlya csökkenni fog (lehet®séget

adva ezzel az új súlyozás mellett az 1-fa korlátbeli foka növekedésének), a harmad- vagy maga-sabbfokú pontokra illeszked® élek súlya pedig n®ni fog (a fokszám csökkenését el®mozdítandó).Persze mindezeket az összes pontra egyszerre tekintjük.

A tapasztalat azt mutatja, hogy a lépéshossz ügyes megválasztása esetén a kapott Held�Karp-korlátok az optimális (azaz a lehet® legjobb) Held�Karp-korláthoz konvergálnak, bár aznem igaz, hogy szigorúan monoton n®ne a sorozatuk. (Persze az nem világos, hogy miért islétezik legjobb Held�Karp-korlát, ezt csak a következ® fejezetben bizonyítjuk.)

8.2 Lineáris programozási alsó korlát

Az alapgráf minden élének feleltessünk meg egy változót, és tekintsük az alábbi egyenl®tlenség-rendszert.

x(δ(v)) = 2 ∀v ∈ V (8.1)

xe ∈ {0, 1} ∀e ∈ E. (8.2)

Ennek megoldásai a gráfot fed® diszjunkt körök karakterisztikus vektorai. A következ®feltételek hozzávétele után azonban már csak a Hamilton-körök lesznek a megoldások.

x(δ(S)) ≥ 2 ∀S ⊂ V, S 6= ∅. (8.3)

Ezek fényében az alábbi feladatot az utazóügynök feladat lineáris programozási relaxáltjánaknevezzük.

min∑

(cexe : e ∈ E) (8.4)

x(δ(v)) = 2 ∀v ∈ V (8.5)

x(δ(S)) ≥ 2 ∀S ⊂ V, S 6= ∅ (8.6)

0 ≤ xe ≤ 1 ∀e ∈ E. (8.7)

Az nem igaz, hogy tetsz®leges célfüggvényre ezen lineáris programnak létezne egész meg-oldása. A feladat optimumának meghatározása tehát csak egy alsó korlátot ad az optimális

50

Page 52: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

utazóügynök bejárás hosszára. Ezen alsó korlátot meghatározó módszert aztán beépíthetjükkorlátozás és szétválasztás vagy korlátozás és vágás módszerbe, ahogy azt látni is fogjuk.

Most belátjuk, hogy a (8.6) feltételeket, amelyeket résztúra feltételeknek hívunk, az aláb-biakkal helyettesítve ekvivalens feladathoz jutunk.

x(γ(S)) ≤ |S| − 1 ∀S ⊂ V, S 6= ∅. (8.8)

Ugyanis igaz a következ®:

x(δ(S)) + 2x(γ(S)) =∑v∈S

x(δ(v)),

ami (8.5) szerint 2|S| értékkel egyezik meg.A következ® tételt fogjuk belátni, amelynek egyik jelent®sége, hogy a Held és Karp féle

algoritmus a nagyon sok feltétellel rendelkez® lineáris programozási relaxált megoldására egyheurisztikus eljárást szolgáltat.

8.2 tétel. A lineáris porgramozási alsó korlát megegyezik az optimális Held-Karp-korláttal.

Bizonyítás. Jelöljünk ki egy rögzített v1 pontot. Vegyük észre, hogy az alábbi feladat a(8.4) LP-relaxálttal ekvivalens.

min∑

(cexe : e ∈ E) (8.9)

x(δ(v)) = 2 ∀v ∈ V (8.10)

x(γ(V − v1)) = |V | − 2 (8.11)

x(γ(S)) ≤ |S| − 1 ∀S ⊂ V − v1, S 6= ∅ (8.12)

0 ≤ xe ≤ 1 ∀e ∈ E. (8.13)

Ha elhagyjuk a v1-re illeszked® élekhez tartozó változókat és a (8.10) feltételeket, akkora maradék rendszernek a 13.10 tétel (13.2 fejezet) alapján a V − v1 alaphalmazon szerepl®minimális súlyú feszít®fa lesz az optimális megoldása.

Az alábbinak pedig a minimális 1-fa!

min{cx : x teljesíti a következ®ket: (8.12), (8.11), (8.13), x(δ(v1)) = 2} (8.14)

A pontokra írt súlyokhoz a (8.9) feladat duálisának az elemzésével jutunk. Könnyen látható,hogy a (8.13) feltételben az xe ≤ 1 következik a megel®z® feltételekb®l, így azt a duáliselkészítésében nem is szerepeltetjük. A duálisban tehát az 1-fa feladat feltételein kívül szerepelminden v ∈ V − v1 ponthoz egy yv vátozó. A duális egy optimális megoldásában jelöljük ezenváltozók értékét y∗v-gal. Amennyiben a szóbanforgó változók értékét a megadott értékekrerögzítjük, akkor a többi változó az alábbi lineáris program optimális megoldását adja.

min∑uv∈E

(cuv − y∗u − y∗v)xuv

x teljesíti a következ®ket: (8.12), (8.11), (8.13)

x(δ(v1)) = 2.

A korábbiak szerint ez a célfüggvényben szerepl® élsúlyokkal egy minimális súlyú 1-fa feladat,azaz a (8.9) feladat optimális megoldása megegyezik a pontokra írt y∗v súlyokkal vett 1-fafeladat megoldásával. (Ahol a v1 pont súlya 0.)

A másik irány bizonyításához vegyük észre, hogy tetsz®leges pontsúlyozással a (8.9) feladatduálisának egy megengedett megoldását kapjuk, amelynek a célfüggvényértéke megegyezik asúlyozáshoz tartozó Held-Karp-korláttal. 2

51

Page 53: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

8.3 Oszlopgenerálós megoldás

Held és Karp heurisztikája, amint azt az el®z® fejezetben láttuk, egyben a lineáris programo-zási alsó korlátra is számol egy heurisztikus becslést. Milyen problémákkal szembesülünk, haközvetlenül szeretnénk megoldani a lineáris programozási relaxáltat, azaz az alábbi feladatot?

min∑

(cexe : e ∈ E) (8.15)

x(δ(v)) = 2 ∀v ∈ V (8.16)

x(δ(S)) ≥ 2 ∀S ⊂ V, S 6= ∅ (8.17)

0 ≤ xe ≤ 1 ∀e ∈ E. (8.18)

Az els® jelent®s akadályt az jelenti, hogy rengeteg feltételt tartalmaz a feladat: a (8.17)feltételek száma exponenciális az alapgráf méretéhez képest � nevezetesen majdnem 2|V | �még akkor is, ha észrevesszük, hogy fölösleges minden részhalmazra és a komplementerére isfelírni ugyanazt a lineáris egyenl®tlenséget, élhetünk az |S| ≤ |V |/2 megszorítással � de mégígy is majdnem 2|V |−1 darab feltételünk marad.

A továbbiakban ismertetjük a Dantzig, Fulkerson, Johnson szerz®hármas fenti nehézséglegy®zésére irányuló megközelítését, amely 1954-b®l származik.

Oldjuk meg el®ször a kevés feltételt tartalmazó (8.15), (8.16), (8.18) feladatot. Ha � óriásivéletlen folytán � a kapott megoldás egy Hamilton-kör karakterisztikus vektora, akkor megis oldottuk a TSP feladatunkat. Ha nem, akkor keressünk olyan (8.17)-beli feltételeket, ame-lyeket megsért a kapott optimális megoldás, és vegyük a feladathoz ezeket is. Ha nem találunkilyen feltételeket, akkor megoldottuk a relaxált feladatot. Következ® lépésként oldjuk mega kapott kib®vített lineáris programot, és ismételgessük az eljárást, amíg meg nem állunk(esetleg nem gy®zünk már várakozni, esetleg a számítógépünk memóriája lett tele, esetleg ahócip®nk).

Ezen elgondolás megvalósításához két újabb nehézséget kell legy®zni: hogyan ellen®rizzük,hogy egy megoldás teljesíti-e a (8.17) résztúra-feltételeket, és hogyan oldjuk meg a folytonosanel®álló lineáris programokat.

Az els® nehézséget egy egyszer¶ folyamproblémával tudjuk kezelni. Nevezetesen az x∗

élkapacitásokkal megkeressük a G = (V,E) gráf minimális súlyú vágását, és amennyiben ez2-nél nagyobb, akkor minden feltételt teljesít x∗, ha pedig kisebb, akkor olyan vágásokat iskapunk, amelyekre nem teljesül (8.17) feltétele.

A minimális érték¶ vágás megtalálására a folyamos módszernél jobb megoldást nyújt Nag-amochi és Ibaraki 1992-b®l származó algoritmusa, amit a 13.4. Fejezetben ismertetünk.

Kis gráfok esetén a második probléma nem merül fel, viszont nagy problémák esetén olyannagy számú változóval szembesülünk, amit már nem tudunk kezelni. A Négy Bill Könyvéneksokat emlegetett chip-bejárási példáján például 687 368 darab változót tartalmazó feladathozjutunk. Jobban járunk, ha ezt a feladatot nem akarjuk közvetlenül semelyik forgalomban lév®szimplex-módszerre épül® lineáris programozási megoldóprogrammal megoldani.

Amit tehetünk, a következ®. A résztúra-vágásokhoz hasonlóan ne kezdjünk rögtön az összesváltozóval dolgozni, számolni, hanem csak egy részükkel, és majd fokozatosan azokat a vál-tozókat vegyük a feladathoz, amelyekre szükség lesz.

Tegyük fel, hogy választottunk egy E′ ⊆ E élhalmazt, amelyre az alábbi G′ = (V,E′)-revonatkozó LP-feladatnak van megoldása.

min∑

(cexe : e ∈ E′) (8.19)

x(δE′(v)) = 2 ∀v ∈ V

52

Page 54: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

x(δE′(S)) ≥ 2 ∀S ⊂ V, S 6= ∅

0 ≤ xe ≤ 1 ∀e ∈ E′.

(E′-re jó választás például néhány (10 darab?) túra, amelyet a Láncolt Lin-Kernighanalgoritmus ad.)

(8.19) egy optimális x′ megoldása kiterjeszthet® a (8.15) feladat egy megengedett x∗ meg-oldásává az x∗e := 0, e ∈ E −E′ de�niálásával. Igaz-e, hogy x∗ a (8.15) optimális megoldása?Általában persze nem.x∗ optimalitásának ellen®rzéséhez tekintsük a (8.19) feladat lineáris programozási duálisát:

max∑

(2yv : v ∈ V ) +∑

(2YS : S ⊂ V, S 6= ∅) (8.20)

yu + yv +∑

(YS : uv ∈ δ(S), S ⊂ V, S 6= ∅) ≤ cuv ∀ uv ∈ E′, (8.21)

YS ≥ 0 ∀ S ⊂ V, S 6= ∅. (8.22)

Legyen y′, Y ′ ennek egy optimális megoldása. Ha ez megengedett megoldása a (8.15) duálismegoldásának is, azaz annak a feladatnak, amelyet a (8.21)-ben E′ helyett E-vel kapunk,akkor bizony x∗ az eredeti (8.15) feladatnak, azaz a lineáris programozási relaxáltnak is op-timális megoldása. Ha nem ez a helyzet, akkor vegyük hozzá E′-höz azokat az e ∈ E − E′éleket, amelyekre (8.21) nem teljesül. Oldjuk meg a kib®vített élhalmazzal adódó feladatot,és ismételgessük az eljárást.

Az ilyen algoritmusokat oszlopgenerálós algoritmusoknak nevezzük. Ezt az oszlopgen-erálós algoritmust a résztúra-feltételek fokozatos hozzáadásával kombinálva esetleg meg tudjukoldani a lineáris programozási relaxáltat, esetleg nem.

8.4 Vágósíkok

Legyen Q a túrává kiegészíthet® élhalmazok konvex burka. Mivel a teljes gráfot tekintjük,ez egy n dimenziós poliéder. Az utazó ügynök feladat megoldásában sokat segít, ha ennek apoliédernek minél több lapját ismerjük. Mindenesetre néhány lapot könnyen kaphatunk azeddig tekintett egyenl®tlenségekb®l:

• xe ≥ 0 lap, mert a {0, χf (f 6= e)} vektorhalmaz a�n független, és egyenl®séggelteljesítik.

• xe ≤ 1 lap, mert a {χe, χ{e,f} (f 6= e)} vektorhalmaz a�n független, és egyenl®séggelteljesítik.

• x(δ(v)) ≤ 2 lap, de ezt már kicsit nehezebb belátni. Vegyük az éleknek egy olyansorrendjét, hogy δ(v) = {e1, . . . , en−1}, és {e1, e2, em} kör. Ekkor a χ{e1,ej} (2 ≤ j ≤n − 1), χ{e2,e3}, χ{e1,e2,ej} (n ≤ j ≤ m − 1), és χ{e1,e3,em} vektorok a�n függetlenek,egyenl®séggel teljesítik az egyenl®tlenséget, és mind kiegészíthet®k túrává.

Bizonyítás nélkül megemlítjük, hogy 2 ≤ |U | ≤ n− 2 esetén x(E[U ]) ≤ |U | − 1 is lapja Q-nak. Ha n ≤ 5, akkor a fentieken kívül nincs is más lap, de n ≥ 6 esetén van. Az alábbiakbanmegmutatjuk, hogyan lehet további, bonyolultabb lap-osztályokat kapni.

53

Page 55: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

8.4.1 Fés¶-egyenl®tlenségek

A G = (V,E) gráf pontjainak néhány részhalmazát fés¶nek nevezzük, ha teljesítik a követke-z®ket. A H ⊂ V kitüntetett halmazt a fés¶ nyelének nevezzük, a T1, T2, . . . T2k+1 páronkéntdiszjunkt, nemüres halmazokat pedig a fés¶ fogainak, ha k ≥ 1 valamely egész szám. Továbbámegköveteljük, hogy H ∩ Ti 6= ∅, Ti −H 6= ∅ teljesüljön.

A következ® tétel Chvátaltól (1973) és Grötschelt®l és Padbergt®l származik (1979).

8.3 tétel. Legyen C egy fés¶ a H nyéllel és a Ti fogakkal, i = 1, 2, . . . 2k+1. Ekkor tetsz®legesHamilton-kör karakterisztikus vektora teljesíti a következ® egyenl®tlenséget.

x(γ(H)) +2k+1∑i=1

(x(γ(Ti)) ≤ |H|+2k+1∑i=1

(|Ti| − 1)− (k + 1) (8.23)

Bizonyítás. Tegyük fel, hogy x ∈ RE egy tetsz®leges Hamilton-kör karakterisztikus vektora.Ekkor x teljesíti (8.5),(8.6),(8.7)-et, továbbá

2x(γ(H)) + 2

2k+1∑i=1

(x(γ(Ti)) =

=∑v∈H

x(δ(v))− x(δ(H)) +2k+1∑i=1

(x(γ(Ti ∩H))+

+2k+1∑i=1

(x(γ(Ti −H)) +2k+1∑i=1

(x(δ(Ti, H)) +2k+1∑i=1

(x(γ(Ti)) ≤

≤∑v∈H

x(δ(v))−x(δ(H))+2k+1∑i=1

(x(γ(Ti∩H))+2k+1∑i=1

(x(γ(Ti−H))+x(δ(H))+2k+1∑i=1

(x(γ(Ti)) ≤

≤∑v∈H

x(δ(v)) +

2k+1∑i=1

(|Ti ∩H| − 1) +

2k+1∑i=1

(|Ti −H| − 1) +

2k+1∑i=1

(|Ti| − 1) =

= 2|H|+ 22k+1∑i=1

(|Ti| − 1)− (2k + 1),

ahol a második egyenl®tlenségnél (8.8)-t használtuk, a rákövetkez® egyenl®ségnél pedig (8.5)-t. Mivel a levezetés elején egy páros szám szerepel, ezért a levezetés végén szerepl® nála nemkisebb páratlan számnál eggyel kisebb páros szám sem kisebb nála. Kett®vel való osztás utánadódik (8.23). 2

Az el®z® tétel az jelenti, hogy a (8.4) poliéderre vonatkozóan a (8.23) egyenl®tlenség egyérvényes vágás. (Nevezetesen egy els®fajú Gomory-Chvátal-vágás.) Ezeket az egyenl®tlen-ségeket fés¶-egyenl®tlenségnek nevezik.

Pillanatnyilag nem ismert polinomiális algoritmus arra vonatkozóan, hogy egy adott xteljesíti-e az összes fés¶-egyenl®tlenséget.

54

Page 56: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

8.4.2 Virág-egyenl®tlenségek

Ebben a fejezetben megismerkedünk a fés¶-egyenl®tlenségek egy részcsaládjával, amelyek es-etében el tudjuk dönteni ezt a kérdést.

Ha a fés¶nek minden foga kételem¶ halmaz, akkor a (8.23) egyenl®tlenséget virág-egyenl®t-lenségnek nevezzük. Most leírjuk Padberg és Rao (1982) módszerét, amely az utazóügynökfeladat esetén eldönti egy x vektorról, hogy teljesíti-e az összes virág-egyenl®tlenséget, és hanem, akkor meg is ad egyet.

Adott tehát egy x ∈ RE+, amely teljesíti a (8.16) egyenl®tlenségeket. Ekkor a virág-egyenl®tlenség

x(γ(H)) + x(A) ≤ |H|+ |A| − 1

2(8.24)

a következ® alakba is írható:

x(δ(H)−A)− x(A) ≥ 1− |A|. (8.25)

Ugyanis (8.16) szerint a bal oldal a következ®képp alakítható:

x(γ(H)) + x(A) =

=1

2

(∑v∈H

x(δ(v))− x(δ(H))

)+ x(A) =

= |H| − 1

2x(δ(H)−A) +

1

2x(A).

(8.25)-t az alábbi alakba írva azt kell meghatározni, hogy van-e olyan H halmaz, amelyb®lkilép® éleken a súlyok összege � ahol egy párosításon, azaz az A élhalmazon xe helyett 1− xesúllyal számolva � kisebb mint 1.

x(δ(H)−A) + (|A| − x(A)) ≥ 1. (8.26)

Ezt a következ® segédgráfban a minimális T -vágás meghatározásával (l. 13.6 fejezet) eltudjuk dönteni.

Legyen G′ a következ® gráf. G-b®l töröljük azokat az éleket, amelyekre xe = 0. A maradékélek mindegyikét osszuk fel két új ponttal: az e = uv élet v′e-vel és v

′′e -vel. Az uv

′e és a vv

′′e élek

súlya maradjon xe, a v′ev′′e él súlya pedig legyen 1− xe. A T álljon az új pontok halmazából

(T elemszáma nyilván páros.)Tegyük fel, hogy az x ∈ RE megsérti a H,A párhoz tarozó virág-egyenl®tlenséget. Álljon

S a G′ H-nak megfelel® pontjaiból, továbbá azon új pontokból, amelyek a G H-ban feszítettéleire kerültek, továbbá a H-ból kilép® A-beli élekre került új pontok közül a H-beli végpon-thoz közelebbiekb®l. Ekkor S nyilván T -vágás (azaz S ∩ T páratlan elemszámú), és az S-b®lkilép® G′-beli élek összsúlya

x(δ(H)−A) + (|A| − x(A)), (8.27)

ami tehát kisebb, mint 1, azaz a minmimális T -vágás értéke is kisebb 1-nél.Megfordítva, ha a G′-beli minimális T -vágás értéke kisebb mint 1, akkor létezik H,A pár

G-ben, amelyre vonatkozóan x megsérti a virág-egyenl®tlenséget. Tekintsünk ugyanis egy Sminimális T -vágást, amelynek az értéke tehát kisebb, mint 1. Mivel egy G-beli élb®l csinált 3hosszú út két szomszédos élének összsúlya 1, nem léphetnek ki egyszerre S-b®l; másrészt a 3hosszú út két széls® éle sem léphet ki, mert akkor a két középs® csúcs átrakásával egy kisebbT -vágást kapnánk. Tehát minden ilyen 3 hosszú útnak legfeljebb 1 éle lép ki S-b®l. Álljon Aazokból a G-beli élekb®l, amikhez tartozó 3 hosszú út középs® éle lép ki S-b®l.

55

Page 57: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Ekkor A komponensei legfeljebb kétél¶ek (azt akarjuk elérni, hogy egyél¶ek legyenek, hiszenekkor kapunk virágegyenl®tlenséget). Egy kétél¶ komponens középs® pontjainak az U -bavaló be-, illetve kirakásával olyan minimális T -vágást kapunk, amelyhez tartozó A élhalmazelemszáma csökken. Eszerint legfeljebb |V | lépésben olyan minimális T -vágáshoz jutunk,amelyhez tartozó H,A pár olyan virág-egyenl®tlenséget ad, amelyet x megsért. (Ekkor Anem lehet egyelem¶, l. 13 feladatot.)

Ennél fogva egy adott x-r®l a G′-ben a minimális T -vágás megkeresésével el tudjuk dön-teni, hogy teljesíti-e a virág-egyenl®tlenségeket, ha pedig nem, akkor a minimális T -vágássegítségével meg is tudunk adni egy S,A párt, amelyre nem teljesül, és ezen vágásnak azegyenletrendszerhez való hozzávételével az eljárást folytatva az utazóügynök feladat egyrejobb alsó korlátjához jutunk.

8.5 Feladatok

13 feladat. A lineáris programozási relaxált feladat tetsz®leges megoldására k = 0 eseténa fés¶-egyenl®tlenségek automatikusan teljesülnek. Ugyanez igaz |A| = 1 esetében a virág-egyenl®tlenségekre.

8.6 Korlátozás és szétválasztás módszere

Az el®z® fejezetek vágásaival nagyon jó alsó korlátokhoz juthatunk, amelyek segítségével aztánmeggy®zhetjük magunkat vagy a megrendel®nket, hogy a Láncolt Lin�Kernighan Algoritmussegítségével megkeresett túrák valóban nagyon megközelítik az optimumot. De mit tegyünk,ha még mindig nem vagyunk elégedettek, és az optimumhoz még közelebbi, netán opti-mális megoldást keresünk? Akkor próbálkozhatunk a széles körben alkalmazott korlátozásés szétválasztás módszerével javítani az alsó korláton, illetve esetleg még jobb túrák megke-resésében is.

Tegyük fel, hogy adott a szokásos módon a G = (V,E) teljes gráf a c élsúlyozással. JelöljeT a G összes túrájának a halmazát. Az utazóügynök feladat egy alsó korlátja a K szám,ha minden T ∈ T túrára c(T ) ≥ K teljesül. A lineáris programozási alsó korlát, és aztán avágósíkok keresésével rendelkezünk egy eljárással, amely alsó korlátot számol. Amennyiben aT egy T0 ∪T1 partíciójára tudunk mondani egy-egy alsó korlátot, azaz meg tudunk határozniK0 és K1 alsó korlátokat, melyekre c(T ) ≥ K0 minden T ∈ T0 esetén, és c(T ) ≥ K1 mindenT ∈ T1 esetén, akkor a min{K0,K1} érték alsó korlátja az összes T -beli túra hosszának.Esetleg jó eséllyel így nagyobb korlátot kapunk, mint a K volt.

Ha a továbbiakban tovább bontjuk a halmazainkat, és alkalmazzuk rájuk alsó korlát szá-molási eljárásunkat, akkor az egyes részek alsó korlátjai közül a minimálisat választva remél-hetjük, hogy egyre nagyobb alsó korláthoz jutunk, ugyanis elképzelhet®, hogy alsó korlátszámolási eljárásunk egyre ügyesebben dolgozik a megszorított halmazokon.

Ha továbbra is a lineáris programozási alsó korlátot tekintjük (majd különféle vágásokkaltovábbjavított változatát), akkor a fenti eljárásnak a következ®képp képzelhet® el egy meg-valósítása.

Kiindulásunk a P probléma, amely tehát a összes túra T halmazában kérdezi a legrövideb-bet. Kézenfekv® úgy kettévágnunk T -t, hogy egy e él kiválasztása után T0 az e élet nemtartalmazó túrák halmaza legyen, T1 pedig az e-t tartalmazó túrák halmaza. Legyen P0 ésP1 a megadott halmazokban a legrövidebb túrák hosszának a meghatározása. Ekkor a P -revonatkozó alsó korlátot számoló lineáris programot egyszer¶en ki kell egészíteni az els® eset-ben az xe = 0, a második esetben az xe = 1 feltétellel, amelyek megoldása után valóban aT0-ra, illetve a T1-re vonatkozó alsó korlátokat kapunk.

56

Page 58: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Ezután válasszunk ki egy még nem vizsgált problémát (például P0), és aztán egy megha-tározandó f él szerint bontsuk tovább a T0 halmazt, el®állítva így a P00 és P01 problémákat.A problámáknak az ily módon való kettéosztogatása ábrázolható egy bináris fával, amelynekpontjaiban a problémák szerepelnek.

Hogyan korlátozzunk? Azaz hogyan számoljuk az alsó korlátokat. Erre már megadtuk aválaszt: a lineáris programozási relaxálttal, illetve további vágósíkokkal. (Kiegészítés: mivel avágósíkok megkeresésében konkrét lineáris programok konkrét optimális megoldásai segítenek,ezért célszer¶ az el®állított vágások külön helyen történ® összegy¶jtése, mivel azok mindenmás problémára is alkalmazhatóak (lásd 8.3. tétel), és aztán tényleges alkalmazása.

Melyik levélben csücsül® problémát válasszuk ki kettévágásra érdemesnek? Többféle meg-közelítés létezik. Egyik kézenfekv® hozzáállás az, amikor mindig a legkisebb alsó korlátotadó problémát választjuk ki, hiszen ekkor fog eséllyel tovább n®ni a pillanatnyilag legjobbalsó korlát, azaz a levelek alsó korlátainak minimuma. (Mivel így a fa növekedése nagyon ki-egyensúlyozott lehet, igen sok probléma tárolására kerülhet sor, ami komoly méret¶ tárhelyetigényelhet.) A korlátozás és szétválasztás módszerének általános feladatokra való alkalmazásá-nak vizsgálatakor más egyéb megközelítéseket is megvizsgálunk (9.2. fejezet).

Hogyan vágjuk szét a feladatokat? Azt már láttuk, hogy egy e él kiválasztása a legkézen-fekv®bb (és valóban leghasznosabb) módja ennek, de mi alapján válasszuk ki az e élet? Mivela legnagyobb változásokban vagyunk érdekeltek, ezért megfelel® választásnak t¶nik a kiválasz-tott probléma alsó korlátját adó lineáris program megoldásában az 1/2-hez legközelebb érték¶változóhoz tartozó él. Ha több él is �ilyen�, akkor ezek közül a célfüggvényben a legnagyobbegyütthatóval rendelkez® esetében remélhetjük az alsó korlátunk legmarkánsabb javulását.

Megjegyezzük, hogy a fentiek végrehajtása során az is megeshet, hogy valamelyik prob-léma lineáris programozási relaxáltjának megoldása közben egyszer csak egy túra karakter-isztikus vektorát kapjuk, aminek a hossza talán még az eljárás kezdetekor kezünkben lév®túra hosszánál még jobb. Ez örömteli eset.

57

Page 59: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 9

Általános egészérték¶ programozásimódszerek

9.1 Vágósíkos eljárások

Tekintsük a következ® egészérték¶ programozási feladatot.

max cx (9.1)

Ax = b

x ≥ 0,

x egész. (9.2)

Amennyiben nem kötjük ki (9.2)-ot, akkor a feladat lineáris programozási relaxáltjáról beszé-lünk.

Általános vágósíkos algoritmus

• Oldjuk meg a (9.1) lineáris programozási relaxáltját. Legyen x∗ a kapott opti-mális megoldás.

• Ha x∗ egész, akkor megoldottuk a feladatot.

• Ha nem egész, akkor adjunk a feltételrendszerhez egy olyan feltételt, amelyetaz összes egész megoldás teljesít, de x∗ nem, és iteráljuk az eljárást.

Ezen általános algoritmus egy olyan megvalósítását találta Gomory 1958-ban, amelyr®lbebizonyította, hogy véges sok lépésben megkeresi tetsz®leges egészérték¶ programozási fela-dat optimumát. Annak ellenére, hogy a gyakorlatban az eljárás nem bizonyult hatékonynak,elméleti jelent®sége igen nagy.

Azonban el®ször tekintsünk egy másféle vágást. Tegyük fel, hogy a megoldott lineárisporgramozási relaxált egy optimális bázismegoldása x∗, és jelölje N a bázisban nem szerepl®változók indexhalmazát. Könnyen látható, hogy ekkor∑

i∈Nxi ≥ 1

érvényes vágás, azaz minden egész megoldás teljesíti. Viszont x∗ nem. Tehát vágósíkos algo-ritmusunkat használhatnánk úgy, hogy mindig ilyen új fetételt veszünk a rendszerhez. A gond

58

Page 60: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

ezzel az, hogy nem tudjuk garantálni az algoritmus végességét. Gomory véges algoritmusáhozegy másfajta vágást kell tekintenünk.

A Gomory-féle érvényes vágáshoz a következ®képpen jutunk. Legyen a lineáris programo-zási relaxált egy optimális bázismegoldását mutató egyenletrendszer a következ®:

xB +B−1ANxN = B−1b.

Ennek a felírásnak az együtthatóira használjuk a megszokott jelöléseket: dij := (B−1Aj)iés di0 := (B−1b)i. Legyen t a legkisebb olyan index, hogy az optimális bázismegoldásban at-edik változó nem egész érték. Ekkor a hozzá tartozó egyenlet:

xt +∑j∈N

dtjxj = dt0.

Ebb®l következik, hogy

xt +∑j∈Nbdtjcxj ≤ xt +

∑j∈N

dtjxj = dt0,

mivel xj ≥ 0 teljesül minden j-re. Ebb®l az következik az egészérték¶ xj megoldásokra, hogy

xt +∑j∈Nbdtjcxj ≤ bdt0c.

Ezt az egyenl®tlenséget tehát a feladatunk minden egész megoldása teljesíti, de a lineárisprogramozási relaxált aktuális optimális megoldása nem. Az így kapott egyenl®tlenségeketGomory-vágásnak nevezzük.

Gomory megmutatta, hogy az ily módon nyert vágásokat megfelel® módon a feltételi rend-szerhez hozzávéve véges sok lépésen belül egészérték¶ optimumhoz jutunk. A kapott vágástmindig a szimplex tábla legaljára tesszük be. Ahhoz, hogy az új vágást beírhassuk a szimplextáblába, kicsit más alakra kell hozni:

s−∑j∈N{dtj}xj = −{dt0},

ahol s egy új slack változó, és {α} az α szám törtrésze. Könnyen látható, hogy ez egy ekvi-valens alakja a Gomory-vágásnak. Figyeljük meg, hogy ha az xj (j = 1, . . . , n) változók mindegészérték¶ek, akkor s is az, tehát a módszer során sosem fogunk s miatt vágást generálni.

A végesség belátásához el®ször röviden ismertetjük a lexikogra�kus duál szimplex módszert.

9.1.1 Lexikogra�kus duál szimplex módszer

A lexikogra�kus duál szimplex módszernél a 0. sorban szerepel a célfüggvény aktuális alakja(ami nemnegatív, mert duál megengedett megoldásunk van), míg a 0. oszlopban szerepelneka változók értékei (a nembázis változók is szerepelnek, az ® soraik az egységmátrix −1-szeresétalkotják).

A lexikogra�kus duál szimplex módszer fontos tulajdonsága, hogy a táblázat minden os-zlopa (a 0-dik kivételével) mindig lexikogra�kusan pozitív. Hogy ez az elején teljesüljön,esetleg egy új egyenletet kell hozzávenni a rendszerhez az 1. sorba:∑

j:d0j=0

xj + u = M,

ahol u egy új slack változó, M pedig egy kell®en nagy szám.Pivotálás:

59

Page 61: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

• A bázist elhagyó változó: a legkisebb index¶, amire di0 < 0. Tegyük fel hogy ez azindex i (ha nincs ilyen, akkor kész vagyunk: primál megengedett megoldásunk van).

• A bázisba bekerül® változó: Azok közül a j > 0 indexek közül, amelyekre dij < 0,

válasszuk azt, amelyikre a(−d0jdij,−d1j

dij,−d2j

dij, . . . ,−d|N|j

dij

)vektor lexikogra�kusan a

legkisebb.

• Ha nincs olyan j > 0 index amire dij < 0, akkor a feladatnak nincs megoldása, hiszenxi értéke csak negatív lehet.

Figyeljük meg, hogy a pivotálás során a 0. oszlop lexikogra�kusan csökken, a tábla többioszlopa pedig lexikogra�kusan pozitív marad. Tehát véges sok lépésben elérünk egy optimálismegoldást (ha van), hiszen a 0. oszlop lexikogra�kusan mindig legalább (α, 0, 0, . . . , 0), aholα az optimumérték.

9.1.2 Gomory módszerének végessége

9.1 tétel. Tegyük fel, hogy ismerük egy w számot, amire teljesül, hogy ammennyiben az egész-érték¶ feladat megoldható, akkor az optimum értéke legalább w. Ekkor Gomory vágósíkosalgoritmusa véges sok lépésben véget ér a következ® végkifejletek valamelyikével:

• Találunk egy optimális megoldást

• Találunk egy bizonyítékot hogy nincs megoldás: valamilyen i-re di0 < 0 és dij ≥ 0 mindenj ≥ 1-re

• Nincs megoldás, mert a kapott LP relaxáció optimum-értéke kisebb mint w.

Bizonyítás. El®ször belátjuk, hogy a 0. sorból csak véges sokszor generálhatunk vágást.Ilyenkor d00 nem egész, és a generált vágás:

s−∑j∈N{d0j}xj = −{d00}.

A lexikogra�xus duál szimplex módszer els® lépésében s hagyja el a bázist. Tegyük fel hogydn+1,p a pivotelem; jelöljük d′ij-vel a pivotálás utáni elemeket. Ekkor

d′00 = d00 −{d00}{d0p}

d0p.

Tudjuk: d0p ≥ 0, {d0p} > 0 (mert pivotelem), tehát d0p > 0. Így d0p{d0p} ≥ 1, tehát

d′00 ≤ d00 − {d00} = bd00c.

Tehát a 0. sorból csak véges sokszor generálhatunk vágást, különben a célfüggvény érték walá csökkenne.

A fentiekb®l következik, hogy d00 egy id® után állandó. Mivel a 0. oszlop lexikogra�kusannem n®, ezután d10 nem n®het. Megmutatjuk, hogy csak véges sokszor csökkenhet. Ilyenkoraz els® sorból generálunk vágást, d10 nem egész, és a generált vágás:

s−∑j∈N{d1j}xj = −{d10}.

60

Page 62: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

A lexikogra�xus duál szimplex módszer els® lépésében s hagyja el a bázist. Tegyük fel hogydn+1,p a pivotelem; jelöljük d′ij-vel a pivotálás utáni elemeket. Ekkor

d′10 = d10 −{d10}{d1p}

d1p.

Tudjuk: {d1p} > 0 (mert pivotelem), tehát d1p 6= 0. Másrészt d0p = 0, mert különben a pivotsorán d00 változna, de az már �xálódott. Tehát d1p > 0 mert a p-edik oszlop lexikogra�kusanpozitív. Így

d′10 ≤ d10 − {d10} = bd10c.

Tehát véges sok lépés után d10 vagy �xálódik, vagy negatívvá válik. Nézzük az utóbbi esetet:x1 negatív az aktuális megoldásban. Ebb®l következik, hogy d1j ≥ 0 minden j ∈ N -re,mert különben az oszlop lexikogra�kusan pozitív mivolta miatt d0j > 0, ami azt jelenti hogypivotáláskor d00 csökkenne ellentétben a feltevésünkkel. Viszont ilyenkor annál az esetnélvagyunk, amikor bizonyítékunk van hogy a feladatnak nincs megoldása.

Marad az az eset, amikor d10 is �xálódik egy id® után. Hasonló gondolatmentettelbelátható, hogy d20, d30, . . . , is �xálódik véges sok lépésben, azaz egy id® után az összeseredeti változó �xálódik. De mint láttuk, az utólag hozzávett slack változókból soha nemgenerálunk vágást, tehát az algoritmus véget ér. 2

14 feladat. Mutassuk meg, hogy a Gomory-vágások el®állnak Gomory-Chvatal-vágásként,és fordítva. (Vigyázzunk arra, hogy más alakú feladatoknál képeztük ezen vágásokat. El®bbazonos alakra kell hoznunk a feladatokat.)

9.1.3 Gomory-féle vegyes vágás

Vegyes programozási feladatnál a fentiekben szerepl® vágások nem használhatók, mert nemfeltétlenül érvényesek. Az alábbiakban bemutatunk egy szintén Gomory nevéhez f¶z®d®, kicsitbonyolultabb vágást, ami a vegyes esetre is m¶ködik.

Itt is max{cx : Ax = b, x ≥ 0} alak] feladatot nézünk. Legyen I az egészérték¶ változókindexhalmaza, és J a többi változóé, tehát amikre nincs egészérték¶ségi megkötés.

Ahogy az el®z® fejezetben, nézzünk egy x∗ optimális bázismegoldást. Legyen t ∈ I alegkisebb olyan I-beli index, hogy x∗t /∈ Z. Ekkor a hozzá tartozó egyenlet:

xt +∑j∈N

dtjxj = dt0.

Vezessük be az fj = {dtj} jelölést (j ∈ N ∩ I illetve j = 0).

9.2 tétel. A következ® egyenl®tlenség érvényes, azaz a vegyes programozási feladat mindenmegoldása teljesíti:

1

f0

∑j∈N∩I,fj≤f0

fjxj−1

1− f0

∑j∈N∩I,fj>f0

(fj−1)xj+1

f0

∑j∈N∩J,dtj≥0

dtjxj−1

1− f0

∑j∈N∩J,dtj<0

dtjxj ≥ 1 .

Bizonyítás. Legyen x egy tetsz®leges megoldása a vegyes programozási feladatnak.De�niáljuk az α számot a következ®képpen:

α = xt +∑

j∈N∩I,fj≤f0

bdtjcxj +∑

j∈N∩I,fj>f0

ddtjexj .

61

Page 63: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Mivel x I-be tartozó koordinátái egészek, α egész szám. Az xt+∑

j∈N dtjxj = dt0 egyenletb®lkövetkezik, hogy∑j∈N∩I,fj≤f0

fjxj +∑

j∈N∩I,fj>f0

(fj − 1)xj +∑

j∈N∩J,dtj≥0

dtjxj +∑

j∈N∩J,dtj<0

dtjxj = dt0 − α.

Két esetet különböztetünk meg aszerint, hogy α és dt0 hogy viszonyul egymáshoz.Els® eset: α ≤ bdt0c. Ekkor egyrészt nyilvánvalóan∑

j∈N∩I,fj>f0

(fj − 1)xj +∑

j∈N∩J,dtj<0

dtjxj ≤ 0,

másrészt ∑j∈N∩I,fj≤f0

fjxj +∑

j∈N∩J,dtj≥0

dtjxj ≥ dt0 − α ≥ dt0 − bdt0c = f0.

Ebb®l a kett®b®l már következik a tételbeli egyenl®tlenség, az els®t 1f0−1 , a másodikat 1

f0szorzóval összeadva.Második eset: α ≥ ddt0e. Ekkor egyrészt nyilvánvalóan∑

j∈N∩I,fj≤f0

fjxj +∑

j∈N∩J,dtj≥0

dtjxj ≥ 0,

másrészt ∑j∈N∩I,fj>f0

(fj − 1)xj +∑

j∈N∩J,dtj<0

dtjxj ≤ dt0 − α ≤ dt0 − ddt0e = f0 − 1.

Ebb®l a kett®b®l már következik a tételbeli egyenl®tlenség, az els®t 1f0, a másodikat 1

f0−1szorzóval összeadva. 2

Könny¶ ellen®rizni, hogy maga az x∗ vektor nem teljesíti a tételbeli egyenl®tlenséget, hiszenj ∈ N esetén x∗j = 0. Így az egyenl®tlenség használható a vágósíkos eljárásban. Megjegyzend®,hogy egészérték¶ feladat esetén ez a vágás nem feltétlenül a Gomory-féle egészérték¶ vágástadja vissza.

9.2 Korlátozás és szétválasztás módszere

9.2.1 LP alapú korlátozás és szétválasztás

Tekintsük a következ® alakú feladatot:

zIP := max cx (9.3)

Ax ≤ b (9.4)

x egész, (9.5)

ahol A, b, c egészek. A korlátozás és szétválasztás módszerének alapgondolata az, hogy afeladatot szétválasztjuk részfeladatokra úgy, hogy az eredeti feladat megengedett megoldá-sainak halmaza a részfeladatok megengedett megoldás-halmazainak diszjunkt uniója legyen.Ekkor az eredeti feladat optimum-értéke megegyezik a részfeladatok optimum-értékeinek max-imumával. Az egyes részfeladatokat további részfeladatokra lehet szétbontani, így a vizsgáltfeladatok egy fát alkotnak, aminek gyökerében az eredeti feladat található.

62

Page 64: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

A részfeladatok relevanciájának vizsgálatához van szükség a korlátozásra. A korlátozásazt jelenti, hogy minden részfeladatnál fels® (és esetleg alsó) korlátot számolunk az optimumértékére. Amennyiben egy részfeladatra vonatkozó fels® korlát kisebb mint egy már ismertalsó korlát, akkor azzal a részfeladattal nem kell tovább foglalkozni, törölhetjük a fából.

LP alapú korlátozás és szétválasztásról akkor beszélünk, ha a fels® korlátokat az LP relaxáltoptimuma adja, a szétválasztás pedig lineáris egyenl®tlenségek hozzáadásával történik. Atovábbiakban leírjuk az LP alapú általános algoritmust.

Ha van egy S részfeladatuk, u(S) jelöli az LP relaxált optimumértékét, ami fels® korlátotad az S részfeladat optimum-értékére. Az eredeti feladatunkat S0 jelöli. Az algoritmus soránkapott részfeladatokat egy (S0 gyöker¶) fa csúcsainak tekintjük, és fenntartunk egy jelölt-listát, amin a megoldandó részfeladatok vannak. Az algoritmus lépései:

1. Inicializálás: Az S0 feladatot a jelölt-listára tesszük. Valamilyen heurisztikus módszerrelkiszámolunk egy L alsó korlátot.

2. A jelölt-listáról kiválasztunk egy S feladatot, és kiszámoljuk az u(S) értéket.

(a) Ha u(S) nem létezik, mert az LP relaxált nem megoldható: töröljük S-et a fából

(b) Ha u(S) ≤ L: töröljük S-et a fából

(c) Ha u(S) > L és az LP relaxáltnak van egész optimális megoldása: megjegyezzükezt a megoldást, és L := u(S)

(d) Ha u(S) > L és az LP relaxáltnak nincs egész optimális megoldása: legyen x∗ egyoptimális megoldás, ahol x∗i nem egész. Válasszuk szét S-t S′ és S′′ részfeladatokra,ahol S′-t az xi ≤ bx∗i c feltétel, S′′-t pedig az xi ≥ dx∗i e feltétel hozzávételével kapjukS-b®l. Adjuk S′-t és S′′-t a jelöltlistához (és legyenek ®k S gyerekei a fában).

3. Töröljük S-t a jelölt-listáról. Ha a lista nemüres, ugorjunk a 2. lépésre Ha a lista üres,akkor az utoljára megjegyzett megoldás, aminek értéke L, optimális.

Látható, hogy az algoritmus során több helyen választási lehet®ségünk van.

• Hogyan válasszuk ki a 2.(d) lépésben azt a változót, ami szerint szétválasz-tunk? A szétválasztás annál jobb, minél jobban lecsökkennek a fels® korlátok. Perszenem tudjuk minden lehetséges szétválasztásra kiszámolni, hogy milyen fels® korlátokatadna, ez túl id®igényes lenne. Két módszert említünk meg:

� Strong branching: minden lehetséges szétválasztásnál a kapott részfeladatokonteszünk néhány lépést a duál szimplex módszerrel. Az így kapott fels® korlátokathasonlítjuk össze.

� Hányados módszer: Csak egy lépést teszünk a duál szimplex módszerrel, ezpedig bizonyos hányadosok kiszámolását jelenti. Ha az xi ≤ bx∗i c egyenl®tlenségetvesszük a rendszerhez, a célfüggvény csökkenése egy duál szimplex lépés után

minj∈N :dij>0

d0j

dij{di0},

ahol N a nem-bázis változók halmaza.Ha az xi ≥ dx∗i e egyenl®tlenséget vesszük a rendszerhez, a célfüggvény csökkenéseegy duál szimplex lépés után

minj∈N :dij<0

d0j

dij({di0} − 1).

Ezen értékek alapján választjuk meg, hogy melyik változó szerint választunk szét.Pl. választhatjuk azt, amelyikre a két érték minimuma maximális.

63

Page 65: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Megjegyezzük, hogy a jó szétválasztás a fa gyökerének a közelében igazán fontos. Haa feladatban vannak fontos és kevésbé fontos változók, akkor a fontosabbak szerintérdemes el®ször szétválasztani. Egyébként szétválasztás nem csak változó szerint le-hetséges, hanem más lineáris feltétel szerint is: dx ≤ bdx∗c illetve dx ≥ ddx∗e feltételhozzávételével.

• Hogyan válasszuk ki a jelölt-listáról a vizsgálandó feladatot? Itt is több módszerlehetséges, a hasznosságuk a feladat típusától függ.

� Best �rst: A legmagasabb fels® korlátot adó részfeladatot választjuk. Ennek azaz el®nye, hogy az algoritmus során csak olyan részfeladatokat vizsgálunk meg,amiket mindenképpen meg kell vizsgálnunk. Hátránya, hogy egyrészt nem kapunkhamar megengedett megoldást, másrészt össze-vissza ugrálunk a fában, így nemtudjuk kihasználni az egymás után vizsgált feladatok hasonlóságát.

� Depth �rst: Olyan mélyre megyünk a fában, amilyen mélyre csak tudunk. Ittaz egymás után vizsgált részfeladatok hasonlóak és hamar megengedett megoldástkapunk, de az össz-lépésszám sokkal több lehet mint Best �rst-nél.

9.2.2 Korlátozás ügyesebben

A leírt algoritmusban a fels® korlátokat egyszer¶en az LP relaxáció optimális megoldása adta.Ezen többféle módon is lehet javítani. Néhány lehet®ség a részletek ismertetése nélkül:

• Preprocessing: Az IP feladatunkat leíró lineáris rendszer sokszor jelent®sen egysz-er¶síthet® (pl. redundáns feltételek elhagyása, változók számának csökkentése lineárisösszefüggések segítségével, logikai implikációk hozzáadása). Ilyen átalakításokat mindenrészfeladatnál elvégezhetünk, miel®tt kiszámoljuk a fels® korlátot.

• Vágás és szétválasztás: Vágás típusú algoritmusokat szubrutinként beépíthetünk akorlátozás és szétválasztás módszerébe, a következ®képpen: amikor egy részfeladathozjutunk, az ®t leíró lineáris rendszeren futtatunk meghatározott ideig egy vágósíkos al-goritmust. Az így kapott jobb lineáris rendszert használjuk a fels® korlát kiszámításáraés szétválasztás esetén az új részfeladatok de�niálására.

• Alsó korlátok számolása: Sokszor az egyes részfeladatoknál a fels® korlát kiszámolásamellett alsó korlátokat is érdemes számolni. Ezt valamilyen egyszer¶ heurisztikávaltehetjük meg (mohó algoritmus, kerekítés, lokális keresés).

9.2.3 Alkalmazás a bináris hátizsák-feladatra

Nézzünk egy bináris hátizsák-feladatot:

max{n∑j=1

cjxj :n∑j=1

ajxj ≤ b, x ∈ {0, 1}n}.

A feladatnak két tulajdonsága van, ami miatt a korlátozás és szétválasztás módszere egysz-er¶södik:

• A hátizsák-feladat LP relaxációja nagyon egyszer¶en megoldható: fajlagos érték szerintisorrendben kell betenni a tárgyakat, és legfeljebb egy lesz, aminek csak törtrésze fér be,tehát az optimális megoldásban legfeljebb egy törtérték¶ változó lehet.

64

Page 66: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

• Ha bizonyos változók értékét 0-ra vagy 1-re rögzítjük, továbbra is bináris hátizsák-feladatunk lesz: b-b®l le kell vonni az 1-re rögzített változók súlyát.

A korlátozás és szétválasztás algoritmusra nézve ez a következ®ket jelenti:

• Nagyon gyorsan meghatározható az a változó, ami szerint szétválasztunk. Ráadásulaz LP optimumból a részben bevett tárgy elhagyásával egészérték¶ megoldást kapunk,amivel esetleg lecserélhetjük az eddig talált legjobb megoldást és növelhetjük az alsókorlátot.

• A szétválasztás során keletkezett feladatok is hátizsákfeladatok, hiszen egy változótrögzítünk 0-ra vagy 1-re. Így az LP minden részfeladatnál könnyen megoldható lesz, s®tegyre könnyeb ahogy egyre kevesebb a rögzítetlen változó.

Bináris változónál történ® szétválasztásnál

9.3 Lagrange-relaxáció

Bevezet®.

9.3.1 Lagrange-duális feladat

Tekintsük a következ® feladatot.

zIP := max cx (9.6)

Ax ≤ b

Dx ≤ d

x egész,

ahol az A,D, b, d, c komponensei egészek. Vezessük be a következ® jelölést:

X := {x ∈ Zn : Dx ≤ d}.

Amost következ® eljárás motivációjaként tegyük fel, hogy azX halmazon könnyen ki tudjukszámítani tetsz®leges lineáris célfüggvény optimumát (például minimális súlyú feszít®fa, vagyhátizsákfeladat), ámde az Ax ≤ b feltételek megléte mellett a feladat már nehézzé válik(például utazóügynök feladattá). Az Ax ≤ b feltétel elhagyásával is relaxáljuk a feladatot, dene elégedjünk meg most ennyivel, valamelyest ügyeljünk a teljesülésére. Tegyük a következ®t:legyen λ ≥ 0 egy, a b dimenziójával megegyez® dimenziójú vektor, és a rögzítése melletttekintsük a következ®, λ-paraméter¶ Lagrange-feladatot :

Lagrange�feladat

L(λ) := max cx+ λ(b−Ax) (9.7)

x ∈ X.

Azt mondjuk, hogy az Ax ≤ b feltételeket relaxáltuk, és beépítettük a célfüggvénybe.

9.3 lemma. Amennyiben a (9.6) feladatnak van optimális megoldása, akkor tetsz®leges λ ≥ 0esetén zIP ≤ L(λ).

65

Page 67: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Bizonyítás. Trivi. 2

Az el®z® lemma fényében érdemes megkeresnünk a legjobb fels® korlátot, azaz tekintsük akövetkez®, Lagrange-duális feladatot:

Lagrange-duális feladat

zLD := minL(λ) (9.8)

λ ≥ 0.

Amenyiben X = {x1, . . . xm} véges halmaz, akkor az L : Rm → R függvény a következ®alakban is írható.

L(λ) = maxi=1,...m

(cxi + λ(b−Axi)). (9.9)

Vegyük észre, hogy az L függvény lineáris függvények ún. fels® burkolója, következésképpkonvex és �szakaszonként lineáris�1 Mindebb®l az is következik, hogy a nagyon sok feltétellelrendelkez® lineáris program optimuma zLD!

minβ (9.10)

β ≥ cxi + λ(b−Axi)i = 1, . . .m.

A 9.3 lemma értelmében zIP ≤ zLD teljesül, ámde példa adható arra, amikor a szigorúegyenl®tlenség áll. A következ® fejezet témája a föls® korlát er®ssége.

Könnyen látható, hogy amennyiben a relaxálandó feltételek között szerepel ax ≤ γ és−ax ≤ −γ, akkor ekvivalens módon járunk el, ha az ax = γ feltételt tetsz®leges el®jel¶együtthatóval építjük a célfüggvénybe.

9.3.2 A Lagrange-duális feladat er®ssége

A következ® tétel azt mutatja meg, milyen er®s is a Lagrange-duális.

9.4 tétel (Geo�rion, 1974). A Lagrange-duális feladat zLD optimuma megegyezik a következ®lineáris program optimumával:

max cx (9.11)

Ax ≤ b

x ∈ conv(X).

Bizonyítás. A tétel ugyanazzal a technikával bizonyítható, mint a TSP-nél az optimálisHeld-Karp korlát és a lineáris programozási alsó korlát azonossága. 2

Az eredeti feladat lineáris programozási relaxáltjának nevezzük a következ® feladatot.

zLP := max cx (9.12)

Ax ≤ b

Dx ≤ d

x ∈ Rn.

A 9.4 tétel következménye az alábbi.

1Szögletes parabola, ahogyan a diáknyelv szellemeskedi.

66

Page 68: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

9.5 Következmény. zIP = zLD minden c költségfüggvényre pontosan akkor teljesül, ha

conv(X ∩ {x : Ax ≤ b}) = conv(X) ∩ {x : Ax ≤ b},

zLP = zLD minden c költségfüggvényre pontosan akkor teljesül, ha

conv(X) = {x : Dx ≤ d}.

9.3.3 A szubgradiens-módszer

Az alábbiakban ismertetjük a szubgradiens-módszert �szakaszonként lineáris� konvex függvényminimumának megkeresésre, aztán megmutatjuk, hogy ez hogyan alkalmazható a Lagrange-duális feladat optimumának megkeresésére.

A következ® lemmát bizonyítás nélkül felhasználjuk.

9.6 lemma. Az f : Rn → R függvény pontosan akkor konvex, ha tetsz®leges x∗ ∈ Rn ponthozlétezik olyan s ∈ Rn vektor, melyre

f(x) ≥ f(x∗) + s(x− x∗)

teljesül minden x ∈ Rn esetén.

A lemmában szerepl® s vektort az f x∗-beli szubgradiensének nevezzük. Az x∗-beli szub-gradiensek halmazát pedig ∂f(x∗) jelöli.

(Amennyiben f di�erenciálható x∗-ban, könnyen látható, hogy ∂f(x∗) = {∇f(x∗)}.)A továbbiakban tekintsük a következ® Rn → R lineáris függvényeket:

x 7→ hi + fix,

ahol hi, fi ∈ Rn, és i = 1, 2, . . .m.Ezen függvények fels® burkolója:

Z(x) := maxi=1,...m

hi + fix.

Legyen E(x) := {i : Z(x) = hi + fix}. Világos, hogy Z konvex függvény. Z szubgradienseir®lszól az alábbi.

9.7 lemma. Minden i ∈ E(x∗) index esetén fi ∈ ∂Z(x∗). Továbbá ∂Z(x∗) = conv(fi : i ∈E(x∗)).

Bizonyítás. A bizonyítás házi feladat a Farkas-lemma segítségével! 2

Most megadjuk az általános szubgradiens algoritmust, amely az f függvény minimumáthatározza meg.

Általános szubgradiens-algoritmus

• Válasszunk egy kezd® x1 pontot.

• Iteratív lépés: xi+1 := xi − αisi, ahol si ∈ ∂f(xi), αi pedig egy pozitív

lépéshossz.

• Leállási kritérium: 0 ∈ ∂f(xi), azaz minimumhelyhez jutottunk.

67

Page 69: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

A fenti algoritmus alkalmazásaiban a leállási kritérium ritkán teljesül, általában elegend®id® elteltével fejez®dik be az algoritmus. Az αi lépéshosszt a konvergencia lehet®ségénekmegadása miatt célszer¶ egyre csökkenteni. (Amennyiben

∑∞i=1 αi divergens, αi pedig a 0-

hoz konvergál, megmutatható, hogy a fenti algoritmus konvergálni fog az f minimumhelyéhez.Ámde a tapasztalat szerint ekkor elég lassú a konvergencia.)

A továbbiakban megadjuk szubgradiens-módszer (9.9) minimalizálására szolgáló módosí-tását.

Szubgradiens-algoritmus

• Válasszunk egy kezd® λ1 értéket.

• Iteratív lépés: λi+1 := max(λi − αi(b − Ax(λi)), 0), ahol x(λi) a (9.9) feladatoptimális megoldása, αi pedig egy pozitív lépéshossz.

Az algoritmus módosítására azért volt szükség, mert az L csak nemnegatív vektorokon vanértelmezve. Ezért az iteratív lépésben a negatív koordinátákra való változtatást egyszer¶en 0-ra való változtatással kerüljük el. Meg kell még mutatnunk, hogy valóban egy szubgradiensselellentétes irányba lépünk.

9.8 állítás. b−Ax(λi) ∈ ∂L(λi).

Bizonyítás. Könnyen látható. 2

9.4 Csoport-feladat

A csoport-feladat az egészérték¶ programozási feladat egy olyan relaxációja, ahol nem azegészérték¶ségb®l engedünk, hanem bizonyos feltételeknél egyenl®ség helyett csak azonosmaradékosztályba esést követelünk. Innen jön a �csoport-feladat� elnevezés � a maradékosztá-lyok csoportjáról van szó.

Legyen az egészérték¶ programozási feladatunk max{cx : Ax = b, x ∈ Zn+} alakban adva,ahol A egy m×n-es egész mátrix, b és c pedig egész vektorok. Legyen K egy p rangú m×p-esegész mátrix, és β ∈ Rp. A csoport-feladat a következ® egészérték¶ optimalizálási feladat:

zK(b) = max cx− βwAx−Kw = b

x ∈ Zn+w ∈ Zp

Hogyan válasszuk meg a β vektort? Az eredeti feladat LP-relaxációjának duálisa min{ub :uA ≥ c, u ∈ Rm}. Feltesszük hogy ennek van optimális megoldása: u∗. Válasszuk a β = u∗Kértéket. Így a csoport-feladat a következ® alakba írható:

zK(b) = u∗b+ max(c− u∗A)x

x ∈ SK(b),

aholSK(b) = {x ∈ Zn+ : Ax−Kw = b valamilyen w ∈ Zp-re}.

68

Page 70: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Figyeljük meg, hogy c − u∗A ≤ 0 és u∗b az LP-relaxáció optimuma, tehát itt a csoport-feladat optimum-értéke legfeljebb az LP-relaxáció optimum-értéke.

A továbbiakban az SK(b) halmaz egy szebb reprezentációját akarjuk megadni. Ehhez a Kmátrix Smith-féle normálalakját használjuk:

9.9 tétel. Ha K egy p rangú m× p-es egész mátrix, akkor létezik R és C unimoduláris egészmátrix a következ® tulajdonságokkal: R m×m-es, C p×p-es, és RKC = ∆, ahol a ∆ m×p-es mátrixnak csak a δi,i (i = 1, . . . , p) elemei nemnullák, ezek pozitív egészek, és δi,i osztójaδi+1,i+1-nek.

A ∆ mátrixra nézve már értelmezhet®ek a maradékosztályok: egy d ∈ Zm vektorra

φ∆(d)i =

{di mod δi,i ha i ≤ p,di egyébként.

Ennek segítségével már megadhatjuk SK(b) kanonikus alakját.

9.10 állítás.

SK(b) = {x ∈ Zn+ :

n∑j=1

φ∆(Raj)xj ≡ φ∆(Rb) mod ∆}.

Bizonyítás.

SK(b) = {x ∈ Zn+ : Ax−Kw = b valamilyen w ∈ Zp-re}= {x ∈ Zn+ : RAx−RKw = Rb valamilyen w ∈ Zp-re}.

Mivel C unimoduláris, Cw pontosan akkor egész vektor ha w is az. Ezért

SK(b) = {x ∈ Zn+ : RAx−RKCw′ = Rb valamilyen w′ ∈ Zp-re}= {x ∈ Zn+ : RAx = Rb+ ∆w′ valamilyen w′ ∈ Zp-re}.

2

A fentiek alapján a csoport-feladat a következ® alakra hozható:

zK(b) = u∗b+ maxn∑j=1

(cj − u∗aj)xj

n∑j=1

φ∆(Raj)xj ≡ φ∆(Rb) mod ∆

x ∈ Zn+.

Tekintsük most azt az esetet, amikor p = m, azaz K egy m ×m-es nem-szinguláris egészmátrix. Ekkor összesen

∏mi=1 δi,i = |det(K)| maradékosztályunk van. Mivel cj − u∗aj ≤ 0

minden j-re, a csoport-feladat itt megoldható minimális költség¶ út keresési feladatként egy| det(K)| csúcsszámú irányított gráfon.

9.5 Sarokpoliéderek és metszet vágások

Az el®z® fejezetben max{cx : Ax = b, x ∈ Zn+} alakú feladatot néztünk, és egy K mátrixsegítségével írtuk fel a csoport-feladatot. Nézzük meg, hogy mi történik, ha K = B, ahol Baz LP-relaxáció optimális bázisa! Feltesszük, hogy A és b egészek.

SB(b) = {x ∈ Zn+ : B−1Ax− w = B−1b valamilyen w ∈ Zm-re}.

69

Page 71: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Mivel a bázisváltozók oszlopaira megszorítva B−1A egységmátrix, ez ekvivalens a következ®vel(N jelöli a bázisban nem szerepl® változók indexhalmazát):

SB(b) = {x ∈ Zn : Ax = b, xj ≥ 0 ha j ∈ N}.

Tehát a csoportfeladatnak az a relaxáció felel meg, hogy a bázisváltozókra elhagyjuk a nemneg-ativitási feltételt. A továbbiakban ennek a relaxációnak a megoldáshalmazával foglalkozunk.

Vezessük be az A = B−1A, b = B−1b és S = SB(b) jelöléseket, legyen x a bázismegoldás,és az egyszer¶ség kedvéért tegyük fel, hogy B = {1, 2, . . . ,m}. Ezekkel

S = {x ∈ Zn : xi = bi −∑j∈N

aijxj (i ∈ B), xj ≥ 0 (j ∈ N)}.

9.11 de�níció. A conv(S) halmazt a B bázishoz tartozó sarokpoliédernek nevezzük, éscorner(B)-vel jelöljük.

Ha S de�níciójában elhagyjuk az egészérték¶ségi feltételt, a következ® poliédert kapjuk:

P (B) = {x ∈ Rn : xi = bi −∑j∈N

aijxj (i ∈ B), xj ≥ 0 (j ∈ N)}.

9.12 állítás. A P (B) poliédernek egyetlen csúcsa van: x, és n−m extrém iránya: rj (j ∈ N)ahol

rji =

−aij ha i ∈ B1 ha i = j

0 egyébként.

Bizonyítás. Könnyen látható. 2

9.13 állítás. Ha a�(P (B)) tartalmaz egész pontot, akkor corner(B) n−m dimenziós.

Bizonyítás. Belátjuk, hogy corner(B) nemüres. Ebb®l már következik az állítás, hiszenMeyer tétele (2.1. tétel) miatt ekkor P (B) és corner(B) karakterisztikus kúpja megegyezik.Legyen x ∈ a�(P (B)) ∩ Zn, és N− = {j ∈ N : xj < 0}. Ha N− = ∅, akkor kész vagyunk.Különben legyen k olyan pozitív egész szám, hogy kaij ∈ Z minden i ∈ [m], j ∈ N−-ra.Tekintsük a következ® x′ vektort: x′j = xj ha j ∈ N \ N−, x′j = xj − kbxj/kc ha j ∈ N−,végül x′i = bi −

∑j∈N aijx

′j ha i ∈ B. Könny¶ ellen®rizni, hogy x′ ∈ corner(B). 2

A továbbiakban corner(B)-re érvényes vágásokat fogunk keresni. Ez azért hasznos, mertezek a vágások nyilvánvalóan érvényesek az eredeti feladatra is, így használhatjuk ®ketvágósíkként. Jegyezzük meg, hogy ha b egész, akkor corner(B) = P (B), tehát ekkor nincseneknemtriviális vágások. Ezért mostantól feltesszük, hogy x nem egész, és ®t leválasztó vágástkeresünk. Ráadásul mivel a bázisváltozók kifejezhet®k a többi változó lineáris kombináció-jaként, elég olyan egyenl®tlenségeket nézni, amikben csak a nembázis-változók szerepelnek.

9.14 lemma. Ha corner(B) nemüres, akkor minden nemtriviális vágás∑

j∈N γjxj ≥ 1 alakú,ahol γj ≥ 0 (j ∈ N).

Bizonyítás. Tekintsünk egy∑

j∈N γjxj ≥ β vágást. Ha valamilyen l − re γl < 0, akkor∑j∈N γjr

lj = γl < 0, ellentmondásban azzal, hogy rl végtelen iránya corner(B)-nek. Tehát

γj ≥ 0 minden j ∈ N -re, és persze β > 0 ha a vágás nemtriviális, tehát az általánosságmegszorítása nélkül feltehetjük, hogy β = 1. 2

Az alábbiakban Egon Balas módszerét ismertetjük ilyen vágások konstruálására.

70

Page 72: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

9.15 de�níció. Egy C ⊆ Rn konvex zárt halmaz rácspontmentes, ha a belsejében nincs egészvektor. Legyen C rácspontmentes konvex zárt halmaz aminek x a belsejében van, és legyen

αj = sup{α : x+ αrj ∈ C} (j ∈ N).

Ekkor a C által meghatározott metszet vágás a∑

j∈Nxjαj≥ 1 vágás (itt αj értéke lehet +∞,

ekkor 1αj

= 0).

9.16 tétel (Balas). Tetsz®leges C rácspontmentes konvex zárt halmazra, aminek x a belsejébenvan, az általa meghatározott metszet vágás érvényes corner(B)-re.

Bizonyítás. Megmutatjuk, hogy P (B)-nek az a része, ami nem teljesíti az egyenl®tlenséget,C belsejében van. Ebb®l következik az állítás, hiszen C belsejében nincs egész vektor.

Legyen Q = P (B) ∩ {x ∈ Rn :∑

j∈Nxjαj< 1} (azaz P (B)-nek az a része, ami nem teljesíti

az egyenl®tlenséget) és legyen Q = P (B) ∩ {x ∈ Rn :∑

j∈Nxjαj≤ 1}. A Q halmaz egy

n −m dimenziós poliéder, aminek csúcsai x, x + αjrj (azon j indexekre, amikre αj véges),

extrém irányai pedig rj (azon j indexekre, amikre αj végtelen). Mivel a∑

j∈Nxjαj

= 1 lapon

az x + αjrj csúcsok vannak, Q minden pontja kifejezhet® mint az {x + αrj (0 ≤ α < αj)}

félig nyílt szakaszok pontjainak konvex kombinációja plusz az extrém irányok nemnegatívkombinációja. Mivel ezek a félig nyílt szakaszok C belsejében vannak, Q is része C belsejének.2

9.17 tétel. Minden, corner(B)-re érvényes vágás metszet vágás valamilyen C-re.

Bizonyítás. Legyen∑

j∈N γjxj ≥ 1 egy nemtriviális vágás; ekkor a 9.14. lemma szerintγj ≥ 0 minden j ∈ N -re. Vegyük P (B)-nek egy olyan Dx ≤ d leírását, ahol D egész mátrixés d egész vektor. Legyen

C = {x ∈ Rn : Dx ≤ d+ 1,∑j∈N

γjxj ≤ 1}.

Figyeljük meg, hogy C-nek nincs egész vektor a belsejében, hiszen arra Dx ≤ d teljesülne, ígyP (B)-beli egész vektor lenne amire

∑j∈N γjxj < 1, ellentmondva a vágásunk érvényességének.

Tehát C egy rácspontmentes konvex zárt halmaz, aminek x a belsejében van, és könny¶ellen®rizni, hogy az általa adott metszet vágás pont

∑j∈N γjxj ≥ 1. 2

A lényeges vágások megtalálásához elég tartalmazásra maximális rácspontmentes konvexzárt halmazokat nézni. Bizonyítás nélkül ismertetjük Lovász tételét ezek struktúrájáról.

9.18 tétel (Lovász). Ha C tartalmazásra maximális teljes dimenziós rácspontmentes konvexzárt halmaz, akkor C = P + L, ahol P poliéder, L lineáris altér, dim(P ) + dim(L) = n, és Cminden lapjának relatív belsejében van egész pont.

9.19 állítás. Ilyen C-nek legfeljebb 2n lapja van.

Bizonyítás. Legyen xF az F lap belsejében lév® egész pont. Ha 2n-nél több lap lenne,akkor a skatulya-elv szerint lenne két olyan lap (F1, F2), hogy minden koordinátában xF1

és xF2 paritása megegyezik. Ekkor viszont xF1+xF2

2 is egész vektor, és C belsejében van,ellentmondásban a rácspontmentességgel. 2

Megjegyezzük, hogy a fentiekhez hasonló tételeket lehet kimondani vegyes programozásifeladatokra is, és a módszer igazán ilyen feladatoknál hasznos. A vágásokat annyi dimenziósrácspontmentes poliéderek határozzák meg, ahány egész változó van.

71

Page 73: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

9.6 Felemelés és vetítés

A felemelés és vetítés (lift and project) módszere bináris egészérték¶ programozási felada-toknál használható megengedett vágások keresésére. A módszer két fázisból áll: a felemelésifázisban felírunk egy kvadratikus programozási feladatot, ami er®sebb az LP relaxáltnál, majdezt a kvadratikus feladatot linearizáljuk újabb változók bevezetésével (tehát felemeljük egymagasabb dimenziós térbe, innen a név). A vetítési fázisban ezt a magasabb dimenzióspoliédert levetítjük az eredeti térbe.

Nézzük el®ször, hogyan kell vetíteni. Egy P = {(x, z) ∈ Rn+d : Ax + Bz ≤ b} poliédervetülete az x változók terére Px = {x ∈ Rn : ∃z ∈ Rd : (x, z) ∈ P}.

9.20 állítás. Legyen C = {y : yB = 0, y ≥ 0}, és legyen E a C kúp extrém irányainakhalmaza. Ekkor Px = {x ∈ Rn : (yA)x ≤ yb ∀y ∈ E}.

Bizonyítás. Legyen Q = {x ∈ Rn : (yA)x ≤ yb ∀y ∈ E} = {x ∈ Rn : (yA)x ≤ yb ∀y ∈ C}.El®ször belátjuk, hogy Px ⊆ Q. Ha x ∈ Px, akkor létezik z, hogy (x, z) ∈ P , és ekkor

y ∈ E-re(yA)x = (yA)x+ (yB)z = y(Ax+Bz) ≤ yb.

Most belátjuk, hogy Q ⊆ Px. Legyen x ∈ Q; a de�níció szerint y(b−Ax) ≥ 0 minden y ∈ C-re, és ez a Farkas lemma értelmében azzal ekvivalens, hogy létezik z ∈ Rd amire Bz ≤ b−Ax.Azaz (x, z) ∈ P , tehát x ∈ Px. 2

Az állítás értelmében Px leírásához a C kúp extrém irányait kell ismerni; ez persze nemmindig áll rendelkezésre, s®t akár exponenciálisan sok extrém irány is lehet. De bizonyosszerencsés esetekben meg tudjuk határozni a vetületet.

A felemelés és vetítés algoritmus egy kijelölt változót próbál meg egészérték¶vé tenni.Kés®bb látni fogjuk, hogy egymás után többször alkalmazva meg is oldja a bináris prog-ramozási feladatot (persze nem polinom id®ben).

Felemelés és vetítés algoritmus

Feltesszük, hogy a feladatunk megengedett tartománya F = {x ∈ {0, 1}n : Ax ≤ b},A és b egészek, és a 0 ≤ x ≤ 1 egyenl®tlenségek benne vannak az Ax ≤ b rendszerben.Input: A, b, j ∈ {1, . . . , n}Output: egy Pj poliéder

• Vegyük azt a kvadratikus rendszert, amit úgy kapunk, hogy az Ax ≤ b egyen-l®tlenségeit megszorozzuk xj-vel, illetve (1− xj)-vel:

(Ax)xj ≤ bxj , (9.13)

(Ax)(1− xj) ≤ b(1− xj). (9.14)

Figyeljük meg, hogy az így kapott egyenl®tlenségek érvényesek F minden el-emére.

• (Lift) Vegyünk fel minden i ∈ {1, . . . , n} \ {j}-re egy új yij változót. A fentiegyenl®tlenségekben helyettesítsük xixj-t yij-vel, és helyettesítsük x2

j -et xj-vel(az utóbbit az motiválja, hogy xj ∈ {0, 1} esetén tényleg xj = x2

j ). LegyenLj(P ) az így kapott poliéder az (x, y) térben.

• (Project) Vetítsük Lj(P )-t vissza az x változók terére: Pj = (Lj(P ))x.

72

Page 74: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

9.21 tétel. Legyen P = {x ∈ Rn : Ax ≤ b}. Ekkor a Lift-and-Project algoritmussal kapottpoliéder:

Pj = conv(P ∩ {x ∈ Rn : xj ∈ {0, 1}}).

Bizonyítás. A Pj ⊇ conv(P ∩ {x ∈ Rn : xj ∈ {0, 1}}) irány bizonyításához legyen x ∈P ∩ {x ∈ Rn : xj ∈ {0, 1}}, és legyen yij = xixj (i 6= j). Mivel x teljesíti a (9.13-9.14)egyenl®tlenségeket és xj = x2

j , ezért (x, y) ∈ Lj(P ), tehát x ∈ Pj .A másik irány bizonyítását több esetre osztjuk. Az mindenesetre világos, hogy Pj ⊆ P ,

hiszen az egymásnak megfelel® (9.13)-(9.14) egyenl®tlenség-párokat összeadva azt kapjuk,hogy Ax ≤ b érvényes tetsz®leges (x, y) ∈ Lj(P )-re.1. eset: P ∩ {x ∈ Rn : xj = 0} = ∅. Ekkor a Farkas Lemma következtében létezik y ≥ 0,

amire yA = −ej és yb = −ε valamilyen ε > 0-ra (itt ej a j-edik egységvektor). Mivel mindenx-re, amire a (9.13-9.14) egyenl®tlenségek teljesülnek, teljesül yAx(1 − xj) ≤ yb(1 − xj) is,így az ilyen x-ekre −ejx(1− xj) = xj(1− xj) ≤ −ε(1− xj). A linearizáláskor ebb®l az lesz,hogy 0 ≤ −ε(1 − xj), tehát ez egy érvényes egyenl®tlenség Lj(P )-re, de mivel xj ≤ 1 bennevan a rendszerben, ezért xj = 1 is érvényes Lj(P )-re, tehát Pj-re is.2. eset: P ∩ {x ∈ Rn : xj = 1} = ∅. Ez hasonlóan bizonyítható mint az el®z® eset.3. eset: P ∩ {x ∈ Rn : xj = 0} 6= ∅ és P ∩ {x ∈ Rn : xj = 1} 6= ∅. Azt látjuk be, hogy

minden conv(P ∩{x ∈ Rn : xj ∈ {0, 1}})-re érvényes ax ≤ β egyenl®tlenség Pj-re is érvényes.El®ször belátjuk, hogy ekkor létezik λ ≤ 0, hogy ax + λxj ≤ β minden x ∈ P -re. Valóban,x ∈ P és xj = 0 esetén bármilyen λ jó, tehát, kihasználva hogy P -nek véges sok csúcsa van,kell lenni λ-nak ami minden x ∈ P -re jó.

Hasonlóan: létezik ν ≤ 0, hogy ax+ ν(1− xj) ≤ β minden x ∈ P -re. Itt x ∈ P és xj = 1esetén bármilyen ν jó, tehát, mivel P -nek véges sok csúcsa van, kell lenni ν-nak ami mindenx ∈ P -re jó.

Ezek szerint ha egy x kielégíti a (9.13-9.14) egyenl®tlenségeket, akkor (1−xj)(ax+λxj) ≤(1− xj)β és xj(ax+ ν(1− xj)) ≤ xjβ. Ezeket összeadva:

ax+ (λ+ ν)(xj − x2j ) ≤ β,

Tehát az xj = x2j átírással ax ≤ β érvényes Lj(P )-re, tehát Pj-re is. 2

Az algoritmust persze alkalmazhatjuk egymás után a különböz® változókra, mondjukj1, . . . , jt sorrendben. Jelölje Pj1,...,jt az így kapott poliédert.

9.22 tétel.Pj1,...,jt = conv(P ∩ {x ∈ Rn : xji ∈ {0, 1}, i = 1, . . . , t}).

Bizonyítás. A tételt t szerinti indukcióval bizonyítjuk. A 9.21 Tétel szerint t = 1 re azállítás igaz, úgyhogy tegyük fel hogy t ≥ 2. Legyen Q = {x : xji ∈ {0, 1}, i = 1, . . . , t − 1}.Ekkor

Pj1,...,jt = (conv(P ∩Q))jt (9.15)

= conv(conv(P ∩Q) ∩ {x : xjt ∈ {0, 1}}) (9.16)

= conv((conv(P ∩Q) ∩ {x : xjt = 0}) ∪ (conv(P ∩Q) ∩ {x : xjt = 1})) (9.17)

= conv(conv(P ∩Q ∩ {x : xjt = 0}) ∪ conv(P ∩Q ∩ {x : xjt = 1})) (9.18)

= conv((P ∩Q ∩ {x : xjt = 0}) ∪ (P ∩Q ∩ {x : xjt = 1})) (9.19)

= conv(P ∩ {x : xji ∈ {0, 1}, i = 1, . . . , t}). (9.20)

Itt (9.16) a 9.21 Tétel következménye; (9.18) onnan jön, hogy egy hipersíkot be lehet vinni aconv-on belülre; (9.19) pedig annak köszönhet®, hogy conv(conv(A)∪conv(B)) = conv(A∪B).2

73

Page 75: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

A tételb®l következik, hogy a végeredmény szempontjából mindegy milyen sorrendbencsináljuk a változókra a Lift-and-Project-et, és ha az összes változóra megcsináljuk, akkoréppen az egész pontok konvex burkát kapjuk. Persze ebb®l nem lesz polinomiális algoritmus,hiszen a vetítést nem feltétlenül tudjuk polinom id®ben megcsinálni.

9.7 Benders dekompozíció

A Benders dekompozíció (Benders, 1962) f®leg olyan vegyes programozási feladatoknálhasználható jól, ahol kevés egészérték¶ változó van. A módszer bizonyos értelemben a La-grange relaxáció �duálisa�: míg ott az egyel®tlenségeket bontottuk egy könnyebb és egy ne-hezebb részre, itt a változókkal tesszük ezt.

A következ® feladatot szeretnénk megoldani:

min cx+ fz

Ax+Bz ≥ bx ∈ Rn+z ∈ Zd

Rögzített z ∈ Zd vektorra tekinthetjük a következ® LP (z) alfeladatot:

min cx+ fz

Ax ≥ b−Bzx ∈ Rn+

A duális D(z) feladat:

max y(b−Bz) + fz

yA ≤ cy ∈ Rm+

Legyen Q = {y ∈ Rm+ : yA ≤ c} a megengedett duális megoldások halmaza; vegyük észre,hogy ez nem függ z-tól. Feltesszük, hogy Q nemüres. Legyenek q1, . . . , qk a Q csúcsai, ésr1, . . . , rk a Q extrém irányai (csúcs biztos van, extrém irány nem feltétlenül). Ha egy riextrém irányra ri(b−Bz) > 0, akkor a D(z) feladat célfüggvényértéke nem korlátos, tehát azLP (z) alfeladat nem megoldható.

Ha viszont nem létezik ilyen ri, akkor az LP (z) alfeladat optimumértéke maxi=1,...,k qi(b−Bz). Tehát a következ® úgynevezett Benders f®feladat ekvivalens az eredeti feladatunkkal:

minα (9.21)

fz + qi(b−Bz) ≤ α (i = 1, . . . , k) (9.22)

ri(b−Bz) ≤ 0 (i = 1, . . . , l) (9.23)

z ∈ Zd (9.24)

A (9.22) egyenl®tlenségeket optimalitási feltételeknek, míg a (9.23) egyenl®tlenségeketmegengedettségi feltételeknek nevezzük. Csökkentett f®feladatról beszélünk, ha az optimal-itási és megengedettségi feltételek egy részét kihagyjuk a rendszerb®l. A Benders mód-szer úgy m¶ködik, hogy kiindulunk egy csökkentett f®feladatból amit könnyen meg tudunkoldani, és utána egyesével veszünk hozzá optimalitási vagy megengedettségi feltételeket. Ez ekövetkez®képpen történik.

74

Page 76: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

1. Megoldjuk a csökkentett f®feladatot. Optimális megoldás: (z, α). Figyeljük meg, hogyα alsó korlát az eredeti feladat optimumára.

2. Megoldjuk az LP (z) és D(z) feladatokat.

• Ha LP (z)-nak az optimumértéke α, kész vagyunk.

• Ha az optimumérték szigorúan nagyobb mint α, legyen qi a D(z) feladat opti-mális csúcsa. Ekkor a f®feladatban a (z, α) megoldás nem teljesíti a qi-hez tartozóoptimalitási feltételt. Vagyük ezt hozzá a csökkentett f®feladathoz.

• Ha LP (z)-nak nincs megoldása, akkor D(z) nem korlátos, tehát van ri, amireri(b − Bz) > 0. Ekkor a f®feladatban a (z, α) megoldás nem teljesíti az ri-heztartozó megengedettségi feltételt. Vagyük ezt hozzá a csökkentett f®feladathoz.

3. Folytassuk az algoritmust az új csökkentett f®feladattal.

Megjegyzés: az algoritmus közelít® algoritmusként is jól használható, hiszen ha az LP (z)alfeladat optimumértéke közel van α-hoz, akkor az optimumhoz is közel van.

9.8 Graver-féle teszthalmaz

Ezt a módszert akkor használhatjuk, ha sok különböz® feladatot akarunk megoldani, amikneka mátrixa ugyanaz, csak a változók korlátjában és a jobboldalban térnek el. De�niáljunk egyfeladatosztályt:

IP (b, c, u) = min{cx : Ax = b, 0 ≤ x ≤ u, x ∈ Zn}.

Jelölje Oj az Rn j-edik ortánsát (j = 1, . . . , 2n). Legyen Cj = Oj ∩ {x ∈ Rn : Ax = 0}, ezegy csúcsos racionális kúp, tehát van egy Hj egyértelm¶ minimális Hilbert-bázisa.

9.23 de�níció. A H = ∪jHj halmazt a feladatcsalád Graver teszthalmazának nevezzük.

A teszthalmaz elnevezést az indokolja, hogy egy adott megoldásról a teszthalmaz segít-ségévél el tudjuk dönteni, hogy optimális-e, és ha nem, tudunk egy jobb megoldást találni.Err®l szól a következ® tétel.

9.24 tétel. Ha az IP (b, c, u) feladatnak egy x megoldása nem optimális, akkor létezik h ∈ H,amire x+ h jobb megoldás.

Bizonyítás. Legyen x∗ egy optimális megoldása IP (b, c, u)-nak. Ekkor A(x∗ − x) = 0,x∗−x ∈ Zn, és c(x∗−x) < 0. Legyen Oj az x∗−x vektort tartalmazó ortáns. Mivel x∗−x aCj egész eleme, el®állHj-beli vektorok nemnegatív egész kombinációjaként: x∗−x =

∑ki1λihi,

ahol minden λi pozitív egész.Mivel c(x∗ − x) < 0, valamelyik i-re chi < 0. Ekkor h = hi teljesíti a tétel feltételeit:

egyrészt c(x + h) < cx, másrészt x∗j − xj ≥ 0 esetén 0 ≤ hj ≤ x∗j − xj , x∗j − xj ≤ 0 eseténpedig 0 ≥ hj ≥ x∗j − xj , tehát 0 ≤ x+ h ≤ u következik abból, hogy 0 ≤ x, x∗ ≤ u. 2

Természetesen H lehet exponenciális méret¶, tehát ez a módszer nem mindig hatékony.Ha H nem túl nagy, akkor is nehéz kiszámolni, de ezt csak egyszer kell megtenni, és utána afeladatosztály tetsz®leges feladatára használhatjuk.

75

Page 77: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 10

Oszlopgenerálás

10.1 Többtermékes folyamok

Jól tudjuk, hogy a maximális folyamproblémára jobbnál jobb kombinatorikus algoritmusokadhatók, amelyek ráadásul még egészmegoldásokat is adnak, ha az élkapacitások egészek.Mi a helyzet több termék közös hálózatban való áramoltatásakor? Sajnos ez a feladat alegegyszer¶bb esetekben is nehezen kezelhet®, ha az egészérték¶ folyamok keresése a célunk.

Többtermékes (tört) folyam probléma

Adott a G = (V,E) irányított gráf, az (si, ti) pontpárok i = 1, 2, . . . k, és a nem-negatív ce élkapacitások minden e ∈ E élen. Továbbá adottak a di igények is mindeni-re.Minden i-re keressünk xi di érték¶ folyamot úgy, hogy minden e élre

∑ki=1 x

ie ≤ ce.

Az (si, ti) párok természetesen különböz®ek, és a hozzájuk tartozó folyamot nevezzük azi-edik terméknek.

A probléma természetesen megfogalmazható irányítatlan gráfokban is.

Többtermékes egészérték¶ folyam probléma

A fenti problémában olyan folyamokat keresünk, melyek minden élen egész értéketvesznek fel, azaz xie egész minden i-re és e élre.

Az egészérték¶ feladat NP-teljes, már két termék esetén minden élen ce = 1 mellett is.Természetesen a sokrét¶ gyakorlati alkalmazások miatt igen sokféle közelít® és heurisztikusalgoritmust kidolgoztak.

10.1.1 Lagrange relaxáció

Nézzük a feladat költséges változatát, amikor minimális költség¶ többtermékes folyamotkeresünk. Tekinthetjük a feladatnak azt a Lagrange-relaxációját, ahol a kapacitás-feltételeketrelaxáljuk és építjük be a célfüggvénybe. Az így kapott feladatban nincsenek fels® korlá-tok, tehát az nem más mint k darab, egymástól független minimális költség¶ folyam feladat.Ráadásul mivel nincsenek fels® korlátok, ezek a minimális költség¶ folyam feladatok valójábanminimális költség¶ út kereséssel megoldhatók.

A 9.3. Fejezetben leírtak szerint a Lagrange duális feladat megoldása kiszámolható (legaláb-bis közelíthet®) szubgradiens módszerrel. A szubgradiens kiszámolása a mi esetünkben egysz-er¶: meg kell nézni, hogy az egyes éleken mennyivel lépjük túl a kapacitást, ha a legrövidebbutakon szállítjuk a termékeket.

76

Page 78: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

A módszer kicsit �nomítható: ugyan a∑k

i=1 xie ≤ ce feltételeket relaxáljuk, de az xie ≤ ce

feltételeket benne hagyhatjuk a rendszerben. Ekkor a Lagrange feladat k darab függetlenminimális költség¶ folyam feladat lesz, tehát nehezebb kiszámolni, viszont a szubgradiensalgoritmus gyorsabban közelít a Lagrange duális feladat optimumához.

Mi lesz a Lagrange duális feladat optimuma? Mivel a relaxált rendszer egy egész poliédertír le, a 9.4. Tétel alapján ez az optimum megegyezik az eredeti feladat LP relaxáltjánakoptimumával, azaz az optimális tört többtermékes folyam költségével.

10.1.2 Ford-Fulkerson algoritmus

A továbbiakban a súlyozatlan törtváltozat megoldására ismertetjük Ford és Fulkerson 1958-ból származó klasszikus oszlopgenerálós algoritmusát.

A törtváltozat tehát azt kérdezi, hogy az alábbi egyenl®tlenség-rendszernek van-e megol-dása.

δxi(v)− %xi(v) = 0 ∀i = 1, 2, . . . k, v ∈ V − {si, ti} (10.1)

δxi(si)− %xi(si) = di ∀i = 1, 2, . . . k

k∑i=1

xie ≤ ce ∀e ∈ E

xie ≥ 0 ∀i = 1, 2, . . . k, e ∈ E.

Ezek szerint a fenti lineáris programot kell csak valamely alkalmas módszerrel megoldanunk.Következésképpen a probléma is polinomiális.

Ha k nagy, akkor viszont még viszonylag kis gráf esetén is túl nagy méret¶ lesz a fenti lineárisprogram ahhoz, hogy belátható id® és tár felhasználásával megoldhassuk. Ezen problémaleküzdésére Ford és Fulkerson meglep® módon egy még nagyobb lineáris programot írt fel!(Annyit el®re elárulunk, hogy szerencsére magát a feladatot majd nem kell felírni, csak azokata részeit, amikre szükség lesz.)

Amennyiben létezik di érték¶ xi (si− ti)-folyam, akkor létezik egy yi ≤ xi folyam is, amelyel®áll (si − ti)-utak nemnegatív lineáris kombinációjaként.

Jelölje ni az (si − ti)-utak számát. Ekkor a következ® feladat ekvivalens (10.1)-tel.

k∑i=1

ni∑j=1

zijχPije ≤ ce minden e ∈ E, (10.2)

ni∑j=1

zij = di ∀ i,

zij ≥ 0 ∀ i, j,

ahol χP a P út élekre vonatkozó karakterisztikus vektorát jelöli.Most fogalmazzuk meg maximalizálási feladatként (10.2)-t.Adjunk a gráfhoz k darab új pontot s′1, s

′2, . . . s

′k, és k darab új irányított élet: s′1s1, s

′2s2, . . .

s′ksk rendre a d1, d2, . . . dk kapacitásokkal. Erre a gráfra felírva a (10.2) feltételeket a változóknemnegativitása mellett keressük

k∑i=1

ni∑j=1

zij

maximumát. Amennyiben ez a maximum∑k

i=1 di, akkor az eredeti feladatnak is van megol-dása, különben pedig nincs.

77

Page 79: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Ez tehát ekvivalens az alábbi lineáris programmal, ahol P jelöli az összes (si, ti)-út hal-mazát.

∑P∈P

xPχPe ≤ ce ∀ e ∈ E, (10.3)

xP ≥ 0 ∀ P ∈ P, (10.4)

max∑P∈P

xP .

Adjunk minden kapacitási megszorítást jelent® sorhoz egy fölöslegváltozót, jelöljük A-valaz él-út illeszkedési mátrixot, és w ∈ RE×P pedig legyen az a vektor, mely minden úthoztartozó komponensében 1, az élekhez tartozó komponensében pedig 0.

[A I]x = c (10.5)

x ≥ 0

maxwx

Tegyük fel, hogy P ′ ⊆ P és E′ ⊆ E olyan részhalmazok, melyekre |P ′| + |E′| = |E|, és ahozzájuk tartozó B-vel jelölt [A I] oszlopok lineárisan függetlenek. Jelölje B a kiválasztottindexeket. Ekkor a B bázishoz tartozó bázis-megoldásnak nevezzük azt az x-et, amely a nemB-beli indexekben 0, a többiben pedig a BxB = c egyértelm¶ megoldása.

Most megmutatjuk, hogy a szimplex algoritmus hogyan valósítható meg oly módon, hogyne kelljen felírnunk magát a teljes A mátrixot, amely oszlopainak a száma rettenetesen nagy(sok-sok út darabszáma).

(10.5) egy azonnal adódó nemnegatív bázis-megoldását adja a B = E eset.Egy adott nemnegatív bázis-megoldás vajon optimális-e? Ezt a következ®képpen ellen®riz-

hetjük.El®ször oldjuk meg a B-hez tartozó program yB ≥ wB duálisát, majd ellen®rizzük, hogy

ez az y megengedett megoldása-e (10.5)-nak, mert ha igen, akkor az xB bizony optimális.ha pedig nem, akkor átlépünk egy másik bázisra, amelyhez tartozó egyértelm¶ megoldásnemnegatív marad, és iteráljuk az eljárást.

Kétféle duális feltétel van, hogyan ellen®rizhetjük ezek teljesülését? A B-ben benne nemlév® élekhez tartozó I-beli oszlopokból származó feltétel egyszer¶en ezen ye változó nemneg-ativitását mondja ki. Ezt könny¶ ellen®rizni, és ha találunk negatív érték¶ változót, akkor azlegyen a bázisba bemen® oszlop indexe, és majd megmondjuk, nemsokára, hogy ezt a bevitelthogyan valósítjuk meg.

A B-ben nem lév® utak rengetegen vannak. Egyesével nem tudjuk ellen®rizni, hogy egyadott P útra az yχP skaláris szorzat vajon 1-nél nagyobb-egyenl®-e. De szerencsére egyszerreez megtehet®! Ugyanis számítsuk ki minden i termékre a legrövidebb (si, ti)-utat! Ha mind-egyik nagyobb egynél, akkor minden feltétel teljesül, ha pedig nem mind, akkor hozzájutunkolyan P úthoz, amelyre a hozzátartozó duális feltétel megsérül, és egy ilyen úthoz tartozóoszlopot vigyük be ekkor a bázisba. Lényeges elem, hogy ekkor már túl vagyunk az y nem-negativitásának vizsgálatán, tehát a legrövidebb utak nemnegztív élsúlyokkal határozandókmeg, ami köny¶szerrel végrehajtható.

Hogyan határozzuk meg azt az indexet, amelynek el kell hagynia a bázist? Ha a bejöv®index az e élhez tertozik, akkor oldjuk meg a Bx = 1e egyenletet, ha pedig a bejöv® indexegy úthoz tartozó P , akkor pedig a Bx = χP egyenletet. A Bz = c megoldása után aszimplex módszernél tanult hányados-módszer segítségével kiválaszthatunk egy olyan indexet,

78

Page 80: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

amelyhez tartozó oszlop B-b®l való törlésével és a meghatározott oszlop hozzávételével aBx = c egyértelm¶ megoldása ismételten (automatikusan) nemnegatív lesz.

Ezzel be is fejeztük a Ford és Fulkeerson szerz®páros oszlopgenerálós algoritmusának aleírását. Az oszlopgenerálás elnevezés onnan ered, hogy nem tekintjük az összes oszlopot,csak azokat, amelyekre szükségünk van. Ezen fenti algoritmus a szimplex-módszerhez hason-lóan ciklizálhat, de ennek el®fordulására vajmi kevés az esély, illetve a szimplex-módszernélalkalmazott lexikogra�kus választási szabály alkalmazásával ez itt is elkerülhet® (ahogyan aztChvátal 1983-ban bizonyította).

15 feladat. Mutassuk meg, hogy a többtermékes folyam feladatnak a di igények mellett akkorés csak akkor van megoldása, ha minden l ∈ RE+ hosszfüggvényre teljesül a következ®

k∑i=1

di · distl(si, ti) ≤∑e∈E

l(e) · c(e),

ahol distl(si, ti) az si-b®l a ti-be vezet® l szerinti legrövidebb irányított út hosszát jelöli. (Út-mutatás: Használjuk a Farkas-lemmát!)

10.2 Egydimenziós szabási feladat

Ennél a feladatnál W hosszúságú papírtekercseink vannak, amikb®l adott hosszúságúdarabokat kell vágni, minél kevesebb tekercset felhasználva. Tegyük fel, hogy wi hosszúpapírból bi darabra van szükség (i = 1, . . . ,m). Nevezzük az m különböz® hosszú papírttípusoknak. Hogy tudjuk ezt a feladatot egészérték¶ programozási feladatként felírni?

Egy tekercset sokféleképpen lehet felvágni darabokra (nevezzük a lehetséges felvágásokatszabásmintáknak). Figyeljük meg, hogy a lehetséges felvágások pont egy egészérték¶ hátizsákfeladat megoldásai, ahol a tárgyak súlya wi (i = 1, . . . ,m), a hátizsák teherbírása pedig W .Kézenfekv® volna tehát a hátizsákfeladathoz hasonló felírást keresni. Azonban most teljesenmást csinálunk: az összes lehetséges szabásmintához változót rendelünk!

Tegyük fel hogy n lehetséges szabásminta van. Legyen A az az m×n-es mátrix, aminek egyadott szabásmintához tartozó oszlopában az szerepel, hogy melyik típusból hányat ad. Ez azA mátrix nagyon nagy, úgyhogy az algoritmus során sosem fogjuk használni, de a feladatotennek segítségével írjuk fel:

min

n∑j=1

xj

Ax ≥ bx ≥ 0

x egész.

Ennek a feladatnak a lineáris relaxáltját fogjuk megoldani az oszlopgenerálás módszerével:

minn∑j=1

xj

Ax ≥ bx ≥ 0.

Ha a bi számok viszonylag nagyok, akkor a lineáris relaxált optimális megoldásából általábankönnyen kapható egy jó egészérték¶ megoldás. Probléma viszont, hogy a feladatnak nagyon

79

Page 81: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

sok változója van. Ezért el®ször kiválasztunk néhány szabásmintát, és megnézzük hogy csakezeket használva mi a legjobb megoldás. Legyen A′ a kiválasztott szabásmintákhoz tartozóoszlopokból álló részmátrix. Ekkor a feladatunk:

Primál:min

∑nj=1 xj

A′x ≥ bx ≥ 0

Duál:max

∑mi=1 biyi

yA′ ≤ 1y ≥ 0.

Ezt szimplex módszerrel meg tudjuk oldani, és kapunk egy optimális primál megoldást (x′)és egy optimális duál megoldást (y′).

Persze x′ nem feltétlenül optimális megoldása az eredeti feladatunknak. Annyit tudunkhogy ha y′ megoldása az eredeti feladat duálisának, tehát ya ≤ 1 minden a szabásmintára,akkor x′ optimális. Látszólag nem jutottunk el®rébb, hiszen hogy tudnánk ezt az összeslehetséges szabásmintára ellen®rizni? Másszóval: hogy tudnánk megoldani a

max{ya : a egy lehetséges szabásminta}

feladatot?A válasz az, hogy ez pont egy hátizsák feladat, hiszen így fogalmazható át (vigyázzunk, y

itt most konstans, nem változó):

max{m∑i=1

yizi :

m∑i=1

wizi ≤W, z ≥ 0.}

Hátizsákfeladat megoldására ismerünk módszereket, ezek valamelyikét használva kapunk egyoptimális z vektort, ami megegyezik az A mátrix valamelyik a oszlopával, hiszen A-ban azösszes lehetséges szabásminta szerepelt. Ha ya ≤ 1, akkor kész vagyunk, az x′ optimálismegoldás. Ha ya > 1, akkor hozzávesszük az a oszlopot az A′ mátrixot, és ezzel az új mátrix-szal megisméltejük az eljárást.

A tapasztalat azt mutatja, hogy ez az eljárás hatékony: nem túl sok iteráció után megtaláljaaz optimális megoldást.

10.3 Dantzig-Wolfe dekompozíció

80

Page 82: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 11

Közelít® algoritmusok

Legyen α ≥ 1 valós szám. Egy minimalizálási feladatra egy algoritmus α-közelít®, ha poli-nomiális futási idej¶, és tetsz®leges inputra az output értéke legfeljebb α-szorosa az optimális-nak. Ennek persze csak nemnegatív célfüggvény esetén van értelme.

11.1 2-közelít® algoritmus minimális súlyú lefogó csúcshalmaz

keresésére

11.1.1 Legkisebb lefogó csúcshalmaz

Adott G = (V,E) irányítatlan gráfnak egy X ⊆ V halmaz lefogó csúcshalmaza, ha mindenélnek legalább egyik végpontját tartalmazza.

Legkisebb lefogó csúcshalmaz probléma

Adott egy G = (V,E) irányítatlan gráf. Keressünk olyan lefogó csúcshalmazt,aminek az elemszáma minimális.

Az alábbi tétel mutatja, hogy ez a feladat igen nehéz (a bizonyítás meghaladja a jegyzetkereteit).

11.1 tétel. Ha α < 76 -ra van α-közelít® polinomiális algoritmus a legkisebb lefogó csúcshalmaz

feladatra, akkor P = NP .

A feladatra nem ismert α < 2 esetén α-közelít® polinomiális futási idej¶ algoritmus. Viszont2-közelít® algoritmust könny¶ adni. Kezdetben legyen U = ∅ a lefogó csúcshalmaz.

1. Válasszunk egy tetsz®leges uv élt a gráfban.

2. Legyen U := U ∪ {u} ∪ {v}

3. A G gráfból hagyjuk ki ezt a két csúcsot, és az összes rájuk illeszked® élt.

4. Ha nem marad él, akkor kész vagyunk. U a lefogó csúcshalmaz. Különben lépjünk az1. pontra.

Lássuk be, hogy ez az algoritmus 2-közelít®! Legyen F a kiválasztott élek halmaza: Fdiszjunkt élekb®l áll. Ekkor |Uopt| ≥ |F |, mivel az optimális lefogó csúcshalmaz lefogja Féleit. Másrészt: |U | = 2|F |, tehát |Uopt| ≥ 1

2 |U |.A következ® részben megmutatjuk, hogy az algoritmust továbbfejlesztve a minimális költ-

ség¶ lefogó csúcshalmaz feladatra is 2-közelít® algoritmust kapunk.

81

Page 83: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

11.1.2 Minimális költség¶ lefogó csúcshalmaz

A fenti feladatot általánosítsuk úgy, hogy nemnegatív súlyokat adunk a csúcsoknak:

Minimális költség¶ lefogó csúcshalmaz probléma

Adott egy G = (V,E) irányítatlan gráf és egy c ∈ RV+ költségfüggvény. Keressünkolyan U lefogó csúcshalmazt, amire

∑u∈U cu minimális.

Írjuk fel a feladatot egészérték¶ programozási feladatként:

x ∈ {0, 1}V

xu + xv ≥ 1 ∀uv ∈ Emin cx

A feladat LP-relaxáltja:

x ∈ RV+xu + xv ≥ 1 ∀uv ∈ E

min cx

Nézzük az LP-relaxált duálisát:

y ∈ RE

y ≥ 0∑u:uv∈E

yuv ≤ cv ∀v ∈ V

max∑e∈E

ye

A 2-közelít® algoritmusunk egy úgynevezett primál-duál algoritmus lesz: a futás soránvégig lesz egy csúcshalmazunk (ami a végén lefogóvá válik), és az LP-relaxáltnak egy duálismegoldása (ami a végén bizonyítja, hogy 2-közelítést kaptunk).

2-közelít® primál-duál algoritmus

Minden lépésben lesz egy U ⊆ V csúcshalmaz és lesz egy y duális megoldás. Kezdet-ben legyen U = ∅, y ≡ 0, E′ = E.

1. Válasszunk tetsz®leges uv ∈ E′ élt.

2. Emeljük meg yuv-t annyira, hogy u-nál vagy v-nél a duál egyenl®tlenség tel-jesüljön egyenl®séggel � el®fordulhat, hogy az egyenl®ség mindkett®re teljesül.

3. U -hoz vegyük hozzá u és v közül azt, amelyiknél egyenl®ség van � ha mind-kett®nél egyenl®ség van, akkor mindkett®t vegyük hozzá. Töröljük E′-b®l alefogott éleket.

4. Ha E′ = ∅, akkor kész vagyunk. U a lefogó csúcshalmaz. Különben lépjünk az1. pontra.

Figyeljük meg, hogy yuv emelése csak az u-hoz és v-hez tartozó duális egyenl®tlenségeknélszámít, a többit nem módosítja.

82

Page 84: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

11.2 állítás. A fenti algoritmus 2-közelít®.

Bizonyítás. Legyen π ∈ RV+ segédváltozónk. Kezdetben legyen π ≡ 0. Amikor yuv-tmegemeljük δ-val, akkor π(u)-t és π(v)-t is megemeljük δ-val.

A végén∑

v∈V π(v) = 2∑

e∈E ye. Másrészt: amikor v bekerül U -ba, akkor π(v) = c(v), ésez kés®bb sem változik. Tehát

∑u∈U cu ≤

∑v∈V π(v), amib®l∑

u∈Ucu ≤ 2

∑e∈E

ye ≤︸︷︷︸gyenge dualitás

≤ 2OPTLP ≤ 2OPTIP

2

Igazából kicsit többet bizonyítottunk az állításnál: az LP-relaxált optimumának legfeljebbkétszerese a kapott megoldás értéke.

11.2 Goemans�Williamson-algoritmus

Ebben a fejezetben Goemans és Williamson 1995-ös algoritmusát ismertetjük, ami különféleminimális súlyú erd® problémákra ad 2-közelít® algoritmust. Speciális esetként adódik majd aSteiner-fa illetve az euklideszi párosítási probléma (bár utóbbira van polinomiális algoritmusis).

11.2.1 A feladat

Legyen V egy alaphalmaz. Nevezzünk egy F halmazrendszert szépnek, ha teljesíti a következ®tulajdonságokat:

∅ /∈ F , (11.1)

X ∈ F ⇒ V −X ∈ F , (11.2)

X ∩ Y = ∅, X ∪ Y ∈ F ⇒ {X,Y } ∩ F 6= ∅. (11.3)

Legyen G = (V,E) a teljes gráf V -n, és legyen c : E → R+ egy költségfüggvény ami teljesítia háromszög-egyenl®tlenséget. A feladat egy minimális súlyú élhalmazt keresni, ami mindenF-beli halmazra tartalmaz egy belép® élt. Könnyen látható, hogy az optimális megoldás egyerd® lesz, hiszen minden körb®l törölhetünk egy tetsz®leges élt.

A (11.3) tulajdonság miatt fogalmazhatunk így is: olyan minimális súlyú erd®t keresünk,aminek nincs F-beli komponense.

11.2.2 Alkalmazások

Irányítatlan hálózat tervezése

Ennél a feladatnál egy gráfban adottak s1, s2, . . . , sk valamint t1, t2, . . . , tk csúcsok, és egy költ-ségfüggvény az éleken. Minimális költség¶ olyan részgráfot akarunk találni, ahol si és ti ugyan-abban a komponensben van minden i-re. Könnyen látható, hogy a háromszög-egyenl®tlenségteljesülését feltehetjük: az uv költsége legyen az u és v közötti utak minimális költsége.

Hogy fér ez bele a fenti feladatba? Álljon F azokból az X halmazokból, amikre létezik i,hogy |{si, ti}∩X| = 1. Ez a halmazrendszer szép lesz, mert ha két diszjunkt halmaz uniója siés ti közül pontosan egyet tartalmaz, akkor a két halmaz közül valamelyik szintén rendelkezikezzel a tulajdonsággal.

Ha s1 = s2 = · · · = sk akkor a minimális költség¶ Steiner-fa feladatot kapjuk.

83

Page 85: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Az euklideszi párosítás probléma

Adott az euklideszi síkon pontok egy páros elemszámú véges V halmaza. Keressük meg apontokon azt a teljes párosítást, amely mentén az éleket egyenes szakaszokkal behúzva apárosítás összhossza minimális. (Könnyen látható, hogy az optimális megoldás esetén nemmetszik egymást ezek a szakaszok, továbbá az is világos, hogy mivel véges sok teljes párosításvan, ezért létezik minimum.)

Álljon az F halmazrendszer a páratlan elemszámú halmazokból. Ez szép, hiszen két pároshalmaz diszjunkt uniója nem lehet páratlan. Erre a halmazrendszerre az optimális megoldásnem feltétlenül egy párosítás, hanem egy erd® aminek minden komponense páros elemszámú.Azonban megmutatjuk, hogy ha a költségekre teljesül a háromszög-egyenl®tlenség, akkor vanegy legfeljebb ekkora költség¶ teljes párosítás is:

• Ha van csúcs amire legalább két levél illeszkedik, akkor azt a két csúcsot levágjuk és egyéllel összekötjük. A háromszög-egyenl®tlenség miatt a költség nem n®tt, de a kompo-nensek számát növeltük.

• Ha nincs ilyen csúcs de nem párosításunk van, akkor van egy másodfokú csúcs amire levélilleszkedik. Töröljük a csúcsra illeszked® másik élt. Így továbbra is minden komponenspáros lesz, de n® a komponensek száma.

11.2.3 Az algoritmus

A feladatunk lineáris programozási relaxáltja a következ®.

min∑e∈E

cexe (11.4)

x(δ(Z)) ≥ 1 ∀Z ∈ F , (11.5)

0 ≤ xe ∀e ∈ E. (11.6)

A lineáris programozási duális a következ®.

max∑Z∈F

yZ (11.7)∑Z∈F :uv∈δ(Z)

yZ ≤ cuv ∀ uv ∈ E, (11.8)

yZ ≥ 0 ∀ Z ∈ F . (11.9)

A Goemans�Williamson-algoritmus megkonstruál egy megengedett erd®t, azaz egy olyanerd®t, amelynek nincs F-beli komponense. Az algoritmus fenntart egy F erd®t, amely csaka leálláskor lesz megengedett. Továbbá fenntartja a (11.8)-(11.9) egy y duális megoldását is.Tetsz®leges e = uv ∈ E élre vezessük be a következ® jelölést.

ce := ce −∑

Z∈F :uv∈δ(Z)

yZ .

Jelölje CF az F erd® komponenseinek halmazát. Ennek egy C ∈ CF elemére legyen q(C)értéke 1, ha C ∈ F , és legyen 0 egyébként. Az algoritmus elindulásakor F = ∅, CF = {{v} :v ∈ V }, továbbá y ≡ 0.

84

Page 86: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Goemans�Williamson-algoritmus

1. lépés. Ha F -nek nincs F-beli komponense, akkor az F -be kerüléssel fordí-tott sorrendben töröljük F -b®l az összes olyan élt, amelyek törlése után semkeletkezik F-beli komponens (ha egy élt töröltünk, el®lr®l kezdjük nézni a mégF -ben lév® éleket). Return F .

2. lépés. Legyen e = uv az az él, melyre u ∈ Ci ∈ CF , v ∈ Cj ∈ CF , Ci 6= Cj és akövetkez® érték minimális:

ε = ce/(q(Ci) + q(Cj)).

(Vegyük észre, hogy Ci és Cj legalább egyike F-beli.)

3. lépés. Minden C ∈ CF ∩ F halmazra yC-t növeljük meg ε-nal.

4. lépés. Az e élet vegyük F -hez, CF -b®l töröljük Ci-t és Cj-t, és vegyük hozzáCi ∪ Cj-t. Ugorjunk az 1. lépésre.

Az algoritmus leállásakor tehát kapunk egy F ∗ feszít® erd®t és egy y∗ duális megoldást. A2. lépésben történ® minimálizálás miatt y∗ a (11.8) megengedett megoldása, azaz a redukáltce súlyok mind nemnegatívak. Következésképpen a

∑Z∈F yZ érték az optimális megengedett

erd® költségének egy alsó korlátját adja.

11.3 lemma. c(F ∗) ≤ 2∑

Z∈F yZ .

Bizonyítás. Jelölje Ck és εk a k-adik iterációban szerepl® CF partíciót és ε-t. Az F ∗ egye = uv (u ∈ Ci ∈ Ck, v ∈ Cj ∈ Ck) élére de�niáljuk a cke értéket 0-nak, ha i = j, ésεk · (q(Ci) + q(Cj))-nak különben.

Ekkorce = c1

e + c2e + . . .+ cte,

ha t iteráció alatt fut le az algoritmus. Vegyük észre, hogy ha e-t az F -hez az s-edik lépésbenvesszük hozzá, akkor cke = 0 minden k > s értékre. Most megmutatjuk, hogy∑

e∈F ∗cke ≤ 2εk|Ck ∩ F|,

amib®l a lemma azonnal következik, mivel

∑Z∈F

yZ =t∑

k=1

εk · |Ck ∩ F|.

Legyen k ∈ {1, 2, . . . , t}, és tekintsük az F ∗-ból a C ∈ Ck halmazok egy-egy pontra valóösszehúzásával keletkez® F ′ erd®t (ez azért lesz erd®, mert egy C ∈ Ck halmazon belül kiválasz-tott élek összefügg® gráfot alkotnak). Jelölje V1 az F-beli halmazok összehúzásaival keletkezettpontok halmazát, V2 pedig a többi pontot.

11.4 állítás.∑

v∈V1 dF ′(v) ≤ 2|V1|.

Bizonyítás. Mivel F ∗-ból fordított sorrendben elhagytuk a felesleges éleket, ezért F ′ leveleimind V1-ben vannak, azaz V2 pontjai legalább másodfokúak:

∑v∈V1 dF ′(v) =

∑v∈V dF ′(v)−∑

v∈V2 dF ′(v) ≤ 2|V | − 2|V2| = 2|V1|. 2

Figyelembe véve, hogy∑

e∈F ∗ cke = εk

∑v∈V1 dF ′(v), a lemmát bebizonyítottuk. 2

85

Page 87: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

11.3 Jain iteratív kerekít® algoritmusa

A 11.2. fejezetben szerepelt egy irányítatlan hálózattervezési feladat, amire a Goemans-Williamson algoritmus 2-közelítést adott. Most ennek a feladatnak egy általánosítására írjukle Jain 2001-b®l származó 2-közelít® algoritmusát. Az algoritmus f® ötlete, hogy az LP re-laxációnak egy lépésben csak bizonyos komponenseit kerekíti egészre, a többi komponensreújra megoldja az immár kevesebb változós LP feladatot, és ezt iterálja. Innen ered az iteratívkerekítés elnevezés.

11.3.1 Az általános irányítatlan hálózattervezési feladat

A feladatban adott egy G = (V,E + E0) irányítatlan gráf, egy c : E → R+ nemnegatívköltségfüggvény, és minden u, v ∈ V csúcspárra egy r(u, v) ∈ Z+ élösszefügg®ségi igény. Err®lfeltesszük, hogy szimmetrikus, azaz r(u, v) = r(v, u), és r(v, v) = 0.

A cél minimális költség¶ olyan F ⊆ E élhalmazt találni, amire F+E0-ban tetsz®leges u, v ∈V csúcspárra van u és v közt r(u, v) éldiszjunkt út. Természetesen lehet, hogy a feladatnaknincs megoldása, de ezt ellen®rizni tudjuk a G gráf Gomory-Hu fájának kiszámolásával.

Számos jól ismert feladat megfogalmazható speciális esetként:

• Minimális költség¶ feszít® fa: r(u, v) = 1 ha u 6= v.

• Minimális költség¶ k-folyam s-b®l t-be szimmetrikus irányított gráfban: r(s, t) = k, atöbbi csúcspárra pedig r(u, v) = 0.

• Minimális költség¶ Steiner fa: r(u, v) = 1 ha u és v különböz® terminálok, egyébkéntr(u, v) = 0.

• Minimális költség¶, T -ben k-élösszefügg® részgráf (ahol T ⊆ V ): r(u, v) = k ha u, v ∈ Tés u 6= v, egyébként r(u, v) = 0.

• Hamilton-kör létezése a G = (V,E) gráfban: r(u, v)=2 ha u 6= v, c(e) = 1 mindene ∈ E-re. Pontosan akkor létezik Hamilton-kör, ha az optimális F -re c(F ) = |V |.

Ezekb®l látszik, hogy a feladat NP-teljes, és jelenleg nem is ismert rá 2-nél jobb közelít®algoritmus. Az egészérték¶ programozási feladatként való felíráshoz vezessük be a következ®halmazfüggvényt:

R(U) = maxu∈U,v/∈U

r(u, v) (U ⊆ V ).

Esetszétválasztással ellen®rizhet®, hogy ez a halmazfüggvény ferdén szupermoduláris, azazbármely X ⊆ V és Y ⊆ V -re az alábbi két egyenl®tlenség legalább egyike teljesül:

R(X) +R(Y ) ≤ R(X ∩ Y ) +R(X ∪ Y ),

R(X) +R(Y ) ≤ R(X \ Y ) +R(Y \X).

S®t, az is könnyen látható, hogy az R(U)− |E0 ∩ δ(U)| halmazfüggvény is ferdén szupermod-uláris, hiszen a −|E0 ∩ δ(U)| halmazfüggvényre mindkét fenti egyenl®tlenség teljesül mindenX,Y párra.

Az általános irányítatlan hálózattervezési feladat IP felírása:

max∑e∈E

cexe (IP)

xe ∈ {0, 1} ∀e ∈ Ex(δ(U)) ≥ R(U)− |E0 ∩ δ(U)| ∀U ⊆ V.

86

Page 88: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

A feladat LP relaxáltja:

max∑e∈E

cexe (LP)

0 ≤ xe ≤ 1 ∀e ∈ Ex(δ(U)) ≥ R(U)− |E0 ∩ δ(U)| ∀U ⊆ V.

Megjegyzend®, hogy ennek az LP relaxáltnak már a minimális költség¶ feszít® fa feladatnálsem lesz feltétlenül egész optimális megoldása, például C5-re, ellentétben a 13.2. fejezetbenismertetett relaxációval. Ráadásul exponenciális sok feltétel van, tehát az (LP) feladatotsem könny¶ megoldani. Azonban szeparálni tudunk (minden u, v csúcspárra megkeressük aminimális súlyú ®ket elválasztó vágást), tehát az 5.5. fejezetben leirtak szerint optimalizálniis tudunk polinom id®ben. A gyakorlatban elég jó algoritmusok vannak az (LP) feladatmegoldására.

Jain módszerének alapja a következ® mély eredmény.

11.5 tétel (Kamal Jain, 2001). Ha az x ≡ 0 nem megoldása (LP)-nek, akkor minden bázis-megoldásnak létezik legalább 1

2 érték¶ komponense.

Bizonyítás. (Ravi, Singh, Nagarajan, 2007). Indirekt tegyük fel, hogy van egy olyan x∗

bázismegoldás, amire x∗e <12 minden e ∈ E-re. Legyen E∗ = {e ∈ E : x∗e > 0}. Nevezzük

az {U1, U2, . . . , Uk} halmazrendszert (ahol Ui ⊆ V ) függetlennek, ha a δE∗(U1), . . . , δE∗(Uk)élhalmazok karakterisztikus vektorai lineárisan függetlenek. Mivel x∗ bázismegoldás és x∗e <1 minden e ∈ E élre, tudjuk, hogy k = |E∗|-ra létezik olyan {U1, U2, . . . , Uk} függetlenhalmazrendszer, amire

x∗(δ(Ui)) = R(Ui)− |E0 ∩ δ(Ui)| (i = 1, . . . , k).

11.6 állítás. Ez az {U1, U2, . . . , Uk} független halmazrendszer választható laminárisnak.

Bizonyítás. Egy U halamazt nevezzünk szorosnak, ha x∗(δ(U)) = R(U) − |E0 ∩ δ(U)|.Legyen {U1, . . . , Ul} egy maximális elemszámú független lamináris halmazrendszer, ami szoroshalmazokból áll. Ha l < k, akkor van olyan X szoros halamaz, hogy még az {U1, . . . , Ul, X}halmazrendszer is független. Válasszunk olyan X-et, ami a lehet® legkevesebb Ui-t metszi (itta metszés azt jelenti, hogy az X ∩ Ui, X \ Ui, Ui \X halmazok egyike sem üres).

Mivel maximális elemszámú lamináris rendszert válaszottunk, X legalább egy Uj halmaztmetsz. Az R(U) − |E0 ∩ δ(U)| halmazfüggvény ferde szupermodularitása miatt a következ®két lehet®ség legalább egyike teljesül.

1. AzX∩Uj ésX∪Uj halmazok pontosak, és δE∗(X)+δE∗(Uj) = δE∗(X∩Uj)+δE∗(X∪Uj)(ahol az összeadást mint a karakterisztikus vektorok összeadását értjük).

2. AzX\Uj és Uj\X halmazok pontosak, és δE∗(X)+δE∗(Uj) = δE∗(X\Uj)+δE∗(Uj\X).

Az els® esetben X ∩ Uj is és X ∪ Uj is kevesebb Ui halmazt metsz mint X. Viszont alineáris függetlenség tulajdonságai miatt vagy {U1, . . . , Ul, X ∩Uj}, vagy {U1, . . . , Ul, X ∪Uj}független, ellentmondásban X váltasztásával.

A második esetben X \ Uj is és Uj \X is kevesebb Ui halmazt metsz mint X. Viszont alineáris függetlenség tulajdonságai miatt vagy {U1, . . . , Ul, X \Uj}, vagy {U1, . . . , Ul, Uj \X}független, ellentmondásban X váltasztásával. 2

Legyen {U1, U2, . . . , Uk} az állításban szerepl® lamináris halmazrendszer. Ellentmondásrafogunk jutni azzal, hogy 0 < x∗e < 1/2 minden e ∈ E∗-ra. Ehhez a Jain által bevezetett�zsetonos� módszer egy változatát használjuk.

87

Page 89: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Minden E∗-beli él kap egységnyi zsetont. Ebb®l els® lépésben az uv ∈ E∗ él megtart1− 2x∗uv-t, és továbbad az u és v csúcsoknak x∗uv-t.

A második lépésben a zsetonok az Ui halmazokhoz kerülnek át, a következ® szabály szerint:

• Egy uv ∈ E∗ él zsetonja a legkisebb olyan Ui halmazhoz kerül, ami u-t és v-t is tartal-mazza.

• Egy v ∈ V csúcs zsetonja a legkisebb olyan Ui halmazhoz kerül, ami v-t tartalmazza.

Nézzük meg, hány zsetont kap egy adott Uj halmaz. Ehhez de�niáljunk három diszjunktélhalmazt E∗-ban:

• E1 áll azokból az uv ∈ E∗ élekb®l, amikre u zsetonját Uj kapta és v /∈ Uj ,

• E2 áll azokból az uv ∈ E∗ élekb®l, amikre u és uv zsetonját Uj kapta, de v zsetonjátnem,

• E3 áll azokból az uv ∈ E∗ élekb®l, amikre uv zsetonját Uj kapta, de u és v zsetonjátnem.

Az Uj halmaz legalább x∗(E1)+|E2|−x∗(E2)+|E3|−2x∗(E3) zsetont gy¶jtött be. Ez pozitív,mert E1 = E2 = E3 = ∅ esetén

δE∗(Uj) =l∑

i=1

δE∗(Uji),

ahol Uj1 , . . . , Ujl az Uj-n belüli maximális halmazok a lamináris rendszerben. Ez viszont aztjelentené, hogy a rendszer nem független. Másrészt

x∗(δ(Uj))−l∑

i=1

x∗(δ(Uji)) = x∗(E1)− x∗(E2)− 2x∗(E3).

Itt a baloldal egész szám az Ui halmazok szorossága miatt, tehát a jobboldal is egész.Következésképp x∗(E1) + |E2| − x∗(E2) + |E3| − 2x∗(E3) is egész, tehát legalább 1.

A fenti okoskodás szerint minden Ui halmaz legalább egységnyi zsetont kap. Azonban vane ∈ E∗ él, aminek zsetonját egyik halmaz sem kapja meg: vegyünk egy maximális halmazta lamináris rendszerben, és legyen e egy ebb®l kilép® él (ilyen van, különben a halmaz nemszerepelhetne független rendszerben). Az e élhez tartozó 1− 2x∗e > 0 zseton egyik halmazhozsem kerül.

Mivel |E∗| zseton van, minden halmaz legalább 1-et kap, és van amit semelyik sem kapmeg, k < |E∗|, ellentmondásban a halmazrendszer választásával. 2

A fenti tétel ismeretében Jain algoritmusa meglehet®sen egyszer¶ és természetes. Adotttehát egy G = (V,E + E0) irányítatlan gráf, egy c : E → R+ nemnegatív költségfüggvény, ésminden u, v ∈ V csúcspárra egy r(u, v) ∈ Z+ élösszefügg®ségi igény.

Jain iteratív kerekít® algoritmusa

Kezdetben legyen F = ∅.

1. lépés. Ha R(U) ≤ |E0 ∩ δ(U)| minden U ⊆ V -re: kész vagyunk, return F .

2. lépés. Oldjuk meg az (LP) feladatot, és legyen x∗ optimális bázismegoldás.

3. lépés. Legyen H ⊆ E azoknak az e éleknek a halmaza, amikre x∗e ≥ 1/2. Atétel szerint |H| ≥ 1.

4. lépés. Legyen F := F ∪H, E0 := E0 ∪H, E := E \H. Ugorjunk az 1. lépésre.

88

Page 90: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

11.7 tétel. Jain iteratív kerekít® algoritmusa 2-közelít® algoritmus az általánosított irányítat-lan hálózattervezési feladatra, s®t az LP-relaxált optimumának is legfeljebb kétszeresét adja.

Bizonyítás. |E| szerinti indukcióval bizonyítunk. Az állítás nyilván igaz, ha R(U) ≤ |E0 ∩δ(U)| minden U ⊆ V -re, hiszen ekkor F = ∅ minimális költség¶.

Tegyük fel, hogy nem ennél az esetnél vagyunk, és tekintsük az algoritmus els® fázisát.Jelöljük E′-vel illetve E′0-vel a negyedik lépés utáni élhalmazokat, és legyen (LP') a rájukvonatkozó LP feladat (amit a második fázisban old meg az algoritmus). Figyeljük meg,hogy ha az x∗ vektort megszorítjuk az E′ élhalmazra akkor az (LP') feladat megengedettmegoldását kapjuk, hiszen minden U -ra az x(δ(U)) ≥ R(U) − |E0 ∩ δ(U)| egyenl®tlenségjobboldala legalább annyival csökken, mint a baloldala. Legyen F ′ = F \ H. Az indukciósfeltevés szerint

c(F ′) ≤ 2∑e∈E′

cex∗e.

Ebb®l, és abból hogy x∗(e) ≥ 1/2 minden e ∈ H-ra, azt kapjuk, hogy

c(F ) = c(F ′) + c(H) ≤ 2∑e∈E′

cex∗e + 2

∑e∈H

cex∗e = 2

∑e∈E

cex∗e = 2OPTLP ≤ 2OPTIP .

2

89

Page 91: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 12

Általános heurisztikus algoritmusok

12.1 Lokális keresés

12.2 Tabukeresés

12.3 Szimulált leh¶lés

12.4 Genetikus algoritmusok

90

Page 92: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 13

Függelék

13.1 Lineáris programozási emlékeztet®

Ebben a fejezetben összefoglaljuk azokat a lineáris programozási ismereteket, amelyek a je-gyzetben felhasználásra kerülnek (megesik, hogy külön hivatkozás nélkül is).

13.1 de�níció. A C ⊆ Rn halmaz

• konvex kúp, ha tetsz®leges x, y ∈ C, λ, µ ≥ 0 esetén λx+ µy ∈ C.

• poliéderkúp, ha létezik olyan A mátrix, melyre C = {x ∈ Rn : Ax ≤ 0}.

• végesen generált kúp, ha léteznek az x1, x2, . . . , xk Rn-beli vektorok, amelyekre C ={x ∈ Rn : x =

∑ni=1 λixi, λi ≥ 0}.

Szavakban azt mondhatjuk, hogy a poliéderkúpok véges sok origón átmen® féltér met-szeteként állnak el®, a végesen generált kúpok pedig véges sok vektor összes nemnegatívegyütthatós lineáris kombinációjaként el®álló halmazok.

13.2 tétel (Weyl, 1935). A C ⊆ Rn halmaz pontosan akkor poliéderkúp, ha végesen generáltkúp.

Az A mátrix elemei pontosan akkor választhatók racionális számoknak, ha az xi vektorok isválaszthatók racionálisnak.

13.3 de�níció. A P ⊆ Rn halmaz

• poliéder, ha létezik olyan A mátrix és megfelel® méret¶ b vektor, melyekre P = {x ∈Rn : Ax ≤ b}.

• politóp, ha léteznek az x1, x2, . . . , xk Rn-beli vektorok, amelyekre P = {x ∈ Rn : x =∑ni=1 λixi, λi ≥ 0,

∑ni=1 λi = 1}.

Szavakban azt mondhatjuk, hogy a poliéder véges sok féltér metszeteként el®álló ponthal-maz (speciálisan az egész tér de�níció szerint nulla darab féltér metszeteként áll el®, tehátpoliéder), míg a politóp véges sok pont konvex burka.

13.4 tétel (Motzkin, 1936). A P ⊆ Rn halmaz pontosan akkor poliéder, ha el®áll Q + Calakban, ahol Q egy politóp, C pedig egy végesen generált kúp.

C a P poliéder karakterisztikus kúpja. A tétel egyszer¶ következménye, hogy a politópoképpen a korlátos poliéderek (ennek a nehéz iránya az, hogy a korlátos poliéderek véges sokpont konvex burkaként is megkaphatók, bár a szemléletünk szerint ez nagyon is elvárható).

A következ® tétel (s®t, lemma, a szó nemes értelmében) az el®z® két eredmény bizonyítá-sakor is alapvet® fontosságú.

91

Page 93: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

13.5 tétel (Farkas-lemma (els® alak)). Az Ax ≤ b poliéder pontosan akkor üres, ha létezik ymegoldása az alábbinak

yA = 0, y ≥ 0, yb < 0.

13.6 tétel (Farkas-lemma (második alak)). Az Ax = b, x ≥ 0 poliéder pontosan akkor üres,ha létezik y megoldása az alábbinak

yA ≥ 0, yb < 0.

A Farkas-lemma most következ® er®sítését a szimplex-módszer bizonyításából kaphatjuk.

13.7 tétel. Ha adott az A mátrix és a b vektor, akkor az alábbiak közül pontosan az egyik állfenn. Az [A, b] mátrix rangját jelölje t.

• Kiválasztható az A oszlopai közül néhány lineárisan független, amelyek nemnegatív line-áris kombinációjaként megkapható b.

• Létezik egy {x ∈ Rn : cx = 0} hipersík, amely A-nak t − 1 darab lineárisan függetlenoszlopát tartalmazza, és cb < 0, cA ≥ 0.

13.8 tétel (kiegészít® eltérések tétele). Legyen x∗ és y∗ olyan, amelyekre Ax∗ ≤ b, x∗ ≥ 0,y∗A ≤ c, y∗ ≥ 0, és

x∗j > 0 =⇒ (y∗Ax)j = cj ,

y∗i > 0 =⇒ (Ax∗)i = bi.

Ekkor x∗ a primál max{cx : Ax ≤ b, x ≥ 0}, y∗ a duális min{by : yA ≥ c, y ≥ 0} feladatokoptimális megoldása.

13.9 tétel (dualitástétel). Amennyiben a következ® egyenl®tlenségeknek van megoldása, akkorteljesül az alábbi egyenl®ség:

max{cx : Ax ≤ b} = min{by : yA = c, y ≥ 0}. (13.1)

13.1.1 A lexikogra�kus duál-szimplex módszer

13.2 A feszít®fák poliédere

Adott az összefügg® G = (V,E) irányítatlan gráf, és az élein a c : E → R+ nemnegatívsúlyfüggvény. Közismert, hogy a Kruskaltól származó mohó algoritmus megadja a G egyminimális súlyú feszít®fáját. Emlékeztet®ül az algoritmus a következ®. Rendezzük súly szerintnövekv® sorrendbe az éleket: e1, e2, . . . , em, majd haladjunk végig ebben a sorrendben, és egyélet válasszunk ki akkor, ha a már korábban kiválasztott élekhez hozzávéve nem keletkezikkör. Könny¶ belátni, hogy így valóban minimális súlyú feszít®fát kapunk, bár ennek tényekövetkezi fog a bizonyítandó tételünkb®l is.

Vegyük észre, hogy a célfüggvényr®l elfeletkezve az alábbi feladat egész, azaz 0-1-megoldásaia feszít®fák karakterisztikus vektorai.

min∑

(cexe : e ∈ E) (13.2)

x(E) = |V | − 1 (13.3)

x(γ(S)) ≤ |S| − 1 ∀S ⊂ V, S 6= ∅ (13.4)

0 ≤ xe ∀e ∈ E. (13.5)

92

Page 94: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

13.10 tétel. A fenti lineáris programnak tetsz®leges célfüggvény esetén létezik egészérték¶optimális megoldása.

Bizonyítás. Jelölje κ(A) a (V,A) gráf komponenseinek a számát tetsz®leges A élhalmazesetén. Vegyük észre, hogy az alábbi lineáris program ekvivalens a fentivel.

min∑

(cexe : e ∈ E) (13.6)

x(E) = |V | − 1 (13.7)

x(A) ≤ |V | − κ(A) ∀A ⊂ E (13.8)

0 ≤ xe ∀e ∈ E. (13.9)

Most megmutatjuk, hogy a Kruskal algoritmusa által adott feszít®fa x∗ karakterisztikusvektora optimális megoldása (13.6)-nek (amib®l az is következik, hogy valóban minimális súlyúfeszít®fát szolgáltat). Ezt úgy látjuk be, hogy a Kruskal algoritmus lefutása közben megadjuka duális feladat egy olyan y∗ megoldását, amely x∗-gal teljesíti a kiegészít® eltéréseket (13.8.tétel), azaz mindkett® optimális megoldás. A primál feladatban az egyszer¶ség kedvéértcseréljük le a célfüggvényt az ekvivalens max

∑(−cexe : e ∈ E) alakra.

A duális feladat a következ®:

min∑

((|V | − κ(A))yA : A ⊆ E) (13.10)∑e∈A

yA ≥ −ce ∀e ∈ E (13.11)

0 ≤ yA ∀A ⊂ E. (13.12)

Az yE változónak nem kell nemnegatívnak lennie. Legyen e1, e2, . . . , em az élek azon sor-rendje, amely szerint Kruskal algoritmusa végignézi ®ket. Jelölje Ri ezen sorrend els® i éléneka halmazát. Most megadjuk y∗ de�nícióját.

y∗A :=

cei+1 − cei , ha A = Ri, i < m,

−cem , ha A = Rm,

0 különben.

Mivel az élek a súlyok szerinti növekv® sorrendben vannak, y∗A ≥ 0 minden A ⊂ E esetén.Most megmutatjuk, hogy (13.11) is teljesül. Legyen e = ei, ekkor

∑A3e

y∗A =

m∑j=i

y∗Rj=

m−1∑j=i

(cej+1 − cej )− cem = −cei = −ce.

Tehát y∗ valóban megoldása a duális feladatnak, amely ráadásul minden (13.11) feltételtegyenl®séggel teljesít.

Most belátjuk, hogy amennyiben y∗A > 0, akkor az A-hoz tartozó (13.8) feltétel egyen-l®séggel teljesül. Ekkor A = Ri valamely i értékre. i-re vonatkozó indukcióval az állítástriviális, hiszen amikor Kruskal algoritmusa kiválaszt egy élt (azaz x∗e = 1), akkor mivel körnem keletkezhet, két meglév® komponenst köt össze.

Teljesülnek tehát a kiegészít® eltérések tételének a feltételei, azaz beláttuk, amit akartunk.2

93

Page 95: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

13.3 Prim feszít®fa algoritmusa

Az alábbiakban röviden ismertetjük Prim minimális súlyú feszít®fát megkeres® algoritmusát,amely valamelyest különbözik Kruskal algoritmusától.

A feladat tehát a következ®: Adott az összefügg® G = (V,E) irányítatlan gráf, és az éleina c : E → R+ nemnegatív súlyfüggvény. Keressünk meg egy minimális súlyú feszít®fát.

Prim algoritmusa a következ®: válasszuk ki a G gráf egy minimális súlyú élét, majd ebb®lkiindulva a már meglév® F fánkhoz mindig vegyünk hozzá egy bel®le kiinduló minimális súlyúélt, amíg feszít®fához nem jutunk.

13.11 tétel. Prim algoritmusa minimális súlyú feszít®fát ad.

Bizonyítás. A bizonyítást az Olvasóra bízzuk. 2

13.4 Nagamochi és Ibaraki algoritmusa

Legyen G = (V,E) egy gráf, és c : E → Z+ egy kapacitásfüggvény az éleken. A csúcsoknakegy v1, v2, . . . , vn sorrendjét legális sorrendnek nevezzük, ha

c(δ(Vi−1) ∩ δ(vi)) ≥ c(δ(Vi−1) ∩ δ(vj))

minden 2 ≤ i < j ≤ n-re, ahol Vi = {v1, . . . , vi}. Egy legális sorrendet könny¶ kiszámolni apontok egyenkénti hozzávételével.

Egy u és v csúcsokat elválasztó vágást (u, v)-vágásnak nevezünk. Jelölje λ(G;u, v) az (u, v)-vágások minimális c-értékét.

13.12 tétel (Nagamochi, Ibaraki, 1992). Ha v1, v2, . . . , vn legális sorrend, akkor δ(vn) egyminimális érték¶ (vn, vn−1)-vágás G-ben.

Bizonyítás.Azt kell belátni, hogy c(δ(vn)) ≤ λ(G; vn−1, vn). Indukciót használunk a pontok és élek

számának az összegére (ha ez 2, az állítás triviális). El®ször tegyük fel, hogy vn−1vn ∈ E.Legyen G′ az e = vn−1vn él törlésével keletkez® gráf. Könny¶ látni, hogy a sorrendünk legálismarad, tehát indukció szerint

c(δ(vn)) = c(δ′(vn)) + c(e) = λ(G′; vn−1, vn) + c(e) = λ(G; vn−1, vn).

Tehát feltehetjük, hogy vn−1vn /∈ E. Könnyen látható, hogy

λ(G; vn−1, vn) ≥ min{λ(G; vn−2, vn), λ(G; vn−2, vn−1)}.

Tehát azt kell belátnunk, hogy c(δ(vn)) ≤ λ(G; vn−2, vn) és c(δ(vn)) ≤ λ(G; vn−2, vn−1).Az el®bbi bizonyításához legyen G′ a vn−1 törlésével keletkez® gráf. A v1, . . . , vn−2, vn

sorrend legális marad, és az indukciós feltétel miatt

c(δ(vn)) = c(δ′(vn)) = λ(G′; vn−2, vn) = λ(G; vn−2, vn).

A másik egyenl®tlenség bizonyításához legyen G′ a vn törlésével keletkez® gráf. Av1, . . . , vn−1 sorrend legális, és az indukciós feltétel miatt most

c(δ(vn)) ≤ c(δ(vn−1)) = c(δ′(vn−1)) = λ(G′; vn−2, vn−1) = λ(G; vn−2, vn−1).

2

A fenti tétel értelmében a következ® algoritmus talál egy minimális érték¶ A vágást G-ben:

94

Page 96: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

0. Legyen kezdetben M értéke ∞, és legyen A de�niálatlan.

1. Ha G-nek 1 pontja van: vége

2. Keressünk egy v1, v2, . . . , vn legális sorrendet.

3. Ha c(δ(vn)) < M , akkor legyen M := c(δ(vn)), és A := δ(vn).

4. Húzzuk össze G-ben a vn−1 és vn pontokat, és lépjünk 1-re.

13.5 Az egészérték¶ programozási feladat NP-teljes

Láttuk, hogy a Hamilton-kör létezése felírható egészérték¶ programozási feladatként. Bizo-nyítja-e ez, hogy az egészérték¶ programozási feladat NP-teljes? Nem, mivel az általunkmutatott egyenl®tlenség-rendszer nagyon sok feltételt tartalmazott a gráf méretéhez képest.(Megadható olyan felírás is, melyben csak polinomiálisan sok feltétel szerepel a gráf méretében.Hogyan?)

13.13 tétel. NP-teljes.

Bizonyítás. A bizonyítást az Olvasóra bízzuk. (Vezessük vissza 3-SAT-ot!) 2

13.6 Minimális T -vágások

Ebben a fejezetben ismertetünk egy minimális T -vágás meghatározására szolgáló algoritmust.Bár más kombinatorikus optimalizálási tárgyakban szerepel a Gomory-Hu-fára épül® algorit-mus, amely ráadásul sokkal hatékonyabb a most ismertetend® eljárásnál, az egyszer¶sége mi-att érdemes áttekintenünk az alábbi, Grötschel, Lovász és Schrijver szerz®hármastól származóalgoritmust.

Legyen adott a G = (V,E) gráf az élein a c : E → R+ súlyozással. Adott továbbá a pároselemszámú T ⊆ V részhalmaz. A Q ⊆ V halmazt T -vágásnak nevezzük, ha |T ∩Q| páratlan.Minimális T -vágásnak nevezzük a Q T -vágást, ha a δc(Q) értéke, azaz a Q-ból kilép® éleksúlyainak az összege minimális.

Keressük meg a minimális érték¶ T -vágást! Jól tudjuk, hogy maximális folyamot hogyankereshetünk meg hatékonyan egy gráfban, azt is tudjuk, hogy egyúttal egy minimális vágástis hogyan határozhatunk meg.

Az algoritmus el®ször megkeres egy olyan minimális S vágást, amelyre S ∩ T 6= ∅ és (V −S) ∩ T 6= ∅. Ezt megtehetjük a rögzített s ∈ T és minden t ∈ T − s mellett a minimáliss, t-vágások kiszámításával. Ez |T | − 1 darab maximális folyam algoritmussal megkapható.

Amennyiben S már T -vágás, megkaptuk a minimális T -vágást. Ha nem ez a helyzet, akkora következ® lemma segítségével lépünk tovább.

13.14 lemma. Létezik egy Q minimális T -vágás, melyre Q ⊆ S vagy Q ⊆ V − S teljesül.

Bizonyítás. Legyen U ⊆ V egy minimális T -vágás, és tegyük fel hogy U ∩ S, U ∩ (V − S),(V − U) ∩ S, és (V − U) ∩ (V − S) mind nemüresek. Feltehetjük, hogy U ∩ S ∩ T páratlanelemszámú, ekkor (V−U)∩S∩T is páratlan elemszámú. Feltehetjük azt is, hogy (S∪U)∩T 6= ∅és (V − (S ∪U)) ∩ T 6= ∅. Belátjuk, hogy ekkor S ∩U is minimális T -vágás, amib®l a lemmaállítása következik. S választása miatt

c(δ(S)) ≤ c(δ(S ∪ U)).

95

Page 97: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

A fokszám-függvény pedik szubmoduláris (l. 17. feladat)

c(δ(S)) + c(δ(U)) ≥ c(δ(S ∪ U)) + c(δ(S ∩ U)),

az utóbbit kivonva az el®bbib®l a következ® adódik:

c(δ(S ∩ U)) ≤ c(δ(U)),

azaz S ∩ U valóban minimális T -vágás. 2

Eszerint a feladat redukálható két kisebb gráfra. Származzon G1 a V − S egy pontra valóösszehúzásával, és az élsúlyok meghagyásával (a keletkez® hurokélek nem játszanak szerepet).T1 := S ∩ T . Hasonlóképpen G2 legyen az S halmaz egy pontra való összehúzásával kapottgráf, az élsúlyokat hagyjuk meg. T2 pedig legyen (V − S) ∩ T .

A G-beli minimális T -vágás tehát a G1-beli minimális T1-vágás és a G2-beli minimálisT2-vágás közül a kisebb.

A kisebb gráfokban ugyanezzel az eljárással keressük meg a minimális T -vágásokat a meg-felel® T halmazra vonatkozóan.

16 feladat. Mutassuk meg, hogy a fenti algoritmus O(n5) futási idej¶, ha van egy O(n3)futási idej¶ folyam-algoritmusunk (például az el®reemel® el®folyam-algoritmus ilyen). (Segít-ség: Alkalmazzunk indukciót a |T | = |T1|+ |T2| meg�gyelésre építve.)

Ezzel tehát befejeztük az algoritmus leírását. Ezen algoritmus kevésbé hatékony, mint aGomory-Hu-fára épül® eljárás, mindössze egyszer¶sége miatt szerepeltettük itt.

17 feladat. Legyen adott a G = (V,E) gráf, és az élein a c : E → R+ súlyozás. Bizonyítsukbe, hogy a fokszámfüggvény szubmoduláris (élsúlyozással is), azaz minden X,Y ⊆ V ponthal-mazra a következ® teljesül:

c(δ(X)) + c(δ(Y )) ≥ c(δ(X ∪ Y )) + c(δ(X ∩ Y )).

13.7 El®zetes egyszer¶sítések

Ez Wolsey IP könyvéb®l egy kis fejezet, ámlag érdekes.

96

Page 98: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Chapter 14

Jelölések

Ebben a fejezetben összefoglaljuk a jegyzetben használt legfontosabb jelöléseket.

1.

2. fejezet

• cx jelöli a cTx szorzatot két azonos számú komponensb®l álló a és c vektor esetén,ahot T a transzponálás jele, azaz cx egy szám (egykoponens¶ vektor:-)

• P jelöli valamely A mátrix és b vektor mellett az Ax ≤ b egyenletrendszer (valós)megoldásainak a halmazát, azaz egy poliédert.

• PI jelöli P poliéder egész pontjainak konvex burkát.

• bλc: az a legnagyobb egész, amely a λ valós számnál nem nagyobb, azaz a λ alsóegészrésze.

• Megfelel® méret¶ B mátris és y vektor esetén yB jelöli az yTB mátrixszorzateredményéül kapott vektort.

• 1 jelöli a csupa 1 komponens¶ vektort.

• conv(X): az X ponthalmaz konvex burka

3.

4.

5.

6.

7. fejezet

• ce := c(e), ahol x : E → R egy függvény. További példa xe.

• δ(v): a v pontra illeszked® élek halmaza.

• δ(S): az S ponthalmazból kilép® élek halmaza.

• γ(S): az S ponthalmazbeli pontokat összeköt® (azaz feszített) élek halmaza.

• x(A) :=∑

e∈A x(e), ahol x : E → R függvény, A ⊆ E tetsz®leges részhalmaz.Példák: x(δ(S)), x(γ(S)).

8.

9.

97

Page 99: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

10.

11.

98

Page 100: Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhozweb.cs.elte.hu/~mesti/matek/egeszerteku_jegyzet.pdf · Egészérték¶ programozás I. vizsgatematika 2011. ®sz

Bibliography

[1] Cook, Cunningham, Pulleybank, Schrijver: Combinatorial Optimization, Wiley,1998.

[2] A. Schrijver: Theory of Linear and Integer Programming, Wiley, 1986.

[3] A. Schrijver: Combinatorial Optimization, Springer, 2003.

[4] G. Nemhauser and L. Wolsey: Integer and Combinatorial Optimization, Wiley, 1988.

[5] Vizvári Béla: Egészérték¶ programozás, ELTE jegyzet, 1992.

[6] L. Wolsey: Integer Programming, Wiley, 1998.

[7] D. Bertsimas, J.N. Tsitsiklis: Introduction to Linear Optimization, Athena Scienti�c,1997.

[8] Frank András: Operációkutatás II. éves matematikus hallgatóknak, el®adásjegyzet,2003.

[9] Frank András: Poliéderes kombinatorika, el®adásjegyzet, 2003.

[10] B. Korte, J. Vygen: Combinatorial Optimization, Springer, 2000.

[11] G. Reinelt: TSPLIB � A traveling salesman problem library, ORSA Journal of Com-puting 6, (1991) 376-384.

99