Online jegyzet az Egészérték¶ Programozás I. és II. tárgyhoz
Király Tamás, Kis Tamás és Szeg® László
October 25, 2013
Egészérték¶ programozás I. vizsgatematika 2013. tavasz 1. Az egészérték¶ lineáris programozási feladat deníciója, néhány alapvet® típus (termelési feladat, hátizsák-feladat, szolgáltató-elhelyezés, szabási feladat, stb.). programozási feladat.
Vegyes
Egészérték¶ változókkal kifejezhet®: indikátor változó, rácsból
vett é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 (4). 4. A diszjunktív elv, Gomory-féle egész, és vegyes vágás, metszet vágások (3.4, 3.5, 3.6, 3.8). 5. Gomory-féle vágás és algoritmus (5.1). 6. LP alapú kolátozás és szétválasztás (branch and bound) módszer.
Alkalmazás a
hátizsák-feladatra (5.2). 7. Gomory-féle vágás és algoritmus, Gomory-féle vegyes vágás 3.5). 8. Az utazó ügynök probléma deníciója, komplexitása.
Lokális keresés, túranövel®
módszerek, túrajavító módszerek, Christodes heurisztikája, Lin-Kernighan algoritmus (6,6.4,6.5). 9. Az utazóügynök probléma alsó korlátjai:
1-fa korlát, Held és Karp korlátja, lineáris
programozási alsó korlát. Az utóbbi kett® megegyezik (7.1,7.2). 10. Lagrange relaxáció. A Lagrange duális feladat, Georion tétele. Szubgradiens módszer a Lagrange duális feladat megoldására (5.3). 11. Többtermékes folyam feladat Lagrange relaxációval és oszlopgenerálással. Egydimenziós szabási feladat (5.5.1), (5.5.2). 12. Hilbert bázisok, unimoduláris, és teljesen unimoduláris mátrixok, Graver féle teszthalmaz (2.2, 5.6). 13. Teljes duális egészérték¶ség deníciója, jellemzése Hilbert bázisokkal (2.5). 14. Benders dekompozíció, alkalmazás a szolgáltató elhelyezési problémára (5.4).
1
Egészérték¶ programozás II. vizsgatematika 2013. tavasz 1. Teljes duális egészérték¶ség.
Racionális poliéderek TDI leírása,
teljes dimenziós
poliéderek egyértelm¶ minimális leírása (2.5). 2. Gomory-Chvátal-vágások, Chvátal-rang (3.1, 3.2). 3. Vágások a hátizsák-feladatra és az utazóügynök feladatra, fés¶-egyenl®tlenségek (3.3, 7.4). 4. Virág-egyenl®tlenségek és eldöntésük (7.4, 11.6). 5. Felemelés bináris feladatoknál, alkalmazás a stabil halmaz poliéderre.
Felemelés és
vetítés (3.12, 3.13). 6. Rácsok, redukált bázis, LLL algoritmus, legközelebbi vektor közelítése (8.1). 7. Egészérték¶ programozási feladat megoldása x dimenzióban (8.2). Racionális számok közelítése kis nevez®j¶ törtekkel (8.3). 8. Csoport-feladat relaxáció maradékosztályok segítségével. Sarokpoliéderek és metszet vágások. (3.10,3.11). 9. Jain iteratív kerekít® algoritmusa az irányítatlan hálózattervezési feladatra (9.3).
2
Contents 1 Példák egészérték¶ optimalizálásra
6
1.0.1
Hozzárendelési feladat
. . . . . . . . . . . . . . . . . . . . . . . . . . .
1.0.2
Hátizsák feladat
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.0.3
Halmazfedési feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.0.4
Az utazóügynök feladata . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.0.5
Szolgáltató-elhelyezési feladat (facility location) . . . . . . . . . . . . .
7
1.0.6
Termelésütemezési feladat . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.0.7
Rácsból vett értékek
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.0.8
Korlátos poliéderek uniója . . . . . . . . . . . . . . . . . . . . . . . . .
9
2 Poliéderben lév® egész pontok konvex burka
6
10
2.1
Meyer tétele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Hilbert-bázisok, unimodularitás . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.3
Nemmegoldhatóság . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4
Bonyolultság
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.5
Teljesen duálisan egészérték¶ség . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.5.1
18
Feladatok
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Érvényes egyenl®tlenségek
10
20
3.1
Gomory-Chvátal-levezetések . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.2
Chvátal-rang
22
3.3
Vágások a bináris hátizsák-feladatra
3.4
A diszjunktív elv
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.5
Gomory egészérték¶ vágás . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.6
Gomory-féle vegyes vágás
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.6.1
Els® levezetés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.6.2
Második levezetés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.7
Dominancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.8
Metszet vágások
29
3.9
Szeparáció és optimalizálás
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.10 Csoport-feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3.11 Sarokpoliéderek és metszet vágások . . . . . . . . . . . . . . . . . . . . . . . .
34
3.12 Lifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
3.13 Felemelés és vetítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.14 Feladatok
40
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Dinamikus programozás
42
4.1
Legrövidebb utak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
A hátizsákfeladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
4.2.1
43
A 0-1 hátizsákfeladat . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
42
Egészérték¶ hátizsákfeladat . . . . . . . . . . . . . . . . . . . . . . . .
44
4.3
Fa optimális részfája . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2
46
4.4
Maximális súlyú független csúcshalmaz fában
. . . . . . . . . . . . . . . . . .
47
4.5
Termelésütemezési feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
5 Általános egészérték¶ programozási módszerek 5.1
5.2
5.3
49
Vágósíkos eljárások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
5.1.1
Lexikograkus duál szimplex módszer
. . . . . . . . . . . . . . . . . .
50
5.1.2
Gomory módszerének végessége . . . . . . . . . . . . . . . . . . . . . .
51
Korlátozás és szétválasztás módszere
. . . . . . . . . . . . . . . . . . . . . . .
52
5.2.1
LP alapú korlátozás és szétválasztás
. . . . . . . . . . . . . . . . . . .
52
5.2.2
Korlátozás ügyesebben . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
5.2.3
Alkalmazás a bináris hátizsák-feladatra . . . . . . . . . . . . . . . . . .
54
Lagrange-relaxáció
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
5.3.1
Lagrange-duális feladat
5.3.2
A Lagrange-duális feladat er®ssége
. . . . . . . . . . . . . . . . . . . .
56
55
5.3.3
A szubgradiens-módszer . . . . . . . . . . . . . . . . . . . . . . . . . .
57
5.4
Benders dekompozíció
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
5.5
Oszlopgenerálás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
5.5.1
Többtermékes folyamok
61
5.5.2
Egydimenziós szabási feladat
5.6
Graver-féle teszthalmaz
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
6 Az utazóügynök feladat heurisztikái
67
6.1
A legközelebbi szomszéd heurisztikája
. . . . . . . . . . . . . . . . . . . . . .
67
6.2
Túranövel® módszerek
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
6.3
Túrajavító módszerek
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4
Christodes heurisztikája
6.5
Lin és Kernighan heurisztikája
6.6
Feladatok
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70 71
. . . . . . . . . . . . . . . . . . . . . . . . . .
71
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
7 Az utazóügynök feladat alsó korlátjai
73
7.1
Held és Karp korlátja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
7.2
Lineáris programozási alsó korlát
74
7.3
Oszlopgenerálós megoldás
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
7.4
Vágósíkok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
7.4.1
Fés¶-egyenl®tlenségek
. . . . . . . . . . . . . . . . . . . . . . . . . . .
78
7.4.2
Virág-egyenl®tlenségek . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
. . . . . . . . . . . . . . . . . . . . . . . . .
7.5
Feladatok
7.6
Korlátozás és szétválasztás módszere
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Egészérték¶ programozás x dimenzióban 8.1
80 80
82
Rácsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
8.1.1
Kitér®: ILP feladat alternatív formulációja
. . . . . . . . . . . . . . .
83
8.1.2
Redukált bázisok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
8.1.3
Redukált bázis keresése
. . . . . . . . . . . . . . . . . . . . . . . . . .
85
8.1.4
Legközelebbi vektor közelítése . . . . . . . . . . . . . . . . . . . . . . .
87
8.2
Polinomiális algoritmus x dimenziós egészérték¶ programozásra
. . . . . . .
88
8.3
Racionális számok egyidej¶ közelítése kis nevez®j¶ törtekkel . . . . . . . . . .
90
4
9 Közelít® algoritmusok 9.1
9.2
9.3
91
2-közelít® algoritmus minimális súlyú lefogó csúcshalmaz keresésére . . . . . .
91
9.1.1
Legkisebb lefogó csúcshalmaz
91
9.1.2
Minimális költség¶ lefogó csúcshalmaz
GoemansWilliamson-algoritmus
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
. . . . . . . . . . . . . . . . . . . . . . . . .
93
9.2.1
A feladat
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
9.2.2
Alkalmazások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
9.2.3
Az algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
Jain iteratív kerekít® algoritmusa . . . . . . . . . . . . . . . . . . . . . . . . .
96
9.3.1
96
Az általános irányítatlan hálózattervezési feladat
. . . . . . . . . . . .
10 Általános heurisztikus algoritmusok 10.1 Lokális keresés
100
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100
10.2 Tabukeresés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100
10.3 Szimulált leh¶lés
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4 Genetikus algoritmusok
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11 Függelék
100 100
101
11.1 Lineáris programozási emlékeztet®
. . . . . . . . . . . . . . . . . . . . . . . .
11.1.1 A lexikograkus duál-szimplex módszer
101
. . . . . . . . . . . . . . . . .
102
11.2 A feszít®fák poliédere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102
11.3 Prim feszít®fa algoritmusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
104
11.4 Nagamochi és Ibaraki algoritmusa . . . . . . . . . . . . . . . . . . . . . . . . .
104
11.5 Az egészérték¶ programozási feladat NP-teljes . . . . . . . . . . . . . . . . . .
105
11.6 Minimális
T -vágások
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.7 El®zetes egyszer¶sítések
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 Jelölések
105 106
107
5
Chapter 1
Példák egészérték¶ optimalizálásra 1.0.1 Hozzárendelési feladat Adott
n
munkát
darab munka és elvégzésükhöz
cij
összegért végzi el.
n
ember.
Tudjuk, hogy az
i-edik
ember a
j -edik
Célunk a munkák olyan kiosztása, amely a lehet® legkisebb
költségráfordítással jár. Vezessük be az és
0,
xij
vátozókat, amelyek értéke
1,
ha az i-edik ember a
j -edik
munkát kapja,
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 X
xij = 1
j = 1, 2, . . . n,
i=1 másrészt minden ember csak egy munkát kaphat (a számosságok miatt pontosan egy munkát kap):
n X
xij = 1
i = 1, 2, . . . n.
j=1 A célfüggvény pedig a következ®.
min
n X n X
cij xij .
i=1 j=1
1.0.2 Hátizsák feladat Többféle hátizsák feladatot is ismerünk, amelyekkel b®vebben majd a 4.2 fejezetben foglalkozunk. Most az úgynevezett bináris hátizsák feladatot tekintjük. Adott egy pénzügyi keret (magyarán
ai
összeg az
i = 1, 2, . . . n
b
Forint), és
n
b
költségvetés¶
darab befektetési lehet®ség, amelyek költségigénye
értékekre. A befektetések várható hozama
ci (i = 1, . . . , n).
a 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 X
ai xi ≤ b.
i=1 A maximalizálandó függvény pedig:
n X
ci xi .
i=1
6
Célunk
1.0.3 Halmazfedési feladat Adott egy alaphalmaz és annak néhány részhalmaza, amelyeknek költsége is van. Válasszuk ki a legkisebb összeköltséggel részhalmazok egy olyan rendszerét, amely az alaphalmaz minden elemé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 helyi szabályozás szerinti maximális kiszállási id®n belül. Célunk a legkisebb költséggel egy olyan t¶zoltó-állomás hálózat létrehozása, amely a város minden részébe a megadott id®korlát alatt egységeket tud küldeni.
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ék legyen 1, ha az alaphalmaz i-edik eleme benne van a j -edik részhalmazban. Ekkor, mivel Az
xj
változó legyen
minden elemnek benne kell lennie valamelyik kiválasztandó részhalmazban:
m X
aij xj ≥ 1
i = 1, 2, . . . , n.
j=1 A minimalizálandó költségfüggvény pedig:
m X
cj xj .
j=1
1.0.4 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övidebb
olyan 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®tlensé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
X
ce xe .
e∈E
1.0.5 Szolgáltató-elhelyezési feladat (facility location) Adott potenciális szolgáltatóhelyek
N = {1, 2, . . . , n}
halmaza. Legyen a
j
i megrendel®nek di cij költséget jelent.
igénye van; ha egységnyi igényét a
és megrendel®k
szolgáltatóhely megnyitásának x költsége
j
fj ,
M = {1, 2, . . . , m} uj . Az
kapacitása pedig
szolgáltatóhely elégíti ki, akkor az
Döntsük el, hogy mely szolgáltatóhelyeket használjuk (amelyek feltevés
szerint elegend®en nagy kapacitásúak), és az egyes megrendel®k igényeinek mekkora részét teljesítsék az egyes szolgáltatóhelyek.
7
Vezessük be az és 0, ha nem.
yj
megrendel®nek a
j
bináris változókat, amelyek értéke 1, ha használjuk a
xij
Az
j
szolgáltatóhelyet,
nemnegatív változó jelölje azt, hogy mekkora igényét teljesíti az
i
szolgáltatóhely.
Mivel minden megrendel® teljes igényét ki kell elégítenünk, ezért:
X
∀i ∈ M.
xij = di
j∈N
j raktárból szállítunk valahová, akkor valóban yj = 1 legyen a j ∈ M raktárra: Ha a
a következ® egyenl®tlenségek biztosítják, hogy
xij ≤ uj yj
∀i ∈ M.
A célfüggvényünk pedig a következ®.
min
XX
cij xij +
i∈M j∈N
X
fj yj .
j∈N
1.0.6 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.
Deniá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 X
p t xt +
t=1
n X
ht zt +
t=1
∀t = 1, 2, . . . , n, ∀t = 1, 2, . . . , n,
z0 = 0, zt , xt ≥ 0, yt ∈ {0, 1} ahol
M
∀t = 1, 2, . . . , n,
egy megfelel®en nagy szám ahhoz, hogy ne korlátozza a megtermelend® mennyiségeket.
Amennyiben
yt -hez
ft yt ,
t=1
zt−1 + xt = dt + zt xt ≤ M y t
n X
zn = 0-nak
is teljesülnie kell, akkor
tartozó sorban.
8
M
választható például
Pn
i=t di értéknek az
1.0.7 Rácsból vett értékek Egészérték¶ feladatként azt is fel tudjuk írni, ha azt szeretnénk, hogy csak egy
L(B) ⊆
Rn rács pontjait vehesse fel értékként, ahol
B
egy
x ∈ Rn vektorváltozónk n × d-es d rangú mátrix
(a rács deníciója a 8.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ók
segítségével:
max{(cB)y : (AB)y ≤ b, y ∈ Zd }.
1.0.8 Korlátos poliéderek uniója Adott
k
darab korlátos poliéder:
Pi = {x ∈ Rn : Ai x ≤ bi , −d ≤ x ≤ d} (i = 1, . . . , k ).
A
következ® feladatot szeretnénk modellezni:
max{cx : x ∈ ∪ki=1 Pi }. Létezik olyan
β
szám amire
−d ≤ x ≤ d
esetén
Ai x ≤ bi + β1
minden
segítségével a felírás vegyes programozási feladatként:
max cx −d ≤ x ≤ d Ai x ≤ bi + β(1 − yi )1 k X
(i = 1, . . . , k)
yi = 1
i=1
y ∈ {0, 1}k
9
i-re.
Ennek
Chapter 2
Poliéderben lév® egész pontok konvex burka 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,
vektor elemei racionális számok. Feltehetjük, hogy ekkor Az
x ∈ Rn
vektort
egész vektornak
A
és
b
ha az
A
mátrix és a
b
elemei egészek.
mondjuk, ha minden komponense egész. A vektor
elnevezés mellett használni fogjuk a pont elnevezést is. Pontként többnyire akkor hivatkozunk rá, amikor poliéderes környezetben vagyunk, vektorként pedig akkor, amikor valamely térnek egy elemére gondolunk. A
P
egész poliéder,
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 11.1 fejezet lineáris programozási emlé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 és
PI
(Meyer, 1974)
.
Ha
P
racionális poliéder, akkor
PI
is poliéder. Ha
PI 6= ∅,
akkor
P
karakterisztikus kúpjai megegyeznek.
A fenti tétel a nemracionális poliéderekre nem érvényes. El®fordul, hogy csak végtelen sok
PI poliéder. Az is el®fordulhat, hogy PI nem zárt halmaz! P Motzkin-tétel (11.4 tétel) szerinti Q + C el®állítását, ahol felteaz y1 , y2 , . . . , ys egész vektorok generálják. Legyen
féltér metszereként áll el® a
Bizonyítás.
Tekintsük a
hetjük, hogy a
C
kúpot
B := {
s X
µi yi : 0 ≤ µi ≤ 1, i = 1, 2, . . . , s}.
i=1 Megmutatjuk, hogy
(Q + B)I
PI = (Q + B)I + C ,
ami elegend®, hiszen
Q+B
korlátos halmaz, azaz
valóban politóp, s így poliéder is.
PI ⊆ (Q + B)I + C . Mivel (Q + B)I + C konvex halmaz, elég p pontja benne van. p felírható q + c alakban, ahol q ∈ Q, c ∈ C . Ekkor léteznek olyan
El®ször bebizonyítjuk, hogy belátni, hogy a
P
minden egész
Motzkin tétele szerint nemnegatív
µi
együtthatók, melyekkel:
p=q+c=q+
s X i=1
10
µi yi =
s s X X = (q + (µi − bµi c)yi ) + (bµi c)yi ) =: (q + b) + c0 . i=1
b∈B
i=1
nyilvánvalóan teljesül, továbbá
q+b
egész, mivel
q + b = p − c0 ,
azaz el®áll két egész
vektor 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 , CI = C ,
ahol felhasználtuk, hogy
2.2
mivel
C
2
racionális.
Hilbert-bázisok, unimodularitás
2.2 deníció. Legyen C ⊆ Rn egy poliéderkúp. Az a1 , a2 , . . . , am C -beli egész vektorok véges halmazát Hilbert-bázisnak nevezzük, ha minden C -beli egész vektor el®áll az ai vektorok nemnegatív egész együtthatós lineáris kombinációjaként. Nincs minden poliéderkúpnak Hilbert-bázisa.
2.3 tétel
.
(Gordan 1873, Hilbert 1890)
√ C = {(x, y) ∈ R2 : x ≥ 0, 5x ≤ y}.
Minden racionális poliéderkúpnak létezik Hilbert-
bázisa.
Bizonyítás. y1 , y2 , . . . , ys
Weyl tétele (11.2 tétel) szerint feltehetjük, hogy a
C
racionális poliéderkúp az
egész vektorok által generált kúpként is el®áll. Legyen
H := {a1 , a2 , . . . , am }
a
következ® korlátos halmazba es® összes egész vektor.
V := {
s X
λi yi : 0 ≤ λi ≤ 1, i = 1, 2, . . . , s}.
i=1 Megmutatjuk, hogy Legyen
b
H
C
a
egy tetsz®leges
Hilbert-bázisa.
C -beli
b=
s X
egész pont. Ekkor
µ i yi =
i=1
H -ban, P b − si=1 bµi cyi , azaz v H -ban van.
(µi − bµi c)yi +
i=1
Az els® szumma eredményét jelölje benne vannak
s X
s X
bµi cyi .
i=1
v. v ∈ V
triviálisan teljesül.
elegend® azt megmutatni, hogy
v
Mivel az
is benne van a
megkapható egész vektorok összegeként, ezért
v
H
yi
vektorok
halmazban.
v=
is egész, tehát valóban
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 nem lé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 (11.5 tétel) következményeként megmutatjuk, hogy ez azzal ekvivalens, hogy létezik egy vektor, amellyel az összes nemnulla generáló vektor hegyesszöget zár be, azaz érvényes az alábbi, ahol a
B
mátrix sorai a kúp
generáló vektorai.
2.4 lemma.
Az adott
B
mátrixhoz akkor és csak akkor létezik
szernek, ha nem létezik megoldása a következ®nek:
yB = 0, y ≥ 0, y 6= 0.
11
x
megoldása a
Bx > 0
rend-
Bizonyítás. ∃x : Bx > 0 ⇔ ∃x : Bx ≥ 1 ⇔ ∃x : Bx ≤ −1. A Farkas-lemma (11.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-et (p, q) pár Hilbert-bázis, ahol p negatív egész, q pozitív egész,
mint kúpot tekintve, az összes és relatív prímek.
Bizonyítás.
Legyen M azon C -beli nemnulla, egész vektorok halmaza, amelyek nem állnak C -beli egész vektor összegeként. M elemeinek nyilván minden Hilbert-bázisban benne kell 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. n Mivel C csúcsos, ezért az el®z® lemma szerint létezik egy y ∈ R vektor, amelyre yx > 0 teljesü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ész együ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
el® két
Legyen most
A
A
egy
m × m-es
nemszinguláris mátrix egész elemekkel. Azt vizsgáljuk, hogy
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. b
Ha
|det(A)| = 1,
akkor
A−1
is egész mátrix. A generált kúp tetsz®leges egész
elemére az ®t adó lineáris kombináció együtthatóit
A−1 b
adja, tehát ezek egészek, azaz az
oszlopok Hilbert-bázist alkotnak. A másik irányhoz tegyük fel, hogy az oszlopok Hilbert-bázist alkotnak. Ebb®l következik,
b-re A−1 b nemnegatív, akkor egész. Azt állítjuk, hogy minden egész b-re A−1 b egész. Ha adott b-re ez nem teljesülne, akkor vegyünk egy olyan egész y vektort, amire y + A−1 b ≥ 0, ; legyen b0 := A(y + A−1 b) = Ay + b. Ekkor b0 egész, de A−1 b0 nemnegatív és hogy ha egy egész
nem egész, ami ellentmond a Hilbert-bázis tulajdonságnak. Beláttuk tehát, hogy
A−1 b
egész minden egész
−1 egész mátrix, tehát Ezért viszont A miatt tehát
1
2.8 tétel
vagy
Egy
b-re,
speciálisan minden egységvektorra is.
egész.
A
det(A−1 )det(A) = 1
összefüggés
2
|det(A)| = 1.
2.7 deníció. minánsa
det(A−1 )
A m × n-es m
rangú egész mátrix unimoduláris, ha minden bázis deter-
−1.
. Legyen A egy m × n-es m rangú egész mátrix. A akkor Pb := {x : Ax = b, x ≥ 0} poliéder minden egész b-re egész
(Veinott, Dantzig, 1968)
és csak akkor unimoduláris, ha a poliéder.
12
Bizonyítás.
A
Ha
unimoduláris, akkor tetsz®leges egész
megoldása egész, tehát
Pb
A fordított irányhoz legyen
B -hez
(speciálisan a
a
Pb
poliéder minden bázis-
B
egy bázis.
b-re Pb minden bázismegoldása B oszlopai az általuk generált kúp |det(B)| = 1. 2
Mivel minden
tartozó is, ha megoldás) egész, ezért
Hilbert-bázisát alkotják. A 2.6. Tétel szerint ekkor
2.9 deníció.
b-re
egész poliéder.
Egy mátrix teljesen unimoduláris (TU), ha minden négyzetes
D részmátrixára
det(D) ∈ {0, 1, −1}.
2.10 állítás.
Az
Bizonyítás.
Könny¶.
2.11 tétel
A
mátrix pontosan akkor TU, ha az
poliéder minden egész
Bizonyítás. Qb 2.12 tétel
Az
b-re
unimoduláris
(Homan, Kruskal, 1956)
minden egész
.
A
mátrix pontosan akkor TU, ha a
b-re
.
Qb := {x :
egész poliéder.
b-re ⇔ {z : [A, I]z = b, x ≥ 0}
egész poliéder minden egész
b-re ⇔ [A, I]
minden egész
mátrix unimoduláris.
2
(Homan, Kruskal, 1956)
Ax ≤ b, x ≥ 0}
[A, I]
⇔A
Ha az
egész poliéder
2
TU.
A
mátrix TU, akkor az
{x : Ax ≤ b}
poliéder
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ész b-re ⇒ {x : Ax ≤ b}
egész poliéder minden egész
2
b-re.
F ⊆ E egy olyan kijelölt élhalmaz, ami A mátrixot, aminek sorai F éleivel, oszlopai pedig E − F éleivel vannak indexelve. Egy adott uv ∈ E − F élhez tartozik F -ben egy 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ánya Legyen
D = (V, E)
egy irányított gráf, és legyen
irányítatlan értelemben feszít® fa. Tekintsük a következ®
megegyezik az út irányával, és -1, ha az irány fordított; a többi F-beli élhez pedig 0 tartozzon.
2.13 dení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 is
hálózati mátrixot kapunk.
Bizonyítás. 2.15 tétel
.
(Tutte, 1965)
Bizonyítás. méretére.
2
Könny¶.
Elég belátni négyzetes hálózati mátrixra.
Legyen
a fának egy
u
Minden hálózati mátrix teljesen unimoduláris.
D = (V, E)
és
F
Használjunk indukciót a mátrix
a mátrixot adó irányított gráf és fa, és legyen
levélre illeszked® éle (feltehet®, hogy így van irányítva). Ha
uv
uv ∈ F
sorában csak
1 nemnulla elem van, akkor a determináns kifejtési szabály miatt indukcióval kész vagyunk.
su ∈ E − F él lép u-ba, a többi él kilép u-ból. Könny¶ su oszlopát hozzáadjuk egy ut ∈ E − F él oszlopához, akkor újra hálózati mátrixot kapunk: az ut kihagyásával és egy st él hozzávételével kapott gráfhoz tartozót. A determináns persze nem változik. Ezt a m¶veletet elvégezve minden ut ∈ E − F élre olyan mátrixot kapunk, ahol uv sorában csak 1 nemnulla elem van, ilyenr®l pedig már láttuk hogy determinánsa 0, 1 vagy -1. 2 Különben feltehet®, hogy pontosan 1
ellen®rizni, hogy ha
13
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 {ai x ≤ βi , 1 ≤ i ≤ m} rendszernek nem létezik egész 2n elem¶ részrendszere, amelynek már szintén nincs egész
megoldása, akkor van egy legfeljebb megoldása.
Bizonyítás.
Megmutatjuk, hogy ha nincs egész megoldás, de minden j -re létezik xj egész, aj xj > βj , és minden i 6= j indexre ai xj ≤ βi , akkor m ≤ 2n . n Legyen Z := Z ∩ conv{x1 , x2 , . . . , xm }. Ekkor a következ® rendszernek nem létezik Z -beli
amelyre
megoldása (de persze az már lehetséges, hogy egész megoldása van).
a1 x < min{a1 z : a1 z > β1 }, z∈Z
. . .
(2.1)
am x < min{am z : am z > βm }. z∈Z
γj ∈ R , j = 1, 2, . . . , m számokat, hogy γj ≥ minz∈Z {a z : aj z > βj }, és Pjm rendszernek ne létezzen Z -beli megoldása, ezen belül pedig j=1 γj maximális
Válasszuk úgy a a következ® legyen.
a1 x < γ1 , . . .
(2.2)
am x < γm . Ilyen
γ
létezik (lásd (2.1)),
γj
felülr®l is korlátos (γj
≤ aj xj ),
a
γ
vektorok halmaza pedig
zárt, hiszen a komplementere nyílt:
{γ ∈ Rm : ∃z ∈ Z,
melyre
ai z < γi ∀ i = 1, 2, . . . m} = [ = {γ ∈ Rm : ai z < γi ∀ i = 1, 2, . . . m}, z∈Z
ez utóbbi pedig nyíltak uniója.
Pm
minden
j -re létezik yj ∈ Z , hogy aj yj = γj , és ai yj < γi m > 2n , ezért léteznek k és l különböz® indexek, y +yl ∈ Z , ami viszont azonos paritásúak. Ekkor k 2 2
j=1 γj maximális, ezért minden
Mivel
i 6= j
indexre.
Mivel indirekten
amelyeknek a megfelel® komponenseik kielégíti (2.2)-at. Ellentmondás.
Megjegyezzük, hogy a fenti tételben szerepl®
n≥2
2n
éles, amint azt a következ® példa mutatja
esetben:
X
xi −
X
xi ≤ |I| − 1
∀ I ⊆ {1, 2, . . . , n}.
i6∈I
i∈I
A fenti tétel egészérték¶ optimalizációs feladatokra vonatkozó következménye az alábbi.
2.17 tétel legfeljebb
(Scarf, Todd, 1977)
2n − 1
Bizonyítás.
sorból álló
.
Ha
A0 x ≤ b0
µ := max{cx : Ax ≤ b, x egész} véges, akkor létezik egy max{cx : A0 x ≤ b0 , x egész} = µ.
részrendszer, amelyre
A következ® rendszernek nem létezik egész megoldása semmilyen
t ∈ Z+
paraméterre.
Ax ≤ b, 1 cx ≥ µ + . t 14
(2.3)
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
A0 x ≤ b0 keresett méret¶ rendszer, amely végtelen sok t-re {A0 x ≤ b0 , cx > µ} rendszernek nincs egész megoldása.
egy az
2.4
cx ≥ µ +
1 t , ezért létezik
szerepel, ami azt jelenti, hogy
2
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
Bizonyítás.
2K2 , P4
vagy
részgráfja.
1 -b®l 2, és 2 -b®l 3 egyszer¶en következik.
Most megmutatjuk 3 -ból 1 -et. Amennyiben
C4
G-ben
G
A
pontszámára vonatkozó indukcióval bizonyítunk.
van izolált pont (amelyre dení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
minden
más ponttal össze van kötve, újfent készen vagyunk, ha pedig nem ez a helyzet, tekintsünk egy
z
pontot, amely nem a szomszédja.
Mivel olyan
s
z
nem izolált pont, létezik egy
t-nek
szomszédjának, amely
t
szomszédja. Mivel
v
nem szomszédja. Ekkor a
maximális fokú, kell léteznie
vt
és
g®en a 3 -ban tiltott feszített részgráfokat kapunk, következésképpen szomszédja.
2.5
uz élek meglétét®l fügv -nek minden más pont 2
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 kombinatorikai feladatokkal kapcsolatos következtetések levonására. Ebben a fejezetben a teljesen duálisan egé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 ad nekü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ész célfüggvényhez egész vektoron is felvétetik. Amint az ki fog derülni, ez egy nagyon gyümölcsöz® elgondolás.
2.20 tétel
.
(Homan, 1974)
max{cx : x ∈ P }
Bizonyítás.
P
A
korlátos racionális poliéder akkor és csak akkor egész, ha a
érték minden egész
c
vektorra egész.
Világos, hogy egész poliéderre teljesül a feltétel, most lássuk be, hogy a
P
korlátos racionális poliéderre a feltétel teljesülése maga után vonja, hogy egész. Legyen
v = (v1 , v2 , . . . , vn )
a
következ® maximum egyedül a
v
P
c ∈ Zn olyan célfüggvény, melyre max{cx : x ∈ P }. (Lásd 2. feladat.)
egy csúcsa, és legyen
ponton vétetik fel:
15
a
cv > cu + u1 − v1 fennáljon a P minden más u c0 := (c1 + 1, c2 , . . . , cn ) egész célfüggvényre szintén a v -n véteik fel max{c0 x : x ∈ P }. Ami viszont azt jelenti, hogy a két egész optimum cv − c0 v = v1 különbsége egész. Hasonlóan belátható, hogy a v minden koordinátája is egész, és mivel v tetsz®leges csúcsnak választható, beláttuk, hogy a P egész poliéder. 2 A
c
esetleges felszorzásával elérhet®, hogy
csúcsára. Ekkor viszont a
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.)
2.21 tétel
.
max{cx : x ∈ P }
Bizonyítás.
érték minden egész
c
P
racionális poliéder akkor és csak akkor egész, ha a
vektorra egész.
A bizonyításhoz a következ® lemmát használjuk:
2.22 lemma. amire
A
(Edmonds, Giles, 1977)
Legyen
Ax = b,
Bizonyítás.
A
egész mátrix, és
ha minden
y
b
egész vektor. Pontosan akkor létezik egész
vektorra, amire
Ha létezik jó egész
x,
yA
akkor az
egész,
yb
x
vektor
is egész.
(yA)x = yb
y -ra Ax = b-nek van megoldása, és hogy mind x mind y létezése szemösszefüggésb®l következik az
vonatkozó tulajdonság. A fordított irányhoz feltehet®, hogy
A
sorai lineárisan függetlenek.
Könnyen ellen®rizhet®,
pontjából ekvivalens rendszert kapunk, ha oszlopokat felcserélünk, illetve egy oszlop egész többszörösét egy másikhoz adjuk. Ilyen m¶veletekkel a mátrix
[B, 0]
alakba hozható, ahol
B
egész háromszögmátrix. Mivel
x :=
B −1 [B, 0]
B −1 b 0
egész mátrix, a feltevésb®l következik, hogy
vektor jó lesz, hiszen
B −1 b
egész vektor.
Így az
2
[B, 0]x = b.
A tételhez azt kell bizonyítanunk, hogy a
P
poliéder minden
P0
minimális oldalának van
0 0 0 0 egész pontja. Tudjuk, hogy P egy an altér, ami leírható egy A x = b egyenlettel, ahol A 0 0 0 és b egész. Azt is tudjuk, hogy tetsz®leges y ≥ 0-ra a c := yA célfüggvényre a P pontjai optimálisak. A feltétel szerint tehát az
yA0
egész.
érték egész minden olyan nemnegatív
y -ra,
amire
Könny¶ látni hogy itt a nemnegativitási feltételt el lehet hagyni (kell®en nagy
egész vektort hozzáadva
x
yb0
vektor amire
A0 x = b0 ,
y -hoz). Ekkor viszont alkalmazhatjuk 0 azaz P -nek létezik egész pontja.
a lemmát, tehát létezik egész
2
Ezen tétel fényében nagyon hasznosnak bizonyul az alábbi fogalom.
2.23 deníció.
Az
Ax ≤ b
racionális számokból álló egyenl®tlenség-rendszert teljesen
duálisan egészérték¶nek mondjuk, ha minden olyan egész optimum korlátos, a
min{by : yA = c, y ≥ 0}
c ∈ Zn
célfüggvényre, melyre az
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.
2.24 tétel
.
(Edmonds, Giles 1977)
egész vektor. Ha az
Bizonyítás.
Ax ≤ b
Legyen a
P = {x : Ax ≤ b}
racionális poliéder, továbbá
rendszer teljesen duálisan egészérték¶, akkor a
P
b
egész poliéder.
b egész, a duális feladat optimuma egész, tehát a dualitástétel (11.9 tétel) szerint max{cx : Ax ≤ b} is egész minden egész c-re, azaz a 2.21 tétel szerint P egész poliéder. 2
2.25 tétel Ax ≤ b
Mivel
.
(Giles és Pulleyblank, 1979)
TDI rendszer, amelyre
egész poliéder,
b
A
P egy racionális poliéder. Ekkor létezik egy és P = {x : Ax ≤ b}. Továbbá amennyiben P
Legyen
egész mátrix,
is választható egésznek.
16
Bizonyítás.
Legyen
l = yM, 0 ≤ y ≤ 1},
P = {x ∈ Rn : M x ≤ d},
ahol
M
L := {l ∈ Zn : az M soraiból 0
egész mátrix. Legyen
azaz azon egész vektorok halmaza, amelyek el®állnak
é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 }. Ax ≤ b az összes lx ≤ β(l) sorokból, ahol L-ben, ezért P = {x ∈ Rn : Ax ≤ b}. Ha pedig P
Most megadjuk a keresett rendszert. Álljon az
l ∈ L.
M
Mivel az
egész, akkor a
b
minden sora benne van
is egész.
Most megmutatjuk, hogy az amelyre a
max{cx : x ∈ P }
Ax ≤ b
TDI-rendszer.
c ∈ Zn olyan egész vektor, min{yb : yA = c, y ≥ 0} egy egész
Legyen
korlátos. Megadjuk a duális
optimális megoldását. A dualitás tétel (11.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
∗ yM
az
M
0 ∗ ∗ soraihoz tartozó részét. A c := (yM − byM c)M vektor benne van az L halmazban, továbbá 0 ∗ ∗ ∗ ∗ cd, viszont z ∗ szitén optimumértéke a β(c ) ≤ (yM − byM c)d. Eszerint z ≥ β(c0 ) + byM ∗ c, min{yd : yM = c, y ≥ 0} feladatnak, azaz az M soraihoz tartozó duális változóknak byM 0 0 a c x ≤ β(c ) sorhoz tartozó változónak pedig 1 értéket adva a duális egy egész optimális
2
megoldását kapjuk.
A bizonyításban a racionális poliédert meghatározó egyenl®tlenség-rendszerhez hozzátettünk nagyon sok újabb redundáns feltételt, ami után a duális feladat megváltozott (változóinak a száma n®tt), és lehet®vé tette, hogy egész optimum is létezzen. Az el®adáson tekintettünk egy 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, hogy
nem 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ág Hilbert-bázisok segítségével történ® jellemzését használja.
2.26 deníció.
P = {x : Ax ≤ b} poliéder egy oldala. Az A mátrix ai sorát F -re nézve aktívnak nevezzük, ha ai x = bi minden x ∈ F vektorra. Jelölje CF az F -re nézve aktív sorok által generált kúpot. A kiegészít® eltérések tétele értelmében CF azon c vektorok halmaza, amikre az {Ax ≤ b, max cx} feladatnak F összes pontja optimális megoldása; így CF nem függ a P -t deniáló rendszert®l.
2.27 lemma.
Legyen
Legyen
{x : Ax ≤ b}
A
A
F
egész mátrix, és
egész mátrix.
Az
a
Ax ≤ b
rendszer akkor és csak akkor TDI, ha
minden minimális oldalára igaz, hogy a rá nézve aktív sorok Hilbert-bázist
alkotnak.
Bizonyítás.
Ha Ax ≤ b TDI, és F a P = {x : Ax ≤ b} poliéder egy oldala, akkor minden c ∈ CF -re a duális {yA = c, y ≥ 0, min yb} feladatnak van olyan egész y megoldása, ahol yi = 0 ha ai nem aktív F -re nézve. Következésképp az F -re nézve aktív sorok Hilbert-bázist egész
alkotnak. Másik irány: tegyük fel, hogy egy egész
c-re
a primál feladat optimuma korlátos, de a duál
F minimális oldal, aminek pontjai c-re nézve c ∈ CF , de c nem áll el® F -re nézve aktív sorok nemnegatív egész lineáris mert az a duál feladat optimális megoldása lenne. 2
feladatnak nincs egész megoldása. Létezik egy optimálisak. Ekkkor kombinációjaként,
A 2.25. tétel alternatív bizonyítása.
Legyen
A0 x ≤ b0
a
P
egy deniáló rendszere, és
P 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 pontja teljesíti. Az
F
Ax ≤ b
hx ≤ αh egyenl®tlenségekb®l minden h ∈ HF -re és minden A0 x ≤ b0 minden lényeges egyenl®tlensége el®áll ezek nemnegatív
rendszer álljon a
minimális oldalra. Ekkor
17
lineáris kombinációjaként (hiszen mindegyik aktív valamelyik oldalra nézve), így deniáló rendszere. A 2.27. Lemma értelmében az Végül ha a fenti
αh
P
egész poliéder, akkor
P
Ax ≤ b
Ax ≤ b
a
minden minimális oldala tartalmaz egész pontot, tehát
2
értékek egészek.
2.28 állítás.
P
Ha
P
rendszer TDI.
teljes dimenziós racionális poliéder, akkor
CF
csúcsos kúp minden
F
minimális oldalra.
Bizonyítás. α := cx tehát P
c ∈ CF és −c ∈ CF valamilyen c 6= 0 vektorra, x ∈ F -re. Ekkor cx ≤ α és −cx ≤ −α is teljesül P minden
Tegyük fel, hogy
egy tetsz®leges
és legyen pontjára,
2
nem teljes dimenziós.
2.29 deníció.
A
P
Ax ≤ b TDI rendszere A0 x ≤ b0 rendszer vagy nem
racionális poliédernek egy deniáló
ha tetsz®leges egyenl®tlenség elhagyásával kapott
minimális, TDI, vagy
P 6= {x : A0 x ≤ b0 }.
2.30 tétel
(Schrijver, 1981)
egyértelm¶ minimális
.
Ax ≤ b
csak akkor egész poliéder, ha
Bizonyítás.
Az
HF -nek
mindig a
egész és
Ax ≤ b
Legyen
P
teljes dimenziós racionális poliéder. Ekkor létezik egy
TDI rendszer, amire
b
A
egész és
P = {x : Ax ≤ b}. P
akkor és
egész.
Ax ≤ b rendszert a 2.25. Tétel bizonyításához hasonlóan deniáljuk, csak CF csúcsos kúp egyértelm¶ minimális Hilbert-bázisát választjuk. Ekkor A
TDI.
A00 x ≤ b00 TDI rendszer, amire A00 egész, és P valamely F minimális oldalára és h ∈ HF -re a hx ≤ αh egyenl®tlenség nem szerepel az A00 x ≤ b00 rendszerben. Ekkor F minden pontja a max{hx : A00 x ≤ b00 } lineáris program 00 optimális megoldása, tehát a duális feladat minden optimális megoldásaban yi = 0, ha ai 00 az A -nak nem aktív sora F -re nézve. Mivel h nem áll el® mint más CF -beli egész vektorok Tegyük fel, hogy van olyan
P -t
deniáló
nemnegatí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 2.25. 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éget egyenl®ségre változtatva ismét TDI rendszert kapunk.
2.31 tétel. Ekkor az
Legyen
ax ≥ β
Bizonyítás.
Ax ≤ b
TDI rendszer, és
ax ≤ β
ennek a rendszernek egy egyen®tlensége.
egyenl®tlenséget hozzávéve a rendszerhez TDI rendszert kapunk.
Legyen
c
egy egész vektor amire az optimum korlátos, erre keresünk egész
y ∗ egy optimális megoldás, és legyen az ax = β -hoz ∗ ∗ ∗ ∗ 0 ∗ tartozó duális érték λ − µ , ahol λ , µ ≥ 0. Legyen c = c + N a, ahol N ≥ µ , N egész, ∗ ∗ ∗ ∗ ∗ ∗ és N a egész. Ha y -ban λ − µ -t lecseréljük λ + N − µ -re, akkor x -gal teljesülnek a ∗ 0 komplementaritási feltételek, tehát x optimális megoldása a max{c x : Ax ≤ b} feladatnak. 0 0 0 ∗ Mivel Ax ≤ b TDI rendszer volt, van c -re egész optimális duális megoldás: y , λ , ami x -gal 0 0 teljesíti a komplementaritási feltételeket. Ebb®l viszont látszik, hogy y , λ − N optimális duális megoldása az ax ≥ β -val kiegészített feladatnak a c célfüggvényre. 2 optimális duális megoldást.
Legyen
2.5.1 Feladatok 1 feladat.
Az alábbi bizonyításával mutassuk meg, hogy a TDI-ség használatakor nagyon
fontos a jobb oldali
b
vektor egészérték¶sége.
Tetsz®leges racionális
Ax ≤ b
rendszerhez létezik olyan
teljesen duálisan egészérték¶.
18
t
1 pozitív egész, amelyre t Ax
≤ 1t b
2 feladat.
Mutassuk meg, hogy tényleg létezik a 2.20 tétel bizonyításában használt olyan egész
célfüggvény, amely egy korlátos poliéderen kizárólag egy el®re megadott ponton veszi fel a maximumát.
19
Chapter 3
Érvényes egyenl®tlenségek 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 pontosan
y vektor, amelyre yA = w, yb ≤ t. Ax ≤ b egyenl®tlenség-rendszer egész
akkor teljesül, ha létezik egy megfelel® méret¶, nemnegatív Ebben a fejezetben azt a kérdést vizsgáljuk, hogy az megoldásai mikor teljesítenek egy adott
3.1
wx ≤ t
egyenl®tlenséget.
Gomory-Chvátal-levezetések
3.1 deníció.
A
wx ≤ t vágást a P = {x : Ax ≤ b} P -beli egész pont teljesíti.
poliéderre vonatkozóan érvényes nek
nevezzük, ha az összes Az
Ax ≤ b
P poliéder (els®fajú) Gomorycx ≤ bdc vágást, amennyiben c egész, yA = c, yb = d.
egyenl®tlenség-rendszer által meghatározott
Chvátal-vágásának (röviden GC-vágásának ) nevezzük a és létezik az
y
nemnegatív vektor, amelyre
Könnyen látható, hogy a GC-vágások érvényes vágások a poliéder egész pontjaira vonatkozóan. Ám ennek a fordítottja még nem igaz, viszont az is világos, hogy a GC-vágásokkal és az eredeti egyenl®tlenség-rendszer vágásaival újabb GC-vágásokat generálva szintén érvényes vágásokat kapunk. (A vágás elnevezés onnan származik, hogy a tekintett egyenl®tlenségeket esetleg nem teljesíti az eredeti poliéder minden pontja, így azokat a újonnan tekintett egyenl®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 GCvágásokkal, és azoknak a rendszerhez való hozzávételének az ismételgetésével el®áll GCvágásként. Formálisan a deníció a következ®: A
wx ≤ t
vágásnak a
P = {x : ai x ≤ bi , i = 1, 2, . . . m}
poliédert deniáló rendszerb®l
létezik GC-levezetése, ha léteznek az
am+k x ≤ bm+k
(k = 1, 2, . . . M )
vágások az
ykj
(1 ≤ k ≤ M, 1 ≤ j ≤ m + k − 1)
nemnegatív számokkal együtt, amelyekre minden
k = 1, 2, . . . M
vágás az
ai x ≤ bi rendszer
GC -vágása,
(i = 1, 2, . . . m + k − 1)
és az utolsó egyenl®tlenség a
20
wx ≤ t.
értékre az
am+k x ≤ bm+k
Egy ilyen levezetés természetszer¶leg azt is bizonyítja, hogy a azaz a
P
wx ≤ t vágás érvényes vágás,
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 is
levezethet®.)
3.2 tétel.
Legyen
P = {x : Ax ≤ b}
érvényes vágás, melyre w egész vektor. 0 levezetés valamely t ≤ t-re.
egy racionális korlátos poliéder, és wx ≤ t egy wx ≤ t0 -hez létezik egy Gomory-Chvátal-
Ekkor
A továbbiakban Schrijver 1980-ból származó bizonyítása szerint haladunk.
A fenti tétel
bizonyításához szükségünk lesz a következ® speciális esetre.
3.3 tétel.
Legyen
P = {x : Ax ≤ b} egy korlátos racionális poliéder, amely 0x ≤ −1 vágásnak Gomory-Chvátal-levezetése.
nem tartalmaz
egész pontot. Ekkor létezik a 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, ha a Farkas-lemma alábbi alakját tekintjük.
3.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.
3.5 lemma.
Legyen
F
a
GC-vágása, akkor létezik a
P korlátos racionális P -nek egy c0 x ≤ bd0 c
poliéder egy oldala. Ha
cx ≤ bdc
az
F
egy
GC-vágása, melyre
F ∩ {x : c0 x ≤ bd0 c} = F ∩ {x : cx ≤ bdc}.
Bizonyítás.
Legyen
P = {x : A1 x ≤ b1 , A2 x ≤ b2 }, ahol Ai és bi (i = 1, 2) egész kompoF = {x : A1 x ≤ b1 , A2 x = b2 }. Mivel cx ≤ bdc GC-vágás, létezik y1 és
nenseket tartalmaz, és
y2 ,
melyekre
y1 A1 + y2 A2 = c, y1 b1 + y2 b2 = d. Az
y2 -nek
lehetnek negatív koordinátái is mivel egyenl®ségfeltételekhez tartozik (Egy
egyenl®séget az
ax ≤ β, (−a)x ≤ −β
ax = β y
egyenl®tlenségekkel helyettesítve a két nemnegatív
együttható különbsége nem feltétlenül nemnegatív.). Legyen
c0
és
d0
a következ®
c0 := y1 A1 + (y2 − by2 c)A2 = c − by2 cA2 , d0 := y1 b1 + (y2 − by2 c)b2 = d − by2 cb2 . Ekkor mivel
c0 egész, és c0 x ≤ bd0 c bdc = bd0 c + by2 cb2 ,
a
P
egy GC-vágása (mivel
y2 − by2 c
F ∩ {x : c0 x ≤ bd0 c} = = F ∩ {x : c0 x ≤ bd0 c, by2 cA2 x = by2 cb2 } = = F ∩ {x : cx ≤ bdc}. 21
nemnegatív).
Továbbá,
2
A 3.3 tétel bizonyítása. Ha
P
A
P
poliéder dimenziójára vonatkozó indukciót használunk.
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 minden
ná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ódi
0 0 oldala. Jelölje P a wx ≤ btc GC-vágással kapott poliédert, azaz P := P ∩ {x : wx ≤ btc}. 0 Ha P = ∅, akkor a Farkas lemma (3.4 lemma) szerint a 0x ≤ −1 azonnal megkapható (GC-
Ax ≤ b, wx ≤ btc rendszerb®l. Tegyük fel tehát, hogy P 0 6= ∅, és F := {x ∈ P 0 : wx = btc}. A wx ≤ t vágás választása miatt tudjuk, hogy F dimenziója kisebb, mint P dimenziója. Az indukciós feltevés szerint tehát 0x ≤ −1 GC-levezethet® az Ax ≤ b, wx = btc rendszerb®l. A 3.5 lemma szerint ekkor az Ax ≤ b, wx ≤ btc rendszerb®l valamely cx ≤ d vágásnak létezik GC-levezetése, amelyre F ∩ {x : cx ≤ bd} = ∅. Következésképpen az Ax ≤ b, cx ≤ bdc rendszernek a wx ≤ t − 1 GC-vágása. ¯ = P ∩{x : wx ≤ t−1} poliéderre alkalmazva a fentieket, a P korlátossága miatt Ezután a P szeletelé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 levezethet®) az
A 3.2 tétel bizonyítása.
Tegyük fel el®ször, hogy a
P
nem tartalmaz egész pontot.
0x ≤ −1 vágásnak létezik GC-levezetése. Mivel P korlátos, az l := max{wx : x ∈ P } véges. A dualitástétel szerint tehát a wx ≤ blc GC-vágás. Ekkor ehhez 0 a 0x ≤ −1 alkalmas pozitív számmal való felszorzottját hozzáadva a wx ≤ t GC-levezetését 0 kapjuk valamely t ≤ t értékre. Most tegyük fel, hogy P tartalmaz egész pontot. Legyen ismét l := max{wx : x ∈ P }, és 0 P := P ∩{x : wx ≤ blc}. Ha blc ≤ t, akkor készen vagyunk, ha pedig nem, akkor mivel wx ≤ t 0 érvényes vágás, ezért az F := {x ∈ P : wx = blc} valódi oldal nem tartalmaz egész pontot. A 3.3 tétel szerint ekkor a 0x ≤ −1 vágásnak létezik GC-levezetése az Ax ≤ b, wx = blc rendszerb®l. A 3.5 lemma szerint ekkor az Ax ≤ b, wx ≤ l rendszerb®l valamely cx ≤ d 0 vágásnak létezik GC-levezetése, amelyre P ∩ {x : cx ≤ bdc, wx = l} = ∅. Következésképpen az Ax ≤ b, cx ≤ bdc rendszernek a wx ≤ l − 1 GC-vágása. 0 Ennek ismételgetésével a P korlátossága miatt valamely wx ≤ t vágás GC-levezetését 0 kapjuk, amelyre t ≤ t. 2 Ekkor a 3.3 tétel szerint a
3.2
Chvátal-rang
Jelölje
P0
azon
P -beli
pontok összességét, amelyek minden GC-vágást teljesítenek.
Mivel
végtelen sok GC-vágás van, nagyon érdekes az alábbi, Schrijvert®l származó tétel.
3.6 tétel.
Ha
Bizonyítás.
P
racionális poliéder, akkor
Belátjuk, hogy
P 0 -t
az
P0
Ax ≤ b
is racionális poliéder.
és azon
(yA)x ≤ bybc egyenl®tlenségek határozzák meg, melyekre
(3.1)
0≤y <1
és
yA
egész vektor. (Ez elég, hiszen
(3.1) bal oldalán korlátos együtthatók szerepelhetnek, következésképpen véges sok egyenl®tlenségr®l van szó.) Most belátjuk, hogy minden GC-vágás el®áll az
Ax ≤ b
sorainak valamely
nemnegatív lineáris kombinációjának és egy (3.1) alatti egyenl®tlenségnek az összegeként. Legyen
wx ≤ btc
egy GC-vágás, amely az
Ax ≤ b
rendszerb®l az
0 vezethet® le. Legyen y := y ¯ − b¯ y c. Ekkor a w0 = y 0 A = 0 0 t := y b = t − b¯ y cb törtrésze megegyezik a t törtrészével.
22
w − b¯ y cA
y¯
nemnegatív vektorral
egész vektor, továbbá a
w0 x ≤ bt0 c, y 0 -vel megkapott (3.1)-beli GC-vágás, és az Ax ≤ b soraiból b¯ y c vektorral kapott (b¯ y cA)x ≤ b¯ y cb egyenl®tlenség összegeként megkapjuk a
Ezek szerint a a nemnegatív
wx ≤ btb
GC-vágást.
2 Jelölje
P (2) (P 0 )0 -t,
és
P (i) (P (i−1) )0 -t.
Ekkor a 3.6 tetel szerint poliéderek egy láncát
kapjuk:
P =: P (0) ⊇ P (1) ⊇ P (2) ⊇ . . . ⊇ PI . A 3.2 tételb®l következik, hogy
PI
minden lapja levezethet®
3.7 tétel. k
Legyen
k
PI
minden lapja GC-levezethet®, tehát létezik olyan
k,
hogy
lépésben. Ez az alábbi tételt adja.
P = {x : Ax ≤ b} egy racionális korlátos poliéder, ekkor P (k) = PI
valamely
pozitív egészre.
k -t
A legkisebb ilyen
nevezzük a
P
poliéder Chvátal-rangjának.
(Nemkorlátos racionális
poliéderekre való kiterjesztést lásd Schrijver [2]-ben.)
3.3
Vágások a bináris hátizsák-feladatra
A bináris hátizsák-feladat lineáris relaxációja:
n
P = {x ∈ R : 0 ≤ x ≤ 1,
n X
aj xj ≤ b},
j=1
aj és b {1, . . . , n}.
ahol
pozitív egészek, és feltesszük, hogy
3.8 deníció.
Egy
C ⊆ [n]
halmaz függ®, ha
P
b ≥ a1 ≥ a2 ≥ · · · ≥ an .
j∈C
aj > b.
Jelölés:
[n] =
Jelölés:
C¯ = C ∪ {k ∈ [n] \ C : ak ≥ aj ∀j ∈ C}.
3.9 állítás.
A következ® egy Gomory-Chvatal vágás:
X
xj ≤ |C| − 1.
¯ j∈C
Bizonyítás.
Könny¶ látni, hogy az LP relaxáció minden megoldása teljesíti a
szigorú egyenl®tlenséget. Így létezik a
P
¯ j∈C
xj ≤ |C| −
> 0,
P
¯ j∈C
xj < |C|
hogy az LP relaxáció minden megoldása teljesíti
2
egyenl®tlenséget.
Azt akarjuk megvizsgálni, hogy milyen feltételekkel lesznek ezek a vágások lapjai a poliédernek.
Tudjuk, hogy
vannak. Tehát egy
PI -beli
ax ≤ β
PI n-dimenziós
PI
poliéder, hiszen 0 és az egységvektorok benne
vágás pontosan akkor deniál lapot, ha
n
darab an független
vektor egyenl®séggel teljesíti.
Legyen
C
egy minimális független halmaz, és a két legkisebb elemét jelölje
3.10 lemma.
j1 ≤ j2 .
Tegyük fel hogy a következ® két feltétel teljesül:
j ∈ C¯ \ C ⇒ C \ {j1 , j2 } ∪ {j} független, j ∈ ¯[n] \ C¯ ⇒ C \ {j1 } ∪ {j} független. Ekkor a
P
¯ j∈C
Bizonyítás.
xj ≤ |C| − 1
egyenl®tlenség a
PI
poliéder lapját deniálja.
A következ® vektorok an függetlenek a feltételek teljesülése esetén:
23
(3.2) (3.3)
• χC\{j} , j ∈ C , • χC\{j1 ,j2 }∪{j} , j ∈ C¯ \ C , • χC\{j1 }∪{j} , j ∈ [n] \ C¯ . A feltételek szerint ezek Lényegében
a
PI -ben
fentiekkel
2
vannak.
ekvivalens
vágásokkal
a
lexikograkus
szimplex
módszer
használatára épül® egészérték¶ programozási algoritmust dolgozott ki Gomory az 1950-es években. Lásd Vizvári Béla jegyzetét [5] és a 5.1 fejezetet. A gyakorlatban az érvényes vágásokat a következ®képpen használhatjuk egészérték¶ programozá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 általánosan a feladatosztályra vonatkozó Gomory-Chvátal-levezetéseket). El®ször oldjuk meg a
max{cx : Ax ≤ b, x ∈ Rn }
x∗
lineáris programozási relaxált feladatot. Amennyiben a kapott
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
∗ azaz cx
> d,
de
cx ≤ d
minden egész megoldásra igaz.
x∗
nem telesít,
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ális
célfüggvényérték egyre jobb fels® becsléséhez jutunk, amit például kiválóan tudunk használi egy korlátozás és szétválasztás módszerére épül® algoritmusban (5.2 fejezet).
3.4
A diszjunktív elv
P1 , P2 ⊆ Rn+ konvex halmazok, valamint ci x ≥ ci0 érvényes egyenl®tlenség a Pi halmazra, i = 1, 2. [Azaz ∀¯ x ∈ Pi : ci x ¯ ≥ ci0 , i = 1, 2.] Deniáljuk a következ® egyenl®tlenséget: cx ≥ d, Adott
ahol
cj = max{c1j , c2j }, j = 1, . . . , n,
3.11 állítás. cx ≥ c0
érvényes a
Biz Legyen x¯ ∈ P1 ∪ P2 .
Ekkor
érvényes egyenl®tlenség a
i Végül c0
Pi
conv(P1 ∪ P2 )
x ¯ ∈ Pi
c0 = min{c10 , c20 }.
halmazra.
i ∈ {1, 2}-re. Tehát ci x ¯ ≥ ci0 , mivel ci x ≥ ci0 Továbbá c¯ x ≥ ci x ¯, mivel x ¯ ∈ Pi ⊆ Rn+ , és c ≥ ci .
valamely
halmazra.
≥ c0 miatt kapjuk, hogy c¯ x ≥ c0 . x ¯ ∈ conv(P1 ∪ P2 ) \ (P1 ∪ P2 ), akkor x ¯ = λ¯ x1 + (1 − λ)¯ x2 számra, és x ¯i ∈ Pi , i = 1, 2, vektorokra. Ekkor Ha
valamely
0<λ<1
valós
c¯ x = c(λ¯ x1 + (1 − λ)¯ x2 ) ≥ λc1 x ¯1 + (1 − λ)c2 x ¯2 ≥ λc10 + (1 − λ)c20 ≥ c0 . A
cx ≥ c0
egyenl®tlenséget diszjunktív egyenl®tlenségnek hívjuk. Az elnevezés eredete az,
hogy minden olyan vektor teljesíti, ami két konvex halmaz uniójába esik.
3.5
Gomory egészérték¶ vágás
Tekintsük a következ® egészérték¶ programozási feladatot.
max cx Ax = b 24
(3.4)
x ≥ 0, x
egész.
(3.5)
Amennyiben nem kötjük ki (3.5)-ot, akkor a feladat lineáris programozási relaxáltjáról beszélünk. Tegyük fel, hogy a megoldott lineáris porgramozá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
X
xi ≥ 1
i∈N érvényes vágás, azaz minden egész megoldás teljesíti. Viszont
x∗
nem. Algoritmikus szem-
pontból azonban ez a vágás nem túl jó, ezért Gomory egy másfajta érvényes vágást vezetett be, aminek segítségével véges algoritmust is adott, lásd a 5.1. Fejezetet. A Gomory-féle érvényes vágáshoz a következ®képpen jutunk. Legyen a lineáris programozási relaxált egy optimális bázismegoldását mutató egyenletrendszer a következ®:
xB + B −1 AN xN = B −1 b. Ennek a felírásnak az együtthatóira használjuk a megszokott jelöléseket: és
di0 :=
t-edik
(B −1 b)i . Legyen
t
dij := (B −1 Aj )i
a legkisebb olyan index, hogy az optimális bázismegoldásban a
változó nem egész érték. Ekkor a hozzá tartozó egyenlet:
xt +
X
dtj xj = dt0 .
j∈N Ebb®l következik, hogy
xt +
X
bdtj cxj ≤ xt +
j∈N mivel
xj ≥ 0
teljesül minden
j -re.
X
dtj xj = dt0 ,
j∈N
Ebb®l az következik az egészérték¶
xt +
X
xj
megoldásokra, hogy
bdtj cxj ≤ bdt0 c.
j∈N Ezt az egyenl®tlenséget tehát a feladatunk minden egész megoldása teljesíti, de a lineáris programozási relaxált aktuális optimális megoldása nem.
Az így kapott egyenl®tlenségeket
Gomory-vágásnak nevezzük.
3.6
Gomory-féle vegyes vágás
Vegyes programozási feladatnál a fentiekben szerepl® vágások nem használhatók, mert nem feltétlenül érvényesek.
Az alábbiakban bemutatunk egy szintén Gomory nevéhez f¶z®d®,
kicsit bonyolultabb vágást, ami a vegyes esetre is m¶ködik. Az érvényességet kétféle módon is igazoljuk, az els® Gomory eredeti levezetésén alapul, a második pedig a diszjunktív elven.
3.6.1 Els® levezetés Itt is
max{cx : Ax = b, x ≥ 0} alakú feladatot nézünk. Legyen I az egészérték¶ J a többi változóé, tehát amikre nincs egészérték¶ségi megkötés.
indexhalmaza, és
25
változók
x∗
Ahogy az el®z® fejezetben, nézzünk egy
optimális bázismegoldást.
∗ legkisebb olyan I -beli index, hogy xt
∈ / Z. Ekkor a hozzá X xt + dtj xj = dt0 .
Legyen
t ∈ I
a
tartozó egyenlet:
j∈N Vezessük be az
3.12 tétel.
fj = {dtj }
jelölést (j
∈N ∩I
illetve
j = 0).
A vegyes programozási feladat minden megoldására a következ® kifejezés értéke
legalább 1:
1 f0
X
fj xj −
j∈N ∩I,fj ≤f0
Bizonyítás.
1 1 − f0 x
Legyen
Deniáljuk az
α
X
(fj −1)xj +
j∈N ∩I,fj >f0
1 f0
X j∈N ∩J,dtj ≥0
1 1 − f0
X
dtj xj .
j∈N ∩J,dtj <0
egy tetsz®leges megoldása a vegyes programozási feladatnak.
számot a következ®képpen:
X
α = xt +
X
bdtj cxj +
j∈N ∩I,fj ≤f0 Mivel
dtj xj −
ddtj exj .
j∈N ∩I,fj >f0
x I -be tartozó koordinátái egészek, α egész szám.
Az
xt +
P
j∈N
dtj xj = dt0
egyenletb®l
következik, hogy
X
X
fj xj +
j∈N ∩I,fj ≤f0
X
(fj − 1)xj +
j∈N ∩I,fj >f0
j∈N ∩J,dtj ≥0
Két esetet különböztetünk meg aszerint, hogy
Els® eset: α ≤ bdt0 c.
α
és
X
dtj xj + dt0
dtj xj = dt0 − α.
j∈N ∩J,dtj <0
hogy viszonyul egymáshoz.
Ekkor egyrészt nyilvánvalóan
X
(fj − 1)xj +
j∈N ∩I,fj >f0
X
dtj xj ≤ 0,
j∈N ∩J,dtj <0
másrészt
X
X
fj xj +
j∈N ∩I,fj ≤f0
dtj xj ≥ dt0 − α ≥ dt0 − bdt0 c = f0 .
j∈N ∩J,dtj ≥0
Ebb®l a kett®b®l már következik a tételbeli egyenl®tlenség, az els®t
1 1 f0 −1 , a másodikat f0
szorzóval összeadva.
Második eset: α ≥ ddt0 e.
Ekkor egyrészt nyilvánvalóan
X
X
fj xj +
j∈N ∩I,fj ≤f0
dtj xj ≥ 0,
j∈N ∩J,dtj ≥0
másrészt
X j∈N ∩I,fj >f0
X
(fj − 1)xj +
dtj xj ≤ dt0 − α ≤ dt0 − ddt0 e = f0 − 1.
j∈N ∩J,dtj <0
Ebb®l a kett®b®l már következik a tételbeli egyenl®tlenség, az els®t
2
szorzóval összeadva. Könny¶ ellen®rizni, hogy maga az
j∈N
∗ esetén xj
= 0.
1 1 f0 , a másodikat f0 −1
x∗ vektor nem teljesíti a tételbeli egyenl®tlenséget, hiszen
Í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ást adja vissza.
26
3.6.2 Második levezetés A második levezetés a diszjunktív elvet használja.
El®ször egy gyengébb egyenl®tlenséget
vezetünk le a módszer bemutatása érdekében, majd pedig új bizonyítást adunk a Gomory vegyes vágás érvényességének igazolására.
3.13 lemma.
Legyen
f0 = di0 − bdi0 c.
Az (3.6) egyenl®tlenséget az egészérték¶ program
minden megengedett megoldása teljesíti, de a
X j∈N :dij ≥0
dij xj + f0
B
bázishoz tartozó bázismegoldás nem.
X j∈N :dij <0
−dij xj ≥ 1. 1 − f0
(3.6)
Biz Deniáljunk két konvex halmazt: P1 = {x ∈ Rn+m : A0 x = b, x ≥ 0, xi ≤ bdi0 c} P2 = {x ∈ Rn+m : A0 x = b, x ≥ 0, xi ≥ ddi0 e} x ¯ megengedett megoldására az egészérték¶ programnak teljesül, hogy x ¯ ∈ P1 ∪P2 . P1 és P2 halmazokra. Nézzük P1 -et: mivel x ¯i ≤ bdi0 c miden x ¯ ∈ P1 vektorra, a szimplex tábla xP i változóhoz tartozó sorát használva kapjuk, hogy xi ≤ bdi0 c akkor és csak akkor, ha di0 − j∈N dij xj ≤ bdi0 c. Átrendezéssel
Tetsz®leges
Most levezetünk egy-egy érvényes egyenl®tlenséget a
kapjuk a
X
dij xj ≥ di0 − bdi0 c = f0
j∈N
P1 -re.
egyenl®tlenséget, ami érvényes
Tovább alakítva kapjuk az ezzel ekvivalens
X dij xj ≥ 1 f0
(3.7)
j∈N
egyenl®tlenséget. Hasonlóan levezethetjük a
X −dij xj ≥ 1 1 − f0
(3.8)
j∈N érvényes egyenl®tlenséget
P2 -re.
Alkalmazva az 3.11. Propozíciót a (3.7) és (3.8) egyenl®tlen-
ségekre (a feltételei teljesülnek!) kapjuk az
X
max
j∈N egyenl®tlenséget, ami érvényes
dij −dij , f0 1 − f0
conv(P1 ∪ P2 )-re.
xj ≥ 1
Vegyük észre, hogy
a ¯ij
el®jele határozza meg
a maximumot, azaz
max
dij −dij , f0 1 − f0
(
=
dij f0 , −dij 1−f0
ha
dij ≥ 0
ha
dij < 0
Ezt behelyettesítve (3.6)-et kapjuk. Végül vegyük észre, hogy a
B
bázishoz tartozó
x∗
bázismegoldásban
x∗j = 0
minden
j∈N
indexre, ezért (3.6) levágja a bázismegoldást. Most rátérünk a Gomory vegyes vágás levezetésére. Az alapötlet az, hogy ügyesen válasszuk meg a diszjunkciót.
27
m ∈ ZN olyan j ∈ N \ (N ∩ I), és mj egy Legyen
mj xi + mxN ≥ ddij e
bázis egész változók együtthatóinak csökkentése, az Tekintsük az
m j = 0,
vektor, amit a nem-bázis oszlopok indexelnek, és kés®bb megválasztandó egész szám, ha
xi + mxN ≤ bdij c
és
j ∈ N ∩ I.
ha
Cálunk a nem-
értéekek alkalmas megválasztásával. egyenl®tlenségeket.
Denálunk két
konvex halmazt:
P1 (m) = {x ∈ Rn+m : A0 x = b, x ≥ 0, xi + mxN ≤ bdi0 c} P2 (m) = {x ∈ Rn+m : A0 x = b, x ≥ 0, xi + mxN ≥ ddi0 e} A és
P1 (m) és P2 (m) halmazok függenek m választásától, de azt feltesszük, hogy m egész vektor, mj 6= 0 csak akkor, ha j ∈ N ∩ I .
3.14 állítás. hogy
Minden x ¯ megengedett x ¯ ∈ P1 (m) ∪ P2 (m).
megoldására a vegyes egészérték¶ programnak teljesül,
A bizonyítást az olvasóra bízzuk. Legyen
NI = N ∩ I
a nem-bázis egész változók indexhalmaza,
NC = N \ NI
a nem-bázis
folytonos változók indexhalmaza.
3.15 lemma.
Legyen
f0 = di0 − bdi0 c,
és
fj = dij − bdij c, j ∈ N .
A (3.9) egyenl®tlen-
séget az egészérték¶ program minden megengedett megoldása teljesíti, de a
B
bázishoz tartozó
bázismegoldás nem.
X j∈NI :fj ≤f0
Biz
fj xj + f0
X j∈NI :fj >f0
1 − fj xj + 1 − f0
X j∈NC :dij ≥0
dij xj + f0
X j∈NC :dij <0
−dij xj ≥ 1. 1 − f0
(3.9)
Az (3.6) diszjunktív vágás levezetése során megmutattuk, hogy (3.7) és (3.8) érvényes
egyenl®tlenségek a
P1
és
P2
halmazokra. A levezetés lépéseit követve kapjuk, hogy
X dij − mj xj ≥ 1 f0
(3.10)
X −(dij − mj ) xj ≥ 1 1 − f0
(3.11)
j∈N
j∈N
P1 (m) és P2 (m) halmazokra. Csak a j ∈ NI index¶ változókkal ha j ∈ NC . Hogyan válasszuk meg mj értékét, hogy xj , j∈ NI legyen? xj együtt-hatója a diszjunktív vágásban: dij − mj −(dij − mj ) max , . f0 1 − f0
érvényes egyenl®tlenségek a foglalkozunk, mivel
mj = 0
együtthatója a legkisebb
Legyen m ¯ j = dij . Ez persze csak akkor egész, ha dij egész. Ezért legyen mj := bdij c, ha fj ≤ f0 , illetve mj := ddij e, ha fj > f0 . Ezen választás mellet xj együtthatója a diszjunktív vágásban:
max max
fj −fj , f0 f0
=
fj − 1 −(fj − 1) , f0 1 − f0
fj f0
=
ha
fj ≤ f0 .
1 − fj 1 − f0
Ezeket a kifejezéseket felhasználva kapjuk a (3.9) vágást.
ha
fj > f0 .
Vegyük észre, ha
mj
értékét a
fentinél kisebbnek, vagy nagyobbnak választanánk, azzal az együtthatók csak növekednének. A bizonyítás hátralev® része ugyanaz, mint a 3.13. lemmáé.
28
3.7
Dominancia
Azt mondjuk, hogy az
j ∈ {1, . . . , n + m}-re,
3.16 állítás.
αx ≥ α0 vágás α0 ≥ β0 .
dominálja a
βx ≥ β0
vágást, ha
αj ≤ βj
minden
és
A Gomory vegyes egészérték¶ vágás (3.9) dominálja az (3.6) diszjunktív vágást.
A bizonyítást az olvasóra bízzuk. A dominancia fogalom haszna a következ®.
3.17 lemma. βx ≥ β0
Ha
αx ≥ α0
és
βx ≥ β0
érvényes egyenl®tlenségek
PI -re,
és
αx ≥ α0
dominálja
egyenl®tlenséget, akkor
P ∩ {x : αx ≥ α0 } ⊆ P ∩ {x : βx ≥ β0 }.
Biz Legyen x¯ ∈ P ∩ {x : αx ≥ α0 }, ekkor βx ¯ ≥ α¯ x ≥ α0 ≥ β 0 , ahol az els® és harmadik egyenl®tlenség a dominanciából, és pedig
x ¯
x ¯ ≥ 0-ból
következik, a második
választásából.
Geometriailag a lemma azt jelenti, hogy
αx ≥ α0
legalább annyit vág le a
P
poliéderb®l,
βx ≥ β0 .
mint
3.8
Metszet vágások
Legyen
K ⊂ Rm+n
konvex poliéder (amely ráadásul valódi részhalmaza
int(K)-val
poliéder belseje , amit tartozank, de nem Legyen
B
K
Rm+n -nek).
jelölünk, azoknak a pontoknak a halmaza, amelyek
A
K
K -hoz
lapjain vannak.
egy megengedett bázisa az LP relaxációnak,
xi
egész változó, amely tört értéket
∩ {1, . . . , p}, és di0 nem egész. A B bázishoz tartozó i∈B d0 . Tekintsük a B bázishoz tartozó szimplex táblát: = 0n X xB + dj xj = d0 .
vesz fel a bázismegoldásban, azaz bázismegoldás
x∗ =
x∗B x∗N
j∈N A
PB
bázispoliéder:
PB = {x ∈ Rn+m : xB +
X
dj xj = d0 , xN ≥ 0}.
j∈N Vegyük észre, hogy
xB
és ez az egy különbség
komponensei lehetnek negatívak is, de
P
és
3.18 állítás. P ⊂ PB . Biz x¯ ∈ P akkor és csak
PB
akkor, ha
x ¯ ≥ 0,
(AB )−1 A0 x ¯ = (AB )−1 b, vagy ekvivalensen, elhagyásával P -nél b®vebb poliédert kapunk. m
vektorra,
PB ⊆ Rm+n
egy
A0 x ¯ = ¯ ≥ 0, P b, akkor és csak akkor, ha x x ¯B + j∈N dj x ¯j = d0 . Tehát az xB ≥ 0
és
és
Megmutatjuk, hogy
xN ≥ 0 minden x ∈ PB
között, azaz
n dimenziós poliéder kúp. Mivel PB poliédert n + m egyenlet van, azt kapjuk, hogy PB dimenziója
egyenl®tlenség írja le, amelyek között
legfeljebb
n.
Legyen
rk = ahol
ek ∈ RN
−dk ek
,
k∈N
egységvektor, amelyet a nem-bázis változókkak indexelünk, és
index¶ koordinátája 1, a többi 0.
29
ek
vektor
k
3.19 állítás.
A
generálnak. A
PB
PB
darab 1-dimenziós lapja van, amelyeket az
rk
vektorok
1-dimenziós lapjai:
x∈R
Rk =
Biz A PB
n
poliédernek
n+m
xB xN
:
=
d0 0n
k
+ λr , λ ≥ 0 ,
k ∈ N.
1-diemenziós lapjait úgy kapjuk, hogy egy kivételével minden deniáló egyenl®tlen-
séget egyenl®ségre változtatunk. Tehát legyen
Lk = {x ∈ PB : xj = 0
minden
Rk ⊆ PB .
Legyen
j ∈ N \ {k}}
egy 1-dimenziós lap. Megmutatjuk, hogy
λ ≥ 0,
van olyan
Lk = Rk .
El®ször megmutatjuk, hogy
x ¯ ∈ Rk ,
azaz
melyre
x ¯B x ¯N
=
d0 0n
−dk ek
+λ
x ¯-et a PB -t deniáló egyenletekbe: X X x ¯B + dj x ¯j = (d0 + λ(−dk )) +
(3.12)
Helyettesítsük be
j∈N
dj · 0 + λdk = d0 ,
j∈N \{k}
ahol az els® egyenlet az (3.12) denícióból következik, a második pedig triviális. Mivel
x ¯ ∈ PB
x ¯ ∈ Rk vektorra x ¯j = 0, Lk = Rk következik.
Végül vegyük észre, hogy minden Mivel Az
x ¯N ≥ 0,
teljesül.
Lk
1-dimenziós, ezért
Rk , k ∈ N ,
ha
j ∈ N \ {k}.
Tehát
Rk ⊆ Lk .
halmazokat a bázismegoldásból kiinduló sugaraknak nevezzük.
3.20 állítás. PB = x ¯ ∈ Rn+m : ∃δj ≥ 0, j ∈ N,
Biz
melyre
x ¯=
d0 0n
+
X
δj r j
j∈N
.
Rk 1-dimenziós lapok konvex kombinációjaként, amib®l következik az állítás. Legyen F a PB egy lapja. Ekkor ∃S ⊆ N , hogy F = {¯ x ∈ PB : xj = 0, ∀j ∈ S}. Tehát F = conv ∪j∈N \S Rj . Megmutatjuk, hogy
PB
Metszet vágás: Legyen ∗
x
tartozó
K
minden lapja el®áll az
konvex poliéder, amely a belsejében tartalmazza a
bázismegoldást, de
K
megoldását sem tartalmazza, azaz melyre
x ¯ + λk r k
a
K
határával, különben
int(K) ∩ PI = ∅.
λ k ≥ 0, k ∈ N , Rk halmaznak van közös αk = 0, ha λk = ∞. A Legyen
poliéder határán van, feltéve, hogy
λk = ∞.
B
bázishoz
belseje az egészérték¶ program egyetlen megengedett
Legyen
αk = 1/λk . X αj xj ≥ 1
az a szám, pontja a
K
(3.13)
j∈N egyenl®tlenséget metszet vágásnak nevezzük. Most egy speciális esetben megmutatjuk, hogy a metszet vágás érvényes Legyen
PI
poliéderre.
Rn+m
K = {x ∈ bdi0 c ≤ xi ≤ ddi0 e}. Ekkor K konvex poliéder, és a belsejében x∗ bázismegoldást, hiszen di0 nem egész a kiinduló feltételünk szerint. Továbbá
tartalmazza az
K
nem tartalmaz egyetlen megengedett egész megoldást a belsejében, legfeljebb a határoló
lapjain. Határozzuk meg a
•
Ha
dik = 0,
λk
akkor
értékeket:
λk = ∞. 30
•
Ha
dik > 0, akkor a x∗ + λrk , λ ≥ 0, félegyenes metszi K i0 c di0 + λk (−dik ) = bdi0 c egyenletet, azaz λk = di0 −bd > 0. dik
határát, és
λk
kielégíti az
•
Ha
dik < 0, akkor a x∗ + λrk , λ ≥ 0, félegyenes metszi K i0 di0 + λk (−dik ) = ddi0 e egyenletet, azaz λk = ddi0−de−d > 0. ik
határát, és
λk
kielégíti az
k ∈ N + -re,
és
αk = 0,
N + = {j ∈ N : λj < ∞}. Legyen αk = 1/λk k ∈ N \ N +. P 3.21 lemma. j∈N αj xj ≥ 1 érvényes a PI poliéderre. Legen
minden
ha
Két bizonyítást is adunk:
Biz 1 Vegyük észre, hogy az egyenl®tlenség ugyanaz, mint az (3.6) diszjunktív vágás. Ez a bizonyítás azt is igazolja egyben, hogy a diszjunktív vágás egy speciális metszet vágás.
Biz 2
P x0 ∈ P vektorra, ha j∈N αj x0j < 1 teljesül, akkor 0 / P . x0 ∈ int(K). Mivel int(K) ∩ PP I = ∅ a K válásztása szerint, ezért x ∈ I 0 0 Legyen x ∈ P olyan, hogy α x < 1 . Ekkor léteznek egyértelm¶en δ ≥ 0, j ∈ N , j∈N j j j ∗ P di0 xB j ∗ 0 ∗ , P ⊂ PB , és az = együtthatók, amelyekre x = x + j∈N δj r , mivel x = 0n x∗N rj vektorok lineárisan függetlenek. Ezt felhasználva, és rj deníciója alapján kapjuk, hogy x0j = δj , j ∈ N . ∗ j / int(K), a λ választása miatt, de x∗ + λr j ∈ int(K) minden Vegyük észre, hogy x + λj r ∈ j P 0 ≤ λ < λj -re. Tehát ha βj ≥ 0, j ∈ N + , olyan együtthatók, amelyekre j∈N + βj < 1, P akkor x ¯ + j∈N + βj (λj rj )P∈ int(K). 0 0 Következésképpen, ha j∈N + xj /λj < 1, akkor βj := xj /λj választással kapjuk, hogy P ∗ j j 0 x + j∈N + βj (λj r ) ∈ int(K). Mivel βj (λj r ) = (xj /λj )(λj rj ) = x0j rj , kapjuk, hogy x0 = P x∗ + j∈N + x0j rj ∈ int(K). P P 0 0 Végül vegyük észre, hogy j∈N αj xj < 1 egyenl®tlenj∈N + xj /λj < 1 ekvivalens az Megmutatjuk, hogy tetsz®leges
séggel.
K speciális választását, csak azt, hogy x∗ + λj rj ∈ / int(K), 0 ≤ λ < λj -re, minden j ∈ N + indexre.
A 2. bizonyítás nem haszálta ki
∗ de x
3.9
+
λrj
∈ int(K)
minden
Szeparáció és optimalizálás
Ebben a fejezetben röviden ismertetjük a Grötschel, Lovász, Schrijver szerz®hármastól 1986ból származó eredményt a szeparáció és optimalizálás ekvivalenciájáról. Hacsijan 1979-ben közzétette az ellipszoid-módszerként ismeretes polinomiális algoritmusát a lineáris programozási feladatra. Ennek a módszernek a következménye Grötschel et al. tétele, amelynek elméleti jelent®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 és az élein egy nemnegatív
c
G = (V, E)
súlyfüggvény. Keressük meg a minimális súlyú
azt az élhalmazt, amelynek a gráfból való törlésével Ezen feladat lp-relaxáltja a következ®.
min
X e∈E
31
ce xe
s
és
t
s és t pontja, s-t-vágást, azaz
gráf, két kitüntetett
különböz® komponensekbe kerül.
X
xe ≥ 1 ∀ K ∈ K
e∈K
0 ≤ xe ≤ 1 ∀ e ∈ E K az összes s-b®l t-be vezet® út halmaza. Könnyen látható, hogy a 0-1-megoldások éppen s-t-vágások, és az is világos Ford és Fulkerson maximális folyamokra vonatkozó tételéb®l,
ahol az
hogy a fenti poliéder minden csúcsa egész. Igaz ugyan, hogy az ellipszoid-módszer polinomid®ben megoldaná a fenti feladatot, csakhogy a gráfhoz képest a feladat mérete exponenciális, tekintve, hogy rengeteg út létezhet. Ám ha adott egy
0≤
x∗
≤1
s-b®l t-be vezet®
vektor, akkor annak ellen®rzése a feltételek nagy
számát tekintve is gyorsan megy, hogy teljesíti-e az összeset. Nevezetesen az élsúlyok mellett csak azt kell ellen®riznünk, hogy a legrövidebb 1-nél. ha igen, akkor minden feltételt teljesít
x∗ ,
x∗e
nemnegatív
s-b®l t-be vezet® út hosszabb-e
ha pedig nem akkor a kezünkben van egy
felté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 szepará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átos
n racionális poliéder és egy racionális v ∈ R , akkor döntsük el, hogy a v pont benne van-e P -ben, ha pedig nem, akkor adjunk meg egy racionális c ∈ Rn vektort, amelyre cx < cv teljesü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 és
n egy racionális c ∈ R (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 értelmezett feladatosztályokon. A feladatosztályok korrekt értelmezése helyett példaként megemlítjük, hogy a gráfok teljes párosítási poliéderét tekinthetjük egy poliéder osztálynak, amin tehát ekvivalens az optimalizálás és a szeparálás. Mivel ismert az Edmondstól származó minimális súlyú teljes párosítási algoritmus, az optimalizáció polinomiális. Grötschel et al. tétele szerint 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álhatunk a 11.6 fejezetben. Mivel ez egy igen egyszer¶ algoritmus, megtörténhetett volna, hogy el®ször ez születik meg, és csak utána az optimalizációs problémára vonatkozó polinomiális algoritmus, 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, algoritmikus szempontból még nem sikerült hasznot húzni bel®le. Elvi jelent®sége szerint ha sikerül egy problémának olyan poliéderes leírását adni, amely segítségével a szeparációs feladatot polinomid®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.
3.10
Csoport-feladat
A csoport-feladat az egészérték¶ programozási feladat egy olyan relaxációja, ahol nem az egészérték¶ségb®l engedünk, hanem bizonyos feltételeknél egyenl®ség helyett csak azonos maradékosztályba esést követelünk. Innen jön a csoport-feladat elnevezés a maradékosztályok csoportjáról van szó.
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-es p egész mátrix, és β ∈ R . A csoport-feladat a következ® egészérték¶ optimalizálási feladat: Legyen az egészérték¶ programozási feladatunk
32
zK (b) = max cx − βw Ax − Kw = b x ∈ Zn+ w ∈ Zp Hogyan válasszuk meg a
uA ≥ c, u ∈
β
vektort? Az eredeti feladat LP-relaxációjának duálisa
Rm }. Feltesszük hogy ennek van optimális megoldása:
u∗ . Válasszuk a
min{ub : β = 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), ahol
SK (b) = {x ∈ Zn+ : Ax − Kw = b Figyeljük meg, hogy
c − u∗ A ≤ 0
és
u∗ b
valamilyen
w ∈ Zp -re}.
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
K
mátrix Smith-féle normálalakját használjuk:
3.22 tétel.
A
∆
K
egy
p
m × p-es
C unimoduláris egész má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. Ha
rangú
egész mátrix, akkor létezik
mátrixra nézve már értelmezhet®ek a maradékosztályok: egy
( di φ∆ (d)i = di Ennek segítségével már megadhatjuk
3.23 állítás. SK (b) = {x ∈ Zn+ :
mod δi,i
és
d ∈ Zm
vektorra
i ≤ p,
egyébként.
SK (b) n X
ha
R
kanonikus alakját.
φ∆ (Raj )xj ≡ φ∆ (Rb)
mod ∆}.
j=1
Bizonyítás. SK (b) = {x ∈ Zn+ : Ax − Kw = b
valamilyen
= {x ∈ Zn+ : RAx − RKw = Rb Mivel
C
unimoduláris,
Cw
valamilyen
pontosan akkor egész vektor ha
SK (b) = {x ∈ Zn+ : RAx − RKCw0 = Rb = {x ∈ Zn+ : RAx = Rb + ∆w0
w ∈ Zp -re}
w
w ∈ Zp -re}.
is az. Ezért
valamilyen
valamilyen
w0 ∈ Zp -re}
w0 ∈ Zp -re}. 2
33
A fentiek alapján a csoport-feladat a következ® alakra hozható:
n X zK (b) = u b + max (cj − u∗ aj )xj ∗
j=1 n X
φ∆ (Raj )xj ≡ φ∆ (Rb)
mod ∆
j=1
x ∈ Zn+ . p = m, azaz K egy m × m-es nem-szinguláris egész ∗ δ = | det(K)| maradékosztályunk van. Mivel cj − u aj ≤ 0 i,i i=1
Tekintsük most azt az esetet, amikor mátrix. Ekkor összesen
Qm
j -re, a csoport-feladat itt megoldható | det(K)| csúcsszámú irányított gráfon.
minden
3.11
minimális költség¶ út keresési feladatként egy
Sarokpoliéderek és metszet vágások
Az el®z® fejezetben
max{cx : Ax = b, x ∈ Zn+ }
segítségével írtuk fel a csoport-feladatot. Nézzük meg, hogy mi történik, ha az LP-relaxáció optimális bázisa! Feltesszük, hogy
A
és
SB (b) = {x ∈ Zn+ : B −1 Ax − w = B −1 b Mivel a bázisváltozók oszlopaira megszorítva
K K = B,
alakú feladatot néztünk, és egy
b
mátrix ahol
B
egészek.
valamilyen
w ∈ Zm -re}.
B −1 A 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 nemnegativitási feltételt. A továbbiakban ennek a relaxációnak a megoldáshalmazával foglalkozunk.
A = B −1 A, b = B −1 b
S = SB (b) jelöléseket, legyen x a B = {1, 2, . . . , m}. Ezekkel X S = {x ∈ Zn : xi = bi − aij xj (i ∈ B), xj ≥ 0 (j ∈ N )}.
Vezessük be az
és
bázismegoldás,
és az egyszer¶ség kedvéért tegyük fel, hogy
j∈N
3.24 deníció.
A
conv(S)
halmazt a
B
bázishoz tartozó sarokpoliédernek nevezzük, és
corner(B)-vel jelöljük. Ha
S
dení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 −
X
aij xj (i ∈ B), xj ≥ 0 (j ∈ N )}.
j∈N
3.25 állítás.
A
P (B)
poliédernek egyetlen csúcsa van:
ahol
−aij j ri = 1 0
ha ha
x,
és
n−m
extrém iránya:
r j (j ∈ N )
i∈B i=j
egyébként.
Bizonyítás.
Könnyen látható.
3.26 állítás.
Ha a(P (B)) tartalmaz egész pontot, akkor corner(B)
2
34
n−m
dimenziós.
Bizonyítás.
Belátjuk, hogy corner(B) nemüres.
Ebb®l már következik az állítás, hiszen
P (B) és corner(B) karakterisztikus kúpja megegyezik. n − Legyen x ∈ a(P (B)) ∩ Z , é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. 0 0 − 0 − Tekintsük a következ® x vektort: xj = xj ha j ∈ N \ N , xj = xj − kbxj /kc ha j ∈ N , P 0 0 0 2 végül xi = bi − j∈N aij xj ha i ∈ B . Könny¶ ellen®rizni, hogy x ∈ corner(B). Meyer tétele (2.1. tétel) miatt ekkor
A továbbiakban corner(B)-re érvényes vágásokat fogunk keresni. Ez azért hasznos, mert ezek a vágások nyilvánvalóan érvényesek az eredeti feladatra is, így használhatjuk ®ket vágósíkként. Jegyezzük meg, hogy ha
b egész, akkor corner(B) = P (B), tehát ekkor nincsenek x nem egész, és ®t leválasztó vágást
nemtriviális vágások. Ezért mostantól feltesszük, hogy keresü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.
3.27 lemma. ahol
Ha corner(B) nemüres, akkor minden nemtriviális vágás
P
j∈N
γj xj ≥ 1 alakú,
γj ≥ 0 (j ∈ N ).
Bizonyítás. l j∈N γj rj
P
γj ≥ 0
P
Ha valamilyen l − re γl < 0, akkor l 0, ellentmondásban azzal, hogy r végtelen iránya corner(B)-nek. Tehát
Tekintsünk egy
= γl < j ∈ N -re,
minden
j∈N
és persze
megszorítása nélkül feltehetjük, hogy
γj xj ≥ β β > 0 β = 1.
vágást.
ha a vágás nemtriviális, tehát az általánosság
2
Az alábbiakban Egon Balas módszerét ismertetjük ilyen vágások konstruálására.
3.28 deníció. vektor. Legyen
Ekkor a ekkor
1 αj
C
által
Egy
C
C ⊆ Rn
konvex zárt halmaz rácspontmentes, ha a belsejében nincs egész
rácspontmentes konvex zárt halmaz aminek
x
a belsejében van, és legyen
αj = sup{α : x + αrj ∈ C} (j ∈ N ). P xj meghatározott metszet vágás a j∈N αj ≥ 1 vágás
(itt
αj
értéke lehet
+∞,
= 0).
3.29 tétel (Balas).
Tetsz®leges
C
rácspontmentes konvex zárt halmazra, aminek
x a belsejében
van, az általa meghatározott metszet vágás érvényes corner(B)-re.
Bizonyítás. C
Megmutatjuk, hogy
P (B)-nek
az a része, ami nem teljesíti az egyenl®tlenséget,
C belsejében nincs egész vektor. Legyen Q = P (B) ∩ {x ∈ : < 1} (azaz P (B)-nek az a része, ami nem teljesíti P xj n : az egyenl®tlenséget) és legyen Q = P (B) ∩ {x ∈ R j∈N αj ≤ 1}. A Q halmaz egy n − m dimenziós poliéder, aminek csúcsai x, x + αj rj (azon j indexekre,Pamikre αj véges), xj j extrém irányai pedig r (azon j indexekre, amikre αj végtelen). Mivel a j∈N αj = 1 lapon j j az x + αj r csúcsok vannak, Q minden pontja kifejezhet® mint az {x + αr (0 ≤ α < αj )} belsejében van. Ebb®l következik az állítás, hiszen
Rn
xj j∈N αj
P
félig nyílt szakaszok pontjainak konvex kombinációja plusz az extrém irányok nemnegatív kombinációja. Mivel ezek a félig nyílt szakaszok
C
belsejében vannak,
Q is része C
belsejének.
2
3.30 tétel.
Minden, corner(B)-re érvényes vágás metszet vágás valamilyen
Bizonyítás.
P
C -re.
j∈N γj xj ≥ 1 egy nemtriviális vágás; ekkor a 3.27. lemma γj ≥ 0 minden j ∈ N -re. Vegyük P (B)-nek egy olyan Dx ≤ d leírását, ahol D egész és d egész vektor. Legyen X C = {x ∈ Rn : Dx ≤ d + 1, γj xj ≤ 1}. Legyen
j∈N 35
szerint mátrix
C -nek nincs egész P vektor a belsejében, hiszen arra Dx ≤ d teljesülne, így P (B)-beli egész vektor lenne amire j∈N γj xj < 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¶ P ellen®rizni, hogy az általa adott metszet vágás pont 2 j∈N γj xj ≥ 1. Figyeljük meg, hogy
A lényeges vágások megtalálásához elég tartalmazásra maximális rácspontmentes konvex zárt halmazokat nézni.
Ezek struktúráját Lovász tétele írja le; csak a korlátos esetet bi-
zonyítjuk.
3.31 tétel
. Ha C tartalmazásra maximális teljes dimenziós rácspontmentes konvex C = P + L, ahol P poliéder, L lineáris altér, dim(P ) + dim(L) = n, és C
(Lovász)
zárt halmaz, akkor
minden lapjának relatív belsejében van egész pont.
Bizonyítás.
B = {x ∈ Rn : l ≤ x ≤ u} téglának. Minden z ∈ B ∩ az és bz , hogy az x ≤ bz ∀x ∈ C , de az z ≥ bz . A n P = {x ∈ R ∩ B : az x ≤ bz ∀z ∈ B ∩ Zn } korlátos poliéder rácspontmentes, és C ⊆ P , tehát C = P. (Korlátos eset.) Feltesszük, hogy
C
része a
Zn ponthoz létezik
Ha egy lapnak a relatív belsejében nem lenne egész pont, akkor a lapot meghatározó egyenl®tlenség jobboldalát kicsit megnövelve rácspontmentes poliédert kapnánk, ellentmondásban
2
a maximalitással.
3.32 állítás. Bizonyítás.
Ilyen
C -nek
Legyen
xF
legfeljebb az
F
2n
lapja van.
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 és
xF2
paritása megegyezik.
Ekkor viszont
xF1 +xF2 2
is egész vektor, és
C
xF1
belsejében van,
2
ellentmondásban a rácspontmentességgel.
2 dimenzióban ezek szerint legfeljebb 4 lap lehet. További esetszétválasztással belátható, hogy
a
tartalmazásra
maximális
rácspontmentes
konvex
zárt
halmazok
a
következ®
kategóriákba sorolhatók:
• {(x1 , x2 ) : b ≤ a1 x1 + a2 x2 ≤ b + 1}, •
ahol
a1 , a2 , b
egészek, és
(a1 , a2 ) = 1.
Háromszög, ezen belül 3 típus. Els® típus: minden csúcs egész, minden oldal belsejében 1 egész pont. Második típus: legalább 1 tört csúcs; az erre illeszked® oldalak belsejében 1 rácspont, a harmadik oldal belsejében legalább 2. Harmadik típus: Összesen 3 rácspont a háromszög határán.
•
Négyszög, minden oldal belsejében egyetlen rácspont.
Megjegyezzük, hogy a fentiekhez hasonló tételeket lehet kimondani vegyes programozási feladatokra is, és a módszer igazán ilyen feladatoknál hasznos.
Belátható, hogy min-
(Zp × Rn−p )-mentes maximális konvex zárt halmaz el®áll, mint egy maximális Zp n−p direkt szorzata. Ezért a vágásokat annyi dimenziós rácspontmentes mentes poliéder és R den
poliéderek határozzák meg, ahány egész változó van.
3.12
Lifting
P racionális poliéder egy F oldalára van egy G-C cx ≤ d vágás, akkor P -re van olyan G-C-levezethet® c0 x ≤ d0 vágás, amire F ∩ {x : c0 x ≤ d0 } = F ∩ {x : cx ≤ d}. Az alábbiakban azt a speciális esetet nézzük, n amikor P ⊆ [0, 1] , és F = {x ∈ P : x1 = 0}. Azt vizsgáljuk, hogy egy F -re érvényes vágás P -re való felemelése mikor határozza meg PI egy lapját.
A 3.5. Lemmában láttuk, hogy ha a levezethet®
36
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 vektorainak konvex burka, ezt nevezzük stabil halmaz poliédernek. Könny¶ látni, hogy PI teljes dimenziós. P 3.33 tétel (Padberg). Legyen C ⊆ V egy klikk. A v∈C xv ≤ 1 vágás érvényes, és pontosan akkor határozza meg lapját PI -nek, ha C tartalmazásra nézve maximális klikk. Példaként tekintsük egy
Bizonyítás. P v∈C 0 Ha
Ha
C
C0 ) C
nem tartalmazásra nézve maximális, akkor létezik
xv ≤ 1 vágás szigorúan C tartalmazásra nézve
P
dominálja a
v∈C
xv ≤ 1
klikk.
A
vágást, tehát utóbbi nem lehet lap.
maximális, akkor meg tudunk adni
|V |
darab
PI -beli
an
független vektort, ami az egyenl®tlenséget egyenl®séggel teljesíti:
• v ∈ C -re χv , • v ∈ / C -re χ{v,w} ,
ahol
w
C -beli
egy olyan
csúcs, amire
vw ∈ / E
(ilyen van, mert
C
maximális).
2 PI -nek pontosan akkor nincs más lapja, ha G perfekt gráf. Tegyük fel G -ben van egy H páratlan lyuk, azaz egy 2k + 1 elem¶ feszített kör, ahol k ≥ 2. P v∈H xv ≤ k érvényes vágás. Ha V = H , akkor persze ez lapja PI -nek, hiszen van
Ismert tétel, hogy most, hogy Ekkor
2k+1 an 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ük wheel-nek, a vz élek a küll®k). Ahhoz, hogy lapot csináljunk bel®le, meg kell vizsgálnunk, mi az a maximális α, amire X αxz + xv ≤ k v∈H é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 +
X
xv ≤ k
v∈H érvényes vágás, ráadásul lapja n független az eddigi
felemeltjének.
2k + 1
PI -nek,
mert a
vektorral.
χz
vektor is egyenl®séggel teljesíti, és af-
Ezt a vágást nevezzük a
P
v∈H
xv ≤ k
Általánosan a következ® tételek mondják ki a felemelt vágás létezését. Legyen
0 racionális poliéder, P
3.34 tétel
(Wolsey)
.
= P ∩ {x : xn = Tegyük fel, hogy
határoz meg. Tegyük fel továbbá, hogy PI1 } értékre az
0}, és P 1 Pn−1 j=1
PI1
cj xj ≤ d
n−1 X
P ⊆ [0, 1]n
= P ∩ {x : xn = 1}. PI0 -re, és k dimenziós oldalt Pn−1 α = d − max{ j=1 cj xj : x ∈
érvényes
nem üres. Ekkor az
αxn +
vágás
cj xj ≤ d
j=1 vágás érvényes
Bizonyítás.
PI -re,
és
k+1
dimenziós oldalt határoz meg.
Az érvényességet könny¶ ellen®rizni
növekedése abból adódik, hogy
PI1 -ben
α
deníciója alapján.
is van vektor ami egyenl®séggel teljesíti.
37
A dimenzió
2
3.35 tétel
(Wolsey)
.
Tegyük fel, hogy
határoz meg. Tegyük fel továbbá, hogy PI0 } értékre a
Pn−1 j=1
PI0
βxn +
cj xj ≤ d
nem üres. Ekkor a
n−1 X
PI1 -re, és k dimenziós oldalt Pn−1 cj xj : x ∈ β = −d + max{ j=1
érvényes
cj xj ≤ d + β
j=1 vágás érvényes
Bizonyítás.
PI -re,
és
k+1
dimenziós oldalt határoz meg.
2
Hasonlóan az el®z®höz.
H páratlan lyuk, és P a x ≤ (|H| − 1)/2 egyenl®tlenséget lépésenként egy v∈H v emelni PI lapjává. Megjegyzend®, hogy a kapott lap függhet a
A fentiekb®l például következik, hogy ha egy gráfban van egy stabil halmaz poliéder, akkor a csúcsot hozzávéve fel tudjuk
P
csú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észfeladatnál kapott érvényes vágást fel tudunk emelni az eredeti feladat érvényes vágásává, és aztán azt használhatjuk a többi részfeladatnál.
3.13
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 feladatoknál használható megengedett vágások keresésére. A módszer két fázisból áll: a felemelési fázisban felírunk egy kvadratikus programozási feladatot, ami er®sebb az LP relaxáltnál, majd ezt a kvadratikus feladatot linearizáljuk újabb változók bevezetésével (tehát felemeljük egy magasabb dimenziós térbe, innen a név).
A vetítési fázisban ezt a magasabb dimenziós
poliédert levetítjük az eredeti térbe.
P = {(x, z) ∈ Rn+d : Ax + Bz ≤ b} : ∃z ∈ Rd : (x, z) ∈ P }.
Nézzük el®ször, hogyan kell vetíteni. Egy vetülete az
x
3.36 állítás.
C = {y : yB = 0, y ≥ 0}, és Px = {x ∈ Rn : (yA)x ≤ yb ∀y ∈ E}.
Legyen
halmaza. Ekkor
Bizonyítás.
Px = {x ∈
változók terére
Rn
legyen
E
a
C
poliéder
kúp extrém irányainak
Q = {x ∈ Rn : (yA)x ≤ yb ∀y ∈ E} = {x ∈ Rn : (yA)x ≤ yb ∀y ∈ C}. hogy Px ⊆ Q. Ha x ∈ Px , akkor létezik z , hogy (x, z) ∈ P , és ekkor
Legyen
El®ször belátjuk,
y ∈ E -re (yA)x = (yA)x + (yB)z = y(Ax + Bz) ≤ yb. y(b − Ax) ≥ 0 minden y ∈ C d re, és ez a Farkas lemma értelmében azzal ekvivalens, hogy létezik z ∈ R amire Bz ≤ b − Ax. Azaz (x, z) ∈ P , tehát x ∈ Px . 2 Most belátjuk, hogy
Q ⊆ Px .
Az állítás értelmében
Px
Legyen
x ∈ Q;
leírásához a
C
a deníció szerint
kúp extrém irányait kell ismerni; ez persze nem
mindig áll rendelkezésre, s®t akár exponenciálisan sok extrém irány is lehet.
De bizonyos
szerencsé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 programozási feladatot (persze nem polinom id®ben).
38
Felemelés és vetítés algoritmus
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 Feltesszük, hogy a feladatunk megengedett tartománya
•
Vegyük azt a kvadratikus rendszert, amit úgy kapunk, hogy az l®tlenségeit megszorozzuk
xj -vel,
illetve
Ax ≤ b
egyen-
(1 − xj )-vel:
(Ax)xj ≤ bxj ,
(3.14)
(Ax)(1 − xj ) ≤ b(1 − xj ).
(3.15)
Figyeljük meg, hogy az így kapott egyenl®tlenségek érvényesek
F
minden el-
emére.
•
i ∈ {1, . . . , n} \ {j}-re egy új yij változót. A fenti xi xj -t yij -vel, és helyettesítsük x2j -et xj -vel 2 (az utóbbit az motiválja, hogy xj ∈ {0, 1} esetén tényleg xj = xj ). Legyen Lj (P ) az így kapott poliéder az (x, y) térben.
(Lift) Vegyünk fel minden
egyenl®tlenségekben helyettesítsük
•
(Project) Vetítsük
3.37 tétel.
Legyen
Lj (P )-t
vissza az
P = {x ∈ Rn : Ax ≤ b}.
x
változók terére:
Pj = (Lj (P ))x .
Ekkor a Lift-and-Project algoritmussal kapott
poliéder:
Pj = conv(P ∩ {x ∈ Rn : xj ∈ {0, 1}}).
Bizonyítás.
Pj ⊇ conv(P ∩ {x ∈ Rn : xj ∈ {0, 1}}) irány bizonyításához legyen x ¯ ∈ P ∩ {x ∈ : xj ∈ {0, 1}}, és legyen y¯ij = x ¯i x ¯j (i 6= j ). Mivel x ¯ teljesíti a (3.14-3.15) egyenl®tlenségeket és x ¯j = x ¯2j , 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 , A
Rn
hiszen az egymásnak megfelel® (3.14)-(3.15) 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} = ∅.
amire
yA = −ej
és
yb = −ε
valamilyen
Ekkor a Farkas Lemma következtében létezik
ε > 0-ra
(itt
ej
a
j -edik
y ≥ 0,
egységvektor). Mivel minden
yAx(1 − xj ) ≤ yb(1 − xj ) is, x-ekre −ej x(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 benne van 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 n minden conv(P ∩ {x ∈ R : 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 = 1 esetén bármilyen ν jó, tehát, mivel P -nek véges sok csúcsa van, kell lenni ν -nak ami minden x ∈ P -re jó. Ezek szerint ha egy x kielégíti a (3.14-3.15) egyenl®tlenségeket, akkor (1 − xj )(ax + λxj ) ≤ (1 − xj )β és xj (ax + ν(1 − xj )) ≤ xj β . Ezeket összeadva:
x-re,
amire a (3.14-3.15) egyenl®tlenségek teljesülnek, teljesül
így az ilyen
ax + (λ + ν)(xj − x2j ) ≤ β, 39
Tehát az
xj = x2j
átírással
ax ≤ β
érvényes
Lj (P )-re,
tehát
Pj -re
2
is.
Az algoritmust persze alkalmazhatjuk egymás után a különböz® változókra, mondjuk
j1 , . . . , jt
sorrendben. Jelölje
3.38 tétel.
Pj1 ,...,jt
az így kapott poliédert.
Pj1 ,...,jt = conv(P ∩ {x ∈ Rn : xji ∈ {0, 1}, i = 1, . . . , t}).
Bizonyítás.
A tételt
t
A 3.37 Tétel szerint t = 1 re az Q = {x : xji ∈ {0, 1}, i = 1, . . . , t − 1}.
szerinti indukcióval bizonyítjuk.
állítás igaz, úgyhogy tegyük fel hogy
t ≥ 2.
Legyen
Ekkor
Pj1 ,...,jt = (conv(P ∩ Q))jt
(3.16)
= conv(conv(P ∩ Q) ∩ {x : xjt ∈ {0, 1}})
(3.17)
= conv((conv(P ∩ Q) ∩ {x : xjt = 0}) ∪ (conv(P ∩ Q) ∩ {x : xjt = 1}))
(3.18)
= conv(conv(P ∩ Q ∩ {x : xjt = 0}) ∪ conv(P ∩ Q ∩ {x : xjt = 1}))
(3.19)
= conv((P ∩ Q ∩ {x : xjt = 0}) ∪ (P ∩ Q ∩ {x : xjt = 1}))
(3.20)
= conv(P ∩ {x : xji ∈ {0, 1}, i = 1, . . . , t}).
(3.21)
Itt (3.17) a 3.37 Tétel következménye; (3.19) onnan jön, hogy egy hipersíkot be lehet vinni a
conv-on belülre; (3.20) pedig annak köszönhet®, hogy conv(conv(A)∪conv(B)) = conv(A∪B). 2 A tételb®l következik, hogy a végeredmény szempontjából mindegy milyen sorrendben csiná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.
3.14
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
rangja legalább
k
egy pozitív egész szám. Mutassuk meg, hogy az alábbi poliéder Chvátal-
k. P := conv{(0, 0), (1, 0), (1/2, k)}.
5 feladat.
Bizonyítsuk be a 3.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 3.7 tétel tetsz®leges korlátos poliéderre is kiterjeszthet®.
8 feladat.
Legyen az
Bizonyítsuk be, hogy
9 feladat.
Ax ≤ b totálisan duálisan egészérték¶ rendszer, P 0 = {x : Ax ≤ bbc}, ahol P 0 := {x : Ax ≤ b}.
Az összefügg®
G = (V, E) gráfhoz deniáljuk a következ® P xu + xv ≤ 1 xv ≥ 0
Világos, hogy a
G
amelyre
∀ uv ∈ E
A
egész mátrix.
poliédert, ahol
x ∈ RV . (3.22)
∀ v∈V
stabil ponthalmazai karaktarisztikus vektorainak a konvex burka (S(G))
benne van a fenti poliéderben, továbbá
PI = S(G).
a következ® érvényes vágásoknak.
40
Adjuk meg a Gomory-Chvátal-levezetését
C⊆V
(i) Legyen
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, ha
egy 5 hosszú körb®l áll és egy hatodik pontból, amely az össze többivel össze van kötve). Jelölje
r
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.
41
Chapter 4
Dinamikus programozás A dinamikus programozás elnevezés a matematikai programozásban egy bizonyos fajta algoritmusszervezési eljárást takar. Az általános deníciótól eltekintünk, ehelyett konkrét példákon mutatunk be néhány dinamikus programozási algoritmust, amelyekb®l minden Olvasó képet alkothat magának arról, miben is áll ezen elgondolás, és mikor is alkalmazható. Az alábbiakban [6]-re támaszkodva bemutatunk négy-öt alapfeladatot és azok dinamikus programozási megoldását. A dinamikus programozás nem más, mint a rekurzív megoldhatóság lehet®sége, a rekurzió maga.
4.1
Legrövidebb utak
Adott egy irányított
D = (V, A)
(vagy hossz). Adott továbbá egy
gráf, és minden irányított
e
élén egy
ce
nemnegatív költség
s kiindulási pont, és szeretnénk meghatározni s-b®l az összes
többi pontba vezet® legrövidebb irányított utat. Tegyük fel, hogy a utat jelöljünk
pont rajta van az
s-b®l
a
t
pontba vezet® legrövidebb úton, amely
P -vel.
4.1 meggyelés. t-ig
p
A
P s-b®l p-ig
vezet® része egy legrövidebb
vezet® rész pedig egy legrövidebb
p-b®l t-be
s-b®l p-be
vezet® út, a
p-t®l
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ül utat.) A következ® összefüggés adódik.
4.2 állítás.
Jelölje
d(v)
az
s-b®l v -be
vezet® legrövidebb út hosszát. Ekkor
d(v) = min {d(u) + cuv },
(4.1)
u∈V −
ahol
V−
azon pontok halmazát jelöli, amelyekb®l vezet él
Ez azt jelenti, hogy ha ismerjük
v -b®l
az összes
hosszát, akkor könnyen meg tudjuk határozni a
v -be
v -be.
V − -beli
pontba vezet® legrövidebb út
vezet® legrövidebb út hosszát is.
Azonban ez a meggyelés közvetlenül nem ad még algoritmust, hiszen elképzelhet®, hogy
d(z)
kiszámításához szükségünk van
ismeretére volna szükség.
d(w)-re,
ugyanakkor
d(w)
kiszámításához pedig
d(z)
Ámde irányított köröket nem tartalmazó, úgynevezett aciklikus
gráfokra mégis kaptunk egy egyszer¶ algoritmust.
4.3 meggyelés. egy olyan (ún. mutat.
Legyen adva a
D = (V, A) aciklikus irányított gráf és a V
ponthalmazának
topologikus) sorrendje, melyre minden él korábbi pontból kés®bbi pontba
Ekkor ezen sorrend szerint a pontokon az (4.1) rekurzió szerint végighaladva
42
s-b®l
az összes többi pontba vezet® legrövidebb út meghatározható. Ezen algoritmus futási ideje
O(|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 legrövidebb legfeljebb
k
Dk (v)
függvény bevezetése, ahol
Dk (v)
az
s-b®l v -be
vezet®
darab élb®l álló út hosszát jelöli. Ekkor igaz a következ®:
Dk (v) = min{Dk−1 (v), min [Dk−1 (u) + cuv ]}.
(4.2)
u∈V −
Ha a
k -t
1-t®l
|V | − 1-ig
Dk (v) értékeket az összes v ∈ V pontra a (4.2) O(|V ||A|) futási idej¶ algoritmust szolgáltat, és
növeljük, akkor a
rekurzió szerint kiszámolhatjuk. Ez így egy persze
d(v) = Dn−1 (v).
4.2
A hátizsákfeladat
Ebben a fejezetben a hátizsákfeladat néhány különböz® változatát oldjuk meg dinamikus programozási módszerrel. Amennyiben a feladatban szerepl® mennyiségek nem túl nagyok, ez a módszer nagyon hatékonynak bizonyul.
4.2.1 A 0-1 hátizsákfeladat Tekintsük az alábbi 0-1 hátizsákfeladatot.
z := max
n X
cj xj
j=1 n X
aj xj ≤ b
j=1
x ∈ {0, 1}n ahol az
aj
együtthatók és a
b
pozitív egész számok.
λ szám a 0, 1, . . . b értékeket Pr (λ) a következ® feladatot.
Tekintsük az alábbi kisebb feladatokat, ahol a paraméter pedig az
1, 2, . . . n
értéket. Jelölje
fr (λ) := max
r X
veszi fel, az
r
cj xj
j=1 r X
aj xj ≤ λ
j=1
x ∈ {0, 1}r az
Ekkor
z = fn (b)
fr (λ)
értékeket azon
adja az eredeti feladat maximumát. Most megadunk egy rekurziót, amely
Mit mondhatunk a
x∗r = 1. •
Ha
x∗r = 0,
fs (µ) értékekb®l számolja, melyekre s ≤ r és µ < λ. Pr (λ) probléma x∗ optimális megoldásáról? Nyilván vagy x∗r = 0,
akkor könnyen látható, hogy
fr (λ) = fr−1 (λ).
43
vagy
•
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 )}. 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 fenti rekurzió segítségével egymás után ki tudjuk számítani az f1 , f2 , . . . fn értékeit minden 0-tól b-ig terjed® λ-ra. Világos, hogy
Az összes megfelel® függvényérték kiszámítása után felmerül az a kérdés is, hogy hogyan
fr (λ) célfüggvényérték tartozik). pr (λ) indikátort, amelynek az értéke 0
találhatunk meg egy optimális megoldást (amelyhez ugye
fr (λ) értéket, vagy csak egy fr (λ) = fr−1 (λ), és 1 különben. ∗ Ha pn (b) = 0, akkor fn (b) = fn−1 (b), és xn = 0. A többi koordinátát pedig fn−1 (b)-gyel folytatva hasonlóképp határozhatjuk meg. Ha pn (b) = 1, akkor fn (b) = cn + fn−1 (b − an ), ∗ és xn = 1. A többi koordinátát pedig fn−1 (b − an )-nel folytatva hasonlóképp határozhatjuk
Vagy megtarjuk az összes legyen, ha
meg. Az algoritmus lépésszáma
O(nb),
hiszen az
fr (λ)
értékek mindegyikének a kiszámításához
csak konstans sok összeadásra, kivonásra és összehasonlításra van szükség.
Az optimum
meghatá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
4.2.2 Egészérték¶ hátizsákfeladat Tekintsük az alábbi egészérték¶ hátizsákfeladatot.
z := max
n X
cj xj
j=1 n X
aj xj ≤ b
j=1
x ∈ Zn+ ahol szokás szerint az
aj
együtthatók és a
b
pozitív egész számok.
Pr (λ) feladatokat, 1, 2, . . . n értéket.
Az el®z® alfejezet gondolatmenetét követve deniáljuk az alábbi
λ
szám a
0, 1, . . . b
értékeket veszi fel, az
r
paraméter pedig az
gr (λ) := max
r X j=1
r X
aj xj ≤ λ
j=1 44
cj xj
ahol a
x ∈ Zr+ Hogyan kapunk rekurziós formulát?
gr (λ) = cr t + gr−1 (λ − tar ).
b aλr c = b
x∗
optimális
megoldásában az
x∗r = t
mellett
Tehát
gr (λ) = Mivel
Pr (λ)
{cr t + gr−1 (λ − tar )}.
max
t=0,1,...bλ/ar c
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ákfeladat megoldására is. Legyen tehát
z := max
n X
cj xj
j=1 n X
aj xj ≤ b
j=1
xj ≤ dj
j = 1, 2, . . . n x ∈ Zn+
ahol szokás szerint az
aj
együtthatók, a
dj
számok és a
b
Ekkor a szokásos jelöléseinkkel az alábbi rekurzió egy
pozitív egészek.
O(nb2 )
lépésszámú algoritmust ha-
tároz meg.
gr (λ) =
max
t=0,1,... min[dr ,bλ/ar c]
{cr t + gr−1 (λ − tar )}.
A továbbiakban azt vizsgáljuk meg, hogy tudunk-e gyorsabb algoritmust meghatározni a fels® korlátokat nem tartalmazó esetben. A válasz igen, mégpedig a következ® apró módosítással é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
Gyakorlat.
pr (λ)
indikátorok segítségével történhet.
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(λ) := max
n X
cj xj
j=1 n X
aj xj ≤ λ
j=1
x ∈ Zn+ 45
Ekkor ha valamely
x∗j = 1,
akkor
h(λ) = cj + h(λ − aj ).
Így hát a következ® rekurzióhoz
jutunk:
h(λ) = max[0, max {cj + h(λ − aj )}]. j: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 tartalmazó esetben megfogalmazható aciklikus irányított gráfban való leghosszabb út kereséseként.
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 λ-ba Deniáljuk a
D = (V, A)
irányított gráfot a következ®képpen.
vezet® 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 esetén. Legyen a feladatunk
max{cx : Ax ≤ b, x ≥ 0, x ∈ Zn }, ahol
A, b, c nemnegatív és egész. k ∈ {1, . . . , n} szám és 0 ≤ d ≤ b
Adott
egész vektor esetén legyen
k k X X fk (d) = max{ cj xj : aij xj ≤ di (i = 1, . . . , m), x ≥ 0}. j=1
j=1
f0 (d)-t 0-nak minden 0 ≤ d ≤ b-re. A következ® rekurzióval 0 ≤ d ≤ b-re kiszámolni a függvényértékeket: ( fk−1 (d) ha valamilyen i-re aik > di , fk (d) = max{fk−1 (d), fk (d − a.k ) + ck } ha a.k ≤ d.
Deniáljuk ezen kívül
k ≥ 1-re
lehet
és
Az optimumértéket
fn (b)
adja meg. A lépésszám
O(n
Qm
i=1 (bi
+ 1)),
ami sajnos a legtöbb
feladatnál nagyon lassú algoritmust ad.
4.3
Fa optimális részfája
Most egy olyan dinamikus programozási megoldást ismertetünk, amelynek nincs közvetlen köze legrövidebb utak kereséséhez.
Legyen adva egy
T = (V, E)
fagráf (azaz összefügg®,
r ∈ V úgynevezett gyökérpontja. Továbbá adott 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 elindulva az els® csúcsot (p(v)-t a v szül®jének nevezik). Jelölje S(v) a v többi szomszédját, azaz S(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ális megoldását. Amennyiben nincs pozitív összsúlyú v -gyöker¶ részfa, akkor H(v) := 0. Minden más esetben az optimális részfa tartalmazza a v csúcsot. Ezen optimális részfa tartalmazhat további T (w)-részfákat, amelyek valamely w ∈ S(v) gyöker¶ek. Ekkor könnyen látható, hogy ezeknek a részfáknak a súlya H(w). Ezek alapján a következ® rekurzió adódik:
körmentes irányítatlan gráf ) és egy kijelölt a gráf minden
v ∈ V
csúcsán egy
46
X
H(v) = max{0, cv +
H(w)}.
w∈S(v) 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
4.4
v
gyökerére
H(v) = 0.
Az algoritmus lépésszáma
O(|V |).
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áfban megkeresni a legnagyobb független csúcshalmazt NP-nehéz feladat, de mint látni fogjuk, fában még a maximális súlyú független csúcshalmazt is meg tudjuk találni tetsz®leges súlyozás eseté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ünk ki 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ális
b(v) pedig jelölje az olyan független halmaz maximális súlyát T (v)-ben, ami nem 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: megoldását,
tartalmazza
a(v) = max{
X
X
a(w), cv +
w∈S(v)
b(v) =
b(w)},
w∈S(v)
X
a(w).
w∈S(v) Ez alapján a levelekt®l felfele haladva az Az
a(r)
a(v) és b(v) értékek minden csúcsra kiszámolhatók.
érték pedig megadja a maximális súlyú független csúcshalmaz súlyát.
Magának a
csúcshalmaznak a meghatározása visszafelé haladva történhet.
4.5
Termelésütemezési feladat
Ebben az alfejezetben az 1 fejezetben bemutatott termelésütemezési feladat megoldására mutatunk 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 az igények összegével.
4.4 állítás. zt−1 xt = 0
Létezik olyan optimális megoldása is a termelésütemezési feladatnak, amelyben
minden
t-re.
A fenti állítás azt jelenti, hogy csak abban az id®periódusban termelünk, amikorra a raktár már kiürült. Ez az alábbival ekvivalens.
4.5 állítás. valamely
Létezik olyan optimális megoldás is, amelyben ha
k>0
értékre.
47
xt > 0,
akkor
xt =
Pt+k i=t
di
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 X
xi −
i=1
t X
di .
i=1
Ezt a célfüggvénybe behelyettesítve az alábbit kapjuk:
n X
p t xt +
t=1 n X
p t xt +
t=1
n X
ahol
ct = pt +
i=t hi . A
h
és
ct xt −
d
n X
ft yt =
t=1
t t n X X X ht ( xi − di ) + ft yt =
t=1
Pn
ht zt +
t=1
t=1 n X
n X
i=1 n X t=1
t=1
i=1
t n X X ht ( di ) + ft yt , i=1
t=1
értékeket tartalmazó kifejezés egy konstans érték, amelyre
az optimum kiszámításánál elég csak végül beszámítani. A 4.5 állítás szerint érvényes az alábbi rekurzió, ahol
H(t)
az
t=n
periódus mellett jelöli
az optimális célfüggvényértéket (a konstanstagtól eltekintve).
H(k) = A
H(k)
min
t=1,2,...,k
k X H(t − 1) + ft + ct ( di ). i=t
értékeket tehát egymás után meg tudjuk hatázozni 1-t®l kezdve
n-ig.
Visszafelé
2 haladva az optimális xt értékeket is meg tudjuk határozni, ezzel egy O(n ) algoritmust kapva.
10 feladat.
Fogalmazzuk meg a termelésütemezési feladatot irányított gráfbéli legrövidebb út
feladatként.
48
Chapter 5
Általános egészérték¶ programozási módszerek 5.1
Vágósíkos eljárások
Tekintsük a következ® egészérték¶ programozási feladatot.
max cx
(5.1)
Ax = b x ≥ 0, x
egész.
(5.2)
Amennyiben nem kötjük ki (5.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 (5.1) lineáris programozási relaxáltját. Legyen
x∗
a kapott opti-
mális megoldás.
x∗
•
Ha
•
Ha nem egész, akkor adjunk a feltételrendszerhez egy olyan feltételt, amelyet
egész, akkor megoldottuk a feladatot.
az ö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®l bebizonyította, hogy véges sok lépésben megkeresi tetsz®leges egészérték¶ programozási feladat optimumát. Annak ellenére, hogy a gyakorlatban az eljárás nem bizonyult hatékonynak, elméleti jelent®sége igen nagy. Tegyük fel, hogy a megoldott lineáris porgramozá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
X
xi ≥ 1
i∈N é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 ezzel az, hogy nem tudjuk garantálni az algoritmus végességét. Gomory véges algoritmusához egy másfajta vágást kell tekintenünk.
49
A Gomory-féle érvényes vágáshoz a következ®képpen jutunk. Legyen a lineáris programozási relaxált egy optimális bázismegoldását mutató egyenletrendszer a következ®:
xB + B −1 AN xN = B −1 b. Ennek a felírásnak az együtthatóira használjuk a megszokott jelöléseket: és
di0 := (B −1 b)i .
t-edik
t
Legyen
dij := (B −1 Aj )i
a legkisebb olyan index, hogy az optimális bázismegoldásban a
változó nem egész érték. Ekkor a hozzá tartozó egyenlet:
X
xt +
dtj xj = dt0 .
j∈N Ebb®l következik, hogy
xt +
X
bdtj cxj ≤ xt +
j∈N mivel
xj ≥ 0
teljesül minden
j -re.
X
dtj xj = dt0 ,
j∈N
Ebb®l az következik az egészérték¶
xt +
X
xj
megoldásokra, hogy
bdtj cxj ≤ bdt0 c.
j∈N Ezt az egyenl®tlenséget tehát a feladatunk minden egész megoldása teljesíti, de a lineáris programozási relaxált aktuális optimális megoldása nem.
Az így kapott egyenl®tlenségeket
Gomory-vágásnak nevezzük. Gomory megmutatta, hogy az ily módon nyert vágásokat megfelel® módon a feltételi rendszerhez hozzávéve véges sok lépésen belül egészérték¶ optimumhoz jutunk. A kapott vágást mindig a szimplex tábla legaljára tesszük be. Ahhoz, hogy az új vágást beírhassuk a szimplex táblába, kicsit más alakra kell hozni:
X
s−
{dtj }xj = −{dt0 },
j∈N ahol
s
egy új slack változó, és
{α}
az
α
szám törtrésze. Könnyen látható, hogy ez egy ekvi-
xj (j = 1, . . . , n) változók mind fogunk s miatt vágást generálni.
valens alakja a Gomory-vágásnak. Figyeljük meg, hogy ha az egészérték¶ek, akkor
s
is az, tehát a módszer során sosem
A végesség belátásához el®ször röviden ismertetjük a lexikograkus duál szimplex módszert.
5.1.1 Lexikograkus duál szimplex módszer A lexikograkus 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 szerepelnek a változók értékei (a nembázis változók is szerepelnek, az ® soraik az egységmátrix
−1-szeresét
alkotják). A lexikograkus duál szimplex módszer fontos tulajdonsága, hogy a táblázat minden oszlopa (a 0-dik kivételével) mindig lexikograkusan pozitív.
Hogy ez az elején teljesüljön,
esetleg egy új egyenletet kell hozzávenni a rendszerhez az 1. sorba:
X
xj + u = M,
j:d0j =0 ahol
u
egy új slack változó,
M
pedig egy kell®en nagy szám.
Pivotálás:
50
•
A bázist elhagyó változó: a legkisebb index¶, amire index
•
i
di0 < 0.
Tegyük fel hogy ez az
(ha nincs ilyen, akkor kész vagyunk: primál megengedett megoldásunk van).
A bázisba bekerül® változó: válasszuk azt, amelyikre a
Azok közül a j > 0 indexek d d d d − d0j , − d1j , − d2j , . . . , − d|Nij|j ij ij ij
közül, amelyekre
dij < 0,
vektor lexikograkusan a
legkisebb.
•
Ha nincs olyan
xi
j>0
index amire
dij < 0,
akkor a feladatnak nincs megoldása, hiszen
értéke csak negatív lehet.
Figyeljük meg, hogy a pivotálás során a 0. oszlop lexikograkusan csökken, a tábla többi oszlopa pedig lexikograkusan pozitív marad. Tehát véges sok lépésben elérünk egy optimális megoldást (ha van), hiszen a 0. oszlop lexikograkusan mindig legalább
α
(α, 0, 0, . . . , 0),
ahol
az optimumérték.
5.1.2 Gomory módszerének végessége 5.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íkos
algoritmusa 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 minden
j ≥ 1-re •
Nincs megoldás, mert a kapott LP relaxáció optimum-értéke kisebb mint
Bizonyítás. Ilyenkor
d00
El®ször belátjuk, hogy a 0.
w.
sorból csak véges sokszor generálhatunk vágást.
nem egész, és a generált vágás:
s−
X
{d0j }xj = −{d00 }.
j∈N A lexikograxus duál szimplex módszer els® lépésében
s
hagyja el a bázist. Tegyük fel hogy
dn+1,p a pivotelem; jelöljük d0ij -vel a pivotálás utáni elemeket. Ekkor d000 = d00 − Tudjuk:
d0p ≥ 0, {d0p } > 0
{d00 } d0p . {d0p }
(mert pivotelem), tehát
d0p > 0.
Így
d0p {d0p }
≥ 1,
tehát
d000 ≤ d00 − {d00 } = bd00 c. 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
w
alá csökkenne. A fentiekb®l következik, hogy nem n®, ezután
d10
d00
egy id® után állandó. Mivel a 0. oszlop lexikograkusan
nem n®het. Megmutatjuk, hogy csak véges sokszor csökkenhet. Ilyenkor
az els® sorból generálunk vágást,
d10
nem egész, és a generált vágás:
s−
X
{d1j }xj = −{d10 }.
j∈N
51
A lexikograxus duál szimplex módszer els® lépésében
dn+1,p
a pivotelem; jelöljük
d0ij -vel
s
hagyja el a bázist. Tegyük fel hogy
a pivotálás utáni elemeket. Ekkor
d010 = d10 −
{d10 } d1p . {d1p }
{d1p } > 0 (mert pivotelem), tehát d1p 6= 0. Másrészt d0p = 0, mert különben a pivot d00 változna, de az már xálódott. Tehát d1p > 0 mert a p-edik oszlop lexikograkusan
Tudjuk: során
pozitív. Így
d010 ≤ d10 − {d10 } = bd10 c. Tehát véges sok lépés után
x1
d10
vagy xálódik, vagy negatívvá válik. Nézzük az utóbbi esetet:
negatív az aktuális megoldásban.
Ebb®l következik, hogy
mert különben az oszlop lexikograkusan pozitív mivolta miatt
d00
pivotáláskor
csökkenne ellentétben a feltevésünkkel.
d1j ≥ 0 minden j ∈ N -re, d0j > 0, ami azt jelenti hogy
Viszont ilyenkor annál az esetnél
vagyunk, amikor bizonyítékunk van hogy a feladatnak nincs megoldása.
d10
Marad az az eset, amikor belátható, hogy
d20 , d30 , . . . ,
eredeti változó xálódik.
is xálódik egy id® után.
Hasonló gondolatmentettel
is xálódik véges sok lépésben, azaz egy id® után az összes
De mint láttuk, az utólag hozzávett slack változókból soha nem
2
generálunk vágást, tehát az algoritmus véget ér.
11 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®bb azonos alakra kell hoznunk a feladatokat.)
5.2
Korlátozás és szétválasztás módszere
5.2.1 LP alapú korlátozás és szétválasztás Tekintsük a következ® alakú feladatot:
zIP := max cx
(5.3)
Ax ≤ b
(5.4)
x ahol
A, b, c
egészek.
egész,
(5.5)
A korlátozás és szétválasztás módszerének alapgondolata az, hogy a
feladatot 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 maximumával. Az egyes részfeladatokat további részfeladatokra lehet szétbontani, így a vizsgált feladatok egy fát alkotnak, aminek gyökerében az eredeti feladat található. A részfeladatok relevanciájának vizsgálatához van szükség a korlátozásra.
A korlátozás
azt 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 ismert alsó 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ált optimuma adja, a szétválasztás pedig lineáris egyenl®tlenségek hozzáadásával történik.
A
továbbiakban leírjuk az LP alapú általános algoritmust. Ha van egy ad az
S
S
részfeladatuk,
u(S)
jelöli az LP relaxált optimumértékét, ami fels® korlátot
részfeladat optimum-értékére. Az eredeti feladatunkat
S0
jelöli. Az algoritmus során
kapott 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:
52
1. Inicializálás: Az kiszámolunk egy
S0 feladatot a jelölt-listára tesszük. L alsó korlátot.
2. A jelölt-listáról kiválasztunk egy
S
Valamilyen heurisztikus módszerrel
feladatot, és kiszámoljuk az
u(S)
értéket.
(a) Ha
u(S)
(b) Ha
u(S) ≤ L:
töröljük
(c) Ha
u(S) > L
és az LP relaxáltnak van egész optimális megoldása: megjegyezzük
nem létezik, mert az LP relaxált nem megoldható: töröljük
ezt a megoldást, és (d) Ha
u(S) > L
S -et
S -et
a fából
a fából
L := u(S)
és az LP relaxáltnak nincs egész optimális megoldása: legyen
x∗
egy
∗ 0 00 optimális megoldás, ahol xi nem egész. Válasszuk szét S -t S és S részfeladatokra, 0 ∗ 00 ∗ ahol S -t az xi ≤ bxi c feltétel, S -t pedig az xi ≥ dxi e feltétel hozzávételével kapjuk 0 00 S -b®l. Adjuk S -t és S -t a jelöltlistához (és legyenek ®k S gyerekei a fában).
S -t
3. Töröljük
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. Persze
nem tudjuk minden lehetséges szétválasztásra kiszámolni, hogy milyen fels® korlátokat adna, 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észfeladatokon
teszünk néhány lépést a duál szimplex módszerrel. Az így kapott fels® korlátokat hasonlítjuk össze.
Hányados módszer:
Csak egy lépést teszünk a duál szimplex módszerrel, ez
pedig bizonyos hányadosok kiszámolását jelenti. Ha az
xi ≤ bx∗i c
egyenl®tlenséget
vesszük a rendszerhez, a célfüggvény csökkenése egy duál szimplex lépés után
d0j {di0 }, j∈N :dij >0 dij min
N a nem-bázis változók halmaza. ∗ az xi ≥ dxi e egyenl®tlenséget vesszük
ahol Ha
a rendszerhez, a célfüggvény csökkenése
egy duál szimplex lépés után
d0j ({di0 } − 1). j∈N :dij <0 dij min
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. Megjegyezzük, hogy a jó szétválasztás a fa gyökerének a közelében igazán fontos. Ha a 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étel
hozzávételével.
• Hogyan válasszuk ki a jelölt-listáról a vizsgálandó feladatot? lehetséges, a hasznosságuk a feladat típusától függ.
53
Itt is több módszer
Best rst:
A legmagasabb fels® korlátot adó részfeladatot választjuk. Ennek az
az 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 kapunk hamar megengedett megoldást, másrészt össze-vissza ugrálunk a fában, így nem tudjuk 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. Itt
az egymás után vizsgált részfeladatok hasonlóak és hamar megengedett megoldást kapunk, de az össz-lépésszám sokkal több lehet mint Best rst-nél.
5.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 minden ré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 a
korlátozás és szétválasztás módszerébe, a következ®képpen: amikor egy részfeladathoz jutunk, az ®t leíró lineáris rendszeren futtatunk meghatározott ideig egy vágósíkos algoritmust. 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 deniálására.
• Alsó korlátok számolása:
Sokszor az egyes részfeladatoknál a fels® korlát kiszámolása
mellett alsó korlátokat is érdemes számolni.
Ezt valamilyen egyszer¶ heurisztikával
tehetjük meg (mohó algoritmus, kerekítés, lokális keresés).
5.2.3 Alkalmazás a bináris hátizsák-feladatra Nézzünk egy bináris hátizsák-feladatot:
max{
n X j=1
cj xj :
n X
aj xj ≤ b, x ∈ {0, 1}n }.
j=1
A feladatnak két tulajdonsága van, ami miatt a korlátozás és szétválasztás módszere egyszer¶södik:
•
A hátizsák-feladat LP relaxációja nagyon egyszer¶en megoldható: fajlagos érték szerinti sorrendben 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.
•
Ha bizonyos változók értékét 0-ra vagy 1-re rögzítjük, továbbra is bináris hátizsákfeladatunk 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ásul
az 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.
54
•
A szétválasztás során keletkezett feladatok is hátizsákfeladatok, hiszen egy változót rögzítünk 0-ra vagy 1-re. Így az LP minden részfeladatnál könnyen megoldható lesz, s®t egyre 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
5.3
Lagrange-relaxáció
Bevezet®.
5.3.1 Lagrange-duális feladat Tekintsük a következ® feladatot.
zIP := max cx
(5.6)
Ax ≤ b Dx ≤ d x ahol az
A, D, b, d, c
egész,
komponensei egészek. Vezessük be a következ® jelölést:
X := {x ∈ Zn : Dx ≤ d}. A most következ® eljárás motivációjaként tegyük fel, hogy az
X
halmazon könnyen ki tudjuk
számítani tetsz®leges lineáris célfüggvény optimumát (például minimális súlyú feszít®fa, vagy há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, de
ne elégedjünk meg most ennyivel, valamelyest ügyeljünk a teljesülésére. Tegyük a következ®t: legyen
λ ≥ 0
tekintsük a
b dimenziójával megegyez® dimenziójú következ®, λ-paraméter¶ Lagrange-feladatot : egy, a
vektor, és a rögzítése mellett
Lagrangefeladat
L(λ) := max cx + λ(b − Ax)
(5.7)
x ∈ X. Azt mondjuk, hogy az
5.2 lemma. esetén
Ax ≤ b
feltételeket relaxáltuk, és beépítettük a célfüggvénybe.
Amennyiben a (5.6) feladatnak van optimális megoldása, akkor tetsz®leges
λ≥0
zIP ≤ L(λ).
Bizonyítás.
2
Trivi.
Az el®z® lemma fényében érdemes megkeresnünk a legjobb fels® korlátot, azaz tekintsük a következ®, Lagrange-duális feladatot:
Lagrange-duális feladat
zLD := min L(λ) λ ≥ 0.
55
(5.8)
Amenyiben
X = {x1 , . . . xm }
L : Rm → R
véges halmaz, akkor az
függvény a következ®
alakban is írható.
L(λ) = max (cxi + λ(b − Axi )).
(5.9)
i=1,...m
Vegyük észre, hogy az
L
függvény lineáris függvények ún. fels® burkolója, következésképp
konvex és szakaszonként lineáris
1 Mindebb®l az is következik, hogy a nagyon sok feltétellel
rendelkez® lineáris program optimuma
zLD ! min β
(5.10)
β ≥ cxi + λ(b − Axi )i = 1, . . . m. A 5.2 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 ≤ −γ ,
akkor ekvivalens módon járunk el, ha az
ax = γ
ax ≤ γ
és
feltételt tetsz®leges el®jel¶
együtthatóval építjük a célfüggvénybe.
5.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.
5.3 tétel (Georion, 1974).
A Lagrange-duális feladat
zLD
optimuma megegyezik a következ®
lineáris program optimumával:
max cx
(5.11)
Ax ≤ b x ∈ conv(X).
Bizonyítás. zLD = min max{cx + λ(b − Ax) | x ∈ X} λ≥0
= min max{cx + λ(b − Ax) | x ∈ conv(X)} λ≥0
Ha
X = ∅, akkor a bels® maximum −∞ minden λ ≥ 0 esetén, és ekkor zLD = −∞. Különben xk ∈ Rn , k ∈ K , és rj ∈ Rn , j ∈ J , a conv(X) poliéder csúcsai és extrém irányai.
legyenenek
Ekkor a bels® maximum
max{cx+λ(b−Ax) | x ∈ conv(X)} = Ebb®l következik, hogy ha
zLD
∞ cxk + λ(b − Axk )
véges, akkor
zLD
(c − λA)rj > 0 valamely rj -re k valamely x csúcsra ha
= min max cx + λ(b − Ax ) λ
k
k
k∈K
(c − λA)rj ≤ 0, ∀j ∈ J λ≥0 1
Szögletes parabola, ahogyan a diáknyelv szellemeskedi.
56
Ezt átírhatjuk egy lineáris programra
zLD = min β β,λ
β ≥ cxk + λ(b − Axk ), ∀k ∈ K (c − λA)rj ≤ 0, ∀j ∈ J λ≥0 A lineáris programozás dualitás tételét használva kapjuk, hogy
zLD = max c
X
uk xk +
vj r j
j∈J
k∈K
X
X
uk = 1
k∈K
A
X
k
uk x +
X
vj r
j
! ≤b
j∈J
k∈K
X
uk
k∈K
uk , vj ≥ 0, ∀k ∈ K, ∀j ∈ J. Ez utóbbi viszont éppen
2
max{cx | Ax ≤ b, x ∈ conv(X)}.
Az eredeti feladat lineáris programozási relaxáltjának nevezzük a következ® feladatot.
zLP := max cx
(5.12)
Ax ≤ b Dx ≤ d x ∈ Rn . A 5.3 tétel következménye az alábbi.
5.4 Következmény. zIP = zLD conv(X
zLP = zLD
minden
c
minden
c
költségfüggvényre pontosan akkor teljesül, ha
∩ {x : Ax ≤ b}) = conv(X) ∩ {x : Ax ≤ b},
költségfüggvényre pontosan akkor teljesül, ha conv(X)
= {x : Dx ≤ d}.
5.3.3 A szubgradiens-módszer Az alábbiakban ismertetjük a szubgradiens-módszert szakaszonként lineáris konvex függvény minimumának megkeresésre, aztán megmutatjuk, hogy ez hogyan alkalmazható a Lagrangeduális feladat optimumának megkeresésére. A következ® lemmát bizonyítás nélkül felhasználjuk.
5.5 lemma. létezik olyan
f : Rn → R függvény s ∈ Rn vektor, melyre Az
pontosan akkor konvex, ha tetsz®leges
f (x) ≥ f (x∗ ) + s(x − x∗ ) teljesül minden
x ∈ Rn
esetén.
57
x∗ ∈ Rn
ponthoz
f x∗ -beli szubgradiensének nevezzük. Az x∗ -beli szub∗ gradiensek halmazát pedig ∂f (x ) jelöli. ∗ ∗ ∗ (Amennyiben f dierenciálható x -ban, könnyen látható, hogy ∂f (x ) = {∇f (x )}.) n A továbbiakban tekintsük a következ® R → R lineáris függvényeket: A lemmában szerepl®
s
vektort az
x 7→ hi + fi x, ahol
hi , fi ∈
Rn , és
i = 1, 2, . . . m.
Ezen függvények fels® burkolója:
Z(x) := max hi + fi x. i=1,...m
Legyen
E(x) := {i : Z(x) = hi + fi x}.
Világos, hogy
Z
Z
konvex függvény.
szubgradienseir®l
szól az alábbi.
5.6 lemma.
Minden
Bizonyítás.
A bizonyítás házi feladat a Farkas-lemma segítségével!
i ∈ E(x∗ )
index esetén
fi ∈ ∂Z(x∗ ).
Továbbá
∂Z(x∗ ) =
conv(fi
:i∈
E(x∗ )).
Most megadjuk az általános szubgradiens algoritmust, amely az
2 f
függvény minimumát
határozza meg.
Általános szubgradiens-algoritmus
•
Válasszunk egy kezd®
•
Iteratív lépés:
x1
pontot.
xi+1 := xi − αi si ,
ahol
si ∈ ∂f (xi ), αi
pedig egy pozitív
lépéshossz.
•
Leállási kritérium:
0 ∈ ∂f (xi ),
azaz minimumhelyhez jutottunk.
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ének
megadása miatt célszer¶ egyre csökkenteni. (Amennyiben
P∞
i=1 αi divergens,
hoz konvergál, megmutatható, hogy a fenti algoritmus konvergálni fog az
f
αi
pedig a 0-
minimumhelyéhez.
Ámde a tapasztalat szerint ekkor elég lassú a konvergencia.) A továbbiakban megadjuk szubgradiens-módszer (5.9) minimalizálására szolgáló módosítását.
Szubgradiens-algoritmus
•
Válasszunk egy kezd®
•
Iteratív lépés: optimális
λ1
értéket.
λi+1 := max(λi − αi (b − Ax(λi )), 0), ahol x(λi ) 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
a (5.9) feladat
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 0ra való változtatással kerüljük el. Meg kell még mutatnunk, hogy valóban egy szubgradienssel ellentétes irányba lépünk.
5.7 állítás. b − Ax(λi ) ∈ ∂L(λi ). Bizonyítás.
2
Könnyen látható.
58
5.4
Benders dekompozíció
A Benders dekompozíció (Benders,
1962) f®leg olyan vegyes programozási feladatoknál
haszná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 nehezebb részre, itt a változókkal tesszük ezt. A következ® feladatot szeretnénk megoldani:
min cx + f z Ax + Bz ≥ b x ∈ Rn+ z ∈ Zd Rögzített
z ∈ Zd
vektorra tekinthetjük a következ®
LP (z)
alfeladatot:
min cx + f z Ax ≥ b − Bz x ∈ Rn+ A duális
D(z)
feladat:
max y(b − Bz) + f z yA ≤ c y ∈ Rm + 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, és r1 , . . . , rk a Q extrém irányai (csúcs biztos van, extrém irány nem feltétlenül). Ha egy ri extrém irányra ri (b − Bz) > 0, akkor a D(z) feladat célfüggvényértéke nem korlátos, tehát az LP (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: Legyen
min α
(5.13)
f z + qi (b − Bz) ≤ α
(i = 1, . . . , k)
(5.14)
ri (b − Bz) ≤ 0
(i = 1, . . . , l)
(5.15)
d
z∈Z A
(5.14)
egyenl®tlenségeket
(5.16)
optimalitási
megengedettségi feltételeknek nevezzük.
feltételeknek,
míg
a
(5.15)
egyenl®tlenségeket
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 tudunk oldani, és utána egyesével veszünk hozzá optimalitási vagy megengedettségi feltételeket. Ez e következ®képpen történik. 1. Megoldjuk a csökkentett f®feladatot. Optimális megoldás:
α
alsó korlát az eredeti feladat optimumára.
2. Megoldjuk az
•
Ha
LP (z)
LP (z)-nak
és
D(z)
feladatokat.
az optimumértéke
α,
kész vagyunk.
59
(z, α).
Figyeljük meg, hogy
•
Ha az optimumérték szigorúan nagyobb mint mális csúcsa. Ekkor a f®feladatban a
(z, α)
α,
legyen
qi
a
D(z) feladat optiqi -hez tartozó
megoldás nem teljesíti a
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 , amire ri (b − Bz) > 0. Ekkor a f®feladatban a (z, α) megoldás nem teljesíti az ri -hez tartozó 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 alfeladat optimumértéke közel van
α-hoz,
LP (z)
akkor az optimumhoz is közel van.
Alkalmazás a Szolgáltató-elhelyezési feladatra Tekintsük a Szolgáltató-elhelyezési feladatot (1.0.5. fejezet) abban az esetben, ha a telephelyek tetsz®legesen nagy kapacitásúak lehetnek:
min
XX
cij xij +
i∈M j∈N
X
fj zj
(5.17)
j∈N
feltételek
X
i∈M
xij = 1,
(5.18)
j∈N
− xij + zj ≥ 0, x∈ Rögzített
z¯ ∈ {0, 1}n
Rmn + ,
i ∈ M, j ∈ N n
z ∈ {0, 1} LP (¯ z) XX
mellett tekintsük az
LP (¯ z ) = min
(5.19) (5.20)
feladatot:
cij xij +
i∈M j∈N
X
fj z¯j
(5.21)
j∈N
feltételek
X
i∈M
xij = 1,
(5.22)
j∈N
− xij ≥ −¯ zj , x∈ Ez szétesik
|M |
i ∈ M, j ∈ N
Rmn +
(5.23) (5.24)
darab, egymástól független LP-re:
LP i (¯ z ) = min
XX
cij xij
(5.25)
i∈M j∈N feltételek
X
xij = 1,
(5.26)
j∈N
− xij ≥ −¯ zj , xij ≥ 0, Adott
i∈M
esetén
LP i (¯ z)
j∈N
j∈N
(5.27) (5.28)
duális feladata:
max ui −
X
vij z¯j
(5.29)
j∈N
ui − vij ≤ cij , vij ≥ 0,
j∈N 60
j∈N
(5.30) (5.31)
k = Q = {(ui , v) ∈ Rn+1 | v ≥ 0, ui − vij ≤ cij } poliédernek |N | csúcsa van: (uki = cik , vij + (cik − cij ) , j ∈ N ), ahol k ∈ N . Ezen túl van egy végtelen iránya is: (ui = 1, vij = 1, j ∈ N ). i z ) megoldható, a.cs.a ha A végtelen irány alapján az LP (¯ X 1− z¯j ≤ 0. (5.32) A
j∈N A csúcsok pedig meghatározzák az optimum értékét, tehát
LP i (¯ z ) = max(cik − k∈N
X
(cik − cij )+ z¯j ).
(5.33)
j∈N
cik költséggel szolgáljuk ki az i fogyasztót < cik , vagy kisebb költségen (z¯ij = 1, és
Figyeljük meg, hogy a (5.33) azt fejezi ki, hogy vagy
= 1, és z¯j = 0 minden j ∈ N esetén, ha cij cij < cik ). Mindezeket összerakva kapjuk a Szolgáltató X X min αi + fj zj (z ¯k
i∈M
elhelyezési feladat Benders alakját: (5.34)
j∈N
feltételek
cik −
X
(cik − cij )+ zj ≤ αi ,
k ∈ N, i ∈ M
(5.35)
j∈N
X
zj ≥ 1,
(5.36)
z ∈ {0, 1}n .
(5.37)
j∈N
Vegyük észre, hogy összesen
5.5
nm + 1
feltételünk van, ami polinomiális az input hosszában.
Oszlopgenerálás
5.5.1 Többtermékes folyamok Jól tudjuk, hogy a maximális folyamproblémára jobbnál jobb kombinatorikus algoritmusok adható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 a
legegyszer¶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 negatív
G = (V, E) irányított gráf, az (si , ti ) pontpárok i = 1, 2, . . . k , és a nemce élkapacitások minden e ∈ E élen. Továbbá adottak a di igények is minden
i-re. Minden
Az
i-edik
(si , ti )
i-re
keressünk
xi di
érték¶ folyamot úgy, hogy minden
e
élre
Pk
i i=1 xe
≤ ce .
párok természetesen különböz®ek, és a hozzájuk tartozó folyamot nevezzük az
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éket vesznek 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 heurisztikus algoritmust kidolgoztak.
61
Lagrange relaxáció Nézzük a feladat költséges változatát, amikor minimális költség¶ többtermékes folyamot keresünk. Tekinthetjük a feladatnak azt a Lagrange-relaxációját, ahol a kapacitás-feltételeket relaxáljuk és építjük be a célfüggvénybe. tok, tehát az nem más mint
k
Az így kapott feladatban nincsenek fels® korlá-
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ában minimális költség¶ út kereséssel megoldhatók. A 5.3. Fejezetben leírtak szerint a Lagrange duális feladat megoldása kiszámolható (legalábbis közelíthet®) szubgradiens módszerrel. A szubgradiens kiszámolása a mi esetünkben egyszer¶: meg kell nézni, hogy az egyes éleken mennyivel lépjük túl a kapacitást, ha a legrövidebb utakon szállítjuk a termékeket. A módszer kicsit nomítható: ugyan a
Pk
i i=1 xe
feltételeket benne hagyhatjuk a rendszerben.
≤ ce
feltételeket relaxáljuk, de az
Ekkor a Lagrange feladat
k
xie ≤ ce
darab független
minimális költség¶ folyam feladat lesz, tehát nehezebb kiszámolni, viszont a szubgradiens algoritmus 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 5.3.
Tétel alapján ez az optimum megegyezik az eredeti feladat LP relaxáltjának
optimumával, azaz az optimális tört többtermékes folyam költségével.
Ford-Fulkerson algoritmus A továbbiakban a súlyozatlan törtváltozat megoldására ismertetjük Ford és Fulkerson 1958bó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 megoldása.
δxi (v) − %xi (v) = 0 ∀i = 1, 2, . . . k, v ∈ V − {si , ti } δxi (si ) − %xi (si ) = di k X
xie ≤ ce
(5.38)
∀i = 1, 2, . . . k ∀e ∈ E
i=1
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áris
program ahhoz, hogy belátható id® és tár felhasználásával megoldhassuk.
Ezen probléma
lekü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 azokat a részeit, amikre szükség lesz.) Amennyiben létezik
di
érték¶
xi (si − ti )-folyam,
akkor létezik egy
(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
y i ≤ xi
folyam is, amely
el®áll
ni k X X
P
zij χe ij ≤ ce
minden
i=1 j=1 ni X
zij = di
j=1
62
∀ i,
ekvivalens (5.38)-tel.
e ∈ E,
(5.39)
zij ≥ 0 ahol
χP
a
P
∀ i, j,
út élekre vonatkozó karakterisztikus vektorát jelöli.
Most fogalmazzuk meg maximalizálási feladatként (5.39)-t.
k darab új pontot s01 , s02 , . . . s0k , és k darab új irányított élet: s01 s1 , s02 s2 , . . . s0k sk rendre a d1 , d2 , . . . dk kapacitásokkal. Erre a gráfra felírva a (5.39) feltételeket a változók Adjunk a gráfhoz
nemnegativitása mellett keressük
ni k X X
zij
i=1 j=1 maximumát. Amennyiben ez a maximum
Pk
i=1 di , akkor az eredeti feladatnak is van megol-
dása, különben pedig nincs. Ez tehát ekvivalens az alábbi lineáris programmal, ahol
P
jelöli az összes
(si , ti )-út
hal-
mazát.
X
xP χPe
≤ ce
∀ e ∈ E,
(5.40)
≥ 0 ∀ P ∈ P, X max xP .
(5.41)
P ∈P
xP
P ∈P Adjunk minden kapacitási megszorítást jelent® sorhoz egy fölöslegváltozót, jelöljük az él-út illeszkedési mátrixot, és
w ∈ RE×P
A-val
pedig legyen az a vektor, mely minden úthoz
tartozó komponensében 1, az élekhez tartozó komponensében pedig 0.
[A I]x = c
(5.42)
x≥0 max wx 0 Tegyük fel, hogy P
⊆ E olyan részhalmazok, melyekre |P 0 | + |E 0 | = |E|, és a hozzájuk tartozó B -vel jelölt [A I] oszlopok lineárisan függetlenek. Jelölje B a kiválasztott indexeket. Ekkor a B bázishoz tartozó bázis-megoldásnak nevezzük azt az x-et, amely a nem B -beli indexekben 0, a többiben pedig a BxB = c egyértelm¶ megoldása. ⊆P
0 és E
Most megmutatjuk, hogy a szimplex algoritmus hogyan valósítható meg oly módon, hogy ne kelljen felírnunk magát a teljes
A
mátrixot, amely oszlopainak a száma rettenetesen nagy
(sok-sok út darabszáma). (5.42) 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®rizhetjük. El®ször oldjuk meg a ez az
y
B -hez
tartozó program
yB ≥ wB
duálisát, majd ellen®rizzük, hogy
megengedett megoldása-e (5.42)-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ás nemnegatív marad, és iteráljuk az eljárást.
B -ben benne nem ye változó nemneg-
Kétféle duális feltétel van, hogyan ellen®rizhetjük ezek teljesülését? A lév® élekhez tartozó
I -beli
oszlopokból származó feltétel egyszer¶en ezen
ativitását mondja ki. Ezt könny¶ ellen®rizni, és ha találunk negatív érték¶ változót, akkor az legyen a bázisba bemen® oszlop indexe, és majd megmondjuk, nemsokára, hogy ezt a bevitelt hogyan valósítjuk meg. A
B -ben nem lév® utak rengetegen vannak. P útra az yχP skaláris szorzat vajon 1-nél
adott
63
Egyesével nem tudjuk ellen®rizni, hogy egy nagyobb-egyenl®-e. De szerencsére egyszerre
ez 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ájutunk olyan
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ók meg, 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
Bx = 1e egyenletet, ha pedig a bejöv® index Bx = χP egyenletet. A Bz = c megoldása után a
élhez tertozik, akkor oldjuk meg a
egy úthoz tartozó
P,
akkor pedig a
szimplex módszernél tanult hányados-módszer segítségével kiválaszthatunk egy olyan indexet, amelyhez tartozó oszlop
Bx = c
B -b®l
való törlésével és a meghatározott oszlop hozzávételével a
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 a leí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 hasonlóan ciklizálhat, de ennek el®fordulására vajmi kevés az esély, illetve a szimplex-módszernél alkalmazott lexikograkus választási szabály alkalmazásával ez itt is elkerülhet® (ahogyan azt Chvátal 1983-ban bizonyította).
12 feladat.
Mutassuk meg, hogy a többtermékes folyam feladatnak a di igények mellett akkor l ∈ RE + hosszfüggvényre teljesül a következ®
és csak akkor van megoldása, ha minden
k X
di · distl (si , ti ) ≤
i=1 ahol distl (si , ti ) az
si -b®l
a
ti -be
X
l(e) · c(e),
e∈E vezet®
l
szerinti legrövidebb irányított út hosszát jelöli. (Út-
mutatás: Használjuk a Farkas-lemmát!)
5.5.2 Egydimenziós szabási feladat Ennél
a
feladatnál
W
hosszúságú
papírtekercseink
vannak,
darabokat kell vágni, minél kevesebb tekercset felhasználva. papírból
bi
darabra van szükség (i
= 1, . . . , m).
Nevezzük az
amikb®l
adott
Tegyük fel, hogy
m
hosszúságú
wi
hosszú
különböz® hosszú papírt
tí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ásokat szabásmintáknak). Figyeljük meg, hogy a lehetséges felvágások pont egy egészérték¶ hátizsák feladat 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 teljesen má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 egy
adott szabásmintához tartozó oszlopában az szerepel, hogy melyik típusból hányat ad. Ez az
A
mátrix nagyon nagy, úgyhogy az algoritmus során sosem fogjuk használni, de a feladatot
ennek segítségével írjuk fel:
min
n X
xj
j=1
Ax ≥ b x≥0 x
egész.
64
Ennek a feladatnak a lineáris relaxáltját fogjuk megoldani az oszlopgenerálás módszerével:
min
n X
xj
j=1
Ax ≥ b x ≥ 0. Ha a
bi
számok viszonylag nagyok, akkor a lineáris relaxált optimális megoldásából általában
könnyen kapható egy jó egészérték¶ megoldás. Probléma viszont, hogy a feladatnak nagyon sok változója van. Ezért el®ször kiválasztunk néhány szabásmintát, és megnézzük hogy csak ezeket használva mi a legjobb megoldás. Legyen
A0
a kiválasztott szabásmintákhoz tartozó
oszlopokból álló részmátrix. Ekkor a feladatunk:
Primál:
Pn min j=1 xj A0 x ≥ b x ≥0
Duál:
Pm max i=1 bi yi yA0 ≤ 1 y ≥ 0. 0
Ezt szimplex módszerrel meg tudjuk oldani, és kapunk egy optimális primál megoldást (x )
0
és egy optimális duál megoldást (y ).
0 Persze x nem feltétlenül optimális megoldása az eredeti feladatunknak. Annyit tudunk 0 hogy ha y megoldása az eredeti feladat duálisának, tehát ya ≤ 1 minden a szabásmintára, akkor
x0
optimális.
Látszólag nem jutottunk el®rébb, hiszen hogy tudnánk ezt az összes
lehetsé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 X
m X
yi zi :
i=1
wi zi ≤ W, z ≥ 0.}
i=1
Hátizsákfeladat megoldására ismerünk módszereket, ezek valamelyikét használva kapunk egy optimális
z
a oszlopával, hiszen A-ban az ya ≤ 1, akkor kész vagyunk, az x0 optimális 0 Ha ya > 1, akkor hozzávesszük az a oszlopot az A mátrixot, és ezzel az új mátrixvektort, ami megegyezik az
A
összes lehetséges szabásminta szerepelt. megoldás.
mátrix valamelyik
Ha
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álja az optimális megoldást.
5.6
Graver-féle teszthalmaz
Ezt a módszert akkor használhatjuk, ha sok különböz® feladatot akarunk megoldani, amiknek a mátrixa ugyanaz, csak a változók korlátjában és a jobboldalban térnek el. Deniáljunk egy feladatosztályt:
IP (b, c, u) = min{cx : Ax = b, 0 ≤ x ≤ u, x ∈ Zn }. Jelölje
Oj
az
Rn j -edik
ortánsát
egy csúcsos racionális kúp, tehát
5.8 deníció.
A
H = ∪j Hj
(j = 1, . . . , 2n ). Legyen Cj = Oj ∩ {x ∈ Rn : Ax = 0}, van egy Hj egyértelm¶ minimális Hilbert-bázisa.
halmazt a feladatcsalád Graver teszthalmazának nevezzük.
65
ez
A teszthalmaz elnevezést az indokolja, hogy egy adott megoldásról a teszthalmaz segítsé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.
5.9 tétel. amire
Ha az
x+h
Bizonyítás.
IP (b, c, u)
feladatnak egy
x
megoldása nem optimális, akkor létezik
h ∈ H,
jobb megoldás.
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 a P Cj egész eleme, el®áll Hj -beli vektorok nemnegatív egész kombinációjaként: x∗ −x = ki1 λi hi , 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 xj − xj ≥ 0 esetén 0 ≤ hj ≤ xj − xj , xj − xj ≤ 0 esetén ∗ ∗ pedig 0 ≥ hj ≥ xj − xj , tehát 0 ≤ x + h ≤ u következik abból, hogy 0 ≤ x, x ≤ u. 2 Legyen
Természetesen Ha
H
H
lehet exponenciális méret¶, tehát ez a módszer nem mindig hatékony.
nem túl nagy, akkor is nehéz kiszámolni, de ezt csak egyszer kell megtenni, és utána a
feladatosztály tetsz®leges feladatára használhatjuk.
66
Chapter 6
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+
élhosszak
esetén a legrövidebb olyan körnek a megkeresése, amely a gráf minden pontján áthalad. Ezt a kört a gráf legrövidebb Hamilton-körének vagy optimális (utazóügynök-) túrájának fogjuk nevezni. Természetesen megfogalmazható az a feladat is, amikor az más az él hossza, mint a
v -b®l
az
u-ba
u
pontból
v -be
haladva
haladva. A továbbiakban mi csak a fenti, úgynevezett
szimmetrikus 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ég is, 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 olyan
körnek a megkeresése, amely a gráf minden pontján áthalad.
Feltesszük, hogy
c
teljesí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éle mér®számmal is jellemezhetjük. Legkézenfekv®bbnek látszik a matematikai viselkedés, azaz megadni, 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ások optimummal 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éle heurisztikákat ezen feladatokra adott megoldásaik alapján jellemezhetjük úgy, hogy a TSPLIB mér®számuk azon számok átlaga, ahányszorosát a TSPLIB-feladatok optimumának adják. Ez a mér®szám adja meg legjobban, hogy egy konkrét feladatra várhatóan milyen jól m¶ködik egy heurisztika, vagy akár a saját magunk által kidolgozott algoritmus.
6.1
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ünk tovább mindig egy legközelebbi pontba, ahol még nem jártunk.
Végül egy
n-hosszú
utat
kapunk, és kényszer¶ségb®l lépjünk a kiindulópontunkba. Ennek az algoritmusnak a TSPLIB mér®száma 1.26. (Esetleg indíthatjuk tetsz®leges pontból is az algoritmust.)
67
(Ezen módszer nem meglep® módon igen kacifántos bejárásokat ad annak ellenére, hogy lokálisan a legjobb továbblépést választja. Nagyon könnyen kihagy ugyanis pontokat, amiket a túra utolsó pontjainak meghatározásakor csak igen nagy költségekkel jár be.)
6.2
Túranövel® módszerek
Az alábbi heurisztikák mind úgy m¶ködnek, hogy kiválasztanak valamilyen szabály szerint egy kiindulási élet, aztán hozzávesznek egy pontot, három pontból álló túrát kapva így. A továbbiakban, ha van már egy kisebb túránk, akkor valamilyen szabály szerint kiválasztják a következ® beszúrandó pontot (ez a szabály különbözteti meg ezen algoritmusokat), és beszúrják a túrába azon két pont közé, amellyel a túra hossza a lehet® legkevesebbel n®, azaz megkeresi azon két, a meglév® túrában egymás után kövektkez®
s
u, v
pontot, amelyre a beszúrandó
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 legkö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ól
legtá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 a
túrában nem szerepl® pontok beszúrása mekkora túrahossz-növekedést eredményez. Azt a 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öldi körülmények között. Erre magyarázat talán, hogy a végs® túra hozzávet®leges alakját már elég korán megtaláljuk, és aztán már csak kicsi változások történnek. (Persze ennyire azt is meg tudnánk indokolni, ha bármely másik beszúrási módszer m¶ködne jobban a többinél.)
6.1 tétel (Rosenkrantz, Stearns, Lewis, 1977).
A legközelebbi pont beszúrási heurisztikája által
az utazóügynök feladatra adott megoldás hossza az optimális megoldás legfeljebb
Bizonyítás.
Prim feszít®fa algoritmusát (11.3 fejezet) használjuk.
F feszít®fa és c(T ) ≤ 2c(F ). Mivel
2-szerese.
Megmutatjuk, hogy a
T
Prim algoritmusa által adott
a vizsgált heurisztika által szolgáltatott
hosszára teljesül, hogy
az optimális túra hosszánál nem lehet hosszabb
túra
egy 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
2c(F 0 ) összefüggés mindig fennáll az azonos pontszámú
T 0 résztúra és
c(T 0 ) ≤
F 0 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, akkor vegyük észre, hogy a fa és a kis túra ponthalmaza megegyezik, az új pont hozzávételekor pedig a háromszög-egyenl®tlenség szerint legfeljebb kétszerannyival n® a fa hossza, mint a túráé, ugyanis ha
v
a beszúrandó pont, amely a
T 0 -ben a
T0 u
pontjához van legközelebb, amelyet
w pont követ, akkor az F 0 -höz v -t hozzávéve c(F 0 ) éppen a c(uv) értékkel növekszik, 0 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 a 68
minimális növekménnyel való beszúrás szabálya miatt a
T0
hossza legfeljebb ennyivel n®, ami
2
2c(uv).
a háromszög-egyenl®tlenség szerint legfeljebb
6.2 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.
A tétel bizonyításához több állításon keresztül vezet az út.
6.3 lemma.
A
G = (V, E)
minden csúcsához hozzárendelünk egy
`v ≥ 0
számot, amely
teljesíti a következ? két feltételt: (i)
c(uv) ≥ min{`u , `v },
`u ≤ 12 OP T . P 1 Ekkor v∈V lv ≤ 2 (dlog2 ne + 1)OP T . (ii)
Bizonyítás.
`1 ≥ `2 ≥ · · · ≥ `n . Legyen Vk = {1, . . . , min{2k, n}}, és Ek a Vk csúcsok által
A csúcsok átsorszámozásával feltehetjük, hogy
Hk = (Vk , Ek )
G-nek,
részgráfja
ahol
feszített összes él.
T egy túra Hk -ban, amely ugyanolyan sorrendben látogatja végig a Hk csúcsait, G-feletti optimális túra. Ekkor c(T ) ≤ OP T a háromszög egyenl®tlenség miatt. P Továbbá léteznek olyan αv ∈ {0, 1, 2}, v ∈ Vk , számok, amelyekre v∈Vk αv = |Vk |, és P c(T ) ≥ v∈Vk αv `v . Ugyanis Legyen
mint egy
X
c(T ) =
X
c(uv) ≥
uv∈T
min{`u , `v } =
uv∈T
X
α v `v ,
v∈Vk
ahol az els® egyenl®tlenség az (i) feltételb®l következik, és a második peddig abból, hogy egy
v ∈ Vk
csúcshoz a túrának 2 éle illeszkedik.
Mivel
P
v∈Vk
αv = |Vk |,
ezért
min{2k,n}
X
X
α v `v ≥
v∈Vk Legyen
k = 2j .
i=k+1
Ekkor kapjuk, hogy
dlog2 ne−1
dlog2 ne−1
min{2(j+1) ,n}
X
X
X
j=0 Mivel
2`i .
`1 ≤ 12 OP T
OP T ≥
2
j=0
`i ≥
n X
2`i .
i=2
i=2j +1
az (ii) feltétel miatt, kapjuk a
(dlog2 ne + 1)OP T ≥
n X
2`i ,
i=1
2
és ezt akartuk bizonyítani.
T egy részleges túrája G-nek (azaz túra G egy részgráfjában), δ(T, v) a minimális túra-hossz növekedést a v csúcs hozzávételével.
Legyen Jelölje
6.4 lemma.
Legyen
T
egy részleges túrája
G-nek, v ∈ / T, u ∈ T. 69
Ekkor
és
v ∈ / T
csúcs.
δ(T, v) ≤ 2c(uv).
Bizonyítás.
Ha v az u és w csúcsok közé kerülne T -ben, akkor a túra hossza c(vu) + c(vw) − c(uw)-val növekszik. Mivel c(vw) − c(uw) ≤ c(uv) a háromszög-egyenl®tlenség miatt, c(vu)+c(vw)−c(uw) ≤ 2c(uv). Mivel a δ(T, v) a minimális növekedés mértéke, ezért δ(T, v) ≤ c(vu) + c(vw) − c(uw) ≤ c(uv). 2
Most már jöhet a 6.2. Tétel bizonyítása:
v1 , v2 , . . . , vn a csúcsok beszúrási sorrendje egy T túra építése során, (v1 , v2 ) a Ti az els® i csúcs beszúrásával nyert részleges túrát, azat T1 egy hurokél, T2 két párhuzamos él, stb. Legyen `vi = 21 δ(Ti−1 , vi ), i = 2, . . . , n, és `v1 = 0. Megmutatjuk, hogy az `v súlyok teljesítik a 6.3. Lemma feltételeit. / Ti−1 , és Az `v1 nyilván teljesíti az (i) feltételt, mivel c(uv1 ) ≥ 0 = `v1 . Másrészt, mivel vi ∈ beszúráskor a vi csúcsot a legkisebb hossznövekedés alapján illesztjük a Ti−1 részleges túrába, ezért δ(Ti−1 , vi ) ≤ 2c(vi u) minden u ∈ Ti , az el®z® Lemma alapján. Tehát `v ≤ c(vi u), amib®l következik, hogy c(vi u) ≥ `vi ≥ min{`vi , `u }. Tehát az (i) teljesül minden {vj , vi } élre, ahol j < i. Mivel az összes csúcs sorra kerül a túra építése során, ezért (i) teljesül. Most nézzük az (ii) feltételt. `v1 = 0 miatt v1 teljesíti. v2 esetében δ(T1 , v2 ) = 2c(v1 , v2 ) ≤ OP T , mivel az optimális túra tartalmazza a v1 és v2 csúcsokat valamilyen sorrendben, tehát a háromszög egyenl®tlenség miatt a v1 -b®l a v2 -be vezet® darabja nem rövidebb, mint c(v1 , v2 ), és a v2 -b®l a v1 -be vezet® része nem rövidebb, mint c(v2 , v1 ). Mivel c(v1 , v2 ) = c(v2 , v1 ), így 2c(v1 , v2 ) ≤ OP T . Általában δ(Ti−1 , vi ) = c(vj vi ) + c(vi vk ) − c(vj vk ), valamely vj , vk ∈ T csúcsokra (amelyek közé beszúrtuk vi a túra építése során). Csakhogy az optimális túra hossza fels® becslés a c(vk vi ) + c(vi vj ) összegre, mivel mindhárom csúcsot az optimális túra Legyen
kezdeti él. Jelölje
végiglátogatja, és a háromszög egyenl®tlenségb®l következik a fels® becslés. De ez azt jelenti, hogy
6.3
δ(Ti−1 , vi ) ≤ OP T ,
amib®l következik, hogy
2
`vi ≤ 21 OP T .
Túrajavító módszerek
Ha már ismerünk egy Hamilton-kört, akkor abból könnyen kaphatunk újabbakat is, hátha rövidebbekhez juthatunk.
6.5 deníció. hogy
Egy T túrát 2-optimálisnak nevezünk, ha tetsz®leges uv , ab élpárjára 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} ∪ {ub, av}
T − {uv, ab} ∪ {ua, bv}
teljesül,
nem túra (azaz két diszjunkt kör), akkor
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, hogy egy
T
túra 2-optimális-e,
O(n2 ) id®t igényel, ám a fenti algoritmus mégsem polinomiális, azaz
nem feltétlenül áll le polinomiális id® alatt. TSPLIB: 1.06. A fentiekhez hasonlóan meg tudunk fogalmazni is. De mivel
k
növekedtével a
k
k -optimális túrákat, és k -opt algoritmusokat
él eltörlése után a különböz® lehet®ségek száma, amikor túrát
kapunk, nagyon gyorsan n®, ezen algoritmusokat ritkán alkalmazzuk. optimális túrát vizsgálunk, 3-optimális-e. 3-opt TSPLIB: 1.04.
70
Például csak már 2-
k = 2 →1 k = 3 →4 k = 4 → 20 k = 5 → 148 k = 6 → 1358 k = 10 → 51290496
6.4
Christodes heurisztikája
Christodes 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, hogy
ezek 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
által feszített súlyozott részgráf ) minimális súlyú teljes párosítását, jelöljük ezt Most nézzük az
F ∪M
G[W ] (a W M -mel.
páratlan fokúak. Keressük meg
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ának erre illeszked® egymás utáni két élét egy éllel helyettesítjük. Az így kapott gráfban továbbra is van Euler-séta. Ilyen m¶veleteket csinálunk egészen addig, amíg túrát nem kapunk.
6.6 tétel
.
Az algoritmus által az utazóügynök feladatra adott megoldás 3 hossza az optimális megoldás legfeljebb 2 -szerese. (Christodes, 1976)
Bizonyítás. G[W ]
Legyen
Topt
Tudjuk, hogy
c(F ) ≤ c(Topt ).
Tekintsük a
W pontjainak Topt -beli sorrendje ad. A háromszögc(TW ) ≤ c(Topt ). Mivel TW el®áll mint W két teljes párosításá3 nak uniója, M deníciójának értelmében 2c(M ) ≤ c(Topt ), azaz c(T ∪ M ) ≤ c(Topt ). Megint 2 a háromszög-egyenl®tlenség miatt a végs® túra súlya is legfeljebb c(T ∪ M ), így bebizonyítottuk a tételt. 2 gráfnak azt a
TW
egy optimális túra.
túráját, amit a
egyenl®tlenség teljesülése miatt
6.5
Lin és Kernighan heurisztikája
Ebben a fejezetben az általában legjobban m¶köd® utazóügynök bejárást adó heurisztikák alapsémájával ismerkedünk meg. Az elgondolás Lint®l és Kernighant®l származik 1973-ból.
6.7 deníció. vn+1
v1 , e1 , v2 , e2 , . . . , vn , en , vn+1 n pontú és n él¶ gráfot δ -útnak = vi valamely 1 ≤ i ≤ n értékre, és minden más pont különböz®.
Ha
P
egy
A
δ -út,
akkor jelölje
T (P )
a
P -b®l
az
en = vn vn+1
él eltörlése és az
hozzávételével kapott túrát. A Lin-Kernighan-algoritmus, amint látni fogjuk, segítségével keres egyre rövidebb bejárásokat.
71
nevezzük, ha
e0n = vn v1
él
δ -utak sorozata
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 hajtsuk
végre a 25. lépést.
2. lépés: (Élkeresés inicializálása) törlésével, és egy olyan
w0
u0 w0
u0 := u. P 0
pont, akkor az Élkeresésnek vége.
δ -út, melyet T -b®l az u0 v él c(u0 w0 ) ≤ c(u0 v). Ha nincs ilyen
legyen az a
hozzáadásával kapunk, melyre
i := 0.
i 3. lépés: (Túrateszt) Ha c(T (P )) kisebb, mint az eddig talált legjobb túra hossza, akkor i T (P )-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 wi ui+1 T -nek nem éle, akkor ugorjunk az 5. lépésre. Különben keressünk olyan wi+1 pontot, amelyre ui+1 wi+1 nem éle T -nek, és c(P i − wi ui+1 + ui+1 wi+1 ) ≤ c(T ). Ha nincs ilyen pont, akkor i+1 := P i − w u ugorjunk az 5. lépésre. Különben legyen P i i+1 + ui+1 wi+1 , i := i + 1, és ugorjunk 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 -ben
nem 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®bb befejezzük az élkeresést, remélve, hogy még jobb túrákat találunk a már felépített struktúra segí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ültekint®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ási tú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 adott legjobb túrán végrehajtunk egy véletlenszer¶ 4-cserét, és azzal iteráljuk az algoritmust. Magyarázatként az szolgálhat, hogy a 4-cserék annyira megváltoztatják egy adott túra szerkezeté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. Persze a 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.
6.6
Feladatok
13 feladat.
3 Mutassuk meg, hogy Christodes heurisztikájának m¶ködésére adott 2 -es fels® korlát nem javítható.
14 feladat.
Mutassuk meg, hogy amennyiben a Lin-Kernighan-algoritmus során minden le-
hetséges élet hozzávehetünk a optimális, azaz
T -n
δ -utakhoz,
akkor az algoritmus lefutása után kapott
a 3-opt algoritmus nem változtat.
72
T
túra 3-
Chapter 7
Az utazóügynök feladat alsó korlátjai Amennyiben nem tudjuk el®re feladatunk optimális megoldását, nem tudjuk azt sem, hogy a kapott heurisztikus megoldásunk mennyire jó, azaz mennyire van közel az optimális megoldáshoz. Mivel a TSPLIB feladataira már ismertek javarészt az optimális megoldások, arra nagyon 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. Ezen teend®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 jobb alsó 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ó korlá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).
7.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át adja a minimális feszít®fa hossza.
Most ennél egy lehelletnyit kinomultabb alsó korlátot
adunk, amib®l azonban egy igen használható módszer születik.
G = (V, E) teljes gráf a c : E → R+ élsúlyozással. Legyen v1 ∈ V egy A a v1 -re illeszked® két legolcsóbb él költségének az összege, B pedig a v1 elhagyása utáni gráf minimális feszít®fájának a súlya. Ekkor A + B az utazóügynök feladat Adott tehát a
rögzített pont. Legyen egy alsó korlátja.
1-fa
korlát
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 a G − v1 gráf minimális költség¶ feszít®fájának a költsége.
A
Ezzel a korláttal egyáltalán nem lehetünk elégedettek, hiszen elképzelhet®, hogy az 1-fa korlátot adó élhalmaz alakja nagyon távol esik az utazóügynök túráktól, például nagyon nagy fokú pontok lehetnek a feszít®fában, és ennek következtében nagyon sok els®fokú pont is létezhet. Ezen viszont valamelyest tudunk segíteni a következ® módon. Válasszunk ki egy, a
G-ben rá illeszked® él súlyát növeljük meg M -mel. Mi tö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 a fá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 a pontokon egy súlyfüggvény. Legyen C a következ® új élsúlyozással kapott 1-fa korlát: minden fában nagyfokú
v
pontot, és minden, a
73
e = uv ∈ E
élre
c¯e := ce − yu − yv .
7.1 állítás (Held és Karp korlátja). C + 2
P
v∈V −v1
yv
az eredeti utazóügynök feladat egy alsó
korlátja.
2
Az P
állítás bizonyítása abból adódik, hogy az új súlyozás mellett minden túra hossza
v∈V
yv
értékkel csökken.
HeldKarp-korlát
G = (V, E) teljes gráfban a a c : E → R+ élhosszak esetén adott a v1 ∈ V pont, P y : V − v1 → R súlyfüggvény. A C + 2 v∈V −v1 yv összeget az y súlyozáshoz tartozó HeldKarp-korlátnak nevezzük, ahol C a c ¯e := ce −yu −yv élsúlyozású gráfban az 1-fa korlát. A
és az
A korlát nagy el®nye abban rejlik, hogy újabb és újabb pontsúlyozásokat tekintve jelent®sen
dF (v) a v pont fokát az meg az yv pontsúlyozást
javítható. Held és Karp 1971-ben az alábbi módszert javasolta: jelölje
F
1-fa korlátot adó élhalmazban, és minden
a következ®képpen:
ahol
t
v
ponton változtassuk
yvúj := yv + t(2 − dF (v)),
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 magasabbfokú 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) HeldKarp-korláthoz konvergálnak, bár az nem igaz, hogy szigorúan monoton n®ne a sorozatuk. (Persze az nem világos, hogy miért is létezik legjobb HeldKarp-korlát, ezt csak a következ® fejezetben bizonyítjuk.)
7.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égrendszert.
x(δ(v)) = 2 ∀v ∈ V
(7.1)
xe ∈ {0, 1} ∀e ∈ E.
(7.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= ∅.
(7.3)
Ezek fényében az alábbi feladatot az utazóügynök feladat lineáris programozási relaxáltjának nevezzük.
min
X (ce xe : e ∈ E)
(7.4)
x(δ(v)) = 2 ∀v ∈ V
(7.5)
x(δ(S)) ≥ 2 ∀S ⊂ V, S 6= ∅
(7.6)
0 ≤ xe ≤ 1 ∀e ∈ E.
(7.7)
Az nem igaz, hogy tetsz®leges célfüggvényre ezen lineáris programnak létezne egész megoldása. A feladat optimumának meghatározása tehát csak egy alsó korlátot ad az optimális
74
utazóügynök bejárás hosszára. Ezen alsó korlátot meghatározó módszert aztán beépíthetjük korlá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 (7.6) feltételeket, amelyeket résztúra feltételeknek hívunk, az alábbiakkal helyettesítve ekvivalens feladathoz jutunk.
x(γ(S)) ≤ |S| − 1 ∀S ⊂ V, S 6= ∅.
(7.8)
Ugyanis igaz a következ®:
x(δ(S)) + 2x(γ(S)) =
X
x(δ(v)),
v∈S ami (7.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 egy heurisztikus eljárást szolgáltat.
7.2 tétel.
A lineáris porgramozási alsó korlát megegyezik az optimális Held-Karp-korláttal.
Bizonyítás.
v1
Jelöljünk ki egy rögzített
pontot.
Vegyük észre, hogy az alábbi feladat a
(7.4) LP-relaxálttal ekvivalens.
min
Ha elhagyjuk a
v1 -re
X
(ce xe : e ∈ E)
(7.9)
x(δ(v)) = 2 ∀v ∈ V
(7.10)
x(γ(V − v1 )) = |V | − 2
(7.11)
x(γ(S)) ≤ |S| − 1 ∀S ⊂ V − v1 , S 6= ∅
(7.12)
0 ≤ xe ≤ 1 ∀e ∈ E.
(7.13)
illeszked® élekhez tartozó változókat és a (7.10) feltételeket, akkor
a maradék rendszernek a 11.10 tétel (11.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:
(7.12), (7.11), (7.13), x(δ(v1 )) = 2}
(7.14)
A pontokra írt súlyokhoz a (7.9) feladat duálisának az elemzésével jutunk. Könnyen látható, hogy a (7.13) feltételben az
xe ≤ 1
következik a megel®z® feltételekb®l, így azt a duális
elkészítésében nem is szerepeltetjük. A duálisban tehát az 1-fa feladat feltételein kívül szerepel minden
v ∈ V − v1 ponthoz egy yv vátozó. A duális egy optimális megoldásában jelöljük ezen yv∗ -gal. Amennyiben a szóbanforgó változók értékét a megadott értékekre
változók értékét
rögzítjük, akkor a többi változó az alábbi lineáris program optimális megoldását adja.
min
X
(cuv − yu∗ − yv∗ )xuv
uv∈E
x
teljesíti a következ®ket:
(7.12), (7.11), (7.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 (7.9) feladat optimális megoldása megegyezik a pontokra írt feladat megoldásával. (Ahol a
v1
yv∗
súlyokkal vett 1-fa
pont súlya 0.)
A másik irány bizonyításához vegyük észre, hogy tetsz®leges pontsúlyozással a (7.9) feladat duálisának egy megengedett megoldását kapjuk, amelynek a célfüggvényértéke megegyezik a
2
súlyozáshoz tartozó Held-Karp-korláttal.
75
7.3
Oszlopgenerálós megoldás
Held és Karp heurisztikája, amint azt az el®z® fejezetben láttuk, egyben a lineáris programozási alsó korlátra is számol egy heurisztikus becslést. Milyen problémákkal szembesülünk, ha közvetlenül szeretnénk megoldani a lineáris programozási relaxáltat, azaz az alábbi feladatot?
min
X
(ce xe : e ∈ E)
(7.15)
x(δ(v)) = 2 ∀v ∈ V
(7.16)
x(δ(S)) ≥ 2 ∀S ⊂ V, S 6= ∅
(7.17)
0 ≤ xe ≤ 1 ∀e ∈ E.
(7.18)
Az els® jelent®s akadályt az jelenti, hogy rengeteg feltételt tartalmaz a feladat: a (7.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 is felírni ugyanazt a lineáris egyenl®tlenséget, élhetünk az így is majdnem
2|V |−1
|S| ≤ |V |/2
megszorítással de még
darab feltételünk marad.
A továbbiakban ismertetjük a Dantzig, Fulkerson, Johnson szerz®hármas fenti nehézség legy®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ó (7.15), (7.16), (7.18) feladatot. Ha óriási véletlen folytán a kapott megoldás egy Hamilton-kör karakterisztikus vektora, akkor meg is oldottuk a TSP feladatunkat. Ha nem, akkor keressünk olyan (7.17)-beli feltételeket, amelyeket megsért a kapott optimális megoldás, és vegyük a feladathoz ezeket is. Ha nem találunk ilyen feltételeket, akkor megoldottuk a relaxált feladatot.
Következ® lépésként oldjuk meg
a 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 a hó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 (7.17) résztúra-feltételeket, és hogyan oldjuk meg a folytonosan el®álló lineáris programokat. Az els® nehézséget egy egyszer¶ folyamproblémával tudjuk kezelni. élkapacitásokkal megkeressük a
G = (V, E)
Nevezetesen az
x∗
gráf minimális súlyú vágását, és amennyiben ez
2-nél nagyobb, akkor minden feltételt teljesít
x∗ ,
ha pedig kisebb, akkor olyan vágásokat is
kapunk, amelyekre nem teljesül (7.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 Nagamochi és Ibaraki 1992-b®l származó algoritmusa, amit a 11.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 olyan nagy számú változóval szembesülünk, amit már nem tudunk kezelni. A Négy Bill Könyvének sokat emlegetett chip-bejárási példáján például 687 368 darab változót tartalmazó feladathoz jutunk. 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 összes változóval dolgozni, számolni, hanem csak egy részükkel, és majd fokozatosan azokat a változókat vegyük a feladathoz, amelyekre szükség lesz. Tegyük fel, hogy választottunk egy
E0 ⊆ E
élhalmazt, amelyre az alábbi
G0 = (V, E 0 )-re
vonatkozó LP-feladatnak van megoldása.
min
X
(ce xe : e ∈ E 0 )
x(δE 0 (v)) = 2 ∀v ∈ V
76
(7.19)
x(δE 0 (S)) ≥ 2 ∀S ⊂ V, S 6= ∅ 0 ≤ xe ≤ 1 ∀e ∈ E 0 . 0
(E -re jó választás például néhány (10 darab?)
túra, amelyet a Láncolt Lin-Kernighan
algoritmus ad.)
x0 megoldása kiterjeszthet® a (7.15) feladat egy := 0, e ∈ E − E 0 deniálásával. Igaz-e, hogy x∗ a (7.15)
(7.19) egy optimális
∗ oldásává az xe
megengedett
x∗
meg-
optimális megoldása?
Általában persze nem.
x∗
optimalitásának ellen®rzéséhez tekintsük a (7.19) feladat lineáris programozási duálisát:
X X max (2yv : v ∈ V ) + (2YS : S ⊂ V, S = 6 ∅) X yu + yv + (YS : uv ∈ δ(S), S ⊂ V, S 6= ∅) ≤ cuv ∀ uv ∈ E 0 ,
(7.20) (7.21)
YS ≥ 0 ∀ S ⊂ V, S 6= ∅. Legyen
y0, Y 0
(7.22)
ennek egy optimális megoldása. Ha ez megengedett megoldása a (7.15) duális
megoldásának is, azaz annak a feladatnak, amelyet a (7.21)-ben
E0
helyett
E -vel
kapunk,
∗ akkor bizony x az eredeti (7.15) feladatnak, azaz a lineáris programozási relaxáltnak is op0 0 timális megoldása. Ha nem ez a helyzet, akkor vegyük hozzá E -höz azokat az e ∈ E − E éleket, amelyekre (7.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 tudjuk oldani a lineáris programozási relaxáltat, esetleg nem.
7.4
Vágósíkok Q a túrává kiegészíthet® élhalmazok konvex burka. Mivel a teljes gráfot tekintjük, n dimenziós poliéder. Az utazó ügynök feladat megoldásában sokat segít, ha ennek a
Legyen ez egy
poliédernek minél több lapját ismerjük. Mindenesetre néhány lapot könnyen kaphatunk az eddig tekintett egyenl®tlenségekb®l:
• xe ≥ 0
lap, mert a
{0, χf (f 6= e)}
vektorhalmaz an független, és egyenl®séggel
teljesítik.
• xe ≤ 1
lap, mert a
{χe , χ{e,f } (f 6= e)}
vektorhalmaz an független, és egyenl®séggel
teljesítik.
• x(δ(v)) ≤ 2
lap, de ezt már kicsit nehezebb belátni.
sorrendjét, hogy
n − 1), χ{e2 ,e3 } ,
Vegyük az éleknek egy olyan
δ(v) = {e1 , . . . , en−1 }, és {e1 , e2 , em } kör. χ{e1 ,e2 ,ej } (n ≤ j ≤ m − 1), és χ{e1 ,e3 ,em }
Ekkor a
χ{e1 ,ej } (2 ≤ j ≤
vektorok an 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 nak. Ha
n ≤ 5,
2 ≤ |U | ≤ n − 2
x(E[U ]) ≤ |U | − 1 is lapja Qn ≥ 6 esetén van. Az alábbiakban
esetén
akkor a fentieken kívül nincs is más lap, de
megmutatjuk, hogyan lehet további, bonyolultabb lap-osztályokat kapni.
77
7.4.1 Fés¶-egyenl®tlenségek A
G = (V, E) gráf pontjainak néhány H ⊂ V kitüntetett halmazt
részhalmazát fés¶nek nevezzük, ha teljesítik a követke-
z®ket. A
a fés¶ nyelének nevezzük, a
H ∩ Ti 6= ∅, Ti − H 6= ∅
páronként
k ≥ 1 valamely egész szám.
diszjunkt, nemüres halmazokat pedig a fés¶ fogainak, ha megköveteljük, hogy
T1 , T2 , . . . T2k+1
Továbbá
teljesüljön.
A következ® tétel Chvátaltól (1973) és Grötschelt®l és Padbergt®l származik (1979).
7.3 tétel.
Legyen
C
H
egy fés¶ a
Ti
nyéllel és a
fogakkal,
i = 1, 2, . . . 2k +1.
Ekkor tetsz®leges
Hamilton-kör karakterisztikus vektora teljesíti a következ® egyenl®tlenséget.
x(γ(H)) +
Bizonyítás. Ekkor
x
2k+1 X
2k+1 X
i=1
i=1
(x(γ(Ti )) ≤ |H| +
x ∈ RE
Tegyük fel, hogy
(|Ti | − 1) − (k + 1)
(7.23)
egy tetsz®leges Hamilton-kör karakterisztikus vektora.
teljesíti (7.5),(7.6),(7.7)-et, továbbá
2x(γ(H)) + 2
2k+1 X
(x(γ(Ti )) =
i=1
=
X
x(δ(v)) − x(δ(H)) +
2k+1 X
(x(γ(Ti ∩ H))+
i=1
v∈H
+
≤
X
2k+1 X
2k+1 X
2k+1 X
i=1
i=1
i=1
(x(γ(Ti − H)) +
x(δ(v)) − x(δ(H)) +
v∈H
≤
X v∈H
x(δ(v)) +
(x(δ(Ti , H)) +
(x(γ(Ti )) ≤
2k+1 X
2k+1 X
2k+1 X
i=1
i=1
i=1
(x(γ(Ti ∩ H)) +
(x(γ(Ti − H)) + x(δ(H)) +
2k+1 X
2k+1 X
2k+1 X
i=1
i=1
i=1
(|Ti ∩ H| − 1) +
= 2|H| + 2
(|Ti − H| − 1) +
(x(γ(Ti )) ≤
(|Ti | − 1) =
2k+1 X
(|Ti | − 1) − (2k + 1),
i=1 ahol a második egyenl®tlenségnél (7.8)-t használtuk, a rákövetkez® egyenl®ségnél pedig (7.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 nem kisebb páratlan számnál eggyel kisebb páros szám sem kisebb nála. Kett®vel való osztás után
2
adódik (7.23).
Az el®z® tétel az jelenti, hogy a (7.4) poliéderre vonatkozóan a (7.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 teljesíti-e az összes fés¶-egyenl®tlenséget.
78
x
7.4.2 Virág-egyenl®tlenségek Ebben a fejezetben megismerkedünk a fés¶-egyenl®tlenségek egy részcsaládjával, amelyek esetében el tudjuk dönteni ezt a kérdést. Ha a fés¶nek minden foga kételem¶ halmaz, akkor a (7.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ök feladat esetén eldönti egy
x
vektorról, hogy teljesíti-e az összes virág-egyenl®tlenséget, és ha
nem, akkor meg is ad egyet.
x ∈ RE +,
Adott tehát egy
amely teljesíti a (7.16) egyenl®tlenségeket.
Ekkor a virág-
egyenl®tlenség
x(γ(H)) + x(A) ≤ |H| +
|A| − 1 2
(7.24)
a következ® alakba is írható:
x(δ(H) − A) − x(A) ≥ 1 − |A|.
(7.25)
Ugyanis (7.16) szerint a bal oldal a következ®képp alakítható:
=
1 2
x(γ(H)) + x(A) = ! X
x(δ(v)) − x(δ(H))
+ x(A) =
v∈H
1 1 = |H| − x(δ(H) − A) + x(A). 2 2 (7.25)-t az alábbi alakba írva azt kell meghatározni, hogy van-e olyan kilép® éleken a súlyok összege ahol egy párosításon, azaz az
A
H
halmaz, amelyb®l
élhalmazon
xe
helyett
1 − xe
súllyal számolva kisebb mint 1.
x(δ(H) − A) + (|A| − x(A)) ≥ 1. Ezt a következ® segédgráfban a minimális
T -vágás
(7.26)
meghatározásával (l.
11.6 fejezet) el
tudjuk dönteni. Legyen
G0
G-b®l töröljük azokat az éleket, amelyekre xe = 0. A maradék e = uv élet ve0 -vel és ve00 -vel. Az uve0 és a vve00 élek súlya pedig legyen 1 − xe . A T álljon az új pontok halmazából
a következ® gráf.
élek mindegyikét osszuk fel két új ponttal: az súlya maradjon
xe ,
a
ve0 ve00
él
(T elemszáma nyilván páros.) Tegyük fel, hogy az
S
0 a G
H -nak
x ∈ RE
megsérti a
H, A
párhoz tarozó virág-egyenl®tlenséget. Álljon
G H -ban feszített H -beli végponelemszámú), és az S -b®l
megfelel® pontjaiból, továbbá azon új pontokból, amelyek a
H -ból kilép® A-beli élekre került Ekkor S nyilván T -vágás (azaz S ∩ T
éleire kerültek, továbbá a
új pontok közül a
thoz közelebbiekb®l.
páratlan
0 kilép® G -beli élek összsúlya
x(δ(H) − A) + (|A| − x(A)), ami tehát kisebb, mint 1, azaz a minmimális
0 Megfordítva, ha a G -beli minimális
G-ben,
amelyre vonatkozóan
minimális
T -vágást,
x
T -vágás
T -vágás
(7.27)
értéke is kisebb 1-nél.
értéke kisebb mint 1, akkor létezik
H, A
pár
megsérti a virág-egyenl®tlenséget. Tekintsünk ugyanis egy
S
amelynek az értéke tehát kisebb, mint 1. Mivel egy G-beli élb®l csinált 3
hosszú út két szomszédos élének összsúlya 1, nem léphetnek ki egyszerre S-b®l; másrészt a 3 hosszú út két széls® éle sem léphet ki, mert akkor a két középs® csúcs átrakásával egy kisebb
T -vágást
S -b®l. S -b®l.
kapnánk. Tehát minden ilyen 3 hosszú útnak legfeljebb 1 éle lép ki
azokból a
G-beli
élekb®l, amikhez tartozó 3 hosszú út középs® éle lép ki
79
Álljon
A
A komponensei legfeljebb kétél¶ek (azt akarjuk elérni, hogy egyél¶ek legyenek, hiszen Egy kétél¶ komponens középs® pontjainak az U -ba való be-, illetve kirakásával olyan minimális T -vágást kapunk, amelyhez tartozó A élhalmaz elemszá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 A Ekkor
ekkor kapunk virágegyenl®tlenséget).
nem lehet egyelem¶, l. 15 feladatot.) Ennél fogva egy adott
x-r®l
a
G0 -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 segítségével meg is tudunk adni egy
S, A
T -vágás
párt, amelyre nem teljesül, és ezen vágásnak az
egyenletrendszerhez való hozzávételével az eljárást folytatva az utazóügynök feladat egyre jobb alsó korlátjához jutunk.
7.5
Feladatok
15 feladat.
A lineáris programozási relaxált feladat tetsz®leges megoldására
a fés¶-egyenl®tlenségek automatikusan teljesülnek.
Ugyanez igaz
|A| = 1
k = 0
esetén
esetében a virág-
egyenl®tlenségekre.
7.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án meggy®zhetjük magunkat vagy a megrendel®nket, hogy a Láncolt LinKernighan Algoritmus segí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 optimá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 megkeresésében is. Tegyük fel, hogy adott a szokásos módon a
T
a
G
összes túrájának a halmazát.
ha minden
T ∈T
túrára
c(T ) ≥ K
G = (V, E)
teljes gráf a
c
élsúlyozással. Jelölje
Az utazóügynök feladat egy alsó korlátja a
K
szám,
teljesül. A lineáris programozási alsó korlát, és aztán a
vágósíkok keresésével rendelkezünk egy eljárással, amely alsó korlátot számol. Amennyiben a
T egy T0 ∪ T1 partíciójára tudunk mondani egy-egy alsó korlátot, azaz meg tudunk határozni K0 és K1 alsó korlátokat, melyekre c(T ) ≥ K0 minden T ∈ T0 esetén, és c(T ) ≥ K1 minden T ∈ 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élhetjük, hogy egyre nagyobb alsó korláthoz jutunk, ugyanis elképzelhet®, hogy alsó korlát szá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ásokkal továbbjavított változatát), akkor a fenti eljárásnak a következ®képp képzelhet® el egy megvalósítása. Kiindulásunk a bet.
P
probléma, amely tehát a összes túra
T
halmazában kérdezi a legrövideb-
T -t, hogy egy e él kiválasztása után T0 az e élet nem T1 pedig az e-t tartalmazó túrák halmaza. Legyen P0 és legrövidebb túrák hosszának a meghatározása. Ekkor a P -re
Kézenfekv® úgy kettévágnunk
tartalmazó túrák halmaza legyen,
P1
a megadott halmazokban a
vonatkozó alsó korlátot számoló lineáris programot egyszer¶en ki kell egészíteni az els® eset-
xe = 0, a második esetben az xe = 1 feltétellel, illetve a T1 -re vonatkozó alsó korlátokat kapunk.
ben az
T0 -ra,
80
amelyek megoldása után valóban a
Ezután válasszunk ki egy még nem vizsgált problémát (például tározandó
f
él szerint bontsuk tovább a
T0
P0 ), és aztán egy meghaP00 és P01 problémákat.
halmazt, el®állítva így a
A problámáknak az ily módon való kettéosztogatása ábrázolható egy bináris fával, amelynek pontjaiban a problémák szerepelnek. Hogyan korlátozzunk? Azaz hogyan számoljuk az alsó korlátokat. Erre már megadtuk a választ: a lineáris programozási relaxálttal, illetve további vágósíkokkal. (Kiegészítés: mivel a vá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 minden más problémára is alkalmazhatóak (lásd 7.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 megközelítés létezik.
Egyik kézenfekv® hozzáállás az, amikor mindig a legkisebb alsó korlátot
adó problémát választjuk ki, hiszen ekkor fog eséllyel tovább n®ni a pillanatnyilag legjobb alsó korlát, azaz a levelek alsó korlátainak minimuma. (Mivel így a fa növekedése nagyon kiegyensúlyozott lehet, igen sok probléma tárolására kerülhet sor, ami komoly méret¶ tárhelyet igé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 (5.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?
Mivel
a legnagyobb változásokban vagyunk érdekeltek, ezért megfelel® választásnak t¶nik a kiválasztott 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 legnagyobb együ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 probléma lineáris programozási relaxáltjának megoldása közben egyszer csak egy túra karakterisztikus 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.
81
Chapter 8
Egészérték¶ programozás x dimenzióban Ebben a fejezetben megmutatjuk, hogy x dimenzióban az egészérték¶ programozási feladat polinom id®ben megoldható. Bináris feladatnál ez persze könny¶, hiszen
d
dimenzió esetén
d csak végig kell nézni a 2 lehet®séget. De általános esetben korántsem ilyen egyszer¶ a dold gunk: ha M egy fels® korlát a változókra, akkor M lehet®séget kellene végignézni, de az input lehet hogy csak
O(log M )
hosszú.
A módszer, amit ismertetni fogunk, nagy vonalakban úgy írható le, hogy az LP relaxált legalább
α
célfüggvény-érték¶ megoldásai vagy egy sovány poliédert alkotnak, és akkor a
poliédert alacsonyabb dimenziós szeletekre vághatjuk, vagy kövér poliédert alkotnak, és könnyen találunk egész megoldást. A poliéderek testalkatának precíz deniálásához azonban szükség van a rácsok elméletére, úgyhogy el®ször ezzel foglalkozunk.
8.1
Rácsok
Dení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
8.1 tétel.
Egy
L ⊆ Rn
B
az
L
rács egy bázisa.
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.
B ∈ Rn×d d rangú mátrix, akkor L = L(B) diszkrét n részcsoport (az nyilvánvaló, hogy részcsoportja R -nek. Egészítsük ki B -t új oszlopokkal −1 mátrix elemeinek legnagyobb abszolút nemszinguláris mátrixszá, legyen ez Q. Jelölje α a Q −1 z , amib®l a |λ | ≤ αnkzk becslés adódik (i = értékét. Adott z = Qλ ∈ L-re λ = Q 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, El®ször lássuk be, hogy ha
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
tartalmazó legsz¶kebb altér egy bázisa, és legyen
X = {x ∈ Rn : x =
d X
λi gi , 0 ≤ λi ≤ 1(i = 1, . . . , d)}.
i=1
82
az
L-t
Az
X
halmaz korlátos, tehát az
X ∩L
g1 , . . . , gd -t
halmaz véges. Válasszuk meg
L-beli
az egész együtthatós kombinációikként el®álló
úgy, hogy
pontok halmaza tartalmazásra nézve
maximális.
8.2 állítás. X ∩ L = {0}. Bizonyítás. P
az
X ∩L
Indirekt tegyük fel, hogy
d i=1 λi gi
x∗ =
∈ X∩L
tartalmaz nemnulla vektort, és válasszuk azt
nemnulla vektort, aminek az el®állításában
minimális (ilyen van, mert a diszkrétség miatt
k
pozitív együttható. Vegyük azt a
λ
lexikograkusan
X ∩ L véges). Legyen λi a legkisebb index¶ (k − 1)λi < 1, de kλi ≥ 1, és tekintsük a
számot, amire
z = (kλi − 1)gi +
d X
(kλj − bkλj c)gj
j=i+1 rácsvektort. Ennek az együtthatóvektora lexikograkusan kisebb tehát
z
λ-nál kλi − 1 < λi
miatt,
csak a nullvektor lehet. Ez azt jelenti, hogy
∗
gi = kx −
d X
bkλj c)gj ,
j=i+1 azaz ha
gi -t lecseréljük x∗ -ra a bázisban,
thatós kombinációként, ellentmondásban Ha
X ∩ L = {0},
akkor
akkor szigorúan nagyobb halmaz áll el® egész együt-
g1 , . . . , gd
L = L(g1 , . . . , gd ),
tehát
választásával.
2
L
2
rács.
8.3 tétel. a) Ha b) Ha c) Ha
U B B
n×d egy L rács bázisa. Legyen B ∈ R d×d 0 ∈Z unimoduláris, akkor B = BU is bázisa L-nek. 0 és B bázisa L-nek, akkor létezik U unimoduláris mátrix amire 0 0 és B bázisa L-nek, és n = d, akkor | det(B)| = | det(B )|.
Bizonyítás. egy bázisa.
Legyen
B
egy
L
rács bázisa, és legyen
Ekkor van egy egyértelm¶
U
B0
az
L-t
B 0 = BU .
tartalmazó legsz¶kebb altér
invertálható mátrix, amire
B = B0U .
Világos,
0 hogy B pontosan akkor bázisa
L-nek, ha mind U , mind U −1 egész mátrix, hiszen pontosan 0 0 ekkor 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
determinánsra vonatkozó állítás következik abból, hogy A tétel értelmében deniálhatjuk a
U
unimoduláris. A
2
| det(U )| = 1.
det(L) = | det(B)| (B
bázisa
L-nek)
értéket.
Ez a
rács-parallelepipedon térfogata.
8.1.1 Kitér®: ILP feladat alternatív formulációja A ∈ Zm×n egy m rangú mátrix, akkor létezik U unimoduláris AU = [B, 0], ahol B egy reguláris alsó-háromszögmátrix. Ezt nevezzük az A Tudjuk, hogy ha
mátrix, hogy mátrix egész
normál formájának.
8.4 tétel.
Legyen
A ∈ Zm×n
egy
m
rangú mátrix és
AU = [B, 0]
az egész normál formája.
Ekkor
{x ∈ Zn : Ax = b} pontosan akkor nemüres, ha B −1 b ∈ Zm . n −1 b + U z (z ∈ b) Ha {x ∈ Z : Ax = b} nemüres, akkor minden eleme felírható x = U1 B 2 n−m Z ) alakban, ahol U = [U1 , U2 ]. n c) L = {x ∈ Z : Ax = 0} rács, és U2 oszlopvektorai bázist alkotnak. a)
83
max{cx : Ax = b, x ∈ Zn+ } feladatot más lineáris m és c ∈ Zn . rendszerekkel is leírhatunk. Feltesszük hogy A m rangú egész mátrix, b ∈ Z n Legyen F = {x ∈ Z+ : Ax = b}, és legyen az A mátrix egész normál formája AU = [B, 0]. −1 Ha B b nem egész, akkor nincs megoldása a feladatnak, tehát tegyük fel hogy egész. Ekkor ∃x0 ∈ Zn : Ax0 = b, és így Ennek a tételnek a segítségével egy
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 feladatunk
felí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önböz® leírásokat adnak.
8.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 X
µij b∗j ,
j=1 ahol
µij =
bi b∗j . kb∗j k2
Ennek megvannak a következ® jó tulajdonságai:
• hb1 , . . . , bi i = hb∗1 , . . . , b∗i i (i = 1, . . . , d)
(ahol
hx1 , . . . , xk i
az
x1 , . . . , x k
vektorok által
generált altért jelöli),
• b∗1 , . . . , b∗d
páronként mer®legesek,
• kb∗j k ≤ kbj k (j = 1, . . . , d) •
Ha
d = n,
akkor
det(L(b1 , . . . , bn )) =
Qn
∗ j=1 kbj k.
L = L(b1 , . . . , bn ) rácsnak b∗1 , . . . , b∗n isPbázisa, akkor könnyen látható, hogy egy n ∗ ∗ j=1 λj bj vektorhoz a legközelebbi rácspont j=1 bλj ebj , ahol bae az a-hoz legközelebbi
Ha egy
x=
Pn
egész számot jelöli. Általános esetben a legközelebbi rácsvektor probléma NP-nehéz, nagyjából mer®leges bázist, akkor valamennyire közelíteni tudjuk.
de ha találunk egy
Ez motiválja a redukált
bázis fogalmának bevezetését.
Deníció.
Legyen
L = L(b1 , . . . , bn ), és legyen b∗1 , . . . , b∗n
a Gram-Schmidt ortogonalizáció.
b1 , . . . , bn bázis redukált, ha |µij | ≤ 21 minden 1 ≤ j < i ≤ n-re, 3 ∗ 2 ∗ ∗ 2 b) kbi+1 + µi+1,i bi k ≥ kbi k minden i ∈ {1, . . . , n − 1}-re. 4 A
a)
8.5 tétel. a) b) c)
Redukált bázis esetén igaz, hogy
kb∗i+1 k2 ≥ 12 kb∗i k2 (i = 1, . . . , n − 1) (n−1)/4 det(L)1/n kb Q1nk ≤ 2 n(n−1)/4 det(L) i=1 kbi k ≤ 2
84
Bizonyítás.
a) A redukált bázis denícióját használva
3 ∗ 2 1 kbi k ≤ kb∗i+1 + µi+1,i b∗i k2 = kb∗i+1 k2 + kµi+1,i b∗i k2 ≤ kb∗i+1 k2 + kb∗i k2 , 4 4 tehát
kb∗i+1 k2 ≥ 12 kb∗i k2 .
b) Az a) tulajdonságból következik, hogy
kb∗j k2
j−1 j−1 1 1 ∗ 2 ≥ kb1 k = kb1 k2 2 2
Ebb®l
2
det(L) =
n Y
kb∗j k2
j=1
(j = 1, . . . , n).
n(n−1)/2 1 kb1 k2n . ≥ 2
c) A redukált bázis tulajdonságait használva
2
kbi k =
kb∗i k2
+
i−1 X
i−1
µ2ij kb∗j k2
≤
kb∗i k2
j=1
≤ kb∗i k2 + tehát
n Y
1 4
1X ∗ 2 + kbj k 4 j=1
i−1 X j=1
1 2i−j kb∗i k2 = kb∗i k2 (1 + (2i − 2)) ≤ 2i−1 kb∗i k2 4
kbi k2 ≤ 2n(n−1)/2
i=1
n Y
kb∗i k2 = 2n(n−1)/2 det(L)2 .
i=1
2
8.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 új
µij ≤
bázist, aminek az ortogonalizációja ugyanaz, és
1 2 minden
1 ≤ j < i ≤ n-re.
Együttható-csökkent® algoritmus For
i = 2, . . . , n For j = i − 1, . . . , 1 1 Ha |µij | > : bi := bi − bµij ebj ; 2 Számoljuk újra a Gram-Schmidt ortogonalizáció együtthatóit.
b1 , . . . , bn
Return
8.6 állítás. Bizonyítás.
A kapott bázisnál
|µij | ≤
Tegyük fel hogy
1 2
(1 ≤ j < i ≤ n).
l ∈ {2, . . . , n}
és
k ∈ {1, . . . , l − 1}
indexeknél tartunk, és
1 2 , de
µlk > µlj ≤ 12 (j = k + 1, . . . , l − 1). 0 Legyen q1 , . . . , qn az új bázis, és µij az új együtthatók. Ekkor • i
elsetén
qi = bi ,
tehát
qi∗ = b∗i
és
j < i < l-re µ0ij = µij .
• i = l, j = k + 1, . . . , l − 1-re µ0lj = µlj , ugyanaz a vetülete mint bl -nek.
mert
85
bk
mer®leges
b∗j -ra,
és így
bl − bµlk ebk -nak
• i = l, j = k -ra:
ql qk∗ (bl − bµlk ebk )b∗k = = µlk − bµlk e ∗ kqk k kb∗k k2
µ0lk = és ezért
|µ0lk | ≤
1 2.
A fentiekb®l látszik, hogy
8.7 állítás.
az algoritmus további részében már nem módosítjuk.
i < l
Már láttuk, hogy
esetén
qi∗ = b∗i , i > l-re
pedig
qi = bi ,
úgyhogy elég
bizonyítani.
ql∗ = ql −
l−1 X
µ0lj qj∗ = bl − bµlk ebk −
l−1 X
j=1 tehát
2
Az algoritmus során a Gram-Schmidt ortogonalizáció nem változik.
Bizonyítás. i = l-re
µlk -t
ql∗
és
b∗l
különbsége
µ0lj b∗j ,
j=1
hb∗1 , . . . , b∗l−1 i-beli,
de mindketten mer®legesek erre az altérre, tehát
2
egyenl®ek.
Ezt az algoritmust szubrutinként használja a bázis redukció algoritmus. Ez az úgynevezett LLL-algoritmus (Lenstra-Lenstra-Lovász).
Bázis redukciós algoritmus
Input: b1 , . . . , bn ∈ Output: L(b1 , . . . , bn ) redukált bázisa Zn bázis
•
Kiszámítjuk a Gram-Schmidt ortogonalizációt
•
Alkalmazzuk az együttható-csökkent® algoritmust
•
Ha van olyan
i,
bi -t
felcseréljük; vissza az els® lépésre.
•
és
bi+1 -et
hogy
kb∗i+1 + µi+1,i b∗i k2 < 34 kb∗i k2 ,
akkor a legkisebb ilyen
i-re
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 nem bizonyí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 Y i Y
kb∗j k2
i=1 j=1 mennyiségre a következ®k teljesülnek az algoritmus során:
•
Mindig egész szám (ez abból látszik, hogy inánsaként:
Qi
∗ 2 j=1 kbj k
= det(BiT Bi ),
Qi
ahol
∗ 2 j=1 kbj k felírható egy egész mátrix detem-
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
3 4 -ére csökken.
b1 , . . . , bn az qi∗ = b∗i . Azt
A harmadik állításhoz tekintsük a felcserélési lépést, legyen
qQ1 , . . . , qn az Q új bázis. n n ∗ ∗ j=1 kqj k = j=1 kbj k
Ekkor
i < k
és
i > k+1
esetén
hisz ugyanahhoz a rácshoz tartoznak; tehát
∗ kqk∗ kkqk+1 k = kb∗k kkb∗k+1 k. 86
eredeti bázis, és is tudjuk, hogy
Másrészt
qk∗ = bk+1 −
k−1 X
µ0kj b∗j = bk+1 −
j=1 tehát
k−1 X
µk+1,j b∗j = b∗k+1 + µk+1,k b∗k ,
j=1
3 kqk∗ k2 = kb∗k+1 + µk+1,k b∗k k2 < kb∗k k2 . 4
8.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özelebbi
√ nx vektorhoz. Ez NP-nehéz, úgyhogy egy közelít® algoritmust ismertetünk, 2 − 1-szer olyan messze lév® rácsvektort ad, mint az optimális.
elemet egy adott ami legfeljebb
Mivel egy rácshoz tudunk polinom id®ben redukált bázist találni, feltesszük, hogy a rács eleve egy redukált bázissal van megadva.
Legközelebbi vektor közelít® algoritmus
Input: b1 , . . . , bn ∈ Zn Output: b ∈ L, amire
redukált bázis,
x ∈ Qn
kb − xk2 ≤ (2n − 1) min{kq − xk2 : q ∈ L}, n X 1 b−x= λi b∗i ahol |λi | ≤ . 2 i=1
•
Legyen
•
For 1)
2)
xn = x.
i = n, . . . , 1 P σij együtthatók kiszámolása, amikre xi = ij=1 σji b∗j . xi mindig benne lesz a hb∗1 , . . . , b∗i i altérben)
(Ez értelmes, mert
λi = bσii e − σii
xi−1 = xi − bσii ebi + λi b∗i (így xi−1 ∈ hb∗1 , . . . , b∗i−1 i) P P • Return b = ni=1 bσii ebi = x + ni=1 λi b∗i . 3)
Az algoritmus végén
x0 = 0 ,
tehát tényleg
b = x+
Pn
∗ i=1 λi bi , é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.
8.8 állítás. kb − xk2 ≤ (2n − 1) min{kq − xk2 : q ∈ L}. ¯b Bizonyítás. Legyen ¯ Pn
P x-hez legközelebbi rácspont, legyen ¯b − x = ni=1 σi b∗i , valamint ¯ legyen b − b = i=1 αi bi 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 | ≥ 21 . Ebb®l a következ® becsléseket kapjuk: az
n X 1 k¯b − xk2 ≥ kb∗k k2 + λ2i kb∗i k2 , 4 i=k+1
kb − xk2 ≤
k n X 1X ∗ 2 kbi k + λ2i kb∗i k2 4 i=1
i=k+1
Innen az állítás kijön azzal, hogy a redukált bázisnál
87
1≤i≤k
esetén
kb∗i k2 ≤ 2k−i kb∗k k2 . 2
8.2
Polinomiális algoritmus x dimenziós egészérték¶ programozá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 exponenciális, azonban ez x dimenzióban nem okoz gondot. A másik összetev® egy poliéderbe beírt maximális térfogatú ellipszoidot keres® algoritmus. Ezt nem ismertetjük részletesen, csak kimondjuk a tételt a létezésér®l. A bizonyítás történhet ellipszoid módszerrel, vagy bels®pontos algoritmussal. Egy
n-dimenziós
ellipszoid egy
D ∈ Rn×n
nemszinguláris mátrix és egy
d ∈ Rn
vektor
segítségével adható meg:
E = E(D, d) = Az ellipszoid térfogata
8.9 tétel. mátrix és
E
b
x ∈ Rn : (x − d)T D−2 (x − d) ≤
| det(D)|-vel
.
arányos. Az alábbi tételt bizonyítás nélkül használjuk.
P = {x ∈ Rn : Ax ≤ b}
Legyen
1 (n + 1)2
egy korlátos teljes dimenziós poliéder, ahol
P -be (n + 1)E ⊇ P .
egész vektor. Ekkor polinom id®ben megtalálható a
ellipszoid. Erre az ellipszoidra az is teljesül, hogy A továbbiakban feltesszük, hogy a
P = {x ∈ Rn : Ax ≤ b}
A
egész
beírt maximális térfogatú
poliéder teljes dimenziós.
A 8.9. Tételt felhasználva a megengedettségi feladatra adunk algoritmust, azaz annak eldöntésére, hogy van-e
P -nek egész pontja.
Megjegyezzük, hogy ennek segítségével az optimalizálás
is 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ész
pontot, vagy megadunk konstans darab alacsonyabb dimenziós poliédert, amik közül pontosan akkor tartalmaz valamelyik egész pontot, ha az eredeti poliéder tartalmazott.
Dimenzió-csökkent® algoritmus
Input: A ∈ b∈ P = {x ∈ Rn : Ax ≤ b} teljes dimenziós és korlátos Output: z ∈ P ∩ Zn , vagy legfeljebb f (n) darab (n − 1) dimenziós poliéder: P -nek Zm×n ,
Zm ,
pontosan akkor van egész pontja ha ezek valamelyikének van.
•
Kiszámoljuk a
•
Legyen
P 0 = {x ∈ Rn : ADx ≤ b},
•
Legyen
L = L(D1−1 , . . . , Dn−1 ),
P -be
írható maximális térfogatú ellipszoidot: és legyen
ahol
Dj−1
moljuk ki a bázis-redukciós algoritmussal Számozzuk át a
bi
a
L
E(D, d).
p = D−1 d. D−1
mátrix
j -edik
oszlopa.
Szá-
b1 , . . . , bn . q1 , . . . , qn . Szá-
egy redukált bázisát:
vektorokat hossz szerint növekv® sorrendbe:
moljuk ki a Gram-Schmidt ortogonalizációt.
•
A legközelebbi vektor közelít® algoritmussal számoljunk ki egy legközelebbi rácsvektort:
f∈ / P 0:
•
Ha
•
Minden
Legyen
f ∈ L.
Ha
f∈
c = qn∗ /kqn∗ k2 .
k ∈ K = {bcp − kckc, . . . , dcp + kcke}
egészre legyen
Pk = {z ∈ Rn−1 : ADQ(z, k) ≤ b}, ahol
•
Q
Return
a
q1 , . . . , q n
oszlopok által alkotott mátrix.
Pk (k ∈ K ).
88
p-hez közelít®en Df ∈ P ∩ Zn .
P 0 , kész vagyunk, hisz
8.10 állítás. n(n−1) √ max{cx : x ∈ P 0 ∩ L} − min{cx : x ∈ P 0 ∩ L} < (n + 1) n · 2 4 .
Bizonyítás.
Jegyezzük meg, hogy mikor megváltoztatjuk a redukált bázis sorrendjét, akkor
megsz¶nik redukált bázis lenni. Legyen
f −p =
Pn
∗ i=1 λi qi (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, Mivel
f∈ / P 0,
így
kf − pk >
1 ) ⊆ P 0 ⊆ B(p, 1). n+1
1 n+1 , tehát
v u n u1 X 1 1√ nkqn k, < kf − pk ≤ t kqi∗ k2 ≤ n+1 4 2 i=1
tehát
√ 1 1 < (n + 1) n. kqn k 2
A redukált bázisokról bizonyítottak alapján
n Y
kqi k =
i=1
n Y
kbi k ≤ 2
n(n−1) 4
det(L) = 2
n(n−1) 4
n Y
kqi∗ k
≤2
n(n−1) 4
kqn∗ k
i=1
i=1
tehát
2−
n(n−1) 4
n−1 Y
kqi k,
i=1
kqn k ≤ kqn∗ k ≤ kqn k.
Most már készen állunk az állítás bizonyítására:
max{cx : x ∈ P 0 ∩ L} − min{cx : x ∈ P 0 ∩ L} ≤ max{cx : x ∈ B(p, 1)} − min{cx : x ∈ B(p, 1)} c c T T ≤c p+ −c p− = 2kck kck kck n(n−1)
2 2·2 4 = ∗ ≤ kqn k kqn k
n(n−1) √ ≤ (n + 1) n · 2 4 .
2
8.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.
k ∈ Z-re. Mivel kcqn k = 1 és cx ∈ [cp − kck, cp + kck], tehát
8.12 tétel.
x ∈ P 0 ∩ L-re x = Q(z, k) valamilyen z ∈ Zn−1 -re és i < n esetén cqi = 0, cx = k ∈ Z. Az el®z® állítás alapján cx = k ∈ K . 2
Világos, hogy minden
Fix
n-re
van polinomiális algoritmus, ami eldönti, hogy
talál egy ilyen vektort.
89
P ∩ Zn
üres-e, és ha nem,
Bizonyítás.
Hogy rekurzívan használhassuk a Dimenzió-csökkent® algoritmust, azt kell
Pk = {z ∈ Rn−1 : ADQ(z, k) ≤ b} poliéderek is teljesítik a −1 és Q feltételeket. Ehhez az kell, hogy ADQ egész mátrix legyen. Tudjuk, hogy D −1 ugyanannak a L rácsnak a bázisa, így létezik U unimoduláris mátrix, hogy D U = Q. −1 U = AU ∈ Zm×n . Így ADQ = ADD 2
megmutatnunk, hogy a
Megjegyzzés. 5
ahol csak
Kannan megmutatta, hogy olyan dimenzió-csökkent® algoritmus is adható,
O(n ) darab
alacsonyabb dimenziós poliéderre bontjuk a feladatot. Barvinok bebi-
2
zonyította, hogy x dimenzióban a következ® feladat is polinomiálisan megoldható: adott
P
poliéderre számoljuk meg, hogy hány egész pontja van.
8.3
Racionális törtekkel
8.13 tétel. q
és
Legyenek
számok
α1 , . . . , αn
egyidej¶
közelítése
racionális számok, és
0 < ε < 1.
kis
nevez®j¶
Ekkor léteznek
p1 , . . . , pn
egészek, amikre
1 ≤ q ≤ ε−n és
|αi q − pi | ≤ ε
Bizonyítás.
a = (α1 , . . . , αn , εn+1 ),
Legyen
(i = 1, . . . n).
és legyen
L = L(e1 , . . . , en , a).
Ekkor det(L)
=
εn+1 .
b rácsvektor, amire kbk∞ ≤ ε. A b rácsvektor felírható b = p1 e1 + p2 e2 + · · · + pn en + qa alakban, ahol pi (i = 1, . . . , n) és q egészek, és q > 0 mert ε < 1. n+1 q , Ekkor egyrészt bi = pi − qαi , tehát |pi − qαi | ≤ ε (i = 1, . . . , n), másrészt bn+1 = ε −n . tehát q ≤ ε 2 A Minkowski konvex test tétel alapján létezik
8.14 tétel.
Legyenek
α1 , . . . , αn racionális számok, és 0 < ε < 1. p1 , . . . , pn és q egészeket, amikre
Ekkor van polinomiális
algoritmus, ami kiszámol
1≤q≤2
n(n+1) 4
ε−n
és
|αi q − pi | ≤ ε
Bizonyítás. det(L)
=2
Legyen
n(n+1) − 4
a = (α1 , . . . , αn , 2−
n(n+1) 4
(i = 1, . . . n). εn+1 ),
és legyen
L = L(e1 , . . . , en , a).
Ekkor
εn+1 .
L rács b1 , . . . , bn+1 redukált bázisát, és legyen b = b1 . Ekkor kbk ≤ 2 (L) = ε. A b rácsvektor felírható b = p1 e1 + p2 e2 + · · · + pn en + 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 = Számoljuk ki az
n 4 det
2−
n(n+1) 4
1 n+1
εn+1 q ,
tehát
q≤2
n(n+1) 4
2
ε−n .
90
Chapter 9
Közelít® algoritmusok Legyen
α≥1
valós szám. Egy minimalizálási feladatra egy algoritmus
nomiális futási idej¶, és tetsz®leges inputra az output értéke legfeljebb
α-közelít®,
ha poli-
α-szorosa az optimális-
nak. Ennek persze csak nemnegatív célfüggvény esetén van értelme.
9.1
2-közelít® algoritmus minimális súlyú lefogó csúcshalmaz keresésére
9.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 jegyzet kereteit).
9.1 tétel. feladatra,
α < 67 -ra van α-közelít® akkor P = N P . Ha
polinomiális algoritmus a legkisebb lefogó csúcshalmaz
α < 2 esetén α-közelít® polinomiális futási idej¶ algoritmus. könny¶ adni. Kezdetben legyen U = ∅ a lefogó csúcshalmaz.
A feladatra nem ismert 2-közelít® algoritmust
1. Válasszunk egy tetsz®leges 2. Legyen 3. A
G
uv
Viszont
élt a gráfban.
U := U ∪ {u} ∪ {v}
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 az
1. pontra. Lássuk be, hogy ez az algoritmus 2-közelít®! diszjunkt élekb®l áll. éleit. Másrészt:
Ekkor
|U | = 2|F |,
|Uopt | ≥ |F |, mivel |Uopt | ≥ 21 |U |.
Legyen
F
a kiválasztott élek halmaza:
az optimális lefogó csúcshalmaz lefogja
F F
tehát
A következ® részben megmutatjuk, hogy az algoritmust továbbfejlesztve a minimális költség¶ lefogó csúcshalmaz feladatra is 2-közelít® algoritmust kapunk.
91
9.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 olyan
U
G = (V, E)
irányítatlan gráf és egy
lefogó csúcshalmazt, amire
c ∈ RV+
költségfüggvény. Keressünk
P
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 ∈ E min 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 X
yuv ≤ cv
∀v ∈ V
u:uv∈E
X
max
ye
e∈E A 2-közelít® algoritmusunk egy úgynevezett primál-duál algoritmus lesz:
a futás során
végig lesz egy csúcshalmazunk (ami a végén lefogóvá válik), és az LP-relaxáltnak egy duális megoldása (ami a végén bizonyítja, hogy 2-közelítést kaptunk).
2-közelít® primál-duál algoritmus
U ⊆ V csúcshalmaz és lesz egy y U = ∅, y ≡ 0, E 0 = E .
Minden lépésben lesz egy ben legyen
1. Válasszunk tetsz®leges 2. Emeljük meg
yuv -t
uv ∈ E 0
duális megoldás. Kezdet-
élt.
u-nál
annyira, hogy
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 0 -b®l
a
lefogott éleket. 4. Ha
E 0 = ∅,
akkor kész vagyunk.
U
a lefogó csúcshalmaz. Különben lépjünk az
1. pontra.
Figyeljük meg, hogy
yuv
emelése csak az
u-hoz
számít, a többit nem módosítja.
92
és
v -hez
tartozó duális egyenl®tlenségeknél
9.2 állítás.
A fenti algoritmus
Bizonyítás.
2-közelít®.
π ∈ RV+ segédváltozónk. Kezdetben legyen π ≡ 0. Amikor yuv -t megemeljük δ -val, akkor π(u)-t és π(v)-t is megemeljük δ -val. P P A végén v∈V π(v) = 2 e∈E Pye . Másrészt: P amikor v bekerül U -ba, akkor π(v) = c(v), és ez kés®bb sem változik. Tehát u∈U cu ≤ v∈V π(v), amib®l Legyen
X
cu ≤ 2
u∈U
X
ye
e∈E
≤ |{z}
≤ 2OP TLP ≤ 2OP TIP
gyenge dualitás
2 Igazából kicsit többet bizonyítottunk az állításnál: az LP-relaxált optimumának legfeljebb kétszerese a kapott megoldás értéke.
9.2
GoemansWilliamson-algoritmus
Ebben a fejezetben Goemans és Williamson 1995-ös algoritmusát ismertetjük, ami különféle minimális súlyú erd® problémákra ad 2-közelít® algoritmust. Speciális esetként adódik majd a Steiner-fa illetve az euklideszi párosítási probléma (bár utóbbira van polinomiális algoritmus is).
9.2.1 A feladat Legyen
V
egy alaphalmaz. Nevezzünk egy
F
halmazrendszert szépnek, ha teljesíti a következ®
tulajdonságokat:
∅∈ / F,
(9.1)
X ∈ F ⇒ V − X ∈ F, X ∩ Y = ∅, X ∪ Y ∈ F ⇒ {X, Y } ∩ F = 6 ∅. Legyen
G = (V, E) a teljes gráf V -n, és legyen c : E → R+
(9.2) (9.3)
egy költségfüggvény ami teljesíti
a háromszög-egyenl®tlenséget. A feladat egy minimális súlyú élhalmazt keresni, ami minden
F -beli
halmazra tartalmaz egy belép® élt. Könnyen látható, hogy az optimális megoldás egy
erd® lesz, hiszen minden körb®l törölhetünk egy tetsz®leges élt. A (9.3) tulajdonság miatt fogalmazhatunk így is: olyan minimális súlyú erd®t keresünk, aminek nincs
F -beli
komponense.
9.2.2 Alkalmazások Irányítatlan hálózat tervezése s1 , s2 , . . . , sk valamint t1 , t2 , . . . , tk csúcsok, és egy költségfüggvény az éleken. Minimális költség¶ olyan részgráfot akarunk találni, ahol si és ti ugyanabban a komponensben van minden i-re. Könnyen látható, hogy a háromszög-egyenl®tlenség teljesü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 rendelkezik
Ennél a feladatnál egy gráfban adottak
ezzel a tulajdonsággal. Ha
s1 = s2 = · · · = sk
akkor a minimális költség¶ Steiner-fa feladatot kapjuk.
93
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 a
pontokon azt a teljes párosítást, amely mentén az éleket egyenes szakaszokkal behúzva a párosítás összhossza minimális.
(Könnyen látható, hogy az optimális megoldás esetén nem
metszik egymást ezek a szakaszok, továbbá az is világos, hogy mivel véges sok teljes párosítás van, ezért létezik minimum.)
F
Álljon az
halmazrendszer a páratlan elemszámú halmazokból. Ez szép, hiszen két páros
halmaz diszjunkt uniója nem lehet páratlan. Erre a halmazrendszerre az optimális megoldás nem 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 van egy 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 komponensek 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él illeszkedik. Töröljük a csúcsra illeszked® másik élt. Így továbbra is minden komponens páros lesz, de n® a komponensek száma.
9.2.3 Az algoritmus A feladatunk lineáris programozási relaxáltja a következ®.
min
X
ce xe
(9.4)
e∈E
x(δ(Z)) ≥ 1 ∀Z ∈ F, 0 ≤ xe
(9.5)
∀e ∈ E.
(9.6)
A lineáris programozási duális a következ®.
max
X
yZ
(9.7)
Z∈F
X
yZ ≤ cuv
∀ uv ∈ E,
(9.8)
Z∈F :uv∈δ(Z)
yZ ≥ 0 ∀ Z ∈ F.
(9.9)
A GoemansWilliamson-algoritmus megkonstruál egy megengedett erd®t, azaz egy olyan erd®t, amelynek nincs
F -beli
a leálláskor lesz megengedett. Tetsz®leges
e = uv ∈ E
komponense. Az algoritmus fenntart egy Továbbá fenntartja a (9.8)-(9.9) egy
y
F
erd®t, amely csak
duális megoldását is.
élre vezessük be a következ® jelölést.
X
c¯e := ce −
yZ .
Z∈F :uv∈δ(Z)
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. Jelölje
CF
az
94
GoemansWilliamson-algoritmus 1. lépés.
F -beli töröljük F -b®l
F -nek
Ha
tott sorrendben
nincs
komponense, akkor az
e = uv
2. lépés. Legyen
kerüléssel fordí-
az összes olyan élt, amelyek törlése után sem
F -beli komponens (ha egy élt töröltünk, lév® éleket). Return F .
keletkezik
F -ben
F -be
az az él, melyre
el®lr®l kezdjük nézni a még
u ∈ Ci ∈ CF , v ∈ Cj ∈ CF , Ci 6= Cj
és a
következ® érték minimális:
ε = c¯e /(q(Ci ) + q(Cj )). (Vegyük észre, hogy 3. lépés. Minden 4. lépés. Az
Ci ∪ Cj -t.
e
Ci
Cj
és
C ∈ CF ∩ F
élet vegyük
legalább egyike
yC -t
halmazra
F -hez, CF -b®l
F -beli.)
növeljük meg
töröljük
Ci -t
és
ε-nal. Cj -t,
és vegyük hozzá
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. A
∗ 2. lépésben történ® minimálizálás miatt y a (9.8) megengedett megoldása, azaz a redukált
c¯e
súlyok mind nemnegatívak. Következésképpen a
P
Z∈F
yZ
érték az optimális megengedett
erd® költségének egy alsó korlátját adja.
9.3 lemma. c(F ∗ ) ≤ 2 Bizonyítás.
P
Z∈F
yZ .
C k és εk a k -adik iterációban szerepl® CF partíciót és ε-t. Az F ∗ egy e = uv (u ∈ Ci ∈ C k , v ∈ Cj ∈ C k ) élére deniáljuk a cke értéket 0-nak, ha i = j , és εk · (q(Ci ) + q(Cj ))-nak különben. Jelölje
Ekkor
ce = c1e + c2e + . . . + cte , t
ha
e-t az F -hez az s-edik k > s értékre. Most megmutatjuk, hogy X cke ≤ 2εk |C k ∩ F |,
iteráció alatt fut le az algoritmus. Vegyük észre, hogy ha
vesszük hozzá, akkor
cke = 0
lépésben
minden
e∈F ∗ amib®l a lemma azonnal következik, mivel
X Z∈F
yZ =
t X
εk · |C k ∩ F|.
k=1
k ∈ {1, 2, . . . , t}, és tekintsük az F ∗ -ból a C ∈ C k halmazok egy-egy pontra való 0 k összehúzásával keletkez® F erd®t (ez azért lesz erd®, mert egy C ∈ C halmazon belül kiválasztott élek összefügg® gráfot alkotnak). Jelölje V1 az F -beli halmazok összehúzásaival keletkezett pontok halmazát, V2 pedig a többi pontot. P 9.4 állítás. v∈V1 dF 0 (v) ≤ 2|V1 |. Legyen
Bizonyítás.
Mivel
F ∗ -ból
F 0 levelei v∈V dF 0 (v) − 2
fordított sorrendben elhagytuk a felesleges éleket, ezért
P
P
V1 -ben vannak, azaz V2 pontjai legalább másodfokúak: v∈V1 dF 0 (v) = v∈V2 dF 0 (v) ≤ 2|V | − 2|V2 | = 2|V1 |. P P k k Figyelembe véve, hogy e∈F ∗ ce = ε v∈V1 dF 0 (v), a lemmát bebizonyítottuk.
mind
P
95
2
9.3
Jain iteratív kerekít® algoritmusa
A 9.2. fejezetben szerepelt egy irányítatlan hálózattervezési feladat, amire a GoemansWilliamson algoritmus 2-közelítést adott. Most ennek a feladatnak egy általánosítására írjuk le Jain 2001-b®l származó 2-közelít® algoritmusát. Az algoritmus f® ötlete, hogy az LP relaxá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ív
kerekítés elnevezés.
9.3.1 Az általános irányítatlan hálózattervezési feladat G = (V, E + E0 ) irányítatlan gráf, egy c : E → R+ nemnegatív kö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®l feltesszü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 feladatnak nincs megoldása, de ezt ellen®rizni tudjuk a G gráf Gomory-Hu fájának kiszámolásával.
A feladatban adott egy
Számos jól ismert feladat megfogalmazható speciális esetként:
•
Minimális költség¶ feszít® fa:
•
Minimális költség¶
r(u, v) = 1
k -folyam s-b®l t-be r(u, v) = 0.
ha
u 6= v .
szimmetrikus irányított gráfban:
r(s, t) = k ,
a
többi csúcspárra pedig
•
Minimális költség¶ Steiner fa:
r(u, v) = 1
ha
u
és
v
különböz® terminálok, egyébként
r(u, v) = 0. •
Minimális költség¶, és
•
u 6= v ,
egyébként
T -ben k -élösszefügg® részgráf (ahol T ⊆ V ): r(u, v) = k r(u, v) = 0.
Hamilton-kör létezése a
e ∈ E -re.
G = (V, E)
gráfban:
r(u, v)=2
ha
ha
u, v ∈ T
u 6= v , c(e) = 1 minden F -re c(F ) = |V |.
Pontosan akkor létezik Hamilton-kör, ha az optimális
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 ) = max r(u, v) u∈U,v ∈U /
(U ⊆ V ).
Esetszétválasztással ellen®rizhet®, hogy ez a halmazfüggvény ferdén szupermoduláris, azaz bá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 uláris, hiszen a
X, Y
−|E0 ∩ δ(U )|
R(U ) − |E0 ∩ δ(U )|
halmazfüggvény is ferdén szupermod-
halmazfüggvényre mindkét fenti egyenl®tlenség teljesül minden
párra.
Az általános irányítatlan hálózattervezési feladat IP felírása:
max
X
ce xe
(IP)
e∈E
xe ∈ {0, 1}
∀e ∈ E
x(δ(U )) ≥ R(U ) − |E0 ∩ δ(U )| 96
∀U ⊆ V.
A feladat LP relaxáltja:
max
X
ce xe
(LP)
e∈E
0 ≤ xe ≤ 1
∀e ∈ E
x(δ(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ál sem lesz feltétlenül egész optimális megoldása, például ismertetett relaxációval.
C5 -re,
ellentétben a 11.2. fejezetben
Ráadásul exponenciális sok feltétel van, tehát az (LP) feladatot
sem könny¶ megoldani. Azonban szeparálni tudunk (minden
u, v
csúcspárra megkeressük a
minimális súlyú ®ket elválasztó vágást), tehát az 3.9. fejezetben leirtak szerint optimalizálni is tudunk polinom id®ben.
A gyakorlatban elég jó algoritmusok vannak az (LP) feladat
megoldására. Jain módszerének alapja a következ® mély eredmény.
9.5 tétel
. Ha az x ≡ 0 nem megoldása (LP)-nek, akkor minden bázis1 megoldásnak létezik legalább 2 érték¶ komponense. (Kamal Jain, 2001)
Bizonyítás.
(Ravi, Singh, Nagarajan, 2007).
∗ bázismegoldás, amire xe
<
1 2 minden
e∈
Indirekt tegyük fel, hogy van egy olyan
E -re. Legyen E ∗
= {e ∈ E :
x∗
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 xe < 1 minden e ∈ E élre, tudjuk, hogy k = |E ∗ |-ra létezik olyan {U1 , U2 , . . . , Uk } független halmazrendszer, amire
x∗ (δ(Ui )) = R(Ui ) − |E0 ∩ δ(Ui )|
9.6 állítás.
{U1 , U2 , . . . , Uk }
Ez az
Bizonyítás.
(i = 1, . . . , k).
független halmazrendszer választható laminárisnak.
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 szoros halmazokbó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 (itt a 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 halmazt metsz. Az R(U ) − |E0 ∩ δ(U )| halmazfüggvény ferde szupermodularitása miatt a következ® Egy
két lehet®ség legalább egyike teljesül. 1. Az
X ∩Uj
és
X ∪Uj
δE ∗ (X)+δE ∗ (Uj ) = δE ∗ (X ∩Uj )+δE ∗ (X ∪Uj )
halmazok pontosak, és
(ahol az összeadást mint a karakterisztikus vektorok összeadását értjük). 2. Az
X \Uj
és
Uj \X
halmazok pontosak, és
δE ∗ (X)+δE ∗ (Uj ) = δE ∗ (X \Uj )+δE ∗ (Uj \X).
X ∩ Uj is és X ∪ Uj is kevesebb Ui halmazt metsz X . Viszont a lineá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 a lineá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
Az els® esetben a laminaritás miatt mint
{U1 , U2 , . . . , Uk } az állításban szerepl® lamináris halmazrendszer. ∗ ∗ jutni azzal, hogy 0 < xe < 1/2 minden e ∈ E -ra. Ehhez a Jain
Legyen fogunk
zsetonos módszer egy változatát használjuk.
97
Ellentmondásra által bevezetett
E ∗ -beli
Minden
1−
él kap egységnyi zsetont.
2x∗uv -t, és továbbad az
u
és
v
A második lépésben a zsetonok az
•
uv ∈
Egy
Ebb®l els® lépésben az
uv ∈ E ∗
él megtart
∗ csúcsoknak xuv -t.
Ui
halmazokhoz kerülnek át, a következ® szabály szerint:
E ∗ él zsetonja a legkisebb olyan
Ui
u-t
halmazhoz kerül, ami
és
v -t
is tartal-
mazza.
•
v∈V
Egy
csúcs zsetonja a legkisebb olyan
Nézzük meg, hány zsetont kap egy adott
Uj
Ui
v -t
halmazhoz kerül, ami
halmaz.
tartalmazza.
Ehhez deniáljunk három diszjunkt
E ∗ -ban:
élhalmazt
• E1
áll azokból az
uv ∈ E ∗
• E2
áll azokból az
uv ∈ E ∗
élekb®l, amikre
u
uv ∈ E ∗
élekb®l, amikre
uv
élekb®l, amikre
u
zsetonját és
uv
Uj
kapta és
zsetonját
Uj
v∈ / Uj ,
kapta, de
v
zsetonját
v
zsetonját
nem,
• E3
áll azokból az
zsetonját
Uj
kapta, de
u
és
nem.
Uj halmaz legalább x∗ (E1 )+|E2 |−x∗ (E2 )+|E3 |−2x∗ (E3 ) zsetont gy¶jtött be. mert E1 = E2 = E3 = ∅ esetén
Az
δE ∗ (Uj ) =
l X
Ez pozitív,
δE ∗ (Uji ),
i=1 ahol
Uj1 , . . . , U jl
az
Uj -n
belüli maximális halmazok a lamináris rendszerben. Ez viszont azt
jelentené, hogy a rendszer nem független. Másrészt
x∗ (δ(Uj )) −
l X
x∗ (δ(Uji )) = x∗ (E1 ) − x∗ (E2 ) − 2x∗ (E3 ).
i=1
Ui halmazok szorossága miatt, tehát a jobboldal is egész. + |E2 | − x∗ (E2 ) + |E3 | − 2x∗ (E3 ) is egész, tehát legalább 1. szerint minden Ui halmaz legalább egységnyi zsetont kap. Azonban van
Itt a baloldal egész szám az
∗ Következésképp x (E1 ) A fenti okoskodás
e ∈ E∗
él, aminek zsetonját egyik halmaz sem kapja meg: vegyünk egy maximális halmazt
a lamináris rendszerben, és legyen
e
egy ebb®l kilép® él (ilyen van, különben a halmaz nem
szerepelhetne független rendszerben). Az
e
élhez tartozó
1 − 2x∗e > 0
zseton egyik halmazhoz
sem kerül.
|E ∗ | zseton van, minden k < |E ∗ |, ellentmondásban a
Mivel meg,
halmaz legalább 1-et kap, és van amit semelyik sem kap
2
halmazrendszer választásával.
A fenti tétel ismeretében Jain algoritmusa meglehet®sen egyszer¶ és természetes.
G = (V, E + E0 ) irányítatlan gráf, egy c : E → R+ nemnegatív u, v ∈ V csúcspárra egy r(u, v) ∈ Z+ élösszefügg®ségi igény.
tehát egy minden
Adott
költségfüggvény, és
Jain iteratív kerekít® algoritmusa Kezdetben legyen 1. lépés. Ha
F = ∅.
R(U ) ≤ |E0 ∩ δ(U )|
minden
U ⊆ V -re:
2. lépés. Oldjuk meg az (LP) feladatot, és legyen
H ⊆E |H| ≥ 1.
3. lépés. Legyen tétel szerint
4. lépés. Legyen
azoknak az
e
x∗
kész vagyunk,
optimális bázismegoldás.
éleknek a halmaza, amikre
F := F ∪ H , E0 := E0 ∪ H , E := E \ H .
98
return F .
x∗e ≥ 1/2.
A
Ugorjunk az 1. lépésre.
9.7 tétel.
Jain iteratív kerekít® algoritmusa 2-közelít® algoritmus az általánosított irányítatlan
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
δ(U )|
U ⊆ V -re,
minden
hiszen ekkor
F =∅
R(U ) ≤ |E0 ∩
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 0 -vel
illetve
E00 -vel
a negyedik lépés utáni élhalmazokat, és legyen (LP') a rájuk
vonatkozó LP feladat (amit a második fázisban old meg az algoritmus).
∗ hogy ha az x vektort megszorítjuk az megoldását kapjuk, hiszen minden
Figyeljük meg,
E 0 élhalmazra akkor az (LP') feladat megengedett
U -ra
az
jobboldala legalább annyival csökken, mint
x(δ(U )) ≥ R(U ) − |E0 ∩ δ(U )| egyenl®tlenség 0 a baloldala. Legyen F = F \ H . Az indukciós
feltevés szerint
c(F 0 ) ≤ 2
X
ce x∗e .
e∈E 0
x∗ (e) ≥ 1/2 minden e ∈ H -ra, azt kapjuk, hogy X X X c(F ) = c(F 0 ) + c(H) ≤ 2 ce x∗e + 2 ce x∗e = 2 ce x∗e = 2OPTLP ≤ 2OPTIP .
Ebb®l, és abból hogy
e∈E 0
e∈H
e∈E
2
99
Chapter 10
Általános heurisztikus algoritmusok 10.1
Lokális keresés
10.2
Tabukeresés
10.3
Szimulált leh¶lés
10.4
Genetikus algoritmusok
100
Chapter 11
Függelék 11.1
Lineáris programozási emlékeztet®
Ebben a fejezetben összefoglaljuk azokat a lineáris programozási ismereteket, amelyek a jegyzetben felhasználásra kerülnek (megesik, hogy külön hivatkozás nélkül is).
11.1 deníció.
A
C ⊆ Rn
halmaz
• konvex kúp,
ha tetsz®leges
• poliéderkúp,
ha létezik olyan
x, y ∈ C, λ, µ ≥ 0 A
esetén
mátrix, melyre
• végesen generált P kúp, ha léteznek {x ∈ Rn : x = ni=1 λi xi , λi ≥ 0}.
az
λx + µy ∈ C .
C = {x ∈ Rn : Ax ≤ 0}.
x1 , x2 , . . . , xk Rn -beli
vektorok, amelyekre
C=
Szavakban azt mondhatjuk, hogy a poliéderkúpok véges sok origón átmen® féltér metszeteként állnak el®, a végesen generált kúpok pedig véges sok vektor összes nemnegatív együtthatós lineáris kombinációjaként el®álló halmazok.
11.2 tétel
.
(Weyl, 1935)
C ⊆ Rn
A
halmaz pontosan akkor poliéderkúp, ha végesen generált
kúp. Az
A
mátrix elemei pontosan akkor választhatók racionális számoknak, ha az
xi
vektorok is
választhatók racionálisnak.
11.3 deníció.
A
P ⊆ Rn
• poliéder, ha létezik Rn : Ax ≤ b}.
halmaz
olyan
A
mátrix és megfelel® méret¶
n • politóp , ha léteznek az x1 , x2 , . . . , xk R -beli Pn Pn i=1 λi xi , λi ≥ 0, i=1 λi = 1}.
b
vektor, melyekre
vektorok, amelyekre
P = {x ∈
P = {x ∈ Rn : x =
Szavakban azt mondhatjuk, hogy a poliéder véges sok féltér metszeteként el®álló ponthalmaz (speciálisan az egész tér deníció szerint nulla darab féltér metszeteként áll el®, tehát poliéder), míg a politóp véges sok pont konvex burka.
11.4 tétel
(Motzkin, 1936)
alakban, ahol
C aP
Q
egy politóp,
poliéder
.
C
A
P ⊆ Rn
halmaz pontosan akkor poliéder, ha el®áll
Q+C
pedig egy végesen generált kúp.
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 sok pont 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ú.
101
11.5 tétel
(Farkas-lemma (els® alak))
.
Ax ≤ b
Az
poliéder pontosan akkor üres, ha létezik
y
megoldása az alábbinak
yA = 0, y ≥ 0, yb < 0.
11.6 tétel ha létezik
y
(Farkas-lemma (második alak))
.
Az
Ax = b, x ≥ 0
poliéder pontosan akkor üres,
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.
11.7 tétel. fenn. Az
•
Ha adott az
[A, b]
A
mátrix rangját jelölje
Kiválasztható az
A
b
mátrix és a
t.
oszlopai közül néhány lineárisan független, amelyek nemnegatív line-
áris kombinációjaként megkapható
•
b.
{x ∈ Rn : cx = 0} hipersík, tartalmazza, és cb < 0, cA ≥ 0.
Létezik egy oszlopát
11.8 tétel
y∗A
vektor, akkor az alábbiak közül pontosan az egyik áll
≤
c, y ∗
(kiegészít® eltérések tétele)
≥ 0,
.
amely
Legyen
x∗
A-nak t − 1
és
y∗
darab lineárisan független
olyan, amelyekre
Ax∗ ≤ b, x∗ ≥ 0,
és
x∗j > 0 =⇒ (y ∗ Ax)j = cj , yi∗ > 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}
feladatok
optimális megoldása.
11.9 tétel (dualitástétel).
Amennyiben a következ® egyenl®tlenségeknek van megoldása, akkor
teljesül az alábbi egyenl®ség:
max{cx : Ax ≤ b} = min{by : yA = c, y ≥ 0}.
(11.1)
11.1.1 A lexikograkus duál-szimplex módszer
11.2
A feszít®fák poliédere
Adott az összefügg® súlyfüggvény.
G = (V, E)
irányítatlan gráf, és az élein a
c : E → R+
nemnegatív
Közismert, hogy a Kruskaltól származó mohó algoritmus megadja a
G
egy
minimális súlyú feszít®fáját. Emlékeztet®ül az algoritmus a következ®. Rendezzük súly szerint nö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 keletkezik kör. Könny¶ belátni, hogy így valóban minimális súlyú feszít®fát kapunk, bár ennek ténye kö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ásai a feszít®fák karakterisztikus vektorai.
min
X (ce xe : e ∈ E)
(11.2)
x(E) = |V | − 1
(11.3)
x(γ(S)) ≤ |S| − 1 ∀S ⊂ V, S 6= ∅
(11.4)
0 ≤ xe
∀e ∈ E.
102
(11.5)
11.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
élhalmaz
esetén. Vegyük észre, hogy az alábbi lineáris program ekvivalens a fentivel.
min
X
(ce xe : e ∈ E)
(11.6)
x(E) = |V | − 1
(11.7)
x(A) ≤ |V | − κ(A) ∀A ⊂ E
(11.8)
0 ≤ xe
∀e ∈ E.
(11.9)
Most megmutatjuk, hogy a Kruskal algoritmusa által adott feszít®fa
x∗
karakterisztikus
vektora optimális megoldása (11.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 megadjuk a duális feladat egy olyan
y∗
megoldását, amely
tétel), azaz mindkett® optimális megoldás. cseréljük le a célfüggvényt az ekvivalens
x∗ -gal
teljesíti a kiegészít® eltéréseket (11.8.
A primál feladatban az egyszer¶ség kedvéért
max
P
(−ce xe : e ∈ E)
alakra.
A duális feladat a következ®:
min
X ((|V | − κ(A))yA : A ⊆ E) X yA ≥ −ce ∀e ∈ E
(11.10) (11.11)
e∈A
0 ≤ yA Az
yE
∀A ⊂ E.
(11.12)
e1 , e2 , . . . , em az élek azon sorJelölje Ri ezen sorrend els® i élének
változónak nem kell nemnegatívnak lennie. Legyen
rendje, amely szerint Kruskal algoritmusa végignézi ®ket. a halmazát. Most megadjuk
y∗
denícióját.
cei+1 − cei , ha A = Ri , i < m, ∗ −cem , ha A = Rm , yA := 0 különben. Mivel az élek a súlyok szerinti növekv® sorrendben vannak, Most megmutatjuk, hogy (11.11) is teljesül. Legyen
X A3e Tehát
y∗
∗ yA =
m X
∗ yR = j
j=i
m−1 X
e = ei ,
∗ ≥ 0 yA
minden
A⊂E
esetén.
ekkor
(cej+1 − cej ) − cem = −cei = −ce .
j=i
valóban megoldása a duális feladatnak, amely ráadásul minden (11.11) feltételt
egyenl®séggel teljesít.
∗ > 0, akkor az A-hoz tartozó (11.8) feltétel egyenyA l®séggel teljesül. Ekkor A = Ri valamely i értékre. i-re vonatkozó indukcióval az állítás ∗ triviális, hiszen amikor Kruskal algoritmusa kiválaszt egy élt (azaz xe = 1), akkor mivel kör Most belátjuk, hogy amennyiben
nem 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
103
11.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® a
c : E → R+
G = (V, E)
irányítatlan gráf, és az élein
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 kiindulva a már meglév®
F
G
gráf egy minimális súlyú élét, majd ebb®l
fánkhoz mindig vegyünk hozzá egy bel®le kiinduló minimális súlyú
élt, amíg feszít®fához nem jutunk.
11.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.
11.4
2
Nagamochi és Ibaraki algoritmusa
G = (V, E) egy gráf, és c : E → Z+ egy kapacitásfüggvény v1 , v2 , . . . , vn sorrendjét legális sorrendnek nevezzük, ha
Legyen egy
az éleken. A csúcsoknak
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 a
pontok egyenkénti hozzávételével. Egy
u és v csúcsokat elválasztó vágást (u, v)-vágásnak nevezünk. c-értékét.
Jelölje
λ(G; u, v) az (u, v)-
vágások minimális
11.12 tétel
(Nagamochi, Ibaraki, 1992)
minimális érték¶
.
Ha
v1 , v2 , . . . , vn
legális sorrend, akkor
δ(vn )
egy
(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 Legyen
G0
az
e = vn−1 vn
vn−1 vn ∈ E .
él törlésével keletkez® gráf. Könny¶ látni, hogy a sorrendünk legális
marad, tehát indukció szerint
c(δ(vn )) = c(δ 0 (vn )) + c(e) = λ(G0 ; vn−1 , vn ) + c(e) = λ(G; vn−1 , vn ). Tehát feltehetjük, hogy
vn−1 vn ∈ / 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 ). G0 a vn−1 törlésével keletkez® gráf. A v1 , . . . , vn−2 , vn
Az el®bbi bizonyításához legyen
sorrend legális marad, és az indukciós feltétel miatt
c(δ(vn )) = c(δ 0 (vn )) = λ(G0 ; vn−2 , vn ) = λ(G; vn−2 , vn ). A másik egyenl®tlenség bizonyításához legyen
v1 , . . . , vn−1
G0
a
vn
törlésével keletkez® gráf.
A
sorrend legális, és az indukciós feltétel miatt most
c(δ(vn )) ≤ c(δ(vn−1 )) = c(δ 0 (vn−1 )) = λ(G0 ; 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¶
104
A vágást G-ben:
0. Legyen kezdetben 1. Ha
G-nek
v1 , v2 , . . . , vn
c(δ(vn )) < M ,
4. Húzzuk össze
11.5
értéke
∞,
és legyen
A
deniálatlan.
1 pontja van: vége
2. Keressünk egy 3. Ha
M
legális sorrendet.
akkor legyen
G-ben
a
vn−1
és
M := c(δ(vn )),
vn
és
A := δ(vn ).
pontokat, és lépjünk 1-re.
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. Bizonyítja-e ez, hogy az egészérték¶ programozási feladat NP-teljes?
Nem, mivel az általunk
mutatott 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?)
11.13 tétel.
NP-teljes.
Bizonyítás.
A bizonyítást az Olvasóra bízzuk. (Vezessük vissza 3-SAT-ot!)
11.6
2
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® algoritmus, amely ráadásul sokkal hatékonyabb a most ismertetend® eljárásnál, az egyszer¶sége miatt érdemes áttekintenünk az alábbi, Grötschel, Lovász és Schrijver szerz®hármastól származó algoritmust.
G = (V, E) gráf az élein a c : E → R+ súlyozással. Adott továbbá a páros T ⊆ V részhalmaz. A Q ⊆ V halmazt T -vágásnak nevezzük, ha |T ∩ Q| páratlan. 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® élek
Legyen adott a elemszámú Minimális
súlyainak az összege minimális. Keressük meg a minimális érték¶
T -vágást!
Jól tudjuk, hogy maximális folyamot hogyan
kereshetünk meg hatékonyan egy gráfban, azt is tudjuk, hogy egyúttal egy minimális vágást is 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ális s, 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, akkor a következ® lemma segítségével lépünk tovább.
11.14 lemma. Bizonyítás.
Létezik egy
Q
minimális
T -vágás,
melyre
Q⊆S
vagy
Q⊆V −S
teljesül.
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áratlan elemszá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 Legyen
c(δ(S)) ≤ c(δ(S ∪ U )).
105
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
2
T -vágás.
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
gráf, az élsúlyokat hagyjuk meg. A G-beli minimális T -vágás T2 -vágás közül a kisebb.
legyen az
T2
S
halmaz egy pontra való összehúzásával kapott
pedig legyen
tehát a
G1 -beli
(V − S) ∩ T . minimális T1 -vágás
és a
T
minimális
T -vágásokat
a meg-
futási idej¶, ha van egy
O(n3 )
A kisebb gráfokban ugyanezzel az eljárással keressük meg a minimális felel®
G2 -beli
halmazra vonatkozóan.
16 feladat.
Mutassuk meg, hogy a fenti algoritmus
O(n5 )
futási idej¶ folyam-algoritmusunk (például az el®reemel® el®folyam-algoritmus ilyen). (Segítség: Alkalmazzunk indukciót a
|T | = |T1 | + |T2 |
meggyelésre építve.)
Ezzel tehát befejeztük az algoritmus leírását. Ezen algoritmus kevésbé hatékony, mint a Gomory-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ítsuk
be, hogy a fokszámfüggvény szubmoduláris (élsúlyozással is), azaz minden mazra a következ® teljesül:
c(δ(X)) + c(δ(Y )) ≥ c(δ(X ∪ Y )) + c(δ(X ∩ Y )).
11.7
El®zetes egyszer¶sítések
Ez Wolsey IP könyvéb®l egy kis fejezet, ámlag érdekes.
106
X, Y ⊆ V
ponthal-
Chapter 12
Jelölések Ebben a fejezetben összefoglaljuk a jegyzetben használt legfontosabb jelöléseket. 1. 2. fejezet
• cx
jelöli a
ahot
• P
T
cT x
szorzatot két azonos számú komponensb®l álló
a transzponálás jele, azaz
jelöli valamely
A
mátrix és
b
cx
a
és
c
vektor esetén,
egy szám (egykoponens¶ vektor:-)
vektor mellett az
Ax ≤ b
egyenletrendszer (valós)
megoldásainak a halmazát, azaz egy poliédert.
• PI
jelöli
• bλc:
P
poliéder egész pontjainak konvex burkát.
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
yT B
mátrixszorzat
eredmé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), • δ(v):
a
• δ(S):
az
• γ(S):
az
v
ahol
x:E→R
egy függvény. További példa
xe .
pontra illeszked® élek halmaza.
S
ponthalmazból kilép® élek halmaza.
S ponthalmazbeli pontokat összeköt® (azaz feszített) élek halmaza. P • 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.
107
10. 11.
108
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 Scientic, 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 Computing
6, (1991) 376-384.
109