BESLISKUNDE 2 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN
Voorwoord Dit vak is een voortzetting van het tweedejaarscollege Besliskunde 1. Een aantal andere mathematische beslissingsproblemen komt aan de orde en voor enkele onderwerpen uit Besliskunde 1 worden aanvullende resultaten en methoden afgeleid. Hieronder volgt een beknopte beschrijving van de onderwerpen die worden behandeld. Hoofdstuk 1: Lineaire Optimalisering (deel 2) Deel 1 van Lineaire Optimalisering is reeds in Besliskunde 1 besproken. In dit hoofdstuk komen andere resultaten aan de orde: implementatie aspecten, gevoeligheidsanalyse, de duale simplex methode en de primale-duale simplex methode. Hoofdstuk 2: Geheeltallige Lineaire Optimalisering Na een inleiding, waarin het model, formuleringen en voorbeelden worden besproken, worden diverse methoden behandeld om geheeltallige lineaire optimaliseringsproblemen op te lossen: de branch-and-bound techniek en technieken gebaseerd op sneden. Het hoofdstuk wordt afgesloten met een vrij uitgebreide bespreking van het Handelsreizigersprobleem. Hoofdstuk 3: Niet-lineaire Optimalisering Begonnen wordt met voorbeelden, algemene optimaliteitsvoorwaarden en eigenschappen zoals convexiteit. Daarna worden de onbeperkte en de beperkte optimalisering behandeld. Bij de onbeperkte optimalisering wordt ingegaan op ´e´endimensionale en meerdimensionale optimalisatie. De behandeling van de beperkte optimalisering betreft zowel theorie als methoden. De theoretische zaken zijn Lagrange multipliers, Karush-Kuhn-Tucker voorwaarden en dualiteit. De methoden die worden behandeld zijn de volgende: het algoritme van Wolfe voor kwadratische optimalisering, de methode van toelaatbare richtingen, de gereduceerde gradi¨ent methode, de gegeneraliseerde gereduceerde gradi¨ent methode en de barri`ere methode. Hoofdstuk 4: Netwerk Optimalisering Dit hoofdstuk behandelt kortste paden en netwerkstromen. Wat de kortste paden betreft komt aan de orde: de methoden van Dijkstra, van Bellman en Ford, en van Floyd en Warshall, het probleem van de kortste gemiddelde ronde en enkele toepassingen. Bij het onderwerp netwerkstromen wordt behandeld: maximale stromen, minimale kostenstromen en toepassingen.
i
ii Hoofdstuk 5: Scheduling Bij scheduling moeten taken bewerkingen op machines ondergaan. Van iedere taak is bekend op welke machines deze moet worden uitgevoerd, eventueel ook in welke volgorde, en hoe lang iedere bewerking duurt. De probleemstelling luidt: hoe deze taken te schedulen opdat een bepaalde functie ge-optimaliseerd wordt, bijv. minimaliseer het tijdstip waarop alle taken klaar zijn. We bespreken zogenaamde open shop, job shop en flow shop problemen op ´e´en of meer machines. Verder worden ook scheduling problemen op parallelle machines besproken. Het hoofdstuk wordt afgesloten met een bespreking van de verbanden met het Handelsreizigersprobleem. Hoofdstuk 6: Speltheorie In de speltheorie houdt men zich bezig met modellen die conflictsituaties beschrijven. Niet alle conflictsituaties zijn in ´e´en model te vangen. We onderscheiden bijvoorbeeld: a. Het aantal deelnemers (twee-personen spelen of spelen met meer personen); b. Het al dan niet geoorloofd zijn van combines (wel of niet co¨ operatieve spelen); c. Het regelen van de uitbetalingen (wel of geen nulsomspel). De volgende onderwerpen komen aan de orde: twee-personen nulsomspelen, bi-matrix spelen en co¨operatieve spelen. Vragen en opgaven Het dictaat bevat 71 vragen en 90 opgaven. De oplossingen van de vragen staan in Appendix A. College, tentamen en informatie Het college is 4 uur per week. Het tentamen bestaat voor 50% uit het wekelijks maken van opgaven en voor 50% uit een schriftelijk tentamen. Verdere informatie over dit vak is te vinden op: www.math.leidenuniv.nl/˜kallenberg.
Inhoudsopgave 1 LINEAIRE OPTIMALISERING (deel 2)
1
1.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Implementatie aspecten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2.1
Begrensde variabelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2.2
Herziene simplex methode en de productvorm van de inverse . . . . . . . .
5
1.2.3
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3
1.4
Gevoeligheidsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3.1
Veranderingen in ´e´en co¨effici¨ent van de doelfunctie . . . . . . . . . . . . . . 12
1.3.2
Veranderingen in ´e´en co¨effici¨ent van het rechterlid . . . . . . . . . . . . . . 13
1.3.3
Veranderingen in meer co¨effici¨enten van het rechterlid (of doelfunctie) . . . 13
1.3.4
Veranderingen in een kolom van een niet-basisvariabele . . . . . . . . . . . 14
1.3.5
Toevoegen van een nieuwe activiteit/variabele . . . . . . . . . . . . . . . . . 15
1.3.6
Parametrische programmering . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.7
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
De duale en de primale-duale simplex methode . . . . . . . . . . . . . . . . . . . . 21 1.4.1
De duale simplex methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.2
De primale-duale methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.4.3
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2 GEHEELTALLIGE LINEAIRE OPTIMALISERING 2.1
2.2
2.3
31
Model, formuleringen en voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.1.1
Model en formuleringen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.2
Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.1.3
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Branch-and-Bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.2.1
Het generieke algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.2.2
Behandeling van en opsplitsing in deelproblemen . . . . . . . . . . . . . . . 37
2.2.3
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Sneden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.3.1
Gomory’s fractie-snede algoritme . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.2
Gomory’s snede voor gemengd geheeltallige optimalisering . . . . . . . . . . 46 iii
iv
INHOUDSOPGAVE 2.3.3 2.4
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Handelsreizigersprobleem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.4.1
Inleiding en formuleringen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.4.2
Branch-and-Bound methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.4.3
Heuristieken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.4.4
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3 NIET-LINEAIRE OPTIMALISERING 3.1
3.2
3.3
3.4
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.1.1
Klassificatie van niet-lineaire optimaliseringsproblemen . . . . . . . . . . . . 75
3.1.2
Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.1.3
Afgeleiden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.1.4
Optimaliteitsvoorwaarden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.1.5
Convexiteit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.1.6
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Onbeperkte optimalisering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 3.2.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.2.2
E´endimensionale optimalisatie
3.2.3
Meerdimensionale optimalisatie . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.2.4
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
. . . . . . . . . . . . . . . . . . . . . . . . . 86
Beperkte optimalisering: theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 3.3.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.3.2
Lagrange multipliers bij gelijkheidsbeperkingen . . . . . . . . . . . . . . . . 99
3.3.3
Karush-Kuhn-Tucker voorwaarden bij gelijkheden en ongelijkheden . . . . . 108
3.3.4
Fritz John voorwaarden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.3.5
Convexe optimalisering en dualiteit . . . . . . . . . . . . . . . . . . . . . . . 115
3.3.6
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Beperkte optimalisering: methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 3.4.1
Kwadratische optimalisering . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3.4.2
Methode van toelaatbare richtingen . . . . . . . . . . . . . . . . . . . . . . 125
3.4.3
Gereduceerde gradi¨ent methode . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.4.4
Gegeneraliseerde gereduceerde gradi¨ent methode . . . . . . . . . . . . . . . 136
3.4.5
Barri`ere methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
3.4.6
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4 NETWERK OPTIMALISERING 4.1
75
143
Kortste paden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 4.1.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.1.2
De methode van Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.1.3
Methode van Bellman en Ford . . . . . . . . . . . . . . . . . . . . . . . . . 148
4.1.4
Methode van Floyd en Warshall
. . . . . . . . . . . . . . . . . . . . . . . . 150
INHOUDSOPGAVE
4.2
v
4.1.5
De kortste gemiddelde ronde . . . . . . . . . . . . . . . . . . . . . . . . . . 152
4.1.6
Enkele toepassingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.1.7
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Netwerkstromen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 4.2.1
Maximale stromen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
4.2.2
Minimale kostenstromen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
4.2.3
Enkele toepassingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
4.2.4
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
5 SCHEDULING
195
5.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
5.2
E´en machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 5.2.1 5.2.2 5.2.3
5.3
Model A: 1 | | Lmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 P Model B: 1 | | nj=1 wj Cj . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 P Model C: 1 | | nj=1 Uj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Twee machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 5.3.1
Model D: O2 | | Cmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
5.3.2
Model E: F2 | | Cmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
5.3.3
Model F: J2 | | Cmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
5.4
Parallelle machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
5.5
Verbanden met het handelsreizigersprobleem . . . . . . . . . . . . . . . . . . . . . 214
5.6
5.5.1
Model K: 1 | sjk | Cmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
5.5.2
Model L: Fm | no − wait | Cmax . . . . . . . . . . . . . . . . . . . . . . . . . 214
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
6 SPELTHEORIE
217
6.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
6.2
Tweepersonen nulsomspel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
6.3
Bi-matrix spelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
6.4
Co¨operatieve spelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
6.5
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
A OPLOSSING VAN DE VRAGEN
235
A.1 Hoofdstuk 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 A.2 Hoofdstuk 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 A.3 Hoofdstuk 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 A.4 Hoofdstuk 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 A.5 Hoofdstuk 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 A.6 Hoofdstuk 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
vi
INHOUDSOPGAVE
Hoofdstuk 1
LINEAIRE OPTIMALISERING (deel 2) In Besliskunde 1 is het onderwerp lineaire optimalisatie reeds aan bod geweest. Het model is ge¨ıntroduceerd, een aantal resultaten uit de theorie van lineaire (on)gelijkheden is behandeld, en de dualiteit en de simplex methode zijn besproken. We gaan in dit hoofdstuk in op implementatie aspecten, gevoeligheidsanalyse en we bespreken twee alternatieven voor de gewone simplex methode: de duale simplex methode en de primale-duale simplex methode.
1.1
Inleiding
In deze paragraaf herhalen we in het kort een aantal zaken uit Besliskunde 1. De standaard formulering van het LP-probleem luidt in matrixnotatie: max{pT x | Ax ≤ b; x ≥ 0}, waarbij p, x ∈ Rn , b ∈ Rm en A een m × n-matrix is
(1.1)
Met verschilvariabelen y = b − Ax krijgen we de equivalente formulering max{pT x | Ax + y = b; x, y ≥ 0}
(1.2)
Bij ieder LP-probleem hoort een duaal probleem. Het duale probleem van (1.1) is min{bT u | AT u ≥ p; u ≥ 0}
(1.3)
en met verschilvariabelen v = AT u − p geeft dit de equivalente formulering min{bT u | AT u − v = p; u, v ≥ 0}
(1.4)
De simplex methode is een methode om deze problemen op te lossen. De methode maakt gebruik van simplex tableaus, waarin de relevante informatie staat. Ieder tableau behoort bij een basismatrix B: dit is een niet-singuliere m × m-deelmatrix van het oorspronkelijke stelsel (1.2), waarvoor bovendien geldt dat B −1 b ≥ 0. De overige kolommen vormen een m × n-deelmatrix N . De bijbehorende variabelen xB resp. xN heten de basisvariabelen resp. de niet-basisvariabelen. 1
2
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
Het tableau heeft de vorm xN xB
B −1 b
B −1 N
x0
pTB B −1 b
dTN
waarbij dTN = pTB B −1 N − pTN , en de bijbehorende oplossing luidt: xB = B −1 b, xN = 0. Het tableau bevat tevens een bijbehorende duale oplossing: uB = 0, uN = dN . Om de notatie simpel te houden, voeren we in: b∗ = B −1 b, A∗ = B −1 N, p∗ = pTB B −1 b en d∗ = pTB B −1 N − pTN . Het stelsel is dan, tezamen met de doelfunctie, te schrijven als: P (xB )i = b∗i − nj=1 a∗ij (xN )j , i = 1, 2, . . . , m pT x = p∗ − Pn d∗ (x ) j=1 j N j
(1.5)
Als d∗j ≥ 0 voor alle j, dan is xB = b∗ , xN = 0 een optimale oplossing. In het andere geval is d∗k < 0 voor zekere k, en kan als volgt een nieuw tableau worden gevonden. a. Bepaal de pivotkolom, d.w.z. bepaal een k met d∗k < 0 (meestal k zdd. d∗k = minj d∗j ). b. Bepaal een pivotrij, d.w.z. bepaal een r met
b∗r a∗rk
b∗
= min{ a∗i | a∗ik > 0}. ik
c. Verwissel de variabelen (xB )r en (xN )k die de pivot a∗rk bepalen. d. De nieuwe pivotrij, met uitzondering van het pivotelement zelf, is de oude rij gedeeld door het pivotelement. e. De nieuwe pivotkolom, met uitzondering van het pivotelement zelf, is de oude kolom gedeeld door het tegengestelde van het pivotelement. f. Van de elementen a∗ij met i 6= r en/of j 6= k trekken we g. Vervang het pivotelement a∗rk door zijn inverse
a∗rj ·a∗ik a∗rk
af.
1 a∗rk .
In het simplex tableau staat ook informatie over het duale probleem te lezen. Naar analogie van (1.5) moet daarvoor de j-de kolom van het simplex tableau moet gelezen worden als (de voorste kolom met b∗ slaat op de doelfunctie): P ∗ (uN )j = d∗j + m i=1 aij (uB )i , j = 1, 2, . . . , n bT u = p∗ + Pm b∗ (u ) B i i=1 i
1.2 1.2.1
(1.6)
Implementatie aspecten Begrensde variabelen
Vaak zijn variabelen begrensd, zowel naar beneden als naar boven, zeg lj ≤ xj ≤ uj . Door over te gaan op de variabele x0j = xj − lj , kunnen we lj ≤ xj ≤ uj vervangen door 0 ≤ x0j ≤ uj − lj . We
1.2. IMPLEMENTATIE ASPECTEN
3
kunnen dus veronderstellen dat alle ondergrenzen 0 zijn en aannemen dat begrensde variabelen van het type 0 ≤ xj ≤ uj zijn. Deze beperkingen kunnen natuurlijk op de gewone manier behandeld kunnen worden met een verschilvariabele: xj + yj = uj ; xj , yj ≥ 0. Zo’n verschilvariabele is echter niet nodig. We kunnen deze namelijk impliciet behandelen, zoals we ook de ondergrens 0 impliciet behandelden door er bij de keuze van de pivotrij op te letten dat geen enkele variabele negatief wordt. In het geval bovengrenzen aanwezig zijn hebben alle niet-basisvariabelen de waarde 0 (hun ondergrens) of de waarde uj (hun bovengrens). Zoals een niet-basisvariabele die op de ondergrens (0) staat een potenti¨ele pivotkolom is als er in de onderste rij een negatief getal staat, zo is een niet-basisvariabele xj die op zijn bovengrens (uj ) staat een potenti¨ele pivotkolom als er in de onderste rij een positief getal staat, want door de waarde van deze variabele te verlagen stijgt de waarde van de doelfunctie. Door echter dan de variabele te beschouwen als xj := uj − xj hebben we weer de ’gewone’ situatie. Ook bij de keuze van de pivotrij moet rekening worden gehouden met het feit dat xj niet groter dan uj mag worden, d.w.z. voor begrensde basisvariabelen (xB )i met in de pivotkolom een negatief getal moet gelden dat b∗i − a∗ik (xN )k ≤ (uB )i d.w.z. (xN )k ≤
(uB )i − b∗i met a∗ik < 0. −a∗ik
Nadat we een pivotkolom hebben gekozen zijn er vier mogelijke gevallen: Geval 1: De niet-basisvariabele (xN )k van de pivotkolom staat op zijn ondergrens en loopt tegen zijn bovengrens aan. Deze variabele (xN )k blijft een niet-basisvariabele en komt nu op zijn bovengrens te staan. We drukken dan de vergelijkingen van het stelsel in een tableau uit in (xN )k := (uN )k − (xN )k , d.w.z. X X a∗ij (xN )j + a∗ik {(uN )k − (xN )k }. a∗ij (xN )j − a∗ik (xN )k = {b∗i − a∗ik (uN )k } − (xB )i = b∗i − j6=k
j6=k
Voor de transformaties geldt dus: (xN )k komt op zijn bovengrens, de pivotkolom verandert van teken en van het getransformeerde rechterlid wordt (uN )k keer de pivotkolom afgetrokken. Geval 2: De niet-basisvariabele (xN )k staat op zijn bovengrens en loopt tegen zijn ondergrens aan. We drukken dan de vergelijkingen die bij het stelsel van een tableau horen uit in (xN )k , d.w.z. X X (xB )i = b∗i − a∗ij (xN )j − a∗ik {(uN )k − (xN )k } = {b∗i − a∗ik (uN )k } − a∗ij (xN )j + a∗ik (xN )k . j6=k
j6=k
Voor de transformaties geldt dus: (xN )k komt op zijn ondergrens, de pivotkolom verandert van teken en van het getransformeerde rechterlid wordt (uN )k keer de pivotkolom afgetrokken. Geval 3: Een basisvariabele (xB )r loopt tegen zijn ondergrens aan. Dit is het geval van de ’gewone’ simplex methode en we behandelen dit op de bekende manier.
4
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
Geval 4: Een basisvariabele (xB )r loopt tegen zijn bovengrens aan. Merk op dat in dit geval de pivot a∗rk negatief is. De gewone simplex transformaties volgen uit P de vergelijking (xB )r = b∗r − j a∗rj (xN )j , die equivalent is met X (uB )r − (xB )r = (uB )r − b∗r + a∗rj (xN )j j
Voor de transformaties geldt dus: Voer de gewone transformaties uit na de volgende veranderingen: neem (uB )r − b∗r in plaats van b∗r en verander de pivotrij van teken. De winst van deze speciale techniek is het feit dat in de gevallen 1 en 2 er met vrijwel geen werk een nieuw tableau gevonden wordt. Voorbeeld 1.1 Beschouw het volgende LP-probleem: max x1 + 2x2 + 3x3 + 2x4 + x5 −x1
+
x3
− x2
−
x5 + x6
+ x4 + 2x5
= 1 + x7
x1 + x2 − 2x3 − x4 onder de voorwaarden
= 2 + x8 = 1
0 ≤ x1 ≤ 1; 0 ≤ x2 ≤ 2; 0 ≤ x3 ≤ 1; 0 ≤ x4 ≤ 3; 0 ≤ x5 ≤ 2; 0 ≤ x6 ≤ 1; 0 ≤ x7 ≤ 3; 0 ≤ x8 ≤ 2. We starten met als basisvariabelen x6 , x7 en x8 . Als de variabele xj op zijn bovengrens staat, dan noteren we dat met xj . Verder schrijven we achter iedere variabele tussen haakjes de bovengrens. Dit geeft de volgende tableaus (als pivotkolom de gebruikelijke keuze bij het meest negatieve element in de onderste rij): x1 (1)
x2 (2)
x3 (1)
x4 (3)
x5 (2)
x1 (1)
x2 (2)
x3 (1)
x4 (3)
x5 (2)
x6 (1)
1
-1
0
1
0
-1
x6 (1)
1
-1
0
1
0
-1
x7 (3)
2
0
-1
0
1
2
x7 (3)
2
0
-1
0
1
2
x8 (2)
1
1
1
-2
-1
0
x8 (2)
1
-1
-1
∗2
1
0
x0
0
-1
-2
-3
-2
-1
x0
0
-1
-2
-3
-2
-1
Geval 4: x8 loopt tegen zijn bovengrens aan. Aanpassing van
b∗3
Nu voeren we de gewone pivottransformaties uit
en de derde rij geeft:
met verwisseling van x8 en x3 .
x1 (1)
x2 (2)
x8 (2)
x4 (3)
x5 (2)
x6 (1)
1 2
- 12
∗1 2
- 21
- 21
-1
x2 (2)
x7 (3)
2
0
-1
0
1
2
x3 (1)
1 2 3 2
- 12
- 21
- 52
- 27
1 2 3 2
1 2 - 21
x0
Geval 3: dit geeft de gewone transformatie.
x1 (1)
x6 (1)
x8 (2)
x4 (3)
x5 (2)
1
-1
2
-1
-1
-2
x7 (3)
3
-1
2
-1
0
0
0
x3 (1)
1
-1
1
0
0
-1
-1
x0
5
-6
7
-2
-4
-8
Geval 4: x3 loopt tegen zijn bovengrens aan. Aanpassing van b∗3 en de derde rij geeft:
1.2. IMPLEMENTATIE ASPECTEN
5
x1 (1)
x6 (1)
x8 (2)
x4 (3)
x5 (2)
x1 (1)
x6 (1)
x8 (2)
x4 (3)
x3 (1)
x2 (2)
1
-1
2
-1
-1
-2
x2 (2)
1
1
0
-1
-1
2
x7 (3)
3
-1
2
-1
0
0
x7 (3)
3
-1
2
-1
0
0
x3 (1)
0
1
-1
0
0
∗1
x5 (2)
0
1
-1
0
0
1
x0
5
-6
7
-2
-4
-8
x0
5
2
-1
-2
-4
8
Nu voeren we de gewone pivottransformaties uit
Geval 4: x2 loopt tegen zijn bovengrens aan.
met verwisseling van x3 en x5 .
Aanpassing van b∗1 en de eerste rij geeft:
x1 (1)
x6 (1)
x8 (2)
x4 (3)
x3 (1) 2
x4 (3)
x1 (1)
x6 (1)
x8 (2)
x2 (2)
x3 (1)
1
-1
0
1
1
-2
x2 (2)
1
-1
0
1
∗1
x7 (3)
3
-1
2
-1
0
0
x7 (3)
3
-1
2
-1
0
0
x5 (2)
0
1
-1
0
0
1
x5 (2)
0
∗1
-1
0
0
1
x0
5
2
-1
-2
-4
8
x0
9
-2
-1
2
4
0
Nu voeren we de gewone pivottransformaties uit
Geval 3: dit geeft de gewone transformatie.
met verwisseling van x2 en x4 . x5 (2)
x6 (1)
x8 (2)
x2 (2)
x3 (1)
x5 (1)
x6 (1)
x8 (2)
x2 (2)
x3 (1)
x4 (3)
1
1
-1
1
1
-1
x4 (3)
2
1
1
1
1
-1
x7 (3)
3
1
1
-1
0
1
x7 (3)
2
1
-1
-1
0
1
x1 (1)
0
1
-1
0
0
1
x1 (1)
1
1
1
0
0
1
x0
9
2
-3
2
4
2
x0
12
2
3
2
4
2
Geval 1: x6 komt op zijn bovengrens.
Dit tableau is optimaal.
De optimale oplossing luidt: x1 = 1; x2 = 2; x3 = 1; x4 = 2; x5 = 0; x6 = 1; x7 = 2; x8 = 2. De optimale waarde is 12. Vraag 1.1 Beschouw het volgende LP-probleem: ¯ ( ) ¯ 2x + x ≤ 10; 0 ≤ x ≤ 4 1 2 1 ¯ . max 3x1 + 2x2 ¯ ¯ 5x1 + 3x2 ≤ 27; 0 ≤ x2 ≤ 5 Los dit probleem op met de simplex methode voor begrensde variabelen.
1.2.2
Herziene simplex methode en de productvorm van de inverse
De tot nu toe behandelde simplex methode in tableauvorm is alleen geschikt voor handberekening en kleine problemen. De technieken van de herziene simplex methode en de productvorm van de inverse zijn ontwikkeld om grote problemen op te kunnen lossen. In essentie is dit de reeds behandelde simplex methode, maar deze speciale technieken zijn effici¨enter t.a.v. de benodigde geheugenruimte en rekentijd. De tableaus zijn vaak gevuld met vele 0’en en het is eigenlijk overbodig om hiervoor ruimte te reserveren.
6
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
In een iteratie kiezen we eerst de variabele die in de basis gaat komen, daarna de variabele die de basis gaat verlaten en tenslotte bepalen we de nieuwe basisoplossing. De variabele xk die in de basis gaat komen moet een negatief element in de onderste rij hebben, d.w.z. de gereduceerde kosten zijn negatief: vk := pTB B −1 a•k − pk < 0. Meestal kiezen we voor de pivotkolom de kolom waarvan het getal vk het meest negatief is. Als we geen tableau hebben, dan moeten we de waarde pTB B −1 a•k − pk berekenen. Daarvoor hebben we B −1 nodig. Als we B −1 hebben, dan is het eenvoudig om pTB B −1 a•k − pk uit te rekenen en na te gaan of dit al of niet negatief is (als al deze getallen niet-negatief zijn, dan is de huidige oplossing optimaal). Om de variabele te bepalen die de basis gaat verlaten, moeten we nagaan welke basisvariabele het eerst negatief wordt als we xk vanaf 0 steeds groter maken. Hiervoor moeten we de quoti¨enten nemen van {B −1 b}i en {B −1 a•k }i , voor zover dit laatste getal positief is, en van deze quoti¨enten de kleinste nemen (als alle getallen {B −1 a•k }i niet-positief zijn, dan is er een oneindige oplossing). Als i = r behoort bij het kleinste quoti¨ent, dan geldt voor de nieuwe oplossing: xk =
{B −1 b}r {B −1 a•k }r
en xi = {B −1 b}i − {B −1 a•k }i · xk voor de overige basisvariabelen.
We zullen aangeven hoe we de verschillende getallen die we nodig hebben gaan berekenen. Daarbij gaan we eerst na hoe B −1 berekend wordt. Laat Bnieuw de nieuwe basismatrix zijn en Boud de oude. Dan geldt dat Bnieuw uit Boud wordt verkregen door de r-de kolom van Boud te vervangen door de kolom a•k , d.w.z. (zie Vraag 1.2) Bnieuw = Boud E, −1 −1 waarbij E de eenheidsmatrix is met in de r-de kolom de vector Boud a•k . Noteren we Boud a•k met
a∗•k , dan kunnen we schrijven:
E=
1 0 ···
a∗1k
0 ···
0 1 ···
a∗2k
0 ···
·
·
···
···
·
···
·
·
···
···
·
···
·
·
···
···
·
···
0 0 ···
a∗mk
0 ···
0
0 · . · · 1
De relatie Bnieuw = Boud E maakt het mogelijk om op een effici¨ente manier de inverse van Bnieuw −1 −1 uit de inverse van Boud te bepalen, immers Bnieuw = E −1 Boud . a∗ 1 0 · · · − a∗1k 0 · · · rk ∗ 0 1 · · · − a∗2k 0 · · · ark · · · · · · · · · ··· E −1 = · · ··· 1 · ··· a∗rk · · ··· ··· · ··· a∗mk 0 0 · · · − a∗ 0 ··· rk
Er geldt (zie Vraag 1.3) dat 0 0 · . · · 1
1.2. IMPLEMENTATIE ASPECTEN waarbij het element
1 a∗rk
7
in de r-de rij (en r-de kolom) staat. Omdat ook E −1 slechts in ´e´en kolom
van de eenheidsmatrix verschilt, kan deze worden opgeborgen als vector: we onthouden de r-de vector van E −1 en het getal r. E −1 heet de elementaire matrix. Laat Bt de basismatrix zijn na t iteraties en laat Bt van Bt−1 verschillen in de r-de kolom, die vervangen wordt door de kolom a•k . Dan geldt Bt = Bt−1 Et , waarbij Et de eenheidsmatrix is −1 met in de r-de kolom de vector Bt−1 a•k . Omdat we starten met als basis de eenheidsmatrix,
d.w.z. B0 = I, geldt Bt = E1 E2 · · · Et , zodat −1 Bt−1 = Et−1 Et−1 · · · E2−1 E1−1 .
Dus in iedere iteratie kan de inverse van de basis worden geschreven als het product van elementaire matrices. Vandaar de naam productvorm van de inverse. Voor de verdere berekeningen is het handig eerst na te gaan hoe de vermenigvuldiging van een vector c met de elementaire matrix E −1 verloopt. Dit kan zijn cT E −1 , de navermenigvuldiging, of E −1 c, de voorvermenigvuldiging. De r-de vector van E −1 , d.w.z. de vector die in het algemeen geen eenheidskolom is, noteren we met g. Navermenigvuldiging
cT E −1
= (c1 , c2 , . . . , cm )
Dus cT E −1
1 0 ···
g1
0 ···
0 1 ···
g2
0 ···
0
0 Pm · · ··· ··· · ··· · = (c1 , c2 , . . . , cr−1 , i=1 ci gi , cr+1 , · · · , cm ). · · · · · gr · · · · · · · ··· ··· · ··· · 0 0 · · · gm 0 · · · 1 P wordt uit c verkregen door cr te vervangen door m i=1 ci gi .
Voorvermenigvuldiging 1 0 · · · g1 0 1 · · · g2 · · ··· ··· E −1 c = · · · · · gr · · ··· ··· 0 0 ···
gm
0 ··· 0 ··· ·
···
·
···
·
···
0 ···
0
0 · · · 1
c1
c1 + g1 cr
c2 c2 + g2 cr ... ... = gr cr cr ... ... cm + gm cr cm
=
c1
g1
g2 c2 ... ... + cr gr 0 ... ... gm cm
.
Dus E −1 c wordt uit c verkregen door eerst de r-de component van c gelijk aan 0 te maken en dan bij deze vector cr keer de vector g op te tellen. Bepaling duale variabelen vj In de t-de iteratie berekenen we eerst pTB Bt−1 , en wel op de volgende manier. Bepaal eerst, met navermenigvuldiging, uT = pTB Et−1 . Bepaal vervolgens, eveneens met −1 navermenigvuldiging, uT Et−1 , etc. Op deze wijze berekenen we in t stappen −1 pTB Bt−1 = pTB Et−1 Et−1 · · · E2−1 E1−1 .
8
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
Vervolgens kunnen eenvoudig voor iedere niet-basisvariabele xj de getallen vj = pTB Bt−1 a•j − pj worden berekend. Van de niet-basisvariabele xj = (xB )r , die net een niet-basisvariabele is geworden, weten we dat vj > 0: voor deze variabele kunnen we de berekening dus overslaan. Bepaling kolom g die de elementaire matrix geeft Laat in de t-de iteratie de pivotkolom de kolom bij xk zijn. Dan moet eerst −1 a∗•k = Bt−1 a•k = Et−1 Et−1 · · · E2−1 E1−1 a•k
worden bepaald. Deze vector krijgen we door de vector a•k t keer voor te vermenigvuldigen, met E1−1 , E2−1 tot en met Et−1 . Als a∗•k ≤ 0, dan stoppen we met als conclusie dat het probleem een onbegrensde oplossing heeft. Als dat niet het geval is, dan bepalen we op de gewone manier de pivotrij. Daarvoor moeten we in iedere iteratie het rechterlid b mee transformeren. Dit geeft in iteratie t ´e´en voorvermenigvuldiging met Et−1 om de waarde b∗ te updaten. Hiermee kan dan de pivotrij r worden bepaald en daarmee g t , de g in de t-de iteratie: gt =
³ −
a∗2k a∗mk ´T a∗1k 1 . , − , · · · , , · · · , − a∗rk a∗rk a∗rk a∗rk
Update van de inverse van de basis In iedere iteratie komt er een elementaire matrix bij die we moeten onthouden, d.w.z. de bijbehorende vector g en de component r moeten we onthouden. Als het aantal iteraties groot wordt geeft dit problemen. Het is dan verstandig om af en toe een herinversie uit te voeren, d.w.z. expliciet B −1 uit te rekenen als product van de elementaire matrices: −1 Bt−1 = Et−1 Et−1 · · · E2−1 E1−1 .
Vervolgens kan hier in volgende iteraties weer op worden ’teruggerekend’: deze Bt−1 vervult dan dezelfde rol als B0−1 = I in de eerste iteraties. Algoritme 1.1 De (t + 1)-ste iteratie van de productvorm algoritme Invoer: De elementaire matrices E1 , E2 , . . . , Et , gegeven door de vectoren g 1 , g 2 , . . . , g t en de getallen r1 , r2 , . . . , rt . Uitvoer: De elementaire matrix Et+1 , gegeven door de vector g t+1 en het getal rt+1 ; of de conclusie dat de huidige oplossing optimaal is; of de conclusie dat er een oneindige optimale oplossing is. 1. Update b∗ door voorvermenigvuldiging met de elementaire matrix Et−1 . −1 2. Bepaal uT = pTB B −1 door herhaalde navermenigvuldiging met Et−1 , Et−1 tot en met E1−1 .
1.2. IMPLEMENTATIE ASPECTEN
9
3. Bepaal voor de niet-basisvariabelen xj (behalve die er het laatst bij is gekomen) de duale variabelen vj = uT a•j − pj . 4. Als alle vj ’s niet-negatief zijn: de oplossing is optimaal en stop. Anders: Kies k zdd. vk ≤ vj voor alle niet-basisvariabelen xj . 5. Bepaal a∗•k = B −1 a•k door herhaalde voorvermenigvuldiging met E1−1 , E2−1 tot en met Et−1 . 6. Als a∗•k ≤ 0: er is een oneindige oplossing en stop. ¯ ½ ¾ b∗i ¯¯ ∗ b∗r Anders: bepaal pivotrij r zdd. a∗ = min a∗ ¯ aik > 0 . rk
ik
−1 7. Bepaal de vector g t+1 en de component rt+1 die Et+1 vastleggen.
Oplossing duale probleem T = pT B −1 N − pT de Uit de algemene theorie van de lineaire optimalisering volgt dat vB = 0, vN B N
oplossing van het duale probleem is. Voorbeeld 1.2 Beschouw het volgende LP-probleem: ¯ ¯ = 12; x1 , x2 ≥ 0 ¯ 4x1 + 2x2 + x3 ¯ ¯ max 21x1 + 14x2 ¯ x1 + x4 = 2; x3 , x4 ≥ 0 ¯ ¯ 2x1 + 3x2 + x5 = 12; x5 ≥ 0
.
Iteratie 1: De basisvariabelen zijn x3 , x4 en x5 , en E0−1 = I. b∗ = (12, 2, 12)T ; u = (0, 0, 0)T . 4 2 v1 = (0, 0, 0) 1 − 21 = −21; v2 = (0, 0, 0) 0 − 14 = −14. 2
3
2 12 1 T k = 1 (bij x1 ); a∗•1 = a•1 = (4, 1, 2)T ; min{ 12 4 , 1 , 2 } = 2 en r1 = 2 (bij x4 ); g = (−4, 1, −2) .
Iteratie 2: De basisvariabelen zijn x3 , x1 en x5 . −4 4 12 −1 T ∗ b = 0 + 2 · 1 = 2 ; u = (0, 21, 0)E1 = (0, 21, 0). 12
−2 8 2 2 −1 ∗ v2 = (0, 21, 0) 0 − 14 = −14; k = 2 (bij x2 ); a•2 = E1 a•2 = 0 3 3 min{ 42 , ∞, 83 } = 2 en r2 = 1 (bij x3 ); g 2 = ( 12 , 0, − 23 )T .
−4
2
+ 0 · 1 = 0 . −2 3
10
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
Iteratie 3: De basisvariabelen zijn x2 , x1 en x5 . 1 0 2 2 −1 −1 −1 T ∗ b = 2 + 4 · 0 = 2 ; u = (14, 21, 0)E2 E1 = (7, 21, 0)E1 = (7, −7, 0). 2 − 32 0 −1 −1 ∗ v4 = (7, −7, 0) 1 − 0 = −7; k = 4 (bij x4 ). a•4 = E2 E1 a•4 = 8
0 1 0 −4 −4 0 −2 2 −1 −1 0 = 1 . E2 + 1 · = E = − 4 · 0 1 1 1 2 0 −2 −2 − 23 −2 4 min{∞, 21 , 24 } =
1 2
en r3 = 3 (bij x5 ). g 3 = ( 12 , − 14 , 14 )T .
Iteratie 4: De basisvariabelen zijn x2 , x1 en x4 . 1 2 3 2 + 2 · −1 = 3 . b∗ = 2 4 2 1 4
0
1 2
−1 7 35 7 uT = (14, 21, 0)E3 −1E2−1 E1−1 = (14, 21, 74 )E2−1 E1−1 = ( 35 8 , 21, 4 )E1 = ( 8 , 0, 4 ). 1 35 7 v3 = ( 8 , 0, 4 ) 0 − 0 = 35 8 .
0 Het huidige tableau is optimaal. De optimale oplossing luidt xB = b∗ en xN = 0, d.w.z. x2 = 3, x1 = 23 , x4 = 21 , x3 = x5 = 0. Het duale probleem luidt: min 12u1 + 2u2 + 12u3 met als optimale oplossing u1 =
35 8 ,
¯ ¯ ¯ 4u1 + u2 + 2u3 ≥ 21 ¯ ¯ 2u1 . + 3u3 ≥ 14 ¯ ¯ ¯ u1 , u2 , u3 ≥ 0
u2 = 0, u3 = 74 .
Vergelijking gewone en herziene simplex methode. Laten we uitgaan van een LP-probleem met n variabelen en m ongelijkheden. Een gewoon simplex tableau heeft m + 1 rijen en n + 1 kolommen. Per iteratie moeten de pivotkolom en pivotrij worden bepaald (complexiteit O(n) resp. O(m)) en moeten alle elementen van het tableau worden aangepast (complexiteit O(nm)). De complexiteit van een iteratie van de herziene simplex methode is minstens O(nm) (alleen stap 3 heeft al deze complexiteit). De winst van de herziene simplex methode zit in feite in de geheugenopslag. Deze is in de gewone simplex methode O(nm) en in de herziene simplex methode (als we na hoogstens m iteraties een herinverzie doen) O(m2 ). In de meeste practische problemen is n vele malen groter dan m, zodat dit een aanzienlijk verschil geeft.
1.3. GEVOELIGHEIDSANALYSE
11
Verder zijn er nog geavanceerde technieken, die we hier niet zullen behandelen, die verdere voordelen aan de herziene simplex methode geven. Deze betreffen het gebruik van de spaarzaamheid, d.w.z. dat de meeste elementen in de vectoren 0 zijn, en LU-decompositie. 1 Vraag 1.2 Laat zien dat als xk in de basis komt op plaats r, dan geldt: Bnieuw = Boud E, waarbij E de −1 eenheidsmatrix is met in de r-de kolom de vector Boud a•k .
Vraag 1.3 Toon aan dat als xk in de basis komt op plaats r, de bijbehorende elementaire matrix E −1 de eenheidsmatrix is, waarin de r-de kolom vervangen is door een kolom met op plaats r het element 1 a∗rk
a∗
en op de plaatsen i 6= r de elementen − a∗ik . rk
1.2.3
Opgaven
Opgave 1.1 Bepaal met de simplex methode voor begrensde variabelen een optimale oplossing van ¯ ( ) ¯ x + x + x ≤ 6; 0 ≤ x ≤ 3 2 3 1 ¯ 1 max 2x1 + x2 + x3 ¯ . ¯ x1 − x2 + x3 ≤ 1; 0 ≤ x3 ≤ 2 Opgave 1.2 Bepaal met de herziene simplex methode ¯ ¯ ¯ x1 ¯ max x1 + 2x2 − x3 ¯¯ −x1 ¯ ¯ 2x 1
een optimale oplossing van +
x2 +
x3 ≤ 4;
+ 2x2 − 2x3 ≤ 6; x1 , x2 , x3 ≥ 0 +
x2
≤ 5;
.
Geef ook het duale probleem en de optimale oplossing ervan.
1.3
Gevoeligheidsanalyse
In deze paragraaf zullen we onderzoeken hoe veranderingen in de gegevens van het het probleem doorwerken in de optimale oplossing. We zullen de volgende veranderingen bespreken: 1. veranderingen in ´e´en co¨effici¨ent van de doelfunctie. 2. veranderingen in ´e´en co¨effici¨ent van het rechterlid. 3. veranderingen in meer co¨effici¨enten van het rechterlid of doelfunctie. 4. veranderingen in een kolom van een niet-basisvariabele. 5. toevoegen van een nieuwe activiteit (variabele). 6. parametrische programmering. 1
Voor deze technieken zie bijvoorbeeld: M.S. Bazaraa, J.J. Jarvis and H.D. Sherali, Linear programming and
network flows, Wiley, 1990.
12
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
Beschouw het LP-probleem in de gedaante max P
P j
pj xj met de volgende beperkingen:
j
aij xj ≤ bi , i ∈ I1 , met bi ≥ 0 voor alle i ∈ I1 ;
j
aij xj ≤ bi , i ∈ I2 , met bi < 0 voor alle i ∈ I2 ;
j
aij xj = bi , i ∈ I3 , met bi ≥ 0 voor alle i ∈ I3 ;
P
P
xj ≥ 0, j = 1, 2, . . . , n. Door niet-negatieve verschilvariabelen yi , i ∈ I1 ∪ I2 , en schijnvariabelen zi , i ∈ I2 ∪ I3 , in te voeren schrijven we het stelsel in de vorm: P −
P P
j
aij xj
j
aij xj
j
aij xj
+ yi
= − yi + zi
bi , i ∈ I1 ;
= −bi , i ∈ I2 ; +zi =
bi , i ∈ I3 ;
xj ≥ 0, j = 1, 2, . . . , n; yi ≥ 0, i ∈ I1 ∪ I2 ; zi ≥ 0, i ∈ I2 ∪ I3 . Al deze variabelen stoppen we in ´e´en grote vector x, die we opsplitsen in een vector van basisvariabelen xB en een vector van niet-basisvariabelen xN . Het optimale tableau heeft de gedaante: xB = B −1 b ≥ 0
xN
uN = pTB B −1 N − pTN ≥ 0, waarbij de niet-negativiteit niet
xB
B −1 b
B −1 N
x0
pTB B −1 b
pTB B −1 N − pTN
1.3.1
hoeft te gelden voor de elementen in de kolommen van de schijnvariabelen.
Veranderingen in ´ e´ en co¨ effici¨ ent van de doelfunctie
Veranderingen in de doelfunctie hebben geen invloed op de toelaatbaarheid: B blijft een goede basismatrix, maar wel kan de niet-negativiteit van uN in gevaar komen. Voor iedere co¨effici¨ent pj van de doelfunctie kunnen we onder- en bovengrenzen berekenen waarvoor de huidige oplossing xB = B −1 b, xN = 0 nog steeds optimaal is. Stel pj wordt vervangen door pj + λ, d.w.z. in plaats van de vector p hebben we de vector p∗ met ( p∗i =
pi
als i 6= j;
pj + λ als i = j.
Laat ei de i-de eenheidsvector zijn. We onderscheiden de volgende twee gevallen: ( p∗N = pN ; a. xj is een basisvariabele, zeg xj = (xB )k , zodat: p∗B = pB + λek . u∗N = (p∗B )T B −1 N − (p∗N )T = {pB + λek }T B −1 N − pTN = uN + λ(ek )T B −1 N = uN + λ{B −1 N }k• . u∗N is dus de oude vector plus λ maal de k-de rij van het tableau. Hiervoor moet de nietnegativiteit gelden, waaruit eenvoudig het bereik van λ is te bepalen. We merken weer op dat de niet-negativiteit niet nodig is voor de co¨effici¨enten die behoren bij de z-variabelen.
1.3. GEVOELIGHEIDSANALYSE
13 (
b. xj is een niet-basisvariabele, zeg xj = (xN )k , zodat:
p∗N = pN + λek ; p∗B = pB .
u∗N = (p∗B )T B −1 N − (p∗N )T = (pB )T B −1 N − {pTN + λek }T = uN − λ(ek )T . Voor de niet-negativiteit van u∗N moet dus gelden λ ≤ (uN )k , d.w.z. de huidige oplossing blijft optimaal voor p∗j ≤ pj + (uN )k .
1.3.2
Veranderingen in ´ e´ en co¨ effici¨ ent van het rechterlid
Veranderingen in het rechterlid hebben geen invloed op de niet-negativiteit van uN , echter wel op die van xB = B −1 b. Ook nu kunnen we voor iedere co¨effici¨ent bi van het rechterlid onder- en bovengrenzen bepalen waarvoor de huidige basis nog steeds een optimale basis is, met wel andere waarden voor de basisvariabelen. Stel bj wordt vervangen door bj + λ, d.w.z. in plaats van de vector b hebben we de vector b∗ met b∗i =
(
bi
als i 6= j
bj + λ als i = j
.
Als i ∈ I1 , dan beschouwen we yi als de bij de i-de gelijkheid behorende variabele; als i ∈ I2 ∪ I3 , dan is zi de bijbehorende variabele. Indien i ∈ I2 , dan is het rechterlid -bi . We onderscheiden weer de volgende twee gevallen: a. De bij de j-de gelijkheid behorende variabele is een basisvariabele, zeg op plaats k: Dan is B•k = ej , zodat geldt: B −1 b∗ = B −1 {b + λej } = B −1 b + λB −1 B•k = B −1 b + λek . Voor de niet-negativiteit moet dus gelden: λ ≥ −{B −1 b}k , d.w.z. de huidige oplossing blijft optimaal voor b∗j ≥ bj − (xB )k . b. De bij de j-de gelijkheid behorende variabele is een niet-basisvariabele, zeg op plaats k: Dan is N•k = ej , zodat geldt: B −1 b∗ = B −1 {b + λej } = B −1 b + λB −1 N•k . B −1 b∗ is dus de oude vector plus λ maal de k-de kolom van het tableau. Hiervoor moet de niet-negativiteit gelden, waaruit het bereik van λ volgt.
1.3.3
Veranderingen in meer co¨ effici¨ enten van het rechterlid (of doelfunctie)
Veronderstel dat het rechterlid van b verandert in b∗ = b + ∆b. Ook deze verandering heeft geen invloed op de niet-negativiteit van uN , echter wel op die van B −1 b. Laat x0 de optimale oplossing van het oorspronkelijke probleem zijn en xi een optimale oplossing voor het probleem met b vervangen door b + ∆max ei , waarbij ∆max de maximale waarde (als i i (∆b)i ≥ 0) of de minimale waarde (als (∆b)i < 0) van λ is, zoals die volgens de methode van de vorige paragraaf gevonden kan worden. Omdat B in alle gevallen de bijbehorende basismatrix is, geldt Bxi = b + ∆max ei , 1 ≤ i ≤ m. i Pm max Veronderstel dat (∆b)i = λi ∆i met λi ≥ 0, 1 ≤ i ≤ m en i=1 λi ≤ 1. Pm P max i Laat λ0 = 1 − i=1 λi , ∆0 = 0 en beschouw x = m i=0 λi x . Dan geldt: P Pm Pm i max e ) = b + max e ) = b + ∆b = b∗ . x ≥ 0 en Bx = m i i i=0 λi Bx = i=0 λi (b + ∆i i=1 λi (∆i
14
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
B blijft dus een optimale basismatrix. Deze regel, dat de basis optimaal blijft voor veranderingen die (maximaal) convexe combinaties zijn van de maximale veranderingen van de componenten bi , heet de 100%-regel. Opmerking Op analoge wijze is af te leiden dat de huidige oplossing optimaal blijf voor veranderingen in de doelfunctie die (maximaal) convexe combinaties zijn van de maximale veranderingen van de componenten pj . Vraag 1.4 a. Los met de simplex methode het volgende probleem op: ¯ ( ) ¯ −x + 2x3 ≤ 8; 1 ¯ max −2x1 + 2x2 + 3x3 ¯ x1 , x2 , x3 ≥ 0 . ¯ x1 + 2x2 + x3 = 8; b. Voer de gevoeligheidsanalyse uit op: - de co¨effici¨enten van x1 en x2 uit de doelfunctie; - de beide co¨effici¨enten van het rechterlid.
1.3.4
Veranderingen in een kolom van een niet-basisvariabele
Veronderstel dat een kolom van A verandert in de vector a∗ en dat deze kolom behoort bij de k-de niet-basisvariabele (xN )k . Dit heeft - voor de controle op toelaatbaarheid en optimaliteit alleen gevolgen voor de waarde van (uN )k (ga dit zelf na). Uit het simplex tableau volgt dat de nieuwe waarde, zeg (u∗N )k , voldoet aan (u∗N )k = pTB B −1 a∗ − (pN )k . Er geldt dat pTB B −1 = uT , immers (analoog aan wat we hebben gedaan bij verandering in ´e´en co¨effici¨ent van het rechterlid): als de bij de j-de gelijkheid behorende variabele een basisvariabele is, zeg op plaats k, −1 d.w.z. B•k = ej , ofwel ek = B•j , dan geldt: uj = (uB )k = 0 en ook −1 {pTB B −1 }j = pTB B•j = pTB ek = (pB )k = 0;
als de bij de j-de gelijkheid behorende variabele een niet-basisvariabele is, zeg op plaats k, d.w.z. N•k = ej , dan geldt: uj = (uN )k = pTB B −1 N•k − (pN )k = pTB B −1 ej − 0 = {pTB B −1 }j . We kunnen dus schrijven: (u∗N )k = uT a∗ − (pN )k , waaruit volgt dat de waarde (u∗N )k eenvoudig te berekenen is. Indien (u∗N )k ≥ 0, dan is de huidige oplossing nog steeds optimaal; indien (u∗N )k < 0, dan moet deze kolom als pivotkolom worden gekozen en moet er verder worden ge¨ıtereerd. In het tableau moet dan de oude k-de kolom worden vervangen door B −1 a∗ . Om deze nieuwe kolom te berekenen moeten we dus B −1 kennen. De matrix B −1 kan uit het simplex tableau worden afgelezen en wel als volgt:
1.3. GEVOELIGHEIDSANALYSE
15
a. Als de variabele bij de i-de beperking (yi als i ∈ I1 , anders zi ) een niet-basisvariabele is en hoort bij de k-de kolom van het tableau, dan geldt N•k = ei , dus B −1 N•k = B −1 ei = {B −1 }•i , d.w.z. de i-de kolom van B −1 is de k-de kolom van het tableau. b. Als de variabele bij de i-de beperking een basisvariabele is en hoort bij het k-de element van de basis, dan geldt B•k = ei , dus B −1 B•k = B −1 ei , dus ek is de i-de kolom van B −1 .
1.3.5
Toevoegen van een nieuwe activiteit/variabele
Het toevoegen van een nieuwe activiteit met kolom a∗ en co¨effici¨ent p∗ in de doelfunctie kan op dezelfde wijze worden ingepast in de methode als het veranderen van een kolom van een niet-basisvariabele: beschouw de variabele van deze activiteit in het huidige probleem als een niet-basisvariabele met in de kolom incl. de onderste rij allemaal nullen, en vervang deze door B −1 a∗ resp. uT a∗ − p∗ . Voorbeeld 1.3 Beschouw het volgende LP-probleem: ¯ ¯ + x3 ≤ 5; x1 ≥ 0 ¯ x1 ¯ ¯ . max x1 + x2 + x3 ¯ − x2 + x3 ≤ −1; x2 ≥ 0 ¯ ¯ −x1 − 2x2 + 3x3 = 2; x3 ≥ 0 Het optimale simplex tableau van dit probleem is: x1
z2
z3
y1
1
-1
2
0
- 12 - 12
1 2 3 2
5
1
0
0
1
23 2
2
0
- 12
5 2
x2
1 2 13 2
x3 x0
y2
We zullen de volgende veranderingen bekijken: 1. de co¨effici¨enten van de variabelen x1 en x2 in de doelfunctie; 2. de co¨effici¨enten b1 en b2 van het rechterlid; 3. een nieuwe kolom voor de variabele x1 .
1. De co¨effici¨enten van de x1 en x2 in de doelfunctie: p1 : λ ≤ 2: de huidige oplossing blijft optimaal voor p1 ≤ 1 + 2 = 3. p2 : (2, 25 ) + λ(2, 32 ) ≥ 0, d.w.z. λ ≥ −1 : de huidige oplossing blijft optimaal voor p2 ≥ 1 − 1 = 0. 2. De co¨effici¨enten van b1 en b2 in de doelfunctie: 1 3 b1 : ( 21 , 13 2 , 5) + λ( 2 , 2 , 1) ≥ 0, d.w.z. λ ≥ −1: de huidige oplossing blijft optimaal voor
b1 ≥ 5 − 1 = 4. 1 b2 : ( 12 , 13 2 , 5) + λ(−1, 0, 0) ≥ 0, d.w.z. λ ≤ 2 : de huidige oplossing blijft optimaal voor
b2 ≤ 1 +
1 2
=
3 2
(merk op dat de tweede beperking in de standaardschrijfwijze luidt:
x2 − x3 − y2 + z2 = 1). 3. Veronderstel vervolgens dat de kolom van x1 wordt veranderd in a∗ = (0, 0, −1). Dan geldt: (u∗N )1 = uT a∗ − (pN )1 = ( 25 , 0, − 12 )(0, 0, −1)T − 1 = − 21 , dus het tableau is niet meer optimaal. Uit het tableau volgt B −1 :
16
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2) B −1
=
1 2 3 2
−1 − 12
1 2 3 2
−1 a∗ = , dus B 0 − 12 0 0 1
1
−1 − 12
1
0
2 0 = 1 . 0 − 12 2 0 0 −1 0
Het nieuwe tableau wordt: z3
y1
−1 0
− 12 − 12
1 2 3 2
x1
x2
x1 ∗1 2 1 2
z2
1 2 13 2
x3
5
0
0
0
x0
23 2
− 12
0
− 12
y2
1.3.6
De optimale oplossing is:
y2
z2
z3
y1
1
2
-2
-1
1
x1 = 1, x2 = 6, x3 = 5
x2
6
-1
1
0
1
met waarde 12.
1
x3
5
0
0
0
1
De duale oplossing is:
5 2
x0
12
1
-1
-1
3
u1 = 3, u2 = 1, u3 = −1.
Parametrische programmering
Bij parametrische programmering beschouwen we i.p.v. een vaste vector, zoals de vector p in de doelfunctie, een vector die de som is van een vaste vector en een parameter, zeg λ, maal een andere vaste vector. Doen we dit voor de doelfunctie, dan wordt het parametrisch LP-probleem: max{(p + λq)T x | Ax ≤ b; x ≥ 0}
(1.7)
Als we het rechterlid parametriseren, dan beschouwen we het probleem max{pT x | Ax ≤ b + λc; x ≥ 0}
(1.8)
Parametrische programmering van de doelfunctie We beschouwen probleem (1.7) en we gaan uit van een optimaal tableau voor de oorspronkelijke doelfunctie pT x met bijbehorende optimale basis B. Dan is xB = B −1 b onveranderd, dus nog steeds een toelaatbare oplossing. Voor de gewijzigde uN , zeg u∗N is de gewijzigde, geldt: T −1 T u∗N = (pB + λqB )T B −1 N − (pN + λqN )T = uN + λ(qB B N − qN ).
Om in te zien of de huidige oplossing ook optimaal is, moeten we nagaan voor welke waarden van λ de vector u∗N ≥ 0 is. Daartoe nemen we vanaf het eerste simplex tableau naast pT x ook q T x als rij mee in de simplex tableaus. In het tableau van basis B is nu eenvoudig na te gaan tot welke waarde, vanaf 0, λ kan stijgen zonder de optimaliteit in gevaar te brengen. Voor zekere waarde van λ en voor een zekere niet-basisvariabele, zeg (xN )j , zal T −1 T (uN )j + λ(qB B N − qN )j
gelijk aan 0 zijn en bij verdere stijging negatief worden. Zo’n kolom j wordt dan pivotkolom, waarna we een pivotoperatie uitvoeren en nagaan hoever λ verder kan stijgen, etc. Op analoge manier kunnen we vanuit λ = 0 de parameter λ laten dalen, steeds negatiever maken en telkens de optimaliteit onderzoeken. We zullen dit demonstreren in onderstaand voorbeeld.
1.3. GEVOELIGHEIDSANALYSE
17
Voorbeeld 1.4 (
¯ ) ¯ x + 2x + x ≤ 5; x1 , x2 ≥ 0 1 2 3 ¯ max (2 − λ)x1 + (1 − λ)x2 + (−3 + λ)x3 ¯ . ¯ −x1 + x2 − 3x3 ≤ −2; x3 ≥ 0 Het optimale tableau voor λ = 0 staat hieronder (de kolom van de z2 is weggelaten, want deze doet niet meer ter zake). De rij bij pT x noemen we u(p) en de rij bij q T x heet u(q). De optimale waarde van de parametrische functie noemen we z(λ). y1
x2
x3
y2
x2
y2
x2
x1
∗ 13 − 31
7 3 − 13
2 3 1 3
x3
y2
3
*1
3
-2
y1
3
1
3
-2
y1
x1
5
1
2
1
x1
2
-1
-1
*3
x3
13 3 2 3
u(p)
10
2
3
5
u(p)
4
-2
-3
9
u(p)
-2
1
0
-3
u(q)
2 3
− 31
2 3
4 3
u(q)
-5
-1
-1
-2
u(q)
Dit tableau is optimaal
-2
1
2
-4
Dit tableau is optimaal 9 4
voor
9 4
≤ λ ≤ 3 met
voor λ ≤ 2 met bijbe-
voor 2 ≤ λ ≤
horende oplossing:
bijbehorende oplossing:
bijbehorende oplossing:
x1 = 5, x2 = x3 = 0 en
x1 = 2, x2 = x3 = 0 en
x1 = x2 = 0, x3 =
z(λ) = 10 − 5λ.
met
Dit tableau is optimaal
z(λ) = 4 − 2λ.
y1
x2
x1
y2
13
3
7
2
x3
5
1
2
1
u(p)
-15
-3
-7
-5
u(q)
5
1
3
2
z(λ) = −2 +
2 3
en
2 3 λ.
Dit tableau is optimaal voor λ ≥ 3 met bijbehorende oplossing: x1 = x2 = 0, x3 = 5 en z(λ) = −15 + 5λ.
Stelling 1.1 z(λ) is een stuksgewijze lineaire, convexe functie van λ. Bewijs Uit bovenstaande methode volgt dat z(λ) op intervallen een lineaire functie is. We zullen nu de convexiteit aantonen. Kies λ1 en λ2 , en laat λ = αλ1 + (1 − α)λ2 , waarbij α ∈ [0, 1]. Veronderstel dat x1 en x2 optimale oplossingen zijn bij λ1 , resp. λ2 , en laat x een optimale oplossing bij λ zijn. We moeten bewijzen dat z(λ) ≤ αz(λ1 ) + (1 − α)z(λ2 ). αz(λ1 ) + (1 − α)z(λ2 ) = α(p + λ1 q)T x1 + (1 − α)(p + λ2 q)T x2 ≥ α(p + λ1 q)T x + (1 − α)(p + λ2 q)T x © ªT = p + {αλ1 + (1 − α)λ2 }q x = (p + λq)T x = z(λ).
18
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
Parametrische programmering van het rechterlid We beschouwen nu probleem (1.8) en we gaan weer uit van een optimaal tableau voor het oorspronkelijke rechterlid b met bijbehorende optimale basis B. Dan is uTN = pTB B −1 N − pTN onveranderd, dus nog steeds een duaal toelaatbare oplossing. Voor de gewijzigde primale oplossing, zeg x∗B , geldt x∗B = B −1 (b + λc) = B −1 b + λB −1 c. Om in te zien of de huidige oplossing ook toelaatbaar is, moeten we nagaan voor welke waarden van λ de vector B −1 b + λB −1 c ≥ 0 is. Daartoe nemen we vanaf het eerste simplex tableau naast b ook c als kolom mee in de simplex tableaus. In het tableau van basis B is nu eenvoudig na te gaan tot welke waarde, vanaf 0, λ kan stijgen zonder de toelaatbaarheid in gevaar te brengen. Voor zekere waarde van λ en voor een zekere basisvariabele, zeg (xB )i , zal B −1 b + λB −1 c ≥ 0 gelijk aan 0 zijn en bij verdere stijging negatief worden. Zo’n rij i wordt dan pivotrij, waarna we een pivotoperatie uitvoeren en nagaan hoever λ verder kan stijgen, etc. Hiervoor gebruiken we een andere versie van de simplex methode, de zogenaamde duale simplex methode. De duale simplex methode is in feite de gewone simplex methode, maar dan toegepast op het duale probleem. Deze zal later in sectie 1.4 worden behandeld, maar we vermelden nu reeds zonder bewijs hoe een iteratie verloopt. Algoritme 1.2 Een iteratiestap van de duale simplex methode Invoer: Een duaal toelaatbaar tableau met elementen b∗ en d∗ voor het getransformeerde rechterlid resp. de getransformeerde doelfunctie en met A∗ voor de elementen in het inwendige. Uitvoer: Een duaal toelaatbaar tableau met elementen b∗∗ , d∗∗ en A∗∗ , verkregen door transformatie uit het vorige tableau; of de conclusie dat de huidige oplossing optimaal is; of de conclusie dat het probleem ontoelaatbaar is. 1. Als b∗i ≥ 0 voor alle i: ga naar stap 7. 2. Kies als pivotrij een rij r, behorende bij een basisvariabele met b∗r < 0. 3. Als de pivotrij geen negatieve elementen bevat: het LP-probleem is ontoelaatbaar (STOP). ¯ ( ) ¯ d∗j ¯ ∗ d∗k 4. Bepaal de pivotkolom k zdd. −a∗ = min j −a∗rj ¯¯ arj < 0 . rk 5. Voer een pivotoperatie uit: Verwissel de variabelen (xB )r en (xN )k . b∗r a∗ik a∗rk ,
d∗
b∗∗ r :=
b∗r a∗rk ;
∗ b∗∗ i := bi −
a∗∗ rj :=
a∗rj a∗rk ,
∗∗ ∗ ik j 6= k; a∗∗ ik := − a∗ , i 6= r; aij := aij −
∗∗ ∗ k i 6= r; d∗∗ k := − a∗ ; dj := dj − rk
a∗
rk
a∗rj a∗ik a∗rk ,
a∗rj d∗k a∗rk ,
j 6= k.
j 6= k, i 6= r; a∗∗ rk :=
1 a∗rk .
6. Ga naar stap 1. 7. De optimale oplossing is gevonden: de basisvariabelen krijgen de waarde van de corresponderende b∗i ’s, de overige variabelen hebben de waarde 0; de waarde van het optimum is gelijk aan b∗m+1 . De duale oplossing is op de bekende wijze af te leiden uit de onderste rij.
1.3. GEVOELIGHEIDSANALYSE
19
Op analoge manier kunnen we vanuit λ = 0 de parameter λ laten dalen, steeds negatiever maken en telkens de optimaliteit onderzoeken. We zullen dit demonstreren in onderstaand voorbeeld.
Voorbeeld 1.5 ¯ ( ) ¯ x + x ≤ 6 − λ; x ≥ 0 1 2 1 ¯ max x1 + 3x2 ¯ . ¯ −x1 + 2x2 ≤ 6 + λ; x2 ≥ 0 Het optimale tableau voor λ = 0 staat hieronder (voor het rechterlid hebben we nu twee kolommen: de getransformeerde b∗ en c∗). b∗
c∗
y1
y2
2 3 1 3 5 3
∗- 1 3 1 3 2 3
x1
2
-1
x2
4
0
x0
14
-1
b∗
c∗
y1
x1
y2
-6
3
-2
-3
x2
6
-1
1
1
x0
18
-3
3
2
De optimale oplossing van dit tableau luidt:
Optimaal tableau voor λ > 2 met oplossing:
x1 = 2 − λ, x2 = 4 met waarde 14 − λ. Dit
x1 = 0, x2 = 6 − λ en waarde 18 − 3λ.
tableau is optimaal voor λ ≤ 2. Voor λ > 2
Voor λ > 6 wordt het rechterlid in de tweede
wordt het rechterlid in de eerste rij negatief:
rij negatief. Omdat er in de tweede rij geen
de eerste rij wordt pivotrij en de kolom van y2
negatief element staat, is er geen pivotkolom:
de pivotkolom.
voor λ > 6 is het probleem ontoelaatbaar.
Stelling 1.2 De doelfunctie z(λ) is een stuksgewijze lineaire, concave functie van λ. Bewijs Uit bovenstaande methode volgt dat z(λ) op intervallen een lineaire functie is. We zullen nu de concaviteit aantonen. Kies λ1 en λ2 , en laat λ = αλ1 + (1 − α)λ2 , waarbij α ∈ [0, 1]. We moeten bewijzen dat z(λ) ≥ αz(λ1 ) + (1 − α)z(λ2 ) en doen dat via het duale probleem. Veronderstel dat u1 en u2 optimale oplossingen van het duale probleem zijn bij λ1 , resp. λ2 , en laat u een optimale oplossing bij λ zijn. αz(λ1 ) + (1 − α)z(λ2 ) = α(b + λ1 c)T u1 + (1 − α)(b + λ2 c)T u2 ≤ α(b + λ1 c)T u + (1 − α)(b + λ2 c)T u © ªT = b + {αλ1 + (1 − α)λ2 }c u = (b + λc)T u = z(λ). Vraag 1.5 Bepaal voor alle waarden van λ de optimale oplossing van het LP-probleem ¯ ) ¯ x + x ≤ 6; x ≥ 0 1 2 1 ¯ . max (1 − 2λ)x1 + (3 − λ)x2 ¯ ¯ −x1 + 2x2 ≤ 6; x2 ≥ 0 (
20
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
1.3.7
Opgaven
Opgave 1.3 Beschouw het volgende LP-probleem: max −4x1 − 2x2 − 3x3
¯ ¯ ¯ x1 − x2 + x3 ≤ 4; x1 ≥ 0 ¯ ¯ x1 + x2 − x3 = 1; x2 ≥ 0 . ¯ ¯ ¯ x1 − x2 + x3 ≥ 2; x3 ≥ 0
a. Bepaal een optimale oplossing met de simplex methode. b. Wat is de optimale oplossing als een variabele x4 wordt toegvoegd met in de doelfunctie de co¨effici¨ent -1 en in de drie beperkingen resp. de co¨effici¨enten -2, 0 en 1. Beantwoord deze vraag zonder het nieuwe probleem van vooraf aan op te lossen, maar vanuit het in onderdeel a verkregen optimale tableau. Opgave 1.4 Beschouw het volgende LP-probleem: max 2x1 + 5x2
¯ ¯ ≤ 4; x1 ≥ 0 ¯ x1 ¯ ¯ x2 ≤ 3; x2 ≥ 0 ¯ ¯ ¯ x1 + x2 ≤ 6;
.
a. Bepaal een optimale oplossing met de simplex methode. b. Bepaal, uitgaande van het in onderdeel a gevonden optimale tableau, een optimale oplossing van hetzelfde probleem met daaraan toegevoegd een derde ¯ ¯ + 3x3 ¯ x1 ¯ ¯ max 2x1 + 5x2 + 9x3 ¯ x2 + 2x3 ¯ ¯ x1 + x2 + x3
variabele: ≤ 4; x1 ≥ 0 . ≤ 3; x2 ≥ 0 ≤ 6; x3 ≥ 0
c. Los voor alle waarden van λ het volgende parametrisch LP-probleem ¯ ¯ ≤ 4; x1 ≥ 0 ¯ x1 ¯ ¯ max (2 + λ)x1 + 5x2 ¯ x2 ≤ 3; x2 ≥ 0 ¯ ¯ x + x ≤ 6; 1
2
op: .
d. Los voor alle waarden van λ het volgende parametrisch LP-probleem op: ¯ ¯ ≤ 4; x1 ≥ 0 ¯ x1 ¯ ¯ . max 2x1 + 5x2 ¯ x2 ≤ 3 + λ; x2 ≥ 0 ¯ ¯ x + x ≤ 6; 1
2
Opgave 1.5 Beschouw het toevoegen van een rij aan een reeds opgelost LP-probleem, waarin B de optimale basismatrix is. Veronderstel dat de extra rij van de vorm aTm+1• x ≤ bm+1 is, en dat als de
1.4. DE DUALE EN DE PRIMALE-DUALE SIMPLEX METHODE
21
kolomÃvan de verschilvariabele ym+1 aan de basis matrix wordt toegevoegd deze de gedaante ! B 0 B∗ = heeft. ∗ am+1 1 à ! −1 B 0 a. Toon aan dat B∗−1 = is. −a∗m+1 B −1 1 b. Beschouw het volgende LP-probleem: ¯ ¯ −2x 1 ¯ ¯ ¯ 2x1 max 2x1 + 3x2 ¯¯ x1 ¯ ¯ ¯ x1
x2 ≤ 1; x1 ≥ 0 − 4x2 ≤ 5; x2 ≥ 0 . + x2 ≤ 3; + 2x2 ≤ 6; +
Los dit probleem op en bepaal vanuit deze oplossing de optimale oplossing van het probleem waaraan als extra beperking is toegevoegd: x1 + 3x2 ≤ 5. Gebruik voor extra pivot stappen de duale simplex methode.
1.4
De duale en de primale-duale simplex methode
1.4.1
De duale simplex methode
In de simplex methode hebben we (in fase II) steeds een toelaatbaar hoekpunt van het LPprobleem. Zodra de bijbehorende duale oplossing toelaatbaar is, zijn beide oplossingen optimaal. De duale simplex methode 2 doet iets omgekeerds: we hebben steeds een toelaatbaar hoekpunt van het duale LP-probleem en zodra de bijbehorende oplossing van het oorspronkelijke probleem toelaatbaar is, zijn beide oplossingen optimaal. Deze omgekeerde aanpak is in de volgende gevallen zinvol: 1. Als er niet eenvoudig een toelaatbaar hoekpunt van (1.2) is te vinden, maar wel van (1.4). Dit laatste is bijvoorbeeld het geval als p ≤ 0 (zie verder). 2.
Bij parametrische programmering van het rechterlid (zie vorige paragraaf) of als - nadat een LP-probleem is opgelost, zeg met de gewone simplex methode - het rechterlid b wordt vervangen door b0 , waarbij we hopen dat het nieuwe optimum niet ver van het oude is verwijderd. We vervangen dan in het optimale tableau bij basismatrix B de eerste kolom door B −1 b0 . Als B −1 b0 ≥ 0, dan is de huidige oplossing reeds optimaal, en anders voeren we enkele stappen van de duale simplex methode uit om de nieuwe optimale oplossing te vinden.
3.
Als, nadat het LP-probleem is opgelost, er extra voorwaarden worden gesteld waar de optimale LP-oplossing niet aan voldoet (zie Opgave 1.5). Dit wordt ook gebruikt bij bepaalde methoden om geheeltallige lineaire optimaliseringsproblemen op te lossen (zie het volgende hoofdstuk).
2
De duale simplex methode is in 1954 ontwikkeld door Beale en Lemke, onafhankelijk van elkaar. Zie resp.
E.M.L. Beale, An alternative method for linear programming, Proceedings of the Cambridge Philosophical Society 50 (1954) 513–523 en C.E. Lemke, The dual method for solving the linear programming problem, Naval Research Logistics Quarterly 1 (1954) 36–47.
22
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
De duale simplex methode is in feite de gewone simplex methode, maar dan toegepast op het duale LP-probleem (1.4). Daartoe moeten we dit duale probleem eerst in de standaard formulering voor een maximaliseringsprobleem schrijven, d.w.z. als max{(−b)T u | (−AT )u + v = −p; u, v ≥ 0}
(1.9)
1-ste geval: p ≤ 0: In dit geval is er een toelaatbare beginbasis, namelijk u = 0, v = −p (v is de vector van de basisvariabelen en de bijbehorende matrix is de eenheidsmatrix die inderdaad niet-singulier is). Volgens de orthogonaliteitsrelaties is de bijbehorende oplossing van het gewone LP-probleem: x = 0, y = b (als b ≥ 0, dan zijn beide oplossingen optimaal). Omdat er in het geval dat p ≤ 0 een toelaatbare duale oplossing bestaat heeft het oorspronkelijke LP-probleem geen oneindige oplossing (dit volgt uit de zwakke dualiteitsstelling). Als voor zekere i geldt dat b∗i < 0 en a∗ij ≥ 0 voor alle j, dan is het oorspronkelijke LP-probleem ontoelaatbaar (zie Vraag 1.7). Alle benodigde informatie staat in het gewone simplex tableau. Vanwege de matrix −AT moet het tableau gespiegeld beschouwd worden en, in vergelijking met (1.5), gelezen worden met tegengesteld teken, zoals in (1.6). Hieruit is direct in te zien dat een iteratiestap, zoals beschreven in Algoritme 1.2, correct is (ga dit zelf na). Door weer de regel van Bland te gebruiken (zie Besliskunde 1) kan de eindigheid van de duale simplex methode worden gegarandeerd. Immers, ieder de basis inkomend en de basis verlatend tweetal variabelen bij de gewone simplex methode heeft een corresponderend tweetal de basis verlatend en de basis inkomend variabelen voor de duale simplex methode. Het bewijs gaat verder geheel analoog als bij de gewone simplex methode. Voorbeeld 1.6 Beschouw het LP-probleem (
¯ ) ¯ x − 2x − x ≤ −2; 1 2 3 ¯ max −2x1 − 14x2 − 5x3 ¯ x ,x ,x ≥ 0 . ¯ −x1 − 2x2 − x3 ≤ −4; 1 2 3
De duale simplex methode is in onderstaande tableaus uitgevoerd; de pivot is met een ∗ aangeduid. x1
x2
x3
y2
x2
y1
-2
1
-2
-1
y1
-6
1
-4
x3 ∗ -2
y2
-4
∗ -1
-2
-1
x1
4
-1
2
1
x1
1
x0
0
2
14
5
x0
-8
2
10
3
x0
-17
x3
3
y2
x2
y1
- 12 - 12 7 2
2
- 12
0
1 2 3 2
4
Het laatste tableau is optimaal en de optimale oplossing luidt: x1 = 1, x2 = 0 en x3 = 3; de waarde is -17. Het duale probleem luidt: ¯ ¯ u1 − u2 ≥ −2; u1 ≥ 0 ¯ ¯ ¯ min −2u1 − 4u2 ¯ −2u1 − 2u2 ≥ −14; u2 ≥ 0 ¯ ¯ −u1 − u2 ≥ −5;
.
De optimale oplossing van het duale probleem is weer op de bekende manier af te lezen: u1 = 32 , u2 =
7 2
en de waarde is -17.
1.4. DE DUALE EN DE PRIMALE-DUALE SIMPLEX METHODE
23
2-de geval: p 6≤ 0: Nu kan niet direct een duaal toelaatbare oplossing worden gevonden. Voeg in dit geval aan het LPP probleem de extra rij nj=1 xj ≤ M toe met M een zeer groot getal, zodat de optimale oplossing aan deze extra beperking voldoet. Neem het begintableau volgens de duale simpex methode en voer eerst ´e´en stap uit volgens de gewone simplex methode met de extra rij als pivotrij en de kolom met de meest positieve pj als pivotkolom. Na deze stap krijgen we een tableau dat duaal toelaatbaar is (zie Vraag 1.8) en er kan worden vervolgd met de duale simplex methode.3 Als de P optimale oplossing x∗ voldoet aan nj=1 x∗j = M voor alle voldoend grote waarden van M , dan heeft het LP-probleem een oneindige optimale oplossing. Opmerking Als tijdens de duale simplex methode de verschilvariabele van de extra rij in de basis komt, dan kan deze rij uit het tableau worden verwijderd: het tableau is immers duaal toelaatbaar en de extra beperking is daarom niet meer nodig. Algoritme 1.3 Duale simplex methode (onder de aanname van geen oneindige oplossing). Invoer: Een LP-probleem in de gedaante (1.2) met geen oneindige oplossing. Uitvoer: Als (1.2) een eindige optimale oplossing heeft: de optimale oplossing (x∗ , y ∗ ) en de bijbehorende optimale oplossing (u∗ , v ∗ ) van het duale probleem. Als (1.2) ontoelaatbaar is: de melding dat het LP-probleem ontoelaatbaar is. 1. Initialisatie (a) Stel het eerste simplex tableau met met B = I, xB = y en xN = x. (b) Als p ≤ 0: ga naar stap 2; Anders: i. Voeg aan het tableau de beperking
Pn
j=1
xj ≤ M toe met M voldoende groot
zdd. de optimale oplossing aan deze beperking voldoet. ii. Voer ´e´en iteratie met de gewone simplex methode uit met de extra rij als pivotrij en de kolom met de meest positieve pj als pivotkolom. 2. Iteratiestap (Noteer met b∗ en d∗ de elementen van het getransformeerde rechterlid resp. de getransformeerde doelfunctie en met A∗ de elementen in het inwendige). (a) Als in de eerste kolom alle getallen niet-negatief zijn: ga naar stap 2h. (b) Kies als pivotrij een rij r, behorende bij een basisvariabele met b∗r < 0. (c) Als de pivotrij geen negatieve elementen bevat: het LP-probleem is ontoelaatbaar (STOP). 3
Dit idee is afkomstig van Beale, zie: E.M.L. Beale, An alternative method for linear programming, Proceedings
of the Cambridge Philosophical Society 50 (1954) 513–523.
24
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2) ¯ ) ¯ ¯ ∗ ¯ arj < 0 . ¯
( d∗k −a∗rk
(d) Bepaal de pivotkolom k zdd.
= min j
d∗j −a∗rj
(e) Voer een pivotoperatie uit: Verwissel de variabelen (xB )r en (xN )k . b∗∗ r := a∗∗ rj :=
b∗r a∗rk ; a∗rj a∗rk ,
∗ b∗∗ i := bi −
b∗r a∗ik a∗rk ,
d∗
∗∗ ∗ k i 6= r; d∗∗ k := − a∗ ; dj := dj − rk
a∗
∗∗ ∗ ik j 6= k; a∗∗ ik := − a∗ , i 6= r; aij := aij − rk
a∗rj a∗ik a∗rk ,
a∗rj d∗k a∗rk ,
j 6= k.
j 6= k, i 6= r; a∗∗ rk :=
1 a∗rk .
(f) Als de pivotkolom k hoorde bij de verschilvariabele van de extra toegevoegde rij: verwijder de huidige rij r uit het tableau. (g) Ga naar stap 2a. (h) De optimale oplossing is gevonden: de basisvariabelen krijgen de waarde van de corresponderende b∗i ’s, de overige variabelen hebben de waarde 0; de waarde van het optimum is gelijk aan b∗m+1 . De duale oplossing is op de bekende wijze af te leiden uit de onderste rij (zie (1.6)).
Voorbeeld 1.7 Beschouw het LP-probleem (
¯ ) ¯ x − x ≤ 2; 1 2 ¯ max x1 − 3x2 ¯ x1 , x2 ≥ 0 . ¯ −x1 − x2 ≤ −4;
Neem M = 10 en voeg de beperking x1 + x2 ≤ 10 toe. De tableaus van de duale simplex methode staan hieronder. x1
x2
y3
x2
y1
-2
y3
8
x2
y1
y2
-1
2
x2
1
- 12 1
y1
2
1
-1
y1
-8
∗ -1
y2
-4
-1
-1
y2
6
1
0
y2
-2
1
∗ -2
x1
3
y3
10
∗1
- 12 1 2
1
x1
10
1
1
x1
2
1
-1
x0
0
2
x0
0
-1
3
x0
10
1
4
x0
2
1
2
- 12
In het laatste tableau is de rij van y3 weggelaten. Dit tableau is optimaal en de optimale oplossing luidt: x1 = 3, x2 = 1 met waarde 0.
Vraag 1.6 Bepaal met de duale simplex methode de oplossing van het volgende LP-probleem ¯ ) ( ¯ x + 2x + x ≥ 3; 1 2 3 ¯ x1 , x2 , x3 ≥ 0 . max −2x1 − 3x2 − 4x3 ¯ ¯ 2x1 − x2 + 3x3 ≥ 4; Formuleer ook het duale LP-probleem en geef de optimale oplossing ervan.
1.4. DE DUALE EN DE PRIMALE-DUALE SIMPLEX METHODE
25
Vraag 1.7 Bewijs dat als tijdens de duale simplex methode voor zekere i geldt dat b∗i < 0 en a∗ij ≥ 0 voor alle j, dan is het oorspronkelijke LP-probleem ontoelaatbaar. Vraag 1.8 Bewijs dat als p 6≤ 0 de bij de duale simplex methode beschreven eerste stap om een duaal toelaatbaar tableau te krijgen correct is.
1.4.2
De primale-duale methode
De primale-duale methode 4 is een methode die met name effectief is gebleken om bepaalde optimaliseringsproblemen op grafen op te lossen. Beschouw het LP-probleem in de gedaante max{pT x | Ax = b; x ≥ 0},
(1.10)
waarbij b ≥ 0 (ga zelf na dat ieder LP-probleem altijd in deze gedaante is te schrijven). Het bijbehorende duale LP-probleem is: min{bT u | AT u ≥ p}
(1.11)
Met verschilvariabelen v = AT u − p geeft dit de equivalente formulering min{bT u | AT u − v = p; v ≥ 0}
(1.12)
De complementariteitsvoorwaarden bij deze formulering zijn xj vj = 0, 1 ≤ j ≤ n
(1.13)
Uit de algemene theorie van de lineaire programmering weten we dat als we een x hebben die toelaatbaar is voor (1.10), een (u, v) die toelaatbaar is voor (1.12), terwijl ook aan de complementariteitsvoorwaarden (1.13) is voldaan, de oplossingen optimaal zijn voor het LP-probleem resp. het duale LP-probleem. In de primale-duale methode werken we met een x en (u, v) die steeds aan de complementariteitsvoorwaarden voldoen en waarbij (u, v) toelaatbaar is voor (1.12). Zodra x ook toelaatbaar is voor (1.10) zijn de oplossingen optimaal. De eerste vraag die we voor deze methode moeten beantwoorden is hoe we een (u, v) vinden die voldoet aan (1.12). Als p ≤ 0, dan kunnen we u = 0, v = −p nemen; als p 6≤ 0, dan gaan we, analoog aan de duale P simplex methode, als volgt te werk. We voegen aan het LP-probleem de beperking nj=1 xj ≤ M toe met M weer een voldoend groot getal. We nemen hierbij impliciet aan dat het oorspronkeljke LP-probleem geen oneindige oplossing heeft (bij een oneindige oplossing is het duale probleem ontoelaatbaar). Het duale probleem voor deze formulering wordt: min{bT u + M · um+1 | AT u + um+1 · e − v = p; v ≥ 0, um+1 ≥ 0},
(1.14)
waarbij e de m-vector is met alle elementen gelijk aan 1. Een toelaatbare oplossing voor (1.14) is u = 0, um+1 = max1≤j≤n pj en vj = um+1 − pj voor 1 ≤ j ≤ n. 4
Deze methode is ontwikkeld door Dantzig, Ford en Fulkerson: G.B. Dantzig, L.R. Ford Jr. and D.R. Fulkerson,
A primal-dual algorithm for linear programs, in: H.W. Kuhn and A.W. Tucker (eds.), Linear inequalities and related systems, Princeton University Press (1956) 171–181.
26
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
We mogen dus vanaf nu aannemen dat we een duaal toelaatbare oplossing (u, v) hebben. Laat J = {j | vj = 0}. Bij iedere oplossing (u, v) van het duale probleem zullen we aan de complementariteitsvoorwaarden voldoen door xj = 0 te nemen voor iedere j ∈ / J. Voor de indices van J kunnen we xj vrij kiezen (omdat vj = 0 is voor deze indices al aan de complementariteitsvoorwaarde voldaan). We proberen de keuze van deze xj ’s zo te maken dat x (zoveel mogelijk) aan de beperkingen van (1.10) voldoet. Daartoe beschouwen we het volgende LP-probleem (dit is hetzelfde idee als de fase I techniek van de simplex methode). ¯ ¯ m X ¯X ¯ max − wi ¯ aij xj + wi = bi , 1 ≤ i ≤ m; xj ≥ 0, j ∈ J; wi ≥ 0, 1 ≤ i ≤ m ¯ j∈J i=1
(1.15)
Dit probleem kan met de gewone simplex methode worden opgelost, beginnend met wi als basisvariabelen, 1 ≤ i ≤ m (fase I is dus voor (1.15) niet nodig). Vooral in de eerste iteraties van deze methode is J vaak een kleine verzameling, zodat de bijbehorende LP-problemen niet groot zijn. Als probleem (1.15) eenvoudig op te lossen is, wat bij optimaliseringsproblemen op grafen vaak zo is, dan is de primale-duale methode een effici¨ente methode. Veronderstel dat probleem (1.15) hebben opgelost met (x∗ , w∗ ) als optimale oplossing. 1-ste geval: wi∗ = 0 voor alle i: Dan is x∗ , aangevuld met 0’en voor j ∈ / J, toelaatbaar voor (1.10), dus hebben we optimale oplossingen van het primale en duale probleem gevonden. 2-de geval: wi∗ > 0 voor minstens ´e´en i: We proberen nu een betere oplossing (u∗ , v ∗ ) voor het duale probleem (1.12) te vinden, d.w.z. dat bT u∗ < bT u, met u∗ = u + λs∗ , waarbij λ > 0. Er moet dus gelden dat bT s∗ < 0. Omdat deze functie de doelfunctie is van het duale LP-probleem van (1.15), beschouwen we dit duale probleem, d.w.z.
( min
¯ P ) m ¯ a s ≥ 0, j ∈ J ¯ i=1 ij i bi si ¯ ¯ si ≥ −1, 1 ≤ i ≤ m i=1
m X
(1.16)
Laat s∗ een optimale oplossing van (1.16) zijn. De simplex methode voor (1.15) geeft tevens deze P Pm ∗ ∗ s∗ en voor de waarde van de doelfunctie geldt m i=1 bi si = − i=1 wi < 0. De nieuwe oplossing moet wel weer toelaatbaar zijn voor het duale probleem, d.w.z. dat moet gelden AT u∗ ≥ p. P Pm Pm Pm ∗ ∗ Als j ∈ J: m i=1 aij ui = i=1 aij ui + λ i=1 aij si ≥ i=1 aij ui = pj . Pm P P m m Als j ∈ / J: i=1 aij u∗i = i=1 aij ui + λ i=1 aij s∗i . P ∗ Geval 2a: m / J: i=1 aij si ≥ 0 voor alle j ∈ In dit geval is u∗ toelaatbaar voor λ → ∞, terwijl Pm Pm Pm Pm ∗ ∗ ∗ i=1 bi ui = i=1 bi ui + λ i=1 bi si , waarbij i=1 bi si < 0, zodat (1.11) een oneindige oplossing heeft, waaruit volgt dat het oorspronkelijke LP-probleem ontoelaatbaar is.
1.4. DE DUALE EN DE PRIMALE-DUALE SIMPLEX METHODE Pm
aij s∗i < 0 voor minstens ´e´en j ∈ / J: Pm Nu geldt voor een j ∈ / J met i=1 aij s∗i < 0 dat P Pm − m ∗ ≥ p d.e.s.d. als λ ≤ pjP i=1 aij ui a u = m ij j i i=1 aij s∗
Geval 2b:
27
i=1
i=1
Merk op dat
i
Pm−vj ∗ . i=1 aij si
Pm−vj ∗ i=1 aij si
positief i. De scherpste waarde die we voor λ kunnen kiezen is: ¯ ( ) m ¯ X −vj ¯ λ = min Pm / J; aij s∗i < 0 (1.17) ∗ ¯¯ j ∈ a s ij i=1 i i=1
Opmerkingen 1. De simplex methode geeft in het algemeen ook de optimale oplossing van het duale probleem. Probleem (1.15) heeft als beperkingen gelijkheden. In de ’normale’ simplex methode worden hiervoor schijnvariabelen zi ingevoerd en wordt de fase I - fase II techniek toegepast. De optimale s∗i van (1.16) is dan af te lezen als de duale variabele bij zi ; laten we deze noteren met d(zi ). Zoals we hebben opgemerkt is voor (1.15) de fase I techniek niet nodig. Dit heeft echter wel het nadeel dat we geen zi ’s hebben en dus ook niet weten wat de optimale s∗i = d(zi ) van (1.16) is. Echter, de schijnvariabelen zi komen op precies dezelfde wijze in (1.15) voor als de variabelen wi , met als enig verschil dat wi wel in de doelfunctie voorkomt (met co¨effici¨ent -1). Omdat in de simplex tableau in de rij van de doelfunctie het tegengestelde van deze co¨effici¨enten staat geldt s∗i = d(zi ) = d(wi ) − 1. De duale variabelen van de wi ’s zijn dus wel bekend en hiermee ook de duale oplossing s∗ . 2. Als een variabele x∗j > 0 voor een j ∈ J, dus een basisvariabele in de optimale oplossing van P ∗ (1.16), dan is volgens de complementariteitseigenschap m i=1 aij si = 0, zodat Pm Pm Pm Pm ∗ ∗ i=1 aij ui = pj i=1 aij si = i=1 aij ui + λ i=1 aij ui = (want vj = 0 omdat j ∈ J), zodat vj∗ = 0, dus j blijft tot J behoren. Alle basisvariabelen in de optimale oplossing van (1.16) blijven dus in J en doen in een volgende iteratie weer mee. In een volgende iteratie kan dus gestart worden met het eindtableau van de vorige iteratie. Wel moeten misschien nieuwe kolommen ge-update worden. 3. Als er geen degeneratie is, dan is de methode eindig, immers: We moeten laten zien dat we niet oneindig vaak in het 2-de geval blijven zitten. Uit de definitie van λ volgt dat vj∗ = 0 voor een j ∈ / J, namelijk die j waarvoor het minimum in (1.17) wordt aangenomen. Deze j komt dus in de volgende J en geeft een nieuwe variabele voor probleem (1.15). De bij deze nieuwe variabele behorende kolom kan als pivotkolom P ∗ worden gekozen, want de daarbij bijbehorende duale variabele is m i=1 aij si < 0. Hieruit volgt dat de waarde van de doelfunctie in de volgende iteratie stijgt. Het nieuwe optimum behoort dus bij een andere basis en een oude basis kan dus nooit terugkeren. Omdat er maar eindig veel bases zijn is de methode eindig. Als er wel degeneratie is, dan kan in principe cycling optreden. Zoals eerder gezegd, wordt de primale-duale methode vaak toegepast op problemen uit de grafentheorie. Bij elk van die problemen moet dan apart gekeken worden naar een extra regel om cycling te voorkomen. Meestal zijn dergelijke regels te vinden.
28
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
Algoritme 1.4 Primale-duale methode (onder de aanname van geen oneindige oplossing). Invoer: Een LP-probleem in de gedaante (1.10) met geen oneindige oplossing. Uitvoer: Als (1.10) een eindige optimale oplossing heeft: de optimale oplossing x∗ en de bijbehorende optimale oplossing (u, v) van het duale probleem. Als (1.10) ontoelaatbaar is: de melding dat het LP-probleem ontoelaatbaar is. 1. Initialisatie Als p ≤ 0: u = 0, v = −p en ga naar stap 2. Anders: u = 0, um+1 = max1≤j≤n pj , vj = um+1 − pj voor 1 ≤ j ≤ n en ga naar stap 2. 2. Iteratiestap (a) Bepaal J = {j | vj = 0}. (b) Bepaal optimale oplossingen (x∗ , w∗ ) en s∗ van de duale LP-problemen (1.15) en (1.16). (c) Als w∗ = 0, dan is x0 met x0j = x∗j , j ∈ J en x0j = 0, j ∈ / J optimaal; (u, v) is een optimale oplossing van het duale probleem (STOP). Anders: ga naar stap 2d. P ∗ / J: het LP-probleem is ontoelaatbaar (STOP) (d) Als m i=1 aij si ≥ 0 voor alle j ∈ Anders: ga naar stap 2e. (e) Bepaal λ volgens (1.17); u := u + λs∗ ; v = AT u − p. (f) Ga naar stap 2a. Voorbeeld 1.8 Beschouw het LP-probleem ¯ ( ) ¯ x + x − x = 2; x1 , x2 ≥ 0 2 3 ¯ 1 max x1 + 6x2 ¯ . ¯ x1 + 2x2 + x4 = 3; x3 , x4 ≥ 0 Het duale probleem hiervan is (
¯ ) ¯ u + u ≥ 1; −u ≥ 0 2 1 ¯ 1 min 2u1 + 3u2 ¯ . ¯ u1 + 2u2 ≥ 6; u2 ≥ 0
Start met u = (0, 3) en dan is v = (2, 0, 0, 3). Iteratie 1: J = {2, 3} met bijbehorende LP-probleem: ¯ ) ( ¯ x − x + w = 2 2 3 1 ¯ ; x2 , x3 , w1 , w2 ≥ 0 . max −w1 − w2 ¯ ¯ 2x2 + w2 = 3 De simplex methode geeft x2
x3
w1
2
1
-1
w1
w2
3
∗2
0
x2
-5
-3
1
1 2 3 2 − 12
w2
x3
− 12 1 2 3 2
-1 0 1
Dit is een optimaal tableau, waaruit de optimale s∗ volgt: s∗1 = d(w1 ) − 1 = −1, s∗2 = d(w2 ) − 1 = 21 .
1.4. DE DUALE EN DE PRIMALE-DUALE SIMPLEX METHODE (
Pm
∗ i=1 aij si
Voor j ∈ / J:
=
− 12 , j = 1 1 2,
→ λ=
j=4
−2 − 12
29
= 4; u = (−4, 5), v = (0, 0, 4, 5).
Iteratie 2: J = {1, 2} met bijbehorende LP-probleem: ¯ ( ) ¯ x + x + w = 2 2 1 ¯ 1 ; x1 , x2 , w1 , w2 ≥ 0 . max −w1 − w2 ¯ ¯ x1 + 2x2 + w2 = 3 We gebruiken het laatste tableau van iteratie 1. De kolom van x3 kan worden weggelaten, want de index 3 zit niet meet in J en de kolom van x1 moet worden ge-update. Uit het laatste tableau van iteratie 1 volgt: Ã ! Ã !Ã ! Ã ! 1 1 − 12 1 − 21 1 2 −1 −1 B = , zodat de kolom van x wordt: B a = = . 1 •1 1 1 1 0 0 1 2 2 2 P 1 ∗ Het getal in de onderste rij wordt m i=1 ai1 si = − 2 , en dit geeft het onderstaande eerste tableau.
w1 x2
1 2 3 2 − 12
x1
w2
∗1 2 1 2 - 12
- 12
x1
1 2 3 2
x2
w1
w2
1
2
-1
1
-1
1
0
1
1
Dit laatste tableau is optimaal met w = 0. Dit geeft de optimale oplossing: x1 = x2 = 1, x3 = x4 = 0. De oplossing van het duale probleem is: u1 = −4, u2 = 5.
Vraag 1.9 Laat zien dat (1.15) een eindige optimale oplossing heeft.
Vraag 1.10 Los het volgende LP-probleem op met de primale-duale simplex methode, startend met duale oplossing u = (1, 0). (
¯ ) ¯ x + x + x + x + x = 6; x1 , x2 , x3 ≥ 0 1 2 3 4 5 ¯ max −x1 − 2x3 + x4 ¯ . ¯ 2x1 − x2 + 3x3 − 2x4 − x6 = 5; x4 , x5 , x6 ≥ 0
1.4.3
Opgaven
Opgave 1.6 Bepaal met de duale simplex methode de oplossing van het volgende LP-probleem ¯ ¯ 4x − 5x + 7x ≤ 8; x ≥ 0 ¯ 1 2 3 1 ¯ ¯ . max −x1 − 3x2 − 2x3 ¯ −2x1 + 4x2 − 2x3 ≤ −2; x2 ≥ 0 ¯ ¯ x − 3x + 2x ≤ 2; x ≥ 0 1
2
3
Formuleer ook het duale LP-probleem en geef de optimale oplossing ervan.
3
30
HOOFDSTUK 1. LINEAIRE OPTIMALISERING (DEEL 2)
Opgave 1.7 Bepaal met de duale simplex methode de oplossing van het volgende LP-probleem ¯ ¯ −x + 4x ≤ −5; x ≥ 0 ¯ 1 2 1 ¯ ¯ max x1 − x2 ¯ . x1 − 3x2 ≤ 1; x2 ≥ 0 ¯ ¯ −2x + 5x ≤ −1; 1
2
Opgave 1.8 Bepaal met de duale simplex methode de oplossing van het volgende LP-probleem ¯ ¯ x − x ≤ 2; x ≥ 0 ¯ 1 2 1 ¯ max x1 − 3x2 ¯¯ −x1 − x2 ≤ −4; x2 ≥ 0 . ¯ ¯ −2x + 2x ≤ −3; 1
2
Formuleer ook het duale LP-probleem en geef de optimale oplossing ervan. Opgave 1.9 Los met de duale simplex methode het volgende LP-probleem op ¯ ( ) ¯ x − 3x + 7x ≤ −5; x ≥ 0 1 2 3 1 ¯ max 3x1 − x3 ¯ . ¯ −x1 + x2 − x3 ≤ 1; x2 ≥ 0 Opgave 1.10 Los het volgende LP-probleem (met alle variabelen niet-negatief) op met de primale-duale simplex methode, startend met duale oplossing u = (4, 0, 9, 5). ¯ ¯ x − 2x3 + x4 − x6 ¯ 1 ¯ ¯ x1 − 2x2 + 2x4 − x5 + x6 max 3x1 + 4x2 + x3 + 2x4 + 2x5 + x6 ¯¯ x2 + x3 ¯ ¯ ¯ x4 + x5 + x6
≤ ≥ = =
5 2 1 2
1 1
.
Opgave 1.11 Los het volgende LP-probleem (met alle variabelen niet-negatief) op met de primale-duale simplex methode, startend met duale oplossing u = (1, 2, −1). ¯ ¯ x + x + x + x = 5 ¯ 1 3 4 5 ¯ ¯ . max x2 − 10x3 − 14x4 − 3x5 ¯ x2 + 2x3 + x4 − x5 = 6 ¯ ¯ x1 + x2 + 3x3 + 2x4 = 4 Opgave 1.12 Los het volgende LP-probleem (met alle variabelen niet-negatief) op met de primale-duale simplex methode, startend met duale oplossing u = (0, 0, 0). ¯ ¯ x − x + 2x − x + x + 2x = 1 ¯ 1 2 3 4 5 6 ¯ ¯ . max −3x1 − 2x2 − x3 − 2x4 − 2x5 ¯ −x1 + 2x2 + x3 − 2x4 − x5 + x6 = 3 ¯ ¯ 2x1 + x2 − x3 + x4 − 2x5 + x6 = 2
Hoofdstuk 2
GEHEELTALLIGE LINEAIRE OPTIMALISERING 2.1 2.1.1
Model, formuleringen en voorbeelden Model en formuleringen
Veel optimaliseringsproblemen hebben geheeltallige variabelen, bijvoorbeeld als het gaat om ondeelbare grootheden zoals een aantal personen. We spreken dan van geheeltallige optimalisering, ook wel aangeduid met IP-probleem (integer programming). Een speciaal geval van een geheeltallige variabele is een variabele, waarvoor geldt dat deze slechts de waarde 0 of 1 kan aannemen: we spreken dan van een (0,1)-variabele of binaire variabele en het optimaliseringsprobleem waarin de geheeltallige variabelen (0,1)-variabelen zijn, heet een combinatorisch optimaliseringsprobleem ook wel aangeduid als CO-probleem. We spreken van gemengd geheeltallige optimalisering als sommige variabelen wel en andere niet geheeltallig zijn. In tegenstelling tot de methoden voor lineaire optimalisering, die meestal effici¨ent werken en snel tot een optimale oplossing leiden, bestaat er voor de geheeltallige optimalisering geen effici¨ente methode. Het afronden van de bijbehorende LP-oplossing kan leiden tot een ontoelaatbare of een niet-optimaal punt. Het is zelfs uiterst onwaarschijnlijk dat er ooit een effici¨ente methode voor gevonden kan worden. De reden hiervoor is dat het geheeltallige programmeringsprobleem tot de complexiteitsklasse N PC behoort.1 Het geheeltallige lineaire programmeringsprobleem is geformuleerd als: max{pT x | Ax ≤ b ; x ≥ 0 en geheel},
(2.1)
waarbij p, x ∈ Rn , b ∈ Rm en A een m × n-matrix is. Een combinatorisch optimaliseringsprobleem schrijven we als max{pT x | Ax ≤ b ; x ∈ {0, 1}n }, waarbij x ∈ {0, 1}n betekent dat iedere component xj ∈ {0, 1}. 1
Voor een definitie van de complexiteitsklasse N PC zie Besliskunde 1.
31
(2.2)
32
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
De volgende stelling laat zien dat het combinatorisch optimaliseringsprobleem, en daarmee ook het IP-probleem tot de complexiteitsklasse N PC behoort.
Stelling 2.1 Het combinatorisch optimaliseringsprobleem behoort tot de complexiteitsklasse N PC. Bewijs Het is direct duidelijk dat het combinatorisch optimaliseringsprobleem in N P zit (als certificaat nemen we de gegeven oplossing en het nagaan van de toelaatbaarheid en of de doelfunctie minstens een gegeven waarde heeft, is polynomiaal). Beschouw het CO-probleem in de vorm: is er een x ∈ {0, 1}n met Ax ≤ b? Het is nu voldoende om te laten zien dat SAT ¹ het combinatorisch optimaliseringsprobleem.2 Neem een ’zin’, d.w.z. een conjunctie van een aantal ’woorden’, waarbij een woord de conjunctie is van een aantal Boolse variabelen of hun ontkenning (de ontkenning van x noteren we met x). Laten x1 , x2 , . . . , xn de Boolse variabelen zijn (xj = 1 als de j-de Boolse variabele waar is en anders 0) en beschouw de zin i i C = C1 ∩ C2 ∩ · · · ∩ Cm met Ci = ∪pj=1 xij ∪nj=p xij . i +1
Ieder woord moet waar zijn, dus minstens een van de (0,1)-getallen xij , 1 ≤ j ≤ pi , en P i Pi (1 − xij ) ≥ 1, 1 ≤ i ≤ m, xij + nj=p 1 − xij , pi + 1 ≤ j ≤ ni , moet 1 zijn, d.w.z. pj=1 i +1 ofwel −
pi X j=1
xij +
ni X
xij ≤ ni − pi − 1, 1 ≤ i ≤ m.
(2.3)
j=pi +1
−1, 1 ≤ j ≤ pi Neem aiij = +1, pi + 1 ≤ j ≤ ni en bi = ni − pi − 1, 1 ≤ i ≤ m. 0, anders P Dan is (2.3) equivalent met nj=1 aij xj ≤ bi , 1 ≤ i ≤ m ofwel in vectornotatie Ax ≤ b. Hiermee is aangetoond dat SAT ¹ het combinatorisch optimaliseringsprobleem.
Vraag 2.1 a. Geef een voorbeeld van een IP-probleem, waarvan de afronding van optimale oplossing van het bijbehorende LP-probleem een ontoelaatbare oplossing geeft. b. Geef een voorbeeld van een IP-probleem, waarvan de afronding van optimale oplossing van het bijbehorende LP-probleem een toelaatbare, maar niet optimale oplossing oplevert.
2
Voor een definitie van de complexiteitsklasse SAT zie Besliskunde 1.
2.1. MODEL, FORMULERINGEN EN VOORBEELDEN
2.1.2
33
Voorbeelden
In deze paragraaf bespreken we een aantal problemen die als geheeltallig programmeringsprobleem gedefinieerd kunnen worden. Voorbeeld 2.1 Vaste kosten Beschouw een productieprobleem met n producten en waarbij de productiekosten deels vaste kosten zijn en deels kosten lineair in de hoeveelheid: ( Kj + cj xj als xj > 0; Cj (xj ) = 0 als xj = 0. Pn De doelfunctie wordt dan j=1 Cj (xj ) en is niet meer lineair in xj vanwege de discontinu¨ıteit in xj = 0. Deze functie is toch lineair te maken door voor iedere xj een binaire variabele yj in te voeren met de interpretatie dat yj = 1 als xj > 0. Door nu te eisen dat 0 ≤ xj ≤ M yj , met M een groot getal dat in alle realitische situaties een bovengrens voor de productie is, wordt Cj (xj ) = Kj yj +cj xj , zodat de doelfunctie lineaire is. Het oorspronkelijke probleem heeft niets geheeltalligs, maar door deze modellering wordt het een gemengd geheeltallig optimaliseringsprobleem. Voorbeeld 2.2 Stuksgewijs lineaire doelfunctie Veronderstel dat a1 < a2 < · · · < ak en dat we een continue stuksgewijze lineaire doelfunctie f (x) hebben, gedefinieerd op het interval [a1 , ak ] en die door de punten (ai , f (ai )), 1 ≤ i ≤ k gaat. Iedere x ∈ [a1 , ak ] is op een unieke manier te schrijven als convexe combinatie van a1 , a2 , . . . , ak , P P d.w.z. x = ki=1 λi ai met λi ≥ 0 voor alle i en ki=1 λi = 1, en waarbij (hoogstens) twee λ’s positief zijn die dan opeenvolgend moeten zijn, zeg x = λi ai + λi+1 ai+1 . Omdat de functie op het interval [ai , ai+1 ] lineair is, is dan ook f (x) = λi f (ai ) + λi+1 f (ai+1 ). Om te modelleren dat hoogstens twee λ’s positief zijn die dan opeenvolgend moeten zijn, introduceren we binaire variabelen yi , 1 ≤ i ≤ k − 1 met de interpretatie dat als yi = 1 dan mogen Pk−1 alleen λi en λi+1 positief zijn. Door te eisen dat i=1 yi = 1 wordt bereikt dat slechts eenmaal twee opeenvolgende λ’s positief kunnen zijn. Door verder te eisen dat λ1 ≤ y1 ; λi ≤ yi−1 + yi , 2 ≤ i ≤ k − 1 en λk ≤ yk−1 , wordt bereikt dat als yj de enige y-variabele is die positief is, dan is λi = 0 voor i 6= j, j + 1. Hiermee is de doelfunctie te beschrijven als functie van λ1 , λ2 , . . . , λk en y1 , y2 , . . . , yk−1 : Pk Pk i=1 λi f (ai ); i=1 λi = 1; λi ≥ 0, 1 ≤ i ≤ k; Pk−1 λ1 ≤ y1 ; λi ≤ yi−1 + yi , 2 ≤ i ≤ k − 1; λk ≤ yk−1 ; i=1 yi = 1; ; yi ∈ {0, 1}, 1 ≤ i ≤ k − 1. Voorbeeld 2.3 Scheduling probleem Beschouw een scheduling probleem waarbij n verschillende operaties op ´e´en machine moeten worden uitgevoerd. Veronderstel dat er drie soorten beperkingen zijn: (1) volgorde-restricties voor een aantal taken; (2) niet-tegelijkertijd kunnen uitvoeren van twee taken op deze machine; (3) voor iedere taak j een tijdstip dj : het tijdstip waarop men deze taak af wil hebben.
34
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
De vraagstelling luidt om een planning te maken die de maximale overschrijding van de tijden dj minimaliseert, rekening houdend met de overige beperkingen. Laat xj de beslissingsvariabele zijn voor het tijdstip waarop de j-de taak op de machine begint en laat tj de (gegeven) tijdsduur zijn voor de bewerking van taak j op de machine, 1 ≤ j ≤ n. De volgorde-restrictie taak i komt voor taak j houdt in dat xi + ti ≤ xj . De taken i en j niet tegelijk op de machine betekent `ofwel xi + ti ≤ xj , `ofwel xj + tj ≤ xi . Deze eis is met een binaire variabele yij , waarbij yij = 1 correspondeert met de eerste mogelijkheid en yij = 0 met de tweede, om te vormen tot twee beperkingen die beide moeten gelden: xi + ti ≤ xj + M (1 − yij ) en xj + tj ≤ xi + M yij , waarbij M voldoende groot is, bijv. het laatste tijdstip waarop een taak af moet zijn. Het minimaliseren van de maximale overschrijdingen is te modelleren door T te minimaliseren en te eisen dat T ≥ xj + tj − dj voor alle j. Voorbeeld 2.4 Locatie probleem Veronderstel dat er m mogelijke plaatsen zijn om filialen van een bedrijf te vestigen. Het vestigen van het i-de filiaal kost fi en filiaal i heeft capaciteit bi , 1 ≤ i ≤ m. Het bedrijf heeft n klanten en de j-de klant heeft een hoeveelheid dj nodig, 1 ≤ j ≤ n. Als er vanuit filiaal i aan klant j wordt geleverd, dan kost dit cij per eenheid. Welke filialen moeten worden gevestigd en hoe moet de bevoorrading van de klanten worden uitgevoerd om de totale kosten te minimaliseren? de hoeveelheid die vanuit filiaal i aan klant j wordt geleverd xij = ( Zij 1 als filiaal i wordt gevestigd yi = 0 anders Dit probleem is als volgt te formuleren als m X n m X X cij xij + fi yi min i=1 j=1 i=1
een gemengd geheeltallig programmeringsprobleem: ¯ Pm ¯ x = d , j = 1, 2, . . . , n ij j i=1 ¯ ¯ Pn ¯ x ≤ b y , i = 1, 2, . . . , m ij i i ¯ j=1 . ¯ ¯ xij ≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n ¯ ¯ ¯ yi ∈ {0, 1}, 1 ≤ i ≤ m
Vraag 2.2 Beschouw het gebied in de R2 met 0 ≤ x1 ≤ 10, 0 ≤ x2 ≤ 10 met als extra voorwaarden: als x1 > 5, dan is x2 ≤ 5 en als x2 > 5, dan is x1 ≤ 5. Geef m.b.v. continue en geheeltallige variabelen een lineaire beschrijving van dit niet-convexe gebied. Vraag 2.3 Veronderstel dat we n voorwerpen hebben met gegeven volumes ai ∈ (0, 1], 1 ≤ i ≤ n. Deze voorwerpen moeten in dozen worden verpakt. De dozen zijn alle identiek met volume 1 en er zijn voldoende dozen aanwezig, zeg n stuks. Gevraagd wordt hoe de voorwerpen in de dozen te verpakken zdd. zo min mogelijk dozen worden gebruikt. Formuleer dit probleem als een combinatorisch programmeringsprobleem.
2.1. MODEL, FORMULERINGEN EN VOORBEELDEN
35
Vraag 2.4 Zij G = (V, E) een niet-gerichte graaf met n knooppunten. Beschouw het probleem om de knooppunten van de graaf met zo min mogelijk kleuren te kleuren zdd. knooppunten die aan elkaar grenzen een verschillende kleur krijgen. Formuleer dit probleem als een combinatorisch programmeringsprobleem.
2.1.3
Opgaven
Opgave 2.1 Veronderstel dat er m (identieke) machines zijn waarop taken uitgevoerd kunnen worden. Er zijn n taken en taak i heeft een (geheeltallige) bewerkingstijd pi , 1 ≤ i ≤ n. Een taak hoeft maar op ´e´en machine te worden uitgevoerd en een machine kan slechts ´e´en taak tegelijk aan. Gevraagd is een planning te vinden zdd. al het werk zo vroeg mogelijk af is. Formuleer dit probleem als een combinatorisch optimaliseringsprobleem. Opgave 2.2 Beschouw de volgende situatie: n verschillende gebouwen moeten worden neergezet op n gegeven locaties. De vraag luidt: welk gebouw komt op welke locatie. Het is bekend hoeveel mensen per dag van gebouw j naar gebouw l gaan, zeg bjl . Het is ook bekend wat de afstand tussen lokatie i en lokatie k is, zeg aik . Waar moeten de gebouwen worden geplaatst opdat de totale afstand die de mensen tezamen per dag moeten afleggen minimaal is? Formuleer dit probleem als een combinatorisch (niet-lineair) optimaliseringsprobleem. Opgave 2.3 Veronderstel dat er n plaatsen zijn. Iedere plaats heeft een aanbod of een vraag: plaats i heeft P een ’netto productie’ (aanbod/vraag) pi , waarbij ni=1 pi = 0 (pi ≥ 0 is een aanbod pi en pi < 0 een vraag −pi ). Als over de verbinding (i, j) iets wordt gestuurd, dan zijn er vaste kosten fij en variabele kosten van cij per eenheid van vervoer; bovendien heeft zo’n verbinding een capaciteit van bij (d.w.z. dat er hoogstens bij over vervoerd kan worden). Geef een formulering voor het probleem om een zo goedkoop mogelijk vervoersschema op te stellen. Opgave 2.4 Beschouw het volgende vestigingsprobleem. Een aantal winkels, zeg n, moet vanuit een aantal magazijnen bevoorraad worden. Winkel j heeft dj eenheden nodig. Er zijn m mogelijke vestigingsplaatsen voor de magazijnen. In vestigingsplaats i zijn vaste investeringskosten fi en is de productiecapaciteit bi . Bij de bevoorrading van winkel j vanuit een magazijn in plaats i zijn er vaste kosten fij en variabele kosten cij per eenheid; bovendien is de capaciteit op deze route bij . De vraag luidt: waar kunnen deze magazijnen het beste gevestigd worden opdat de totale kosten minimaal zijn? Formuleer dit probleeem als een optimalseringsprobleem met continue en geheeltallige variabelen.
36
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
2.2
Branch-and-Bound
2.2.1
Het generieke algoritme
De branch-and-bound methode is een algemene techniek,3 waarmee onder andere een geheeltallig optimaliseringsprobleem opgelost kan worden. Het oorspronkelijke probleem wordt hierbij opgesplitst in deelproblemen, zeg Pk , 1 ≤ k ≤ K, die tezamen equivalent zijn met het oorspronkelijke probleem P0 . Beschouw het zuivere geheeltallige lineaire optimaliseringsprobleem (2.1) en laat S = {x | Ax ≤ b ; x ≥ 0 en geheel}. Het basisidee van de branch-and-bound methode is om S op te splitsen in deelverz. S1 , S2 , . . . , SK en laat Pk : max{pT x | x ∈ Sk }, 1 ≤ k ≤ K. De deelproblemen worden `ofwel exact opgelost, `ofwel benaderd om een bovengrens van het optimum te vinden. De argumentatie voor de branch-and-bound methode is dat als een bovengrens van een deelprobleem niet groter is dan de waarde van een reeds gevonden toelaatbare oplossing, dan kan dit deelprobleem verder buiten beschouwing worden gelaten. Bovengrenzen kunnen worden verkregen door een relaxatie van het probleem te nemen. Meestal wordt hiervoor de LP-relaxatie genomen, d.w.z. dat de eis ’x geheel’ wordt weggelaten. Omdat het optimum van het IP-probleem geheel moet zijn (we nemen aan dat de co¨effici¨enten in de doelfunctie geheel zijn), kunnen we het optimum van de LP-relaxatie naar beneden afronden. Laat L de lijst zijn van de deelproblemen Pk , en laat z k de bovengrens zijn van deelprobleem Pk , 1 ≤ k ≤ K. Noteer met z de waarde van de best bekende toelaatbare oplossing. Het generieke branch-and-bound algoritme ziet er dan als volgt uit. Algoritme 2.1 Branch-and-bound methode Invoer: Een IP-probleem in de gedaante (2.1). Uitvoer: Als (2.1) een eindige optimale oplossing heeft: de optimale oplossing x∗ . Als (2.1) ontoelaatbaar is of een oneindige oplossing heeft: de melding dat het probleem ontoelaatbaar is resp. een oneindige oplossing heeft. 1. Initialisatie L := {P0 }, z 0 := +∞, z := −∞, t = 0. 2. Stopcriterium Als L = ∅, dan: (a) Als t = 0, dan is het probleem ontoelaatbaar (STOP). (b) Als t = 1, dan is x∗ de optimale oplossing met optimum z (STOP). (c) Als t = 2, dan heeft het probleem een oneindige oplossing (STOP). 3
Deze techniek is voor het eerst voorgesteld in A.H. Land and A.G. Doig, An automatic method of solving
discrete programming problems, Econometrica 28 (1960) 497–520. De methode is voor het eerst toegepast op het handelsreizigersprobleem door J.D.C. Little, K.G. Murty, D.W. Sweeny and C. Karel, An algorithm for the traveling salesmanproblem, Operations Research 11 (1963) 972–989.
2.2. BRANCH-AND-BOUND
37
3. Keuze deelprobleem Kies een element Pk van L, verwijder dit uit L en kies een relaxatie voor Pk . 4. Oplossen relaxatie Los de relaxatie van Pk op: (a) Als Pk ontoelaatbaar is, dan is z k := −∞. (b) Als Pk een oneindige oplossing heeft, dan is z k := +∞. (c) Als Pk een eindige oplossing xk heeft, dan is z k := bpT xk c. 5. Afhandelen deelprobleem en ’snoeien’ Als z k ≤ z: ga naar stap 2. Als z k > z, dan: als Pk een geheeltallige, oneindige oplossing heeft: t := 2 en ga naar stap 2 (c); als P k een geheeltallig, eindige oplossing xk heeft: (a) x∗ := xk , z := z k en t := 1. (b) Verwijder alle problemen Pi met z i ≤ z uit L. (c) Ga naar stap 2. 6. Vertakken (a) Splits Pk op in Pk1 , Pk2 , . . . , Pkp . (b) Voeg de nieuwe deelproblemen aan L toe met bovengrens z k . (c) Ga naar stap 2.
2.2.2
Behandeling van en opsplitsing in deelproblemen
Afhandelen deelprobleem In stap 5 van het algoritme kan het in stap 2 gekozen deelprobleem Pk , waarvan de relaxatie in stap 3 is opgelost, in de volgende gevallen worden afgehandeld: (1) als de relaxatie een ontoelaatbaar probleem is: Pk zelf is dan ook ontoelaatbaar; (2) als de bovengrens z k niet groter is dan de waarde z van een toegelaten oplossing van P0 : het deelprobleem heeft dan geen betere oplossing; (3) als de relaxatie een betere toegelaten geheeltallige oplossing heeft: dit is dan een kandidaat voor de optimale oplossing. In de andere gevallen kan Pk niet als afgehandeld worden beschouwd en splitsen we Pk in deelproblemen. Keuze deelprobleem In stap 3 van het algoritme wordt een van de deelproblemen van lijst L gekozen. Deze keuze is van invloed op het kunnen vinden van een betere toelaatbare oplossing, de kans om een deelprobleem te kunnen afhandelen en het totaal aantal deelproblemen dat moet worden onderzocht voordat we kunnen stoppen met de optimale oplossing.
38
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
Er zijn verschilende strategie¨en mogelijk voor de keuze van het deelprobleem: (1) Het laatste deelprobleem dat is gecre¨eerd: dit heeft het voordeel dat het meestal direct beschikbaar is, want zo’n LP-relaxatie komt uit het vorige LP-probleem met daaraan toegevoegd ´e´en nieuwe beperking; dit houdt in dat de duale oplossing toelaatbaar blijft. Hiervoor is de duale simplex methode zeer geschikt en vaak is slechts ´e´en extra iteratiestap voldoende om de nieuwe optimale oplossing te vinden. (2) Het deelprobleem met de hoogste bovengrens: we hopen hiermee een betere toelaatbare oplossing te vinden, waarna hopelijk een aantal andere deelproblemen niet meer onderzocht hoeft te worden omdat hun bovengrens niet beter is dan de waarde van een toegelaten oplossing die met het gekozen deelprobleem is gevonden. (3) Het deelprobleem met de grootste niet-geheeltalligheid, waarbij de niet-geheeltalligheid s is P gedefinieerd door s = j min(fj , 1 − fj ) met fj = xj − bxj c, d.w.z. de fractie, waarbij x de oplossing is van de relaxatie van het deelprobleem: we hopen hiermee dat het deelprobleem kan worden afgehandeld, omdat de geheeltalligheidseis de bovengrens zover verlaagt dat het deelprobleem niet meer beschouwd hoeft te worden. (4) Het deelprobleem met de kleinste niet-geheeltalligheid: we hopen hiermee een betere toelaatbare oplossing te vinden, waarna hopelijk een aantal andere deelproblemen niet meer onderzocht hoeft te worden. Vertakken (branching) Het opsplitsen in nieuwe deelproblemen gebeurt meestal via een splitsingsvariabele. Vaak is dit een variabele die in de oplossing van de relaxatie niet-geheeltallig is: zeg xi met waarde b∗i . We beschouwen dan twee deelproblemen door enerzijds te eisen xi ≤ bb∗i c en anderzijds xi ≥ db∗i e. Voor de keuze welke variabele als splitsingsvariabele wordt genomen, zijn weer diverse strategie¨en: (1) De grootste fractie regel: kies als splitsingsvariabele de variabele xi met min(fi , 1 − fi ) maximaal; door de variabele met de grootste fractie te kiezen hopen we dat de grenzen van de bijbehorende deelproblemen zo laag worden dat ze daardoor kunnen worden afgehandeld. (2) De kleinste fractie regel: kies als splitsingsvariabele de variabele xi met min(fi , 1 − fi ) minimaal; door de variabele met de kleinste fractie te kiezen hopen we in de bijbehorende deelproblemen een goede oplossing te vinden. (3) De grootste co¨effici¨ent regel: kies als splitsingsvariabele de variabele xi die in de doelfunctie de grootste co¨effici¨ent heeft; hiermee beogen we hetzelfde als met de grootste fractie regel. (4) De kleinste co¨effici¨ent regel: kies als splitsingsvariabele de variabele xi met in de doelfunctie de kleinste co¨effici¨ent. We hopen nu hetzelfde te bereiken als met de kleinste fractie regel. Het lijkt verstandig de regels (2) en (4) in het begin van het algoritme toe te passen en (1) en (3) later. We zullen de methode nader toelichten aan de hand van het volgende voorbeeld. Als keuze van het deelprobleem nemen we het deelprobleem met de grootste bovengrens en als splitsingsvariabele de variabele met de grootste fractie.
2.2. BRANCH-AND-BOUND Voorbeeld 2.5 P0 : max 5x1 + 8x2
¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯
x1 +
39
x2 ≤
6
5x1 + 9x2 ≤ 45 x1 , x2 ≥ 0 en geheel
.
Initialisatie: L = {P0 }; z 0 = +∞; z = −∞; t = 0. Iteratie 1: Kies P0 ; L = ∅; los de LP-relaxatie op: x01 = 49 , x02 =
15 4 ,
z 0 = b 165 4 c = 41.
Kies als splitsingsvariabele x2 en beschouw de deelproblemen: P1 : P0 met toegevoegd x2 ≤ 3; P2 : P0 met toegevoegd x2 ≥ 4; z 1 = z 2 = 41; L = {P1 , P2 }. Iteratie 2: Kies deelprobleem P1 ; L = {P2 }; los de LP-relaxatie op: x11 = 3, x12 = 3, z 1 = b39c = 39. x∗1 = 3, x∗2 = 3; z = 39 en t = 1. Iteratie 3: Kies deelprobleem P2 ; L = ∅; los de LP-relaxatie op: x21 = 95 , x22 = 4, z 2 = b41c = 41. Kies als splitsingsvariabele x1 en beschouw de deelproblemen: P3 : P2 met x1 ≤ 1; P4 : P2 met x1 ≥ 2; z 3 = z 4 = 41; L = {P3 , P4 }. Iteratie 4: Kies deelprobleem P3 ; L = {P4 }; los de LP-relaxatie op: x31 = 1, x32 =
40 9 ,
z 3 = b 365 9 c = 40.
Kies als splitsingsvariabele x2 en beschouw de deelproblemen: P5 : P3 met x2 ≤ 4; P6 : P3 met x1 ≥ 5; z 5 = z 6 = 40; L = {P4 , P5 , P6 }. Iteratie 5: Kies deelprobleem P4 ; L = {P5 , P6 }; los de LP-relaxatie op: P4 is ontoelaatbaar, dus z 4 = −∞. Iteratie 6: Kies deelprobleem P5 ; L = {P6 }; los de LP-relaxatie op: x51 = 1, x52 = 4; z 5 = b37c = 37 (geen verbetering van de best bekende oplossing). Iteratie 7: Kies deelprobleem P6 ; L = ∅; los de LP-relaxatie op: x61 = 0, x62 = 5, z 6 = b40c = 40. x∗1 = 0, x∗2 = 5; z = 40 en t = 1. Iteratie 8: Omdat L = ∅ zijn we klaar en is de optimale oplossing: x∗1 = 0, x∗2 = 5 met waarde 40. Opmerkingen: 1. Als de variabelen begrensd zijn, zeg 0 ≤ xj ≤ uj , 1 ≤ j ≤ n, dan is de branch-and-bound methode eindig. De branch-and-bound methode is te representeren via een binaire boom, waarvan de knooppunten corresponderen met de deelproblemen (zie de tekening van bovenstaand voorbeeld). Als een deelprobleem wordt geplitst via splitsingsvariabele xj , dan krijgt het knooppunt twee zonen met disjuncte deelverz. voor de mogelijke waarden P {0, 1, . . . , uj } van xj . Dit betekent dat zo’n boom ten hoogste de diepte van nj=1 uj heeft, d.w.z. dat de methode eindig is.
40
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
2. De branch-and-bound techniek kan ook worden toegepast op een gemengd geheeltallig programmeringsprobleem. Uiteraard komen dan alleen de geheeltallige variabelen in aanmerking om splitsingsvariabele te worden en kan het LP-optimum niet naar beneden worden afgerond. Vraag 2.5 Los het volgende IP-probleem op met de branch-and-bound methode. Kies het deelprobleem met de hoogste bovengrens en kies als splitsingsvariabele de variabele met de grootste fractie. ¯ ( ) ¯ x + 2x ≤ 10; x ≥ 0 en geheel 1 2 1 ¯ max 13x1 + 8x2 ¯ . ¯ 5x1 + 2x2 ≤ 20; x2 ≥ 0 en geheel
2.2.3
Opgaven
Opgave 2.5 Los het volgende IP-probleem met de branch-and-bound op. Kies het deelprobleem met de grootste niet-geheeltalligheid en kies de splitsingsvariabele volgens de grootste co¨effici¨ent regel. ¯ ¯ 7x − 2x ≤ 14; x ≥ 0 en geheel ¯ 1 2 1 ¯ max 4x1 − x2 ¯¯ 2x1 − x2 ≤ 3; x2 ≥ 0 en geheel . ¯ ¯ x ≤ 3 2
Opgave 2.6 Los het volgende IP-probleem op met de branch-and-bound methode. Kies het deelprobleem met de hoogste bovengrens en kies als splitsingsvariabele de variabele met de grootste fractie. ¯ ¯ 4x + 3x ≤ 12; x ≥ 0 en geheel ¯ 1 2 1 ¯ . max x1 + x2 ¯¯ −4x1 + 3x2 ≤ 0; x2 ≥ 0 en geheel ¯ ¯ − x ≤ −1 2
Opgave 2.7 Beschouw het volgende probleem: (
¯ ) ¯ 2x + 2x + · · · + 2x = n 1 2 n ¯ max x1 ¯ ¯ xj ∈ {0, 1}, 1 ≤ j ≤ n
met n oneven, zodat dit probleem ontoelaatbaar is. a. Zij J een deelverz. van {1, 2, . . . , n} met hoogstens
n−1 2
elementen.
Geef iedere xj , j ∈ J een waarde 0 of 1 en bewijs dat de LP-relaxatie (nadat deze variabelen uit J gefixeerd zijn op 0 of 1), d.w.z. het probleem ¯ P ) ( P ¯ ¯ j ∈J / 2xj = n − j∈J 2xj max x1 ¯ ¯ 0 ≤ xj ≤ 1, j ∈ /J altijd toelaatbaar is. b. Bewijs dat iedere branch-and-bound procedure om het oorspronkelijke probleem op te lossen minstens 2(n+3)/2 − 1 deelproblemen moet onderzoeken.
2.3. SNEDEN
2.3
41
Sneden
Als de LP-relaxatie een geheeltallige oplossing heeft, dan is deze ook optimaal voor het geheeltallige probleem. Als dit niet het geval is dan kunnen we aan de LP-formulering een ongelijkheid toevoegen waaraan iedere geheeltallige toegelaten oplossing voldoet, maar waaraan het huidige LP-optimum niet voldoet. Zo’n ongelijkheid heet een snede.
2.3.1
Gomory’s fractie-snede algoritme
Beschouw probleem (2.1) en los de LP-relaxatie ervan op met de simplex methode. Veronderstel dat het optimale LP-tableau de volgende gedaante heeft: (xB )i = a∗i0 −
X
a∗ij (xN )j , i = 0, 1, . . . , m,
(2.4)
j
waarbij de 0-de rij correspondeert met de doelfunctie, en xB ∪ xN de oorspronkelijke plus de verschil- en schijnvariabelen bevat. In verband met de optimaliteit geldt a∗0j ≥ 0 voor alle j. Als de LP-relaxatie geen geheeltallige oplossing geeft, is er een rij, zeg rij r, met a∗r0 niet geheel. Uit (2.4) volgt dat iedere geheeltalige oplossing voldoet aan (xB )r +
X
ba∗rj c(xN )j ≤ a∗r0 ,
(2.5)
j
waarbij bxc het grootste gehele getal ≤ x is. Omdat voor iedere geheeltallige oplossing het linkerlid van (2.5) geheeltallig is, moet ook voor iedere geheeltallige oplossing gelden dat (xB )r +
X
ba∗rj c(xN )j ≤ ba∗r0 c
(2.6)
j
Vullen we in (2.6) voor (xB )r de uitdrukking uit (2.4) in, dan geeft dat de ongelijkheid X
{a∗rj − ba∗rj c}(xN )j ≥ a∗r0 − ba∗r0 c
(2.7)
j
Noteer de fracties a∗rj − ba∗rj c met frj voor alle j, dan geeft dit de zogenaamde fractie-snede X
frj (xN )j ≥ fr0
(2.8)
j
Omdat fr0 > 0 voldoet de optimale oplossing van de LP-relaxatie, d.w.z. xB = a∗•0 , xN = 0, inderdaad niet aan (2.8). Deze ongelijkheid kapt dus de LP-oplossing van het toegelaten gebied af en is dus een snede. De rij r heet de bronrij van de snede (de mag ook rij 0 zijn). De snede (2.8) is in 1958 door Gomory voorgesteld.4 Omdat (2.6) geheeltallige co¨effici¨enten heeft, is voor iedere geheeltallige x het verschil tusssen het rechter- en het linkerlid geheel. Omdat de fractie-snede (2.8) hieruit is ontstaan, na combinatie 4
R.E. Gomory, An algorithm for integer solutions to linear programs, Princeton IBM Mathematical Research
Report (1958).
42
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
met de gelijkheid (2.4) voor i = r, geldt dat voor iedere geheeltallige x ook het verschil tussen het rechter- en linkerlid van (2.8) geheel is. Schrijven we (2.8) met een verschilvariabele s, d.w.z. X s = −fr0 + frj (xN )j , (2.9) j
dan is s weer een niet-negatieve geheeltallige variabele. Voegen we de vergelijking (2.9) aan het tableau toe, dan is de bijbehorende oplossing wel duaal, maar niet primaal toelaatbaar (omdat −fr0 < 0). De duale simplex methode is dus de aangewezen methode om het nieuwe probleem te optimaliseren. Door het toevoegen van een snede gaat de primaire toelaatbaarheid verloren (immers −fr0 < 0). De onderaan het tableau toegevoegde snede wordt als pivotrij gekozen en de bijbehorende svariabele verdwijnt bij het pivoten uit de basis. Als s op een gegeven moment weer terugkeert in de basis, d.w.z. dat de snede in de op dat moment verkregen oplossing niet bindend is, dan kunnen we deze beperking verder weglaten. Er is nog vrijheid in de keuze van de bronrij r. Als de snede (2.8) aan het tableau wordt toegevoegd en kolom k(r) is de pivotkolom als rij r de snede genereert, dan daalt de waarde van de doelfunctie met
fr0 ·a∗0 k(r) frk(r) .
Hoe groter deze daling is, hoe dieper de snede.
Criteria voor de keuze van r zijn: (1) fr0 = maxi fi0 ; (2) Voorbeeld 2.6
fr0
frk(r)
= maxi
fi0
fik(i)
¯ ¯ ¯ ¯ ¯ max 3x1 − x2 ¯¯ ¯ ¯ ¯
; (3)
fr0 ·a∗0k(r) frk(r)
3x1 − 2x2 ≤
= maxi
3
−5x1 − 4x2 ≤ −10 2x1 + x2 ≤
5
x1 , x2 ≥ 0 en geheel
fi0 ·a∗0k(i) fik(i) .
.
We voeren verschilvariabelen y1 , y2 en y3 in en lossen het LP-probleem op. Daarna kiezen we bronrij r volgens het criterium fr0 = maxi fi0 . Dit geeft de volgende tableaus:
x0 x1 x2 y2
30 7 13 7 9 7 31 7
y1
y3
5 7 1 7 − 72 − 73
3 7 2 7 3 7 22 7
Neem de rij van x1 om de snede te genereren: s1 = − 67 + 71 y1 + 27 y3 .
x0 x1 x2 y2 s1
30 7 13 7 9 7 31 7 - 67
y1
y3
5 7 1 7 − 27 − 37 − 17
3 7 2 7 3 7 22 7 - 27
methode wordt
− 27
als
Voeg deze snede toe, dit
pivot genomen, wat het
geeft het volgende tableau.
volgende tableau geeft.
s1 3 2
x0
3
1 2
x1
1
0
1
x2
0
− 12
3 2
y2
−5
−2
11
3
1 2
− 72
y3
Volgens de duale simplex
y1
Dit is geen optimaal tableau. De volgende pivotrij is de rij van y2 en de pivot is -2.
2.3. SNEDEN
43
y2
s1
x0
7 4
1 4
17 4
x1
1
0
1
x2 y1 y3
5 4 5 2 7 4
− 14 − 12 1 4
− 54 − 11 2 − 34
s2 =
− 34
+
1 4 y2
+
1 4 s1 .
Deze snede toevoegen geeft
s1
x0
1 4
17 4
x0
x1
1
0
1
x2
5 4 5 2 7 4 − 43
− 14 − 12 1 4 − 14
− 54 − 11 2 − 34 − 14
y1 y3 s2
Neem de rij van y3 als bronrij:
y2 7 4
s2
s1
1
1
4
x1
1
0
1
x2
2
−1
−1
y1
4
−2
−5
y3
1
1
−1
y2
3
−4
1
y2 wordt de pivotkolom,
Dit tableau is optimaal met
wat het volgende tableau
een geheeltallige oplossing, die
oplevert.
dus optimaal is. De optimale
het volgende tableau.
oplossing luidt: x1 = 1, x2 = 2 met waarde 1.
Eindigheid Deze methode is niet zonder meer eindig. Door de keuze van de bronrij en de keuzes in de duale simplex methode nader te specificeren wordt een eindige methode verkregen onder de veronderstelling dat het toegelaten gebied {x | Ax ≤ b; x ≥ 0 en geheel} begrensd is. Keuze bronrij Als keuze voor de bronrij nemen we r zdd. r = min{i | fi0 > 0}. Keuzes in de duale simplex methode Allereerst veronderstellen we dat er geen twee kolommen van A zijn die een multiplicatieve constante verschillen (als de co¨effici¨enten in de doelfunctie verschillen, dan kan de kolom van de kleinste co¨effici¨ent worden weggelaten; als de co¨effici¨enten in de doelfunctie hetzelfde zijn, dan kunnen de kolommen worden samengevoegd). We zullen vervolgens laten zien dat alle kolommen van de tableaus lexicografisch positief kunnen zijn. Met ÂL en ºL noteren we lexicografisch groter resp. lexicografisch groter of gelijk. Los eerst het bijbehorende LP-probleem op. Als a∗0j > 0 voor alle j, dan zijn de kolommen van dit tableau lexicografisch positief. Als a∗0j = 0 voor sommige j’s, zeg voor {j | j ∈ J0 }, dan voegen we direct na de doelfunctie P de beperking j∈J0 (xN )j ≤ M toe, waarbij M voldoende groot is zodat de optimale oplossing hieraan voldoet (dit kan i.v.m. de veronderstelling dat het toegelaten gebied begrensd is). Hiermee wordt dit tableau lexicografisch positief en moeten we laten zien dat bij toepassing van de duale simplex methode de kolommen lexicografisch positief kunnen blijven. Beschouw een iteratie van de duale simplex methode en veronderstel dat het tableau lexicografisch positieve kolommen heeft. Laat rij l als pivotrij worden gekozen. Voor de pivotkolom k moet gelden dat a∗0k = min −a∗lk
(
) ¯ a∗0j ¯ ∗ ¯a <0 . −a∗lj ¯ lj
44
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
Als hiervoor meer kolommen in aanmerking komen, dan kiezen we kolom k zdd.
a∗•k −a∗lk
de lexi-
cografisch kleinste is. Deze keuze is uniek bepaald, omdat er anders twee kolommen zijn die een multiplicatieve factor verschillen, wat in strijd is met de gemaakte veronderstelling. De nieuwe pivotkolom ontstaat uit de oude door te delen door het positieve element −a∗lk en blijft dus lexicografisch positief (voor het pivotelement zelf geldt dit niet, maar omdat a∗•k ÂL 0, is een a∗ik > 0 met i < l, zodat de lexicografische eigenschap niet in gevaar komt). Noteer de getransformeerde elementen met (a∗ij )0 . Voor de kolommen j 6= k geldt (afgezien van de elementen in rij l): (a∗•j )0 = a∗•j + (a∗•k )0 · a∗lj . Als a∗lj ≥ 0: (a∗•j )0 ºL a∗•j ÂL 0. Als a∗lj < 0:
a∗•j −a∗lj
ÂL (a∗•k )0 , d.w.z. (a∗•j )0 = a∗•j + (a∗•k )0 · a∗lj ÂL 0.
We moeten tenslotte laten zien dat de pivotrij geen probleem oplevert. Als a∗lj ≤ 0, dan is (a∗lj )0 ≥ 0, zodat dit geen probleem geeft. Als a∗lj > 0, dan is er (omdat buiten rij l (a∗•j )0 ÂL 0 is) een probleem als (a∗ij )0 = 0 voor i = 0, 1, . . . , l − 1. Maar dat kan alleen als a∗ij = a∗ik = 0 voor i = 0, 1, . . . , l − 1 (aan te tonen met inductie naar i). Omdat a∗lk < 0 impliceert dit dat a∗•k lexicografisch negatief is: tegenspraak. Het toevoegen van de sneden tast de lexicografische eigenschap niet aan, omdat de sneden onderaan het tableau worden geplaatst. De lexicografische eigenschap wordt ook niet aangetast als we een s-variabele die weer terugkeert in de basis weglaten, want dan laten we de getransformeerde pivotrij l weg en we hebben gezien dat het tableau zonder de getransformeerde pivotrij l ook al lexicografisch positief is. Hiermee hebben we het volgende lemma aangetoond. Lemma 2.1 Als het LP-probleem begrensd is, dan heeft de duale simplex methode een implementatie waarin alle kolommen van de tableaus lexicografisch positief zijn. Stelling 2.2 Veronderstel dat het IP-probleem begrensd is. Met de aangegeven keuzes van de bronrij en de implementatie van de duale simplex methode is Gomory’s fractie-snede algoritme eindig. Bewijs Veronderstel dat er geen eindigheid is en laat t de iteratie-index zijn. De rij {at00 } van de waarden van de doelfunctie is niet-stijgend en naar beneden begrensd door het IP-optimum. Deze rij heeft een limiet, zeg L. Veronderstel tevens dat L niet geheel is, zeg L = bLc + f met 0 < f < 1. Na een eindig aantal iteraties, zeg q, is er een primaal en duaal optimaal tableau met aq00 = bLc + fq met f ≤ fq < 1. Volgens onze keuze van de bronrij fungeert de 0-de rij nu als bronrij en wordt als snede genomen P s = −fq + j f0j (xN )j ; s ≥ 0 en geheel. Omdat aq0k ≥ f0k > 0 (−f0k is het pivotelement), geldt: aq
aq
q q 0k 0k aq+1 00 = a00 − fq f0k ≤ a00 − fq aq = bLc < L, 0k
2.3. SNEDEN
45
tegenspraak, dus f = 0 en at00 = L met L geheel voor alle t ≥ T0 voor zekere T0 . Dan is at0kt = 0 voor alle t ≥ T0 met kt het nummer van de pivotkolom in de t-de iteratie. Maar dan is, vanwege de lexicografisch positieve kolommen, at1kt ≥ 0 voor alle t ≥ T0 , waaruit volgt dat {at10 } niet-stijgend is voor alle t ≥ T0 . Vervolgens beschouwen we at10 voor t ≥ T0 . Veronderstel dat at10 niet geheel is. Dan wordt rij 1 de bronrij, is at1kt > 0 (vanwege de lexicografische positiviteit) en is at
at
t 1kt ≤ at − f t 1kt = bat c. t at+1 10 10 at 10 10 = a10 − f10 f t 1kt
Daarom is `ofwel
at10
1kt
een geheel getal voor alle t ≥ T1 , `ofwel at10 wordt op een zeker moment
negatief. In dit laatste geval is rij 1 de pivotrij en dus at1kt < 0 voor zekere t. Maar dan is de kolom van kt niet meer lexicografisch positief: tegenspraak. Er geldt dus dat at10 een constant geheel getal is voor alle t ≥ T1 voor zekere T1 ≥ T0 . Door dit herhaald toe te passen krijgen we een T zdd. ati0 constant en geheel is voor alle t ≥ T , waarbij T een zeker eindig getal is, en voor alle i (het tableau heeft eindig veel rijen omdat we de rijen van snedes die weer in de basis terugkeren verwijderen). Het algoritme heeft dus hoogstens T iteraties: tegenspraak. Hieruit volgt dat het algoritme eindig is. Algoritme 2.2 Gomory’s fractie-snede algoritme Invoer: Een IP-probleem in de gedaante (2.1) met een eindige optimale oplossing. Uitvoer: De optimale oplossing x∗ . 1. Initialisatie Los het bijbehorende LP-probleem op. 2. Stopcriterium Als het tableau een geheeltallige oplossing x∗ heeft: x∗ is de optimale oplossing (STOP). 3. Iteratie (a) Kies een bronrij r zdd. a∗r0 niet geheel is. (b) Voeg de snede (2.8) aan het tableau toe. (c) Bepaal een optimaal tableau met de duale simplex methode (als een s-variabele terugkeert in de basis, dan laten we de desbetreffende rij weg) en ga naar stap 2. Opmerkingen: 1. Dantzig 5 heeft een bijzonder eenvoudige snede voorgesteld: Gomory en
Hoffman 6
P j
(xN )j ≥ 1.
hebben laten zien dat deze methode in het algemeen niet eindig is.
Bowman en Nemhauser hebben vervolgens een modificatie voorgesteld die wel eindig is.7 5 6
G.B. Dantzig, Note on solving linear programs in integers, Naval Research Logistics Quarterly 6 (1959) 75–76. R.E. Gomory and A.J. Hoffman, On the convergence of an integer programming process, Naval Research Lo-
gistics Quarterly 10 (1963) 121–123. 7 V.J. Bowman and G.L. Nemhauser, A finiteness proof for modified Dantzig cuts for integer programming, Naval Research Logistics Quarterly 17 (1970) 309–313.
46
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
2. Jeroslow en Kortanek 8 hebben laten zien dat voor iedere N er een t is zdd. het probleem ¯ ( ) ¯ x − 1x = 1 ¯ 1 t 2 2 max −x1 ¯ ¯ x1 , x2 ≥ 0 en geheel minstens N iteraties nodig heeft: er is dus geen uniforme bovengrens aan het aantal iteraties. Vraag 2.6
¯ ¯ ¯ ¯ ¯ Beschouw het IP-probleem max 3x1 − x2 ¯¯ ¯ ¯ ¯
3x1 − 2x2 ≤
3
−5x1 − 4x2 ≤ −10 2x1 + x2 ≤
5
.
x1 , x2 ≥ 0 en geheel Pas op dit probleem Gomory’s fractie-snede algoritme toe met de bronrij en de implementatie van de duale simplex methode volgens de keuzes van Stelling 2.2.
2.3.2
Gomory’s snede voor gemengd geheeltallige optimalisering
Beschouw het volgende gemengd geheeltallig lineair optimaliseringsprobleem met x de vector van de geheeltallige variabelen en y de vector van de continue variabelen: n r X X qk yk | Ax + Cy ≤ b; x, y ≥ 0 en x geheel , max pj xj + j=1
(2.10)
k=1
met A een (m × n)-matrix, C een (m × r)-matrix en b ∈ Rm . Los de LP-relaxatie van (2.10) op met de simplex methode en veronderstel dat het optimale LP-tableau de volgende gedaante heeft:
(
(yB )i = a∗i0 − (xB )i = a∗i0 −
P j∈J1
a∗ij (xN )j −
j∈J1
a∗ij (xN )j −
P
P j∈J2
a∗ij (yN )j , i ∈ M1
j∈J2
a∗ij (yN )j , i ∈ M2
P
(2.11)
waarbij de 0-de rij correspondeert met de doelfunctie en M1 ∪ M2 = {0, 1, 2, . . . , m}. We merken op dat aan (2.10) verschilvariabelen moeten worden toegevoegd die behandeld worden als continue y-variabelen. J1 is de verz. van de x-variabelen die in het optimale tableau niet in de basis zitten en J2 is de verz. van de y-variabelen (zowel de oorspronkelijke als de verschilvariabelen) die in het optimale tableau niet in de basis zitten. Als a∗i0 geheel is voor alle i ∈ M2 , dan is x geheeltallig en het tableau optimaal. Veronderstel dus verder dat a∗r0 niet geheel is voor een r ∈ M2 . De volgende stelling geeft een toegelaten snede. Stelling 2.3 Kies een r ∈ M2 met f0 = a∗r0 − ba∗r0 c > 0 en laat fj = a∗rj − ba∗rj c, j ∈ J1 ∪ J2 . Dan is X j∈J1 |fj ≤f0
X
fj (xN )j +
j∈J1 |fj >f0
f0 (1 − fj ) (xN )j + 1 − f0
X j∈J2 |a∗rj >0
a∗rj (yN )j +
X j∈J2 |a∗rj <0
f0 a∗ (yN )j ≥ f0 f0 − 1 rj (2.12)
een toegelaten snede. 8
R.G. Jeroslow and K.O. Kortanek, On an algorithm of Gomory, SIAM Journal 21 (1971) 55–60.
2.3. SNEDEN
47
Bewijs Laat αj ≡ a∗rj (mod 1) voor j ∈ J1 . Dan volgt uit (2.11) dat voor iedere geheeltallige x geldt: P P f0 ≡ j∈J1 αj (xN )j + j∈J2 a∗rj (yN )j (mod 1) ( fj als fj ≤ f0 ; Neem αj = Voor iedere toelaatbare (x, y) geldt: fj − 1 als fj > f0 . P P Als j∈J1 αj (xN )j + j∈J2 a∗rj (yN )j ≥ 0, dan: X X X X a∗rj (yN )j ≥ f0 (2.13) αj (xN )j + fj (xN )j + a∗rj (yN )j ≥ Als
P
j∈J1 |fj ≤f0
P
j∈J2 |a∗rj >0
j∈J2
j∈J1
a∗rj (yN )j < 0, dan: P P P P ∗ ∗ j∈J1 αj (xN )j + j∈J2 arj (yN )j ≤ f0 − 1, j∈J1 |fj >f0 (fj − 1)(xN )j + j∈J2 |a∗ <0 arj (yN )j ≤ j∈J1
αj (xN )j +
j∈J2
rj
zodat geldt:
f0 f0 − 1
X
X
(fj − 1)(xN )j +
a∗rj (yN )j
j∈J2 |a∗rj <0
j∈J1 |fj >f0
Omdat X
fj (xN )j +
X
a∗rj (yN )j ≥ 0 en
j∈J2 |a∗rj >0
j∈J1 |fj ≤f0
≥
X
f0 f0 − 1
f0 · (f0 − 1) = f0 f0 − 1
(2.14)
X
(fj − 1)(xN )j +
a∗rj (yN )j
j∈J2 |a∗rj <0
j∈J1 |fj >f0
(2.15) volgt uit (2.13), (2.14) en (2.15) dat (2.12) geldt. Omdat in de huidige optimale LP-oplossing xN = yN = 0, voldoet deze oplossing niet aan (2.12), zodat (2.12) inderdaad een snede is. Opmerking: Deze snede is door Gomory 9 in 1960 voorgesteld. Ook voor deze methode kan voor een speciale implementatie de eindigheid worden aangetoond op grond van lexicografische argumenten.10 Voorbeeld 2.7 Beschouw Voorbeeld 2.6, maar zonder de eis dat x2 geheel is. Het eerste LP-tableau dat we beschouwen is hetzelfde als het eerste tableau uit Voorbeeld 2.6. x0 x1 x2 y2
30 7 13 7 9 7 31 7
y1
y3
5 7 1 7 − 27 − 37
3 7 2 7 3 7 22 7
Neem de rij van x1 om de snede te genereren. De snede
x0 x1 x2 y2 s1
y3
y1
s1
5 7 1 7 − 27 − 37 − 17
3 7 2 7 3 7 22 7 - 27
3 2
3
x1
1
0
1
x2
0
− 12
3 2
y2
−5
−2
11
3
1 2
− 72
y3
(in onder-
timaal; we voeren vervolgens
Voegen we deze snede toe, dan
ste rij) de pivot, wat het vol-
een pivotstap uit in de rij van
ontstaat het volgende tableau.
gende tableau geeft.
y2 en met pivot -2.
is s1 =
9 10
+
+
2 7 y3 .
duale
x0
1 2
Dit tableau is nog niet op-
1 7 y1
de
y1
simplex
− 67
Volgens
30 7 13 7 9 7 31 7 - 67
methode wordt
− 27
R.E. Gomory, An algorithm for the mixed integer problem, RAND Report P-1885 (1960). Zie T.C. Hu, Integer programming and network flows, Addison-Wesley, 1970, pp. 255-259.
≥0
48
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING y2
s1
x0
7 4
1 4
17 4
x1
1
0
1
is nevenstaand tableau optimaal.
x2
5 4 5 2 7 4
− 14 − 12 1 4
− 54 − 11 2 − 34
De optimale oplossing luidt dus:
y1 y3
Omdat x1 geheeltallig is,
x1 = 1, x2 =
5 4
met waarde 74 .
Vraag 2.7 Los met Gomory’s snede algoritme het volgende gemengd geheeltallige probleem op. ¯ ¯ −x + 3x ≤ 6 ¯ 1 2 ¯ ¯ max 7x1 + 9x2 ¯ . 7x1 + x2 ≤ 35 ¯ ¯ x , x ≥ 0; x geheel 1
2.3.3
2
1
Opgaven
Opgave 2.8 Los met Gomory’s fractie-snede het volgende probleem op: ¯ ¯ ¯ −x1 − 4x2 ≤ −5 ¯ max −4x1 − 5x2 ¯¯ −3x1 − 2x2 ≤ −7 ¯ ¯ x , x ≥ 0 en geheel 1
2
.
Kies voor de bronrij r zdd. fr0 = maxi fi0 .
Opgave 2.9 Los met Gomory’s snede het volgende gemengd geheeltallige probleem op: ¯ ¯ 7x − 2x ≤ 14 1 2 ¯ ¯ ¯ x ≤ 3 2 ¯ . max 4x1 − x2 ¯ 2x − 2x ≤ 3 ¯ 1 2 ¯ ¯ x1 ≥ 0 en geheel; x2 ≥ 0 Opgave 2.10 Beschouw een zuiver geheeltallig lineair programmeringsprobleem. Hierop kan zowel Gomory’s fractie-snede als Gomory’s snede voor een gemengd geheeltallige probleem worden toegepast. Toon aan dat Gomory’s snede voor een gemengd geheeltallige probleem sterker is dan Gomory’s fractie-snede, d.w.z. dat als x voldoet aan het LP-probleem met de beperking van Gomory’s snede voor een gemengd geheeltallige probleem, dan voldoet x ook aan het LP-probleem met de beperking van Gomory’s fractie-snede.
2.4. HANDELSREIZIGERSPROBLEEM
2.4 2.4.1
49
Handelsreizigersprobleem Inleiding en formuleringen
Er zijn n steden en de afstand lij om van stad i naar stad j te gaan in bekend voor iedere i en j. Een handelsreiziger staat voor de opdracht om een rondreis langs alle steden te maken zdd. de totale reisafstand minimaal is. Veronderstel dat hij begint in stad 1. Er zijn dan n − 1 mogelijkheden voor de tweede stad; voor de derde stad zijn er dan n − 2 mogelijkheden, etc. Er zijn dus (n − 1)! mogelijke routes en daaruit moet de kortste worden gevonden. Expliciet onderzoek werkt in de praktijk niet: bijv. bij 24 steden zijn er 23! ≈ 2.6 × 1022 routes. Er kan bewezen worden dat dit probleem N P-volledig is.11 In het Engels spreken we over het Traveling Salesman Problem, afgekort TSP. We zullen deze afkorting hier ook gebruiken. De reden om het handelsreizigersprobleem uitvoerig te bestuderen is dat de technieken die we voor het TSP zullen bespreken illustratief zijn voor de manier waarop N P-moeilijke problemen in het algemeen worden aangepakt. We behandelen zowel de branch-and-bound methode om een exacte optimale oplossing te vinden als benaderingsalgoritmen. Pas vanaf 1954 is er sprake van een serieuze wiskundige bestudering van het TSP. Tot die tijd was men in staat om problemen op te lossen tot 20 steden.12 Dertig jaar later, in 1984, stond het record op 318 steden. Het huidige record, uit 2006, staat op 85.900 steden. Deze vooruitgang is te danken aan twee factoren: sterk verbeterde wiskundige technieken en sterk verbeterde computerapparatuur.13 We kunnen het TSP als combinatorisch optimaliseringsprobleem formuleren. Introduceer daartoe (0,1)-variabelen xij met de volgende interpretatie: xij = 0 (1) betekent dat de directe verbinding van stad i naar stad j niet (wel) wordt gekozen. Op deze wijze ligt het voor de hand het volgende probleem te bekijken:
min
n X i,j=1
Hierbij hebben de voorwaarden
lij xij
P j
¯ P ¯ j xij = 1, 1 ≤ i ≤ n ¯ ¯ P ¯ ¯ j xji = 1, 1 ≤ i ≤ n ¯ ¯ xij ∈ {0, 1} voor alle (i, j)
(2.16)
xij = 1, 1 ≤ i ≤ n, de betekenis dat er voor iedere stad
i precies ´e´en andere stad is waar we vanuit stad i naar toe gaan; zo geven de voorwaarden P e´en andere stad is van waaruit j xji = 1, 1 ≤ i ≤ n, aan dat er voor iedere stad i ook precies ´ we naar stad i toegaan. De doelfunctie telt alle afstanden die in de route zitten bij elkaar op. 11
Zie: R.M. Karp, Reducibility among combinatorial problems, in: R.E. Miller and J.W. Thatcher, Complexity
of computer computations, Plenum Press, New York (1972) 85–103. 12 Dantzig, Fulkerson en Johnson slaagden er in 1954 in om een probleem met 49 steden op te lossen, wat voor die tijd als een grote doorbraak werd beschouwd. Zie G.B. Dantzig, D.R. Fulkerson and S.M. Johnson, Solution of a large scale traveling salesman problem, Operations Research 2 (1954) 393–410. 13 Een mooie website waar veel informatie over het TSP te vinden is, is www.tsp.gatech.edu. In 2006 is een boek over het TSP verschenen met een vrij compleet overzicht over de stand van zaken: David L. Applegate, Robert E. Bixby, Vasek Chv´ atal and William J. Cook: The Traveling Salesman Problem: A Computational Study, Princeton University Press, 2006.
50
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
De formulering (2.16) is echter niet correct, want er worden ook subrondes toegelaten, terwijl er maar ´e´en ronde mag zijn die alle steden bevat. Een goede formulering krijgen we bijvoorbeeld door aan het probleem de volgende beperkingen toe te voegen: ui − uj + nxij ≤ n − 1 voor alle i, j ≥ 2
(2.17)
In Opgave 2.11 wordt gevraagd aan te tonen dat dit een correcte formulering is voor het TSP.14 We zullen nog twee andere formuleringen geven. Laat S ⊆ {2, 3, . . . , n} met |S| ≥ 2. Als we kijken naar de verbindingen die beide eindpunten in S hebben, dan kunnen in een ronde die alle knooppunten bevat hoogstens |S| − 1 van dergelijke verbindingen zitten (anders is er subronde in S). Hieruit volgt de volgende formulering van dit probleem: n X min lij xij i,j=1
¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯
P j
xij = 1, 1 ≤ i ≤ n
j
xji = 1, 1 ≤ i ≤ n
P P
i∈S,j∈S xij ≤ |S| − 1 voor alle S ⊆ {2, 3, . . . , n} met |S| ≥ 2 xij ∈ {0, 1} voor alle (i, j)
(2.18)
Een derde formulering krijgen we door weer deelverz. S ⊆ {2, 3, . . . , n} te nemen met |S| ≥ 2. Als we kijken naar de pijlen met beginpunt in S en eindpunt niet in S, dan heeft iedere ronde die alle knooppunten bevat minstens ´e´en van dergelijke pijlen, terwijl als er subtours zijn er een S te vinden is waarvoor dit niet geldt. Door de beperkingen X xij ≥ 1 voor alle S ⊆ {2, 3, . . . , n} met |S| ≥ 2
(2.19)
i∈S,j ∈S /
worden subtours wel en een tour langs alle knooppunten niet uitgesloten. Dit geeft de formulering: ¯ P ¯ xij = 1, 1 ≤ i ≤ n j ¯ ¯ P n X ¯ x = 1, 1 ≤ i ≤ n ¯ j ji (2.20) lij xij ¯ P min ¯ xij ≥ 1 voor alle S ⊆ {2, 3, . . . , n} met |S| ≥ 2 i,j=1 ¯ i∈S,j ∈S / ¯ ¯ xij ∈ {0, 1} voor alle (i, j) Opmerking Formulering (2.17) heeft O(n2 ) beperkingen, terwijl de formuleringen (2.18) en (2.20) O(2n ) beperkingen hebben. De eerste formulering is dus veel compacter, wat niet per se betekent dat deze ook beter is. De tweede en derde formulering hebben het voordeel dat niet direct alle beperkingen hoeven te worden toegevoegd. Je zou pas nadat een huidige formulering een subronde oplevert deze subronde kunnen uitsluiten door dan de beperking toe te voegen met S de verz. van de knooppunten van de subronde en dan het probleem opnieuw op te lossen. Dit geeft een rij van verwante optimaliseringsproblemen. Vaak is dit een handige oplossingsstrategie. 14
De formulering met (2.17) is afkomstig van Tucker, zie: C.E. Miller, A.W. Tucker and R.A. Zemlin, Integer
programming formulation and traveling salesman problem, Journal of the ACM 7 (1960) 326–329.
2.4. HANDELSREIZIGERSPROBLEEM
51
Toepassing 2.1 Machine scheduling Een aantal taken, zeg n, moet achter elkaar, in een nader te bepalen volgorde, op ´e´en machine worden uitgevoerd. Als taak j de vorige taak is geweest, dan is de insteltijd van de machine tjk als taak k direct na taak j wordt gekozen. Voor de eerste taak geldt een insteltijd t0k als taak k als eerste wordt gekozen. Verder is tk de tijdsduur voor het verwerken van taak k op de machine. De vraagstelling luidt: in welke volgorde moeten de taken op de machine worden gescheduled om al het werk zo vroeg mogelijk af te hebben? Beschouw een bepaalde volgorde, zeg i1 , i2 , . . . , in . De totale tijdsduur is dan: P t0i1 + ti1 + ti1 i2 + ti2 + · · · + tin−1 in + tin = t0i1 + ti1 i2 + · · · + tin−1 in + nk=1 tik . P De term nk=1 tk is onafhankelijk van de gekozen volgorde. Het machine scheduling probleem is dus equivalent met het volgende TSP: V = {0, 1, . . . , n}; l0k = t0k , 1 ≤ k ≤ n; ljk = tjk , 1 ≤ j, k ≤ n; lk0 = 0, 1 ≤ k ≤ n.
2.4.2
Branch-and-Bound methode
Het TSP behoort tot de klasse N PC. Het is dus zeer onwaarschijnlijk dat hiervoor een effici¨ent algoritme bestaat. De in deze paragraaf te behandelen branch-and-bound 15 methode is dan ook niet polynomiaal. De branch-and-bound methode voor het TSP gaat als volgt. Allereerst reduceren we de afstandenmatrix. Iedere route door alle steden bevat precies ´e´en element van iedere rij en van iedere kolom (vanuit iedere plaats gaan we immers naar ´e´en andere plaats en in iedere plaats komen we vanuit ´e´en andere plaats). Als we dus van een rij of een kolom hetzelfde getal aftrekken, dan krijgen we een equivalent probleem. Trekken we van iedere rij het kleinste element uit die rij af, dan krijgen we een nieuwe afstandenmatrix met in iedere rij minstens ´e´en 0. Daarna trekken we in deze gereduceerde matrix van iedere kolom het kleinste element af. Aldus ontstaat een volgende gereduceerde afstandenmatrix met in iedere rij en in iedere kolom minstens ´e´en 0. Het totaal dat we aldus hebben gereduceerd is een ondergrens voor de lengte van iedere rondreis. Vervolgens gaan we bij iedere 0 noteren wat er extra gereduceerd kan worden als we deze 0 niet kiezen (d.w.z. we vervangen 0 door ∞ en kijken wat verder gereduceerd kan worden); dit heet het reductiegetal. Deze reductiegetallen leveren een criterium op voor het vertakken en wel als volgt. 1. Zoek de 0 met het grootste reductiegetal, zeg op plaats (i, j). 2. Splits het huidige deelprobleem in de volgende twee deelprobelen: a. voeg aan het oude deelprobleem toe dat (i, j) wel in de route wordt opgenomen; b. voeg aan het oude deelprobleem toe dat (i, j) niet in de route wordt opgenomen. 15
De term ’branch-and-bound’ is ge¨ıntroduceerd door Little, Murty, Sweeney en Karel. Zie J.C.D. Little, K.G.
Murty, D.W. Sweeney and C. Karel, An algorithm for the travelling salesman problem, Operations Research 11 (1963) 972–989.
52
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
De grenzen van de twee nieuwe deelproblemen worden als volgt bepaald: In geval a: Maak de gereduceerde afstandenmatrix kleiner door rij i en kolom j weg te laten en kijk wat daardoor extra kan worden gereduceerd. Let er daarbij ook op dat subtours worden uitgesloten. De nieuwe grens wordt verkregen door bij de oude grens de extra reductie op te tellen. In geval b: De nieuwe grens is de oude grens plus het reductiegetal van de 0 op plaats (i, j). Voorbeeld 2.8 L=
Reducties
−
35 43 23 33 19
35
−
43 47 23 42 33 21 19 26
47 42 21 26 − 36 31 30 36 − 50 17 31 50 − 45 30 17 45 −
eerste rij: 19 tweede rij: 21 derde rij: 30 vierde rij: 17 vijfde rij: 21
0 L =
zesde rij: 17 eerste kolom: 2
−
16 14
4
14
12
−
16 21
0
11 17
−
4
25
9
10
0
0
0
9
3
0
5 6 1 0 − 33 0 29 − 24 0 28 −
Totale reductie: 137
derde kolom: 10 Iteratie 1 Vervolgens gaan we bij de 0’en de reductiegetallen bepalen. Kiezen we de 0 op plaats (2, 5) niet, dan moeten we vanuit plaats 2 naar een andere plaats, wat minstens 5 kost; eveneens wordt plaats 5 uit een andere plaats dan plaats 2 bereikt, wat minstens 1 kost. Het reductiegetal bij deze 0 is dus 5 + 1 = 6. Dit doen we voor iedere 0, wat het volgende tableau geeft (de reductiegetallen staan rechts boven de desbetreffende 0’en en linksboven staat de totale reductie). Het grootste reductiegetal is 9 bij het element (5, 2). Dit 137 1 2
1 12
2 16 -
3 14 16
4
5
6
geeft de splitsing in de volgende twee deelproblemen:
4
14
04
P1 : (5, 2) behoort wel tot de tour; ondergrens is 137 +
21
06
5
(3 + 5 + 1) = 146 (immers: als 5-de rij en 2-de kolom worden weggelaten kan in 3-de kolom 3 worden gereduceerd;
3
11
17
-
6
1
01
4
4
25
9
-
33
04
omdat (2, 5) niet mag kan in 2-de rij 5 en in 5-de kolom
5
10
09
03
29
-
24
1 worden gereduceerd).
6
04
3
04
28
-
9
P2 : (5, 2) behoort niet tot de tour; ondergrens 137 + 9 = 146.
Iteratie 2 Kies deelprobleem P1 . Na het weglaten van de 5-de rij en 2-de kolom en na het reduceren wordt de tabel: 146
1
3
4
5
6
1
-
11
4
13
04
2
7
8
16
-
07
3
11
-
6
013
00
4
4
6
-
32
04
6
04
06
04
27
-
Het grootste reductiegetal is 13 bij het element (3, 5). Dit geeft de splitsing in de volgende twee deelproblemen: P3 : voeg aan P1 toe: (3, 5) behoort wel tot de tour; ondergrens is 146 (ga zelf na dat geen verdere reductie mogelijk is en dat (2, 3) niet is toegestaan). P4 : voeg aan P1 toe: (3, 5) behoort niet tot de tour; ondergrens 146 + 13 = 159.
2.4. HANDELSREIZIGERSPROBLEEM
53
Iteratie 3 Kies deelprobleem P3 . Na het weglaten van de 3-de rij en 5-de kolom en het verbieden van (2, 3) wordt de tabel: Het grootste reductiegetal is 7 bij het element (2, 6). Dit geeft de
146
1
3
4
6
1
-
11
4
04
2
7
-
16
07
4
4
6
-
04
6
04
06
04
-
splitsing in de volgende twee deelproblemen: P5 : voeg aan P3 toe: (2, 6) behoort wel tot de tour; (6, 3) is verboden en de ondergrens is 146 + (6 + 4) = 156 (ga dit zelf na). P6 : voeg aan P3 toe: (2, 6) behoort niet tot de tour; ondergrens 146 + 7 = 153.
Iteratie 4 Kies deelprobleem P2 . Neem de eerste tabel en verbied (5, 2) en voer de reductie uit. Dit geeft de volgende tabel: 146
1
2
3
4
5
6
1
-
7
14
4
14
04
2
12
-
16
21
06
5
3
11
8
-
6
1
01
4
4
16
9
-
33
04
5
10
-
013
29
-
24
6
04
07
3
04
28
-
Het grootste reductiegetal is 13 bij het element (5, 3). Dit geeft de splitsing in de volgende twee deelproblemen: P7 : voeg aan P2 toe: (5, 3) behoort wel tot de tour; ondergrens is 146. P8 : voeg aan P2 toe: (5, 3) behoort niet tot de tour; ondergrens 146 + 13 = 159.
Iteratie 5 Kies deelprobleem P7 . Na reductie wordt de tabel: 146
1
2
4
5
6
Het grootste reductiegetal is 19 bij het element (2, 5). Dit geeft de splitsing in de volgende twee deelproblemen:
1
-
7
4
14
04
2
12
-
21
019
5
P9 : voeg aan P7 toe: (2, 5) behoort wel tot de tour; ondergrens
-
06
is 146. P10 : voeg aan P7 toe: (2, 5) behoort niet tot de tour; ondergrens 146 + 19 = 165.
3
11
8
6
4
4
16
-
33
04
6
04
07
04
28
-
Iteratie 6 Kies deelprobleem P9 . Na reductie wordt de tabel: Het grootste reductiegetal is 7 bij het element (6, 2). Dit geeft de 146 1 2 4 6 splitsing in de volgende twee deelproblemen: 1 7 4 04 P11 : voeg aan P9 toe: (6, 2) behoort wel tot de tour; ondergrens 3 11 6 06 is 146 + (6 + 4) = 156. 4 4 16 - 04 P12 : voeg aan P9 toe: (6, 2) behoort niet tot de tour; ondergrens 6 04 07 04 146 + 7 = 153.
54
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
Iteratie 7 Kies deelprobleem P12 . Na reductie wordt de tabel: Het grootste reductiegetal is 9 bij het element (1, 2). Dit geeft de 153 1 2 4 6 splitsing in de volgende twee deelproblemen: 1 - 09 4 00 P13 : voeg aan P12 toe: (1, 2) behoort wel tot de tour; ondergrens 3 11 6 06 is 153. 4 4 9 - 04 P14 : voeg aan P12 toe: (1, 2) behoort niet tot de tour; ondergrens 04 - 04 6 153 + 9 = 162. Iteratie 8 Kies deelprobleem P13 . Na reductie wordt de tabel: 153
1
4
6
Tot nu toe hadden we al de verbindingen (1, 2, 5, 3). Dit laat zich als
3
-
6
0
volgt optimaal afmaken: (1, 2, 5, 3, 6, 4, 1) met lengte 157. Hierdoor
4
4
-
0
bevatten de volgende deelproblemen geen betere rondreis: P4 , P8 , P10
6
0
0
-
en P14 . Over blijven dus nog de deelproblemen P5 , P6 en P11 .
Iteratie 9 Kies deelprobleem P6 . De bijbehorende tabel is: Het grootste reductiegetal is 9 bij het element (2, 1). Dit geeft de 153 1 3 4 6 splitsing in de volgende twee deelproblemen: 1
-
11
4
04
P15 : voeg aan P6 toe: (2, 1) behoort wel tot de tour; ondergrens
2
09
-
9
-
is 153. P16 : voeg aan P6 toe: (2, 1) behoort niet tot de tour; ondergrens 153 + 9 = 162. Dit deelprobleem hoeft dus ook niet verder onder-
4
4
6
-
04
6
00
06
04
-
zocht te worden. Iteratie 10 Kies deelprobleem P15 . Na reductie wordt de tabel: 153
3
4
6
1
-
4
0
Tot nu toe hadden we al de verbindingen (3, 5, 2, 1). Dit laat zich als
4
6
-
0
volgt optimaal afmaken: (3, 5, 2, 1, 4, 6, 3) met lengte 157.
6
0
0
-
Iteratie 11 Kies deelprobleem P5 . Na reductie wordt de tabel: 156
1
3
4
Tot nu toe hadden we al de verbindingen (3, 5, 2, 6). Dit laat zich als
1
-
1
0
volgt optimaal afmaken: (3, 5, 2, 6, 1, 4, 3) met lengte 156. Hierdoor
4
4
0
-
heeft ook het laatste deelprobleem dat nog over is, namelijk P11 met
6
0
-
0
grens 156, geen betere oplossing en zijn we klaar.
Een optimale oplossing van het TSP is dus de rondreis (3, 5, 2, 6, 1, 4, 3) met lengte 156.
2.4. HANDELSREIZIGERSPROBLEEM
55
Vraag 2.8 Los het TSP met branch-and-bound op voor de − 54 54 − L = 48 32 92 61 24 35
2.4.3
volgende afstandentabel: 48 92 24 32 61 35 − 45 23 . 45 − 67 23 67 −
Heuristieken
Een heuristiek is een algoritme dat een benadering geeft voor de exacte oplossing van een probleem. Heuristieken zijn zinvol als er is geen polynomiale methode beschikbaar om het probleem exact op te lossen. Een heuristiek moet bij voorkeur zelf is wel een polynomiaal algoritme zijn. Hoe dichter de benaderende oplossing bij de exacte oplossing ligt, des te beter is de heuristiek. De kwaliteit van heuristiek H, genoteerd met k(H), meten we af aan de slechtste instantie voor de heuristiek: de zogenaamde worst case analyse. Laat H(P ) de waarde van de doelfunctie zijn als heuristiek H op instantie P wordt toegepast, en laat O(P ) het optimum zijn van instantie P . Bij minimaliseringsproblemen is dus altijd H(P ) ≥ O(P ). De kwaliteit k(H) van heuristiek H wordt als volgt gedefinieerd: k(H) = supP
H(P ) O(P )
(2.21)
De kwaliteit van een heuristiek is dus minstens 1. Vaak kennen we O(P ) niet exact, maar hebben we wel een ondergrens voor O(P ), zeg L(P ). We kunnen dan k(H) als volgt afschatten: k(H) = supP
H(P ) H(P ) ≤ supP O(P ) L(P )
(2.22)
De volgende stelling, afkomstig van Sahni en Gonzalez,16 laat zien dat de kwaliteit van iedere polynomiale heuristiek voor het TSP willekeurig slecht is. Dit geeft een indicatie dat het snel oplossen van het TSP zeer moeilijk, zo niet onmogelijk is. Stelling 2.4 Als P = 6 N P, dan geldt dat voor iedere c ≥ 1 er geen polynomiale heuristiek H voor het TSP is met k(H) ≤ c. Bewijs Stel dat een dergelijke heuristiek H wel bestaat, dan zullen we aantonen dat het Hamilton-kring probleem tot P behoort. Omdat het Hamilton-kring probleem tot N PC behoort, volgt daaruit dat P = N P, wat de gewenste tegenspraak oplevert. Veronderstel dat we willen nagaan of de graaf G = (V, E) met n knooppunten een Hamilton-kring bevat. We construeren daartoe de volgende instantie P van het TSP: 16
S. Sahni and T. Gonzales, P -complete approximation problems, Journal of the ACM 23 (1976) 555–565.
56
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING ( lij =
1
als (vi , vj ) ∈ E
c · n + 1 anders
Nu geldt: G heeft een Hamilton-kring d.e.s.d. als het TSP een optimale oplossing heeft met lengte n. In dat geval is dus O(P ) = n. Omdat k(H) ≤ c, geldt dat H(P ) ≤ c · O(P ) = c · n. Dus als G een Hamilton-kring heeft, dan geeft H een approximatie met lengte maximaal c · n. Stel G heeft geen Hamilton-kring. Dan heeft iedere oplossing van het TSP minimaal de lengte (n − 1) + (c · n + 1) = (c + 1) · n > c · n. Omdat H polynomiaal is, geeft dit het volgende polynomiale algoritme voor het Hamilton-kring probleem: Pas H toe op de bijbehorende instantie P van het TSP en er is een Hamilton-kring d.e.s.d. als H(P ) ≤ c · n. Invoeg-heuristieken Bij invoeg-heuristieken zijn tijdens het algoritme de steden {1, 2, . . . , n} verdeeld in twee groepen, zeg S en T . De steden van S vormen een subtour en de steden van T zijn nog niet opgenomen in de subtour. Als S = {i1 , i2 , . . . , ik }, dan hoort hierbij de subtour {i1 , i2 , . . . , ik , i1 }. In iedere iteratie wordt ´e´en element van T naar S overgeheveld. Bij de start nemen we S = {1} en we stoppen als S n elementen bevat. Een invoeg-heuristiek heeft dus n − 1 iteraties. Algoritme 2.3 Generieke vorm van een invoeg-heuristiek Invoer: Een n × n afstandenmatrix L. Uitvoer: Een rondreis S ∗ als benadering van de optimale route. 1. S := {1}; T := {2, 3, . . . , n}; k := 1. 2. Als k < n en S = {i1 = 1, i2 , . . . , ik }: (a) Kies een j ∈ T ; T := T − {j}; (b) Bepaal een 1 ≤ l ≤ k, laat S = {i1 = 1, i2 , . . . , il , j, il+1 . . . , ik } en k := k + 1. 3. Als k = n : S ∗ := (S, i1 ) is de met de heuristiek verkregen approximatie (STOP). Anders: ga naar stap 2. Het volgende algoritme kiest als nieuwe stad de stad het dichtst bij de laatst gekozen stad. Algoritme 2.4 Naaste-buur heuristiek Invoer: Een n × n afstandenmatrix L. Uitvoer: Een route {i1 , i2 , . . . , in , i1 } als benadering van de optimale route. 1. S := {1}; T := {2, 3, . . . , n}; k := 1. 2. Als k < n en S = {i1 = 1, i2 , . . . , ik }: (a) Kies j ∈ T zdd. lik j = minm∈T lik m ; T := T − {j}; (b) S := {i1 = 1, i2 , . . . , ik , j} en k := k + 1.
2.4. HANDELSREIZIGERSPROBLEEM
57
3. Als k = n : S ∗ := (S, i1 ) is de met de heuristiek verkregen approximatie (STOP). Anders: ga naar stap 2.
Voorbeeld 2.9 Neem de afstandsmatrix − 35 43 23 35 − 47 42 43 47 − 36 L= 23 42 36 − 33 21 31 50
uit Voorbeeld 2.8. S := {1} 33 19 j := 6; S := {1, 6} 21 26 j := 4; S := {1, 6, 4} 31 30 j := 3; S := {1, 6, 4, 3} 50 17 j := 5; S := {1, 6, 4, 3, 5} − 45 j := 2; S := {1, 6, 4, 3, 5, 2} 19 26 30 17 45 − Approximatie S ∗ := {1, 6, 4, 3, 5, 2, 1} met lengte 159.
Opmerkingen: 1. De complexiteit van dit algoritme is O(n2 ) (ga dit zelf na). 2. Er kan worden aangetoond 17 dat, zelfs als aan de driehoeksongelijkheid is voldaan, k(H) = Θ(log n). In het volgende algoritme wordt als nieuwe stad gekozen de stad die het dichtst bij een van de steden van S ligt en deze wordt zo goed mogelijk ingevoegd tussen de huidige steden van S. Algoritme 2.5 Dichtstbijzijnde-stad heuristiek Invoer: Een n × n afstandenmatrix L. Uitvoer: Een route {i1 , i2 , . . . , in , i1 } als benadering van de optimale route. 1. S := {1}; T := {2, 3, . . . , n}; k := 1. 2. Als k < n en S = {i1 = 1, i2 , . . . , ik }: (a) Bepaal voor alle j ∈ T : lmin (j) := mini∈S lij ; (b) Kies j ∈ T zdd. lmin (j) = minm∈T lmin (m); T := T − {j}; (c) Voeg j aan S toe op die plaats zdd. de subtour bij S ∪ {j} een minimale lengte heeft; (d) k := k + 1. 3. Als k = n : S ∗ := (S, i1 ) is de met de heuristiek verkregen approximatie (STOP). Anders: ga naar stap 2.
17
D.J. Rozenkrantz, R.E. Steans and P.M. Lewis, ”An analysis of several heuristics for the traveling salesman
problem”, SIAM Journal on Computing 6 (1977) 563-581.
58
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
Voorbeeld 2.10 Neem weer − 35 43 L= 23 33
de afstandsmatrix uit Voorbeeld 2.8. S := {1} 35 43 23 33 19 j := 6; S := {1, 6} − 47 42 21 26 j := 4; S := {1, 6, 4} 47 − 36 31 30 j := 2; S := {1, 2, 6, 4} 42 36 − 50 17 j := 5; S := {1, 5, 2, 6, 4} 21 31 50 − 45 j := 3; S := {1, 3, 5, 2, 6, 4} 19 26 30 17 45 − Approximatie S ∗ := {1, 3, 5, 2, 6, 4, 1} met lengte 161.
Opmerkingen: 1. Het algoritme is zo te implementeren dat de complexiteit van dit algoritme O(n2 ) is (zie Opgave 2.14). 2. Er kan worden aangetoond 18 dat, indien aan de driehoeksongelijkheid is voldaan, k(H) = 2. In het volgende algoritme wordt als nieuwe stad gekozen de stad die het verst bij een van de steden van S vandaan ligt en deze wordt zo goed mogelijk ingevoegd. Op het eerste gezicht lijkt dit misschien wat vreemd. Echter, omdat alle steden in de tour moeten komen, is het niet onlogisch om eerst de steden die ver weg liggen in de route op te nemen. Algoritme 2.6 Verste-stad heuristiek Invoer: Een n × n afstandenmatrix L. Uitvoer: Een route {i1 , i2 , . . . , in , i1 } als benadering van de optimale route. 1. S := {1}; T := {2, 3, . . . , n}; k := 1. 2. Als k < n en S = {i1 = 1, i2 , . . . , ik }: (a) Bepaal voor alle j ∈ T : lmin (j) := mini∈S lij ; (b) Kies j ∈ T zdd. lmin (j) = maxm∈T lmin (m); T := T − {j}; (c) Voeg j aan S toe op die plaats zdd. de subtour bij S ∪ {j} een minimale lengte heeft; (d) k := k + 1. 3. Als k = n : S ∗ := (S, i1 ) is de met de heuristiek verkregen approximatie (STOP). Anders: ga naar stap 2. Opmerkingen: 1. Het algoritme is zo te implementeren dat de complexiteit van dit algoritme is O(n2 ) is (zie Opgave 2.14). 2. Er kan worden aangetoond 19 dat, zelfs als de driehoeksongelijkheid geldt, k(H) ≥ 18
13 2 .
D.J. Rozenkrantz, R.E. Steans and P.M. Lewis, ”An analysis of several heuristics for the traveling salesman
problem”, SIAM Journal on Computing 6 (1977) 563-581. 19 C.A.J. Hurkens, ”Nasty TSP instances for classical insertion heuristics”, Report University of Technology, Eindhoven (1991).
2.4. HANDELSREIZIGERSPROBLEEM
59
In de laatste invoeg-heuristiek wordt als nieuwe stad die stad gekozen die, na zo goed mogelijk ingevoegen tussen de huidige steden van S, de kortste subtour oplevert. Algoritme 2.7 Beste-invoeg heuristiek Invoer: Een n × n afstandenmatrix L. Uitvoer: Een route {i1 , i2 , . . . , in , i1 } als benadering van de optimale route. 1. S = {1}; T = {2, 3, . . . , n}; k = 1. 2. Als k < n en S = {i1 = 1, i2 , . . . , ik }: (a) Bepaal voor alle j ∈ T : bmin (j) = toename van de lengte van de subtour als j zo goed mogelijk wordt ingepast. (b) Kies j ∈ T zdd. bmin (j) = minm∈T bmin (m); T := T − {j}; (c) Voeg j aan S toe op die plaats zdd. de subtour bij S ∪ {j} een minimale lengte heeft; (d) k := k + 1. 3. Als k = n : S ∗ := (S, i1 ) is de met de heuristiek verkregen approximatie (STOP). Anders: ga naar stap 2. Opmerkingen: 1. De bepaling van bmin (j) heeft complexiteit O(n2 ) (ga dit zelf na). Daardoor heeft het algoritme complexiteit O(n3 ). 2. De kwaliteit van dit algoritme is dezelfde als van algoritme 2.5, d.w.z. k(H) = 2 als aan de driehoeksongelijkheid is voldaan.20 Heuristieken met een kwaliteitsgarantie Er bestaan ook heuristieken die een garantie voor de kwaliteit geven. We zullen hiervan twee voorbeelden laten zien. We nemen aan dat de afstandenmatrix L symmetrisch is en dat aan dat de driehoeksongelijkheid geldt: lij ≤ lik + lkj voor alle i, j en k. In deze heuristieken wordt eerst een minimale opspannende boom, zeg T , geconstrueerd. Dit kan met een O(n2 )-algoritme.21 De eerste heuristiek doet daarna het volgende: dupliceer alle takken van T tot S, waardoor een Euler graaf ontstaat, zodat alle takken van S tezamen een kring vormen, zeg kring C; vervolgens doorlopen we C vanuit stad 1, waarbij als een stad j voor de tweede keer wordt bezocht, zeg via {i, j, k}, de takken (i, j) en (j, k) worden vervangen door ´e´en tak (i, k). Op deze manier snijden we delen van C af. Door de driehoeksongelijkheid wordt de nieuwe ronde daardoor niet groter.
20
Ook dit resultaat kan worden gevonden in het artikel van Rozenkrantz, Steans en Lewis: D.J. Rozenkrantz,
R.E. Steans and P.M. Lewis, ”An analysis of several heuristics for the traveling salesman problem”, SIAM Journal on Computing 6 (1977) 563-581. 21 Dit kan met de methode van Prim of de methode van Kruskal. Zie hiervoor Besliskunde 1.
60
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
Algoritme 2.8 Boom verdubbeling heuristiek Invoer: Een n × n symmetrische afstandenmatrixrix L die aan de driehoeksongelijkheid voldoet. Uitvoer: Een rondreis C ∗ als benadering van de optimale route. 1. Construeer een minimale opspannende boom T . 2. Laat S bestaan uit de verdubbeling van de takken van T . 3. Construeer uit S ´e´en grote kring C. 4. Doorloop C vanuit stad 1 en als een stad j voor de tweede keer wordt bezocht, zeg via {i, j, k}, dan worden de takken (i, j) en (j, k) vervangen door de tak (i, k). Dit geeft een rondreis C ∗ . Voorbeeld 2.11 Neem weer de afstandsmatrix uit Voorbeeld 2.8. 1. T := {(4, 6), (1, 6), (2, 5), (2, 6), (3, 6)} met lengte l(T ) = 113. 2. S := {(4, 6), (1, 6), (2, 5), (2, 6), (3, 6), (4, 6), (1, 6), (2, 5), (2, 6), (3, 6)}. 3. C := {1, 6, 2, 5, 2, 6, 3, 6, 4, 6, 1} met l(C) = 226. 4. C ∗ := {1, 6, 2, 5, 3, 4, 1} met l(C ∗ ) = 156. Stelling 2.5 De boom verdubbeling heuristiek heeft complexiteit O(n2 ) en de kwaliteit is 2. Bewijs De complexiteit van stap 1 is O(n2 ). Stap 2, stap 3 en stap 4 hebben ieder als complexiteit de orde van het aantal takken van T , d.w.z. complexiteit O(n). De totale complexiteit van de heuristiek is dus O(n2 ). Zij Copt de optimale rondreis. Door uit Copt ´e´en tak weg te laten ontstaat een boom, dus is l(T ) ≤ l(Copt ). Omdat door het afsnijden in stap 4 de lengte ook niet toeneemt, kunnen we schrijven: l(C ∗ ) ≤ l(C) = l(S) = 2 · l(T ) ≤ 2 · l(Copt ), waaruit volgt dat de kwaliteit van de heuristiek hoogstens 2 is. Beschouw vervolgens een graaf met 2n knooppunten die liggen op twee concentrische cirkels met straal R en straal R+r, respectievelijk. Op de grote cirkel liggen de n knooppunten v1 , v2 , . . . , vn , die op gelijke afstand van elkaar liggen, dus op afstand
2π(R+r) . n
De knooppunten op de binnenste cirkel, w1 , w2 , . . . , wn , liggen op de lijn van het centrum naar de knooppunten op de buitenste cirkel, dus op afstand
2πR n
van elkaar.
Deze graaf heeft als takken de cirkelranden en de verbindingen (vi , wi ), 1 ≤ i ≤ n. Deze laatste hebben de lengte r, en zijn de kleinste takken als r < We nemen nu R = 1 en r =
1 . n2
2πR n .
Dan wordt de minimale opspannende boom:
T = {(vi , wi ), 1 ≤ i ≤ n; (wi , wi+1 ), 1 ≤ i ≤ n − 1} met l(T ) = n · r + (n − 1) ·
2πR n .
2.4. HANDELSREIZIGERSPROBLEEM
61
Dupliceren we de takken van T tot S, dan ontstaat de kring C = {v1 , w1 , w2 , . . . , wn , vn , wn , wn−1 , vn−1 , wn−1 , . . . , w2 , v2 , w2 , w1 , v1 }. Door af te snijden ontstaat hieruit de rondreis C ∗ = {v1 , w1 , w2 , . . . , wn , vn , vn−1 , . . . , v2 , v1 } met n o © ª 2πR 2πr l(C ∗ ) = 2r + (n − 1) 2π(R+r) + = 2r + (n − 1) 4πR ≈ 4π n n n + n voor grote waarden van n. De optimale rondreis is Copt = {v1 , w1 , w2 , v2 , v3 , w3 , . . . , wn , vn , v1 } met l(Copt ) = n · r +
n 2
n ·
2π(R+r) n
+
2πR n
o ≈ 2π
voor grote waarden van n. Hieruit volgt dat de kwaliteit inderdaad 2 is. De tweede heuristiek doet het volgende, na eerst een minimale opspannende boom T bepaald te hebben. Bekijk welke punten van T een oneven graad hebben (dit aantal punten is even). Voor deze punten wordt een minimale volmaakte koppeling M geconstrueerd, d.w.z. dat deze knooppuntenverz. in disjuncte tweetallen wordt verdeeld, zeg (i1 , i2 ), (i3 , i4 ), . . . , (i2k−1 , i2k ), zdd. de P som van de lengtes van verbindingen van deze tweetallen, d.w.z. j=1,3,... ,2k−1 lij ,ij+1 , minimaal is.22 Door deze koppeling M aan T toe te voegen verkrijgen we weer dezelfde eigenschap als in het vorige algoritme, namelijk dat iedere stad incident is met een even aantal verbindingen: de bijbehorende graaf is Eulers en de bijbehorende takken vormen tezamen ´e´en kring. Dit leidt tot het volgende algoritme.23 Algoritme 2.9 Boom en koppeling heuristiek Invoer: Een n × n symmetrische afstandenmatrixrix L die aan de driehoeksongelijkheid voldoet. Uitvoer: Een rondreis C ∗ als benadering van de optimale route. 1. Construeer een minimale opspannende boom T en laat W de verz. zijn van de steden die in T incident zijn met een oneven aantal verbindingen. 2. Construeer op W een minimale volmaakte koppeling M . 3. Construeer uit T ∪ M ´e´en grote kring C. 4. Doorloop C vanuit stad 1 en als een stad j voor de tweede keer wordt bezocht, zeg via {i, j, k}, dan worden de takken (i, j) en (j, k) vervangen door de tak (i, k). Dit geeft een rondreis C ∗ . 22
Er bestaat een O(n3 ) algoritme om een minimale volmaakte koppeling te bepalen; dit wordt in een ander
college behandeld 23 Dit algoritme is afkomstig van Christofides: N. Christofides, Worst-case analysis of a new heuristic for the traveling salesman problem, Technical Report 388, Graduate School of Industrial Administration, Carnegie-Mellon University, Pittsburgh, 1976. Dit algroritme is het - in de worst-case - beste polynomiale algoritme dat bekend is. Als alle lengtes 1 of 2 zijn, dan is er een polynomiaal algoritme met kwaliteit
7 : 6
C.H. Papadimitriou and M.
Yannakakis, The traveling salesman problem with distances one and two, Mathematics of Operations Research 18 (1993) 1–12.
62
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
Stelling 2.6 De boom en koppeling heuristiek heeft complexiteit O(n3 ) en de kwaliteit is gelijk aan 32 . Bewijs De complexiteit van stap 1 is O(n2 ), van stap 2 O(n3 ) en van de stappen 3 en 4 O(n). De totale complexiteit van de heuristiek is dus O(n3 ). De lengte van T is weer hoogstens de lengte van de optimale tour, zeg deze is Copt , en het afsnijden maakt de route ook nooit groter: l(C ∗ ) ≤ l(C) = l(T ) + l(M ) ≤ l(Copt ) + l(M ). Beschouw de optimale tour en beperk deze door ’af te snijden’ tot de steden van W , zeg dit geeft de route C 0 = [i1 , i2 , . . . , i2k , i1 ]. Door het afsnijden wordt de lengte niet groter. Beschouw op C 0 de volmaakte koppelingen M1 = {(i1 , i2 ), (i3 , i4 ), . . . , (i2k−1 , i2k )} en M2 = {(i2 , i3 ), (i4 , i5 ), . . . , (i2k , i1 )}. Omdat M een minimale volmaakte koppeling is, geldt l(Copt ) ≥ l(C 0 ) = l(M1 ) + l(M2 ) ≥ 2 · l(M ). Dit geeft l(C ∗ ) ≤ l(Copt ) + l(M ) ≤ hoogstens
3 2
3 2
· l(Copt ), waaruit volgt dat de kwaliteit van de heuristiek
is.
Beschouw het volgende voorbeeld waarin de knooppunten v1 , v2 , . . . , vn+1 op een rechte lijn liggen, op afstand 1 van elkaar, met daarboven de punten w1 , w2 , . . . , wn zdd. de driehoeken {vi , wi , vi+1 }, i = 1, 2, . . . n, gelijkzijdige driehoeken zijn met de lengte van de zijden gelijk aan 1. De graaf is volledig en de lengte van de takken is de Euclidische afstand tussen de eindpunten. De minimale opspannende boom is T = {(vi , wi ), i = 1, 2, . . . n; (wi , vi+1 ), i = 1, 2, . . . n} met l(T ) = 2n en met alleen de knooppunten v1 en vn+1 als knooppunten van oneven graad. Dus M = {(v1 , vn+1 )} met l(M ) = n. Dan is C = {v1 , w1 , v2 , w2 , . . . , vn , wn , vn+1 , v1 } met l(C) = 2n + n = 3n. We zien direct in dat C ∗ = C, dus l(C ∗ ) = l(C) = 3n. Het is eenvoudig in te zien dat de optimale tour Copt = {v1 , w1 , w2 , . . . , wn , vn+1 , vn , . . . , v2 , v1 } is ∗
met l(Copt ) = 2n + 1. Omdat limn→∞ CCopt = 32 , is de kwaliteit van de heuristiek dus minstens 32 . Gecombineerd met de eerdere constatering dat de kwaliteit hoogstens kwaliteit gelijk is aan
3 2
is, is nu bewezen dat de
3 2.
Methoden van Lokaal Zoeken Lokale zoekmethoden werken in het algemeen als volgt. Voor iedere toegelaten oplossing x is er een omgeving N (x). Dit is een deelverz. van de toegelaten oplossingen met x ∈ N (x). Tijdens een iteratie wordt x vervangen door een y ∈ N (x), waarna y de rol van x overneemt. Een lokale zoekmethode bestaat uit de volgende elementen: 1. Een startoplossing. 2. Een definitie van het begrip ’omgeving’. 3. Een regel die aangeeft hoe uit x een y ∈ N (x) wordt verkregen. 4. Een stopcriterium.
2.4. HANDELSREIZIGERSPROBLEEM
63
De heuristiek r-opt voor het TSP Deze heuristiek veronderstelt dat het TSP symmetrisch is. De heuristiek is nu als volgt: 1. Startoplossing: kies een willekeurige tour C langs de steden. 2. Laat S de collectie zijn bestaande uit de verzamelingen van r takken van C. 3. Voor iedere S ∈ S: voor alle rondes C 0 die mogelijk zijn door de n − r takken van C\S uit te breiden tot een goede tour: als l(C 0 ) < l(C): C := C 0 en ga naar stap 2. 4. Als in stap 3 geen verbetering wordt gevonden, dan stoppen we. De omgeving van een tour C bestaat dus uit de rondreizen die mogelijk zijn door r takken weg te laten en de ketens die zo ontstaan op de een of andere wijze tot een tour te verbinden. Het meest gebruikelijk zijn de versies met r = 2 of r = 3. We zullen eerst 2-opt bespreken. Veronderstel dat we uitgaan van de tour {1, 2, . . . , n, 1}.
s
i
i+1
s A
In 2-opt heeft het alleen zin om twee niet-aangrenzende
s ¢
A
verbindingen, zeg (i, i + 1) en (j, j + 1) te verwijderen. De enige andere verbinding van deze twee ketens tot een
2
s
1
s
A
A
in plaats van de lengtes li,i+1 en lj,j+1 nu de lengtes li,j
¢
en li+1,j+1 worden gebruikt. De nieuwe tour is dus beter
s
indien geldt dat li,j + li+1,j+1 < li,i+1 + lj,j+1 .
¢
s
¢ A ¢ A¢ ¢A ¢ A ¢ A
tour die langs alle steden loopt is de route {1, 2, . . . , i, j, j −1, . . . , i+1, j +1, j +2, . . . , n, 1}, waarbij
¢
¢s
¢
s A
A
j+1
As j
Algoritme 2.10 2-opt heuristiek Invoer: Een n × n symmetrische afstandenmatrixrix L. Uitvoer: Een rondreis C als benadering van de optimale route. 1. Kies een willekeurige rondreis C, zeg C = {1, 2, . . . , n, 1}. 2. Voer het volgende uit totdat het niet meer tot een verbetering leidt: Voor i = 1, 2, . . . , n − 2: Voor j = i + 2, i + 3, . . . , n (als i = 1 gaan we niet verder dan j = n − 1): Als li,j + li+1,j+1 < li,i+1 + lj,j+1 : ga naar stap 3 (als j = n, dan j + 1 ≡ 1). 3. C := {1, 2, . . . , i, j, j − 1, . . . , i + 1, j + 1, j + 2, . . . , n, 1} en ga naar stap 2 (let daarbij op ’hernummering’ tot {1, 2, . . . , n} zoals in stap 1). Opmerking In stap 2 van het algoritme worden maximaal n − 3 +
Pn−2 i=2
s
(n − i − 1) = 12 n(n − 3) alternatieve
routes onderzocht (de eerste term n − 3 hoort bij i = 1). Per stap van het algoritme is de complexiteit dus O(n2 ). Het aantal stappen hoeft echter niet polynomiaal te zijn. In deze zin is het theoretisch gezien geen effici¨ent algoritme. In de praktijk blijkt het aantal iteraties meestal
s
64
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
vrij gering. De r-opt heuristieken zijn al in 1965 door Lin voorgesteld.24 Het heeft lang geduurd voordat kwaliteitsresultaten bekend werden. In 1999 hebben Chandra, Karloff en Tovey 25 voor de kwaliteit van 2-opt in het geval dat de driehoeksongelijkheid geldt het volgende aangetoond: √ √ k(2-opt) ≤ 4 n voor alle n en k(2-opt) ≥ 41 n voor oneindig veel waarden van n. Voorbeeld 2.12 Neem weer de afstandsmatrix uit Voorbeeld 2.8. Start met {1, 3, 5, 2, 6, 4, 1}. Deze rondreis heeft lengte 161. Voor i = 1 en j = 6 krijgen we: l16 + l34 = 19 + 36 = 55 < l13 + l64 = 43 + 17 = 60. Dit geeft de nieuwe rondreis {1, 6, 2, 5, 3, 4, 1} met lengte 156. Het blijkt dat deze rondreis niet meer verbeterd wordt met 2-opt.
1
s © H 43 © H ©© © H s3 s 4 © 36 19 17 6 sH ©s 5 HH © HH ©© H© s © 2
Bij 3-opt worden drie takken verwijderd. Het aantal manieren om drie takken uit n takken te ¡ ¢ kiezen is n3 = 61 n(n − 1)(n − 2) en er zijn 8 manieren om de ketens met elkaar te verbinden (zie Vraag 2.11). Het algoritme voor 3-opt is wat gecompliceerder dan van 2-opt, maar een iteratiestp is nog altijd polynomiaal, namelijk O(n3 ). Algoritme 2.11 3-opt heuristiek Invoer: Een n × n symmetrische afstandenmatrixrix L. Uitvoer: Een rondreis C als benadering van de optimale route. 1. Kies een willekeurige rondreis C. 2. Voer het volgende uit totdat het niet meer tot een verbetering leidt: (a) Kies drie takken van C, laat deze weg, waardoor er ketens ontstaan. (b) Ga voor alle mogelijke manieren om de rondreis te verbinden na wat de manier is die de kortste rondreis oplevert, zeg C 0 . 3. C := C 0 en ga naar stap 2. Het is niet direct duidelijk welke waarde van r (r = 2, r = 3 of een andere r) het beste gekozen kan worden; r noemen we de diepte van de methode. Experimenten hebben uitgewezen dat 3-opt veel betere resultaten geeft dan 2-opt, maar dat 4-opt nauwelijks verbeteringen geeft in vergelijking 24
S. Lin, Computer solutions of the traveling salesman problem, Bell Systems Technology Journal 44 (1965)
2245–2269. 25 B. Chandra, H. Karloff and C. Tovey, New results on the old k-opt algorithm for the traveling salesman problem, SIAM Journal on Computing 28 (1999) 1998–2029.
2.4. HANDELSREIZIGERSPROBLEEM
65
met 3-opt. Lin en Kernighan 26 hebben een algoritme met een dynamische diepte opgesteld. Dit algoritme blijkt in de praktijk goed te voldoen, maar er zijn geen theoretische resultaten van bekend. We gaan weer uit van een rondreis C. Het idee er achter is dat als we een aantal takken weglaten en de ketens die daardoor ontstaan op een andere manier met elkaar verbinden, de kring die bestaat uit de weggelaten en de nieuwe takken een keten is waarvan de takken om en om wel en niet tot C behoren. Een keten P = {v0 , v1 , . . . , v2p } heet een wisselketen (m.b.t. C) als de takken van P afwisselend wel en niet tot C behoren. Dus (vi , vi+1 ) behoort tot C d.e.s.d. als i even is. Als v0 = v2p , dan heet de wisselketen gesloten. De keten hoeft niet enkelvoudig te zijn, dus knooppunten mogen meer dan ´e´en keer voorkomen in P . Takken mogen in een keten hoogstens ´e´en keer voorkomen, dus omdat C een rondreis is en vanwege de eis dat de takken afwisselend wel en niet tot C behoren komt een knooppunt in P hoogstens twee keer voor. Laat P een gesloten wisselketen zijn. Beschouw het symmetrische verschil C0 = C ⊕ P = C ∪ P − C ∩ P (de vereniging minus de doorsnede, ofwel de kring verkregen uit C ∪ P door de takken van P die tot C behoren weg te laten). De lengte voldoet aan: l(C 0 ) = l(C) − g(P ), waarbij g(P ) =
Pp−1 i=0
{l2i,2i+1 − l2i+1,2i+2 }
(ga dit zelf na). P heet bruikbaar als C 0 een rondreis is en g(P ) > 0, want dan is C 0 een betere rondreis dan C. De wisselketen heet positief als g(Pk ) > 0 voor k = 1, 2, . . . , p, waarbij g(Pk ) =
k−1 X
{l2i,2i+1 − l2i+1,2i+2 }.
i=0
Een bruikbare wisselketen is altijd op te vatten als een positieve wisselketen door het beginpunt geschikt te kiezen, begin namelijk in v2k , met k de grootste index waarvoor g(Pk ) minimaal is, immers: Voor i = k + 1, k + 1, . . . , p: g({v2k , v2k+1 , . . . , v2i }) = g(Pi ) − g(Pk ) > 0. Voor i = 1, 2, . . . , k: g({v2k , v2k+1 , . . . , v2p = v0 , v1 , . . . , v2i }) = g({v2k , v2k+1 , . . . , v2p }) + g({v0 , v1 , . . . , v2i }) ≥ g({v2k , v2k+1 , . . . , v2p }) + g({v0 , v1 , . . . , v2k }) = g(P ) > 0. In het algoritme van Lin en Kernighan wordt gezocht naar een positieve gesloten wisselketen (m.b.t. de huidige rondreis) met lengte 4 of 6. Het algoritme stopt als zo’n keten niet bestaat. Het 26
S. Lin and B.W. Kernighan, An effective heuristic algorithm for the traveling salesman problem, Operations
Research 21 (1973) 498–516.
66
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
eindigt dus met een tour die 3-opt is. Het geeft echter minder werk dan eerst 2-opt en daarna 3opt toe te passen, want het combineert op een handige manier 2-opt en 3-opt. We geven hieronder het algoritme, gevolgd door een voorbeeld. Het algoritme begin in een mogelijk knooppunt en zoekt vandaar naar de beste positieve gesloten rondreis (g ∗ houdt de beste verbetering bij en P ∗ is de beste positieve gesloten rondreis). Als er geen verbetering (meer) is, dan wordt een volgend beginpunt gekozen. Het karakter van het algoritme is backtracking met index i de diepte van het zoeken vanuit v0 . Algoritme 2.12 Lin-Kernighan heuristiek Invoer: Een n × n symmetrische afstandenmatrixrix L. Uitvoer: Een rondreis C als benadering van de optimale route. 1. Kies een willekeurige rondreis C (tijdens het algoritme is Pi = {v0 , v1 , . . . , vi }). 2. V0 := {1, 2, . . . , n}; i := 0; g ∗ := 0. 3. Als Vi = ∅ en g ∗ > 0: C := C ⊕ P ∗ en ga naar stap 2. Als Vi = ∅ en g ∗ = 0: als i = 0: stop; anders: i := min(i − 1, 5) en ga naar stap 3. 4. Kies vi ∈ Vi ; Vi := Vi \vi . Als i ≥ 3 en oneven is, C ⊕ P een rondreis is met P = {Pi , v0 } en g(P ) > g ∗ : P ∗ := P , g ∗ := g(P ) en ga naar stap 5. 5. Als i oneven is: Vi+1 := {vj 6= v0 | (vi , vj ) ∈ / C ∪ Pi−1 ; g({Pi , vj }) > g ∗ }. Als i even is en i ≤ 2: Vi+1 := {vj 6= v0 | (vi , vj ) ∈ C\Pi }. Als i even is en i > 2: Vi+1 := {vj 6= v0 | (vi , vj ) ∈ C\Pi ; (v0 , vj ) ∈ / C ∪ Pi ; C ⊕ {Pi , vj , v0 } is een rondreis}. i := i + 1 en ga naar stap 3. Toelichting Vi zijn de knooppunten die in aanmerking voor vi om Pi−1 = {v0 , v1 , . . . , vi−1 } te verlengen tot Pi . In stap 3 van het algoritme betekent Vi = ∅ dat de wisselketen niet verder kan worden uitgebreid. Als er een verbetering is gevonden (g ∗ > 0), dan wordt de beste verbetering doorgevoerd; als er geen verbetering is gevonden(g ∗ = 0), dan wordt i verlaagd (i hoeft niet groter te zijn dan 5 voor 3-opt) en als geen verlaging mogelijk is (i = 0), dan stoppen we. In stap 4 kijken we of voor oneven i de gesloten wisselketen Pi ∪ (vi , v0 ) een rondreis oplevert en zo ja, of die een betere verbetering geeft dan de huidige; als dit ook zo is, dan voeren we deze verbetering door als kandidaat voor de beste verbetering.
2.4. HANDELSREIZIGERSPROBLEEM
67
In stap 5 maken we onderscheid tussen oneven en even waarden van i. Als i oneven is, dan kan de keten uitgebreid worden met een tak die nog niet in de wisselketen is opgenomen, niet tot C behoort en die een positievere keten oplevert. Als i even is, dan maken we onderscheid tussen i = 0 of 2 enerzijds en i ≥ 4 anderzijds. In het eerste geval is de keten nog niet lang genoeg en breiden we de keten uit met een nog niet gekozen tak van C. In het geval dat i ≥ 4 is, dan breiden we de keten uit met een tak van C die nog niet eerder is gekozen, die niet naar v0 loopt, maar zdd. is dat {Pi , vj , v0 } wel een rondreis vormt (die dan lang genoeg is). Voorbeeld 2.13 Start met C = {1, 2, 3, 4, 5, 6, 1}; l(C) = 232. We voeren 3 iteraties uit. Iteratie 1 V0 := {1, 2, 3, 4, 5, 6}; i := 0;
1
g∗
:= 0.
v0 := 1; V0 := {2, 3, 4, 5, 6}; V1 := {2, 6}; i := 1. v1 := 2; V1 := {6}; V2 := {5, 6}; i := 2. v2 := 5; V2 := {6}; V3 := {4, 6}; i := 3. v3 := 4; V3 := {6}; P ∗ := {1, 2, 5, 4, 1}; g ∗ := 41; V4 :=
s 19©©©HHH35 HH ©© Hs 2 6 s©
45 5
{6}; i := 4.
47 s HH
v4 := 6; V4 := ∅; V5 := ∅; i := 5. C := {1, 4, 3, 2, 5, 6, 1} met l(C) = 191. Iteratie 2 V0 := {1, 2, 3, 4, 5, 6}; i := 0; g ∗ := 0. v0 := 1; V0 := {2, 3, 4, 5, 6}; V1 := {4, 6}; i := 1. v1 := 4; V1 := {6}; V2 := {6}; i := 2. v2 := 6; V2 := ∅; V3 := {5}; i := 3. v3 := 5; V3 := ∅ : P ∗ := {1, 4, 6, 5, 1}; g ∗ := 18; V4 := {3}; i := 4. v4 := 3; V4 := ∅; V5 := {2}; i := 5. v5 := 2; V5 := ∅; P ∗ := {1, 4, 6, 5, 3, 2, 1}; g ∗ := 32; V6 := {6}; i := 6. v6 := 6; V6 := ∅; V7 := ∅; i := 7; C := {1, 2, 5, 3, 4, 6, 1} met l(C) = 159. Iteratie 3 V0 := {1, 2, 3, 4, 5, 6}; i := 0; g ∗ := 0. v0 := 1; V0 := {2, 3, 4, 5, 6}; V1 := {2, 6}; i := 1. v1 := 2; V1 := {6}; V2 := {6}; i := 2. v2 := 6; V2 := ∅; V3 := {4}; i := 3. v3 := 4; V3 := ∅ : P ∗ := {1, 2, 6, 4, 1}; g ∗ := 3; V6 := ∅; i := 4. C := {1, 4, 3, 5, 2, 6, 1} met l(C) = 156.
H HH
50
© ©©
©36
s © H© 4
s3
68
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
Meer recente heuristieken De meer recente heuristieken hebben gemeen dat ze trachten een lokaal minimum te vermijden. Een nieuw ingredi¨ent hiervoor is dat er een stochastisch element in de zoekprocedure wordt gebracht, op grond waarvan wordt toegestaan dat er ook rondreizen worden onderzocht met een grotere lengte dan de tot nu toe best bekende. We doen dit in de hoop via deze (tijdelijke) slechtere oplossingen later een betere te vinden en daardoor te ontsnappen aan een lokaal, maar geen globaal, optimum. We zullen hieronder de principes van een drietal methoden bespreken. Dit zijn meta-heuristieken: er zijn allerlei varianten van te bedenken door bepaalde parameters te specificeren.27 1. Simulated annealing Simulated annealing, ook wel stochastisch koelen genoemd, is een flexibele methode. Het algoritme kan worden uitgelegd aan de hand van de volgende analogie uit de thermodynamica. Als een smid een stuk metaal afkoelt zal hij dit langzaam doen, omdat hij weet dat dat een beter resultaat oplevert. Dit wordt veroorzaakt door het feit dat het systeem tijdens het afkoelen een toestand van lagere energie opzoekt. Snel afkoelen maakt de kans groot dat het systeem in een lokaal optimum blijft hangen. Langzaam afkoelen maakt deze kans kleiner, waardoor het systeem uiteindelijk een grotere kans heeft om op een lager, dus beter, energieniveau uit te komen. De correspondentie met het TSP is bedacht door Kirkpatrick et al.28 en Cerny.29 Rondreizen corresponderen met toestanden van het systeem en de lengte van een rondreis is het energieniveau. Een optimale rondreis is dus een toestand met minimale energie. Om dit in een algoritme in te bouwen gebruiken we voor de kans op toestand i de Boltzmannverdeling e−Ei /t , waarbij t de temperatuur is en Ei de energie van toestand i. De verdeling wordt gebruikt om de kans op het nemen van stappen die ook verslechteringen mogelijk maken te modelleren (als er een betere rondreis wordt gevonden, dan wordt deze altijd gekozen). De kans op het nemen van een stap die een energie-verslechtering ter grootte ∆ oplevert wordt e−∆/t . De waarde van t kunnen we zelf instellen. Daarbij is het de bedoeling dat er met een relatief grote waarde van t wordt begonnen en dat die iedere keer na het nemen van een aantal, zeg K, stappen met een factor α wordt verlaagd, waarbij α < 1, maar vrij dicht bij 1 ligt. Hiermee bereik je dat in het begin van het proces de kans op het nemen van een stap die geen verbetering oplevert nog vrij groot is, maar dat deze afneemt in de loop van de tijd. Hierdoor kan het proces in het begin nog alle kanten op en is de kans dat je in een lokaal minimum blijft hangen klein.
27
Voor een overzicht zie: C.R. Reeves (ed.), Modern heuristic techniques for combinatorial problems, McGraw-
Hill, 1995. 28 S. Kirkpatrick, C.D. Gelatt Jr. and M.P. Vecchi, Optimization by simulated annealing, Science 220 (1983) 671–680. 29 V. Cerny, Thermodynamica approach to the traveling salesman problem: an efficent simulation algorithm, Journal of Optimization Theory and Applications 45 (1985) 41–51.
2.4. HANDELSREIZIGERSPROBLEEM
69
Algoritme 2.13 Simulated Annealing Invoer: Een n × n afstandenmatrix L. Uitvoer: Een rondreis C ∗ als benadering van de optimale route. 1. Start met een (willekeurige) rondreis C ∗ ; kies α < 1 en kies een begintemperatuur t. 2. (a) Kies K (het aantal stappen van een iteratie); k := 1 en C := C ∗ ; i. Wijzig C (eventueel random) in een rondreis C 0 en laat ∆ = l(C 0 ) − l(C). ii. Als ∆ ≤ 0: (1) C := C 0 ; (2) als l(C) < l(C ∗ ) : C ∗ := C; (3) ga naar stap 2a. Als ∆ > 0: (1) kies een random getal ρ ∈ [0, 1]; ∆
(2) als ρ < e− t : C := C 0 ; (3) k := k + 1; als k ≤ K: ga naar stap 2a, sub i; anders: ga naar stap 2b. (b) t := α · t en ga naar stap 3. 3. Als aan het stopcriterium is voldaan: stop met C ∗ als benadering voor de optimale tour. Anders: ga naar stap 2a. Simulated annealing is een klasse van algoritmen met een enigszins experimenteel karakter. Dit geldt ook voor de constanten, zoals t, K en α, die nader moeten worden bepaald. Door de keuzes expliciet te maken wordt een algoritme verkregen. Onder bepaalde voorwaarden voor deze constanten kan worden aangetoond dat het algoritme convergeert naar een optimale oplossing. Een nadeel is echter dat deze (gegarandeerde) convergentie zeer traag is.30 2. Genetische algoritmen Genetische algoritmen zijn ge¨ınspireerd door Darwin’s theorie over de evolutie.31 Het algoritme begint met verz. oplossingen; dit wordt een populatie genoemd. Hiermee wordt een nieuwe populatie gevormd (nageslacht). Een nieuwe oplossing wordt dus niet gegenereerd uit ´e´en vorige, maar uit een populatie. We streven er naar dat het nageslacht betere oplossingen bevat. Dit gebeurt naar analogie van het mechanisme van de natuurlijke selectie (survival of the fittest), waarbij uit een verzameling van oplossingen de beste worden geselecteerd om nieuwe oplossingen te cre¨eren. Deze nieuwe verzameling oplossingen wordt gegenereerd naar analogie van genetische gebeurtenissen zoals kruising en mutatie. Het volgende algoritme is in feite weer een klasse van algoritmen. Voor een specifiek algoritme moeten nadere keuzes worden gemaakt.32 30
Voor een overzicht van allerlei varianten zie: P.J.M. Laarhoven and E.H.L. Aarts, Simulated Annealing: Theory
and Applications, Reidel, Dordrecht, 1987. 31 John Holland was de eerste die dit in verband bracht met optimaliseringsproblemen, zie: J.H. Holland, Adaptation in natural and artificial systems, The University of Michigan Press, 1975. 32 Voor een overzicht zie: D. Goldberg, Genetic algorithms in search, optimization and machine learning, AddisonWesley, 1989.
70
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING ’
Algoritme 2.14 Genetisch Algoritme Invoer: Een n × n afstandenmatrix L. Uitvoer: Een rondreis C ∗ als benadering van de optimale route. 1. Start met een bepaalde populatie C van rondreizen, zeg N rondreizen. 2. Bepaal voor iedere C ∈ C de lengte l(C) (de fitheid). 3. Cre¨eer een nieuwe populatie door de volgende stappen uit te voeren: (a) Selectie: Kies elementen (ouders) uit de populatie, bijvoorbeeld op grond van hun fitheid (hoe fitter hoe groter de kans op selectie). (b) Kruising: Vorm kinderen uit de ouders. (c) Mutatie: Muteer de kinderen en plaats de mutaties in een nieuwe populatie C 0 . (d) Acceptatie: Plaats de beste N rondreizen van C ∪ C 0 in een nieuwe populatie C. 4. Als aan het stopcriterium is voldaan: stop met als approximatie de beste rondreis C ∗ uit C. Anders: ga naar stap 2. Dit is een erg algemeen algoritme. We zullen de diverse stappen afzonderlijk bespreken. Start populatie De eerste collectie C kan bijvoorbeeld worden bepaald door random een aantal permutaties van 1, 2, . . . , n te kiezen en op elk van deze rondreizen 2-opt toe te passen. Selectie We kunnen beginnen met de twee fitste, daarna de volgende twee etc. We kunnen de keuze ook stochatisch maken: laat li de lengte van de i-de rondreis uit de populatie zijn (1 ≤ i ≤ N ), en laat lmax een bovengrens van alle li ’s zijn; kies rondreis Ci met kans pi =
PN
lmax −li . (lmax −lj )
j=1
Kruising Het kruisen van twee rondreizen, zeg C1 en C2 , met elkaar kan bijvoorbeeld als volgt gebeuren: a. Kies een willekeurige stad, zeg stad i. b. Neem van C1 het deel {1, . . . , i} en van C2 het deel {i, . . . , 1} en zet deze achter elkaar tot een nieuwe ronde. c. Als in deze ronde knooppunten voor een tweede keer voorkomen, zeg knooppunt j via {. . . , i, j, k, . . . }, dan snijden we af tot {. . . , i, k, . . . }. d. Knooppunten die nog niet voorkomen worden ´e´en voor ´e´en ingevoegd (zie de eerder behandelde invoegheuristieken). Mutatie Voor het muteren kunnen we bijvoorbeeld een deel van de route kiezen en dit deel vervangen door een andere permutatie van de desbetreffende steden. Als dit geen betere rondreis oplevert, dan veranderen we de rondreis niet.
2.4. HANDELSREIZIGERSPROBLEEM
71
Stopcriterium Er zijn verschillende mogelijkheden voor het stopcriterium, zoals: - na het bepalen van de K-de populatie voor zekere K; - als in de nieuwe populatie geen betere rondreis zit dan in de vorige; - als een rondreis is gevonden met een lengte kleiner dan een gegeven waarde l0 . 3. Tabu search Tabu search is een meta-heuristische methode bedacht door Glover.33 Het is een lokale zoekmethode, die werkt met een ’omgeving’. Deze kunnen echter het nadeel hebben dat we op eerder onderzochte rondreizen stuiten of zelf dat cycling optreedt. Bij Tabu search worden eerder bekeken oplossingen in het vervolg uitgesloten (deze zijn taboe). De tot nu toe best gevonden rondreis noteren we met C ∗ Algoritme 2.15 Tabu Search Invoer: Een n × n afstandenmatrix L. Uitvoer: Een rondreis C ∗ als benadering van de optimale route. 1. Start met een bepaalde rondreis C, laat C ∗ = C, en plaats C op de Tabu lijst. 2. Bepaal de naburige oplossingen van C, die niet op de Tabu-lijst staan, zeg C1 , C2 , . . . , Ck . 3. Laat C 0 zdd. l(C 0 ) = min1≤j≤k l(Cj ) en als l(C 0 ) < l(C ∗ ), dan C ∗ := C 0 . 4. Pas de Tabu lijst aan. 5. Als aan het stopcriterium is voldaan: stop met als approximatie C ∗ . Anders: C := C 0 en ga naar stap 2. Tabu-lijst Er zijn verschillende manieren om de Tabu lijst bij te houden, zoals: - alle eerdere rondreizen komen op de Tabu lijst; een nadeel is dat dit veel opslagruime vergt; - de lijst een vaste lengte, zeg L, en we plaatsen de laatste L rondreizen op de Tabu lijst. Stopcriterium Er zijn verschillende mogelijkheden voor het stopcriterium, zoals: - na een van te voren bepaald aantal iteraties; - als in een van te voren bepaald aantal iteraties geen verbetering wordt gevonden; - als een rondreis wordt gevonden met een lengte kleiner dan een gegeven waarde l0 . Slotopmerking Als we met een heuristiek een toelaatbare oplossing voor het TSP hebben gevonden, dan kunnen we een indicatie krijgen van hoe goed deze oplossing is door daarnaast een ondergrens van het 33
F. Glover, Tabu search - part I, ORSA Journal on Computing 1 (1989) 190–206; Tabu search - part II, ORSA
Journal on Computing 2 (1990) 4–32.
72
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
probleem te bepalen. Hiervoor streven we naar een effici¨ente methode die bovendien een vrij scherpe (d.w.z. dicht bij het optimum gelegen) grens geeft. Dit is enigszins met elkaar in strijd en hierop is geen eenduidig antwoord. Vaak probeert men enkele relaxaties en kiest dan de beste waarde. We hebben al enkele voorbeelden van effici¨ente relaxaties voor het TSP gezien: (1) Als toewijzingsprobleem: zie de formulering (2.16); dit is oplosbaar met een O(n3 )-algoritme.34 (2) Als minimale opspannende boom: dit kan met een O(n2 )-algoritme.35 (3) Omdat in iedere oplossing van het TSP ieder knooppunt incident is met twee takken, is een ondergrens ook te bepalen door in ieder knooppunt de lengte van de twee kortste takken te nemen en deze 2n lengtes bij elkaar op te tellen en door 2 te delen. Dit heeft eveneens complexiteit O(n2 ). Vraag 2.9 Pas Algoritme 2.6 op Voorbeeld 2.8 toe.
Vraag 2.10 Pas Algoritme 2.7 op Voorbeeld 2.8 toe.
Vraag 2.11 Toon aan dat als er r takken uit een rondreis worden verwijderd zdd. geen losse knooppunten ontstaan, de overblijvende ketens op 2r−1 (r − 1)! manieren met elkaar te verbinden zijn.
2.4.4
Opgaven
Opgave 2.11 Toon aan dat de formulering van het handelsreizigersprobleem (2.16) met daaraan toegevoegd (2.17) correct is. Aanwijzing: Laat de route in plaats 1 beginnen en interpreteer ui = k, wanneer plaats i als k-de stad vanuit stad 1 wordt bezocht.
Opgave 2.12 Stel we willen n stukken behang halen uit een voldoend lange rol met een patroon dat zich om de meter herhaalt. Op zo’n patroon van 1 meter begint stuk i op positie si en eindigt op fi en heeft dus lengte fi − si , i = 1, 2, . . . , n. We willen de stukken nu z’o afsnijden dat het totaal aantal meters dat we van de rol nemen om alle n stukken eruit te snijden minimaal is. Formuleer dit probleem als een handelsreizigersprobleem. 34 35
zie Besliskunde 3. Het algoritme van Prim of het algoritme van Kruskal. Beide algoritmen zijn behandeld in Besliskunde 1.
2.4. HANDELSREIZIGERSPROBLEEM
73
Opgave 2.13 Los het TSP met branch-and-bound op voor de volgende afstandentabel: L=
−
3
4
−
45 17 39 90 28 46 3
88
93 13 33
9
77 42 21 16 − 36 16 28 . 80 − 56 7 88 33 − 25 18 46 92 −
Opgave 2.14 a. Laat zien dat er een implementatie is van de invoeg-heuristiek ’dichtstbijzijnde stad’ die complexiteit O(n2 ) heeft. b. Laat zien dat er een implementatie is van de invoeg-heuristiek ’verste stad’ die complexiteit O(n2 ) heeft. Opgave 2.15 Beschouw grafen Gk , k = 1, 2, . . . van het volgende type. Neem 2k knooppunten op een rechte lijn, zeg v1 , v2 , . . . , v2k , en daarboven 2k − 1 knooppunten, eveneens op een rechte lijn, zeg w1 , w2 , . . . , w2k −1 , en teken gelijkzijdige driehoeken (vi , wi , vi+1 ), 1 ≤ i ≤ 2k − 1 met lengte van de zijde gelijk aan 1. We nemen aan dat de graaf volledig is en dat de lengte van de takken tussen knooppunten die niet op een zijde van een gelijkzijdige driehoek liggen gelijk is aan de lengte van de kortste route over deze driehoeken, d.w.z. |i − j| als i > j l(vi , vj ) = |i − j|, l(wi , wj ) = |i − j| + 1, l(vi , wj ) = |i − j| + 1 als i ≤ j. Bewijs (met inductie naar k) de volgende eigenschappen voor het naaste-buur algoritme: a. Er is in Gk een Hamilton pad v1 , . . . , w2k−1 , verkregen met de naaste-buur algoritme, dat een lengte van (k + 3)2k−1 − 2 oplevert en met de laatste verbinding (w2k−1 , v1 ) geeft dit een route met lengte (k + 4)2k−1 − 2. b. Beschouw de graaf G die uit Gk ontstaat door een knooppunt v0 toe te voegen en dit te verbinden met v1 en v2k met takken van de lengte 1 (de lengte tussen v0 en andere knooppunten is weer het minimum aantal takken over de driehoeken en de takken (v0 , v1 ) en (v0 , v2k )). Toon aan dat een optimale tour in G de lengte 2k+1 heeft en dat het mogelijk is dat het naaste-buur algoritme een tour met lengte (k + 4)2k−1 geeft. c. Laat zien dat voor de naaste-buur heuristiek geldt k(H) = Ω(log n). Opgave 2.16 Pas de heuristiek ’minimale opspannende boom met kortste volmaakte koppeling’ toe op Voorbeeld 2.8.
74
HOOFDSTUK 2. GEHEELTALLIGE LINEAIRE OPTIMALISERING
Opgave 2.17 Beschouw het handelsreizigersprobleem met − 8 L= 9 5 4
8 − 4 5 9
9
5
4
5
4
9 − 6 8 . 6 − 6 8 6 −
Neem C = {1, 2, 3, 4, 5, 1} als begintour (lengte C = 28). a. Bepaal een 2-opt lokaal minimale tour, uitgaande van C. b. Voer ´e´en stap van het Lin-Kernighan algoritme uit, uitgaande van C.
Hoofdstuk 3
NIET-LINEAIRE OPTIMALISERING 3.1 3.1.1
Inleiding Klassificatie van niet-lineaire optimaliseringsproblemen
In de niet-lineaire optimalisering wordt een doelfunctie f : Rn → R geoptimaliseerd met of zonder nevenvoorwaarden. Het onbeperkte optimaliseringsprobleem formuleren we als maxx∈Rn f (x)
(3.1)
terwijl we het beperkte optimaliseringsprobleem schrijven als max {f (x) | x ∈ X} met f : Rn → R en X ⊆ Rn
(3.2)
Een convex optimaliseringsprobleem is een beperkt optimaliseringsprobleem in de vorm max {f (x) | fi (x) ≤ 0, i = 1, 2, . . . , m},
(3.3)
waarbij f concaaf 1 is en fi : Rn → R convex 2 voor i = 1, 2, . . . , m. Bij een kwadratisch optimaliseringsprobleem beschouwen we het probleem ¯ ¾ ½ ¯ 1 T T ¯ max p x − x Cx ¯ Ax ≤ b; x ≥ 0 , 2
(3.4)
met p ∈ Rn , C een symmetrische, positief semi-definiete n × n-matrix, A een m × n-matrix en b ∈ Rm . We zullen later aantonen dat in dit geval de doelfunctie concaaf is. De beperkingen zijn lineair, dus ook convex (ga dit zelf na), zodat het kwadratisch optimaliseringsprobleem een speciaal geval is van convexe optimalisering. 1
Een functie g: Rn → R heet concaaf als voor iedere x1 , x2 ∈ Rn en iedere λ ∈ [0, 1] geldt dat
g{λx1 + (1 − λ)x2 } ≥ λg(x1 ) + (1 − λ)g(x2 ). 2 Een functie g: Rn → R heet convex als de tegengestelde functie −g concaaf is.
75
76
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
3.1.2
Voorbeelden
In deze paragraaf geven we enkele voorbeelden van niet-lineaire optimaliseringsproblemen. Tartaglia’s probleem Het eerste probleem dat we noemen is afkomstig van Tartaglia.3 Het probleem is in woorden: Hoe is het getal 8 in twee delen op te delen zdd. de vermenigvuldiging van het product en het verschil maximaal is? Als optimaliseringsprobleem luidt de formulering: max {x1 x2 (x1 − x2 ) | x1 + x2 = 8; x1 , x2 ≥ 0} Tartaglia wist dit probleem op te lossen en het correcte antwoord is: x1 = 4 + Het optimum is
256 √ 3 3
(3.5) √4 , 3
x2 = 4 −
√4 . 3
≈ 49, 27. In Opgave 3.16 wordt gevraagd aan te tonen dat dit antwoord
correct is. Kleinste kwadraten methode In veel gevallen willen we de oplossing van een lineair stelsel van de vorm Ax = b bepalen. Als het stelsel overbepaald is, d.w.z. meer vergelijkingen dan de variabelen, dan krijgen we een kleinste kwadraten probleem.4 Het probleem is een bekend probleem in de statistiek en wordt daar meestal lineaire regressie genoemd. De formulering ervan is als volgt: minx kAx − bk2 , waarbij de norm k · k2 de Euclidische norm is. Een equivalent probleem is ½ ¾ ½ ¾ 1 1 T T 1 T 1 T 1 T 2 T T minx kAx−bk2 = minx x A Ax−b Ax+ b b = b b−maxx p x− x Cx 2 2 2 2 2
(3.6)
(3.7)
met p = AT b en C = AT A. Omdat C positief semi-definiet is (ga dit zelf na), is dit een convex onbeperkt optimaliseringsprobleem (dit volgt uit de later te behandelen Stelling 3.4). Portfolio analyse Veronderstel dat we een aandelenportefeuille willen samenstellen en dat we daartoe uit n mogelijke aandelen kunnen kiezen. De opbrengst Ri van aandeel i, d.w.z. de opbrengst als we ´e´en eenheid 3
Tartaglia (1500 – 1557) was een Italiaans wiskundige. Eigenlijk heette hij Fontana, maar omdat hij stotterde
werd hij ’Tartaglia’ of wel ’Stotteraar’ genoemd. Hij leerde zichzelf wiskunde en wist als rekenmeester een bestaan op te bouwen door zich te verhuren aan kooplieden. Hij werd onder meer beroemd door te ontdekken hoe een bepaald type derdegraads vergelijking (x3 + ax = c) algebra¨ısch opgelost kon worden en door zijn berekeningen aan kogelbanen. 4 De kleinste kwadraten methode werd onafhankelijk van elkaar ontwikkeld door Karl Friedrich Gauss en Adrien Marie Legendre. In 1801 gebruikte Gauss deze methode om de baan van de pas ontdekte planeet Ceres te schatten. Hij voorspelde nauwkeurig waar en wanneer Ceres zou verschijnen.
3.1. INLEIDING
77
geld in aandeel i beleggen, is stochastisch en heeft verwachting ri . Naast het begrip verwachting speelt ook het begrip variantie een belangrijke rol. We hebben hier niet met ´e´en aandeel, maar een aantal aandelen te maken; dus met een aantal stochastische waarden, waartussen ook onderlinge relaties bestaan: de covariantie. De covariantie tussen aandeel i en aandeel j noteren we met vij en is gedefineerd door vij := E{(Ri − ri )(Rj − rj )}. We beschouwen het probleem om de minimale variantie te bepalen gegeven een bepaald niveau (R) van de verwachte opbrengst. Laat xi , 1 ≤ i ≤ n, de fractie van het vermogen zijn dat aan aandeel i wordt besteed; de vector x = (x1 , x2 , . . . , xn ) heet de portefeuille. Voor de verwachte opbrengst R(x) van portefeuille x geldt: R(x) =
n X
ri xi .
i=1
De variantie V (x) van portefeuille x wordt gedefinieerd door: V (x) := Merk op dat V (x) = E
nP
n Pn i=1 j=1 (Ri
o − ri )(Rj − rj )xi xj
P = E{ nk=1 (Rk − rk )xk }2 ≥ 0,
Pn Pn i=1
j=1
vij xi xj .
n P o P = E { ni=1 (Ri − ri )xi }{ nj=1 (Rj − rj )xj }
m.a.w. de covariantiematrix V is positief semi-definiet (en de varantie is niet-negatief). Het portfolio probleem luidt: n X n X vij xi xj min i=1 j=1
¯ P ¯ n ¯ i=1 ri xi = R ¯ Pn ¯ ¯ i=1 xi = 1 ¯ ¯ xi ≥ 0, i = 1, 2, . . . , n
(3.8)
Als we dit probleem beschouwen als functie van R, dan kunnen we de de minimale variantie als functie van R beschouwen. Deze functie heet de efficient frontier. We zullen deze functie expliciet afleiden in Voorbeeld 3.15.
3.1.3
Afgeleiden
Zij f : Rn → R, dan is de gradi¨ent van f , notatie ∇f (x), de (kolom)vector van de parti¨ele afgeleiden:
µ ∇f (x) =
∂f ∂f ∂f , ,... , ∂x1 ∂x2 ∂xn
¶T .
De richtingsafgeleide van f in een punt x in de richting s wordt genoteerd met D(f ; s) en is gedefinieerd als D(f ; s) := limλ→0
f (x + λs) − f (x) λ
(3.9)
Laat, voor vaste x en s, φ(λ) := f (x + λs) = f (x1 (λ), x2 (λ), . . . , xn (λ)), met xj (λ) = xj + λsj .
78
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Dan geldt volgens de kettingregel: φ0 (λ) =
n n X ∂f d xj (λ) X ∂f = · · sj = ∇f (x + λs)T s. ∂xj dλ ∂xj j=1
Anderzijds is
φ0 (0)
j=1
de richtingsafgeleide van f in het punt x in de richting s, zodat geldt: D(f ; s) = ∇f (x)T s
(3.10)
De Hessiaan, notatie ∇2 f (x), is de (symmetrische) matrix van de tweede orde parti¨ele afgeleiden: ∂2f ∂2f · · · 2 ∂x1 ∂xn ∂x1 · · 2 ∇ f (x) = . · · · · 2 2 ∂ f ∂ f · · · ∂xn ∂x1 ∂x2 n
Uit de analyse zijn de volgende resultaten bekend (eerste en tweede orde Taylorontwikkeling en middelwaarde stelling): Als f continu differentieerbaar is, dan geldt voor iedere x, h ∈ Rn de volgende eerste orde benadering van f (x): f (x + h) = f (x) + ∇f (x)T h + o(khk)
(3.11)
Als f tweemaal continu differentieerbaar is, dan geldt voor iedere x, h ∈ Rn de volgende tweede orde benadering van f (x): 1 f (x + h) = f (x) + ∇f (x)T h + hT ∇2 f (x)h + o(khk2 ) 2
(3.12)
k) G(h) = o(khkp ) betekent dat limk→∞ G(h khk kp = 0 voor iedere rij {hk } met limk→∞ hk = 0 en hk 6= 0
voor alle k. Tevens geldt voor een tweemaal continu differentieerbare functie (middelwaarde stelling): 1 f (x + h) = f (x) + ∇f (x)T h + hT ∇2 f (x + θh)h voor zekere θ ∈ (0, 1) 2
(3.13)
Voorbeeld 3.1 n = 2; f (x1 , x2 ) = x31 x2 + 2x1 x2 + x1 . Dit geeft:
Ã
∇f (x1 , x2 ) = (3x21 x2 + 2x2 + 1, x31 + 2x1 )T en ∇2 f (x1 , x2 ) =
6x1 x2
3x21 + 2
3x21 + 2
0
Benader f (x) om x = (0, 0)T met de tweede orde benadering: f (h1 , h2 ) ≈ 0 + h1 + 2h1 h2 (merk op dat de restterm h31 h2 is). De richtingsafgeleide in (1, 0)T in de richting (0, 1)T is: (x) limλ→0 f (x+λs)−f = limλ→0 (3λ+1)−1 = 3. λ λ
Anderzijds: ∇f (x)T s = (1, 3)(0, 1)T = 3.
! .
3.1. INLEIDING
3.1.4
79
Optimaliteitsvoorwaarden
Lokale en globale optima x∗ ∈ Rn heet een lokaal maximum van f indien er een ε > 0 bestaat zdd. f (x∗ ) ≥ f (x) voor alle x met kx∗ − xk ≤ ε. x∗ ∈ Rn heet een globaal maximum van f indien f (x∗ ) ≥ f (x) voor alle x ∈ X. Analoog worden de begrippen lokaal minimum en globaal minimum gedefinieerd. Zij H een symmetrische n × n matrix. H heet positief definiet als xT Hx > 0 voor alle x 6= 0 en H heet positief semi-definiet als xT Hx ≥ 0 voor alle x. Analoog worden de begrippen negatief definiet en negatief semi-definiet gedefinieerd. Als we spreken over een (semi)definiete matrix, dan veronderstellen we impliciet dat de matrix symmetrisch is. Er kan worden bewezen 5 dat positief (negatief) definiet equivalent is met positieve (negatieve) eigenwaarden; positief (negatief) semidefiniet is equivalent met niet-negatieve (niet-positieve) eigenwaarden. Hieruit volgt direct dat de inverse van een positief (negatief) definiete matrix ook positief (negatief) definiet is. De volgende stelling 6 laat zien dat ∇f (x∗ ) = 0 een noodzakelijke voorwaarde is voor x∗ om een lokaal maximum (of minimum) te zijn. Tevens geeft de stelling aan wanneer we een maximum of een minimum hebben. Stelling 3.1 Zij f (x) continu differentieerbaar en laat x∗ een lokaal optimum van f (x) zijn. Dan geldt: (1)
∇f (x∗ ) = 0.
(2)
Als f bovendien tweemaal continu differentieerbaar is, dan is ∇2 f (x∗ ) negatief (positief ) semi-definiet als x∗ een maximum (minimum) is.
Bewijs Veronderstel dat x∗ een lokaal maximum is (het bewijs voor een lokaal minimum gaat analoog). Kies een willekeurige richting s. Voor λ > 0 en voldoende klein geldt op grond van de lokale maximaliteit dat f (x∗ ) ≥ f (x∗ + λs). Er geldt dus: ∇f (x∗ )T s = limλ↓0
f (x∗ + λs) − f (x∗ ) ≤ 0. λ
Voor λ < 0 en voldoende dicht bij 0 geldt analoog f (x∗ ) ≥ f (x∗ + λs), zodat we kunnen schrijven: ∇f (x∗ )T s = limλ↑0
f (x∗ + λs) − f (x∗ ) ≥ 0. λ
Er geldt dus: ∇f (x∗ )T s = 0 voor alle s, zodat moet gelden: ∇f (x∗ ) = 0. Voor alle λ geldt volgens de tweede orde Taylorontwikkeling en omdat ∇f (x∗ ) = 0: 1 f (x∗ + λs) − f (x∗ ) = λ2 sT ∇2 f (x∗ )s + o(k(λs)k2 ). 2 5
Voor een bewijs zie bijvoorbeeld: D.P. Bertsekas, Nonlinear Programming, Athena Scientific, second edition,
1999, p. 678. 6 Voor het ´e´endimensionale geval is dit resultaat reeds in 1637 bewezen door Fermat (1601 - 1665).
80
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Omdat x∗ een lokaal maximum is, geldt voor λ voldoende klein 0≥
f (x∗ + λs) − f (x∗ ) 1 o(k(λs)k2 ) = sT ∇2 f (x∗ )s + . 2 λ 2 λ2 2)
Laat λ → 0 en gebruik dat limλ→0 o(k(λs)k λ2
= 0, waaruit volgt 12 sT ∇2 f (x∗ )s ≤ 0.
Opmerking Een x waarvoor geldt dat ∇f (x) = 0 heet een stationair punt. Noodzakelijk voor een lokaal optimum is dus stationariteit. De volgende stelling laat zien dat als een stationair punt een definiete Hessiaan heeft dit een lokaal optimum geeft. Daarna geven we een voorbeeld waaruit blijkt dat alleen stationariteit niet voldoende is. Stelling 3.2 Zij f (x) tweemaal continu differentieerbaar en laat x∗ een stationair punt van f (x) zijn. Als ∇2 f (x∗ ) negatief (positief ) definiet is, dan is x∗ een lokaal maximum (minimum). Bewijs Beschouw eerst het geval dat ∇2 f (x∗ ) negatief definiet is. Volgens de middelwaarde stelling geldt f (x∗ + h) − f (x∗ ) = ∇f (x∗ )T h + 21 hT ∇2 f (x∗ + θh)h = 12 hT ∇2 f (x∗ + θh)h voor zekere θ ∈ (0, 1). Omdat ∇2 f (x∗ ) continu en negatief definiet is, is er een omgeving N (x∗ ) van x∗ zdd. hT ∇2 f (x∗ + θh)h ≤ 0 voor x∗ + h ∈ N (x∗ ). Door h voldoende klein te kiezen is te bereiken dat x∗ + h ∈ N (x∗ ). Hieruit volgt f (x∗ ) ≥ f (x) voor alle x ∈ N (x∗ ), d.w.z. x∗ is een lokaal maximum. Het bewijs dat uit ∇2 f (x∗ ) positief definiet volgt dat x∗ een lokaal minimum is, gaat analoog. Voorbeeld 3.2 Neem n = 2 en laat f (x1 , x2 ) = x31 − 3x1 + x22 − 2x2 . Dan is ∇f (x1 , x2 ) = (3x21 − 3, 2x2 − 2)T , zodat x1 = (−1, 1)T een stationair punt is met waarde 1. f (−1 + ε, 1 + ε) = 1 − 6ε + 4ε2 + ε3 , waaruit volgt dat x1 geen lokaal optimum is. Voor het andere stationaire punt x2 = (1, 1)T geldt dat f (1 + ε, 1 + ε) = −3 + ε2 (3 + ε), waaruit volgt dat x2 een lokaal minimum is. We kunnen ook Stelling 3.2 gebruiken. De Hessiaan ∇2 f (x) =
¡ 6x1 0
¢ ¡ . Dus ∇2 f (x1 ) = −6 0
0 2
¢ ,
0 2
en deze matrix is niet semi-definiet, daarom geen optimum (althans niet op grond van Stelling ¡ ¢ 3.2). ∇2 f (x2 ) = 60 02 , en deze matrix is positief definiet, dus dit geeft een lokaal minimum. Vraag 3.1 Beschouw de functie f (x1 , x2 ) = (x31 − 1)2 + (x32 − 1)2 . a. Bepaal de gradi¨ent en de Hessiaan. b. Wat zijn de stationaire punten? c. Bepaal voor ieder stationair punt of het op grond van de Hessiaan een extreem is. ¡¢ d. Geef de tweede orde Taylorbenadering om het punt 00 .
3.1. INLEIDING
3.1.5
81
Convexiteit
Een functie f heet convex als voor iedere x1 , x2 ∈ Rn en iedere λ ∈ (0, 1) geldt f {λx1 + (1 − λ)x2 } ≤ λf (x1 ) + (1 − λ)f (x2 ). Een functie f heet concaaf als de tegengestelde functie −f convex is. Een functie heet strict convex als voor iedere x1 , x2 ∈ Rn met x1 6= x2 en iedere λ ∈ (0, 1) geldt f {λx1 + (1 − λ)x2 } < λf (x1 ) + (1 − λ)f (x2 ). Een functie f heet strict concaaf als de tegengestelde functie −f strict convex is. Een functie f heet quasi-convex als voor iedere x1 , x2 ∈ Rn en iedere λ ∈ (0, 1) geldt dat f {λx1 + (1 − λ)x2 } ≤ max{f (x1 ), f (x2 )}. Als voor alle λ ∈ (0, 1) en alle x1 , x2 met f (x1 ) 6= f (x2 ) het < teken geldt, dan spreken we van strict quasi-convex. Analoge definities zijn er voor de begrippen (strict) quasi-concaaf (het ongelijkheidsteken de andere kant op en het maximum wordt vervangen door minimum). De volgende stelling geeft enkele equivalente uitspraken voor het begrip convexiteit. De uitspraken worden gedaan voor een functie φ : [0, 1] → R, die gedefineerd is door φ(λ) = f (x + λs), waarbij x, s willekeurige, maar vaste punten in Rn zijn. We onderdrukken in de notatie φ(λ) de afhankelijkheid van x en s. Stelling 3.3 De volgende uitspraken zijn equivalent voor een tweemaal continu differentieerbare functie: (1) f (x) is convex. (2) φ(λ) is convex op [0, 1]. (3) φ(λ) is continu differentieerbaar en φ0 (λ) = {∇f (x + λs)}T s is monotoon niet-dalend in λ. Bewijs (1) ⇒ (2): Neem λ1 , λ2 ∈ [0, 1] en 0 ≤ α ≤ 1. We kunnen schrijven n o n o φ{αλ1 + (1 − α)λ2 } = f x + {αλ1 + (1 − α)λ2 }s = f α{x + λ1 s} + (1 − α){x + λ2 s} ≤ αf (x + λ1 s) + (1 − α)f (x + λ2 s) = αφ(λ1 ) + (1 − α)φ(λ2 ). (2) ⇒ (3): De afgeleide φ0 (λ) = {∇f (x+λs)}T s en heeft als afgeleide φ00 (λ) = sT {∇2 f (x+λs)}T s (zie Vraag 3.2) en deze bestaat, dus φ(λ) is continu differentieerbaar. Neem λ1 > λ2 en kies een 0 < α < 1. Dan geldt φ{αλ1 + (1 − α)λ2 } ≤ αφ(λ1 ) + (1 − α)φ(λ2 ), d.w.z. φ{λ2 + α(λ1 − λ2 )} − φ(λ2 ) ≤ α{φ(λ1 ) − φ(λ2 )}, ofwel φ{λ2 + α(λ1 − λ2 )} − φ(λ2 ) φ(λ1 ) − φ(λ2 ) ≤ . α(λ1 − λ2 ) λ1 − λ2 Laten we α ↓ 0, dan krijgen we φ0 (λ2 ) ≤
φ(λ1 )−φ(λ2 ) . λ1 −λ2
Geheel analoog krijgen we (het teken draait om omdat λ2 − λ1 < 0): φ0 (λ1 ) ≥ zodat φ0 (λ1 ) ≥
φ(λ1 )−φ(λ2 ) λ1 −λ2
φ(λ2 )−φ(λ1 ) λ2 −λ1
=
φ(λ1 )−φ(λ2 ) , λ1 −λ2
≥ φ0 (λ2 ): φ0 is monotoon niet-dalend.
82
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
(3) ⇒ (1): Neem x1 , x2 ∈ Rn en kies 0 ≤ λ ≤ 1. We moeten bewijzen dat f {λx1 + (1 − λ)x2 } ≤ λf (x1 ) + (1 − λ)f (x2 ), d.w.z. f {x2 + λ(x1 − x2 } ≤ λf (x1 ) + (1 − λ)f (x2 ). Neem x = x2 , s = x1 − x2 en φ(λ) = f (x + λs). Er moet gelden dat φ(λ) ≤ λφ(1) + (1 − λ)φ(0). R1 Rλ Er geldt: λφ(1)+(1−λ)φ(0)−φ(λ) = λ{φ(1)−φ(0)}−{φ(λ)−φ(0)} = λ{ 0 φ0 (t)dt}− 0 φ0 (t)dt. Rλ R1 Substitueren we t = λs, dan is 0 φ0 (t)dt = λ 0 φ0 (λs)ds. Schrijven we nu voor s de variabele t, Rλ R1 dan geeft dit 0 φ0 (t)dt = λ 0 φ0 (λt)dt. Hiermee krijgen we R1 λφ(1) + (1 − λ)φ(0) − φ(λ) = λ{ 0 {φ0 (t) − φ0 (λt)}dt ≥ 0, de laatste ongelijkheid omdat φ0 (t) ≥ φ0 (λt) vanwege de niet-dalendheid van φ0 op [0, 1]. Hiermee is het bewijs geleverd. De volgende stelling laat zien dat f convex is d.e.s.d. als voor iedere x2 de lineaire approximatie in x2 , d.w.z. f (x2 ) + f (x2 )T (x1 − x2 ), voor iedere x1 een onderschatting van de functie f (x1 ) geeft; tevens is dit weer equivalent met het positief semi-definiet zijn van iedere Hessiaan. Stelling 3.4 De volgende uitspraken zijn equivalent voor een tweemaal continu differentieerbare functie: (1) f (x) is convex. (2) f (x1 ) − f (x2 ) ≥ ∇f (x2 )T (x1 − x2 ) voor alle x1 , x2 ∈ Rn . (3) ∇2 f (x) is positief semi-definiet voor alle x. Bewijs (1) ⇒ (2): Uit de convexiteit volgt f {x2 + λ(x1 − x2 )} ≤ f (x2 ) + λ{f (x1 ) − f (x2 )}, dus geldt f {x2 + λ(x1 − x2 )} − f (x2 ) ≤ f (x1 ) − f (x2 ) voor alle λ ∈ (0, 1]. λ Laat λ ↓ 0 en gebruik (3.9) en (3.10) met x = x2 en s = x1 − x2 : ∇f (x2 )T (x1 − x2 ) ≤ f (x1 ) − f (x2 ). (2) ⇒ (3): Uit de Taylorontwikkeling volgt (neem x = x2 en h = x1 − x2 ): 1 f (x1 ) − f (x2 ) − ∇f (x2 )T (x1 − x2 ) = (x1 − x2 )T ∇2 f (x2 )(x1 − x2 ) + o(kx1 − x2 k2 ). 2 Uit (2) volgt dat 21 (x1 − x2 )T ∇2 f (x2 )(x1 − x2 ) + o(kx1 − x2 k2 ) ≥ 0 voor alle x1 , x2 . Neem x2 en s willekeurig en laat x1 = x2 + λs met λ ≥ 0. Dan is 1 2 T 2 λ s ∇ f (x2 )s + o(kλsk2 ) ≥ 0 voor alle λ ≥ 0. 2 Dus is 12 sT ∇2 f (x2 )s +
o(kλsk2 ) λ2
≥ 0 voor alle λ ≥ 0. Laat λ ↓ 0, dan volgt dat sT ∇2 f (x2 )s ≥ 0.
3.1. INLEIDING
83
(3) ⇒ (1): Volgens de middelwaarde stelling geldt (neem x = x2 en h = x1 − x2 ): f (x1 ) = f (x2 ) + ∇f (x2 )T (x1 − x2 ) + 21 (x1 − x2 )T ∇2 f (x)(x1 − x2 ), waarbij x = x2 + θ(x1 − x2 ) voor zekere θ ∈ (0, 1). Omdat ∇2 f positief semi-definiet is, geldt: f (x1 ) − f (x2 ) ≥ ∇f (x2 )T (x1 − x2 ) voor alle x1 , x2 . Neem vervolgens y 1 , y 2 ∈ Rn en λ ∈ [0, 1], en kies x1 = y 1 en x2 = λy 1 + (1 − λ)y 2 . Dan geldt f (y 1 ) ≥ f {λy 1 + (1 − λ)y 2 } + ∇f (x2 )T (1 − λ)(y 1 − y 2 ). Kiezen we vervolgens x1 = y 2 en x2 = λy 1 + (1 − λ)y 2 , dan krijgen we f (y 2 ) ≥ f {λy 1 + (1 − λ)y 2 } + ∇f (x2 )T (−λ)(y 1 − y 2 ). Vermenigvuldig de eerste ongelijkheid met λ en de tweede met (1 − λ) en tel op, λf (y 1 ) + (1 − λ)f (y 2 ) ≥ f {λy 1 + (1 − λ)y 2 }, wat de convexiteit van f aantoont. Gevolg 3.1 Als f (x) een concave of convexe functie is die tweemaal continu differentieerbaar is, dan geldt: x∗ een lokaal optimum ⇔ ∇f (x∗ ) = 0 ⇔ x∗ is een globaal optimum. Bewijs We bewijzen het voor het convexe geval (het concave geval gaat analoog). Als x∗ een lokaal minimum is, dan is volgens Stelling 3.1 ∇f (x∗ ) = 0. Laat ∇f (x∗ ) = 0. Omdat f convex is, is volgens Stelling 3.4 (2) f (x) ≥ f (x∗ ) + ∇f (x∗ )(x − x∗ ) = f (x∗ ) voor alle x, d.w.z. x∗ is een globaal minimum. Tenslotte is het triviaal dat een globaal minimum ook een lokaal minimum is. Stelling 3.5 De ongelijkheid van Jensen 7 Zij f : C ⊆ Rn → R een convexe functie op een convexe verz.o C. Laat x1 , x2 , . . . , xk ∈ C en zij nP Pk Pk k i ≤ i λ1 , λ2 , . . . , λk ≥ 0 met i=1 λi = 1. Dan geldt f i=1 λi x i=1 λi f (x ). Bewijs Pas inductie naar k toe. Voor k = 2 volgt de ongelijkheid direct uit de definitie van convex. Veronderstel dat de ongelijkheid waar is voor zekere k en beschouw k + 1, d.w.z. dat we punten P x1 , x2 , . . . , xk+1 hebben en λ1 , λ2 , . . . , λk+1 ≥ 0 met k+1 i=1 λi = 1. P We mogen ook veronderstellen dat alle λi ’s strict positief zijn. Laat x∗ = ki=1 Pkλi xi . j=1
Dan is k+1 X i=1 7
λj
k X λi xi = λj x∗ + λk+1 xk+1 , j=1
Jensen (1859–1925) was een Deens wiskundige (zie http://en.wikipedia.org/wiki/Jensen’s inequality) die deze
ongelijkheid in 1906 aantoonde.
84
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
zodat f
(k+1 X
) λi xi
i=1
k k X X =f λj x∗ + λk+1 xk+1 ≤ λj f (x∗ ) + λk+1 f (xk+1 ). j=1
j=1
Uit de inductieveronderstelling volgt f (x∗ ) ≤
k X
λi Pk
j=1 λj
i=1
zodat f
(k+1 X
) λi xi
i=1
≤
k+1 X
f (xi ),
λi f (xi ).
i=1
Voorbeeld 3.3 Ongelijkheid rekenkundig-meetkundig gemiddelde We zullen in dit voorbeeld de ongelijkheid van Cauchy 8 afleiden.
Deze ongelijkheid houdt
in dat voor positieve getallen x1 , x2 , . . . , xn het meetkundig gemiddelde niet groter is dan het rekenkundig gemiddelde: 1 (x1 + x2 + · · · + xn ). n Beschouw op (0, ∞) de re¨ele funcie f (x) = −ln x. Omdat de Hessiaan H(x) = 1
(x1 x2 · · · xn ) n ≤
1 x2
> 0 voor alle
x > 0, is f (x) convex op (0, ∞), zodat volgens de ongelijkheid van Jensen ( n ) n n X X X f λi xi ≤ λi f (xi ) voor alle λ1 , λ2 , . . . , λn ≥ 0 met λi = 1. i=1
i=1
i=1
Neem λ1 = λ2 = · · · = λn = n1 , dan geeft dit ½ ¾ 1 1 1 1 ln x1 + x2 + · · · + xn ≥ ln (x1 x2 · · · xn ) n , n n n waaruit volgt dat 1
(x1 x2 · · · xn ) n ≤
1 (x1 + x2 + · · · + xn ). n
Vraag 3.2 Toon aan dat als φ(λ) := f (x + λs) (voor vaste x en s), dan geldt: φ00 (λ) = sT {∇2 f (x + λs)}T s. Vraag 3.3 Bewijs dat de functie f (x) = kxk convex is. Vraag 3.4 Beschouw de kwadratische functie f (x) = xT Ax + bT x, met A een symmetrische matrix. a. Toon aan dat f convex is d.e.s.d. als A positief semi-definiet is. b. Laat A positief definiet zijn. Bepaal het globale optimum van het probleem min f (x). 8
Cauchy (1789–1857) heeft dit resultaat in 1821 aangetoond (op een andere manier dan met de ongeli-
jkheid van Jensen, zoals het hier wordt bewezen). Voor een biografie van Cauchy, zie : http://turnbull.mcs.stand.ac.uk/history/Biographies/Cauchy.html.
3.2. ONBEPERKTE OPTIMALISERING
3.1.6
85
Opgaven
Opgave 3.1 Laat f zdd. de Hessiaan ∇2 f (x) positief definiet is voor alle x. Bewijs de volgende beweringen: a. f is strict convex. b. f heeft hoogstens ´e´en globaal minimum. Opgave 3.2 Toon aan dat de functie f (x1 , x2 , x3 ) =
x21 x2
+ x23 op het domein x1 , x3 ∈ R, x2 > 0 convex is.
Opgave 3.3 a. Toon aan dat concaviteit stricte quasi-concaviteit impliceert, maar niet omgekeerd. Hint: Voor strict ( quasi-concave functie die niet concaaf is: beschouw op [−1, 1] de functie (x + 1)2 −1 ≤ x ≤ 0 f (x) = (x − 1)2 0≤x≤1 ( 0 x 6= 0; b. Beschouw de functie f (x) = −1 x = 0. Toon aan dat deze functie wel strict quasiconcaaf is, maar niet quasi-concaaf. c. Toon met een voorbeeld aan dat quasi-concaviteit niet stricte quasi-concaviteit impliceert. 0≤x≤1 x Hint: Beschouw op [0, ∞) de functie f (x) = 1 1≤x≤2 x−1 2≤x
3.2
Onbeperkte optimalisering
3.2.1
Inleiding
In de onbeperkte optimalisering wordt het volgende probleem bestudeerd: max{f (x) | x ∈ Rn }
(3.14)
Algoritme 3.1 Generiek algoritme onbeperkte optimalisering Invoer: Een functie f : RN → R. Uitvoer: Een benadering x van de optimale oplossing van probleem (3.14). 1. Start met een x0 ; k := 0. 2. a. Kies een richtingsvector sk ∈ Rn . b. Bepaal een staplengte λk > 0. c. xk+1 := xk + λk sk . 3. Indien aan een stopcriterium is voldaan: stop met de benaerende oplossing x := xk+1 . Anders: k := k + 1 en ga naar stap 2.
86
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Een algoritme heet effectief als x∗ := limk→∞ xk bestaat en x∗ een lokaal optimum is. De grootste p waarvoor geldt dat C := limk→∞
kxk+1 − x∗ k kxk − x∗ kp
bestaat is de orde van convergentie; C heet de convergentiefactor. Als p = 1 en 0 < C < 1, dan spreken we van lineaire convergentie; als p = 1 en C = 0, dan spreken we van superlineaire convergentie; als p = 2, dan spreken we van kwadratische convergentie. Gebruikelijke keuzes voor het stopcriterium zijn (de tweede variant is een genormeerde versie en de derde heeft betrekking op de mogelijkheid dat xk ≈ 0): (a) kxk+1 − xk k < ε, of
kxk+1 −xk k kxk k
(b) |f (xk+1 ) − f (xk )| < ε, of
< ε, ofwel kxk+1 − xk k < ε · [kxk k + 1].
|f (xk+1 )−f (xk )| |f (xk )|
< ε, ofwel |f (xk+1 ) − f (xk )| < ε · [|f (xk )| + 1].
(c) k∇f (xk+1 )k < ε. Bepaling staplengte We bepalen λk meestal zdd. f (xk + λk sk ) = maxλ>0 φ(λ) met φ(λ) := f (xk + λsk ). Dit is dus een ´e´endimensionaal optimaliseringsprobleeem over λ, waarvoor diverse methoden beschikbaar zijn. Het minimum van een functie van ´e´en variabele kan soms worden gevonden door de afgeleide nul te stellen. Voor bovenstaand probleem geeft dit de vergelijking φ0 (λ) = {∇f (xk + λsk )}T sk = 0. Vaak is de afgeleide echter moeilijk expliciet te bepalen. We zullen in de volgende paragraaf enkele methoden bespreken die alleen gebruik maken van functiewaarden. Vraag 3.5 1 a. Beschouw de rij re¨ele getallen {xk }∞ k=1 met x1 = 4 en xk+1 = 2 (xk − 1).
Bepaal de orde van convergentie en de convergentiefactor. −k b. Beschouw de rij re¨ele getallen {xk }∞ k=1 met x1 = 4 en xk+1 = 2 (xk − 1) + 1.
Toon aan dat voor deze rij de convergentie superlineair is.
3.2.2
E´ endimensionale optimalisatie
We bespreken in deze paragraaf eerst enkele methoden die alleen gebruik maken van functiewaarden. Deze methoden zijn in het algemeen in twee klassen te verdelen: (1) interval-reductie methoden; (2) functie-approximatie methoden. We gaan er van uit dat we een interval kennen waarbinnen de optimale waarde van λ zich bevindt. We geven van elk van de klasse van deze methoden een voorbeeld.
3.2. ONBEPERKTE OPTIMALISERING
87
Methode van de Gulden Snede Bij deze methode 9 wordt het optimum ingesloten in steeds kleinere intervallen. We hebben op ieder interval vier punten: op het k-de interval [ak , bk ] naast de grenzen ak en bk ook de punten λk en µk met λk < µk . Het volgende lemma toont hoe een volgend interval verkregen wordt. Lemma 3.1 Zij φ : R → R strict quasi-concaaf op het interval [a, b] en laat a < λ < µ < b. (1) Als φ(λ) ≤ φ(µ), dan is φ(µ) > φ(x) voor alle x ∈ [a, λ); (2) Als φ(λ) ≥ φ(µ), dan is φ(λ) > φ(x) voor alle x ∈ (µ, b]. Bewijs (1) Neem een x ∈ [a, λ). Omdat λ kan worden geschreven als een echte convexe combinatie van x en µ, volgt uit de stricte quasi-concaviteit van φ dat φ(λ) > min{φ(x), φ(µ)}. Omdat φ(λ) ≤ φ(µ) geldt: min{φ(x), φ(µ)} = φ(x) < φ(µ). (2) Dit onderdeel gaat analoog aan onderdeel (1). Opmerkingen 1. In geval (1) kunnen we verder gaan op het interval [λ, b] en in geval (2) op het interval [a, µ]. 2. Het begrip strict quasi-concaaf is, indien de functie φ op het interval [a, b] een maximum heeft, equivalent met het begrip unimodaal, dat het volgende inhoudt: er is op dit interval een punt λ∗ zdd. φ strict stijgend is tot λ∗ en strict dalend na λ∗ ; φ heeft op het interval dus een uniek maximum in het punt λ∗ (zie ook Opgave 3.4). Neem nu aan dat de functie φ strict quasi-concaaf is
¾ ¾
op [a, b]. Bij de Gulden Snede methode werken we in de k-de iteratie met het interval [ak , bk ]. We gaan
¾
αL
φ(λk ) < φ(µk ).
αL
-
¾ α2 L -
daarna verder met ofwel het interval [ak , µk ], indien φ(λk ) ≥ φ(µk ), ofwel met het interval [λk , bk ], indien
-
L
q
ak
q
λk
q
µk
q
bk
We willen nu de λk ’s en µk ’s zo bepalen dat de lengte van het nieuwe interval in beide gevallen hetzelfde is en een vaste fractie, zeg α, van het oorspronkelijke interval. Dit betekent dat µk − ak = bk − λk = α(bk − ak ). Verder willen we zo min mogelijk functie-evaluaties, d.w.z. als het volgende interval [λk , bk ] is, dan nemen we λk+1 = µk . Op deze wijze hoeven we in een nieuwe iteratie slechts ´e´en nieuwe functiewaarde te berekenen. Dit houdt in dat een interval volgend op het interval [λk , bk ] bijvoorbeeld het interval [λk+1 , bk+1 ] = [µk , bk ] kan zijn. Hieruit volgt (zie de figuur) dat α2 + α = 1, √ wat impliceert dat α = 21 ( 5 − 1) ≈ 0.618. 9
De gulden snede geeft een verhouding weer die veelvuldig in de natuur, de klassieke architectuur en schilderkunst
wordt aangetroffen. Voor meer informatie, zie bijvoorbeeld http://nl.wikipedia.org/wiki/Gulden snede.
88
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Verder geldt λk = bk − α(bk − ak ); µk = ak + α(bk − ak ). Als het interval na [ak , bk ] het interval [ak , µk ] is, dan geeft dit: ak+1 = ak , bk+1 = µk , λk+1 = bk+1 − α(bk+1 − ak+1 ) en µk+1 = λk . Als na het interval [ak , bk ] het interval [λk , bk ] komt, dan is: ak+1 = λk , bk+1 = bk , λk+1 = µk en µk+1 = ak+1 + α(bk+1 − ak+1 ).
Algoritme 3.2 Gulden Snede Invoer: Een functie φ(λ) := f (xk + λsk ) en getallen a0 en b0 met a0 < b0 en zdd. φ(λ) strict quasi-concaaf is op [a0 , b0 ]. Uitvoer: Een benadering λ van de optimale oplossing van het probleem maxλ>0 φ(λ). √ 1. k := 0; α := 21 ( 5 − 1); λk := bk − α(bk − ak ); µk := ak + α(bk − ak ). 2. Als |bk − ak | < ε: stop met λ := 21 (bk + ak ). Anders: ga naar stap 3. 3. Als φ(λk ) ≥ φ(µk ) : ak+1 := ak , bk+1 := µk , λk+1 := bk+1 − α(bk+1 − ak+1 ) en µk+1 := λk . Anders: ak+1 := λk , bk+1 := bk , λk+1 := µk en µk+1 := ak+1 + α(bk+1 − ak+1 ). 4. k := k + 1 en ga naar stap 2.
Voorbeeld 3.4 Laat φ(λ) = 120 − 108λ −
12 λ
op het interval [0, 1].
Deze functie is op dit interval strict quasi-concaaf (waarom?). We voeren drie iteraties uit en de berekeningen doen we in drie decimalen. Start: a0 := 0; b0 := 1; λ0 := 0.382; µ0 := 0.618. Iteratie 1: φ(λ0 ) > φ(µ0 ) : a1 := 0; b1 := 0.618; λ1 := 0.236; µ1 := 0.382. Iteratie 2: φ(λ1 ) < φ(µ1 ) : a2 := 0.236; b2 := 0.618; λ2 := 0.382; µ2 := 0.472. Iteratie 3: φ(λ2 ) > φ(µ2 ) : a3 := 0.236; b3 := 0.472; λ3 := 0.326; µ3 := 0.382. Als we nu zouden stoppen dan is de benadering λ voor de optimale staplengte 12 (b3 + a3 ) = 0.354 (het werkelijke optimum ligt bij 0.333). Opmerking:
√ Omdat de lengte van het interval in iedere iteratie met een vaste factor α = 12 ( 5 − 1) ≈ 0.618 wordt verkleind, is er sprake van lineaire convergentie met convergentiefactor ≈ 0.618.
3.2. ONBEPERKTE OPTIMALISERING
89
Kwadratische interpolatie Bij de methode van de kwadratische interpolatie willen we per iteratie ook slechts ´e´en nieuwe functie-evaluatie hebben. We gaan uit van een drietal punten λ1 , λ2 en λ3 met in λ2 de hoogste functiewaarde van φ m.b.t. de drie λ’s. Door de drie punten (λi , φ(λi )), 1 ≤ i ≤ 3 leggen we een kwadratische functie g(λ) = Aλ2 + Bλ + C B en van deze functie weten we waar het optimum ligt, namelijk in λ∗ = − 2A .
Omdat g(λi ) = φ(λi ), 1 ≤ i ≤ 3, zijn de onbekenden A, B en C te bepalen als oplossing van het stelsel
2 λ1 A + λ1 B + C = φ(λ1 ) λ22 A + λ2 B + C = φ(λ2 ) λ2 A + λ B + C = φ(λ ) 3 3 3
Met de regel van Cramer volgt de oplossing van dit stelsel, waaruit de waarde van λ∗ volgt: λ∗ =
1 φ(λ1 )(λ23 − λ22 ) + φ(λ2 )(λ21 − λ23 ) + φ(λ3 )(λ22 − λ21 ) · . 2 φ(λ1 )(λ3 − λ2 ) + φ(λ2 )(λ1 − λ3 ) + φ(λ3 )(λ2 − λ1 )
Voor de volgende iteratie kiezen we op grond van Lemma 3.1 de volgende drie punten: Als λ∗ < λ2 : als φ(λ∗ ) ≥ φ(λ2 ): neem de drie punten λ1 , λ∗ en λ2 ; als φ(λ∗ ) < φ(λ2 ): neem de drie punten λ∗ , λ2 en λ3 ; Als λ∗ > λ2 : als φ(λ∗ ) ≥ φ(λ2 ): neem de drie punten λ2 , λ∗ en λ3 ; als φ(λ∗ ) < φ(λ2 ): neem de drie punten λ1 , λ2 en λ∗ . Als φ unimodaal is, dan is de convergentie superlineair en wel van de orde ≈ 1.3. 10 Algoritme 3.3 Kwadratische interpolatie Invoer: Een functie φ(λ) := f (xk + λsk ) en getallen λ1 , λ2 en λ3 zdd. λ1 < λ2 < λ3 en φ(λ2 ) > max{φ(λ1 ), φ(λ3 )}. Uitvoer: Een benadering λ van de optimale oplossing van het probleem maxλ>0 φ(λ). 1. Als |λ3 − λ1 | < ε: stop met als benaderende oplossing λ := 21 (λ3 + λ1 ). Anders: ga naar stap 2. 2. Bepaal λ∗ =
1 2
·
φ(λ1 )(λ23 −λ22 ) + φ(λ2 )(λ21 −λ23 ) + φ(λ3 )(λ22 −λ21 ) φ(λ1 )(λ3 −λ2 ) + φ(λ2 )(λ1 −λ3 ) + φ(λ3 )(λ2 −λ1 ) .
3. Als λ∗ < λ2 : als φ(λ∗ ) ≥ φ(λ2 ): λ3 := λ2 , λ2 := λ∗ en ga naar stap 1. als φ(λ∗ ) < φ(λ2 ): λ1 := λ∗ en ga naar stap 1. Als λ∗ > λ2 : als φ(λ∗ ) ≥ φ(λ2 ): λ1 := λ2 , λ2 := λ∗ en ga naar stap 1. als φ(λ∗ ) < φ(λ2 ): λ3 := λ∗ en ga naar stap 1. 10
E. Isaacson and H.B. Keller, Analysis of numerical methods, Wiley (1966).
90
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Methode van Newton De methode van Newton 11 is een iteratieve methode voor een nulpuntsbepaling. We nemen aan dat we de afgeleide en tweede afgeleide kennen. Het maximum van een unimodale functie komt dan overeen met de nulpuntsbepaling φ0 (λ) = 0. Als we een iterand λk hebben, dan nemen we de eerste orde (lineaire) benadering van φ0 (λk ) en veronderstellen dat φ0 (λk+1 ) = 0, d.w.z. we beschouwen de vergelijking 0 = φ0 (λk+1 ) = φ0 (λk ) + φ00 (λk )(λk+1 − λk ), ofwel λk+1 = λk −
φ0 (λk ) . φ00 (λk )
Algoritme 3.4 Methode van Newton Invoer: Een unimodale functie φ(λ) := f (xk + λsk ) en een startwaarde λ0 > 0. Uitvoer: Een benadering λ van de optimale oplossing van het probleem maxλ>0 φ(λ). 1. k := 0 2. λk+1 := λk −
φ0 (λk ) φ00 (λk ) .
3. Als |λk+1 − λk | < ε: stop met als benaderende oplossing λ := 21 (λk+1 + λk ). Anders: k := k + 1 en ga naar stap 2. Convergentie De methode van Newton hoeft in het algemeen niet te convergeren. Onder bepaalde voorwaarden voor het gedrag van de functie en voor het startpunt is dit wel het geval. We geven hieronder twee voorbeelden. Voorbeeld 3.5 Laat φ(λ) = ln (1 + λ) − λ. Dan is φ0 (λ) =
−λ 1+λ
en φ00 (λ) =
−1 . (1+λ)2
Merk op dat φ0 (λ∗ ) = 0 d.e.s.d. als λ∗ = 0. Omdat φ00 (λ) < 0 voor alle λ is φ strict concaaf. λk+1 = λk −
λk /(λk + 1) = λk − λk (1 + λk ) = −λ2k . (1 + λk )−2
Hieruit volgt direct dat λk → λ∗ = 0 d.e.s.d. als |λ0 | < 1 (als |λ0 | = 1, dan is λk = −1 voor k ≥ 1 en als |λk | > 1, dan is divergeren de λk ’s naar −∞). Tevens is direct in te zien dat de convergentie kwadratisch is, want limk→∞
|λk+1 −λ∗ | |λk −λ∗ |2
= 1.
Voorbeeld 3.6 Laat φ(λ) = −λm met m ≥ 2 en even. φ0 (λ) = −mλm−1 en φ00 (λ) = −m(m − 1)λm−2 . φ0 (λ∗ ) = 0 d.e.s.d. als λ∗ = 0 en φ00 (λ) < 0 d.e.s.d. als λ 6= 0 (m is even). λk+1 = λk −
mλm−1 m−2 λk k m−2 = λk − m − 1 = m − 1 λk . m(m − 1)λk
Hieruit volgt dat λk → λ∗ = 0 voor alle λ0 en dat de convergentie lineair is met factor 11
m−2 m−1 .
Deze methode wordt ook vaak de Newton-Raphson methode genoemd. Raphson publiceerde in 1691 een boek
waarin de methode van Newton al wordt besproken. Newton (1643–1727) ontwikkelde deze methode in 1671, maar het werd pas in 1736, na zijn dood, gepubliceerd.
3.2. ONBEPERKTE OPTIMALISERING
91
De volgende stelling geeft bepaalde voorwaarden waaronder de methode van Newton kwadratisch convergeert naar het gewenste optimum λ∗ .12 Stelling 3.6 Als de functie φ(λ) viermaal continu differentieerbaar is op een interval [a, b] met a < λ∗ < b en φ00 (λ∗ ) 6= 0, en λ∗ is een enkelvoudig nulpunt van φ0 (λ), dan is er een interval I = [λ∗ − δ, λ∗ + δ] voor zekere δ > 0 zdd. als λ0 ∈ I de methode van Newton naar λ∗ convergeert, waarbij de convergentiesnelheid minstens kwadratisch is. Vraag 3.6 Toon aan dat het aantal iteraties van algoritme 3.2 gelijk is aan
3.2.3
l
log{(b0 −a0 )/ε} √ log{2/( 5−1)}
m .
Meerdimensionale optimalisatie
Vervolgens gaan we in op meerdimensionale optimalisatie. Hiervoor bestaan diverse algoritmen, die in drie klassen zijn in te delen: a. methoden die alleen functiewaarden gebruiken; b. methoden die behalve functiewaarden ook de gradi¨ent gebruiken; c. methoden die behalve functiewaarden en gradi¨ent ook de Hessiaan gebruiken. Tot de klasse van a behoort de methode van Nelder en Mead.13 Deze methode zullen we hier niet bespreken. Uit de klassen b en c zullen we elk ´e´en methode presenteren. Methode van de sterkste stijging (Cauchy) Bij deze methode 14 nemen we aan dat f (x) eenmaal continu differentieerbaar is en dat we de gradi¨ent ∇f (x) kunnen gebruiken. In het punt xk willen we de richting sk met ksk k = 1 z´o kiezen dat de stijging maximaal is (infinitesimaal gezien). Dit houdt in dat we het volgende optimaliseringsprobleem beschouwen: ¾ ½ f (xk + λs) − f (xk ) ¯¯ ksk = 1 maxs∈Rn limλ↓0 ¯ λ
(3.15)
Omdat limλ↓0
f (xk + λs) − f (xk ) = D(f ; s) = {∇f (xk )}T s = k∇f (xk )k · ksk · cos φ = k∇f (xk )k · cos φ, λ
met φ de hoek tussen de vectoren ∇f (xk ) en s, wordt het maximum aangenomen voor φ = 0, d.w.z. sk heeft dezelfde richting als ∇f (xk ). 12
Voor het bewijs, dat gebaseerd is op de vaste punt stelling van Banach, verwijzen wij naar H.R. Schwarz,
Numerical analysis: A comprehensive introduction, Wiley (1989) p. 210. 13 J.A. Nelder and R. Mead, Computer Journal, 1965, vol 7, pp 308–313. 14 De methode van de sterkste stijging wordt toegeschreven aan Cauchy (1789 – 1857), een Franse wis- en natuurkundige, die deze methode in 1847 beschreef (A.L. Cauchy, M´ethode g´en´erale pour la r´esolution des syst`emes d’´equations simultan´ees, Comptes Rendus, Acad´emie Science, Paris, XXV (1847) 536–538). Voor een biografie van Cauchy, zie : http://turnbull.mcs.st-and.ac.uk/history/Biographies/Cauchy.html.
92
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
We merken verder op dat de stapgrootte λk z´ o wordt bepaald dat f (xk+1 ) = f (xk + λk sk ) = maxλ f (xk + λsk ), d.w.z. ∂ k ∂λ f (x
Omdat
∂ k ∂λ f (x
+ λsk ) = 0 voor λ = λk .
+ λsk ) = {∇f (xk + λsk )}T sk , geldt: {∇f (xk+1 )}T {∇f (xk )} = 0.
Dus de opeenvolgende richtingen staan loodrecht op elkaar: de rij {sk }∞ k=0 volgt zigzaggend zijn weg door de Rn . Algoritme 3.5 Methode van Cauchy Invoer: Een functie f (x) : Rn → R en een beginpunt x0 . Uitvoer: Een benadering x∗ van de optimale oplossing van het probleem max{f (x) | x ∈ Rn }. 1. k := 0 en kies een ε > 0. 2. a. sk := ∇f (xk ). b. Bepaal λk zdd. f (xk + λk sk ) = maxλ f (xk + λsk ). c. xk+1 := xk + λk sk . 3. Als kxk+1 − xk k < ε: stop met x∗ := xk+1 als benadering van de optimale oplossing. Anders: k := k + 1 en ga naar stap 2. We noemen een methode sterk (zwak) convergent als ∇f (x∗ ) = 0 voor ieder (minstens ´e´en) ophopingspunt x∗ van de rij {xk }∞ k=0 . Stelling 3.7 De methode van Cauchy is sterk convergent. Bewijs ∗ Zij x∗ een willekeurig ophopingspunt van de rij {xk }∞ k=0 en stel dat x de limiet is van de rij k+1 ) = max f (xk + λsk ) ≥ f (xk ) voor alle k, is de rij {f (xk )}∞ niet{xk(i) }∞ λ i=0 . Omdat f (x k=0
dalend. We kunnen dus schrijven: f (xk(i+1) ) ≥ f (xk(i)+1 ) ≥ f (xk(i) ) voor alle i. Laat i → ∞ en gebruik de continu¨ıteit van f : f (x∗ ) = f (limi→∞ xk(i+1) ) = limi→∞ f (xk(i+1) ) ≥ limi→∞ f (xk(i)+1 ) ≥ limi→∞ f (xk(i) ) = f (x∗ ), zodat geldt f (x∗ ) = limi→∞ f (xk(i)+1 ) ≥ limi→∞ f (xk(i) + λsk(i) ) = limi→∞ f (xk(i) + λ∇f (xk(i) )) = f (limi→∞ {xk(i) + λ∇f (xk(i) )}) = f (x∗ + λ∇f (x∗ )) voor alle λ.
3.2. ONBEPERKTE OPTIMALISERING
93
Dus f (x∗ + λ∇f (x∗ )) is maximaal voor λ = 0, d.w.z. ∂ f (x∗ + λ∇f (x∗ )) = {∇f (x∗ + λ∇f (x∗ ))}T ∇f (x∗ ) = 0 voor λ = 0, ∂λ ofwel {∇f (x∗ )}T ∇f (x∗ ) = 0 m.a.w. ∇f (x∗ ) = 0. Opmerkingen 1. Als {x | f (x) ≥ f (x0 )} een compacte verz. is, dan heeft iedere rij {xk }∞ k=0 een ophopingspunt. 2. Het is mogelijk dat de rij {xk }∞ k=0 meer ophopingspunten heeft. Dit is bijvoorbeeld het n o 1 − φ , gegeven in geval voor de functie f (x1 , x2 ) = −(r − 1)2 + 21 (r − 1)2 cos r−1 p poolco¨ordinaten, dus met r = x21 + x22 en φ = arctan xx21 . Er kan worden aangetoond dat r = 1 een continu¨ um is van ophopingspunten en dat, als we starten met een x0 waarvoor r > 1, we zigzaggend omhoog klimmen naar de rif r = 1. 3. De convergentie van de methode van Cauchy is in het algemeen vrij slecht. Zelfs als f kwadratisch en concaaf is, zoals f (x) = − 12 xT Cx met C een positief definiete symmetrische matrix zodat x∗ = 0 de optimale oplossing is, dan is deze convergentie lineair, zoals de volgende stelling laat zien. Stelling 3.8 Als f (x) = − 12 xT Cx met C een positief definiete symmetrische matrix, dan geldt µ k+1
f (x
)≥
M −m M +m
¶2
f (xk ) voor alle k,
waarbij M en m de grootste resp. de kleinste eigenwaarden van C zijn. Bewijs Voor de functie f (x) = − 21 xT Cx met C een positief definiete symmetrische matrix geldt dat ∇f (x) = −Cx en de staplengte λk =
(sk )T sk (sk )T Csk
met sk = ∇f (xk ) = −Cxk . Hieruit volgt dat
© ªT © ª f (xk+1 ) = − 12 xk + λk sk C xk + λk sk © ª = − 21 (xk )T Cxk + 2λk (xk )T Csk + (λk )2 (sk )T Csk © ª = − 21 (xk )T Cxk − 2λk (sk )T sk + (λk )2 (sk )T Csk ½ ¾ n k T k o2 (sk )T sk (s ) s 1 k T k k T k k T k = − 2 (x ) Cx − 2 (sk )T Csk · (s ) s + (sk )T Csk · (s ) Cs n o k )T sk }2 = − 21 (xk )T Cxk − {(s . (sk )T Csk Omdat f (xk ) = − 21 (xk )T Cxk = − 12 (sk )T C −1 sk , krijgen we n o {(sk )T sk }2 k T −1 sk f (xk+1 ) = − 21 (xk )T Cxk − {(sk )T Cs k }{(sk )T C −1 sk } · (s ) C n o {(sk )T sk }2 = 1 − {(sk )T Cs f (xk ). k }{(sk )T C −1 sk }
94
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Volgens de Kantorovich ongelijkheid 15 geldt dat 4M m {(sk )T sk }2 ≥ . k T k k T −1 k {(s ) Cs }{(s ) C s } (M + m)2 Omdat f (xk ) negatief is volgt hieruit ½ k+1 f (x ) ≥ 1 −
4M m (M + m)2
¾
µ k
f (x ) =
M −m M +m
¶2
f (xk ).
Voorbeeld 3.7 Neem de functie f (x) = −x21 − 2x1 x2 − 5x22 + 6x1 − 2x2 − 2 en start met x0 = (1, 0). Hieronder worden x1 , x2 , . . . , x5 met de bijbehorende functiewaarden berekend. (sk )T sk (sk )T Csk
k
xk
sk = ∇f (xk )
λk =
f (xk )
0
(1,0)
(4,-4)
0.25
3
1
(2,-1)
(4,4)
0.125
7
2
(2.5, -0.5)
(2,-2)
0.25
9
3
(3,-1)
(2,2)
0.125
10
4
(3.25,-0.75)
(1,-1)
0.25
10.5
5
(3.5,-1)
(1,1)
0.125
10.75
De optimale oplossing van dit probleem is x∗ = (4, −1) met waarde 11. Als we kijken naar de rij {f (x∗ ) − f (xk )}∞ k=0 , dan krijgen we de getallen 8, 4, 2, 1, 0.5, 0.25, . . . , d.w.z. dat de convergentie 1 van de rij {f (xk )}∞ k=0 lineair is met factor 2 .
Methode van Newton We bespreken nu de methode van Newton voor meerdimensionale optimalisering. In de k-de iteratie lossen we de vergelijking ∇f (x) = 0 approximatief op. In plaats van ∇f (x) gebruiken we de eerste orde Taylor-benadering om xk , d.w.z. we lossen de vergelijking ∇f (x) = ∇f (xk ) + ∇2 f (xk )(x − xk ) = 0 op, d.w.z. xk+1 = xk − {∇2 f (xk )}−1 ∇f (xk ).
(3.16)
Deze methode is ook te beschouwen als een speciaal geval van het generieke algoritme 3.1 met xk+1 := xk + λk sk , want neem λk := 1 en sk := −{∇2 f (xk )}−1 ∇f (xk ). We nemen bij deze methode aan dat de Hessiaan ∇2 f (xk ) inverteerbaar is. Dit is bijvoorbeeld het geval als de Hessiaan negafief (of positief) definiet is. 15
dat
De ongelijkheid van Kantorovich zegt dat voor een positief definiete symmetrische matrix C en een y 6= 0 geldt (y T y)2 (y T Cy)(y T C −1 y)
≥
4M m . (M +m)2
Voor een bewijs van deze ongelijkheid, zie: D.P. Bertsekas, Nonlinear Programming,
Athena Scientific, second edition, 1999, p. 76.
3.2. ONBEPERKTE OPTIMALISERING
95
Algoritme 3.6 Methode van Newton Invoer: Een functie f (x) : Rn → R en een beginpunt x0 . Uitvoer: Een benadering x∗ van de optimale oplossing van het probleem max{f (x) | x ∈ Rn }. 1. k := 0 en kies een ε > 0. 2. sk := −{∇2 f (xk )}−1 ∇f (xk ) en xk+1 := xk + sk . 3. Als kxk+1 − xk k < ε: stop met xk+1 als benadering van de optimale x. Anders: k := k + 1 en ga naar stap 2. Stelling 3.9 Als f kwadratisch en concaaf is, d.w.z. f (x) = pT x − 12 xT Cx met C een positief definiete symmetrische matrix, dan convergeert de methode van Newton in ´e´en iteratie naar de optimale oplossing x∗ = C −1 p. Bewijs Omdat ∇f (x) = p − Cx geldt: ∇f (x) = 0 ⇔ x = C −1 p. Op grond van Gevolg 3.1 is x∗ = C −1 p een globaal optimum. ∇2 f (x) = −C, dus voor een willekeurige x0 geldt: x1 = x0 − {∇2 f (x0 )}−1 ∇f (x0 ) = x0 + C −1 (p − Cx0 ) = C −1 p = x∗ . Opmerkingen 1. Om sk te bepalen is het niet altijd nodig om {∇2 f (xk )}−1 expliciet te bepalen. Vaak is het effici¨enter om het stelsel ∇2 f (xk )s = −∇f (xk ) op te lossen. Daarbij kan soms gebruik worden gemaakt van een speciale structuur die de Hessiaan ∇2 f (xk ) mogelijk bezit, zoals bijvoorbeeld symmetrie. 2. De Hessiaan ∇2 f (xk ) is niet altijd inverteerbaar, dus de methode is niet altijd toepasbaar. Dit is wel het geval als ∇2 f (xk ) vervangen wordt door een matrix Hk , een approximatie van de Hessiaan, die negatief definiet is. In dat geval nemen we λk weer volgens de lijnoptimalisatie. Dit soort methoden, waarbij de Hessiaan vervangen wordt door een negatief definiete matrix, heten quasi-Newton methoden. We kunnen bijvoorbeeld Hk = −I, met I de eenheidsmatrix, nemen. Dan is sk = ∇f (xk ), d.w.z. in dat geval krijgen we de methode van Cauchy. Er zijn vele voorstellen voor Hk in de literatuur beschreven.16 Ook als ∇2 f (xk ) wel inverteerbaar is wordt soms gekozen voor een quasi-Newton methode, omdat het inverteren (te) veel tijd kost. 3. Indien Hk negatief definiet is, dan stijgt de functiewaarde als we in xk in de richting van sk = −{Hk }−1 ∇f (xk ) gaan, immers {∇f (xk )}T sk = −{∇f (xk )}T {Hk }−1 ∇f (xk ) > 0. 4. Voor een driemaal continu differentieerbare functie f (x) met een optimum in x∗ , waarbij de Hessiaan ∇2 f (xk ) negatief semidefiniet is, geldt dat de methode van Newton kwadratische convergentie heeft, mits het startpunt x0 voldoende dicht bij x∗ ligt.17 16 17
Zie bijvoorbeeld het boek: G. Zoutendijk, Mathematical Programming Methods, North Holland (1976). R. Fletcher, Practical methods of unconstrained optimization, Wiley (1980).
96
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Voorbeeld 3.8 Laat f (x1 , x2 ) = −x21 − 2x22 + 4x1 + 2x2 −
√ x1 x2 en neem x0 = (2, 0.5).
We voeren twee iteraties uit en doen de berekeningen in twee decimalen. k
xk
f (k )
∇f (xk )
0
(2.00, 0.50)
3.75
(0.75 , -3.00)
1
(2.15, 0.02)
4.01
(-0.30, 1.20)
2
(1.98, 0.20)
4.07
(-0.14, -0.65)
3
(1.96, 0.12)
∇2 f (xk ) ¡−2.19 −2.25¢ −2.25 ¡ −2.00
−7.00 ¢ −0.51 −0.51 −19.10 ¡−2.05 −1.41¢ −1.41 −8.69
Vraag 3.7 Ga na dat voor een kwadratische functie f (x) = pT x − 21 xT Cx met C een positief definiete symmetrische matrix voor de staplengte λk geldt: λk =
{∇f (xk )}T sk . (sk )T Csk
Vraag 3.8 Pas de methode van Cauchy toe op de functie f (x1 , x2 ) = −x21 − 50x22 . ¡¢ Start met x0 = 22 , voer twee iteraties uit en doe de berekeningen in 2 decimalen na de komma. Vraag 3.9 Beschouw de kwadratische functie f (x1 , x2 ) = −x21 − 5x22 − 2x1 x2 + 6x1 − 2x2 . ¡¢ Start met x0 = 11 en pas de methode van Newton toe om in ´e´en stap het optimum te bepalen.
3.2.4
Opgaven
Opgave 3.4 Toon aan dat indien f : S → R met S een interval op R waarop f een uniek maximum aanneemt de begrippen stricte quasi-concaviteit en unimodaliteit equivalent zijn. Opgave 3.5 Beschouw het ´e´endimensionale optimaliseringsprobleem max1≤λ≤2 {5λ − eλ }. a. Pas de Gulden Snede methode toe (voer vijf iteraties uit). b. Pas de kwadratische interpolatie-methode toe (voer twee iteraties uit, bijvoorbeeld met een rekenmachine), en start met λ1 = 1.2, λ2 = 1.5 en λ3 = 1.8. Opgave 3.6 Beschouw de functie f (x1 , x2 ) = −x21 − 2x22 + 2x1 x2 + 2x2 . a. Bepaal analytisch het globale maximum. b. Voer drie iteraties met de methode van Cauchy uit, uitgaande van x0 = (0, 0). Opgave 3.7 Beschouw het probleem max {ln
1 } x21 +x22 +1
a. Bepaal s0 met de methode van Cauchy. b. Bepaal s0 met de methode van Newton.
en neem x0 = (1, 1).
3.3. BEPERKTE OPTIMALISERING: THEORIE
97
Opgave 3.8 Beschouw de kwadratische functie f (x1 , x2 ) = −2x21 − x22 + 2x1 x2 − 2x1 + 2x2 . a. Toon aan dat het maximum ligt bij x∗ = (0, 1). b. Start met x0 = (0, 0), gebruik de methode van Cauchy, en laat zien dat x2k = (0, 1 − 51k ) voor k = 0, 1, . . . . c. Indien wordt gestopt zodra kxk − x∗ k ≤
3.3
1 , 510
hoeveel iteraties zijn dan nodig?
Beperkte optimalisering: theorie
In deze sectie bespreken we het beperkte niet-lineaire optimaliseringsprobleem in de gedaante ¯ ( ) ¯ h (x) = 0, i = 1, 2, . . . , m ¯ i max f (x) ¯ , (3.17) ¯ gj (x) ≤ 0, j = 1, 2, . . . , p waarbij we aannemen dat de functies f, hi (1 ≤ i ≤ m) en gj (1 ≤ j ≤ p) tenminste eenmaal continu differentieerbaar zijn. Door verschilvariabelen yj , 1 ≤ j ≤ p, te introduceren kunnen we van de ongelijkheden gelijkheden maken, namelijk gj (x) ≤ 0 is equivalent met gj (x) + yj2 = 0: zonder beperking van de algemeenheid mogen we dus aannemen dat we een probleem met alleen gelijkheden hebben. Door van een gelijkheid twee ongelijkheden te maken kunnen we, zonder beperking van de algemeenheid, het probleem ook beschouwen als een probleem met alleen ongelijkheden.
3.3.1
Inleiding
Beschouw probleem (3.17) en laat R = {x | hi (x) = 0, i = 1, 2, . . . , m; gj (x) ≤ 0, j = 1, 2, . . . , p} de verz. van toegelaten oplossingen zijn. Voor x∗ ∈ R is de kegel S(x∗ ) van toelaatbare richtingen gedefinieerd door S(x∗ ) = {s 6= 0 | x∗ + λs ∈ R} voor λ ∈ (0, δ) voor zekere δ > 0. Ga zelf na dat S(x∗ ) inderdaad een kegel is. Als we vanuit x∗ een klein stukje in een toelaatbare richting gaan, dan blijven de punten toelaatbaar. Als in x∗ de richtingsafgeleide van f in een toelaatbare richting s∗ positief is, d.w.z. als {∇f (x∗ )}T s∗ > 0, dan zeggen we dat s∗ een bruikbare richting is. Ook de verz. van bruikbare richtingen is een kegel (ga dit zelf na). Als we een klein stapje in een bruikbare richting gaan, dan zal de waarde van de doelfunctie stijgen. Dit volgt uit de Taylor ontwikkeling, zoals het bewijs van de volgende stelling laat zien. In deze stelling bewijzen we de intu¨ıtief duidelijke eigenschap dat x∗ een lokaal maximum is d.e.s.d. als in x∗ geen bruikbare richting is.
98
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Stelling 3.10 Als x∗ een lokaal maximum van (3.17) is, dan is er geen bruikbare richting in x∗ . Bewijs Stel er is wel een bruikbare richting s∗ in x∗ . Dan geldt dat {∇f (x∗ )}T s∗ > 0 en dat x∗ + λs∗ ∈ R voor λ voldoende klein. Volgens de tweede orde Taylor benadering geldt dat voor iedere λ f (x∗ + λs∗ ) − f (x∗ ) = λ{∇f (x∗ )}T s∗ + 12 λ2 (s∗ )T {∇2 f (x∗ )}T s∗ + o(λ2 ), zodat
1 f (x∗ + λs∗ ) − f (x∗ ) = {∇f (x∗ )}T s∗ + λ(s∗ )T {∇2 f (x∗ )}T s∗ + o(λ). λ 2 Omdat {∇f (x∗ )}T s∗ > 0 en de rest van het rechterlid naar 0 gaat als λ ↓ 0, is f (x∗ + λs∗ ) > f (x∗ ) voor λ ∈ (0, δ) voor zekere δ > 0. Dit is echter in tegenspraak met de eigenschap dat x∗ een lokaal optimum is. Stelling 3.11 Veronderstel dat het optimaliseringsprobleem alleen ongelijkheden heeft, laat x∗ een lokaal maximum zijn en zij J(x∗ ) = {j | gj (x∗ ) = 0} (de verz. van de actieve ongelijkheden). Dan is {∇f (x∗ )}T s ≤ 0 voor iedere s met {∇gj (x∗ )}T s < 0 voor alle j ∈ J(x∗ ). Bewijs Neem een s met {∇gj (x∗ )}T s < 0 voor alle j ∈ J(x∗ ), d.w.z. voor alle j waarvoor gj (x∗ ) = 0. Omdat gj (x∗ ) < 0 voor alle j ∈ / J(x∗ ) en gj continu is, is gj (x∗ + λs) < 0, j ∈ / J(x∗ ) voor λ voldoende klein. Aangezien {∇gj (x∗ )}T s < 0 voor alle j ∈ J(x∗ ), is (zie bewijs van Stelling 3.10) gj (x∗ + λs) < 0, j ∈ J(x∗ ) voor λ voldoende klein. De vector s is dus een toegelaten richting en volgens Stelling 3.10 is er in een lokaal maximum geen bruikbare richting, d.w.z. {∇f (x∗ )}T s ≤ 0.
Voorbeeld 3.9
¯ ¯ x2 + x2 ¯ 1 2 ¯ ¯ x + x 1 2 Beschouw het probleem max −(x1 − 3)2 − (x2 − 2)2 ¯¯ x ¯ 1 ¯ ¯ x2
≤ 5 ≤ 3 ≥ 0 ≥ 0
.
Beschouw het punt x∗ = ( 59 , 65 ), dat toelaatbaar is en bindend is voor de tweede beperking. ¡1¢ ¡ 3¢ 8 T ∗ ∗ T ∇f (x∗ ) = ( 12 5 , 5 ) en ∇g2 (x ) = 1 . Nemen we s = −4 , dan is {∇g2 (x )} s = −1 < 0 en {∇f (x∗ )}T s =
4 5
> 0, zodat x∗ volgens Stelling 3.11 geen lokaal maximum is. ¡¢ Beschouw vervolgens het punt x∗ = 21 , dat toelaatbaar is en bindend voor de eerste en tweede ¡¢ ¡¢ ¡¢ beperking. ∇f (x∗ ) = 22 , ∇g1 (x∗ ) = 42 en ∇g2 (x∗ ) = 11 . Als {∇g2 (x∗ )}T s = s1 + s2 < 0, dan is het onmogelijk dat {∇f (x∗ )}T s = 2s1 + 2s2 > 0. Uit Stelling 3.11 kunnen we dus niet concluderen dat x∗ geen lokaal maximum is (ook niet dat x∗ wel een lokaal maximum is: x∗ is wel een kandidaat voor een lokaal maximum).
3.3. BEPERKTE OPTIMALISERING: THEORIE
3.3.2
99
Lagrange multipliers bij gelijkheidsbeperkingen
Noodzakelijke voorwaarden bij gelijkheidsbeperkingen We geven eerst noodzakelijke voorwaarden voor een lokaal optimum voor het probleem met alleen gelijkheden, d.w.z. ¯ n o ¯ max f (x) ¯ hi (x) = 0, i = 1, 2, . . . , m
(3.18)
We zeggen dat de beperkingen in het punt x regulier zijn als de gradi¨enten ∇h1 (x), ∇h2 (x), . . . , ∇hm (x) een stelsel lineair onafhankelijk vectoren vormen. Stelling 3.12 Laat x∗ een lokaal optimum van (3.18) zijn en neem aan dat de beperkingen in het punt x∗ regulier zijn. Dan bestaat er Lagrange multiplicatoren λ∗1 , λ∗2 , . . . , λ∗m zdd. ∗
∇f (x ) −
m X
λ∗i ∇hi (x∗ ) = 0
(3.19)
i=1
Als bovendien f en de functies hi (1 ≤ i ≤ m) tweemaal continu differentieerbaar zijn, dan is P ∗ 2 ∗ ∗ de matrix ∇2 f (x∗ ) − m i=1 λi ∇ hi (x ) negatief semi-defininiet op de lineaire deelruimte V (x ), waarbij V (x∗ ) = {y | ∇hi (x∗ )T y = 0, i = 1, 2, . . . , m}. Opmerking: De stelling zegt dat in x∗ de gradi¨ent van de doelfunctie een lineaire combinatie van de gradi¨enten Pm ∗ ∗ T van de beperkingen is. Bovendien dat {∇f (x∗ )}T y = i=1 λi {∇hi (x )} y = 0 voor iedere y ∈ V (x∗ ), d.w.z. dat ∇f (x∗ ) loodrecht op V (x∗ ) staat. Als we willen nagaan of een toelaatbare oplossing een lokaal optimum is, dan kijken we of aan (3.19) voldaan kan worden. Is dit niet mogelijk, dan is x∗ geen lokaal optimum; is dit wel mogelijk, P ∗ 2 ∗ dan kijken we of ∇2 f (x∗ ) − m i=1 λi ∇ hi (x ) negatief semi-defininiet op de lineaire deelruimte V (x∗ ). Als dit niet zo is, dan is x∗ geen lokaal optimum en als dit wel zo is, dan is x∗ misschien een lokaal optimum. Voorbeeld 3.10 Beschouw het probleem max{x1 + x2 | x21 + x22 − 2 = 0}. ¡¢ ¡ 1¢ ∇f (x) = 11 en ∇h(x) = 2x e´en beperking is, is altijd aan de regulariteit 2x2 . Omdat er slechts ´ ¡ ¢ ¡¢ ¡¢ 1 voldaan. In het lokale optimum x∗ = 1 is ∇f (x∗ ) = 11 en ∇h(x∗ ) = 22 , zodat λ = 12 . ¡ ¢ Verder geldt dat V (x∗ ) = {y | (2, 2) yy12 = 0}, d.w.z. de vectoren y met y1 + y2 = 0. ¡¢ ∇f (x∗ ) = 11 staat inderdaad loodrecht op de lineaire deelruimte V (x∗ ). De matrix ¡ ¢ ¡ ¢ ¡ ¢ 0 n ∇2 f (x∗ ) − λ∇2 h(x∗ ) = 00 00 − 12 20 02 = −1 0 −1 en deze is negatief definiet, zelfs op R .
100
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Bewijs van Stelling 3.12 We zullen het bewijs geven via de zogenaamde penalty benadering, waarbij een penalty geven ¡ ¢T voor het afwijken van de gelijkheden en van x∗ . Laat h(x) de vector h1 (x), h2 (x), . . . , hm (x) zijn en ∇h(x) de n × m matrix met (j, i)-de element
∂ ∂xj hi (x),
d.w.z. ∇h(x) heeft de kolommen
∇h1 (x), ∇h2 (x), . . . , ∇hm (x). Voor k = 1, 2, . . . en α > 0 defini¨eren we 1 1 Fk (x) = f (x) − kkh(x)k2 − αkx − x∗ k2 2 2
(3.20)
Omdat x∗ een lokaal optimum is, is er een ε > 0 zdd. f (x∗ ) ≥ f (x) voor alle toelaatbare x in de compacte verz. S = {x | kx − x∗ k ≤ ε}. Laat xk een optimale oplossing van het probleem max{Fk (x) | x ∈ S}
(3.21)
Merk op dat (3.21) een optimale oplossing heeft omdat Fk (x) continu is en S compact. We zullen nu eerst aantonen dat de rij {xk } naar x∗ convergeert. Voor iedere k geldt 1 1 Fk (xk ) = f (xk ) − kkh(xk )k2 − αkxk − x∗ k2 ≥ Fk (x∗ ) = f (x∗ ), 2 2 zodat f (xk ) ≥ f (x∗ ) + 21 kkh(xk )k2 voor k = 1, 2, . . . . Omdat f (xk ) begrensd is op S, moet voor ieder ophopingspunt x van {xk } gelden dat kh(xk = 0, d.w.z. dat x toelaatbaar is. Ook geldt dat 1 f (xk ) ≥ f (x∗ ) + αkxk − x∗ k2 voor k = 1, 2, . . . , 2 zodat f (x) ≥ f (x∗ ) + 21 αkx − x∗ k2 . Omdat x ∈ S en toelaatbaar is, en x∗ het maximum in S, moet gelden dat x = x∗ . Dus de rij {xk } convergeert naar x∗ , zodat xk een inwendig punt is van de gesloten bol S voor k voldoende groot. Dit betekent dat voor k voldoende groot xk een lokaal maximum is van het onbegrensde maximaliseringsprobleem van Fk (x). Met deze eigenschap zullen we de stelling gaan bewijzen. Uit het bovenstaande volgt dat voor k voldoende groot geldt 0 = ∇Fk (xk ) = ∇f (xk ) − k∇h(xk )h(xk ) − α(xk − x∗ )
(3.22)
Omdat de vectoren van de matrix ∇h(x∗ ) lineair onafhankelijk zijn en {xk } naar x∗ convergeert, zijn ook de vectoren van de matrix ∇h(xk ) lineair onafhankelijk voor k voldoende groot. Voor dergelijke k is de matrix {∇h(xk )}T ∇h(xk ) inverteerbaar (zie Opgave 3.9). © ª−1 Door (3.22) met {∇h(xk )}T te vermenigvuldigen en daarna met A(xk ) := {∇h(xk )}T ∇h(xk ) krijgen we
n o kh(xk ) = A(xk ){∇h(xk )}T ∇f (xk ) − α(xk − x∗ ) .
Laat k → ∞, zodat xk → x∗ , dan convergeert {kh(xk )} naar A(x∗ ){∇h(x∗ )}T ∇f (x∗ ). Door in (3.22) k → ∞ te nemen krijgen we 0 = ∇f (x∗ ) − ∇h(x∗ )A(x∗ ){∇h(x∗ )}T ∇f (x∗ ). Laat de vector λ∗ = (λ∗1 , λ∗2 , . . . , λ∗m ) gedefinieerd zijn door λ∗ = A(x∗ ){∇h(x∗ )}T ∇f (x∗ ). Dan is P ∗ ∗ 0 = ∇f (x∗ ) − ∇h(x∗ )λ∗ , d.w.z. ∇f (x∗ ) − m i=1 λi ∇hi (x ) = 0. Hiermee is het eerste deel van de stelling bewezen.
3.3. BEPERKTE OPTIMALISERING: THEORIE
101
Voor de Hessiaan van Fk (x) geldt ∇2 Fk (x) = ∇2 f (x) − k∇h(x){∇h(x)}T − k
m X
hi (x)∇2 hi (x) − αI
(3.23)
i=1
Omdat xk voor k voldoende groot een lokaal maximum is van Fk (x), is volgens Stelling 3.1 ∇2 Fk (xk ) negatief semi-definiet (voor k voldoende groot). Kies een y ∗ ∈ V (x∗ ) en laat y k de projectie van y ∗ zijn op de nulruime van de matrix {∇h(xk )}T , d.w.z. y k = Pk y ∗ , waarbij n o−1 Pk = I − ∇h(xk ) {∇h(xk )}T ∇h(xk ) ∇h(xk )T
(3.24)
Er geldt: ( k T
2
k
k
k T
(y ) {∇ Fk (x )}y = (y )
2
k
k
k
T
∇ f (x ) − k∇h(x ){∇h(x )} − k
m X
) k
2
k
hi (x )∇ hi (x ) − αI
yk .
i=1
Omdat {∇h(xk )}T y k = 0 en ∇2 Fk (xk ) negatief semi-definiet voor k voldoende groot, kunnen we schrijven ( 0 ≥ (y k )T {∇2 Fk (xk )}y k = (y k )T
∇2 f (xk ) − k
m X
) hi (xk )∇2 hi (xk ) y k − α(y k )T y k
(3.25)
i=1
© ª−1 Laat k → ∞, dan {kh(xk )} → λ∗ en Pk → I − ∇h(x∗ ) {∇h(x∗ )}T ∇h(x∗ ) ∇h(x∗ )T , zodat y k = Pk y ∗ → y ∗ . Hieruit volgt ( ∗ T
0 ≥ (y )
2
∗
∇ f (x ) −
m X
) λ∗i ∇2 hi (x∗ )
y ∗ − αky ∗ k2 .
i=1
Omdat α > 0 willekeurig dicht bij 0 kan worden gekozen moet gelden ( ) m X ∗ T 2 ∗ ∗ 2 ∗ 0 ≥ (y ) ∇ f (x ) − λi ∇ hi (x ) y ∗ , i=1
d.w.z. dat de matrix ∇2 f (x∗ )−
Pm
i=1
λ∗i ∇2 hi (x∗ ) negatief semi-defininiet op de lineaire deelruimte
V (x∗ ). Voorbeeld 3.11 Dit voorbeeld laat zien dat de regulariteitsvoorwaarde niet kan worden weggelaten. ¯ ) ( ¯ h (x) = (x − 1)2 + x2 − 1 = 0 1 ¯ 1 2 . Beschouw het probleem max −x1 − x2 ¯ ¯ h2 (x) = (x1 − 2)2 + x22 − 4 = 0 De beperkingen bestaan uit 2 cirkels met middelpunten (1, 0) en (2, 0) en stralen 1 resp. 2. Het enige toegelaten punt is daarom x∗ = (0, 0). ¡ ¢ ¡−2¢ ¡−4¢ ∗ ∗ ∗ ∗ ∇f (x∗ ) = −1 −1 , ∇h1 (x ) = 0 en ∇h2 (x ) = 0 . Er bestaan dus geen λ1 en λ2 zdd. ∇f (x∗ ) = λ∗1 ∇h1 (x∗ ) + λ∗2 ∇h2 (x∗ ). De reden is dat ∇h1 (x∗ ) en ∇h2 (x∗ ) lineair afhankelijk zijn.
102
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Lagrange functie Definieer de Lagrange 18 functie L(x, λ) door L(x, λ) = f (x) −
m X
λi hi (x)
(3.26)
i=1
Als (x∗ , λ∗ ) een lokaal optimum is van het onbegrensde probleem max{L(x, λ) | x ∈ Rn , λ ∈ Rm }, dan is volgens Stelling 3.1 ∇x L(x∗ , λ∗ ) = 0, en ∇λ L(x∗ , λ∗ ) = 0. Deze gelijkheden geven ∇f (x∗ ) −
m X
λ∗i ∇hi (x∗ ) = 0 en hi (x∗ ) = 0, i = 1, 2, . . . , m
(3.27)
i=1
Dit komt overeen met de voorwaarde uit het eerste deel van Stelling 3.12 (zonder de regulariteit). Het tweede deel van de stelling komt overeen met de eis y T ∇2xx L(x∗ , λ∗ )y ≤ 0 voor alle y ∈ V (x∗ ). Voorbeeld 3.12
© ª Beschouw het probleem max − 21 x21 − 12 x22 − 12 x23 | x1 + x2 + x3 = 3 . L(x1 , x2 , x3 , λ) = − 21 x21 − 12 x22 − 21 x23 − λ(x1 + x2 + x3 − 3), zodat de voorwaarden uit (3.27) geven: −x1 = λ; −x2 = λ; −x3 = λ; x1 + x2 + x3 = 3, met als oplossing x∗1 = x∗2 = x∗3 = 1 en λ∗ = −1. Omdat ∇2xx L(x∗ , λ∗ ) = −I is ook aan de negatief semi-definiet eigenschap voldaan. © ª Beschouw vervolgens het probleem max 21 x21 + 21 x22 + 12 x23 | x1 + x2 + x3 = 3 . L(x1 , x2 , x3 , λ) = 21 x21 + 21 x22 + 12 x23 − λ(x1 + x2 + x3 − 3), zodat de voorwaarden uit (3.27) geven: x1 = λ; x2 = λ; x3 = λ; x1 + x2 + x3 = 3, met als oplossing x∗1 = x∗2 = x∗3 = λ∗ = 1. Omdat ∇2xx L(x∗ , λ∗ ) = I is nu niet aan de negatief semi-definiet eigenschap voldaan (dit probleem heeft een oneindige oplossing: neem bijvoorbeeld x2 = 0, x3 = 3 − x1 en laat x1 → ∞).
Voldoende voorwaarden bij gelijkheidsbeperkingen Stelling 3.12 geeft noodzakelijke voorwaarden voor een lokaal optimum voor probleem (3.18). Het volgende voorbeeld laat zien dat de voorwaarden niet voldoende zijn. Voorbeeld 3.13 Beschouw het optimaliseringsprobleem max{x31 | − 1 ≤ x1 ≤ 1}. Dit probleem heeft een randminimum en een randmaximum in x1 = −1 resp. x1 = 1. Het probleem is equivalent met het volgende probleem waarin de beperkingen als gelijkheden staan: max{x31 | x1 + x22 = 1; −x1 + x23 = 1}. De eerste-orde relaties geven: 18
Lagrange (1736-1813) was de eerste die een optimaliseringsprobleem met een gelijkheidsbeperking oploste
door de beperking met een multiplier over te brengen naar de doelfunctie en het probleem daarna als onbeperkt optimaliseringsprobleem op te lossen.
3.3. BEPERKTE OPTIMALISERING: THEORIE 3(x∗1 )2 −
λ∗1 +
λ∗2 = 0;
−2λ∗1 x∗2
103
x∗1 + (x∗2 )2 = 1;
= 0; −x∗1 + (x∗3 )2 = 1; 2λ∗2 x∗3 = 0.
Een oplossing hiervan is x∗1 = 0, x∗2 = x∗3 = 1; λ∗1 = λ∗2 = 0. De tweede-orde voorwaarde geeft 6x1 0 0 ∗ ∗ 2 aan dat de Hessiaan in (x , λ ) negatief semidefiniet moet zijn. ∇xx L(x, λ) = 0 −2λ1 0 0 0 2λ2 0 0 0 2 ∗ ∗ zodat ∇xx L(x , λ ) = 0 0 0 inderdaad negatief semi-definiet is.
,
0 0 0 We geven in Stelling 3.13 voldoende voorwaarden voor een lokaal maximum. Voor het bewijs van Stelling 3.13 hebben we echter het volgende lemma nodig, dat we eerst zullen behandelen. Lemma 3.2 Zij P en Q twee symmetrische matrices met Q negatief semi-definiet en P zdd. xT P x < 0 voor alle x 6= 0 met xT Qx = 0. Dan is er een constante c∗ zdd. P + c Q negatief definiet is voor alle c ≥ c∗ . Bewijs Veronderstel het tegendeel. Dan bestaat er voor iedere k ∈ N een vector xk met kxk k = 1 zdd. (xk )T {P + kQ}xk ≥ 0
(3.28)
∗ Neem een convergente deelrij van {xk }∞ k=1 die convergeert naar een x (zo’n deelrij bestaat want
alle xk zitten in de compacte verz. {x | kxk = 1}). Noem deze deelrij voor het gemak weer {xk }∞ k=1 . Neem de limiet voor k → ∞, dan volgt uit (3.28) dat (x∗ )T P x∗ + liminfk→∞ k{(xk )T Qxk } ≥ 0
(3.29)
Omdat Q negatief semi-definiet is, is (xk )T Qxk ≤ 0 voor alle k, zodat limk→∞ (xk )T Qxk = 0, want anders zou de linkerkant van (3.29) naar −∞ gaan. Er geldt dus (x∗ )T Qx∗ = 0 en volgens de hypothese in het lemma is (x∗ )T P x∗ < 0. Maar dit is in strijd met (3.29). Stelling 3.13 Veronderstel dat de functies f en hi , 1 ≤ i ≤ m, tweemaal continu differentieerbaar zijn. Laat x∗ toelaatbaar zijn voor (3.18) en laat (x∗ , λ∗ ) voldoen aan ∇f (x∗ ) −
m X
λ∗i ∇hi (x∗ ) = 0
(3.30)
i=1
en y T ∇2xx L(x∗ , λ∗ )y < 0 voor alle y ∈ V (x∗ )\{0} Dan is x∗ een lokaal maximum van (3.18).
(3.31)
104
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Bewijs Beschouw het volgende probleem dat equivalent is met (3.18) omdat toelaatbare oplossingen voldoen aan h(x) = 0: ¯ n o c ¯ max f (x) − kh(x)k2 ¯ hi (x) = 0, i = 1, 2, . . . , m , 2
(3.32)
waarbij c een scalair is. De Lagrange functie van dit probleem is m
X c Lc (x, λ) = f (x) − kh(x)k2 − λi hi (x). 2 i=1
Voor de gradi¨ent en Hessiaan van Lc (x, λ) m.b.t. x geldt ∇x Lc (x, λ) = ∇f (x) − {∇h(x)}T {c · h(x) + λ} en ∇2xx Lc (x, λ) = ∇2 f (x) −
m X
{c · hi (x) + λi }∇2 hi (x) − c · ∇h(x){∇h(x)}T .
i=1
Voor de
x∗
en
λ∗
uit Stelling 3.13 geldt
∇x Lc (x∗ , λ∗ ) = ∇f (x∗ ) − {∇h(x∗ )}T {c · h(x∗ ) + λ∗ } = ∇f (x∗ ) − {∇h(x∗ )}T λ∗ = ∇x L(x∗ , λ∗ ) = 0 en ∇2xx Lc (x∗ , λ∗ ) = ∇2 f (x∗ ) −
Pm
i=1
λ∗i ∇2 hi (x∗ ) − c · ∇h(x∗ ){∇h(x∗ )}T
= ∇2xx L(x∗ , λ∗ ) − c · ∇h(x∗ ){∇h(x∗ )}T . Pas vervolgens Lemma 3.2 toe met P = ∇2xx L(x∗ , λ∗ ) en Q = −∇h(x∗ ){∇h(x∗ )}T . Dit leidt tot de conclusie dat er een c∗ is zdd. P + c Q = ∇2xx Lc (x∗ , λ∗ ) negatief definiet is voor c ≥ c∗ . Voor de functie Lc (x, λ) geldt dat deze tweemaal continu differentieerbaar is, dat ∇x Lc (x∗ , λ∗ ) = 0 en dat ∇2xx Lc (x∗ , λ∗ ) negatief definiet is voor c ≥ c∗ . Dan is volgens Stelling 3.2 (x∗ , λ∗ ) een lokaal maximum van Lc (x, λ) voor c ≥ c∗ , m.a.w. voor c ≥ c∗ geldt Lc (x∗ , λ∗ ) ≥ Lc (x, λ) voor alle x met kx − x∗ k ≤ ε voor zekere ε > 0. Voor alle x met h(x) = 0 geldt Lc (x, λ) = f (x). Voor x∗ is verondersteld dat h(x∗ ) = 0. Hieruit volgt dat f (x∗ ) ≥ f (x) voor alle x met h(x) = 0 en kx − x∗ k ≤ ε voor zekere ε > 0. Hiermee is Stelling 3.13 bewezen. Voorbeeld 3.14 Maximale oppervlakte van een parallellepipedum Beschouw het probleem om de (halve) oppervlakte van een parallellepipedum te maximaliseren als de som van de lengte, breedte en hoogte gegeven is (in dit voorbeeld is deze som 3), d.w.z. max{x1 x2 + x2 x3 + x1 x3 | x1 + x2 + x3 = 3}. Voorwaarde (3.30) geeft x∗2 + x∗3 = λ∗ ; x∗1 + x∗3 = λ∗ ; x∗1 + x∗2 = λ∗ ; x∗1 + x∗2 + x∗3 = 3.
3.3. BEPERKTE OPTIMALISERING: THEORIE
105
Dit stelsel heeft als unieke oplossing x∗1 = x∗2 = x∗3 = 1; λ∗ = 2. Voor de Hessiaan van de Lagrange functie geldt
0 1 1
= E − I, ∇2xx L(x∗ , λ∗ ) = 1 0 1 1 1 0 met E de matrix met alle elementen gelijk aan 1. Omdat ∇x h(x∗ ) = (1, 1, 1)T , is V (x∗ ) = {y | y1 + y2 + y3 = 0}. Voor y ∈ V (x∗ ) is Ey = 0, zodat ook aan voorwaarde (3.31) is voldaan, immers: y T ∇2xx L(x∗ , λ∗ )y = y T {E − I}y = y T Ey − y T y = −y T y < 0 voor y 6= 0. De oplossing x∗1 = x∗2 = x∗3 = 1 geeft dus een lokaal maximum.
Voorbeeld 3.15 Portfolio analyse en effici¨ent frontier Beschouw het portfolio optimaliseringsprobleem (3.8) uit paragraaf 3.1.2, maar zonder de voorwaarden xi ≥ 0, 1 ≤ i ≤ n. Een negatieve xi betekent dat we i.p.v. een hoeveelheid van aandeel i te kopen een hoeveelheid verkopen, d.w.z. in financi¨ele termen dat we short gaan. Dit geeft het volgende (equivalente) probleem: n X n 1X max − vij xi xj 2 i=1 j=1
¯ P n ¯ r x = R ¯ i=1 i i ¯ Pn ¯ i=1 xi = 1
(3.33)
We nemen aan dat de covariantiematrix V , die altijd positief semi-definiet is, positief definiet is, zodat V inverteerbaar is. De gradi¨ent van de doelfunctie is −V x en van de beperkingen r = (r1 , r2 , . . . , rn )T resp. e = (1, 1, . . . , 1)T . De voorwaarde van regulariteit komt overeen met de eigenschap dat niet alle ri ’s aan elkaar gelijk zijn. De voorwaarde (3.19) uit Stelling 3.12 luidt −V x∗ − λ∗1 r − λ∗2 e = 0, d.w.z. x∗ = −V −1 {λ∗1 r + λ∗2 e}
(3.34)
Verder volgt uit de toelaatbaarheid dat moet gelden rT x∗ = R en eT x∗ = 1,
(3.35)
wat de volgende twee vergelijkingen met twee onbekenden geeft. λ∗1 rT V −1 r + λ∗2 rT V −1 e = −R; λ∗ eT V −1 r + λ∗ eT V −1 e = −1. 1 2 ¡ ∗¢ ¡ ¢ ¡a b¢ Laat a = rT V −1 r, b = rT V −1 e, c = eT V −1 e, λ∗ = λλ1∗ , B = −R −1 en H = b c . 2
Dan is het stelsel in matrix notatie Hλ∗ = B
(3.36)
106
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
De matrix H heeft inverse H −1 =
¡
¢ , waarbij d = ac − b2 6= 0, immers:
c −b 1 d −b a
Omdat V positief definiet is, is V −1 dat ook, waaruit volgt dat a en c positief zijn. Verder geldt 0 < (br − ae)T V −1 (br − ae) = b2 rT V −1 r − 2abrT V −1 e + a2 eT V −1 e = ab2 − 2ab2 + a2 c = a(ac − b2 ). Omdat a > 0 volgt hieruit dat d = ac − b2 > 0. Het stelsel heeft dus een unieke oplossing ∗
λ =H
−1
µ ¶ 1 b − cR B= d bR − a
(3.37)
Aangezien ∇2xx L(x, λ) = −V negatief definiet is en (x∗ , λ∗ ) uniek bepaald is, is (x∗ , λ∗ ) gegeven door (3.34) en (3.37) het enige lokale maximum. Met A = (r e) geldt volgens (3.35) dat AT x∗ =
−V
−1
∗
Aλ = −V
−1
¡rT x∗ ¢ eT x ∗
= −B. Verder is
µ ∗¶ λ 1 (r e) 1∗ = −V −1 (λ∗1 r + λ∗2 e) = x∗ = V −1 {(a − bR)e + (cR − b)r}. d λ2
Voor het risico σ(x∗ ) = (x∗ )T V x∗ geldt: (x∗ )T V x∗ = −(x∗ )T V V −1 Aλ∗ = −(x∗ )T V V −1 AH −1 B ¡ = −(AT x∗ )T H −1 B = B T H −1 B = d1 (R 1) −bc =
1 2 d {cR
¢¡R¢
−b a
1
− 2bR + a},
zodat c · σ 2 (x∗ ) =
ª 1© ª 1© 1 2 2 {c R − 2bcR + ac} = (cR − b)2 + ac − b2 = (cR − b)2 + d , d d d
ofwel ¡ ¢2 R − cb σ 2 (x∗ ) − =1 1/c d/c2
(3.38)
Aangezien c, d > 0 is (3.38) in het (σ, R)-vlak een hyperbool. Omdat σ(x∗ ) > 0 beschouwen we alleen de rechterhelft van de parabool. Voor iedere waarde van σ zijn er twee waarden van R op de parabool. We zijn alleen ge¨ınteresseerd in de hoogste waarde van de verwachte opbrengst R. Dit deel van de hyperbool heet de effici¨ent frontier √ minimaal 1/ c voor R = b/c. 19
19
en is hieronder getekend. Het risico is
Voor meer informatie over dit onderwerp en een voorbeeld van de efficient frontier voor 30 aandelen van de
Dow Industrials zie: www-fp.mcs.anl.gov/otc/Guide/CaseStudies/port/
3.3. BEPERKTE OPTIMALISERING: THEORIE
107
R
q
b/c r
q√ 1/ c
σ
Getallenvoorbeeld Laat n = 3, r1 = 1, r2 = 2, r3 = 3, v11 = v22 = v33 = 1 (de overige vij ’s zijn 0) en R = 32 . Omdat V = I = V −1 , is a = rT r = 14, b = rT e = 6, c = eT e = 3, d = ac − b2 = 6. Hieruit volgt voor de portefeuille met minimaal risico x∗ = 16 {(14 − 9)e + ( 92 − 6)r}, d.w.z. ¡ 7 ¢2 ¡ 4 ¢2 ¡ 1 ¢2 11 7 4 1 + 12 + 12 = 24 . x∗1 = 12 , x∗2 = 12 , x∗3 = 12 . Het bijbehorende risico σ 2 (x∗ ) = 12 Voorbeeld 3.16 Rekenkundig gemiddelden We zullen aantonen dat het gewone rekenkundig gemiddelde niet groter is dan het kwadratisch rekenkundig gemiddelde: ¾1/2 x21 + x22 · · · + x2n voor alle x1 , x2 , . . . , xn ∈ R. n ¯ © ª Beschouw het optimaliseringsprobleem max z1 + z2 + · · · + zn ¯ z12 + z22 + · · · + zn2 = 1 . x1 + x2 · · · + xn ≤ n
½
De gradi¨ent van de doelfunctie is (1, 1, . . . , 1)T en de gradi¨ent van de beperking is (2z1 , 2z2 , . . . , 2zn )T , zodat de noodzakelijke voorwaarde uit Stelling 3.12 geeft dat de optimale oplossing moet voldoen aan 1 = λ∗ (2zi∗ ), 1 ≤ i ≤ n, zodat z1∗ = z2∗ = · · · = zn∗ = z∗
√1 , n
waaruit volgt
(3.39)
P √ n = ni=1 zi∗ =
∇2xx L(z ∗ , λ∗ )
−2λ∗ I
n 2λ∗
dus λ∗ =
1√ 2 n
> 0. √ = − n · I is negatief definiet.
= is inderdaad een maximum, want ¡ 2 ¢ −1/2 Neem zi = x1 + x22 + · · · + x2n xi , 1 ≤ i ≤ n. Dan is zi2 =
x2i , x21 +x22 +···+x2n
1 ≤ i ≤ n, zodat
z12 + z22 + · · · + zn2 = 1. Uit het bovenstaande optimaliseringsprobleem volgt ¡ ¢−1/2 √ z1 + z2 + · · · + zn = x21 + x22 + · · · + x2n {x1 + x2 + · · · + xn } ≤ n,
108
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
d.w.z. x1 + x2 + · · · + xn ≤
¢1/2 √ ¡ 2 n x1 + x22 + · · · + x2n , waaruit volgt dat
x1 + x2 · · · + xn ≤ n
½
x21 + x22 · · · + x2n n
¾1/2 .
Vraag 3.10 Beschouw een aandelenportefeuille met 3 aandelen. Veronderstel dat r1 = 3, r2 = 4, r3 = 5; v11 = 1, v12 = v21 = v13 = v31 = 0, v22 = 2, v23 = v32 = 1, v33 = 3 en R = 4. Bepaal voor deze portefeuille de optimale verdeling.
3.3.3
Karush-Kuhn-Tucker voorwaarden bij gelijkheden en ongelijkheden
Beschouw vervolgens een maximaliseringsprobleem met gelijkheden en ongelijkheden: ¯ ) ( ¯ h (x) = 0, i = 1, 2, . . . , m ¯ i max f (x) ¯ , ¯ gj (x) ≤ 0, j = 1, 2, . . . , p
(3.40)
waarbij we aannemen dat de functies f , hi (1 ≤ i ≤ m) en gj (1 ≤ i ≤ p) tenminste eenmaal continu differentieerbaar zijn. We geven in deze paragraaf noodzakelijke en voldoende voorwaarden voor het bestaan van lokale optima. 20 We geven eerst een benadering waarbij we teruggrijpen op de resultaten uit de vorige paragraaf. Laat voor ieder toelaatbaar punt x de verz. J(x) de verz. van de actieve ongelijkheden zijn: J(x) = {j | gj (x) = 0}. Merk op dat als x∗ een lokaal maximum van (3.40) is, x∗ ook een lokaal maximum is van probleem (3.40) zonder de inactieve beperkingen. Bovendien kunnen in dit probleem zonder de inactieve ongelijkheden de actieve ongelijkheden als gelijkheden worden beschouwd, waarmee het een probleem uit de vorige paragraaf is geworden. De eerste orde voorwaarden voor een lokaal maximum in x∗ geven dat er Lagrange multiplicatoren λ∗i , 1 ≤ i ≤ m, en µ∗j , j ∈ J(x∗ ), zijn zdd. ∗
∇f (x ) −
m X
λ∗i ∇hi (x∗ ) −
i=1
X
µ∗j ∇gj (x∗ ) = 0.
j∈J(x∗ )
Door µ∗j = 0, j ∈ / J(x∗ ) te nemen krijgen we ∇f (x∗ ) −
m X i=1
20
λ∗i ∇hi (x∗ ) −
p X
µ∗j ∇gj (x∗ ) = 0; µ∗j = 0, j ∈ / J(x∗ )
(3.41)
j=1
Deze Karush-Kuhn-Tucker voorwaarden zijn lange tijd toegeschreven aan Kuhn en Tucker, die hierover in 1951
een artikel publiceerden: H.W. Kuhn and A.W. Tucker: Nonlinear programming, in: J. Neyman (ed.), Proceedings of the Second Berkely Symposium on Mathematical Statistics and Probability, University of California Press (1951) 481–492. Later ontdekte men dat deze resultaten al in 1939 waren verschenen in het proefschrift van Karush (W. Karush: Minima of functions of several variables with inequalities as side conditions, Thesis, University of Chicago, 1939). Vandaar dat deze resultaten tegenwoordig bekend staan als de Karush-Kuhn-Tucker voorwaarden.
3.3. BEPERKTE OPTIMALISERING: THEORIE
109
Een probleem met (3.41) is dat we niet weten welke µ∗j ’s we 0 moeten nemen zolang x∗ niet bekend is. Bovendien kan worden bewezen dat de µ∗j ’s ook niet-negatief moeten zijn. Dit bewijs zullen we in Stelling 3.14 geven. We zeggen dat de beperkingen van (3.40) regulier in het punt x zijn als de gradi¨enten ∇hi (x), 1 ≤ i ≤ m, en ∇gj (x), j ∈ J(x), een stelsel lineair onafhankelijke vectoren vormen. De Lagrange functie bij dit probleem is L(x, λ, µ) = f (x) −
m X
λi hi (x) −
i=1
p X
µj gj (x)
(3.42)
j=1
Karush-Kuhn-Tucker noodzakelijke voorwaarden Stelling 3.14 Zij x∗ een lokaal maximum van (3.40) en veronderstel dat de beperkingen in x∗ regulier zijn. Dan bestaan er Lagrange multiplicatoren λ∗ en µ∗ ≥ 0 zdd. ∇x L(x∗ , λ∗ , µ∗ ) = ∇f (x∗ ) −
m X
λ∗i ∇hi (x∗ ) −
i=1
p X
µ∗j ∇gj (x∗ ) = 0; µ∗j = 0, j ∈ / J(x∗ )
(3.43)
j=1
Als f, hi , (1 ≤ i ≤ m), gj (1 ≤ j ≤ p) tweemaal continu differentieerbaar zijn, dan geldt dat y T ∇2xx L(x∗ , λ∗ , µ∗ )y ≤ 0 voor alle y met {∇hi (x∗ )}T y = 0, 1 ≤ i ≤ m, en {∇gj (x∗ )}T y = 0, j ∈ J(x∗ ) (3.44) Bewijs Uit het voorgaande volgt dat voor het bepalen van een lokaal maximum x∗ probleem (3.40) equivalent is met
¯ ) ¯ h (x) = 0, i = 1, 2, . . . , m ¯ i max f (x) ¯ ¯ gj (x) = 0, j ∈ J(x∗ ) (
(3.45)
Uit (3.45) en Stelling 3.12 volgen alle eigenschappen van de stelling, behalve de niet-negativiteit van µ. Deze niet-negativiteit kan worden aangetoond door het bewijs van Stelling 3.12 iets aan te passen. Voor k = 1, 2, . . . en α > 0 defini¨eren we daartoe p
1 X + 1 1 {gj (x)}2 − αkx − x∗ k2 , Fk (x) = f (x) − kkh(x)k2 − k 2 2 2
(3.46)
j=1
waarbij gj+ (x) := max{0, gj (x)}, 1 ≤ j ≤ p. We merken op dat de functie {gj+ (x)}2 continu differentieerbaar is met gradi¨ent 2gj+ (x)∇gj (x). Omdat x∗ een lokaal optimum is, is er een ε > 0 zdd. f (x∗ ) ≥ f (x) voor alle toelaatbare x in de compacte verz. S = {x | kx − x∗ k ≤ ε}. Laat xk een optimale oplossing zijn van het probleem max{Fk (x) | x ∈ S}
(3.47)
Merk weer op dat (3.47) een optimale oplossing heeft omdat Fk (x) continu is en S compact. Met dezelfde afleiding als in het bewijs van Stelling 3.12 kunnen we aantonen dat xk → x∗ , khi (xk ) → λ∗i (1 ≤ i ≤ m) en kgj+ (xk ) → µ∗j (1 ≤ j ≤ p). Omdat gj+ (xk ) ≥ 0, is ook µ∗j ≥ 0, 1 ≤ j ≤ p.
110
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Opmerking De voorwaarde dat µ∗j = 0 voor alle j ∈ / J(x∗ ) kan ook geschreven worden als µ∗j gj (x∗ ) = 0, 1 ≤ j ≤ p
(3.48)
De relaties (3.48) heten orthogonaliteitsrelaties of complementariteitsrelaties. Voorbeeld 3.17
¯ ½ ¾ ¯ 1 2 1 2 1 2 ¯ Beschouw het probleem max − 2 x1 − 2 x2 − 2 x3 ¯ x1 + x2 + x3 ≤ −3 . De Lagrange functie L(x, µ) = − 21 x21 − 12 x22 − 12 x23 − µ(x1 + x2 + x3 + 3). De eerste orde vergelijkingen zijn −x∗1 − µ∗ = 0; −x∗2 − µ∗ = 0; −x∗3 − µ∗ = 0, d.w.z. x∗1 = x∗2 = x∗3 = −µ∗ . Nu zijn er twee mogelijkheden: 1. x∗1 + x∗2 + x∗3 < −3: dan is µ∗ = 0, zodat x∗1 = x∗2 = x∗3 = 0: strijdig met x∗1 + x∗2 + x∗3 < −3. 2. x∗1 + x∗2 + x∗3 = −3: dan is x∗1 = x∗2 = x∗3 = −1 en µ∗ = 1. Merk bovendien op dat de beperking in alle punten van dit probleem regulier is, zodat x∗1 = x∗2 = x∗3 = −1 de enige kandidaat voor een lokaal maximum is. Wat betreft de tweede orde relaties merken we op dat ∇2xx L(x, µ) = −I voor alle (x, µ). Aan de tweede orde relaties is dus altijd voldaan en de voorwaarden zijn voldoende voor een lokaal maximum (bewijs volgt later). Tenslotte merken we op (dit bewijs volgt ook later) dat dit een concaaf optimaliseringsprobleem is waarvoor een lokaal optimum tevens een globaal optimum is.
Karush-Kuhn-Tucker voldoende voorwaarden Stelling 3.15 Veronderstel dat f, hi (1 ≤ i ≤ m) en gj (1 ≤ i ≤ p) tweemaal continu differentieerbaar zijn. Laat (x∗ , λ∗ , µ∗ ) voldoen aan hi (x∗ ) = 0, 1 ≤ i ≤ m; gj (x∗ ) ≤ 0, 1 ≤ j ≤ p; µ∗j ≥ 0, 1 ≤ j ≤ p; ∇f (x∗ ) −
m X i=1
λ∗i ∇hi (x∗ ) −
p X
µ∗j ∇gj (x∗ ) = 0; µ∗j gj (x∗ ) = 0, 1 ≤ j ≤ p;
(3.49) (3.50)
j=1
y T ∇2xx L(x∗ , λ∗ , µ∗ )y < 0 ∀y 6= 0 met {∇hi (x∗ )}T y = 0, 1 ≤ i ≤ m, en {∇gj (x∗ )}T y = 0, j ∈ J(x∗ ).
(3.51)
Dan is x∗ een lokaal maximum van (3.40). Bewijs We maken van (3.40) een equivalent probleem (in een hogere dimensie) met alleen gelijkheden en passen Stelling 3.13 toe. Een equivalent probleem met gelijkheden is ¯ ) ( ¯ h (x) = 0, i = 1, 2, . . . , m ¯ i max f (x) ¯ ¯ gj (x) + zj2 = 0, j = 1, 2, . . . , p
(3.52)
3.3. BEPERKTE OPTIMALISERING: THEORIE
111
Het is nu voldoende om te laten zien dat aan de voorwaarden (3.30) en (3.31) is voldaan als we deze voorwaarden opschrijven voor probleem (3.52). Met zj∗ = {−gj (x∗ )}1/2 voor 1 ≤ j ≤ p (zj∗ is goed gedefinieerd omdat gj (x∗ ) ≤ 0) wordt voor probleem (3.52) aan de toelaatbaarheid voldaan. De Lagrange functie van probleem (3.52) is L(x, z, λ, µ) = f (x) −
m X
λi hi (x) −
i=1
p X
µj {gj (x) + zj2 }.
j=1
We laten eerst zien dat ∇x L(x∗ , z ∗ , λ∗ , µ∗ ) = 0 en ∇z L(x∗ , z ∗ , λ∗ , µ∗ ) = 0. De eerste gelijkheid geldt omdat, vanwege (3.50), ∗
∗
∗
∗
∗
∇x L(x , z , λ , µ ) = ∇f (x ) −
m X i=1
Verder is ∇z L(x∗ , z ∗ , λ∗ , µ∗ ) =
Pp j=1
λ∗i ∇hi (x∗ )
−
p X
µ∗j ∇gj (x∗ ) = 0.
j=1
µ∗j {2zj∗ } · ej , met ej de j-de eenheidsvector, zodat
∇z L(x∗ , z ∗ , λ∗ , µ∗ ) = 0 overeenkomt met µ∗j zj∗ = 0 voor 1 ≤ j ≤ p, wat weer equivalent is met µ∗j gj (x∗ ) = 0 voor 1 ≤ j ≤ p. Omdat (3.50) geldt, is hier dus aan voldaan. Voorwaarde (3.31) is een voorwaarde voor alle y ∈ V (x∗ , z ∗ )\{0}, waarbij de dimensie van y gelijk is aan n + p, de ¡ ¢ dimensie van xz , en V (x∗ , z ∗ ) de deelruimte van de vectoren loodrecht op alle gradi¨enten in het ¡ ¢ punt (x∗ , z ∗ ). Laat y = wv , waarbij v bij de eerste n componenten hoort en w bij de laatste p. Dan geldt dat y ∈ V (x∗ , z ∗ ) als: µ ¶ ¡ ¢ v {∇hi (x∗ )}T , 0 = 0 wat overeenkomt met {∇hi (x∗ )}T v = 0, 1 ≤ i ≤ m , en w µ ¶ ¡ ¢ v ∗ T ∗ j T {∇gj (x )} , 2zj (e ) = 0 wat overeenkomt met {∇gj (x∗ )}T v + 2zj∗ wj = 0, 1 ≤ j ≤ p. w Voor j ∈ J(x∗ ) is gj (x∗ ) = 0, zodat zj∗ = 0, waaruit volgt dat {∇gj (x∗ )}T v = 0, j ∈ J(x∗ ). We moeten nu nog een eigenschap bewijzen voor y ∈ J(x∗ , z ∗ )\{0}. Voorwaarde (3.31) voor probleem (3.52) luidt: (v T , wT )
∇2xx L(x∗ , z ∗ , λ∗ , µ∗ ) ∇2xz L(x∗ , z ∗ , λ∗ , µ∗ )
µ ¶ v <0 ∇2zx L(x∗ , z ∗ , λ∗ , µ∗ ) ∇2zz L(x∗ , z ∗ , λ∗ , µ∗ ) w
(3.53)
Er geldt ∇2xx L(x∗ , z ∗ , λ∗ , µ∗ ) = ∇2xx L(x∗ , λ∗ , µ∗ ); ∇2zz L(x∗ , z ∗ , λ∗ , µ∗ ) = −2M ∗ , waarbij M ∗ een diagonaalmatrix is met µ∗j op de j-de plaats, en ∇2xz L(x∗ , z ∗ , λ∗ , µ∗ ) = ∇2zx L(x∗ , z ∗ , λ∗ , µ∗ ) = 0, zodat de voorwaarde (3.53) equivalent is met v T ∇2xx L(x∗ , λ∗ , µ∗ )v − 2wT M w = v T ∇2xx L(x∗ , λ∗ , µ∗ )v − 2
Pp j=1
µ∗j wj2 < 0.
Omdat aan de voorwaarde voor y van (3.51) is voldaan (met v in plaats van y) geldt dat P v T ∇2xx L(x∗ , λ∗ , µ∗ )v < 0, zodat ook v T ∇2xx L(x∗ , λ∗ , µ∗ )v − 2 pj=1 µ∗j wj2 < 0.
112
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Vraag 3.11
Beschouw het probleem max −(x1 − 3)2 − (x2 − 2)2
¯ ¯ 2 ≤ 5 ¯ x1 + x22 ¯ ¯ x1 + 2x2 . ≤ 4 ¯ ¯ ¯ x 1 , x2 ≥ 0
Toon aan dat x∗ = (2, 1) voldoet aan de KKT voldoende voorwaarden voor een lokaal maximum.
3.3.4
Fritz John voorwaarden
We geven in deze paragraaf resultaten van de KKT voorwaarden zonder de regulariteitseis. We beschouwen eerst het probleem met gelijkheden: ¯ n o ¯ max f (x) ¯ hi (x) = 0, i = 1, 2, . . . , m ,
(3.54)
met tenminste eenmaal continu differentieerbare functies f en hi (1 ≤ i ≤ m). We zullen bewijzen dat noodzakelijk voor x∗ om een lokaal maximum te zijn (regulier of niet) moet gelden dat er scalairen λ∗1 , λ∗2 , . . . , λ∗m , µ∗0 bestaan, niet allemaal gelijk aan 0, zdd. µ∗0 ≥ 0 en µ∗0 ∇f (x∗ ) −
m X
λ∗i ∇hi (x∗ ) = 0
(3.55)
i=1
Om deze bewering in te zien, beschouwen we de volgende twee mogelijkheden: (1) Als x∗ regulier is, dan geldt (3.19) en wordt aan (3.55) voldaan voor µ∗0 = 1. (2) Als x∗ niet regulier is, d.w.z. de gradi¨enten ∇hi (x∗ ), 1 ≤ i ≤ m zijn lineair afhankelijk: P ∗ ∗ er zijn scalairen λ∗1 , λ∗2 , . . . , λ∗m , niet allemaal gelijk aan 0 zdd. m i=1 λi ∇hi (x ) = 0. Nu is ook aan (3.55) voldaan voor µ∗0 = 0. Noodzakelijke voorwaarden met een niet-negatieve multiplier µ0 voor de doelfunctie heten Fritz John voorwaarden.21 Voor een algemeen probleem met gelijkheden en ongelijkheden (dus in de gedaante (3.40)) worden deze voorwaarden gegeven in de volgende stelling.
Stelling 3.16 Zij x∗ een lokaal maximum van (3.40). Dan bestaan er scalairen λ∗1 , λ∗2 , . . . , λ∗m en µ∗0 , µ∗1 , . . . , µ∗p , niet allemaal gelijk aan 0, zdd. P Pp ∗ ∗ ∗ ∗ (1) µ∗0 ∇f (x∗ ) − m i=1 λi ∇hi (x ) − j=1 µj ∇gj (x ) = 0. (2)
µ∗j ≥ 0, j = 0, 1, . . . , p.
(3)
In iedere omgeving N van x∗ is er een x ∈ N zdd. λ∗i hi (x) > 0 voor alle i met λ∗i 6= 0 en µ∗j gj (x) > 0 voor alle j met µ∗j 6= 0.
21
Deze voorwaarden werden in 1948 door Fritz John opgesteld: F. John, Extremum problems with inequalities
as subsidiary conditions, in: K.O. Friedrichs, O.E. Neubauer and J.J. Stoker (eds.) Studies and Assays, Courant Anniversary Volume (1948) 187–204.
3.3. BEPERKTE OPTIMALISERING: THEORIE
113
Bewijs We gebruiken voor het bewijs weer de penalty benadering met m
p
i=1
j=1
1 X 1 X + 1 Fk (x) = f (x) − k {hi (x)}2 − k {gj (x)}2 − kx − x∗ k2 2 2 2
(3.56)
Omdat x∗ een lokaal maximum is, is er een ε > 0 zdd. f (x∗ ) ≥ f (x) voor alle toelaatbare x in de compacte verz. S = {x | kx − x∗ k ≤ ε}. Laat xk een optimale oplossing van het probleem max{Fk (x) | x ∈ S}
(3.57)
Merk op dat (3.57) een optimale oplossing heeft omdat Fk (x) continu is en S compact. Net als in het bewijs van Stelling 3.12 kunnen we aantonen dat xk → x∗ , zodat voor k voldoende groot xk een inwendig punt is van S. Hieruit volgt dat ∇Fk (xk ) = 0, d.w.z. k
∇f (x ) −
m X
hki ∇hi (xk )
−
p X
gjk ∇gj (xk ) − (xk − x∗ ) = 0,
(3.58)
j=1
i=1
met hki = khi (xk ) (1 ≤ i ≤ m) en gjk = kgj+ (xk ) (1 ≤ j ≤ p), en waarbij we hebben gebruikt dat de gradi¨ent van {gj+ (x)}2 gelijk is aan 2gj+ (x)∇gj (x). Laat v u p m X X u k 2 t (hi ) + (gjk )2 dk = 1 + i=1
(3.59)
j=1
en µk0 =
gjk hk 1 , λki = i , 1 ≤ i ≤ m, µkj = , 1 ≤ j ≤ p dk dk dk
(3.60)
Als we (3.58) door dk delen krijgen we µk0 ∇f (xk ) −
m X
λki ∇hi (xk ) −
i=1
p X
µkj ∇gj (xk ) − µk0 (xk − x∗ ) = 0
(3.61)
j=1
Omdat (µk0 )2 +
p m X X (λki )2 + (µkj )2 = 1, i=1
(3.62)
j=1
is de rij {µk0 , λk1 , λk2 , . . . , λkm , µk1 , µ∗2 , . . . , µkp } begrensd en heeft dus een convergente deelrij met limiet, zeg limiet {µ∗0 , λ∗1 , λ∗2 , . . . , λ∗m , µ∗1 , µ∗2 , . . . , µ∗p }. De gelijkheid (3.61) geeft dat deze limiet eigenschap (1) oplevert. Verder is direct in te zien dat µ∗0 , µ∗1 , . . . , µ∗p ≥ 0, en uit (3.62) volgt dat niet alle multiplicatoren 0 zijn. Om (3) aan te tonen defini¨eren we I := {i | λ∗i 6= 0}, en J := {j 6= 0 | µ∗j 6= 0}. Voor k voldoende groot geldt dat λ∗i λki > 0, i ∈ I en µ∗j µkj > 0, j ∈ J. Voor deze k’s geldt: λ∗i hi (xk ) = λ∗i
hki k
= λ∗i λki dkk > 0, i ∈ I en µ∗j gj+ (xk ) = µ∗j
gjk k
= µ∗j µkj dkk > 0, j ∈ J.
Uit de laatste relatie volgt dat gj+ (xk ) > 0, m.a.w. gj+ (xk ) = gj (xk ) > 0, waaruit volgt dat µ∗j gj (xk ) > 0, j ∈ J. Omdat iedere omgeving N een punt xk bevat voor k voldoende groot, geldt ook (3).
114
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Opmerkingen 1. In Voorbeeld 3.11 konden we geen nodige voorwaarden voor een lokaal maximum opstellen m.b.v. Stelling 3.12 omdat x∗ geen regulier punt was. M.b.v. Stelling 3.16 kan dit wel. ¡¢ We krijgen met voorwaarde (1) uit Stelling 3.16 voor het enige toelaatbare punt x∗ = 00 het stelsel µ∗0
µ ¶ µ ¶ µ ¶ µ ¶ −1 0 ∗ −2 ∗ −4 − λ1 − λ2 = . −1 0 0 0
Dit stelsel heeft wel een oplossing, bijvoorbeeld µ∗0 = 0; λ∗1 = 2, λ∗2 = −1. 2. Voorwaarde (3) is anders dan de voorwaarden die we tot nu toe hebben gezien. Het zegt het volgende: willekeurig dicht bij x∗ is een punt x zdd. aan geen van de beperkingen met een niet-nul multiplier in x wordt voldaan; bovendien heeft de waarde van een gelijkheid waaraan in x niet is voldaan dan hetzelfde teken als de multiplier. Dit houdt in dat µ∗j = 0, j ∈ / J(x∗ ), immers: als j ∈ / J(x∗ ), dan gj (xk ) < 0 voor k voldoende groot, zodat µkj = 0. Voorwaarde (3) is dus sterker dan de complementariteitseis µ∗j gj (x∗ ) = 0 voor alle j, en beperkt dus sterker het aantal kandidaten voor een lokaal maximum. 3. Als x∗ regulier is, dan zijn er dus geen scalairen λ∗1 , λ∗2 , . . . , λ∗m en µ∗1 , µ∗2 , . . . , µ∗p , niet allemaal Pp P ∗ ∗ ∗ ∗ gelijk aan 0, zdd. m i=1 λi ∇hi (x ) + j=1 µj ∇gj (x ) = 0, d.w.z. er is geen oplossing van (1) uit Stelling 3.16 met µ∗0 = 0. Bij zo’n oplossing kunnen we door µ∗0 delen en krijgen we een oplossing van (3.43). In dat geval krijgen we het volgende resultaat. Stelling 3.17 Zij x∗ een lokaal maximum van (3.40) en veronderstel dat x∗ een regulier punt is. Dan bestaat er een scalairen λ∗1 , λ∗2 , . . . , λ∗m en µ∗1 , µ∗2 , . . . , µ∗p zdd. Pp P ∗ ∗ ∗ ∗ (1) ∇f (x∗ ) − m i=1 λi ∇hi (x ) − j=1 µj ∇gj (x ) = 0. (2)
µ∗j ≥ 0, j = 1, 2, . . . , p.
(3)
In iedere omgeving N van x∗ is er een x ∈ N zdd. λ∗i hi (x) > 0 voor alle i met λ∗i 6= 0 en µ∗j gj (x) > 0 voor alle j met µ∗j 6= 0.
De volgende stelling laat zien dat als de functies hi (x) lineair en de functies gj (x) concaaf zijn, dan geldt Stelling 3.17 ook als x∗ geen regulier punt is. Stelling 3.18 Veronderstel dat de functies hi (x) lineair en de functies gj (x) concaaf zijn, en laat x∗ een lokaal maximum van (3.40) zijn. Dan bestaan er scalairen λ∗1 , λ∗2 , . . . , λ∗m en µ∗1 , µ∗2 , . . . , µ∗p , niet allemaal gelijk aan 0, zdd. P Pp ∗ ∗ ∗ ∗ (1) ∇f (x∗ ) − m i=1 λi ∇hi (x ) − j=1 µj ∇gj (x ) = 0. (2)
µ∗j ≥ 0, j = 1, 2, . . . , p.
(3)
In iedere omgeving N van x∗ is er een x ∈ N zdd. λ∗i hi (x) > 0 voor alle i met λ∗i 6= 0 en µ∗j gj (x) > 0 voor alle j met µ∗j 6= 0.
3.3. BEPERKTE OPTIMALISERING: THEORIE
115
Bewijs Veronderstel dat x∗ een lokaal maximum is en neem de scalairen λ∗1 , λ∗2 , . . . , λ∗m en µ∗0 , µ∗1 , . . . , µ∗p , niet allemaal 0, uit Stelling 3.16. Als µ∗0 6= 0, dan kunnen we door µ∗0 delen en krijgen we Stelling 3.17. Veronderstel dus dat µ∗0 = 0. We moeten nu tot een tegenspraak zien te komen. Uit de lineariteit en de concaviteit volgt dat voor iedere x en alle i en j geldt: hi (x) = hi (x∗ ) + {∇hi (x∗ )}T (x − x∗ ) en gj (x) ≤ gj (x∗ ) + {∇gj (x∗ )}T (x − x∗ ). Als we de eerste vergelijkingen met λ∗i en de tweede met µ∗j vermenigvuldigen en alles optellen, dan krijgen we Pp Pm Pp Pm ∗ ∗ ∗ ∗ ∗ ∗ i=1 λi hi (x ) + i=1 λi hi (x) + j=1 µj gj (x ) + j=1 µj gj (x) ≤ nP oT Pp m ∗ ∇h (x∗ ) + ∗ ∇g (x∗ ) λ µ (x − x∗ ) = 0, i j i=1 i j=1 j want de eerste term is 0 vanwege hi (x∗ ) = 0 voor alle i, de tweede vanwege de complementariteitsrelaties (zie opmerking 2 na het bewijs van Stelling 3.16) en de laatste term volgens (1) van Stelling 3.16 met µ∗0 = 0. Anderzijds: niet alle multiplicatoren zijn 0, zodat er volgens (3) van Stelling 3.16 een x is met λ∗i hi (x) > 0 voor alle i met λ∗i 6= 0, en µ∗j gj (x) > 0 voor alle j met µ∗j 6= 0. Voor zo’n x geldt dus Pp Pm ∗ ∗ i=1 λi hi (x) + j=1 µj gj (x) > 0, wat een tegenspraak oplevert. Vraag 3.12
¯ ) ¯ (x − 1)3 + x = 0 1 2 ¯ Beschouw het probleem max x1 ¯ . ¯ (x1 − 1)3 − x2 = 0 (
a. Toon aan dat x∗ = (1, 0) de enige toelaatbare oplossing is en dat dit geen regulier punt is. b. Laat zien dat er geen λ∗ is zdd. aan (3.19) wordt voldaan. c. Laat zien dat er wel een λ∗ is zdd. aan (3.55) wordt voldaan voor zekere µ∗0 .
3.3.5
Convexe optimalisering en dualiteit
Beschouw vervolgens een convex optimaliseringsprobleem zoals gedefinieerd in (3.3), d.w.z. max {f (x) | gj (x) ≤ 0, j = 1, 2, . . . , p},
(3.63)
waarbij f concaaf is en gj convex voor alle j. Het toegelaten gebied van (3.63) is convex, immers: Laten x1 en x2 toelaatbaar zijn en neem λ ∈ [0, 1]. Dan geldt voor x = λx1 + (1 − λ)x2 : gj (x) = gj {λx1 + (1 − λ)x2 } ≤ λgj (x1 ) + (1 − λ)gj (x2 ) ≤ 0, 1 ≤ j ≤ p. Convexiteit is van belang vanwege de volgende bijzondere eigenschappen: 1. In een convex optimaliseringsprobleem is een lokaal maximum tevens een globaal maximum (zie Stelling 3.19). 2. Voor een convex optimaliseringsprobleem zijn de noodzakelijke KKT-voorwaarden, zelfs zonder de regulariteit, ook voldoende voor optimaliteit (zie Stelling 3.20). 3. De eigenschap ’sterke’ dualiteit geldt (zie Stelling 3.21).
116
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Stelling 3.19 Indien x∗ een lokaal maximum is van max{f (x) | x ∈ R} met f (x) een concave functie en R een convexe verzameling, dan is x∗ een globaal maximum. Bovendien is de verz. van alle globale maxima convex. Bewijs Laat x∗ een lokaal maximum op R zijn en veronderstel dat er een x ∈ R is met f (x) > f (x∗ ). Uit Stelling 3.4 (2) volgt dat ∇f (x∗ )T (x − x∗ ) ≥ f (x) − f (x∗ ) > 0. De richtingsafgeleide in x∗ in de richting s = x − x∗ is dus positief, d.w.z. dat als we in x∗ in de richting s = x − x∗ gaan de functiewaarde stijgt. Alle punten tussen x∗ en x liggen ook in R, wat in strijd is met de eigenschap dat x∗ een lokaal maximum op R is. Laten x0 en x1 twee globale maxima zijn, dus f (x0 ) = f (x1 ). Dan geldt voor λ ∈ [0, 1]: f {λx0 + (1 − λ)x1 } ≥ λf (x0 ) + (1 − λ)f (x1 ) = f (x0 ), d.w.z. dat de verz. van globale maxima convex is. De volgende stelling toont aan dat de noodzakelijke KKT-voorwaarden ook voldoende zijn en dat een lokaal maximum tevens een globaal maximum is. Stelling 3.20 Indien x∗ toelaatbaar is voor (3.63) en aan de KKT-voorwaarden (3.43) is voldaan (zonder regulariteit), dan is x∗ een globaal maximum. Bewijs Zij x een willekeurig toelaatbaar punt. Omdat het toelaatbaar gebied convex is, is s = x − x∗ een toegelaten richting in x∗ . Voor j ∈ J(x∗ ) en λ ∈ [0, 1] geldt gj (x∗ +λs)−gj (x∗ ) = gj (x∗ +λs) ≤ 0, zodat we kunnen schrijven {∇gj (x∗ )}T s = limλ↓0 en de eigenschap dat
µ∗j
= 0 als j ∈ /
gj (x∗ +λs)−gj (x∗ ) λ
J(x∗ )
{∇f (x∗ )}T (x − x∗ ) = {∇f (x∗ )}T s =
volgt Pp j=1
µ∗j {∇gj (x∗ )}T s =
≤ 0. Uit de KKT-voorwaarden P j∈J(x∗ )
µ∗j {∇gj (x∗ )}T s ≤ 0.
Omdat f concaaf is, geldt f (x) − f (x∗ ) = f {x∗ + (x − x∗ )} − f (x∗ ) ≤ {∇f (x∗ )}T (x − x∗ ) ≤ 0, d.w.z. f (x∗ ) ≥ f (x) voor iedere toelaatbare x. Merk op dat voor iedere µ ≥ 0 de Lagrange functie L(x, µ) = f (x) −
Pp j=1
µj gj (x) een concave
functie in x is. Het duale probleem van (3.63) wordt gedefinieerd als minµ≥0 maxx L(x, µ)
(3.64)
Voor iedere µ ≥ 0 is het punt x een globaal maximum van L(x, µ) d.e.s.d. als ∇x L(x, µ) = 0 (zie P Gevolg 3.1), d.w.z. als ∇f (x) = pj=1 µj ∇gj (x). Het duale probleem is dus te schrijven als: ¯ ¯ p p X X ¯ µj ∇gj (x); µj ≥ 0, 1 ≤ j ≤ p min f (x) − µj gj (x) ¯¯ ∇f (x) = ¯ j=1
j=1
Merk op dat dit duale probleem voor een vaste x een LP-probleem in µ is.
(3.65)
3.3. BEPERKTE OPTIMALISERING: THEORIE
117
Stelling 3.21 Voor het convexe optimaliseringsprobleem (3.63) en het duale probleem (3.65) gelden de volgende twee eigenschappen: (1) Zwakke dualiteit: Als x1 en (x2 , µ2 ) toelaatbaar zijn voor (3.63) resp. (3.65), dan geldt f (x1 ) ≤ f (x2 ) −
p X
µ2j gj (x2 ).
j=1
(2) Sterke dualiteit: Als x1 optimaal is voor (3.63), dan is er een µ1 ≥ 0 zdd. (x1 , µ1 ) optimaal is voor (3.65) en beide optima zijn gelijk: f (x1 ) = f (x1 ) −
p X
µ1j gj (x1 ), d.w.z. µ1j gj (x1 ) = 0, j = 1, 2, . . . , p.
j=1
Bewijs (1) Omdat f concaaf is en gj (x) convex voor alle j, geldt: P f (x1 ) − f (x2 ) ≤ {∇f (x2 )}T (x1 − x2 ) = pj=1 µ2j {∇gj (x2 )}T (x1 − x2 ) Pp 2 1 2 ≤ j=1 µj {gj (x ) − gj (x )}. Omdat µ2j ≥ 0 en gj (x1 ) ≤ 0 voor alle j, geldt f (x1 ) − f (x2 ) ≤ −
Pp
2 2 j=1 µj gj (x ).
(2) Omdat x1 optimaal is, is er volgens Stelling 3.14 een µ1 ≥ 0 zdd. µ1j gj (x1 ) = 0, j = 1, 2, . . . , p. Hieruit volgt direct het gestelde. Vraag 3.13 Toon aan dat indien x∗ een lokaal maximum is van max{f (x) | x ∈ R} met f (x) een strict concave functie en R een convexe verzameling, dan is x∗ het unieke globale maximum.
Vraag 3.14 Toon aan dat als in (3.63) de functies gj (x), 1 ≤ j ≤ p, quasi-convex zijn het toegelaten gebied convex is.
Vraag 3.15 Beschouw het optimaliseringsprobleem max {5x1 − 2x21 + 3x1 x2 − 2x22 | x1 + x2 ≤ 2}. a. Toon aan dit een convex optimaliseringsprobleem is. b. Bepaal de optimale oplossing m.b.v. de KKT-voorwaarden.
118
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
3.3.6
Opgaven
Opgave 3.9 Laat A een (n × m)-matrix zijn met rang m, dan is de (m × m)-matrix AT A inverteerbaar. Hint: Toon aan dat de nulruimte van AT gelijk is aan de nulruimte van AAT en gebruik de eigenschap dat het aantal kolommen van een matrix gelijk is aan de som van de rang van de matrix en de dimensie van de nulruimte.22
Opgave 3.10 Beschouw het probleem om een lineaire functie te maximaliseren over de eenheidsbol: max{pT x | xT x = 1}, met p 6= 0. Toon met de theorie van Lagrange multiplicatoren aan dat voor de optimale x∗ geldt: x∗ = √ pT . p p
Opgave 3.11 Beschouw het probleem om punten op een driedimensionale ellipso¨ıde te bepalen zdd. de inhoud van de daardoor gegenereerde rechthoekige box maximaal is, d.w.z. ¯ 2 ¾ ½ ¯ x y2 z2 ¯ max xyz ¯ 2 + 2 + 2 = 1 . a b c Bepaal met de theorie van Lagrange multiplicatoren de optimale x, y en z.
Opgave 3.12 Beschouw het niet-lineaire optimaliseringsprobleem ¯ ( ) ¯ x2 + x2 ≤ 9 ¯ 2 max −x21 − x2 ¯ 1 . ¯ x1 + x2 ≤ 1 Bepaal de lokale maxima m.b.v. de voldoende KKT-voorwaarden.
Opgave 3.13 Beschouw het probleem max {−x21 + 2x2 | x21 + x22 = 4}. a. Toon aan dat x = (0, 2) de optimale oplossing is met optimum 4. ( 1 λ + 4λ voor λ > 0; b. Laat D(λ) = maxx L(x, λ). Toon aan dat D(λ) = ∞ voor λ ≤ 0. c. Laat zien dat er geen dualiteitsgat is, d.w.z. minλ maxx L(x, λ) = maxx minλ L(x, λ). Hint: Toon eerst aan dat voor dit probleem maxx minλ L(x, λ) ≥ minλ L(x∗ , λ) = minλ maxx L(x, λ) voor x∗ = (0, 2). Bewijs daarna dat altijd minλ maxx L(x, λ) ≥ maxx minλ L(x, λ). 22
Zie bijvoorbeeld J.B. Fraleigh and R.A. Beauregard: ”Linear Algebra”, Addison-Wesley (1987) p.177.
3.4. BEPERKTE OPTIMALISERING: METHODEN
119
Opgave 3.14 Beschouw het probleem max {−e−x1 − e−2x2 | x1 + x2 ≤ 1; x1 , x2 ≥ 0}. Toon aan dat dit een convex optimaliseringsprobleem is en bepaal met de KKT-voorwaarden het globale maximum.
Opgave 3.15 Beschouw het LP-probleem max {pT x | Ax ≤ b; x ≥ 0}. a. Geef de KKT-voorwaarden voor dit probleem en laat zien dat dit de ’gewone’ optimaliteitsvoorwaarden van de lineaire optimalisering zijn. b. Stel het duale probleem op volgens formule (3.65) en laat zien dat dit het ’gewone’ duale LP-probleem is.
Opgave 3.16 Toon aan dat de in paragraaf 3.1.2 gegeven oplossing van Tartaglia’s probleem correct is.
3.4 3.4.1
Beperkte optimalisering: methoden Kwadratische optimalisering
Bij het kwadratische optimalisering beschouwen we het probleem 1 max{pT x − xT Cx | Ax ≤ b; x ≥ 0}, 2
(3.66)
met p ∈ Rn , C een symmetrische (dit is geen beperking van de algemeenheid), positief definiete n × n-matrix, A een m × n-matrix en b ∈ Rm . De doelfunctie is dus concaaf en de beperkingen zijn convex, zodat de KKT-voorwaarden volgens Stelling 3.20 (tezamen met de toelaatbaarheid) voldoende zijn voor optimaliteit. Dit betekent dat x een optimale oplossing van (3.66) is als er een u ∈ Rm en een v ∈ Rn is zdd. tezamen met een y ∈ Rm geldt: p − Cx
= AT u − v ⇔ Cx
Ax + y
= b
vT x uT y
⇔ Ax
+ AT u − v = p +y
=b
= 0
⇔
vT x
=0
= 0
⇔ uT y
=0
⇔ x, y, u, v
≥0
x, y, u, v ≥ 0
Het bovenstaande stelsel is, net als bij lineair programmeren, een lineair stelsel met niet-negatieve variabelen, maar in dit geval zijn er ook orthogonaliteitsrelaties aan toegevoegd. We zullen een variant van de simplex methode bespreken die een dergelijk stelsel oplost. Deze methode is afkomstig van P. Wolfe.23 23
P. Wolfe, The simplex method for quadratic programming, Econometrica 27 (1959) 382 - 398.
120
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
In de startoplossing nemen we x = u = 0, zodat aan de orthogonaliteit is voldaan; x en u zijn dan de niet-basisvariabelen. Verder wordt het starttableau als volgt bepaald: als pj ≤ 0: neem vj als basisvariabele met waarde −pj ; als pj > 0: voer een schijnvariabele wj in als basisvariabele met waarde pj en neem vj = 0 (vj is een niet-basisvariabele); als bi ≥ 0: neem yi als basisvariabele met waarde bi ; als bi < 0: voer een schijnvariabele zi in als basisvariabele met waarde −bi en neem yi = 0 (yi is een niet-basisvariabele). Als doelfunctie nemen we de niet-negatieve functie −
P j
wj −
P
i zi .
Een iteratiestap ziet er nu als volgt uit: Kies een pivotkolom zoals bij de simplex methode, maar met de volgende extra resticties om de orthogonaliteit te handhaven: - als vj in de basis zit, dan kan xj geen pivotkolom zijn en omgekeerd; - als ui in de basis zit, dan kan yi geen pivotkolom zijn en omgekeerd. De keuze van de pivotrij en de transformatie van het tableau zijn identiek aan die van de simplex methode. Zodra de doelfunctie de waarde 0 heeft bereikt, dan is aan de KKT-voorwaarden voldaan, zodat we een optimale oplossing hebben en stopppen. Hieronder staat het algoritme. Algoritme 3.7 Methode van Wolfe voor kwadratische optimalisering Invoer: Een kwadratisch optimaliseringsprobleem van de vorm (3.66). Uitvoer: Een optimale oplossing x∗ van probleem (3.66). 1. Initialisatie a. for j = 1 step 1 until n do begin if pj ≤ 0 then vj wordt basisvariabele met waarde −pj else wj (schijnvariabele) wordt basisvariabele met waarde pj . end b. for i = 1 step 1 until m do begin if bi ≥ 0 then yi wordt basisvariabele met waarde bi else zi (schijnvariabele) wordt basisvariabele met waarde −bi . end c. Stel het eerste simplextableau op met de hierboven gedefinieerde basisvariabelen P P (de andere variabelen zijn niet-basisvariabelen) en met als doelfunctie − j wj − i zi . 2. Stopcriterium Als de waarde van de doelfunctie 0 is: de huidige basisoplossing x∗ is de optimale oplossing (STOP).
3.4. BEPERKTE OPTIMALISERING: METHODEN
121
3. Iteratie a. Laat J de verz. zijn van de niet-basisvariabelen waarvan de corresponderende variabele (xj en vj resp. yi en ui corresponderen) ook een niet-basisvariabele is en met in de doelfunctie een negatief getal. b. Kies een niet-basisvariabele uit J (meestal de meest negatieve). c. Voer de gebruikelijke pivottransformatie uit (als een schijnvariabele de basis verlaat, verwijder deze uit het tableau). d. Ga naar stap 2.
Voorbeeld 3.18
¯ ¯ x + x ≤ 5 ¯ 1 2 ¯ 2 2 ¯ Beschouw het probleem max −x1 − 4x2 + 8x1 + 16x2 ¯ x1 . ≤3 ¯ ¯ x 1 , x2 ≥0 ¡2 0¢ De matrix C = 0 8 is een symmetrische, positief definiete matrix, zodat de methode van Wolfe kan worden toegepast. Het KKT-stelsel wordt voor dit probleem (zonder de orthogonaliteit en de niet-negativiteit van de variabelen): 2x1
+ u1 + u2 − v1 8x2
x1 +
+ u1
=
− v2 = 16
x2 + y1
x1
8
+ y2
=
5
=
3
Hieronder staan de pivot-iteraties (de verboden pivotkolommen zijn met een * aangegeven, evenals het pivotelement).
w1
8
∗u
x2
∗u 1
2
0
1 1
0
0
-1
x2
x1
2
v1
v2
1
-1
0
1
∗u 2
v1
∗v 2
2
1
1
-1
0
2
0
0
0
- 18
0
0
1 8
x1 w1
8
∗u
w2
16
0
∗8
y1
5
1
1
0
0
0
0
y1
3
∗1
1 8 - 81
y2
3
1
0
0
0
0
0
y2
3
1
0
0
0
0
-24
-2
-8
-2
-1
1
1
-8
-2
-1
-1
1
0
∗y 1
y2
u2
∗v 1
∗v 2
y1
u1
∗u 2
∗v 1
5 4 1 8 - 18 ∗1 8 - 54
1
-1
0
0
0
0
0
0
-1
1
w1
2
-2
x2
2
0
x1
3
1
y2
0
-1
-2
2
∗v 2 - 14 - 18 1 8 - 18 1 4
w1
2
8
-10
∗1
-1
1
x2
2
1
-1
0
0
0
x1
3
0
1
0
0
0
u1
0
-8
8
0
0
-1
-2
-8
10
-1
1
-1
122
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING ∗y
1
∗y
2
∗v
1
∗v
2
u2
2
8
-10
-1
1
x2
2
1
-1
0
0
x1
3
0
1
0
0
u1
0
-8
8
0
-1
0
0
0
0
0
Optimale oplossing: x1 = 3 en x2 = 2.
Stelling 3.22 De methode van Wolfe geeft in een eindig aantal iteraties een optimale oplossing voor het kwadratisch optimaliseringsprobleem (3.66). Bewijs Om met een basisoplossing te starten hebben we in het algemeen schijnvariabelen w en z nodig. Het stelsel heeft dan de volgende vorm (schijnvariabelen die niet nodig zijn, zijn gelijk aan 0; de orthogonaliteit en de niet-negativiteit laten we weg) + AT u − v + w
Cx Ax + y met als doelfunctie
= p − z = b
max{−eT w
−
eT z}
(e de vector met allemaal 1’en).
Het duale stelsel luidt (het eerste stuk heeft duale variabelen r, bij het tweede nemen we s; verder gebruiken we dat C symmetrisch is) Cr + AT s ≥
0
s ≥
0
Ar
≥
0
−r
≥
0
r
≥ −e −s ≥ −e
met als doelfunctie min{pT r + bT s}. Na een eindig aantal iteraties stopt het algoritme met `ofwel een optimale oplossing `ofwel omdat J = ∅ (we nemen aan dat er geen cycling optreedt; cycling is op dezelfde wijze als bij de simplex methode te voorkomen). Veronderstel dat dit laatste het geval is en beschouw het laatst verkregen tableau. Laat x1 = {xj | xj in basis} met bijbehorende v 1 (deze variabelen zitten dus niet in de basis). y 1 = {yi | yi in basis} met bijbehorende u1 (deze variabelen zitten dus niet in de basis). v 2 = {vj | vj in basis} met bijbehorende x2 (deze variabelen zitten dus niet in de basis). u2 = {ui | ui in basis} met bijbehorende y 2 (deze variabelen zitten dus niet in de basis). x3 = {xj | xj niet in basis en bijbehorende vj ook niet in de basis} (deze vj ’s noteren we met v 3 ). y 3 = {yi | yi niet in basis en bijbehorende ui ook niet in de basis} (deze ui ’s noteren we met u3 ). Als we de schijnvariabelen w en z, en de matrices A en C ook in deze stukken opsplitsen, dan kunnen we het stelsel ook als:
3.4. BEPERKTE OPTIMALISERING: METHODEN
123
C11 x1 + C12 x2 + C13 x3
+AT11 u1 + AT21 u2 + AT31 u3 − v 1 + w1
= p1
C21 x1 + C22 x2 + C23 x3
+AT12 u1 + AT22 u2 + AT32 u3 − v 2 + w2
= p2
C31 x1 + C32 x2 + C33 x3
+AT13 u1 + AT23 u2 + AT33 u3 − v 3 + w3
= p3
A11 x1 + A12 x2 + A13 x3 + y 1
−z 1 = b1
A21 x1 + A22 x2 + A23 x3 + y 2
−z 2 = b2
A31 x1 + A32 x2 + A33 x3 + y 3
−z 3 = b3
Het bijbehorende duale stelsel is: C11 r1 + C21 r2 + C31 r3 + AT11 s1 + AT21 s2 + AT31 s3 ≥
0
C12 r1 + C22 r2 + C32 r3 + AT12 s1 + AT22 s2 + AT32 s3 ≥
0
C13
r1
+ C23
r2
+ C33
r3
+
AT13 s1 s1
+
AT23 s2
+
AT33 s3
≥
0
≥
0
≥
0
s3 ≥
0
+ A13
r3
≥
0
+ A23
r3
≥
0
+ A33
r3
≥
0
≥
0
≥
0
≥
0
s2 A11
r1
A21
r1
A31
r1
+ A12
r2
+ A22
r2
+ A32
r2
−r1 −r2 −r3 r1
≥ −e r2
≥ −e r3
≥ −e −s1
≥ −e −s2
≥ −e −s3
≥ −e
Beschouw nu een beperkt LP-probleem, uit het eerste probleem verkregen door de niet-variabelen uit het laatste tableau die corresponderen met de basisvariabelen 0 te nemen, d.w.z. v 1 = u1 = x2 = y 2 = 0 en laat deze niet-basiskolommen, die verboden zijn als pivotkolom, weg. Het eindtableau is dus een optimaal tableau voor het bijbehorende LP-probleem (want er zijn geen pivotkolommen meer) en de bijbehorende duale oplossing is optimaal voor het duale probleem. Omdat in dit tableau x1 , y 1 , u2 , v 2 basisvariabelen zijn, geven de hierbij behorende ongelijkheden in het duale probleem een gelijkheid. Hiermee krijgen we de stelsels C11 x1 + C13 x3
+AT21 u2 + AT31 u3
+ w1
= p1
C21 x1 + C23 x3
+AT22 u2 + AT32 u3 − v 2 + w2
= p2
C31 x1 + C33 x3
+AT23 u2 + AT33 u3 − v 3 + w3
= p3
A11 x1 + A13 x3 + y 1
− z 1 = b1
A21 x1 + A23 x3
− z 2 = b2
A31 x1 + A33 x3 + y 3
− z 3 = b3
124
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
respectievelijk C11 r1 + C21 r2 + C31 r3 + AT11 s1 + AT21 s2 + AT31 s3 = 0 C13
r1
+ C23
r2
+ C33
r3
+
AT13 s1 s1
+
AT23 s2
+
AT33 s3 s3
A21
r1
A31
r1
+ A22
r2
+ A32
r2
(1)
≥ 0
(2)
= 0
(3)
≥ 0
(4)
+ A23
r3
= 0
(5)
+ A33
r3
≥ 0
(6)
−r2
=
0
(7)
≥
0
(8)
≥ −e
(9)
≥ −e
(10)
≥ −e
(11)
≥ −e
(12)
≥ −e
(13)
−s3 ≥ −e
(14)
−r3 r1 r2 r3 −s1 −s2
Vanwege (3) en (7) volgt uit dit stelsel C11 r1 + C31 r3 + AT21 s2 + AT31 s3 = 0
(1a)
C13 r1 + C33 r3 + AT23 s2 + AT33 s3 ≥ 0
(2a)
s3 ≥ 0
(4a)
A21 r1 + A23 r3
= 0
(5a)
A31 r1 + A33 r3
≥ 0
(6a)
−r3
≥ 0
(8a)
Door (1a) met (r1 )T en (2a) met (r3 )T ≤ 0 te vermenigvuldigen krijgen we (r1 )T C11 r1 + (r1 )T C31 r3 + (r1 )T AT21 s2 + (r1 )T AT31 s3 = 0
(1b)
(r3 )T C13 r1 + (r3 )T C33 r3 + (r3 )T AT23 s2 + (r3 )T AT33 s3 ≤ 0
(2b)
Door (5a) te transponeren en met −s2 te vermenigvuldigen en (6a) te transponeren en met −s3 ≤ 0 te vermenigvuldigen krijgen we −(r1 )T AT21 s2 − (r3 )T AT23 s2 = 0
(5b)
−(r1 )T AT31 s3 − (r3 )T AT33 s3 ≤ 0
(6b)
Tel (1b), (2b), (5b) en (6b) bij elkaar op: (r1 )T C11 r1 + (r1 )T C31 r3 + (r3 )T C13 r1 + (r3 )T C33 r3 ≤ 0 ofwel (r1 , r3 )T
¡C11 T C13
C13 ¢¡r1 ¢ C33 r3
≤ 0.
Met r2 = 0 en rT = (r1 , r2 , r3 )T geeft dit rT Cr ≤ 0. Omdat C positief definiet is, is r = 0. Voor de waarde van de doelfunctie geldt: −eT w − eT z = rT p + sT b = sT b = sT (Ax + y).
3.4. BEPERKTE OPTIMALISERING: METHODEN
125
Omdat s1 = y 2 = y 3 = 0, is sT y = (s1 )T y 1 + (s2 )T y 2 + (s3 )T y 3 = 0; omdat s1 = x2 = x3 = 0 is sT Ax = (s1 )T {A11 x1 + A12 x2 + A13 x3 } + (s2 )T {A21 x1 + A22 x2 + A23 x3 } + (s3 )T (A31 x1 + A32 x2 + A33 x3 ) = (s2 )T A21 x1 + (s3 )T A31 x1 = {(s2 )T A21 + (s3 )T A31 }x1 . Uit (1a) volgt met r = 0 dat AT21 s2 + AT31 s3 = 0, zodat ook de getransponeerde (s2 )T A21 + (s3 )T A31 = 0, waaruit volgt dat de doelfunctie gelijk is aan −eT w − eT z = sT Ax = {(s2 )T A21 + (s3 )T A31 }x1 = 0. Hieruit volgt dat geen van de schijnvariabelen een positieve waarde kan hebben, zodat aan de KKT-voorwaarden is voldaan. Opmerking Met een kleine aanpassing van het bewijs kan worden aangetoond dat de methode ook eindig en correct is als C positief semidefiniet is en er een q is zdd. p = Cq (dit laatste is bijvoorbeeld het geval als p = 0 of als C inverteerbaar is). Vraag 3.16 Los het volgende kwadratische optimaliseringsprobleem op: ¯ ¯ x + x ≤ 3 ¯ 1 2 ¯ 2 2 . max −x1 − 5x2 + 4x1 x2 − 6x1 + 20x2 ¯¯ −x1 + 4x2 ≤ 4 ¯ ¯ x1 , x2 ≥ 0
3.4.2
Methode van toelaatbare richtingen
Een methode van toelaatbare richtingen 24 is een iteratieve methode waarbij een iteratie uit de volgende drie onderdelen bestaat, uitgaande van een iterand xk : 1. Bepaal een bruikbare richting sk in het punt xk . 2. Bepaal λk zdd. xk + λk sk toelaatbaar is en f (xk + λk sk ) > f (xk ). 3. xk+1 = xk + λk sk . Lineaire nevenvoorwaarden We bespreken een niet-lineair probleem met lineaire nevenvoorwaarden: max{f (x) | Ax ≤ b}, met A een m × n matrix
(3.67)
Beschouw een toelaatbaar punt xk . Dan is sk een toelaatbare richting in xk als n X
aij skj ≤ 0 voor alle i met
Pn
j=1
aij xkj = bi .
j=1 24
De methode van toelaatbare richtingen is voorgesteld door Zoutendijk, zie: G. Zoutendijk: Methods of feasible
directions, Elsevier, 1960.
126
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Het toelaatbare richting is bruikbaar als bovendien {∇f (xk )}T sk > 0. Een beste bruikbare richting is de bruikbare richting die {∇f (xk )}T s maximaliseert. Omdat als sk een bruikbare richting is, λsk (λ > 0) dat ook is, moeten we sk op de een of andere manier normeren. Laat A1 de rijen i P van A zijn waarvoor nj=1 aij xkj = bi : s is dus toelaatbaar d.e.s.d. als A1 s ≤ 0. Hieronder geven we drie versies van het probleem om een beste bruikbare richting te vinden: maxs {∇f (xk )T s | A1 s ≤ 0; −e ≤ s ≤ e}, met e de vector (1, 1, . . . , 1)T
(3.68)
maxs {∇f (xk )T s | A1 s ≤ 0; sT s ≤ 1}
(3.69)
maxs {∇f (xk )T s | A1 s ≤ 0; ∇f (xk )T s ≤ 1}
(3.70)
De problemen (3.68) en (3.70) zijn lineaire optimaliseringsproblemen en kunnen worden opgelost met de simplex methode. De volgende stelling laat zien dat als er geen bruikbare richting is, d.w.z. de problemen (3.68), (3.69) en (3.70) hebben optimale oplossing s = 0, het punt xk voldoet aan de KKT-voorwaarden. Stelling 3.23 Het toelaatbare punt xk is een KKT-punt d.e.s.d. als de problemen (3.68), (3.69) en (3.70) als optimale oplossing s = 0 hebben. Bewijs Het punt xk is een KKT-punt voor probleem (3.67) d.e.s.d. als er een µk ≥ 0 is zdd. ∇f (xk ) = AT µk , (µk )T (Axk − b) = 0. Dit laatste is equivalent met dat er een µk ≥ 0 is zdd. ∇f (xk ) = AT1 µk . Volgens de Stelling van Farkas uit de lineaire optimalisering is dit weer equivalent met de eigenschap dat {∇f (xk )}T s ≤ 0 voor alle s met A1 s ≤ 0, d.w.z. dat de problemen (3.68), (3.69) en (3.70) als optimale oplossing s = 0 hebben. Vervolgens beschouwen we het probleem om λk te bepalen. De beste λk wordt verkregen met: maxλ≥0 {f (xk + λsk ) | A(xk + λsk ) ≤ b} Laat tki =
Pn
j=1
aij skj en cki = bi −
Pn
j=1
(3.71)
aij xkj , 1 ≤ i ≤ m. Merk op dat cki ≥ 0 voor alle i.
Omdat λ moet voldoen aan λ ≥ 0 en λtki ≤ cki , 1 ≤ i ≤ m, is hier altijd aan voldaan aan tki ≤ 0, n k ¯ o c zodat voor λ moet gelden: λ ≤ λmax met λmax = mini tki ¯ tki > 0 . i
De beste λk wordt dus verkregen als oplossing van ½ k
k
max0≤λ≤λmax f (x + λs ), waarbij λmax = mini
¾ cki ¯¯ k ¯ ti > 0 tki
(3.72)
3.4. BEPERKTE OPTIMALISERING: METHODEN
127
Algoritme 3.8 Methode van Zoutendijk voor lineaire beperkingen, versie (3.68) Invoer: Een kwadratisch optimaliseringsprobleem van de vorm (3.67) met versie (3.68). Uitvoer: Een KKT-punt x∗ van probleem (3.67). 1. Initialisatie: Bepaal x0 zdd. Ax0 ≤ b; k := 0. 2. Iteratie a. Laat A1 de deelmatrix van A behorende bij de rijen i waarvoor
Pn
j=1
aij xkj = bi .
b. Bepaal een optimale oplossing sk van maxs {∇f (xk )T s | A1 s ≤ 0; −e ≤ s ≤ e}. c. (Stopcriterium) if sk = 0 then xk is een KKT-punt (STOP). d. Bepaal λk als oplossing van max0≤λ≤λmax f (xk +λsk ), waarbij λmax := mini P P tki := nj=1 aij skj en cki := bi − nj=1 aij xkj , 1 ≤ i ≤ m.
n
cki tki
o ¯ k ¯t >0 , i
e. xk+1 := xk + λk sk , k := k + 1 en ga naar stap 2a. Voorbeeld 3.19
¯ ) ¯ x + x ≤2 1 2 ¯ Beschouw het probleem max −2x21 − 2x22 + 2x1 x2 + 4x1 + 6x2 ¯ . ¯ x1 + 5x2 ≤ 5 ¡ 1 +2x2 +4¢ 0 Merk op dat ∇f (x) = −4x −4x2 +2x1 +6 . Start met x = (0, 0) en gebruik (3.68). (
Iteratie 1: a. A1 = ∅. b. ∇f (xk ) = (4, 6)T ; max{4s1 + 6s2 | − 1 ≤ s1 ≤ 1; −1 ≤ s2 ≤ 1} geeft sk = (1, 1)T . d. tk = (2, 6)T ; ck = (2, 5)T ; λmax = min{ 22 , 56 } = 56 ; max0≤λ≤ 5 f (xk + λsk ) = max0≤λ≤ 5 10λ − 2λ2 geeft λk = 56 . 6
e.
x1
=
( 56 , 56 )T ;
6
k = 1.
Iteratie 2: a. A1 is de matrix van de tweede rij. T b. ∇f (xk ) = ( 37 , 13 3 ) .
max{ 73 s1 +
d.
13 1 T k 3 s2 | s1 + 5s2 ≤ 0; −1 ≤ s1 ≤ 1; −1 ≤ s2 ≤ 1} geeft s = (1, − 5 ) . 5 tk = ( 54 , 0)T ; ck = ( 31 , 0)T ; λmax = 12 ; 62 2 55 max0≤λ≤ 5 f (xk + λsk ) = max0≤λ≤ 5 125 + 22 15 λ − 25 λ geeft λk = 186 . 12 12 8
e. x2 = ( 56 , 56 )T +
55 1 T 186 (1, − 5 )
24 T = ( 35 31 , 31 ) ; k = 2.
Iteratie 3: a. A1 is de matrix van de tweede rij. 160 T b. ∇f (xk ) = ( 32 31 , 31 ) .
max{ 32 31 s1 +
160 31 s2
| s1 + 5s2 ≤ 0; −1 ≤ s1 ≤ 1; −1 ≤ s2 ≤ 1} geeft sk = (0, 0)T .
24 T c. We stoppen met het KKT-punt x∗ = ( 35 31 , 31 ) . Omdat dit een convex probleem is (ga dit
zelf na) is x∗ de optimale oplossing.
128
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Niet-lineaire nevenvoorwaarden Vervolgens beschouwen we het geval met algemene beperkingen, d.w.z. max{f (x) | gi (x) ≤ 0, 1 = 1, 2, . . . , m}
(3.73)
De volgende stelling laat zien hoe we in dit geval een bruikbare richting kunnen vinden.
Stelling 3.24 Zij x∗ een toelaatbare punt van (3.73) en laat I(x∗ ) = {i | gi (x∗ ) = 0}. Dan is s∗ een bruikbare richting in x∗ als {∇gi (x∗ )}T s∗ < 0, i ∈ I(x∗ ) en {∇f (x∗ )}T s∗ > 0. Bewijs Laat s∗ zdd. {∇gi (x∗ )}T s∗ < 0, i ∈ I(x∗ ) en {∇f (x∗ )}T s∗ > 0. Als i ∈ / I(x∗ ), dan is gi (x∗ ) < 0, dus gi (x∗ + λs∗ ) ≤ 0 voor λ ∈ (0, δ) voor zekere δ. Als i ∈ I(x∗ ), dan geldt omdat gi differentieerbaar is in x∗ (analoog het bewijs van Stelling 3.10): gi (x∗ + λs∗ ) = gi (x∗ ) + λ{∇gi (x∗ )}T s∗ + λks∗ ko(λ). Omdat {∇gi (x∗ )}T s∗ < 0, is voor λ voldoende klein gi (x∗ + λs∗ ) ≤ 0, zodat s∗ een toelaatbare richting is. Uit {∇f (x∗ )}T s∗ > 0 volgt dat s∗ een bruikbare richting is.
Om een bruikbare richting te vinden kunnen we kijken naar een s∗ die het minimum van {∇f (x∗ )}T s en −{∇gi (x∗ )}T s, i ∈ I(x∗ ) maximaliseert. Als hieruit volgt s∗ = 0, dan is er geen bruikbare richting. Noemen we dit minimum z, dan krijgen we het volgende LP-probleem (er is ook weer een normering toegevoegd): maxs,z {z | z ≤ ∇f (x∗ )T s; z ≤ −∇gi (x∗ )T s, i ∈ I(x∗ ); −e ≤ s ≤ e}
(3.74)
Onderstaande Stelling 3.26 laat zien dat als s∗ = 0, dan voldoet x∗ aan de Fritz John voorwaarden, d.w.z. dat x∗ een kandidaat is voor een lokaal maximum. Om deze stelling te bewijzen gebruiken we de Stelling van Gordan, een resultaat uit 1873. We kunnen een kort bewijs van de Stelling van Gordon geven met behulp van een stelling van Tucker uit 1956.25 De Stelling van Gordon zullen we eerst formuleren en bewijzen.
Stelling 3.25 Stelling van Gordon Zij A een m × n matrix. Dan is er ofwel een u ≥ 0 zdd. AT u = 0 en u 6= 0, ofwel er is een x Pn met Ax < 0 (d.w.z. j=1 aij xj < 0 voor i = 1, 2, . . . , m). 25
Deze stelling van Tucker (Stelling 4.5 uit Besliskunde 1) luidt: Het stelsel Ax ≥ 0, AT u = 0, u ≥ 0 heeft altijd
een oplossing (x∗ , u∗ ) met de eigenschappen: (1) Ax∗ + u∗ > 0; (2) (Ax∗ )T u∗ = 0.
3.4. BEPERKTE OPTIMALISERING: METHODEN
129
Bewijs Beschouw eerst het geval dat er een x is met Ax < 0. Veronderstel dat er ook een u ≥ 0 is zdd. AT u = 0 en u 6= 0. Omdat Ax < 0, u ≥ 0 en u 6= 0, geldt 0 > uT Ax = (AT u)T x = 0, wat een tegenspraak geeft. Beschouw vervolgens het geval dat er geen x is met Ax < 0. Dan is er ook geen x met Ax > 0 (vervang anders x door −x). Volgens de stelling van Tucker is er een (x∗ , u∗ ) met u∗ ≥ 0, Ax∗ + u∗ > 0 en AT u∗ = 0. We moeten alleen nog laten zien dat u∗ 6= 0. Als u∗ = 0, dan is Ax∗ > 0: tegenspraak. Stelling 3.26 Zij x∗ een toelaatbare punt van (3.73) en laat (s∗ , z ∗ ) een optimale oplossing van (3.74) zijn. Dan voldoet x∗ aan de Fritz John voorwaarden (1) en (2) uit Stelling 3.16 d.e.s.d. als z ∗ = 0. Bewijs z ∗ = 0 d.e.s.d. als het stelsel {∇gi (x∗ )}T s∗ < 0, i ∈ I(x∗ ) en {∇f (x∗ )}T s∗ > 0 geen oplossig heeft. Neem voor A de matrix met als rijen de vectoren ∇gi (x∗ )T , i ∈ I(x∗ ) en −∇f (x∗ )T . Dan is volgens de Stelling van Gordon de uitspraak dat het stelsel As < 0 geen oplossing heeft equivalent met de uitspraak dat er een µ∗ ≥ 0 zdd. AT µ∗ = 0 en µ∗ 6= 0. Noem µ∗0 de component van µ∗ bij −∇f (x∗ )T en defineer µ∗i = 0 voor de i ∈ / I(x∗ ). Dan komt het bovenstaande overeen met dat er een scalairen µ∗0 , µ∗1 , . . . , µ∗m bestaan, niet allemaal gelijk aan 0, zdd. P ∗ ∗ ∗ µ∗0 ∇f (x∗ ) − m i=1 µi ∇gi (x ) = 0 en µi ≥ 0, i = 0, 1, . . . , m, wat precies de Fritz John voorwaarden (1) en (2) uit Stelling 3.16 zijn. Algoritme 3.9 Methode van Zoutendijk voor niet-lineaire beperkingen Invoer: Een optimaliseringsprobleem van de vorm (3.73). Uitvoer: Een Fritz John punt x∗ van probleem (3.73), mits aan het stopcriterium wordt voldaan. 1. Initialisatie a. Bepaal een x0 zdd. gi (x0 ) ≤ 0, i = 1, 2, . . . , m. b. k := 0. 2. Iteratie a. I := {i | g(xk ) = 0}.
¯ ¯ ¯ z ≤ ∇f (xk )T s ¯ b. Bepaal een optimale oplossing (sk , z k ) van maxs,z z ¯¯ z ≤ −∇gi (xk )T s, i ∈ I ¯¯ −e ≤ s ≤ e c. (Stopcriterium) Als z k = 0: x∗ := xk is een Fritz John punt (STOP). d. Bepaal λk als oplossing van max0≤λ≤λmax f (xk + λsk ), waarbij λmax := max{λ | gi (xk + λk sk ) ≤ 0, i = 1, 2, . . . , m}. e. xk+1 := xk + λk sk , k := k + 1 en ga naar stap 2a.
.
130
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Voorbeeld 3.20
¯ ¯ x + 5x ≤ 5 1 2 ¯ ¯ 2 ¯ 2x − x ≤ 0 2 1 2 2 ¯ Beschouw het probleem max −2x1 − 2x2 + 2x1 x2 + 4x1 + 6x2 ¯ ≤ 0 ¯ −x1 ¯ ¯ −x2 ≤ 0 ¡0¢ ¡1¢ ¡4x1 ¢ ¡−1¢ ¡ 1 +2x2 +4¢ , ∇g (x) = , ∇g (x) = en ∇g (x) = , ∇g (x) = ∇f (x) = −4x 2 3 4 1 −1 . 5 −1 0 −4x2 +2x1 +6 We starten met x0 := (0, 43 )T , k := 0 en zullen twee iteraties uitvoeren. Iteratie 1: a. I := {3}.
( ¯ ) ¯ z ≤ 11 s + 3s ; z ≤ s 2 1 ¯ 2 1 b. LP-probleem: max z ¯ met oplossing s0 := (1, −1)T en z 0 := 1. ¯ −1 ≤ s1 ≤ 1; −1 ≤ s2 ≤ 1 √ √ d. λmax := min{ 14 ( 7 − 1), 34 } = 14 ( 7 − 1) ≈ 0.41. max0≤λ≤ 1 (√7−1) f (xk + λsk ) = max0≤λ≤ 1 (√7−1) 4
4
e. x1 := (0, 34 )T +
5 T 24 (1, −1)
27 8
+ 25 λ − 6λ2 geeft λ0 :=
5 24 .
5 13 T = ( 24 , 24 ) ; k := 1.
Iteratie 2: a. I := ∅.
( ¯ ) ¯ z ≤ 17 s + 17 s ¯ 4 1 4 2 b. LP-probleem: max z ¯ met oplossing s1 := (1, 1)T ; z 1 := ¯ −1 ≤ s1 ≤ 1; −1 ≤ s2 ≤ 1 d. λmax :=
25 72
(volgt uit eerste beperking en dan is voor x1 +
25 1 72 s
17 2 .
= ( 59 , 89 )T ook aan de andere
vergelijkingen voldaan). max0≤λ≤ 25 f (xk + λsk ) = max0≤λ≤ 25 72
5 13 T e. x2 := ( 24 , 24 ) +
72
25 T 72 (1, 1)
1047 288
+
17 2 λ
− 2λ2 geeft λ1 :=
25 72 .
= ( 59 , 89 )T ; k := 2.
Convergentie Het volgende voorbeeld, afkomstig van Wolfe, 26 toont aan dat de methode van Zoutendijk zelfs in het geval van lineaire beperkingen niet hoeft te convergeren naar een KKT-punt of een Fritz John punt. Voorbeeld 3.21
3 Beschouw het probleem max x3 − 43 (x21 − x1 x2 + x22 ) 4
¯ ¯ −x 1 ¯ ¯ ¯ −x2 ¯ ¯ −x3 ¯ ¯ ¯ x3
≤ 0 ≤ 0 ≤ 0 ≤ 2
.
Het is duidelijk dat x∗ = (0, 0, 2)T de unieke optimale oplossing is. Start met x0 = (0, a, 0)T voor √ zekere a, waarbij 0 ≤ a ≤ 14 2, en gebruik voor de normering (3.69), zodat voor het vinden van een bruikbare richting het probleem maxs {∇f (xk )T s | A1 s ≤ 0; sT s ≤ 1} moet worden opgelost. 26
P. Wolfe: On the convergence of gradient methods under constraints, IBM Journal of Research and Development
16 (1972) 407–411.
3.4. BEPERKTE OPTIMALISERING: METHODEN ¡ √ √ ∇f (x0 ) = ( a, −2 a, 1)T en A1 = −10
131
¢ .
0 0 0 −1
√ √ Het richtingsprobleem is max{ as1 − 2 as2 + s3 | s1 ≥ 0; s3 ≥ 0; s21 + s22 + s23 } met als oplossing s0 =
∇f (x0 ) k∇f (x0 )k
=
√ √ √ 1 ( a, −2 a, 1)T . 5a+1
√ √ √ √ √ a, 2 a, −1, 1)T en c = (0, a, 0, 2)T , zodat λ0 = min{ 12 a( 5a + 1), 2 5a + 1} = √ √ √ √ 1√ 1√ 1 1√ T 1 T T √ 1 2 a( 5a + 1) en x = (0, a, 0) + 2 a( 5a + 1) 5a+1 ( a, −2 a, 1) = ( 2 a, 0, 2 a) .
t0 =
√ 1 (− 5a+1
Met inductie naar k kan worden bewezen dat xk =
P a 12 T (0, ( 12 )k a, 21 k−1 j=0 ( 2j ) )
(( 21 )k a, 0, 21
Pk−1 j=0
1
( 2aj ) 2 )T
als k ≥ 2 en even is; als k oneven is.
√ √ Hieruit volgt dat xk → x∗ = (0, 0, (1 + 21 2) a, wat niet het optimum is en ook geen KKT-punt of Fritz John punt. Topkis en Veinott 27 hebben een variant van Zoutendijk’s methode voorgesteld die wel naar een Fritz John punt convergeert. De enige wijziging is dat in de beperkingen van het richtingsprobleem niet alleen de beperkingen van i ∈ I worden genomen, maar alle beperkingen en dat de beperkingen z ≤ −∇gi (xk )T s − gi (xk ) zijn, d.w.z. dat we het volgende LP-probleem beschouwen: maxs,z z
¯ ¯ ¯ z ≤ ∇f (xk )T s ¯ ¯ z ≤ −∇gi (xk )T s − gi (xk ), i = 1, 2, . . . , m ¯ ¯ ¯ −e ≤ s ≤ e
(3.75)
We zullen bewijzen dat deze variant naar een Fritz John punt convergeert. Daartoe hebben we een tweetal andere resultaten nodig die we eerst zullen aantonen.
Stelling 3.27 Zij x∗ een toelaatbare punt van (3.73) en laat (s∗ , z ∗ ) een optimale oplossing van (3.75) zijn. (1) Als z ∗ > 0, dan is s∗ een bruikbare richting. (2) x∗ voldoet aan de Fritz John voorwaarden (1) en (2) uit Stelling 3.16 d.e.s.d. als z ∗ = 0. Bewijs Laat I(x∗ ) = {i | gi (x∗ ) = 0} en veronderstel eerst dat z ∗ > 0. Dan is −∇gi (x∗ )T s∗ ≥ z ∗ > 0, i ∈ I(x∗ ) en ∇f (x∗ )T s∗ ≥ z ∗ > 0. Uit Stelling 3.24 volgt nu dat s∗ een bruikbare richting is. Omdat als z ∗ = 0 de richting s∗ = 0 een optimale oplossing is waarin de beperkingen i ∈ / I(x∗ ) niet bindend zijn, kunnen deze worden weggelaten. We zitten daarmee in de situatie van de methode van Zoutendijk en kunnen Stelling 3.26 toepassen. 27
D.M. Topkis and A.F. Veinott: On the convergence of some feasible direction algorithms for nonlinear pro-
gramming, SIAM Journal on Control 5 (1967) 268–279.
132
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Stelling 3.28 Beschouw een methode van toelaatbare richtingen waarin de staplengte λk wordt bepaald zdd. f (xk+1 ) = f (xk + λk sk ) = maxλ≥0 f (xk + λsk ) | gi (xk + λsk ) ≤ 0, i = 1, 2, . . . , m}. Dan is er geen deelrij {xk }k∈K zdd. voor zekere x∗ , s∗ en δ ∗ > 0 geldt: (1) xk → x∗ voor k ∈ K; (2) sk → s∗ voor k ∈ K; (3) voor k ∈ K is xk + λsk toelaatbaar voor 0 ≤ λ ≤ δ ∗ ; (4) ∇f (x∗ )T s∗ > 0. Bewijs Veronderstel dat er wel zo’n deelrij bestaat. Laat ε > 0 zdd. ∇f (x∗ )T s∗ = 2ε. Omdat xk → x∗ en sk → s∗ , en f continu ditterentieerbaar is, is er een δ 0 > 0 zdd. ∇f (xk + λsk )T sk > ε voor 0 ≤ λ ≤ δ 0 en k ∈ K voldoende groot
(3.76)
Laat δ = min(δ ∗ , δ 0 ) > 0 en neem k ∈ K voldoende groot. Dan geldt f (xk+1 ) = maxλ≥0 f (xk + λsk ) | gi (xk + λsk ) ≤ 0, i = 1, 2, . . . , m} ≥ f (xk + δsk ). Volgens de middelwaardestelling is f (xk + δsk ) = f (xk ) + ∇f (xk )T (δsk ), waarbij xk = xk + α(δsk ) voor zekere 0 ≤ α ≤ 1. Uit (3.76) volgt dat ∇f (xk )T sk > ε, zodat geldt f (xk+1 ) ≥ f (xk + δsk ) = f (xk ) + ∇f (xk )T (δsk ) > f (xk ) + δε, d.w.z. dat f (xk+1 ) − f (xk ) > δε voor k ∈ K en voldoende groot, wat in strijd is met de convergentie van f (xk ) → f (x∗ ) voor k ∈ K. Stelling 3.29 Beschouw de methode van toelaatbare richtingen volgens Topkis en Veinott en laat x∗ een ophopingspunt van de rij {xk } zijn. Dan is x∗ een Fritz John punt. Bewijs Laat {xk }, k ∈ K een naar x∗ convergerende deelrij zijn. Dan is x∗ i.v.m. de continu¨ıteit van de functies gi ook toelaatbaar. Zij (sk , z k ) de oplossingen van het richtingsprobleem (3.75) bij xk . Omdat de rij {sk }, k ∈ K, begrensd is, is er een deelrij van deze rij die convergeert. Noem deze deelrij {sk }, k ∈ K 0 en laat sk → s∗ voor k ∈ K 0 . Veronderstel dat x∗ geen Fritz John punt is en beschouw het richtingsprobleem (3.75) bij x∗ met optimum z ∗ . Aangezien x∗ geen Fritz John punt is, is volgens Stelling 3.27 z ∗ > 0. Omdat xk → x∗ voor k ∈ K 0 en de functies ∇f (xk ) en ∇gi (xk ), 1 ≤ i ≤ m, continu zijn, convergeert de rij z k , k ∈ K 0 naar z ∗ . Laat z ∗ = 2ε, dan is z k > ε voor k ∈ K 0 en voldoende groot. Uit probleem (3.75) volgt dan dat ∇f (xk )T sk ≥ z k > ε voor k ∈ K 0 en voldoende groot
(3.77)
en ∇gi (xk )T sk + gi (xk ) ≤ −z k < −ε, 1 ≤ i ≤ m, voor k ∈ K 0 en voldoende groot
(3.78)
3.4. BEPERKTE OPTIMALISERING: METHODEN
133
Uit de continu¨ıteit van ∇f volgt m.b.v. (3.77) dat ∇f (x∗ )T s∗ > 0. Omdat ook ∇gi continu is voor alle i volgt uit (3.78) dat er een δ ∗ is zdd. voor alle λ ∈ [0, δ ∗ ] 1 ∇gi (xk + λsk )T sk + gi (xk ) < − ε, 1 ≤ i ≤ m, voor k ∈ K 0 en voldoende groot 2
(3.79)
Kies een λ ≤ 1 en zdd. λ ∈ [0, δ ∗ ]. Uit de middelwaardestelling en de eigenschap dat gi (xk ) ≤ 0 voor alle k en i, kunnen we schrijven gi (xk + λsk ) = gi (xk ) + ∇gi (xk + αik λsk )T (λsk ) = (1 − λ)gi (xk ) + λ{gi (xk ) + ∇gi (xk + αik λsk )T sk } ≤ λ{gi (xk ) + ∇gi (xk + αik λsk )T sk }, waarbij 0 ≤ αik ≤ 1 voor alle k en i. Omdat αik λ ∈ [0, δ ∗ ] volgt uit (3.79) dat voor k ∈ K 0 en voldoende groot geldt: gi (xk + λsk ) ≤ − 21 ελ, 1 ≤ i ≤ m. Hieruit volgt dat xk + λsk toelaatbaar is voor alle λ ∈ [0, δ ∗ ] voor k ∈ K 0 en voldoende groot. Er is dus een deelrij zdd. aan de voorwaarden (1) t/m (4) van Stelling 3.28 is voldaan. Dit geeft de gewenste tegenspraak. Vraag 3.17 Voer ´e´en iteratie uit met de variant van Topkis en Veinott voor het probleem uit Voorbeeld 3.20. Start ook met x0 = (0, 34 )T .
3.4.3
Gereduceerde gradi¨ ent methode
In deze paragraaf bespreken we de gereduceerde gradi¨ent methode van Wolfe.28 We beschouwen een niet-lineair probleem met lineaire nevenvoorwaarden in de gedaante: max{f (x) | Ax = b; x ≥ 0}, met A een m × n matrix
(3.80)
onder de volgende voorwaarde: ieder m-tal kolommen van A is lineair onafhankelijk en ieder hoekpunt is niet-gedegenereerd. Onder deze aanname heeft iedere toelaatbare oplossing minstens m positieve componenten. Zij x een willekeurige toelaatbare oplossing. Laat B een m × m deelmatrix van A zijn behorende bij positieve componenten van x en laat N de deelmatrix zijn van de overige kolommen van A (de bijbehorende componenten van x zijn 0 of positief). We kunnen nu schrijven b = Ax = BxB + N xN , d.w.z. xB = B −1 b − B −1 N xN . Een bruikbare richting s moet voldoen aan As = 0, sj ≥ 0 als xj = 0, en ∇f (x)T s > 0, d.w.z. sB = −B −1 N sN ; sj ≥ 0 als xj = 0; 0 < ∇B f (x)T sB +∇N f (x)T sN = {∇N f (x)T −∇B f (x)T B −1 N }sN . T , r T ) = (0, ∇ f (x)T − ∇ f (x)T B −1 N ). Laat r = (rB N B N 28
Een eerste versie van deze methode is in 1963 gepubliceerd (P. Wolfe: Methods of nonlinear programming, in:
R.L. Graves and P. Wolfe (eds.) Recent advances in mathematical programming, 1963). Deze versie convergeert in het algemeen niet naar een KKT-punt (P. Wolfe: On the convergence of gradient methods under constraints, IBM Research Paper RC-1752 (1967)). In 1969 werd door McCormick een versie voorgesteld die wel naar een KKT-punt convergeert (G.P. McCormick: Anti-zig-zagging by bending, Management Science 15 (1969) 315–320). Deze versie wordt in deze paragraaf bespoken.
134
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
T s > 0. Dan is s bruikbaar d.e.s.d. als sB = −B −1 N sN , sj ≥ 0 als xj = 0 en rN N ( rj als rj ≥ 0 en sB = −B −1 N sN . Neem s zdd. voor j behorend bij N : sj = rj xj als rj < 0
Hieruit volgt dat als xj = 0, dan behoort j bij N en is sj ≥ 0. P P Ts = 2 2 Verder is ∇f (x)T s = rN N j∈N,rj ≥0 rj + j∈N,rj <0 rj xj < 0 en alleen 0 d.e.s.d. als s = 0, T x = 0. We vinden dus altijd een bruikbare richting, tenzij s = 0, wat d.w.z. als rN ≤ 0 en rN N T x = 0, en de volgende stelling laat zien dat we in dat geval een overeenkomt met rN ≤ 0 en rN N
KKT-punt hebben. Stelling 3.30 Als voor de richtingsvector s, verkregen volgens bovenstaande methode, geldt dat s = 0, dan is x een KKT-punt. Bewijs x is een KKT-punt als er Lagrange multiplicatoren λ en µ bestaan zdd. ∇f (x) = AT λ − µ; µ ≥ 0 en µT x = 0. Als we dit splitsen in de B- en N -stukken, dan is dit ook te schrijven als ∇B f (x) = B T λ − µB ; ∇N f (x) = N T λ − µN ; µB , µN ≥ 0 en µTB xB = µTN xN = 0. Omdat xB > 0, is µB = 0, zodat ∇B f (x) = B T λ, d.w.z. λT = ∇B f (x)T B −1 . Door dit in te vullen krijgen we µTN = −∇N f (x)T + λT N = −∇N f (x)T + ∇B f (x)T B −1 N , d.w.z. T . De KKT-voorwaarden zijn hiermee omgeschreven naar de eisen r T ≤ 0 en r T x = 0, µTN = −rN N N N
wat equivalent is met s = 0. Algoritme 3.10 Gereduceerde gradi¨ent methode van Wolfe voor lineaire beperkingen Invoer: Een optimaliseringsprobleem van de vorm (3.80). Uitvoer: Een KKT-punt x∗ van probleem (3.80), mits aan het stopcriterium is voldaan. 1. Initialisatie: Bepaal een x0 zdd. Ax0 = b, x0 ≥ 0; k := 0. 2. Iteratie a. Zij Ik de indexverz. van de m grootste componenten van xk (als meer indices gelijke grootste waarden aannemen kies dan de kleinste indices) met bijbehorende deelmatrix B van A en laat N de deelmatrix van A zijn behorende bij de overige n − m indices. T := ∇ f (xk )T − ∇ f (xk )T B −1 N . b. rN N B ( rj als j ∈ Ik en rj ≥ 0 c. Neem sN met sj := en sB := −B −1 N sN . rj xj als j ∈ Ik en rj < 0
d. (Stopcriterium) Als s = 0: xk is een KKT-punt (STOP). e. Bepaal λk als oplossing van max0≤λ≤λmax f (xk +λsk ), waarbij λmax := minj f. xk+1 := xk + λk sk , k := k + 1 en ga naar stap 2a.
½
−xkj sj
¾ | sj < 0
.
3.4. BEPERKTE OPTIMALISERING: METHODEN
135
Voorbeeld 3.22 Beschouw het probleem van Voorbeeld 3.19 in de vorm ¯ ( ) ¯ x + x + x = 2; x1 , x2 ≥ 0 2 3 ¯ 1 2 2 max −2x1 − 2x2 + 2x1 x2 + 4x1 + 6x2 ¯ . ¯ x1 + 5x2 + x4 = 5; x3 , x4 ≥ 0 Merk op dat dit probleem aan de voorwaarde voldoet dat ieder tweetal kolommen van A lineair onafhankelijk is en dat ieder hoekpunt is niet-gedegenereerd is. ∇f (x) = (−4x1 + 2x2 + 4, 2x1 − 4x2 + 6, 0, 0)T . Start met x0 = (0, 0, 2, 5). Iteratie 1: b. c. e. f.
¡1
¢
¡
¢
0 1 1 0 1 , N := 1 5 . ¡ ¢ ¡ ¢ T := (4, 6) − (0, 0) 1 0 −1 1 1 = (4, 6). rN 0 1 1 5 T sN := (4, 6) , sB := (−10, −34)T . 5 2 5 λmax := min{ 10 , 34 } = 34 ; k k max0≤λ≤ 5 f (x + λs ) = max0≤λ≤ 5 − 56λ2 + 52λ met optimum 34 34 5 15 9 T (4, 6, −10, −34)T = ( 10 x1 := (0, 0, 2, 5)T + 34 17 , 17 , 17 , 0) ; k := 1.
a. I0 := {3, 4}, B :=
Iteratie 2: T := (0, 0) − b. rN
¡1
¢
1 1 5 , N := ¡ ¢ ¡ 58 62 1 1 −1 1 , 17 ) 1 5 ( 17 0
a. I1 := {1, 2}, B :=
¡ 5 T 4 c. sN := (− 513 289 , 0) , sB := − − 1
¡1
e. λmax :=
¢
− 41
¢¡1
1 4
=
g(λ) = f (xk + λsk ) = −2{ 10 17 +
0
¡ 5 −1 ¢ 62 4 4 4 − ( 58 = (− 57 1 17 , 17 ) − 1 17 , − 17 ). 4 4 ¢¡ ¢ 0 − 513 2565 513 T 289 = ( , − 1156 1156 ) . 1 0
17 57 ;
2565 2 1156 λ}
− 2{ 15 17 −
513 2 1156 λ}
+ 2{ 10 17 +
2565 15 1156 λ}{ 17
4{ 10 17 + f.
:=
15 9 T ( 10 17 , 17 , 17 , 0)
Iteratie 3:
¡1
¢
¡
1 1 0 1 5 , N := 0 1 ¡ ¢ ¡ ¢ 32 160 1 1 −1 1 0 , 31 ) 1 5 ( 31 0 1
a. I2 := {1, 2}, B := T := (0, 0) − b. rN
+
¡ 5 c. sN := (0, 0)T , sB := − − 14
d. Omdat s = 0 is
x∗
:=
2565 1156 λ}
68 17 f (xk + λsk ) optimaal 279 < 57 , zodat max0≤λ≤ 17 57 68 2565 513 513 35 24 3 T T 279 ( 1156 , − 1156 , − 289 , 0) = ( 31 , 31 , 31 , 0) ; k := 2.
g 0 (λ) = 0 d.e.s.d. als λ = x2
x2
4
=
− 14
1 4
5 34 .
0 0 1 . ¢ 0 1 = (0, 0)
4
15/17 9/17 min{ 513/1156 , 513/289 }
bij λ0 :=
¢¡1
¢ .
¡ 5 160 4 = (0, 0) − ( 32 31 , 31 ) − 1 4 ¢¡ ¢ 0 0 1 0 = (0, 0).
0 35 24 3 ( 31 , 31 , 31 , 0)T
− 14
1 4
¢
−
513 1156 λ}+
+ 6{ 15 17 − is voor
513 1156 λ}. 68 λ1 := 279 .
= (0, − 32 31 ).
een KKT-punt.
Om de convergentie van Algoritme 3.9 naar een KKT-punt aan te tonen bewijzen we eerst de volgende stelling voor het optimaliseringsprobleem max{f (x) | gi (x) ≤ 0, 1 ≤ i ≤ m}. Stelling 3.31 Beschouw de methode van toelaatbare richtingen volgens Wolfe en laat x∗ een ophopingspunt van de rij {xk } zijn. Dan is x∗ een KKT-punt.
136
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Bewijs Laat {xk }, k ∈ K een naar x∗ convergerende deelrij zijn met bijbehorende richtingsvectoren sk en indexverz. Ik , k ∈ K, en veronderstel dat x∗ geen KKT-punt is. Dan is volgens Stelling 3.30 de richtingsvetor s∗ , zoals die volgens volgens de methode van Wolfe wordt bepaald, ongelijk aan 0 en er geldt As∗ = 0 en ∇f (x∗ )T s∗ > 0. Zij I ∗ de indexverz. bij x∗ , dan is er een deelrij K 0 van K zdd. Ik = I ∗ voor alle k ∈ K 0 . Omdat f continu differentieerbaar is en B (en dus ook N ) dezelfde matrix is voor alle k ∈ K 0 , convergeren rk en sk naar r∗ resp. s∗ voor k ∈ K 0 . Hiermee voldoet de rij K 0 aan de eigenschappen (1), (2) en (4) van Stelling 3.28. We moeten nu nog aantonen dat ook aan eigenschap (3) is voldaan. Uit stap 2e van het algoritme volgt dat xk + λsk toelaatbaar is voor elke λ ∈ [0, δk ] met ¾ ½ k ¯ −xj ¯ k < 0 voor alle k ∈ K 0 . s δk = minj ¯ j sk j
Veronderstel dat infk∈K 0 δk = 0. Dan is er een deelrij K 00 van K 0 met δk = een vaste index is (omdat de indexverz. eindig is) en xkp > 0 en skp Omdat de richtingen sk begrensd zijn (want sk → s∗ ), betekent
−xkp skp
→ 0, waarbij p
< 0 voor alle k ∈ K 00 . dit dat xkp → x∗p = 0, zodat
p∈ / I ∗ , dus ook p ∈ / Ik (d.w.z. p hoort bij N ) voor alle k ∈ K 00 . Omdat skp < 0 is volgens stap 2c van het algoritme skp = rpk xkp , zodat δk =
−xkp skp
=
1 rpk
→ 0 voor k ∈ K 00 . Hieruit volgt dat rpk → ∞
voor k ∈ K 00 , wat in strijd is met rpk → rp∗ < ∞ voor k ∈ K 00 . Dus is infk∈K 0 δk = δ > 0, waarmee ook aan eigenschap (3) van Stelling 3.28 is voldaan. Vraag 3.18 Los het volgende probleem op met de gereduceerde gradi¨ent methode (start met x0 = (5, 3)T ): max{−x21 | x1 − x2 = 2; x1 , x2 ≥ 0}.
3.4.4
Gegeneraliseerde gereduceerde gradi¨ ent methode
In deze paragraaf generaliseren we de gereduceerde gradi¨ent methode 29 tot problemen met ook niet-lineaire nevenvoorwaarden, d.w.z. problemen van de vorm max{f (x) | hi (x) = 0, i = 1, 2, . . . , m; x ≥ 0},
(3.81)
waarbij de functies f en hi , i = 1, 2, . . . , m weer continu differentieerbaar zijn. Het idee van deze methode is dat we de niet-lineaire nevenvoorwaarden benaderen met de lineaire eerste orde Taylorontwikkeling en dan de gewone gereduceerde gradi¨ent methode toepassen. We veronderstellen hierbij dat in ieder punt x ≥ 0 de gradi¨enten ∇hi (x), i = 1, 2, . . . , m, lineair onafhankelijk zijn 29
Een eerste versie van de gegeneraliseerde gereduceerde gradi¨ent methode is ge¨ıntroduceerd door Abadie en
Carpentier (J. Abadie and J. Carpentier: Generalization of the Wolfe reduced gradient method to the case of nonlinear constraints, in: R. Fletcher (ed.), Optimization (1969)). Daarna zijn nog allerlei varianten voorgesteld. Convergentie resultaten bestaan alleen onder zeer restrictieve en moeilijk te verifi¨eren voorwaarden; wel zijn er talrijke numerieke experimenten gedaan.
3.4. BEPERKTE OPTIMALISERING: METHODEN
137
en dat iedere toelaatbare x minstens m positieve componenten heeft. Deze veronderstellingen zorgen ervoor dat de gereduceerde gradi¨ent methode kan worden toegepast op het gelineariseerde probleem. Wel kan de complicatie optreden dat we een nieuwe xk krijgen die niet toelaatbaar is. Daarvoor is dan extra werk nodig om dit te herstellen. Beschouw een toelaatbare xk en lineaniseer hi (x) = 0 met de eerste orde Taylorontwikkeling, d.w.z. schrijf 0 = hi (x) = hi (xk ) + ∇hi (xk )T (x − xk ) = ∇hi (xk )T (x − xk ), i = 1, 2, . . . , m, ofwel in vectornotatie J(xk )x = J(xk )xk ,
(3.82)
met J(xk ) de m×n-matrix van de parti¨ele afgeleiden van hi , i = 1, 2, . . . , m (deze matrix wordt de Jacobiaan genoemd). Het stelsel (3.82) is van de vorm Ax = b en voldoet aan de veronderstellingen om een stap van de gereduceerde gradi¨ent methode te kunnen toepassen. Als de gevonden richting sk = 0, dan is het punt xk weer een KKT-punt (het bewijs gaat op dezelfde wijze); als sk 6= 0, dan voeren we lijnoptimalisatie uit, d.w.z. we bepalen λmax volgens de gereduceerde gradi¨ent methode en lossen het volgende probleem op: max0≤λ≤λmax f (xk + λsk ) met optimale oplossing λk en nemen xk+1 = xk + λk sk . Als xk+1 niet toelaatbaar is, moeten we dat repareren. Dergelijke procedures zijn vrij gecompliceerd en we zullen er hier niet verder op ingaan. We merken alleen op dat meestal xN onveranderd blijft en dat we xB aanpassen. Algoritme 3.11 Gegeneraliseerde gereduceerde gradi¨ent methode voor niet-lineaire beperkingen Invoer: Een optimaliseringsprobleem van de vorm (3.81). Uitvoer: Een KKT-punt x∗ van probleem (3.81), mits aan het stopcriterium is voldaan. 1. Initialisatie a. Bepaal x0 ≥ 0 zdd. hi (x0 ) = 0, i = 1, 2, . . . , m. b. k := 0. 2. Iteratie (a) A := J(xk ) (de Jacobiaan in xk ). (b) Zij Ik de indexverz. van de m grootste componenten van xk (als meer indices gelijke grootste waarden aannemen kies dan de kleinste indices) met bijbehorende deelmatrix B van A en laat N de deelmatrix van A zijn behorende bij de overige n − m indices. T := ∇ f (xk )T − ∇ f (xk )T B −1 N . (c) rN N B ( rj als j ∈ Ik en rj ≥ 0 (d) Bepaal sN volgens sj := en sB := −B −1 N sN . rj xj als j ∈ Ik en rj < 0
(e) (Stopcriterium) Als s = 0: xk is een KKT-punt (STOP).
138
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING ½ (f) Bepaal λk als oplossing van max0≤λ≤λmax f (xk +λsk ), waarbij λmax := minj
−xkj sj
¾ | sj < 0
(g) xk+1 := xk + λk sk . (h) Als xk+1 niet toelaatbaar is: repareer de ontoelaatbaarheid en probeer daarbij xN onveranderd te laten. (i) k := k + 1 en ga naar stap 2a.
Voorbeeld 3.23
¯ ) ¯ x2 − 2x = 0 2 ¯ 1 . Beschouw het volgende probleem max −x21 − x22 − 12x1 + 4x2 ¯ ¯ x 1 , x2 ≥ 0 (
De Jacobiaan J(x) = (2x1 , −2), ∇f (x) = (−2x1 − 12, −2x2 + 4)T . Start met x0 := (4, 8) met waarde -96, en voer twee iteraties uit. Iteratie 1: a. A := (8, −2) b. I0 := {2}, B := (−2), N := (8). c. rN := (−20) − (−12)(− 21 )(8) = −68. d. sN := −544, sB := −2176. 4 8 f. λmax := min{ 544 , 2176 }=
1 272 ;
g(λ) = f (xk + λsk ) = −(4 − 544λ)2 − (8 − 2176λ)2 − 12(4 − 544λ) + 4(8 − 2176λ); g 0 (λ) = 0 d.e.s.d. als λ = g. x1 := (4, 8)T +
1 272 ;
max0≤λ≤
1 T 272 (−544, −2176)
1 272
f (xk + λsk ) heeft optimum bij λ0 :=
1 272 .
= (2, 0)T .
h. x1 is ontoelaatbaar. Houd x1 = 2 vast, wat de toelaatbare x2 = 2 geeft met waarde -24. i. k = 1. Iteratie 2: a. A := (4, −2) b. I1 := {1}, B := (4), N := (−2). c. rN := (0) − (−16)( 14 )(−2) = −8. d. sN := −16, sB := −8. 2 f. λmax := min{ 28 , 16 } = 18 ;
g(λ) = f (xk + λsk ) = −(2 − 8λ)2 − (2 − 16λ)2 − 12(2 − 8λ) + 4(2 − 16λ); g 0 (λ) = 0 d.e.s.d. als λ = 15 ; max0≤λ≤ 1 f (xk + λsk ) heeft optimum bij λ1 := 18 . 8
(2, 2)T
1 T 8 (−8, −16)
g.
x2
:=
h.
x2
is ontoelaatbaar. Houd x2 = 0 vast, wat de toelaatbare x2 = 0 geeft met waarde 0.
+
=
(1, 0)T .
i. k := 2.
Vraag 3.19 Voer ´e´en stap van de gegeneraliseerde gereduceerde gradi¨ent methode uit op het volgende voorbeeld (start met x0 = (2, 2)T ): max{−2x21 − 3x22 | 3x21 + 2x22 = 20; x1 , x2 ≥ 0}.
.
3.4. BEPERKTE OPTIMALISERING: METHODEN
3.4.5
139
Barri` ere methode
Beschouw een niet-lineair optimaliseringsprobleem in de gedaante max{f (x) | gi (x) ≤ 0, i = 1, 2, . . . , m},
(3.83)
waarbij f en gi , i = 1, 2, . . . , m weer ’nette’ functies zijn. Bij de barri`ere methode 30 starten we met een inwendig punt x0 , d.w.z. dat x0 ∈ S := {x | gi (x) < 0, i = 1, 2, . . . , m}. In plaats van ´e´enmaal een beperkt probleem gaan we nu een rij van onbeperkte problemen oplossen. Bij deze onbeperkte optimalisingsproblemen nemen we de beperkingen op een zodanige wijze in de doelfunctie op, dat het overschrijden van een beperking zeer zwaar wordt beboet: dit vormt dus een barri`ere. Het k-de onbeperkte probleem heeft dan de vorm max{f (x) + αk B(x)} voor zekere barri`ere functie B(x) en rij αk ↓ 0
(3.84)
Voorbeelden van barri`ere functies zijn B(x) =
m X
log {−gi (x)} : de logaritmische barri`ere functie
(3.85)
i=1
en B(x) =
m X i=1
1 : de inverse barri`ere functie gi (x)
(3.86)
Merk op dat deze barri`ere functies convex zijn als de functies gi (x), i = 1, 2, . . . , m convex zijn. Een convex optimaliseringsprobleem gaat dan over in het onbeperkt optimaliseren van concave functies. Omdat αk ↓ 0 wordt het dichter bij de rand van het gebied komen in de loop van het proces steeds minder zwaar gestraft. De volgende stelling laat zien dat als de oplossingen xk van (3.84) een limietpunt hebben, dit limietpunt een globaal optimum is. Stelling 3.32 In de barri`ere methode is ieder ophopingspunt van de rij {xk } een globaal optimum. Bewijs Laat x∗ een ophopingspunt zijn; neem voor het gemak aan dat limk→∞ xk = x∗ . Als x∗ ∈ S, dan geldt - omdat de rij αk ↓ 0 - dat limk→∞ αk B(xk ) = 0 en als x∗ op de rand van S ligt, dan geldt dat limk→∞ B(xk ) = −∞. In beide gevallen geldt limsupk→∞ αk B(xk ) ≤ 0, waaruit volgt dat limsupk→∞ {f (xk ) + αk B(xk )} = f (x∗ ) + limsupk→∞ {αk B(xk )} ≤ f (x∗ )
(3.87)
Als x∗ geen globaal optimum is, dan is er een toelaatbaar punt y met f (y) > f (x∗ ). Als y niet in het inwendige ligt, dan is er i.v.m. de continu¨ıteit een inwendig punt z waarvoor ook geldt dat f (z) > f (x∗ ) 30
(3.88)
Deze methode is in 1968 door Fiacco en McCormick ontwikkeld, zie: A.V. Fiacco and G.P. McCormick:
Nonlinear programmming: sequential unconstrained minimization techniques, Wiley (1968).
140
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Uit de definitie van xk volgt f (xk ) + αk B(xk ) ≥ f (z) + αk B(z) voor k = 1, 2, . . . . Door de limiet voor k → ∞ te nemen krijgen we limsupk→∞ {f (xk ) + αk B(xk )} ≥ f (z) + limsupk→∞ {αk B(z)} = f (z),
(3.89)
zodat uit (3.87) en (3.89) volgt dat f (x∗ ) ≥ f (z), wat in strijd is met (3.88). Voorbeeld 3.24 Beschouw het probleem max{− 12 x21 − 12 x22 | − x1 + 2 ≤ 0} met optimale oplossing x∗ = (2, 0). Als we de logaritmische barri`ere functie B(x) = log (x1 − 2) nemen, dan worden de onbeperkte √ problemen max{− 21 x21 − 12 x22 + αk log (x1 − 2)} met optimale oplossing xk = (1 + 1 + αk , 0)T en limk→∞ xk = (2, 0)T = x∗ . Het volgende voorbeeld 31 laat zien dat de rij {xk } geen ophopingspunt hoeft te hebben, ook als heeft het optimaliseringsprobleem een begrensde optimale oplossing. Voorbeeld 3.25 Beschouw het probleem max{ x21+1 | x ≥ 1} met optimale oplossing x = 1. Als we de logaritmische barri`ere functie B(x) = log (x − 1) nemen, dan worden de onbeperkte problemen max{ x21+1 + αk log (x − 1)}. Voor iedere αk > 0 heeft dit probleem een oneindige oplossing voor x → ∞.
Vraag 3.20 Beschouw voor het probleem max{−x1 − x2 | x21 − x2 ≤ 0; x1 ≥ 0} de barri`ere methode met de logaritmische barri`ere functie en met (3.84) als deelprobleem. Bewijs dat de oplossing van deze deelproblemen worden gegeven door: x1 = 14 {−1 +
3.4.6
√ 1 + 8αk } en x2 =
1 16 {−1
+
√ 1 + 8αk }2 + αk .
Opgaven
Opgave 3.17 Los het volgende kwadratische optimaliseringsprobleem met de methode van Wolfe op: ¯ ¯ ¯ x1 + 2x2 ≤ 7 ¯ 2 2 ¯ max −x1 − 2x2 + 2x1 x2 + 3x1 + 4x2 ¯ −x1 + 2x2 ≤ 4 ¯ ¯ x , x ≥ 0 1
31
2
Dit voorbeeld is afkomstig van Powell, zie: M.J.D. Powell: Problems relating to unconstrained optimization, in:
W. Murray (ed.), Numerical methods for unconstrained optimization, Academic Press (1972) 29–55.
3.4. BEPERKTE OPTIMALISERING: METHODEN
141
Opgave 3.18 Los het volgende kwadratische optimaliseringsprobleem met de methode van Zoutendijk (Algoritme 3.8) op. Start met x0 = (0, 0)T en gebruik voor de normering (3.70). ¯ ¯ ¯ x1 + 2x2 ≤ 7 ¯ 2 2 ¯ max −x1 − 2x2 + 2x1 x2 + 3x1 + 4x2 ¯ −x1 + 2x2 ≤ 4 ¯ ¯ x1 , x2 ≥ 0
Opgave 3.19 Voer ´e´en iteratie uit van de gereduceerde gradi¨ent methode van Wolfe voor het volgende kwadratische optimaliseringsprobleem. Start met x0 = (2, 2, 1, 0)T . ¯ ( ) ¯ 2x + x + x + 4x = 7; x , x ≥ 0 1 2 3 4 1 2 ¯ max −x21 − x22 − x23 − x24 + 2x1 + 3x4 ¯ . ¯ x1 + x2 + 2x3 + x4 = 6; x3 , x4 ≥ 0
Opgave 3.20 Beschouw de barri`ere methode met de inverse barri`ere functie voor het probleem max{− 13 (x1 + 1)3 − x2 | x1 ≥ 1; x2 ≥ 0}. Bewijs dat de oplossingen van de deelproblemen worden gegeven door: x1 = (1 +
1 √ √ αk ) 2 en x2 = αk .
Leid hieruit af wat de optimale oplossing van het probleem is.
142
HOOFDSTUK 3. NIET-LINEAIRE OPTIMALISERING
Hoofdstuk 4
NETWERK OPTIMALISERING 4.1
Kortste paden
4.1.1
Inleiding
Zij N = (V, A) een gerichte graaf met lengtefunctie l; een gerichte graaf met ´e´en of meer lengtefuncties heet een netwerk. De lengte van een pad of ronde is de som van de lengtes van de pijlen op het pad of ronde. We bespreken de volgende problemen: a. Bepaal het kortste pad van een bepaald knooppunt naar alle andere knooppunten. b. Bepaal de kortste paden tussen ieder tweetal knooppunten. Aanname 4.1 De lengte van iedere ronde is positief. Zonder deze aanname is het begrip kortste pad niet goed gedefinieerd (waarom?). ( u∗1 = 0 Definieer: u∗i = de lengte van het kortste pad van v1 naar vi , i = 2, 3, . . . , n Stelling 4.1 Bellman-vergelijkingen 1.
De getallen u∗i , i = 1, 2, . . . , n voldoen aan de zogenaamde Bellman-vergelijkingen: ( u1 = 0; ui = mink6=i {uk + lki }, i = 2, 3, . . . , n.
2.
Met iedere oplossing u van deze vergelijkingen correspondeert een opspannende boom met wortel v1 zdd. ui de boomafstand is van v1 naar vi , i = 1, 2, . . . , n.
3.
Er is een opspannende boom van kortste paden;
4.
u∗i , i = 1, 2, . . . , n is de enige oplossing van de Bellman-vergelijkingen.
Bewijs 1. Het is duidelijk dat u∗i ≤ u∗k + lki . Dus u∗i ≤ mink6=i {u∗k + lki }. Voor ieder knooppunt vi , i 6= 1, heeft het kortste pad van v1 naar vi een laatste pijl, zeg de pijl (vk(i) , vi ). Het deel van het kortste pad tot aan het voorlaatste knooppunt vk(i) is een kortste pad van v1 naar vk(i) : u∗i = u∗k(i) + lk(i)i ≥ mink6=i {uk∗ + lki }. 143
144
HOOFDSTUK 4. NETWERK OPTIMALISERING
2. Stel ui , i = 1, 2, . . . , n is een oplossing van de Bellman-vergelijkingen. Voor iedere i 6= 1 is er dus een k(i) zdd. ui = uk(i) + lk(i)i . Beschouw nu de deelgraaf bestaande uit de pijlen (vk(i) , vi ), i = 2, 3, . . . , n en de bijbehorende knooppunten. Dit is een deelgraaf met n − 1 pijlen. Stel er is een ronde in deze deelgraaf, zeg {vi1 , vi2 , . . . , vij = vi1 }. Dan geldt: lik ik+1 = uik+1 − uik , k = 1, 2, . . . , j − 1. De lengte van de ronde is dus: j−1 X
lik ik+1 =
k=1
j−1 X
uik+1 −
k=1
j−1 X
uik = 0,
k=1
omdat ij = i1 . Dit geeft een tegenspraak met Aanname 4.1: de deelgraaf heeft dus geen ronden. Omdat er naar ieder knooppunt vi 6= v1 precies ´e´en pijl is gericht kunnen we, als we in een willekeurig knooppunt beginnen en tegen de richting van de pijlen in lopen, slechts eindigen in v1 . Dit impliceert dat deze deelgraaf een opspannende boom met wortel v1 is. Analoog aan het bewijs dat een eventuele ronde de lengte nul heeft en gebruikmakend van u1 = 0, kan worden aangetoond dat ui de boomafstand van v1 naar vi is voor alle i. 3. Dit onderdeel volgt direct uit de onderdelen 1 en 2. 4. Stel ui , i = 1, 2, . . . , n is ook een oplossing, dus u ≥ u∗ , en stel u∗ 6= u. Dan is ui > u∗i voor minstens ´e´en i. Stel ui > u∗i en beschouw het kortste pad van v1 naar vi . Zij vj het eerste punt op dit pad met uj > u∗j , dus uk(j) = u∗k(j) , met vk(j) de voorganger van vj op het kortste pad van v1 naar vj . Nu geldt: uj > u∗j = u∗k(j) + lk(j)j = uk(j) + lk(j)j ≥ mink6=j {uk + lkj } = uj : tegenspraak. De Bellman-vergelijkingen geven een niet-lineair stelsel. Dit maakt het oplossen ervan lastig. We zullen de in volgende subparagrafen verschillende methoden beschrijven om deze vergelijkingen op te lossen. De meeste van deze methoden zijn in de periode 1958-1962 ontwikkeld.1 Vraag 4.1 Beschouw het hiernaast getekende netwerk. 1
a. Toon aan dat voor dit netwerk de oplossing van de Bellmanvergelijkingen niet uniek is.
1s
10
-2 s
b. Karakteriseer de verzameling van alle oplossingen van de
-
s3
¾
-1
Bellmanvergelijkingen. Vraag 4.2 Laat de lengtes van de pijlen van een graaf met 5 knooppunten gegeven zijn door nevenstaande matrix. Neem aan dat de lengtes u∗1
= 0,
u∗2
= −1,
u∗3
= 3,
u∗
van de kortste paden voldoen aan:
u∗4
= 5 en u∗5 = 6.
Construeer hieruit met behulp van de Bellmanvergelijkingen een boom van kortste paden. 1
Zie ook http://en.wikipedia.org/wiki/Shortest path problem.
0
∞ ∞ ∞ ∞
−1 0 ∞ 0 0
3
∞
5
6
6
8 0 ∞ 10 −1 0 ∞ 0 −1 0
4.1. KORTSTE PADEN
4.1.2
145
De methode van Dijkstra
We veronderstellen in deze paragraaf dat de lengtes niet-negatief zijn. Aan de knooppunten van het netwerk worden labels toegekend. Het label ui voor knooppunt vi is de lengte van een pad van v1 naar het vi ; met k(i) geven we de directe voorganger van knooppunt vi aan op het pad van v1 naar vi met lengte ui , i = 2, 3, . . . , n. We onderscheiden definitieve labels en tijdelijke labels. Voor de definitieve labels, geldt dat we zeker weten dat ui = u∗i ; voor de tijdelijke labels geldt dat ui gelijk is aan de lengte van het kortste pad van v1 naar vi met als tussenpunten alleen knooppunten met een definitief label. De verzameling van knooppunten met een definitief label wordt genoteerd met D. Bij de start heeft alleen v1 een definitief label; voor de andere knooppunten vi zijn de tijdelijke labels ui = l1i , i = 2, 3, . . . , n. De algemene stap van deze methode is: a. Kies een knooppunt met een tijdelijk label waarvoor het tijdelijke label minimaal is, zeg vp . b. Het knooppunt vp wordt definitief. c. Bereken voor de knooppunten vi met een tijdelijk label het nieuwe label: ui := min(ui , up +lpi ). Het algoritme eindigt als alle knoopunten een definitief label hebben gekregen.2 Algoritme 4.1 Methode van Dijkstra (kortste pad probleem met niet-negatieve lengtes) Invoer: Een gerichte graaf N = (V, A) met n knooppunten en met lengtefunctie l : A → R+ . Uitvoer: De lengte u∗i van het kortste pad van v1 naar vi , 1 ≤ i ≤ n, en de boom van kortste paden. 1. D := {1}; u1 := 0; for i = 2 step 1 until n do begin ui := l1i , k(i) := 1 end 2. if D = {1, 2, . . . , n} then begin for j = 1 step 1 until n do u∗j := uj ; {(k(i), i), i = 2, 3, . . . , n} is een boom van kortste paden; STOP end 3. a. Kies p ∈ / D zdd. up = mini∈D / ui ; b. D := D ∪ {p}; c. for all i ∈ / D do if up + lpi < ui then begin ui := up + lpi ; k(i) := p end d. Ga naar stap 2. 2
Dit algoritme is afkomstig van de Nederlander Edsger Dijkstra, destijds verbonden aan de TU Eindhoven (E.W.
Dijkstra, A note on two problems in connection with graphs, Numerische Mathematik 1 (1959) 269–271.). Zie ook http://nl.wikipedia.org/wiki/Edsger Dijkstra
146
HOOFDSTUK 4. NETWERK OPTIMALISERING
Voorbeeld 4.1 Beschouw
het
netwerk
met
nevenstaande
lengtematrix (∞ geeft aan dat de pijl niet bestaat). In onderstaande berekeningen nemen we 100 in plaats van ∞. Iteratie 1 D := {1}; u := (0, 4, 5, 2, 12, 100, 100, 100). k(i) := 1, i = 2, 3, . . . , 8.
0
4
5
2
12 ∞ ∞ ∞
∞
0
3
∞
1
∞ ∞
0
∞ ∞
∞ ∞
1
0
∞
∞ ∞ ∞ ∞
0
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
∞ ∞ ∞ ∞ ∞ 13 11 ∞ ∞ ∞ 6 9 0 ∞ 8 ∞ 0 7
∞ ∞ ∞ ∞ ∞ ∞ ∞
0
Iteratie 2 p := 4; D := {1, 4}; u := (0, 4, 3, 2, 12, 13, 100, 100); k(3) := k(6) := 4. Iteratie 3 p := 3; D := {1, 3, 4}; u := (0, 4, 3, 2, 12, 13, 100, 16); k(8) := 3. Iteratie 4 p := 2; D := {1, 2, 3, 4}; u := (0, 4, 3, 2, 5, 13, 100, 16); k(5) := 2. Iteratie 5 p := 5; D := {1, 2, 3, 4, 5}; u := (0, 4, 3, 2, 5, 13, 11, 14); k(7) := k(8) := 5. Iteratie 6 p := 7; D := {1, 2, 3, 4, 5, 7}; u := (0, 4, 3, 2, 5, 13, 11, 14). Iteratie 7 p := 6; D := {1, 2, 3, 4, 5, 6, 7}; u := (0, 4, 3, 2, 5, 13, 11, 14). Iteratie 8 p := 8; D := {1, 2, 3, 4, 5, 6, 7, 8}; u := (0, 4, 3, 2, 5, 13, 11, 14). u∗ := (0, 4, 3, 2, 5, 13, 11, 14). De boom van kortste paden bestaat uit de pijlen {(1, 2), (4, 3), (1, 4), (2, 5), (4, 6), (5, 7) en (5, 8).}
Stelling 4.2 1. Dijkstra’s algoritme eindigt met de lengtes van kortste paden en een boom van kortste paden. 2. De complexiteit van het algoritme is O(n2 ). 3 Bewijs 1. We tonen met inductie naar het iteratienummer aan dat tijdens het algoritme de definitieve knooppunten als label de lengte van het kortste pad hebben en dat voor de knooppunten vj 3
Voor ’lege’ grafen, d.w.z. grafen met m ¿ n2 , is een betere complexiteit te verkrijgen door te werken met bijzon-
dere datastructuren zoals een binaire stapel (binary heap geeft O{(m+n) log n}) of een Fibonacci stapel (Fibonacci heap geeft O{m + n log n}). De datastructur met een stapel zorgt ervoor dat de bepaling van up = mini∈D / ui met O(log n) mogelijk is. Voor meer details zie: R.K. Ahuja, T.L. Magnanti and J.B. Orlin: Network flows: theory, algorithms and applications (1993) Prentice Hall, 115–121 en A. Schrijver: Combinatorial optimization: Polyhedra and efficiency, Volume A (2003), Chapter 7. De O{m + n log n} implementatie met Fibonacci heaps is te vinden in M.L. Fredman and R.E. Tarjan, Fibonacci heaps and their uses in improved network optimization problems, Journal of the ACM 34 (1987) 596–615.
4.1. KORTSTE PADEN
147
met een tijdelijk label geldt uj = mini∈D {ui + lij }. Bij de eerste iteratie, als alleen v1 definitief is, is hieraan voldaan. Veronderstel dat het ook ∗ juist is tot en met iteratie k − 1. Stel p ∈ / D is gekozen zdd. up = mini∈D / ui en up 6= up ,
dus up > u∗p . Omdat up = mini∈D {u∗i + lip }, heeft het kortste pad van v1 naar vp minstens ´e´en knooppunt dat niet tot D behoort. Laat vj het eerste knooppunt op het kortste pad van v1 naar vp dat niet tot D behoort. Het kortste pad van v1 naar vj bevat dus alleen punten van D. Er geldt: u∗j = mini∈D {u∗i + lij } = uj ≥ up > u∗p ≥ u∗j (de laatste ongelijkheid omdat alle lengtes niet-negatief zijn en het kortste pad van v1 naar vp via vj loopt): dit geeft een tegenspraak. Voor het element p dat aan D wordt toegevoegd geldt dus inderdaad up = u∗p . Uit het algoritme is direct duidelijk dat de ui ’s goed worden aangepast voor de tijdelijke labels en dat de voorganger k(i) op het pad van v1 naar vi met lengte ui eveneens goed wordt bijgehouden. 2. De eerste en tweede iteratie hebben complexiteit O(n) en worden ´e´enmaal uitgevoerd. Stap 3 wordt n − 1 keer uitgevoerd en heeft complexiteit O(n). De totale complexiteit is dus O(n2 ).
Vraag 4.3 Toon met een voorbeeld aan dat Dijkstra’s algoritme niet mag worden toegepast op netwerken waarin ook negatieve lengtes voorkomen.
Vraag 4.4 Pas het algoritme van Dijkstra toe op onderstaand netwerk. 10
2
3
s
3¡
¾
8 @
@
¡
¡
s¡ @
¡
¡
¡
1
s ¡6 @
1
¡ µ ¡
9¡¡
6 ?
6
2
¡
¡
@
2@
¡
@ ¡ @ R s¡ ª 4
¡
-4
¡
s¡ ¾
3
5
@ 3 @ @ R s6 @ µ ¡ ¡ ¡ 4 ¡
148
HOOFDSTUK 4. NETWERK OPTIMALISERING
4.1.3
Methode van Bellman en Ford
In deze methode 4 worden de Bellman-vergelijkingen opgelost door de volgende iteratieve methode, ook wel successieve approximatie genoemd. Zonder beperking van de algemeenheid nemen we aan dat er tussen ieder tweetal knooppunten een pijl is. We beginnen met als eerste benadering van u∗ : u11 := 0; u1j := l1j , 2 ≤ j ≤ n.
(4.1)
In het algemeen geldt voor de k-de benadering uk : ukj is de lengte van het kortste pad van v1 naar vj met hoogstens k pijlen, k = 1, 2, . . . . De benadering uk+1 kan dan als volgt uit uk worden bepaald: uk+1 := min {ukj , mini (uki + lij )}, j = 2, 3, . . . , n. j
(4.2)
Omdat de lengte van een kortste pad hoogstens n − 1 pijlen heeft, is un−1 = u∗ . Het algoritme van deze methode is dus als volgt, waarbij k(j) de voorganger van knooppunt j is op het kortste pad van v1 naar vj , j = 2, 3, . . . , n. Algoritme 4.2 Kortste paden van v1 naar vi , 2 ≤ i ≤ n volgens Bellman en Ford (versie 1). Invoer: Een gerichte graaf N = (V, A) met n knooppunten en met lengtefunctie l : A → R. Uitvoer: De lengte u∗i van het kortste pad van v1 naar vi , 1 ≤ i ≤ n, en de boom van kortste paden. 1. u1 := 0; k := 1; for j = 2 step 1 until n do begin wj := uj := l1j ; k(j) := 1 end 2. for j = 2 step 1 until n do for i = 2 step 1 until n do if ui + lij < wj do begin wj := ui + lij ; k(j) = i end 3. a. for j = 2 step 1 until n do uj := wj b. k := k + 1; c. if k = n − 1 then begin for j = 1 step 1 until n do u∗j := uj ; {(k(i), i), i = 2, 3, . . . , n} is een boom van kortste paden; STOP end else ga naar stap 2. 4
R.E. Bellman, On a routing problem, Quarterly of Applied Mathematics 16 (1958) 87–90; L.R. Ford, Network
flow theory, Paper P-923, The Rand Corporation, Santa Monica (1956). Zie ook: http://en.wikipedia.org/wiki/ Bellman-Ford algorithm.
4.1. KORTSTE PADEN
149
Bovenstaand algoritme kan op de volgende wijze worden versneld: Zodra uk+1 = uk , zal er nooit meer iets veranderen. Dan is dus u∗ = uk en kunnen we stoppen. n o Zij wjk+1 := min wjk , mini<j {wik+1 + lij }, mini>j {wik + lij } , j = 2, 3, . . . , n, dan geldt (start met w1 = u1 ), (1) voor alle k en j is wjk ≤ ukj en is er een pad van v1 naar vj met lengte wjk ; = u∗j , 2 ≤ j ≤ n, geeft wn−1 ook de lengte van kortste paden; (2) omdat u∗j ≤ wjn−1 ≤ un−1 j (3) meestal convergeert wk veel sneller dan uk naar u∗ . Bovenstaande overwegingen leiden tot het volgende algoritme. Algoritme 4.3 Kortste paden van v1 naar vi , 2 ≤ i ≤ n volgens Bellman en Ford (versie 2). Invoer: Een gerichte graaf N = (V, A) met n knooppunten en met lengtefunctie l : A → R. Uitvoer: De lengte u∗i van het kortste pad van v1 naar vi , 1 ≤ i ≤ n, en de boom van kortste paden. 1. u1 := 0; k := 1; klaar := 1. for j = 2 step 1 until n do begin wj := uj := l1j ; k(j) := 1 end 2. for j = 2 step 1 until n do for i = 2 step 1 until n do if ui + lij < wj do begin wj := ui + lij ; k(j) = i; klaar := 0 end 3. a. k := k + 1. b. if k = n − 1 of klaar = 1, then begin for j = 1 step 1 until n do u∗j := uj ; {(k(i), i), i = 2, 3, . . . , n} is een boom van kortste paden; STOP end else klaar := 1 en ga naar stap 2. Voorbeeld 4.2 Laat de lengtes van de pijlen van een graaf met 7 knooppunten gegeven zijn door nevenstaande lengtematrix L. Voor het getal ∞ nemen we in de berekeningen 100. Tijdens de berekeningen geven we alleen aan wat verandert. Iteratie 1: u := (0, −3, 100, 100, 2, 3, 100).
L=
0
−3
∞
0
∞
∞
6
∞
∞
∞
∞
∞
∞
∞
∞
∞
−5
15
2
3
∞
12 ∞ ∞ 0 ∞ ∞ ∞ ∞ 8 0 ∞ 4 11 ∞ −7 0 ∞ ∞ −10 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ 0
k(2) := k(3) := k(4) := k(5) := k(6) := k(7) := 1. k := 1; klaar := 1.
150
HOOFDSTUK 4. NETWERK OPTIMALISERING
Iteratie 2: u3 := −8; k(3) := 2; klaar := 0; u4 := 12; k(4) := 2; u4 := −5; k(4) := 5; u6 := −1; k(6) := 4; u(7) := 6; k(7) := 4. k := 2; klaar := 1. Iteratie 3: u3 := −11; k(3) := 6; klaar := 0. k := 3; klaar := 1. Iteratie 4: Geen veranderingen, dus we stoppen met u∗ := (0, −3, −11, −5, 2, −1, 6) en k := (−, 1, 6, 5, 1, 4, 4). De boom van kortste paden wordt gegeven door de pijlen {(k(i), i), i = 2, 3, . . . , 7}, dus door de pijlen {(1, 2), (6, 3), (5, 4), (1, 5), (4, 6), (4, 7)}. Stelling 4.3 De Algoritmen 4.2 en 4.3 zijn correct en hebben complexiteit O(n3 ). Bewijs De correctheid is hierboven reeds aangetoond. De eerste iteratie is van O(n). Daarna komen er nog hoogstens n − 2 iteraties, die ieder complexiteit O(n2 ) hebben. Vraag 4.5 Veronderstel dat ukj de lengte is van de kortste pijlenreeks van v1 naar vj met precies k pijlen, j = 2, 3, . . . , n. Geeft een recurrente formule waaraan uk+1 voldoet. Vraag 4.6
Beschouw het netwerk met nevenstaande lengtematrix L.
Pas Algoritme 4.3 toe
om de lengtes van de kortste paden en de boom van kortste paden te bepalen.
4.1.4
L=
0
∞
4
10
3
∞
∞
0
−1 −3
2
11
∞
9
0
8
3
2
∞
4
0
0
8
6
∞
0
1
2
0
3
∞
1
−1
3
2
0
∞
4
3
∞
∞
2
∞
0 1 3 −1 0 0
Methode van Floyd en Warshall
In plaats van de kortste paden vanuit ´e´en punt, beschouwen we in deze paragraaf de kortste paden tussen ieder tweetal punten. Laat u∗ij de lengte van het kortste pad zijn van vi naar vj en k(i, j) het knooppunt dat direct voor j komt op het kortste pad van vi naar vj , voor alle i en j. We nemen weer aan dat het netwerk geen ronden met een negatieve lengte heeft. Met achtereenvolgens ieder knooppunt als wortel zouden we bijvoorbeeld n keer het algoritme van Bellman en Ford kunnen toepassen. Dit geeft dan een methode met complexiteit O(n4 ). Het kan echter ook met een methode van O(n3 ), zoals Floyd en Warshall hebben voorgesteld.5 5
R.W. Floyd, Algorithm 97: Shortest path, Communications of the ACM 5 (1962) p. 345; S. Warshall, A
theorem on Boolean matrices, Journal of the ACM 9 (1962) 11–12. Zie ook: http://en.wikipedia.org/wiki/FloydWarshall algorithm.
4.1. KORTSTE PADEN
151
In deze methode gebruiken we ukij voor de lengte van het kortste pad van vi naar vj als we voor de tussenpunten slechts v1 , v2 , . . . , vk−1 mogen gebruiken. Hierbij geldt: u1ij := lij en k(i, j) := i voor alle i en j. Omdat het kortste pad van vi naar vj met de tussenpunten uit {v1 , v2 , . . . , vk } := min{ukij , ukik + ukkj } voor alle i en j. Tenslotte knooppunt vk niet of wel bevat, geldt: uk+1 ij n+1 merken we op dat u∗ij = uij voor alle i en j. Het algoritme is dus als volgt.
Algoritme 4.4 Kortste paden tussen ieder tweetal knoopunten volgens Floyd en Warshall. Invoer: Een gerichte graaf N = (V, A) met n knooppunten en met lengtefunctie l : A → R. Uitvoer: De lengte u∗ij van het kortste pad van vi naar vj voor alle i en j, en voor iedere (i, j) het knooppunt k(i, j), zijnde het knooppunt dat direct voor j komt op het kortste pad van vi naar vj . 1. for i = 1 step 1 until n do for j = 1 step 1 until n do begin uij := lij ; k(i, j) := i end 2. for k = 1 step 1 until n do for i = 1 step 1 until n for j = 1 step 1 until n if uik + ukj < uij then begin uij := uik + ukj ; k(i, j) := k(k, j) end 3. for i = 1 step 1 until n do for j = 1 step 1 until n do u∗ij := uij
Stelling 4.4 De complexiteit van de methode van Floyd en Warshall is O(n3 ) Bewijs Het is direct duidelijk dat stap 1 complexiteit O(n2 ) heeft en stap 2 O(n3 ). Voorbeeld 4.3 Laat de lengtes van de pijlen van een graaf met zes knoop-
punten gegeven zijn door nevenstaande lengtematrix L.
L=
Tijdens de berekeningen geven we alleen aan wat verandert. Iteratie 1: De eerste U -matrix is gelijk aan L en k(i, j) := i voor i, j = 1, 2, . . . , 6. Iteratie 2:
0
3
∞
2
∞
0
10
6
∞ ∞
∞ ∞ ∞ 1 0 9 ∞ 3 −1 8 ∞ 0 4 ∞ ∞ ∞ 2 3 0 ∞ ∞ ∞ 1 ∞ 4 0
u42 := 2; k(4, 2) := 1. Iteratie 3: u13 := 13; k(1, 3) := 2; u34 := 7; k(3, 4) := 2; u43 := 12; k(4, 3) := 2.
152
HOOFDSTUK 4. NETWERK OPTIMALISERING
Iteratie 4: u16 := 16; k(1, 6) := 3; u26 := 13; k(2, 6) := 3; u46 := 15; k(4, 6) := 3; u52 := 3; k(5, 2) := 3; u56 := 5; k(5, 6) := 3; u62 := 2; k(6, 2) := 3; u64 := 8; k(6, 4) := 2. Iteratie 5: u13 := 8; k(1, 3) := 5; u15 := 6; k(1, 5) := 4; u21 := 5; k(2, 1) := 4; u25 := 10; k(2, 5) := 4; u31 := 6; k(3, 1) := 4; u35 := 11; k(3, 5) := 4; u51 := 2; k(5, 1) := 4; u61 := 7; k(6, 1) := 4; u64 := 7; k(6, 4) := 5. Iteratie 6: u16 := 11; k(1, 6) := 3; u43 := 6; k(4, 3) := 5; u46 := 9; k(4, 6) := 3; u61 := 6; k(6, 1) := 4; u64 := 7; k(6, 4) := 5. Iteratie 7: u35 := 7; k(3, 5) := 6. verkregen matrices U ∗ en K. 3 8 2 6 11 0 10 6 10 13 1 0 7 7 3 2 6 0 4 9 3 2 3 0 5 6 2 1 7 4 0
Hieronder staan de 0 5 6 ∗ U = −1 2
K=
1 1 5 1 4 3
4 2 2 2 4 3 4 3 3 2 6 3 4 1 5 4 4 3 4 3 5 5 5 3 4 3 6 5 6 6
Hiermee zijn alle kortste paden bepaald. Willen we bijvoorbeeld het kortste pad van v6 naar v1 hebben, dan lezen we af dat u∗61 = 6; de route krijgen we door in de K-matrix vanaf k(6, 1) terug te lopen totdat we in knooppunt 6 zijn: k(6, 1) = 4, dus de laatste pijl is (4, 1); k(6, 4) = 5, dus de pijl daarvoor is (5, 4); k(6, 5) = 6, dus de eerste pijl is (6, 5). Het pad is dus {6, 5, 4, 1}. Vraag 4.7 Pas het algoritme van Floyd en Warshall toe op het de L-matrix uit Vraag 4.6. Vraag 4.8 Veronderstel dat het kortste pad van vi naar vj niet uniek is. Bijvoorbeeld, veronderstel dat er twee kortste paden zijn, zeg {vi , v2 , v4 , vj } en {vi , v10 , v1 , vj }. Welk pad wordt dan gekozen met het algoritme van Floyd en Warshall? Stel een regel op die deze vraag in het algemeen beantwoordt.
4.1.5
De kortste gemiddelde ronde
Het is niet al te moeilijk om een O(n3 ) algoritme op te stellen om de kortste ronde in een netwerk N = (V, A) te vinden (dit wordt gevraagd in Opgave 4.6). Het probleem dat we in deze paragraaf beschouwen betreft de kortste ronde per het aantal pijlen dat hiervoor wordt gebruikt: ¯ ¾ ½ l(C) ¯¯ C is een ronde . g(N ) = min |C| ¯
4.1. KORTSTE PADEN
153
Om een dergelijke ronde te bepalen hebben we een knooppunt nodig vanwaaruit alle andere knooppunten bereikbaar zijn. Daartoe voegen we een extra knooppunt v0 toe met pijlen naar alle andere knooppunten met lengte 0; dit verandert het probleem niet. Noteer de knooppuntenverz. van dit probleem als V = {v0 , v1 , . . . , vn−1 }. Laat voor iedere vj ∈ V en iedere k ∈ N0 : Fk (j) = de minimale lengte van een pijlenreeks van precies k pijlen zijn van v0 naar vj . (als zo’n pijlenreeks niet bestaat, dan nemen we Fk (j) = ∞). Nu geldt het volgende resultaat. Stelling 4.5
½ ½ k (j) g(N ) = min0≤j≤n−1 max0≤k≤n−1 Fn (j)−F n−k
¯ ¾¾ ¯ ¯ Fk (j) < ∞ en het netwerk is acyclisch d.e.s.d. ¯
als Fn (j) = ∞ voor alle j. Bewijs Het toegevoegde knooppunt v0 zit op geen enkele ronde, zodat iedere enkelvoudige ronde hoogstens n − 1 knooppunten bevat. Als er een ronde bestaat die vj bevat, dan is Fn (j) < ∞. Hieruit is direct duidelijk dat netwerk acyclisch is d.e.s.d. als Fn (j) = ∞ voor alle j. We zullen eerst bewijzen dat als g(N ) = 0, ook ½ ½ Fn (j) − Fk (j) min0≤j≤n−1 max0≤k≤n−1 n−k
¯ ¾¾ ¯ ¯ Fk (j) < ∞ = 0. ¯
Als g(N ) = 0, dan zijn er geen rondes van negatieve lengte, maar wel met lengte 0. Laat u∗j de lengte van de kortste pijlenreeks van v0 naar vj zijn, zodat geldt Fn (j) ≥ u∗j = Fl (j) voor zekere 0 ≤ l ≤ n − 1, zodat ½ Fn (j) − Fk (j) max0≤k≤n−1 n−k
¯ ¾ ¯ ¯ Fk (j) < ∞ ≥ 0 voor alle j. ¯
We moeten nu nog laten zien dat er een j is waarvoor bovenstaande uitdrukking de waarde 0 heeft, d.w.z. dat Fn (j) = u∗j (dan Fn (j) = Fl (j) ≤ Fk (j) voor zekere 0 ≤ l ≤ n − 1 en voor alle 0 ≤ k ≤ n − 1, zodat max0≤k≤n−1 {Fn (j) − Fk (j)} = 0). Laat C een ronde van de lengte 0 zijn, neem een vi op C, laat P een kortste pad zijn van v0 naar vi gevolgd door n keer de ronde C doorlopen, en laat P ∗ de eerste n pijlen van P zijn, eindigend in knooppunt vj van C. Omdat P een kortste pijlenreeks is van v0 naar vi , is P ∗ ook een kortste pijlenreeks van v0 naar vj , zodat Fn (j) = u∗j . Nadat we dus de stelling hebben bewezen voor g(N ) = 0, gaan we nu de stelling bewijzen voor g(N ) = g, met g een willekeurig getal. Door bij alle lengtes het getal −g op te tellen, verandert g(N ) met −g in 0; alle Fk -getallen veranderen met −g · k, zodat eveneens met −g verandert. Hieruit volgt dat ½ ½ Fn (j) − Fk (j) min0≤j≤n−1 max0≤k≤n−1 n−k ook met −g verandert.
Fn (j)−Fk (j) n−k
¯ ¾¾ ¯ ¯ Fk (j) < ∞ ¯
voor alle k en j
154
HOOFDSTUK 4. NETWERK OPTIMALISERING
Bovenstaande stelling levert het volgende algoritme op om een kortste gemiddelde ronde te bepalen of om tot de conclusie te komen dat het netwerk acyclisch is.6 Algoritme 4.5 Kortste gemiddelde ronde Invoer: Een gerichte graaf N = (V, A) met n − 1 knooppunten v1 , v2 , . . . , vn−1 en met lengtefunctie l : A → R. Uitvoer: De kortste gemiddelde ronde of de conclusie dat er geen ronde is. 1. Voeg een knooppunt v0 toe. for i = 1 step 1 until n − 1 do voeg een pijlen (0, i) toe met l0i := 0. 2. F0 (0) := 0; for j = 1 step 1 until n − 1 do F0 (j) := ∞. 3. for k = 1 step 1 until n do for j = 1 step 1 until n − 1 do begin Fk (j) := ∞; for all (i, j) ∈ A do if Fk−1 (i) + lij < Fk (j) then begin Fk (j) := Fk−1 (i) + lij ; predk (j) := i end end 4. if Fn (j) = ∞ for all 1 ≤ j ≤ n − 1 then het netwerk is acyclisch (STOP) ¯ ½ ¾ Fn (j)−Fk (j) ¯¯ else laat max0≤k≤n−1 n−k ¯ Fk (j) < ∞ minimaal voor j = j∗ . 5. De kortste gemiddelde ronde krijgen we door vanuit j∗ via predn (j∗ ) terug te lopen tot we weer in j∗ zijn. ¡ ¢ Stelling 4.6 De complexiteit van het algoritme van Karp is O n(m + n) . Bewijs De complexiteit wordt bepaald door de stap 3 en 4. In stap 3 wordt de k-loop n keer doorlopen en voor iedere k wordt voor alle pijlen O(1) werk verricht: stap 3 heeft complexiteit O(nm). Stap ¡ ¢ 4 heeft complexiteit O(n2 ), zodat de totale complexiteit O n(m + n) is. Vraag 4.9 Pas het algoritme van Karp toe op het netwerk uit Vraag 4.4.
6
Deze oplossing van dit probleem is afkomstig van Karp (R.M. Karp, A characterization of the minimum cycle
mean in a digraph, Discrete Mathematics 23 (1978) 309–311.)
4.1. KORTSTE PADEN
4.1.6
155
Enkele toepassingen
Het meest betrouwbare pad probleem Beschouw een gerichte graaf G = (V, A) met een betrouwbaarheidsfunctie p: A → R+ , waarbij 0 < pij ≤ 1 de kans is dat een boodschap niet verloren gaat als deze over de verbinding (i, j) wordt gestuurd. Gevraagd wordt om het meest betrouwbare pad te vinden van knooppunt 1 naar knooppunt n. Zij b(P ) de betrouwbaarheid als het bericht over pad P van knooppunt 1 naar Q knooppunt n wordt gestuurd, d.w.z. b(P ) = (i,j)∈P pij . Het meest betrouwbare pad probleem is dus het probleem
Y
maxP b(P ) = maxP
pij ,
(i,j)∈P
waarbij P een pad is van knooppunt 1 naar knooppunt n. Merk op dat de logaritme een monotone (stijgende) functie is, wat tot gevolg heeft dat het maximaliseren van een functie equivalent is met het maximaliseren van de logaritme van die functie. Tevens merken we op dat het maximaliseren van een functie f equivalent is met het minimaliseren van de tegengestelde functie −f . Er geldt dus (ln is de natuurlijke logaritme): maxP b(P ) ⇔ maxP ln{b(P )} = maxP
X (i,j)∈P
ln pij ⇔ minP
X
{−ln pij }.
(i,j)∈P
Beschouwen we de lengtefunctie lij = −ln pij , dan is het kortste pad probleem m.b.t. de lengtefunctie l equivalent met het meest betrouwbare pad probleem m.b.t. de betrouwbaarheidsfunctie p. Omdat 0 < pij ≤ 1, is lij ≥ 0, zodat de methode van Dijksta kan worden toegepast. Het knapzakprobleem Iemand gaat op reis en moet een keuze maken uit n voorwerpen die hij wil meenemen. Voorwerp i heeft voor hem een waarde wi en een volume ai , i = 1, 2, . . . , n. Het totale volume dat kan worden meegenomen is b. Welke voorwerpen neemt hij mee als hij de meegenomen waarde wil maximaliseren? Dit probleem kan als combinatorisch optimaliseringsprobleem worden geformuleerd met variabelen xi ∈ {0, 1}, i = 1, 2, . . . , n, waarbij xi = 1 d.e.s.d. als het i-de voorwerp wordt meegenomen. De formulering wordt dan: max
n nX i=1
ofwel −min
n nX i=1
wi xi |
n X
o ai xi ≤ b; xi ∈ {0, 1}, i = 1, 2, . . . , n ,
i=1
−wi xi |
n X
o ai xi ≤ b; xi ∈ {0, 1}, i = 1, 2, . . . , n .
i=1
We kunnen dit probleem ook modelleren als kortste pad probleem.7 We veronderstellen daarbij dat de volumes geheeltallig zijn. Neem knooppunten (i, k) voor 0 ≤ i ≤ n + 1 en 0 ≤ k ≤ b. 7
De formulering van dit probleem als kortste pad probleem is afkomstig van Fulkerson: D.R. Fulkersom, Flow
networks and combinatorial operations research, American Mathematical Monthly 73 (1966) 115–138.
156
HOOFDSTUK 4. NETWERK OPTIMALISERING
De i heeft betrekking op het i-de voorwerp en de k op het (opgebouwde) volume. Er zijn alleen pijlen van (i − 1, k) naar (i, k) en van (i − 1, k) naar (i, k + ai ), i = 1, 2, . . . , n; de eerste pijl heeft als interpretatie dat het i-de voorwerp niet wordt gekozen en de tweede dat deze wel wordt gekozen; de eerste pijl heeft lengte 0 en de tweede lengte −wi . Tenslotte zijn er pijlen van (n, k) naar (n + 1, b) met lengte 0. Het is nu direct in te zien dat het kortste pad van (0, 0) naar (n + 1, b) correspondeert met de optimale oplossing van het knapzakprobleem. Vrachtschipprobleem 8 Een vrachtschip maakt een rondreis langs een aantal havens, zeg langs de havens 1, 2, . . . , n. Als de boot van haven i naar haven j vaart dan duurt dat tij uren en levert dat een winst van pij op. Voor een rondreis C langs een aantal havens noteren we met µ(C) de winst per uur. Er geldt P (i,j)∈C pij . µ(C) = P (i,j)∈C tij De directie vraagt zich af of er een rondreis gemaakt kan worden met een winst van meer dan µ0 per uur. Deze vraagstelling kan ook als volgt worden geformuleerd: is er een rondreis C met X {µ0 tij − pij } < 0? (i,j)∈C
Beschouw een netwerk met als knooppunten de n havens en met lij = µ0 tij − pij voor alle i en j. Dan is het vrachtschipprobleem herschreven tot de vraag of er in dit netwerk een ronde met negatieve lengte is. Opgave 4.5 geeft antwoord op de vraag hoe dit kan worden nagegaan. Schedulingprobleem Een call center moet telefonistes schedulen in een continu dienstrooster. Zij bi het minimum aantal telefonistes dat nodig is gedurende uur i, i = 1, 2, . . . , 24. Iedere telefoniste werkt in een shift van 8 opeenvolgende uren en zo’n shift kan op ieder uur beginnen. Het call center wil een cyclische schedule bepalen dat zich dagelijks herhaalt. Gegeven de getallen bi , i = 1, 2, . . . , 24, wordt gevraagd of er een cyclisch schedule mogelijk is met in totaal een gegeven aantal van N telefonistes. Laat yi het aantal telefonistes zijn dat hun dienst begint in uur i, i = 1, 2, . . . , 24. We zoeken dus een toelaatbare oplossing y, met yi ∈ N0 (i = 1, 2, . . . , 24) van het volgende stelsel: ≥ bi , i = 8, 9, . . . , 24 yi + yi−1 + · · · + yi−7 (4.3) yi + yi−1 + · · · + y1 + y24 + y23 + · · · + y17+i ≥ bi , i = 1, 2, . . . , 7 y + y +···+ y =N 1
2
24
Definieer nieuwe variabelen ui , i = 1, 2, . . . , 24, waarbij ui het aantal telefonistes is dat nieuw wordt ingezet gedurende de eerste i uren. Er geldt: u1 = y1 ; u2 = y1 + y2 ; . . . ; u24 = y1 + y2 + · · · + y24 . 8
G.B. Dantzig, W. Blattner and M.R, Rao, Finding a cycle in a graph with minimum cost to time ratio with
application to a ship routing problem, in: P. Rosenstiehl (ed.), Theory of Graphs (1966) 209–213.
4.1. KORTSTE PADEN
157
Het stelsel (4.3) kan dus ook worden geschreven ui − ui−8 u + u24 − u16+i i ui − ui−1 u24
met variabelen ui ∈ N0 , i = 1, 2, . . . , 24: ≥ bi , i = 9, 10, . . . , 24 ≥ bi , i = 1, 2, . . . , 8 ≥ 0, i = 2, 3, . . . , 24
(4.4)
=N
Dit laatste stelsel is weer equivalent met het volgende stelsel waarin u1 ≥ 0 en ui ∈ N (2 ≤ i ≤ 24): i = 9, 10, . . . , 24 ui−8 − ui ≤ −bi , (4.5) u16+i − ui ≤ N − bi , i = 1, 2, . . . , 8 u − u ≤ 0, i = 2, 3, . . . , 24 i−1
i
Merk op dat als u een oplossing is van (4.5), u + c dat ook is voor iedere constante vector c. We mogen dus u1 = 0 nemen. Merk bovendien op dat iedere rij van (4.5) precies ´e´en +1 en ´e´en -1 bevat, zodat de gespiegelde matrix van het stelsel (4.5) overeenkomt met de incidentiematrix van een gerichte graaf. Deze matrix is totaal unimodulair, zodat een eventuele oplossing van stelsel (4.5) in Z is te vinden. Er geldt dus dat het stelsel (4.3) een toelaatbare oplossing y met yi ∈ N0 (i = 1, 2, . . . , 24) heeft d.e.s.d. als stelsel (4.5) met daaraan toegevoegd u1 = 0 een toelaatbare oplossing heeft. Beschouw de gerichte graaf G = (V, A) met knooppuntenverz. V = {1, 2, . . . , 24} en met pijlenverz. A = {(i, i − 8), 9 ≤ i ≤ 24} ∪ {(i, 16 + i), 1 ≤ i ≤ 8} ∪ {(i, i − 1), 2 ≤ i ≤ 24}. Stelsel (4.5) met u1 = 0 is het stelsel dat behoort bij de simplex methode voor het kortste pad probleem 9 op G t.a.v. de lengtefunctie li,i−8 := −bi (9 ≤ i ≤ 24); li,16+i := N − bi (1 ≤ i ≤ 8); li,i−1 := 0 (2 ≤ i ≤ 24). Lemma 4.1 Stelsel (4.5) heeft een toelaatbare oplossing d.e.s.d. als l(C) ≥ 0 voor iedere ronde C in de graaf G = (V, A) met lengtefunctie l. Bewijs ⇒ Beschouw een ronde C = {i1 , i2 , . . . , ik , ik+1 = i1 }. Uit uij+1 − uij ≤ lij ,ij+1 , 1 ≤ j ≤ k, volgt: P P 0 = uik+1 − ui1 = kj=1 (uij+1 − uij ) ≤ kj=1 lij ,ij+1 = l(C). ⇐ Als er geen rondes met negatieve lengte zijn, dan is het begrip lengte van het kortste pad van knooppunt 1 naar knooppunt i goed gedefinieerd en noem deze lengte ui voor i = 1, 2, . . . , 24. Deze u voldoet aan stelsel (4.5) met u1 = 0. Om het schedulingprobleem op te lossen moeten we dus nagaan of er al of niet een ronde met negatieve lengte is. Dit kan bijvoorbeeld worden gedaan met de methode van Bellman en Ford (zie Opgave 4.5). Productieplanning Een productielijn bestaat uit n stadia en ieder stadium bestaat uit een bepaalde fabricage operatie gevolgd door een eventuele inspectie. Het product komt bij het begin van de productielijn binnen 9
Dit wordt in het college Besliskunde 3 behandeld in het hoofdstuk over de Netwerk simplex methode
158
HOOFDSTUK 4. NETWERK OPTIMALISERING
in batches van B exemplaren. Tijdens het fabricageproces kunnen in ieder stadium defecten ontstaan; de kans dat in stadium j in een exemplaar een defect ontstaat is een gegeven getal αj , j = 1, 2, . . . , n. Een defect is niet repareerbaar en betekent productieverlies. Aan het einde van ieder stadium kunnen we ofwel alle ofwel geen enkel exemplaar van een batch inspecteren. We nemen daarbij aan dat bij inspectie defecten ook werkelijk worden ontdekt en dat deze uit de batch worden verwijderd. Aan het einde van het laatste stadium vindt altijd inspectie plaats, zodat alleen goede eindproducten worden afgeleverd. We gaan uit van de volgende bekende data: pj : de productiekosten per exemplaar in stadium j (1 ≤ j ≤ n). fij : de inspectiekosten per batch als aan het einde van stadium j een inspectie wordt gedaan, terwijl de vorige inspectie aan het einde van stadium i heeft plaats gevonden (0 ≤ i < j ≤ n); f0j zijn de inspectiekosten als in stadium j voor het eerst inspectie plaats vindt). gij : de inspectiekosten per exemplaar als aan het einde van stadium j een inspectie wordt gedaan, terwijl de vorige inspectie aan het einde van stadium i heeft plaats gevonden (0 ≤ i < j ≤ n). Er wordt een optimaal inspectieplan gevraagd, d.w.z. minimaliseer de totale inspectie- en productiekosten voor een batch die aankomt met B exemplaren. Dit probleem kan als volgt worden opgelost. Neem een gerichte graaf G = (V, A) met V = {0, 1, . . . , n} en A = {(i, j) | i < j}. Een pad is deze graaf van 0 naar n correspondeert dan ´e´enduidig met een inspectieplan. Q Laat B(i) = B · ik=1 (1 − αk ) = het verwachte aantal niet-defecte exemplaren aan het einde van stadium i, 1 ≤ i ≤ n. Als er dus aan het einde van stadium i inspectie plaats vindt, dan houden we B(i) goede exemP plaren over. Neem lij = fij + B(i)gij + B(i) jk=i+1 pk voor alle pijlen (i, j). Het is nu direct duidelijk dat het kortste pad van 0 naar n correspondeert met het goedkoopste inspectieplan.
Projectplanning (CPM) Probleemstelling Een project bestaat uit een aantal activiteiten die gedeeltelijk afhankelijk en gedeeltelijk onafhankelijk van elkaar kunnen worden uitgevoerd: sommige activiteiten kunnen tegelijkertijd worden uitgevoerd, andere kunnen pas starten als weer andere activiteiten klaar zijn. Iedere activiteit heeft een gegeven tijdsduur, waarin deze activiteit kan worden uitgevoerd. We zijn ge¨ınteresseerd in vragen als: -
Wat is de kortste tijdsduur van het totale project?
-
Wat is het vroegste en wat is het laatste tijdstip waarop een activiteit kan starten zonder dat daardoor de totale tijdsduur van het project verandert?
4.1. KORTSTE PADEN
159
Voorbeeld 4.4 Veronderstel dat een bouwproject verdeeld kan worden in de activiteiten A, B, ..., N. De tijden en de volgordebeperkingen staan in onderstaande tabel. Wat is de kortste tijdsduur van het totale project en hoe moet de planning zijn om deze te bereiken? Activiteit
Tijdsduur
Voorganger
Activiteit
Tijdsduur
Voorganger
A
4
-
H
1
B
B
3
-
I
4
C, H
C
3
-
J
2
G, E
D
2
B
K
3
F, J
E
2
B
L
4
G, E
F
4
A, D
M
2
I, N
G
3
A, D
N
3
C, H
Modellering Om een project te modelleren wordt een netwerk gebruikt. De pijlen corresponderen met de activiteiten en de getallen bij de pijlen met de tijdsduur; de knooppunten komen overeen met bepaalde stadia waarin de realisatie van het project verkeert. Zo is er een knooppunt dat correspondeert met het begin en een knooppunt dat correspondeert met het einde van het project. Aan het netwerk leggen we de eis op dat er geen evenwijdige pijlen in mogen voorkomen. Het is altijd mogelijk hieraan te voldoen door dummy activiteiten (activiteiten met tijdsduur 0) in te voeren. In het Voorbeeld 4.4 heeft activiteit M als voorgangers I en N. Deze situatie kan dus niet gerepresenteerd worden door twee evenwijdige pijlen voor I en N, gevolgd door pijl M. In plaats daarvan voeren we een dummypijl P in en modelleren we het als: s @ ¡ µ I¡ @ P ¡ @ R @ ¡ -s s
N
-s
M
Door eventueel aan ieder paar activiteiten I en J met I een directe voorganger van J een dummy, zeg IJ, toe te voegen en dit te modelleren als s
I
-s
IJ
-s
J
-s
is altijd een correcte netwerkrepresentatie te vinden (de startpunten van de activiteiten die geen voorganger hebben kunnen worden samengevoegd tot het beginpunt, en de eindpunten van de activiteiten zonder opvolger tot het eindpunt van het project). Een interessante vraag is: hoe construeren we een netwerk met zo min mogelijk dummies? Hiervoor is geen goede methode bekend.
160
HOOFDSTUK 4. NETWERK OPTIMALISERING
Voorbeeld 4.4 (vervolg) Onderstaand netwerk, met ´e´en dummy (P), geeft een goed model voor het probleem. F
3
s @ µ6 ¡ ¡ @
¡
A¡ ¡
1
D
¡
¡ B s¡ @ @ @ @ C@
¡
@ @ G @ @
- s2
E
7
-s µ@ ¡ ¡ @
¡
¡
¡ @ R¡ @ s 5
H
@ @ K @ @
J ¡
6
L
@ R @ - s9 * © © ©© © ©©
s © © @ © M ¡ µ © @ P © @ N¡ © ¡ @ @ ©© ? R @ @¡ R -© s s 4
I
8
Het netwerk mag geen ronde bevatten, want anders is er inconsistentie (waarom?). De knooppunten kunnen dan altijd z´o genummerd worden dat de pijlen van een laag naar een hoger nummer lopen (zie Voorbeeld 4.4). Ga na dat deze nummering op eenvoudige wijze gevonden kan worden door het volgende algoritme, dat topologisch sorteren wordt genoemd, uit te voeren : Algoritme 4.6 Topologisch sorteren Invoer: Een gerichte graaf N = (V, A) met n knooppunten zonder ronden. Uitvoer: Een nummering van de knooppunten zdd. als (i, j) een pijl geldt dat i < j. 1. i := 1. 2. a. Kies een knooppunt zonder binnenkomende pijlen en geef dit nummer i. b. Laat knooppunt i en de daarvan uitgaande pijlen weg. 3. a. i := i + 1. b. if alle knooppunten genummerd zijn: STOP. else ga naar stap 2. Bovenstaand algoritme heeft complexiteit O(m), want per knooppunt vi is het werk van de orde O{d(vi )}. Berekening van het kritieke pad De activiteiten van het project corresponderen met de pijlen en van de knooppunten kunnen we zeggen dat ze de toestanden van het project voorstellen. Voor iedere toestand i gaan we twee
4.1. KORTSTE PADEN
161
grootheden berekenen: het vroegste tijdstip ei en het laatste tijdstip li . Het zal blijken dat dit overeenkomt met langste paden in een netwerk. Het vroegste tijdstip is het tijdstip waarop alle activiteiten met deze toestand als eindpunt gereed zijn, indien de voorafgaande activiteiten zo vroeg mogelijk starten. Voor iedere toestand komt dit overeen met de lengte van het langste pad van het beginpunt naar deze toestand, waarbij we voor de lengte de tijdsduur nemen. Dit heeft de volgende Bellman-vergelijkingen ( e1 := 0 ei := maxk6=i {ek + tki | (k, i) is een pijl van het netwerk}, i = 2, 3, . . . , n. Omdat het netwerk acycisch is en de nummering topologisch is gesorteerd, kunnen deze tijdstippen worden berekend door voorwaartse recursie, d.w.z. dat e1 , e2 , . . . , en achter elkaar met bovenstaande formule te bepalen zijn. Het laatste tijdstip is het tijdstip waarop tenminste ´e´en activiteit met deze toestand als beginpunt moet starten om de totale tijdsduur van het project niet boven en uit te laten komen. De berekening van deze getallen gaat met achterwaartse recursie: ( ln := en li := min{lj − tij | (i, j) is een pijl van het netwerk}, i = n − 1, n − 2, . . . , 1. Voorbeeld 4.4 (vervolg) Voor het voorbeeld verlopen de berekeningen als volgt: Berekening vroegste tijdstippen ei
Berekening laatste tijdstippen li
Toestand i
Voorgangers
ek + tki
ei
Toestand i
Opvolgers
lj − tij
li
1
-
-
0
9
-
-
13
2
1
3
3
8
9
11
11
3
1
4
7
9
10
10
2
5
6
8
11
11
1
3
5
7
8
8
2
4
9
9
2
5
6
8
3
8
8
8
7
7
6
4
7
7
5
5
5
7
3
9
7
6
5
10
10
3
3
4
8
8
4
6
6
7
5
6
5
12
2
0
7
13
3
1
8
10
4
4
4 5
8 9
5 4
4 3 2
1 13
3
0
162
HOOFDSTUK 4. NETWERK OPTIMALISERING
Aan iedere activiteit (i, j) kunnen we ook een speling sij toekennen: sij = lj − ei − tij . De speling sj van toestand j is gedefinieerd door sj = lj − ei . Een activiteit met speling 0 heet kritisch als geldt dat toename van de tijdsduur van deze activiteit de tijdsduur van het totale project eveneens doet toenemen. Er is altijd een pad van knooppunt 1 naar knooppunt n, waarop alle pijlen kritisch zijn (anders zou het project eerder dan op tijdstip en af zijn). Dit pad heet het kritieke pad. De hier beschreven methode staat in de literatuur bekend als critical path method, afgekort als CPM. Voorbeeld 4.4 (vervolg) Toestand
Speling
Activiteit
Speling
Activiteit
Speling
1
0
A
1
J
0
2
0
B
0
K
0
3
0
C
4
L
1
4
3
D
0
M
3
5
0
E
3
N
4
6
4
F
1
P
4
7
0
G
0
8
3
H
3
9
0
I
3
Het kritieke pad is: 1 → 2 → 3 → 5 → 7 → 9, d.w.z. de activiteiten B, D, G, J en K, met totale tijdsduur 13.
Vraag 4.10 Beschouw een graaf met 5 knooppunten. Hieronder staat de betrouwbaarheidsfunctie (een − betekent dat deze verbinding niet aanwezig is).
− 0.97 0.95 0.97
−
− − 0.99 0.98 0.965 p = − 0.99 − 0.96 0.95 − − 0.98 − 0.96 − − − − − Bepaal het meest betrouwbare pad van knooppunt 1 naar knooppunt 5.
Vraag 4.11 Beschouw een project met de activiteiten A, B, . . . , L waarbij de volgende restricties gelden, terwijl ook de tijdsduur bekend is (zie onderstaande tabel).
4.1. KORTSTE PADEN
163
Activiteit
Tijdsduur
Voorganger
Activiteit
Tijdsduur
Voorganger
A
4
-
G
5
C, F
B
6
-
H
8
B
C
3
-
I
5
E, H
D
7
A, B
J
6
E, H
E
10
B
K
4
C, D, F, J
F
2
B
L
7
K
a. Representeer dit project als netwerk en gebruik daarbij hoogstens drie dummies. b. Nummer de knooppunten z´odat i < j als er een pijl is van i naar j. c. Maak een planningsschema voor dit probleem.
4.1.7
Opgaven
Opgave 4.1 Beschouw een volledige gerichte graaf met 102 knooppunten. ¡100¢ P a. Toon aan dat er 100 k=0 k k! verschillende enkelvoudige paden zijn van v1 naar v102 . b. Toon aan dat dit aantal het grootste gehele getal is dat niet groter is dan 100!e. Opgave 4.2 Veronderstel dat G = (V, A) een gerichte graaf is waarvoor geldt dat (vi , vj ) ∈ A impliceert dat i < j. Construeer een O(m) algoritme om de (lengtes van de) kortste paden in G te bepalen. Opgave 4.3 Veronderstel dat G = (V, A) een netwerk is met lij = 1 voor alle (i, j), en laat de vanuit vi met ´e´en pijl bereikbare knooppunten gegeven zijn door de structuurlijst L[i], i = 1, 2, . . . , n. Modificeer het algoritme van Dijkstra z´o dat de (lengten van de) kortste paden in O(m + n) worden bepaald. Opgave 4.4 Veronderstel dat G = (V, A) een netwerk is, waarbij (vi , vj ) ∈ A impliceert dat i < j. Na hoeveel iteraties stopt Algoritme 4.3? Opgave 4.5 Beschouw een netwerk G = (V, A), waarvan we niet weten of aan Aanname 4.1 is voldaan. Veronderstel dat er in v1 geen binnenkomende pijlen zijn en dat er voor iedere vj 6= v1 een pad is van v1 naar vj . a. Toon aan dat G een ronde met een negatieve lengte heeft d.e.s.d. als unj < ujn−1 voor zekere j, waarbij ukj wordt bepaald volgens formule (4.2). b. Gebruik onderdeel a om na te gaan of het netwerk uit Vraag 4.6, met daarin l62 = −1 en de andere lengtes ongewijzigd, een ronde met negatieve lengte heeft.
164
HOOFDSTUK 4. NETWERK OPTIMALISERING
Opgave 4.6 Beschrijf een methode met complexiteit O(n3 ) om de kortste ronde in een netwerk te bepalen (neem weer aan dat er geen ronde met negatieve lengte is).
Opgave 4.7 Zij A = (aij ) een n × n matrix. Toon het volgende aan. A is een matrix van de lengtes van de kortste paden in een zeker netwerk zonder rondes met negatieve lengte d.e.s.d. als voor iedere i geldt: aii = 0 en aij ≤ aik + akj voor alle k en j.
Opgave 4.8 Beschouw het volgende van Dantzig afkomstige algoritme.10 Algoritme 4.7 1. for i = 1 step 1 until n do uii := 0. 2. for k = 2 step 1 until n do begin for l = 1 step 1 until k − 1 do begin ukl := min1≤j≤k−1 (lkj + ujl ); ulk = min1≤j≤k−1 (ljk + ulj ) end for i = 1 step 1 until k − 1 do for j = 1 step 1 until k − 1 do uij := min (uij , uik + ukj ). end Beantwoord de volgende vragen over dit algoritme. a. Pas het algoritme toe op Voorbeeld 4.3. b. Toon aan dat dit algoritme de kortste paden tussen ieder tweetal knooppunten bepaalt. c. Toon aan dat de complexiteit O(n3 ) is.
Opgave 4.9 Veronderstel dat G = (V, A), een netwerk zonder ronde van negatieve lengte, gegeven is door de structuurlijsten L[v], v ∈ V . Beschouw het volgende algoritme, waarin Q een wachtrij is.11 Algoritme 4.8 1. T [1] := 1; u1 := 0; Q := {1}. 2. for j = 2 step 1 until n do begin uj := ∞; T [j] := 0 end 10
G.B. Dantzig, All shortest routes in a graph, in: P. Rosenstielh (ed.), Theory of graphs, Proceeding Interna-
tional symposium Rome (1966) 91–92. 11 Voor een definitie van een wachtrij en de begrippen enqueue en dequeue zie Besliskunde 1; f ront(Q) is het ererste element van Q.
4.1. KORTSTE PADEN
165
3. while Q 6= ∅ do begin i := f ront(Q); dequeue(Q); T [i] := 0; for all j ∈ L[i] do begin if ui + lij < uj then begin uj := ui + lij ; k(j) := i; if T [j] = 0 then begin enqueue(j); T [j] := 1 end end end end Beantwoord de volgende vragen over dit algoritme. a. Pas het algoritme toe op Voorbeeld 4.2. b. Toon aan dat voor iedere i ∈ / Q geldt: ui + lij ≥ uj voor alle j. c. Toon aan dat Q in iedere iteratie een j bevat waarvoor geldt: uj = u∗j . d. Toon aan dat ieder knooppunt hoogstens n − 1 keer in Q kan worden geplaatst. e. Toon aan dat het algoritme eindigt met de lengtes en de boom van kortste paden. f. Toon aan dat de complexiteit O(n · m) is.
Opgave 4.10 Maak een planning voor het volgende project planningsprobleem. Activiteit
Tijdsduur
Voorganger
Activiteit
Tijdsduur
Voorganger
A
3
-
J
16
H
B
12
A
K
2
H
C
4
A
L
2
J, K
D
10
C
M
2
F, L
E
2
C
N
2
B, M
F
3
D, E
O
1
I, M
G
2
-
P
2
O
H
4
A, G
Q
3
N, P
I
3
G
166
HOOFDSTUK 4. NETWERK OPTIMALISERING
4.2
Netwerkstromen
4.2.1
Maximale stromen
Inleiding Zij G = (V, A) een gerichte graaf met capaciteiten bij ∈ Z+ voor alle (i, j) ∈ A. We zullen in deze paragraaf een methode beschrijven om een maximale toelaatbare stroom tussen twee knooppunten te bepalen, zeg van knooppunt 1 naar knooppunt n. Een stroom van 1 naar n is P P een geheeltallige functie op A zdd. j xij − j xji = 0 voor alle i 6= 1, n. P P De waarde v(x) van stroom x is gedefinieerd door v(x) = j x1j − j xj1 . Merk op dat ook geldt: P P v(x) = j xjn − j xnj . Een stroom x heet toelaatbaar als 0 ≤ xij ≤ bij voor alle (i, j) ∈ A. Zij W ⊂ V zdd. 1 ∈ W en n ∈ / W . De verzameling pijlen met beginpunt in W en eindpunt in V \W heet een (1, n)-snede. De capaciteit c(W ) van de bij zo’n (1, n)-snede gedefinieerd door P c(W ) = i∈W,j ∈W / bij . We zullen nu nader ingaan op de volgende twee (duale) problemen: 1. Bepaal een toelaatbare stroom van 1 naar n met maximale waarde (maximale stroom). 2. Bepaal een (1, n)-snede met minimale capaciteit (minimale snede).minimale snede Stelling 4.7 Voor iedere toelaatbare stroom x en iedere (1, n)-snede W geldt: v(x) ≤ c(W ). Bewijs Zij x een toelaatbare stroom en W een (1, n)-snede. Dan kunnen we schrijven: P P P P P v(x) = j xji } i∈W { j xij − j xj1 = j x1j − P P P P P P P P xji xij − i∈W j∈W xji − i∈W j ∈W = / i∈W j∈W xij + i∈W j ∈W / P P P P P P = xij − i∈W j ∈W xji ≤ i∈W j ∈W bij = c(W ). i∈W j ∈W / / / Opmerking Uit het bewijs van bovenstaande stelling volgt ook: v(x) = c(W ) d.e.s.d. als xij = bij voor alle (i, j) met i ∈ W, j ∈ / W en tevens xij = 0 voor alle (i, j) met i ∈ / W, j ∈ W . Als v(x) = c(W ), dan is x een maximale stroom en W een (1, n)-snede met minimale capaciteit. Methode van Ford en Fulkerson We zullen nu de methode van Ford en Fulkerson 12 beschrijven om een maximale stroom van knooppunt 1 naar knooppunt n te bepalen. Deze methode vindt ook een (1, n)-snede met minimale capaciteit. 12
L.R. Ford and D.R. Fulkerson, Maximal flow through a network, Canadian Journal of Mathematics 8 (1956)
399–404.
4.2. NETWERKSTROMEN
167
Ga uit van een toelaatbare stroom x (bijv. x = 0). Bij x behoort een gerichte graaf Nx = (V, Ax ) met Ax = {(i, j) | (i, j) ∈ A en xij < bij } ∪ {(j, i) | (i, j) ∈ A en xij > 0}. De pijlen uit de eerste verz. (de ’goede’ richting) heten voorwaarts en de pijlen uit de tweede verz. (de ’verkeerde’ richting) heten achterwaarts. Zij P in Nx een pad van 1 naar n. Zo’n pad P heet een groeiketen. Indien een groeiketen bestaat, dan kan de waarde van de stroom worden vergroot door over de pijlen van P een hoeveelheid ∆ te vervoeren, waarbij ∆ = min(∆1 , ∆2 ) met: ∆1 := min{bij −xij | (i, j) voorwaartse pijl van P } en ∆2 := min{xij | (j, i) achterwaartse pijl van P }. Voor de nieuwe stroom, noem deze weer xij + ∆ xij := xij − ∆ x ij
x, geldt (i, j) voorwaartse pijl van P (j, i) achterwaartse pijl van P als noch (i, j) noch (j, i) in P
Voorbeeld 4.5 Beschouw nevenstaande graaf. De getallen bij de pijlen zijn de capaciteiten. Start met x := 0. Neem P1 := {1, 3, 2, 4}; ∆1 := 2; ∆2 := ∞; ∆ := 2. x12 := 0; x13 := 2; x32 := 2; x24 := 2; x34 := 0. Neem P2 := {1, 2, 4}; ∆1 := 3; ∆2 := ∞; ∆ := 3.
2s
x12 := 3; x13 := 2; x32 := 2; x24 := 5; x34 := 0.
@
µ6 4 ¡¡ @5
Neem P3 := {1, 2, 3, 4}; ∆1 := 1; ∆2 := 2; ∆ := 1. x12 := 4; x13 := 2; x32 := 1; x24 := 5; x34 := 1. Neem P4 := {1, 3, 4}; ∆1 := 2; ∆2 := ∞; ∆ := 2. x12 := 4; x13 := 4; x32 := 1; x24 := 5; x34 := 3. Nu is er geen groeipad meer. De waarde van de verkregen stroom is
1
¡ ¡ s @ @
@ @ R s4
2
¡ µ ¡
¡3
6@
@ R s¡ 3
2 + 3 + 1 + 2 = 8. Neem W = {1, 2, 3}, dan is c(W ) = 8.
Stelling 4.8 Een toelaatbare stroom x is maximaal d.e.s.d. als er in Nx geen groeiketen is. Bewijs ⇒ Stel er is wel een groeiketen. Hierboven hebben we gezien dat er dan een stroom is met een hogere waarde: tegenspraak. ⇐ Laat W = {v | v is vanuit v1 in Nx bereikbaar}, dan is W een (1, n)-snede (anders is er een groeiketen van 1 naar n). Verder geldt: Als i ∈ W, j ∈ / W , dan is xij = bij ; als i ∈ / W, j ∈ W , dan is xij = 0. Volgens de opmerking na Stelling 4.7 is x een maximale stroom en W een (1, n)-snede met minimale capaciteit.
168
HOOFDSTUK 4. NETWERK OPTIMALISERING
Algoritme 4.9 Methode van Ford en Fulkerson Invoer: Een gerichte graaf N = (V, A) met capaciteiten bij ∈ Z+ voor alle (i, j) ∈ A. Uitvoer: Een maximale stroom x en een (1, n)-snede W met minimale capaciteit. 1. Start met een toelaatbare stroom (bijv. x := 0). 2. a. Bepaal in Nx een groeiketen P van 1 naar n (als zo’n keten niet bestaat: ga naar 3). b. Bepaal ∆ := min(∆1 , ∆2 ) met: ∆1 := min{bij − xij | (i, j) voorwaartse pijl van P }; ∆2 := min{xij | (j, i) achterwaartse pijl van P }. xij + ∆ (i, j) voorwaartse pijl van P c. xij := xij − ∆ (j, i) achterwaartse pijl van P x als noch (i, j) noch j, i) in P ij
d. Ga naar stap 2a. 3. x is een maximale stroom en W = {v | v is vanuit v1 in Nx bereikbaar} geeft een (1, n)snede met minimale capaciteit (STOP).
Gevolg 4.1
13
Voor een maximale stroom x en een minimale (1, n)-snede W geldt: v(x) = c(W ). Stelling 4.9 De methode van Ford en Fulkerson heeft complexiteit O(m·w), met w de waarde van de maximale stroom. Bewijs In iedere iteratie doen we het volgende: - constructie Nx : complexiteit O(m); - bepaling groeiketen P (bijv. met Depth-First Search): complexiteit O(m); - bepaling ∆: complexiteit O(n); - aanpassen x: complexiteit O(n). Per iteratie is de complexiteit O(m), er zijn O(w) iteraties: de complexiteit is O(m · w). Bovenstaand resultaat betekent niet dat de methode polynomiaal is. De input-parameters zijn namelijk n en m; w kan exponentieel zijn in deze parameters, zoals het volgende voorbeeld laat zien.
13
Dit resultaat staat bekend als de max-flow min-cut stelling van Ford en Fulkerson
4.2. NETWERKSTROMEN
169
Voorbeeld 4.6 2
s ¡@ µ ¡ 1@ n s @2 2n¡ 3 ? ¡ @ ¡ 1 @ @ R sn 4 ? s 1 s¡ @ ¡ µ @ ¡ @ ¡ ¡ 2n 2n@ @ ¡ R? @ s¡
Beschouw nevenstaand netwerk. De getallen bij de pijlen zijn de capaciteiten. Als we starten met x := 0, dan kunnen afwisselend de ketens {1, 2, 3, . . . , n−1, n} en {1, n−1, n−2, . . . , 2, n} als groeiketen worden gekozen. In iedere iteratie is ∆ = 1, zodat er 2n+1 iteraties zijn: w = 2n+1 .
n−1
Implementatie volgens Edmonds en Karp Edmonds en Karp hebben in 1972 aangetoond 14 dat als P met de techniek van het zijwaarts zoeken (Breadth-First Search) wordt bepaald een polynomiaal algoritme ontstaat met complexiteit O(m2 n). Bij het zijwaarts zoeken geldt voor iedere vi die bezocht wordt dat dit gebeurt met een minimum aantal pijlen om dit knooppunt vanuit v1 te bereiken. Laat σik het minimum aantal pijlen zijn om in de k-de iteratie via een groeiketen van v1 naar vi te gaan en τik het minimum aantal pijlen om in de k-de iteratie via een groeiketen van vi naar vn te gaan. Lemma 4.2 Als in de k-de iteratie bij stroom x in Nx een groeiketen met zo min mogelijk pijlen wordt gekozen, dan geldt voor iedere 1 ≤ i ≤ n dat σik+1 ≥ σik en τik+1 ≥ τik . Bewijs Veronderstel dat σik+1 < σik voor zekere i. Omdat σ1k+1 = σ1k = 0, is 2 ≤ i ≤ n. Laat vj een knooppunt zijn dat in Nx zo dicht mogelijk (d.w.z. met zo min mogelijk pijlen bereikbaar) bij v1 ligt en waarvoor geldt dat σjk+1 < σjk . Er is dus een q zdd. σjk+1 = σqk+1 + 1 ≥ σqk + 1. Er geldt σjk ≥ σjk+1 + 1 ≥ σqk + 2, d.w.z. (q, j) is geen pijl in het netwerk van iteratie k, maar dan zit de pijl (j, q) in de groeiketen van iteratie k : σqk = σjk + 1: tegenspraak. De ongelijkheid τik+1 ≥ τik is analoog te bewijzen. Stelling 4.10 (1) Als in iedere iteratie een groeiketen met zo min mogelijk pijlen wordt gekozen, dan zijn er hoogstens 12 n · m iteraties. (2) De implementatie van Edmonds en Karp heeft de complexiteit O(m2 n). 14
Edmonds, J. and R.M. Karp: Theoretical improvements in algorithmic efficiency for network flow problems,
Journal of the ACM 19 (1972) 248-264.
170
HOOFDSTUK 4. NETWERK OPTIMALISERING
Bewijs (1) Iedere groeiketen heeft een zogenaamde blokkerende pijl, dat is de pijl die ∆ bepaalt. Veronderstel dat (i, j) een blokkerende pijl is in iteratie k. De pijl (i, j) zit dan niet in Ax in iteratie k + 1, maar pas nadat de pijl (j, i) is een groeiketen heeft gezeten. Stel (j, i) zit in iteratie p ≥ k + 1 in een groeiketen. We kunnen dan schrijven: σip + τip = (σjp + 1) + τip ≥ (σjk + 1) + τik = (σik + 2) + τik . De lengte van een groeiketen waar (j, i) voor het eerst na iteratie k in zit is dus minstens 2 meer dan de lengte van de groeiketen in iteratie k waar (i, j) blokkerend is. Het gevolg hiervan is dat iedere pijl maximaal 21 n keer blokkerend kan zijn. Omdat er m pijlen zijn, is het aantal iteraties hoogstens 21 n · m. (2) Per iteratie is de complexiteit O(m), zodat de totale complexiteit O(m2 n) is.
Gevolg 4.2 De versie van Edmonds en Karp heeft voor schaarse netwerken 15 complexiteit O(n3 ) en voor dichte netwerken complexiteit O(n5 ).
Opmerkingen: 1. Er bestaan dichte netwerken waarin de versie van Edmonds en Karp O(n3 ) iteraties heeft.16 3
2. Voor vlakke grafen is door Johnson en Venkatesan een O(n 2 log n) algoritme opgesteld.17
Voorbeeld 4.7 Beschouw nevenstaande netwerk. De getallen bij de pijlen zijn weer de capaciteiten. Start met x = 0. P1 := {1, 4, 7}; ∆ := 3; x14 := x47 := 3. P2 := {1, 2, 5, 7}; ∆ := 3; x12 := x25 := x57 := 3. P3 := {1, 3, 6, 7}; ∆ := 2; x13 := x36 := x67 := 2. Er is geen groeipad meer. De waarde van de verkregen stroom is 3 + 3 + 2 = 8. In Nx zijn de knooppunten 1, 4 en 3 bereikbaar:
2s
6 -5s
@ @4 @ ¡ 4 R 1 ¡ s -4s 3 @ - s7 @ µ ¡ µ ¡ 1¡ ¡ @ 5@ ¡ ¡3 2- ¡ R¡ @ s s µ ¡
3¡
3
6
W = {1, 3, 4} geeft een snede met minimale capaciteit, nl. 8.
15
Schaarse grafen zijn grafen met m = O(n), zoals bijvoorbeeld in vlakke grafen; in dichte grafen is m = O(n2 ),
zoals bijvoorbeeld in de volledige graaf. 16 N. Zadeh, Theoretical efficiency of the Edmonds-Karp algorithm for computing maximal flows, Journal of the ACM 19 (1972) 248–264. 17 D.S. Johnson and S.M. Venkatesan, Using divide and conquer to find flows in directed planar networks in 3
O(n 2 log n) time, Proceedings 20th Allerton Conference on Communication, Control and Computing (1982) 898– 905.
4.2. NETWERKSTROMEN
171
Vraag 4.12 Bepaal een maximale stroom en een (1, 7)-snede met minimale capaciteit voor nevenstaand netwerk. De getallen bij de pijlen zijn weer de capaciteiten. Start met x = 0. Pas de implementatie van Edmonds en Karp toe.
6 - 4s @ ¡ µ ¡ µ@ 9¡ @4 7¡ @3 ¡ @ 6 ¡ @ @ R s¡ R s7 @ 1 ¡ s 5 5 @ @ ¡ µ µ ¡ @ 8¡ @4 ¡ 14 8@ ¡ @ ¡ @ R s? @ R s¡ ? 2 ¡ 2s
3
5
Stromen met onder- en bovengrenzen In deze paragraaf veronderstellen we dat aan iedere pijl (i, j) twee getallen aij , bij ∈ N0 zijn toegevoegd met aij ≤ bij . Een stroom x heet toelaatbaar als aij ≤ xij ≤ bij voor alle pijlen (i, j). De getallen aij en bij heten de onder- resp. bovengrenzen. Om in dit model een maximale stroom te vinden, moeten we eerst een toelaatbare stroom bepalen (x = 0 voldoet i.h.a. niet). Daartoe stellen we een geassocieerd netwerk N = (V , A) op met ondergrenzen 0 en capaciteiten bij . Dit geassocieerd netwerk heeft twee extra knooppunten, s en t; s heeft alleen uitgaande pijlen en t alleen binnenkomende pijlen. Voor ieder van de oorspronkelijke pijlen (i, j) wordt de capaciteit P bij = bij − aij ; de pijlen (s, j) krijgen capaciteit k akj , d.w.z. de som van de ondergrenzen P van naar j gerichte pijlen, en de pijlen (i, t) krijgen capaciteit k aik , d.w.z. de som van de ondergrenzen van uit i gerichte pijlen. Daarnaast is er een extra pijl (n, 1) met capaciteit ∞. Het geassocieerd netwerk is dus formeel als volgt gedefinieerd: V = V ∪ s ∪ t; A = A ∪ (n, 1) ∪ As ∪ At , waarbij As = {(s, j) | j ij − aij bP P At = {(i, t) | i ∈ V en k aik > 0}; bn1 = ∞; bij = k akj P a k
ik
∈ V en
P k
akj > 0} en
(i, j) ∈ A i = s, (s, j) ∈ As j = t, (i, t) ∈ At
Voorbeeld 4.8 s ©@ YH H ©¡ µ © 3 @HH 1 © ¡ © HH 3 © 1 ¡ 3@@ © R © ¼ s¡ s4 HH t s¾ 1 ©ss 3 @ © ¡ µ 3¡ ©© @ 5 1@ ¡©© © @ R? ¼ ¡ s©
3
3
s µ@ ¡ 1,4 ¡ @ 0,3 ¡ @ Rs 3,4 @ 1 s¡ 4 @ ¡ µ @ ¡ 0,3 2,3 @ ¡ R s? @ ¡
De getallen bij de pijlen (i, j) zijn aij , bij .
2
2
¾
∞
De getallen bij de pijlen zijn de capaciteiten bij .
Een toelaatbare stroom x van s naar t in N heet een volgemaakte stroom als xsj = bsj voor alle j P met (s, j) ∈ As , d.w.z. een stroom met waarde v(x) = (i,j) aij . Merk op dat een volgemaakte stroom een maximale stroom is en dat ook geldt xit = bit voor alle i met (i, t) ∈ At .
172
HOOFDSTUK 4. NETWERK OPTIMALISERING
Stelling 4.11 Als x een volgemaakte stroom is in N dan is x, gedefinieerd door xij = xij +aij voor alle (i, j) ∈ A, een toelaatbare stroom in N met v(x) = xn1 . Bewijs Omdat 0 ≤ x ≤ b, geldt: aij ≤ xij ≤ bij voor alle (i, j) ∈ A. Voor i 6= 1, n geldt: P P P P j∈V xij − j∈V xji = j∈V (xij + aij ) − j∈V (xji + aij ) P P = { j∈V xij + bit } − { j∈V xji + bsi } P P = { j∈V xij + xit } − { j∈V xji + xsi } = nettoproductie in knooppunt vi in netwerk N = 0. Voor i = 1 geldt: ¡P ¢ ¡P ¢ P P j∈V x1j − j∈V xj1 = { j∈V x1j + x1t − j∈V xj1 + xs1 − xn1 } + xn1 = nettoproductie in knooppunt v1 in netwerk N + xn1 = xn1 . P P Analoog geldt voor i = n : j∈V xnj − j∈V xjn = −xn1 . Stelling 4.12 Als N een toelaatbare stroom x heeft, dan heeft N een volgemaakte stroom x. Bewijs Neem xij = xij − aij voor alle (i, j) ∈ A, xn1 = waarde stroom x, xsj = P (s, j) ∈ As ; xit = j aij voor alle (i, t) ∈ At .
P
i aij
voor alle
Analoog aan Stelling 4.11 is direct in te zien dat 0 ≤ xij ≤ bij voor alle (i, j) ∈ A. Verder geldt: P P voor 1 ≤ i ≤ n : j∈V xij − j∈V xji = 0; P P voor i = s : j∈V xsj = (j,i) aji ≥ 0; P P voor i = t : i∈V xit = (i,j) aij ≥ 0. Hieruit volgt dat x een volgemaakte stroom is. Als we in N een volgemaakte stroom x hebben, dan geeft dit een toelaatbare stroom x voor N . Met een kleine aanpassing kan dan met de methode van Ford en Fulkerson een maximale stroom worden gevonden. De aanpassing betreft het begrip achterwaartse pijl. In plaats van xij > 0 moet nu voor een achterwaartse pijl gelden dat xij > aij . De restcapaciteit is dan xij − aij . Algoritme 4.10 Maximale stroom in een netwerk met onder- en bovengrenzen Invoer: Een gerichte graaf N = (V, A) met onder- en bovengrenzen, aij resp. bij ∈ Z+ . Uitvoer: Een maximale stroom x en een (1, n)-snede W met minimale capaciteit. 1. Construeer het netwerk N en bepaal daarin een maximale stroom x. 2. Als x geen volgemaakte stroom is: N heeft geen toelaatbare stroom en stop. Als x wel een volgemaakte stroom is: ga naar stap 3. 3. Bepaal een maximale stroom in N uitgaande van de toelaatbare stroom x, gedefinieerd door xij := xij + aij voor alle (i, j) ∈ A.
4.2. NETWERKSTROMEN
173
Voorbeeld 4.8 (vervolg) Een maximale stroom van s naar t in het hiernaast staande netwerk N krijgen we via de volgende groeiketens P : P = {s, 2, t} met hoeveelheid 1. P = {s, 3, 4, 1, t} met hoeveelheid 3. De nu verkregen stroom is maximaal, maar is
2
©sH Y ©¡ µ @HH © 3 ¡ @ HH1 © © ¡3 H © 3@@ 1 R s4 HHss ¼© © ¡ s t s¾ 1 © 3 @ µ ©© 3¡¡ @ © © 5 1@ ¡ © © @ R¡ ¼ © s? 3
geen volgemaakte stroom. Het oorspronkelijke
¾
∞
netwerk heeft dus geen toegelaten stroom. Vraag 4.13 Ga met Algoritme 4.10 na of nevenstaand netwerk, waarin bij iedere pijl de onder- en de bovengrens staat, een toelaatbare stroom heeft. Zo ja, bepaal een maximale stroom.
2
¡ µ 0,3 ¡ ¡ s 4,4 1 ¡ @ @ 0,2@ R @
s @
@0,4 1,4 @
s? 3
R s5 @ µ 0,5 ¡¡ 4,7 ¡ s? ¡ 4
4.2.2
Minimale kostenstromen
In dit model hebben we een netwerk met ondergrenzen 0, capaciteiten bij en kosten cij voor iedere pijl (i, j) ∈ A. De kosten worden per eenheid van vervoer berekend, dus een stroom x heeft kosten c(x) :=
X
cij xij .
(i,j)∈A
We veronderstellen in deze paragraaf dat de kosten over een ronde niet-negatief zijn. We zullen een algoritme opstellen dat de volgende twee problemen oplost: a. Bepaal een stroom met een gegeven waarde w en minimale kosten. b. Bepaal een stroom met maximale waarde en minimale kosten. Minimale kostenstroom via kortste paden Deze oplossingsmethode is afkomstig van Busacker en Gowen 18 en lijkt sterk op de methode van Ford en Fulkerson. Als groeiketen van v1 naar vn in Nx nemen we de kortste groeiketen t.a.v. de volgende, van de stroom x afhankelijke, lengtefunctie: ( cij als (i, j) een voorwaartse pijl is x lij := −cji als (i, j) een achterwaartse pijl is
(4.6)
Het algoritme is als volgt (k geeft de waarde van de stroom en c de kosten; indien we een maximale stroom met minimale kosten wensen, dan moeten we w = ∞ nemen). 18
R.G. Busacker and P.J. Gowen, A procedure for determining a family of minimum cost flow networks, Technical
Report, John Hopkins University (1961)
174
HOOFDSTUK 4. NETWERK OPTIMALISERING
Algoritme 4.11 Minimale kostenstroom met waarde w via kortste paden Invoer: Een gerichte graaf N = (V, A) met bovengrenzen bij ∈ Z+ en kosten cij ∈ Z+ . Uitvoer: Een stroom x met waarde w of met maximale waarde, en met minimale kosten. 1. x := 0; c := 0; k := 0. 2. a. Bepaal of er in Nx een kortste groeiketen P van v1 naar vn is t.a.v. de lengtes (4.6). b. if P niet bestaat then begin x is een maximale stroom met waarde k en minimale kosten c; STOP end else begin laat l(P ) de lengte van dit pad P zijn; ga naar stap 2c end c. Bepaal een maximale hoeveelheid ∆ die over P kan worden vervoerd. d. if k + ∆ ≥ w then ∆ := w − k. 3. a. Pas x aan door de stroom over P erbij op te tellen; c := c + ∆ · l(P ); k := k + ∆. b. if k = w then x is een minimale kostenstroom met waarde w en STOP. else ga naar stap 2a. Voorbeeld 4.9 Beschouw nevenstaande netwerk, waarin naast de pijlen de kosten cij zijn aangegeven. Alle bovengrenzen bij nemen we gelijk aan 2. Gevraagd wordt een minimale kostenstroom met waarde 5.
2s
@ @4 @ ¡ 7 R -4s 3 @ - s7 1 ¡ s @ µ ¡ µ ¡ 1¡ ¡ @ 5@ ¡ ¡3 R¡ @ 2 - s¡ s µ ¡
3¡
3
Iteratie 1: x := 0; c := 0; k := 0. Bij de start is de lengtefunctie gelijk aan de kostenfunctie. Het kortste pad P van 1 naar 7 is: P := {1, 3, 4, 7}; l(P ) := 9; ∆ := 2; c := 2 · 9 = 18; k := 2. De nieuwe lengtefunctie staat in nevenstaand netwerk. Iteratie 2: Het kortste pad P van 1 naar 7 is: P := [1, 4, 3, 6, 7]; l(P ) := 11; ∆ := 2. c := 18 + 2 · 11 = 40; k := 2 + 2 = 4. De nieuwe lengtefunctie staat in nevenstaand netwerk.
6 -5s
2s
6
6 -5s
@ @4 ¡ @ 7 R s7 1 ¡ -4s¾-3 @ s ¡ @ I µ ¡ -1 ¡ @ ¡ -5 @ ¡3 ¡ ª 2 - s¡ @s¡ µ ¡
3¡
3 2s
6
6 -5s
@ @4 ¡ @ 4s¾-3 @ -7 R s7 s¾ 1 ¡ ¡ @ I µ ¡ @ 1¡ ¡ -5 @ ¡ ¡-3 ª @s¡ s¡ ¾ -2 µ ¡
3¡
3
6
4.2. NETWERKSTROMEN
175
Iteratie 3:
2
Het kortste pad P van 1 naar 7 is: P := [1, 2, 5, 7]; l(P ) := 13; ∆ := 1; c := 40 + 1 · 13 = 53; k := 4 + 1 = 5. Omdat k = w, is de stroom een minimale kostenstroom met waarde 5. De optimale stroom staat in nevenstaand netwerk.
s
1 -5s
@ @1 @ ¡ 2 R 1 ¡ s -4s 2 @ - s7 @ µ ¡ µ ¡ @ 0¡ ¡ 2@ ¡ ¡2 R¡ @ 2 - s¡ s µ ¡
1¡
3
6
Zij P een enkelvoudig pad (of ronde) in een netwerk met voorwaartse en achterwaartse pijlen. Hierbij behoort een elementaire pad (of ronde) stroom y P met betrekking tot x, gedefinieerd door: 1 als (i, j) ∈ P en voorwaarts P yij := −1 als (j, i) ∈ P en achterwaarts 0 als noch (i, j) noch (j, i) tot P behoort Het is eenvoudig in te zien dat y P inderdaad een stroom is, d.w.z. dat ( vooreen pad behalve het P P P P = j yji . begin- en eindpunt) in ieder punt i geldt: j yij We zullen nu ingaan op de correctheid van deze methode. Laat N een netwerk zijn met daarin een (niet noodzakelijkerwijs toegelaten) stroom x. De gerichte graaf Nx∗ = (V ∗ , A∗ ) is als volgt gedefinieerd: ( V ∗ := V ; A∗ :=
xij
pijlen van i naar j als xij ≥ 0
−xij
pijlen van j naar i als xij < 0
Stelling 4.13 Zij x een stroom van v1 naar vn met waarde k. Dan geldt: ( Pk P elementaire pad-stroom van v1 naar vn , 1 ≤ i ≤ k q x = i=1 y i + i=k+1 y i met y i = elementaire ronde-stroom, k + 1 ≤ i ≤ q Bewijs In Nx∗ geldt: d+ (vi ) − d− (vi ) = 0 voor alle i 6= 1, n; d+ (v1 ) − d− (v1 ) = k; d+ (vn ) − d− (vn ) = −k. Voeg k pijlen toe van vn naar v1 . Dit geeft een Eulergraaf, dus alle pijlen vormen tezamen ´e´en ronde. Laat vervolgens de toegevoegde pijlen uit deze ronde weg: er ontstaan k enkelvoudige paden van v1 naar vn , plus eventueel nog een aantal enkelvoudige ronden. Bij de enkelvoudige paden horen elementaire pad-stromen en bij de enkelvoudige ronden horen elementaire rondestromen.
Stelling 4.14 Zij x een toelaatbare stroom van v1 naar vn met waarde k en lx de lengtefunctie volgens (4.6) die bij stroom x behoort. Dan geldt: x is een minimale kostenstroom bij waarde k d.e.s.d. als lx (C) ≥ 0 voor iedere enkelvoudige ronde C in Nx .
176
HOOFDSTUK 4. NETWERK OPTIMALISERING
Bewijs ⇒ Stel C is een enkelvoudige ronde in Nx met lx (C) < 0. Vervoer een hoeveelheid 1 over deze ronde en laat y de elementaire ronde-stroom bij C zijn. Nu geldt dat c(y) = lx (C), immers: Als (i, j) ∈ C een voorwaartse pijl is, dan geldt: lij = cij en yij = 1; dus lij = cij yij . Als (i, j) ∈ C een achterwaartse pijl is, dan geldt: lij = −cji en yji = −1; dus lij = cji yji . Er geldt dus: P P P lx (C) = (i,j)∈C lij = (i,j) voorwaarts in C lij + (i,j) achterwaarts in C lij P P = (i,j) voorwaarts in C cij yij + (i,j) achterwaarts in C cji yji = c(y). Laat x0 = x + y. Dan is x0 een toelaatbare stroom met waarde k voor de kosten geldt: c(x0 ) = c(x) + c(y) = c(x) + lx (C) < c(x) : tegenspraak. ⇐ Stel x0 is ook een toelaatbare stroom met waarde k. Dan is x0 − x een (niet noodzakelijkerwijs toelaatbare) stroom met waarde 0. Volgens Stelling 4.13 geldt: P x0 − x = qp=1 y p met y p een elementaire ronde-stroom bij ronde C p in Nx∗0 −x , 1 ≤ p ≤ q. Laat I1p = {(i, j) ∈ C p en (x0 − x)ij > 0}. Dan geldt bij ≥ x0ij > xij , zodat (i, j) voorwaarts is p p in Nx . Dit betekent lij = cij en yij = 1 : lij = cij yij .
I2p = {(j, i) ∈ C p en (x0 − x)ij < 0}. Dan geldt xij > x0ij ≥ 0, zodat (i, j) achterwaarts is in p p Nx . Dan is lji = −cij en yij = −1 : lji = cij yij . Er geldt dus P P q x p p 0 p l (C ) = c(y ), zodat c(x ) = c(x) + p=1 c(y ) = c(x) + qp=1 lx (C p ) ≥ c(x) :
x is een minimale kostenstroom bij waarde k. Stelling 4.15 Zij x een minimale kostenstroom van v1 naar vn met waarde k, P het kortste pad van v1 naar vn t.o.v. de lengtefunctie lx , gedefinieerd in (4.6), met bijbehorende elementaire pad-stroom y, en laat ∆ de maximale hoeveelheid zijn die over P nog vervoerd kan worden. Dan geldt voor x∗ = x + y dat x∗ een minimale kostenstroom is bij waarde k + ∆ en dat c(x∗ ) = c(x) + ∆ · lx (P ). Bewijs Het is duidelijk dat x∗ een toelaatbare stroom is met waarde k + ∆ en met kosten c(x) + lx (P ). Stel dat x0 ook een toelaatbare stroom is met waarde k + ∆. Dan is x0 − x een stroom met waarde P Pq i i ∆. Volgens Stelling 4.13 is x0 − x = ∆ i=1 y + i=∆+1 y met: ( elementaire pad-stroom Pi van v1 naar vn in Nx∗0 −x , 1 ≤ i ≤ ∆ i y := elementaire ronde-stroom Ci in Nx∗0 −x , ∆ + 1 ≤ i ≤ q Analoog aan Stelling 4.14 kan worden aangetoond dat lx (Pi ) = c(y i ), 1 ≤ i ≤ ∆, en lx (Ci ) = c(y i ), ∆ + 1 ≤ i ≤ q. We kunnen nu schrijven (we gebruiken daarbij tevens dat P het kortste pad is m.b.t. lx en dat volgens Stelling 4.14 lx (Ci ) ≥ 0, ∆ + 1 ≤ i ≤ q): P Pq P∆ x x x x ∗ c(x0 ) = c(x) + ∆ i=1 l (Pi ) + i=1 l (P ) = c(x) + ∆ · l (P ) = c(x ), i=∆+1 l (Ci ) ≥ c(x) + d.w.z. x∗ is een minimale kostenstroom bij waarde k + ∆.
4.2. NETWERKSTROMEN
177
Opmerking Omdat de bepaling van het kortste pad in een netwerk waarin ook negatieve lengtes voorkomen complexiteit O(n3 ) heeft, heeft Algoritme 4.11 complexiteit O(w · n3 ), met w = de waarde van de stroom. Er bestaat een aangepaste versie van het algoritme die complexiteit O(w · n2 ) heeft (zie Opgave 4.27).19 Minimale kostenstromen via het verwijderen van negatieve ronden Stelling 4.14 suggereert een ander algoritme, dat er zeer eenvoudig uitziet.20 Bepaal eerst een toelaatbare stroom x met maximale waarde (of met de gevraagde waarde w). Als er in Nx geen enkelvoudige ronden met negatieve lengtes zijn, dan is dit een minimale kostenstroom. Als er een enkelvoudige ronde C met negatieve lengte is, dan vervoeren we zoveel mogelijk over deze ronde. Vervolgens wordt dit proces herhaald totdat er geen enkelvoudige ronden met negatieve lengte meer zijn. Hieronder staat het algoritme. Algoritme 4.12 Minimale kostenstroom via ronden met negatieve lengte Invoer: Een gerichte graaf N = (V, A) met bovengrenzen bij ∈ Z+ en kosten cij ∈ Z+ . Uitvoer: Een stroom x met waarde w of met maximale waarde, en met minimale kosten. 1. Start met een maximale stroom x (of een stroom met de gewenste waarde w). 2. while Nx een enkelvoudige ronde C met lx (C) < 0 bevat do a. Laat ∆ het maximale vervoer over C zijn (analoog aan stap 2b in Algoritme 4.9). b. Pas x op C aan (analoog aan stap 2c in Algoritme 4.9). Opmerking In Opgave 4.5 is aangegeven hoe een ronde met negatieve lengte kan worden gevonden. Voorbeeld 4.9 (vervolg) Iteratie 1: Een stroom met waarde 5 is: x14 := x47 := 2; x12 := x25 := x57 := 2; x13 := x36 := x67 := 1. Deze stroom heeft kosten 56.
2
s
@ @4 ¡ @ 7 R 1 ¡ s -4s 3 @ - s7 @ µ ¡ µ ¡ @ 1¡ ¡ 5@ ¡ ¡3 R¡ @ 2 - s¡ s µ ¡
3¡
3
19
6 -5s
6
Dit is geen streng polynomiaal algoritme, want de complexiteit hangt niet alleen af van het aantal knooppunten
en het aantal pijlen (n resp, m), maar ook van de capaciteiten. Eva Tardos heeft in 1985 een streng polynomiaal algoritme opgesteld; zie E. Tardos, A strongly polynomial minimum cost circulation algorithm, Combinatorica 5 (1985) 247–255. 20 Dit algoritme is voorgesteld door Klein: M. Klein, A primal method for minimal cost flows with application to the assignment and transportation problem, Management Science 14 (1967) 205–220.
178
HOOFDSTUK 4. NETWERK OPTIMALISERING 2
s
Iteratie 2: De enkelvoudige ronden met negatieve lengte zijn: C1 := {1, 3, 4, 1} met lengte -1 en C2 := {1, 3, 6, 7, 5, 2, 1} met lengte -3. Kiezen we C2 , dan is ∆ = 1. Vervoeren we een hoeveelheid 1 over C2 , dan krijgen we de stroom die hiernaast in het netwerk is getekend met kosten 53.
1 -5s
@ @1 @ ¡ 2 R 1 ¡ s -4s 2 @ - s7 @ µ ¡ µ ¡ @ 0¡ ¡ 2@ ¡ ¡2 R¡ @ 2 - s¡ s µ ¡
1¡
3
6
Iteratie 3: Er zijn nu geen enkelvoudige ronden met negatieve lengte meer, zodat de stroom een minimale kostenstroom is met waarde 5. Opmerking Stap 1 van het algoritme heeft (versie Edmonds en Karp) complexiteit O(m2 n) ≤ O(mn3 ). Voor stap 2 van het algoritme geldt: - de bepaling van een ronde met negatieve lengte heeft complexiteit O(n3 ); - de bepaling van ∆ heeft complexiteit O(n); - het aanpassen van x heeft complexiteit O(n). Stap 2 van het algoritme is dus van de orde O(n3 ), zodat de complexiteit van het gehele algoritme van de orde O(N × n3 ) is, waarbij N het aantal iteraties van stap 2. In het begin zijn de kosten van de stroom hoogstens m · max(i,j) cij en aan het einde minstens −m · max(i,j) cij . In een iteratie daalt de waarde van de stroom met −lx (C) · ∆ ≥ 1. Het aantal iteraties is dus van de orde O(m · max(i,j) |cij |), en de totale complexiteit wordt hiermee O(mn3 · max(i,j) |cij |). Lagrange relaxatie In deze deelparagraaf bekijken we een iets algemenere versie van het minimale kostenstroom probleem, namelijk het volgende LP-probleem: ¯ P P X ¯ x − x = s , i = 1, 2, . . . , n i ¯ j ij j ji cij xij ¯ z ∗ := min , ¯ 0 ≤ x ≤ b , (i, j) ∈ A ij ij (i,j) waarbij de si ’s zdd.
(4.7)
P
si = 0 (anders is het probleem ontoelaatbaar). k voor i = 1 Het getal si is de nettoproductie in vi , 1 ≤ i ≤ n. Als we si = 0 voor i = 2, 3, . . . , n − 1 −k voor i = n i
nemen, dan is dit het probleem voor een minimale kostenstroom met waarde k. Neem voor ieder knooppunt vi een getal ui (de potentiaal) en definieer cuij := cij − ui + uj , (i, j) ∈ A
(4.8)
4.2. NETWERKSTROMEN
179
Opmerking ui kan worden ge¨ınterpreteerd als het bedrag dat men ontvangt als ´e´en eenheid uit knooopunt vi wordt vervoerd, en ook als het bedrag dat men betaalt als ´e´en eenheid naar knooopunt vi wordt vervoerd. Het getal cuij = cij − ui + uj geeft de netto kosten om ´e´en eenheid van knooopunt vi naar knooppunt vj te vervoeren; we noemen dit ook wel de gereduceerde kosten. Stelling 4.16 Een toelaatbare oplossing x van (4.7) is een optimale oplossing d.e.s.d. als er een potentiaal u ( cuij ≥ 0 als (i, j) voorwaarts in Nx ; bestaat zdd. cuji ≤ 0 als (i, j) achterwaarts in Nx . Bewijs ⇒ Als x een optimale oplossing van (4.7) is, dan is volgens Stelling 4.14 lx (C) ≥ 0 voor iedere enkelvoudige ronde C in Nx . Laat −ui de lengte kortste pad v1 naar vi in Nx zijn t.a.v. de lengtefunctie lx (zie (4.6)). Omdat er geen ronden van negatieve lengte zijn is het kortste pad x voor alle (i, j) ∈ N . begrip goed gedefinieerd en geldt: (−uj ) ≤ (−ui ) + lij x x = c , zodat cu = c − u + u ≥ 0. Als (i, j) een voorwaartse pijl is, dan is lij ij ij i j ij x = −c , zodat cu = c − u + u ≤ 0. p Als (i, j) een achterwaartse pijl is, dan is lij ji ji j i ji
⇐ Volgens Stelling 4.14 is het voldoende om aan te tonen dat lx (C) ≥ 0 voor iedere enkelvoudige ronde C in Nx . Neem een enkelvoudige ronde C in Nx , en laten A1 en A2 de voorwaartse resp. de achterwaartse pijlen van C zijn. Dan geldt P P x x lx (C) = (i,j)∈A1 lij + (i,j)∈A2 lij P P P P x x = j∈C uj (i,j)∈A1 lij + (i,j)∈A2 lij − i∈C ui + P P P P = (i,j)∈A1 cij − (i,j)∈A2 cji − i∈C ui + j∈C uj P P = (i,j)∈A1 {cij − ui + uj } − (i,j)∈A2 {cji + ui − uj } P P u u = (i,j)∈A1 cij − (i,j)∈A2 cji ≥ 0. Stelling 4.17 Een toelaatbare oplossing x van (4.7) is een optimale oplossing d.e.s.d. als er een potentiaal u u als cij > 0 dan is xij = 0; bestaat zdd. voor iedere (i, j) ∈ A geldt: als cuij = 0 dan is 0 ≤ xij ≤ bij ; als cu < 0 dan is x = b . ij
ij
ij
Bewijs ⇒ Als cuij > 0, dan is volgens Stelling 4.16 (j, i) geen achterwaartse pijl in Nx , d.w.z. xij = 0. Als cuij < 0, dan is volgens Stelling 4.16 (i, j) geen voorwaartse pijl in Nx , d.w.z. xij = bij . Omdat x toelaatbaar is, geldt altijd, dus ook als cuij = 0, dat 0 ≤ xij ≤ bij . ⇐ Zij (i, j) een voorwaartse pijl van Nx , d.w.z. xij < bij , dan is cuij ≥ 0, want cuij < 0 zou volgens het gegeven impliceren dat xij = bij . Als (i, j) een achterwaartse pijl van Nx is, d.w.z. xji > 0, dan is cuji ≤ 0, want cuji > 0 zou volgens het gegeven impliceren dat xji = 0. Nu volgt uit Stelling 4.16 dat x een optimale oplossing is.
180
HOOFDSTUK 4. NETWERK OPTIMALISERING
Opmerking Deze optimaliteits voorwaarden hebben een duidelijke interpretatie. Als cuij > 0, d.w.z. dat de netto kosten om ´e´en eenheid van vi naar vj te vervoeren positief zijn, dan is het optimaal om niets over (i, j) te vervoeren; evenzo, als cuij < 0, d.w.z. dat de netto kosten om ´e´en eenheid van vi naar vj te vervoeren negatief zijn, dan is het optimaal om zoveel mogelijk over (i, j) te vervoeren; als cuij = 0, d.w.z. dat er geen netto kosten zijn om ´e´en eenheid van vi naar vj te vervoeren, dan is iedere toegelaten hoeveelheid over (i, j) optimaal. We beschouwen nu de Lagrange relaxatie door de stroomvergelijkingen in de doelfunctie opnemen, waarbij we de i-de vergelijking met potentiaal ui vermenigvuldigen. Dit geeft de formulering ¯ X ´¯ X X ³ X ¯ (4.9) xij + xji + si ¯ 0 ≤ xij ≤ bij , (i, j) ∈ A ui − min cij xij + ¯ Omdat
P i
ui
j
i
(i,j)
P j
min
xji = X
P j
uj
P i
j
xij =
P (i,j)
{cij − ui + uj }xij +
uj xij , kunnen we (4.9) ook schrijven als
X i
(i,j)
¯ ¯ ¯ ui si ¯ 0 ≤ xij ≤ bij , (i, j) ∈ A , ¯
(4.10)
wat weer te schrijven is als w(u) := min
X
cuij xij +
X i
(i,j)
¯ ¯ ¯ ui si ¯ 0 ≤ xij ≤ bij , (i, j) ∈ A ¯
(4.11)
De formuleringen (4.9), (4.10) en (4.11) zijn equivalent. Als u gegeven is, dan is (4.11) op triviale manier op te lossen, namelijk: als cuij > 0, dan is xij = 0; als cuij < 0, dan is xij = bij ; als
cuij
(4.12)
= 0, dan is 0 ≤ xij ≤ bij .
Opmerkingen 1. De oplossing van (4.12) geeft precies de optimaliteitsvoorwaarden uit Stelling 4.17, zodat voor optimaliteit alleen nodig is dat x toelaatbaar is. 2. Wijzigen van xij op pijlen (i, j) met cuij = 0 geven geen wijziging van w(u). Stelling 4.18 Voor iedere u is w(u) ≤ z ∗ en er is een u∗ waarvoor w(u∗ ) = z ∗ . Bewijs Zij x∗ een optimale oplossing van het minimale kostenstroom probleem (4.7) met waarde z ∗ . Dan is x∗ voor iedere u een toelaatbare oplossing van (4.11) met waarde z ∗ (omdat geldt dat P ∗ P ∗ ∗ j xij − j xji = si voor alle i). Het optimum van (4.11) is dus hoogstens z .
4.2. NETWERKSTROMEN
181
Neem voor u∗ de potentiaal die volgens Stelling 4.17 hoort bij x∗ . Dan is volgens (4.12) x∗ ook een optimale oplossing van (4.11), dus ook van (4.9). Omdat x∗ ook toelaatbaar is voor (4.7) P geldt w(u∗ ) = (i,j) cij x∗ij = z ∗ . Opmerking Stelling 4.18 geeft een dualiteitseigenschap. De relaxatie methode 21 kan worden opgevat als een primale-duale methode. Hierbij hebben we steeds een toelaatbare oplossing van het duale probleem en een niet toelaatbare oplossing x van het primale probleem, terwijl de orthogonaliteitsrelaties gelden. De voorwaarden uit (4.12) geven precies de orthogonaliteitsrelaties (ga dit zelf na). Zodra x toelaatbaar is, dan zijn de oplossingen optimaal. Het duale probleem van (4.7) luidt ¯ ¯ u −u −w X X j ij ≤ cij , (i, j) ∈ A ¯ i max si ui − bij wij ¯ (4.13) ¯ wij ≥ 0, (i, j) ∈ A i (i,j) Voor iedere u is de beste bijbehorende w de kleinste toegelaten waarde van w. Omdat uit de beperkingen van (4.13) volgt dat wij ≥ −cuij en wij ≥ 0, geldt dus wij = max{−cuij , 0}, zodat probleem (4.13) in feite een probeem in u is. Definieer voor een x de onbalans ei door ei := si −
X j
Merk op dat
P i
xij +
X
xji , i = 1, 2, . . . , n
(4.14)
j
ei = 0 en dat ei > 0 betekent dat er ei te weinig uitgaat in knooppunt vi .
Als ei = 0 voor alle i, dan is x toelaatbaar, zodat x optimaal voor (4.7) is. Tijdens het relaxatie algoritme hebben we steeds een (u, x) zdd. (4.12) geldt (dus orthogonaliteit) en wordt in iedere iteratie ´e´en van de volgende twee operaties uitgevoerd: 1. u wordt gewijzigd in u0 met bijbehorende x0 , optimaal bij u0 volgens (4.12), waarbij w(u0 ) ≥ w(u) + 1. 2. Als stap 1 niet lukt, dan blijft u onveranderd, en komen we in ´e´en van de twee volgende gevallen: a. Een bepaalde knooppuntenverz. W wordt met een knooppunt uitgebreid. b. De stroom x wordt gewijzigd in x0 zdd. x0 ook optimaal bij u is volgens (4.12) en dat tenminste ´e´en positieve ei minstens 1 kleiner wordt, terwijl geen van de positieve ei ’s groter wordt. Een stap van type 1 of 2b noemen we een iteratie en een stap van type 2a een deeliteratie. Bij een vaste u zijn er slechts n deeliteraties (iedere deeliteratie levert een extra knooppunt van de boom). Omdat w(u) ≤ z ∗ (Stelling 4.18) zijn er slechts eindig veel iteraties waarin stap 1 wordt uitgevoerd. Binnen twee stappen van type 1 kan stap 2b kan ook slechts een eindig aantal keren 21
Deze methode, die is afkomstig van Bertsekas en Tseng (D.P. Bertsekas and P. Tseng, Relaxation methods for
minimum cost ordinary and generalized network flow problems, Operations Research 36 (1988) 93–114) blijkt in de praktijk voor grotere problemen zeer goed te werken, wat je aan de hand van het later in deze paragraaf uitgewerkte voorbeeld niet direct zou vermoeden.
182
HOOFDSTUK 4. NETWERK OPTIMALISERING
worden uitgevoerd (iedere keer wordt
P i|ei ≥0
ei minstens 1 kleiner). Hiermee is aangetoond dat,
als we erin slagen een algoritme op te stellen dat de stappen 1 en 2 uitvoert, dit algoritme correct P en eindig is. Het is wel mogelijk dat na een iteratie i|ei ≥0 ei weer groter wordt. Een iteratie begint met het kiezen van een knooppunt vs met es > 0 (als dit niet kan, dan zijn alle ei ’s gelijk aan 0 en zijn we klaar). Tijdens een iteratie wordt in Nx een gerichte boom met wortel vs opgebouwd zdd. voor alle knooppunten vi van de boom geldt dat ei ≥ 0 en zdd. cuij = 0, zowel voor iedere voorwaartse pijl (i, j) als voor iedere achterwaarse pijl (j, i). In een deeliteratie wordt de gerichte boom met een knooppunt uitgebreid. Zij W de verz. van de knooppunten van de boom tijdens een iteratie (W 6= V , want niet alle knooppunten kunnen een positieve onbalans hebben). We noteren V − W met W , en met (W, W ) en (W , W ) worden de pijlen van W naar W resp. van W naar W genoteerd. Verder gebruiken we de notaties X e(W ) := ei ; r(u, W ) = i∈W
X (i,j)
voorwaarts in
X
rij + (W,W ); cu ij =0
(i,j)
achterwaarts in
rij , (W,W ); cu ji =0
waarbij rij := bij − xij als (i, j) voorwaarts is en rij := xji als (i, j) achterwaarts is. e(W ) is de hoeveelheid die vanuit de knooppuntenverz W nog weggestuurd moet worden en r(u, W ) is de hoeveeheid die vanuit W verstuurd kan worden over pijlen met cuij = 0 (voor voorwaartse pijlen) of cuji = 0 (voor achterwaartse pijlen). Eerst wordt getest of e(W ) > r(u, W ). Als dit zo is, dan kan w(u) op de volgende manier worden vergroot door u aan te passen. Voor iedere pijl (i, j) van Nx met (i, j) ∈ (W, W ) en cuij = 0 als de pijl voorwaarts is en cuji = 0 als de pijl achterwaarts is sturen we rij over deze pijl. Hierdoor verandert w(u) niet (want het betreft pijlen van A met cuij = 0) en wordt e(W ) met het bedrag r(u, W ) verlaagd (want er wordt een hoeveelheid r(u, W ) van W naar W gestuurd) en de nieuwe e(W ) blijft positief. Deze nieuwe x geeft een Nx waarin de pijlen (i, j) waarover de stroom is aangepast nu van W naar W lopen. Alle voorwaartse pijlen van (W, W ) hebben nu dus een positieve cuij -waarde en alle achterwaartse een negatieve. Laat α := min (α1 , α2 ), waarbij α1 := min {cuij | (i, j) voorwaarts in (W, W )} en α2 := min {−cuji | (i, j) achterwaarts in (W, W )}. We gaan nu de u-waarde van de elementen van W met α verhogen. Uit de doelfunctie van (4.9) volgt dat hierdoor de waarde van w(u) met {e(W ) − r(u, W )}α ≥ 1 wordt verhoogd. Tevens wordt hierdoor de waarde van cuij voor de pijlen van (W, W ) met α verlaagd en voor de pijlen van (W , W ) met α verhoogd (voor de overige pijlen blijft de waarde cuij ongewijzigd). Hiermee eindigt de iteratie en is voldaan aan het gestelde in stap 1 dat w(u0 ) ≥ w(u) + 1 moet zijn. Vervolgens bespreken we wat we doen als e(W ) ≤ r(u, W ). Omdat r(u, W ) ≥ e(W ) > 0, is er minstens ´e´en pijl (i, j) ∈ (W, W ) met cuij = 0 (als de pijl voorwaarts is) of cuji = 0 (als de pijl achterwaarts is). Als ej ≥ 0, dan voegen we j aan W toe (hierdoor blijft e(W ) > 0). Als nog steeds e(W ) ≤ r(u, W ), dan gaan we naar de volgende deeliteratie; anders gaan we naar een volgende iteratie waarin w(u) verbeterd kan worden.
4.2. NETWERKSTROMEN
183
Als ej < 0, d.w.z. dat in vj te weinig stroom binnenkomt, dan gaan we x veranderen door meer stroom vanuit vs naar vj te sturen. Omdat deze stroom vanuit vs wordt verzonden, wordt es kleiner en ej groter (de andere ei ’s blijven onveranderd). Omdat we alleen pijlen gebruiken met cuij = 0, verandert w(u) niet. Voor de hoeveelheid ∆ die verstuurd kan worden zdd. es niet-negatief en ej niet positief blijven geldt n o ∆ := min es , −ej , min{rkl | (k, l) op het pad van vs naar vj } . Algoritme 4.13 Minimale kostenstroom via Lagrange relaxatie Invoer: Een gerichte graaf N = (V, A) met bovengrenzen bij ∈ Z+ , nettoproducties si ∈ Z en kosten cij ∈ Z+ . Uitvoer: Een stroom x die toelaatbaar is t.a.v. de bovengrenzen en nettoproducties en met minimale kosten. 1. a. x := 0; u := 0; b. for i = 1 step 1 until n do ei := si ; c. for i = 1 step 1 until n do for j = 1 step 1 until n do if (i, j) ∈ A if then cuij := cij . 2. if ei = 0 for i = 1, 2, . . . , n then begin x is optimaal; STOP end 3. Kies een s met es > 0; W := {s}. 4. if e(W ) > r(u, W ) then goto stap 5. else goto stap 6. 5. a. for all (i, j) ∈ (W, W ) do begin if (i, j) voorwaarts en cuij = 0 then xij := bij ; if (i, j) achterwaarts en cuji = 0 then xji = 0 end b. Pas zo nodig Nx , e en (W, W ) aan i.v.m. de nieuwe waarde van x. c. α := min (α1 , α2 ), waarbij α1 := min {cuij | (i, j) voorwaarts ∈ (W, W )} en α2 := min {−cuji | (i, j) achterwaarts ∈ (W, W )}. d. for i = 1 step 1 until n do if i ∈ W then ui := ui + α; for i = 1 step 1 until n do for j = 1 step 1 until n do begin if i ∈ W en j ∈ W then cuij := cuij − α; if i ∈ W en j ∈ W then cuij := cuij + α end e. goto stap 2.
184
HOOFDSTUK 4. NETWERK OPTIMALISERING
6. a. Kies een pijl (i, j) ∈ (W, W ) met cuij = 0 als het een voorwaarste pijl is en met cuji = 0 als het een achterwaarste pijl is. b. if ej ≥ 0 then begin W := W ∪ {j}; pred[j] = i; pas e(W ) en r(u, W ) aan; ga naar stap 4 end else goto stap 7. 7. a. Bepaal in W het unieke pad P van s naar j door via pred[j] terug te lopen. b. ∆ := min {es , −ej , min{rij | (i, j) ∈ P }}. c. for all pijlen (i, j) ∈ P do begin if (i, j) voorwaarts then xij := xij + ∆ else xji := xji − ∆ end d. Pas Nx en e aan de nieuwe waarde van x aan en ga naar stap 2. Opmerking: Er kan ook worden gestart met u willekeurig en x zdd. voldaan is aan (4.12). Voorbeeld 4.9 (vervolg) In Voorbeeld 4.9 wordt een minimale kostenstroom met waarde 5 gevraagd, dus s1 := 5, s2 := s3 := s4 := s5 := s6 := 0, s7 := −5. In het plaatje (om de twee iteraties geven we een plaatje) zetten we alleen de getallen cuij bij de pijlen en (ei , ui ) bij de knooppunten. Bij de start is cuij := cij , x := 0, u := 0 en w(u) := 0. Iteratie 1:
(0,0)
s
s := 1, W := {1}, e(W ) := 5, r(u, W ) := 0, α := 3.
¡ µ
3¡
u1 := 3; cu12 := 0, cu13 := 2, cu14 := 4; w(u) := 15.
¡
(5,0)
Iteratie 2: s := 1, W := {1}, e(W ) := 5, r(u, W ) := 2, x12 := 2, e1 := 3, e2 := 2; α := 2, u1 := 5; cu12 := −2, cu13 := 0, cu14 := 2; w(u) := 21.
7
¡ s @
6 -(0,0) s
@ @4 (0,0) @@ Rs -s 3 -
(−5,0)
¡ µ ¡ µ @ 1¡ ¡ 5@ ¡ ¡3 @ R s¡ 2 - ¡ s (0,0)
(0,0)
(2,0)
s
6 -(0,0) s
(0,0)
(0,0)
Iteratie 3: s := 1, W := {1}, e(W ) := 3, r(u, W ) := 2, x13 := 2, e1 := 1, e3 := 2, α := 2. u1 := 7;
cu12
:= −4,
cu13
:= −2,
w(u) := 23. Iteratie 4: s := 1, W := {1}, e(W ) := 1, r(u, W ) := 2. (i, j) := (1, 4), pred[4] := 1, e(W ) := 1, r(u, W ) := 0. α := 3; u1 := 10, u4 := 3; cu12 := −7, cu13 := −5, cu34 := 4, cu47 := 0; w(u) := 26.
cu14
:= 0;
¡
@ @4 ¡ (0,0) @R 2 ª ¡ -s 3 @ - s(−5,0) (3,5) s @ ¡ µ ¡ µ 1¡ @ ¡ 0@ ¡ ¡3 @ R s¡ 2 - ¡ s
-2 ¡
4.2. NETWERKSTROMEN Iteratie 5:
185
s
6 -(0,0) s
(2,0)
(0,0)
(2,6)
s
0 -(0,0) s
u3 := 2, cu13 := −3, cu34 := 2; cu36 := 0; w(u) := 44.
(2,0)
(0,0)
Iteratie 9:
(2,7)
s
0 -(0,1) s
(2,2)
(0,0)
(2,7)
s
0 -(0,1) s
(1,4)
(0,2)
(2,7)
s
0 -(0,1) s
(0,5)
(0,3)
(2,0)
s := 1, W := {1}, e(W ) := 1, r(u, W ) := 2; (i, j) := (1, 4), W := {1, 4}, e(W ) := 1, r(u, W ) := 2; (i, j) := (4, 7), e7 := −5. We vinden pad P := {1, 4, 7} met e7 < 0. x14 := x47 := 1, e1 := 0, e7 := −4 Iteratie 6: s := 2, W := {2}, e(W ) := 2, r(u, W ) := 0; α := 6. u2 := 6,
cu12
:= −1,
cu25
@ @4 ¡ (0,3) @R 0 ª ¡ -s 0 @ - s(−5,0) (1,10) s ¡ µ I @ ¡ µ 4¡ ¡ @ -5 @ ¡3 ¡ @s¡ 2 - s¡ ¡
-7 ¡
:= 0; w(u) := 38.
Iteratie 7: s := 2, W := {2}, e(W ) := 2, r(u, W ) := 2; (i, j) := (2, 5), W := {2, 5}, pred[5] := 2, e(W ) := 2, r(u, W ) := 0; α := 1; u2 := 7, u5 := 1; cu12 := 0, cu57 := 3; w(u) := 40. Iteratie 8: s := 3, W := {3}, e(W ) := 2, r(u, W ) := 0; α := 2.
s := 3, W := {3}, e(W ) := 2, r(u, W ) := 2; (i, j) := (3, 6), W := {3, 6}, pred[6] := 3, e(W ) := 2, r(u, W ) := 0; α := 2; u3 := 4, u6 := 2; cu13 := −1, cu34 := 0; cu67 := 1; w(u) := 48. Iteratie 10: We vinden pad P := {3, 4, 7} met e7 < 0. x34 := 1, x47 := 2, e3 := 1, e7 := −3.
¡
@ @4 ¡ (0,3) @R 0 ª ¡ - s¾ 0 @ - s(−4,0) (0,10) s¾ I @ ¡ µ ¡ µ @ ¡ 4¡ -5 @ ¡ ¡3 @s¡ 2 - ¡ s
-1 ¡
@ @3 @ ¡ (0,3) 0 R s(−4,0) ª ¡ - s¾ 0 @ (0,10) s¾ ¡ µ ¡ µ I @ 2¡ ¡ @ -3 @ ¡ ¡3 @s¡ 0 - ¡ s ¡
0¡
Iteratie 11: s := 3, W := {3}, e(W ) := 1, r(u, W ) := 3; i, j) := (3, 6), W := {3, 6}, pred[6] := 3, e(W ) := 1, r(u, W ) := 1; (i, j) := (3, 4), W := {3, 6, 4}, pred[4] := 3, e(W ) := 1, r(u, W ) := 1; (i, j) := (4, 1), W := {3, 6, 4, 1}, pred[1] := 4, e(W ) := 1; r(u, W ) := 0; α := 1; u3 := 5, u6 := 3, u4 := 4, u1 := 11; cu12 := −1, cu47 := −1; cu67 := 0; w(u) := 49. Iteratie 12:
@ @3 ¡ (0,3) @R 0 ª ¡ - s¾ 0 @ s(−3,0) (0,10) s¾ ¡ µ ¡ µ I @ 0¡¡ ¡ @ -1 @ ¡ 1 ¡ @sª 0 - ¡ s ¡
0¡
We vinden pad P := {3, 6, 7} met e7 < 0. x36 := x67 := 1, e3 := 0, e7 := −2. Iteratie 13 s := 2, W := {2}, e(W ) := 2, r(u, W ) := 2; (i, j) := (2, 5), W := {2, 5}, pred[5] := 2, e(W ) := 2, r(u, W ) := 0. α := 1; u2 := 8, u5 := 2; cu12 := 0, cu57 := 2; w(u) := 51. Iteratie 14 s := 2, W := {2}, e(W ) := 2, r(u, W ) := 4; (i, j) := (2, 5), W := {2, 5}, pred[5] := 2, e(W ) := 2, r(u, W ) := 2.
¡
@ @3 ¡ @ (0,4) 0 ª ¡ Rs - s¾-1 @ (0,11) s¾ (−2,0) I @ ¡ µ ¡ µ ¡ ¡ @ 0¡ ¡ -1 @ 0 ¡ ¡ 0 ª ª @s ¾ - s
-1 ¡
186
HOOFDSTUK 4. NETWERK OPTIMALISERING
(i, j) := (2, 1), W := {2, 5, 1}, pred[1] := 2, e(W ) := 2; r(u, W ) := 1; x14 := 2; e1 := −1, e4 := 1; α := 2; u2 := 10, u5 := 4, u1 := 13;
cu57
:= 0,
cu14
:= −2;
cu13
:= −3; w(u) := 53.
Iteratie 15 We vinden pad P := {2, 1} met e1 < 0. x12 := 1, e1 := 0, e2 := 1. Iteratie 16
s
0 -(0,4) s
(0,5)
(0,3)
(2,10)
@ @0 ¡ (1,4) -1@@ -2 ª ¡ s¾ R s(−2,0) (−1,13) s¾ ¡ µ ¡ µ I @ ¡ 0¡¡ @ ¡ -3 @ ¡0 ¡ 0- ª ¾ @sª s ¡
0¡
We vinden pad P := {2, 5, 7} met e7 < 0. x25 := x57 := 1, e2 := 0, e7 := −1. Iteratie 17 We vinden pad P := {4, 3, 6, 7} met e7 < 0. x34 := 0, x36 := x67 := 2, e4 := e7 := 0: De oplossing is optimaal en deze luidt: x12 := x25 := x57 := 1; x14 := x47 := 2; x13 := x36 := x67 := 2. De kosten zijn 53.
s¾ 0 - s µ I @0 0¡¡ @ (1,4) ¡ -2 ª ¡ @ R s(−1,0) -1 s¾ @ (0,13) s¾ ¡ µ I @ ¡ µ ¡ 0¡¡ @ ¡ -3 @ 0 ¡ 0 - sª ¡ ¾ @sª
Vraag 4.14 Bepaal een maximale stroom met minimale kosten voor nevenstaand netwerk. De getallenparen bij de pijlen zijn de capaciteiten (het eerste getal) en de kosten (het tweede getal). Gebruik de methode via kortste paden
(0,10)
(0,4)
(0,5)
(0,3)
2
s µ@ ¡ 2,3 ¡ @ 6,6 @ ¡ R s4 1 ¡ 1,2 @ s @ µ ¡ @ ¡ 6,6 @ 2,3 ¡ R s¡ @ ? 3
Vraag 4.15 Bepaal een stroom met waarde 3 en minimale kosten voor nevenstaand netwerk. De getallenparen bij de pijlen zijn de capaciteiten (het eerste getal) en de kosten (het tweede getal). Gebruik de methode via het verwijderen van negatieve ronden. Start met de maximale stroom x12 := x24 := 1, x13 := x34 := 2. Vraag 4.16 Bepaal een stroom van v1 naar v4 met waarde 4 en minimale kosten voor nevenstaand netwerk. De getallenparen bij de pijlen zijn de capaciteiten (het eerste getal) en de kosten (het tweede getal). Gebruik de Lagrange methode en start met u1 := 8, u2 := 5, u3 := 2, u4 := −1.
2
s @ µ ¡ 2,3 ¡ @ 6,6 ¡ @ R s4 s 1 ¡ 1,2 @ @ µ ¡ @ ¡ 6,6 @ ¡ 2,3 R? @ s ¡ 3 2
s ¡@ µ 2,3 ¡ @ 6,6 ¡ @ R s4 s 1 ¡ 1,2 @ @ µ ¡ @ ¡ 6,6 @ ¡ 2,3 R? @ s ¡ 3
4.2. NETWERKSTROMEN
4.2.3
187
Enkele toepassingen
Afronden matrixelementen Veronderstel dat we een n × m matrix M met elementen mij ∈ R+ hebben. De rij- en kolomsommen noteren we met ri , 1 ≤ i ≤ n, resp. kj , 1 ≤ j ≤ m. Er wordt nu gevraagd de getallen mij , ri en kj naar boven of naar beneden af te ronden zdd. de rij- en kolomsommen kloppen. De vraag is: kan dit en, zo ja, hoe doe je dat? We construeren de volgende gerichte graaf G = (V, A) met onder- en bovengrenzen aij resp. bij . V : we nemen een apart knooppunt s (beginpunt) en een apart knooppunt t (eindpunt); verder nemen we knooppunten voor iedere rij (vi , 1 ≤ i ≤ n) en voor iedere kolom (wj , 1 ≤ j ≤ m). A: er zijn pijlen van s naar vi met ondergrenzen bri c en bovengrenzen dri e, 1 ≤ i ≤ n; analoog zijn er pijlen van wj naar t met ondergrenzen bkj c en bovengrenzen dkj e, 1 ≤ j ≤ m; tenslotte zijn er pijlen van vi naar wj met ondergrenzen bmij c en bovengrenzen dmij e. Het afrondingsprobleem is equivalent met: is er in G een toelaatbare stroom van s naar t? Voorbeeld 4.10 3.1 6.8 7.3 Laat M = 9.6 2.4 0.7 met rijsommen 17.2, 3.6 1.2 6.5 12.7 en 11.3, en met kolomsommen 16.3, 10.4 en 14.5. Dit geeft nevenstaande graaf G. De getallen bij de pijlen zijn de ondergrenzen; de bovengrenzen zijn 1 hoger. Een toelaatbare stroom x in G is: xs1 = 17, xs2 = 12, xs3 = 11, x14 = 3, x15 = 7, x16 = 7, x24 = 9, x25 = 2, x26 = 1, x34 = 4, x35 = 1, x36 = 6, x4t = 16, x5t = 10, x6t = 14.
3 - 4s s 9¡ µ¢¸ @ ¡ µ A@ 7 ¡¢ @ ¡ A@ @ 16 17 ¡ 7 A @¡ ¢ 4 A¡@¢ @ ¡ ¡A ¢@ @ ¡ 12 -2¡ 10 @ R R - s5 - st s s 2 A¢ @ s¡ @ @ ¢A ¡ µ ¡ µ @ 1 @¢ A¡1 ¡ @ ¢@¡A ¡ 11 @ ¢ ¡@ A ¡ 14 @ @AAU ¡ ¢¡ @ R ¢¡ R 6 @ -¡ s s 1
3
6
3 7 7
Bovenstaande oplossing geeft de afgeronde matrix 9 2 1 met rijsommen 17, 12 en 11, en 4 1 6 met kolomsommen 16, 10 en 14. Een scheduling probleem Veronderstel dat n taken op m identieke machines moeten worden uitgevoerd. Taak j heeft bewerkingstijd pj , deadline dj en is beschikbaar voor bewerking op tijdstip rj , 1 ≤ j ≤ n, waarbij we aannemen dat dj ≥ rj + pj , 1 ≤ j ≤ n. Verder nemen we aan dat alle data geheel zijn en dat de bewerking van een taak mag worden afgebroken en later (ook op een andere machine) mag worden afgemaakt. De vraagstelling luidt: is er een planning zdd. alle deadlines gehaald worden? Dit probleem kan als volgt worden opgelost.
188
HOOFDSTUK 4. NETWERK OPTIMALISERING
Rangschik alle getallen rj en dj in niet dalende volgorde. Dit geeft een aantal intervallen die we noteren als Tkl als het interval [k, l] betreft. In elke eenheid van het interval Tkl kan taak j (geheel of voor een deel) worden uitgevoerd d.e.s.d. als rj ≤ k en l ≤ dj . We construeren de volgende gerichte graaf G = (V, A) met capaciteiten bij . V : we nemen een apart knooppunt s (beginpunt) en een apart knooppunt t (eindpunt); verder is er een knooppunt voor iedere taak j (knooppunt vj ) en ieder interval Tkl (knooppunt wkl ). A: er zijn pijlen van s naar vj met capaciteit pj , pijlen van vj naar wkl als rj ≤ k en l ≤ dj met capaciteit l−k, en tenslotte pijlen van wkl naar t met capaciteit m·(l−k) (dit is het beschikbare aantal machine-eenheden in interval Tkl ). Het scheduling probleem is nu equivalent met het volgende probleem: is er in G een volgemaakte P stroom van s naar t (d.w.z. een stroom met waarde nj=1 pj )? Werkzaamheden op 2 processoren Subroutines van een computerprogramma moeten ieder aan een van twee processoren worden toegewezen zdd. de totale tijd voor de berekeningen en de communicatie minimaal is. Laat αi de kosten van subroutine i als deze berekeningen op processor 1 wordt uitgevoerd, βi de kosten van subroutine i als deze berekeningen op processor 2 wordt uitgevoerd, en cij de communicatiekosten als de subroutines i en j op verschillende processoren worden uitgevoerd, waarbij cij = cji . Dit probleem kan als volgt als een minimale snede probleem worden geformuleerd. We construeren de volgende graaf G = (V, A). V : we nemen een knooppunt s (voor processor 1) en een knooppunt t (voor processor 2) en verder een knooppunt vj voor iedere subroutine j, 1 ≤ j ≤ n. A: er zijn pijlen van s naar vj (met capaciteit βj ) en van vj naar t (met capaciteit αj ), 1 ≤ j ≤ n; verder is er een pijl van vi en vj en van vj naar vi als cij 6= 0 met capaciteit cij . We zullen laten zien dat er een ´e´en-´e´enduidig verband is tussen de (s, t)-snede en de planningen van de subroutines op de processoren zdd. de capaciteit van de snede overeenkomt met de totale tijdsduur voor de berekeningen en de communicatie. Zij I1 en I2 de indexverz. van de subroutines die op processor 1 resp. processor 2 worden uitgevoerd. De totale tijdsduur voor de berekeningen en de communicatie is dan: P P P i∈I1 αi + i∈I2 βi + i∈I1 ,j∈I2 cij . Voor de bijbehorende (s, t)-snede nemen we W = {s, I1 }. Deze heeft de capaciteit: de capaciteit van de pijlen van s naar I2 + de capaciteit van de pijlen van I1 naar I2 + de capaciteit van de pijlen van I1 naar t: P P P i∈I2 βi + i∈I1 ,j∈I2 cij + i∈I1 αi . Omgekeerd geldt analoog dat als we uitgaan van een (s, t)-snede hierbij een planning hoort zdd. de capaciteit van de snede gelijk is aan de totale tijdsduur voor de berekeningen en de communicatie van deze planning.
4.2. NETWERKSTROMEN
189
Scheduling van tankers Een tankerbedrijf is contractueel verplicht een aantal opdrachten, zeg n opdrachten, uit te voeren. Iedere opdracht is van het volgende type: vervoer een scheepslading van een bepaald product, zeg product j, van plaats k naar plaats l zdd. het in plaats l op een bepaalde dag, zeg dag dj , aankomt (1 ≤ j ≤ n). In verband met bederf mag een transport ook niet eerder aankomen dan op de geplande dag. Het bedrijf wil het minimum aantal schepen bepalen om deze orders uit te voeren. De vervoerstijden tussen de verschillende plaatsen zijn bekend en afhankelijk van het feit of het een vol of een leeg schip betreft: van plaats k naar l duurt een beladen rit t1kl en een rit zonder vracht t0kl . Een voorbeeld van een dergelijk probleem met 4 opdrachten en vervoer tussen 4 plaatsen staat hieronder (volle vrachten van A en B naar C en D). Taak
Van
Naar
Dag
1
A
C
3
Vol
Naar C
Naar D
Leeg
Naar A
Naar B
2
A
C
8
Van A
3
2
Van C
2
1
3
B
D
3
Van B
2
3
Van D
1
2
4
B
D
6
Om dit probleem op te lossen construeren we de volgende gerichte graaf G = (V, A). V : we nemen een apart knooppunt s (beginpunt) en een apart knooppunt t (eindpunt); verder zijn er twee knooppunten voor iedere opdracht j (knooppunt vj met als interpretatie het begin van opdracht j en knooppunt wj met als interpretatie het einde van opdracht j). A: er zijn pijlen van s naar vj met ondergrens 0 en bovengrens 1 (als we hier een hoeveelheid 1 over versturen betekent dit dat opdracht j als eerste door een tanker wordt uitgevoerd), pijlen van vj naar wj met onder- en bovengrens 1 (dit betekent dat opdracht j moet worden uitgevoerd), en pijlen van wj naar t met ondergrens 0 en bovengrens 1 (als we hier een hoeveelheid 1 over versturen betekent dit dat opdracht j als laatste door een tanker wordt uitgevoerd); tenslotte zijn er pijlen van wj naar vi indien het volgende geldt: de starttijd van opdracht i (dit is de leveringsdag - de tijdsduur van de volle tanker van beginpunt opdracht i naar zijn bestemming) is niet eerder dan de leveringsdag van opdracht j + de tijdsduur van de lege tanker van bestemming opdracht j naar het beginpunt van opdracht i; dit betekent dat opdracht i na opdracht j met dezelfde tanker kan worden uitgevoerd. In bovenstaand voorbeeld geeft dit laatste alleen de pijlen van w1 naar v2 en van w3 naar v2 Het resultaat van bovenstaand netwerk is dat ieder pad van s naar t correspondeert met een toelaatbare planning voor ´e´en tanker. Omdat de bovengrenzen van de pijlen 1 zijn, correspondeert een stroom van s naar t met waarde k met k disjuncte paden, dus met k verschillende tankers. Het oorspronkelijke probleem is dus equivalent met het vinden van een minimale stroom in bovenstaand netwerk. Hoe zo stroom gevonden kan worden wordt gevraagd in de volgende vraag. Vraag 4.17 Los het bovenstaande probleem om tankers optimaal te schedulen voor de gegeven data op.
190
HOOFDSTUK 4. NETWERK OPTIMALISERING
4.2.4
Opgaven
Opgave 4.11 Beschouw het volgende probleem: p gezinnen gaan samen uit eten en gezin i heeft ai gezinsleden (i = 1, 2, . . . , p); ze willen aan q tafels gaan zitten, waarbij tafel j bj plaatsen heeft (j = 1, 2, . . . , q) zdd. aan iedere tafel geen twee leden van hetzelfde gezin zitten. Formuleer het probleem om een goede tafelindeling te maken als een maximale stroom probleem. Hint: Neem als knooppunten s, V1 , V2 , t met V1 = {1, 2, . . . , p} en V2 = {1, 2, . . . , q}. Trek pijlen van s naar alle i ∈ V1 , van iedere i ∈ V1 naar iedere j ∈ V2 en van iedere j ∈ V2 naar t. Bepaal zelf de capaciteiten zdd. een maximale stroom van s naar t overeenkomt met een goede P tafelindeling d.e.s.d. als de waarde van de stroom pi=1 ai is. Opgave 4.12 Beschouw het volgende transportprobleem. Er zijn m voorraadplaatsen, waarbij in plaats i een voorraad ai is, 1 ≤ i ≤ m. Daarnaast zijn er n bestemmingen en in bestemming j is een Pn P hoeveelheid bj nodig, 1 ≤ j ≤ n. Neem aan dat m j=1 bj . i=1 ai = Verder is gegeven dat er per eenheid van vervoer van voorraadplaats i naar bestemming j transportkosten cij zijn. Gevraagd wordt een transportschema op te stellen met minimale kosten. a. Formuleer dit transportprobleem als een minimale kostenstroom probleem. Aanwijzing: Maak een netwerk met knooppunten s, V1 , V2 , t zoals in Opgave 4.11. b. Omgekeerd, formuleer voor een minimale kostenstroom probleem met waarde w een transportprobleem zdd. een toelaatbare stroom voor het minimale kostenstroom probleem overeenkomt met een toelaatbaar transportschema met dezelfde kosten. Aanwijzing: Neem voor iedere pijl (i, j) een voorraadknooppunt (i, j) met voorraad a(i,j) = bij en voor P voor ieder knooppunt vk een bestemmingsknooppunt k met vraag bk = j bkj + dk , −w als k = 1 waarbij dk = 0 als k 6= 1, n w als k = n Opgave 4.13 Noem een pijl ’meest vitaal’ als door het verwijderen van deze pijl de waarde van de maximale stroom minstens zoveel daalt als bij het verwijderen van een willekeurige andere pijl. Ga na of de volgende uitspraken juist of onjuist zijn: a. Een meest vitale pijl is een pijl met maximale bij . b. Een meest vitale pijl is een pijl met maximale xij . c. Een meest vitale pijl is een pijl in een minimale (1, n)-snede met de grootste xij -waarde. d. Een meest vitale pijl zit in een minimale (1, n)-snede. e. Een netwerk kan meer dan ´e´en meest vitale pijl hebben.
4.2. NETWERKSTROMEN
191
Opgave 4.14 Beschouw het maximale stroom probleem in een netwerk met ondergrenzen 0 en capaciteiten bij . Noem een stroom even als xij even is voor alle (i, j) ∈ A, en oneven als xij oneven is voor alle (i, j) ∈ A. Ga na of de volgende uitspraken juist of onjuist zijn: a. Als alle capaciteiten even zijn, dan is er een maximale stroom die even is. b. Als alle capaciteiten oneven zijn, dan is er een maximale stroom die oneven is. Opgave 4.15 Toon het volgende aan: Als (W1 , V − W1 ) en (W2 , V − W2 ) beide minimale (1, n)-sneden zijn, dan zijn ook (W1 ∪ W2 , V − {W1 ∪ W2 }) en (W1 ∩ W2 , V − {W1 ∩ W2 }) minimale (1, n)-sneden. Aanwijzing: Toon aan dat c(W1 ∪ W2 ) + c(W1 ∩ W2 ) ≤ c(W1 ) + c(W2 ). Opgave 4.16 Veronderstel dat we onder de sneden met minimale capaciteit een snede met een minimaal aantal pijlen willen identificeren. Toon aan dat als we de capaciteiten vervangen door b∗ij = m · bij + 1 voor alle (i, j) ∈ A, dan krijgen we een snede met minimale capaciteit m.b.t. de oorspronkelijke capaciteiten bij en onder deze sneden een snede met minimaal aantal pijlen. Opgave 4.17 Zij N een netwerk met capaciteiten bj , j = 1, 2, . . . , m (we nummeren de pijlen 1, 2, . . . , m). Beschouw de p×m padenmatrix P van alle enkelvoudige paden van knooppunt v1 naar knooppunt vn . Om het maximale stroom probleem op te lossen ’proberen’ we het LP-probleem ¯ P p ¯ p X p x ≤ b , j = 1, 2, . . . , m ¯ ij i j i=1 max xi ¯¯ ¯ xi ≥ 0, i = 1, 2, . . . , p i=1
(4.15)
a. Formuleer voor het model uit Voorbeeld 4.7 dit LP-probleem en het duale probleem. b. Verklaar de algemene formulering (4.15) van dit maximaliseringsprobleem. c. Geef een interpretatie van het duale probleem, als we aannemen dat daarin de variabelen de waarden 0 of 1 hebben. d. Is ieder optimaal hoekpunt van (4.15) altijd geheeltallig? Verklaar uw antwoord. Opgave 4.18 Beschouw een netwerk N met onder- en bovengrenzen aij resp. bij en veronderstel dat N een toelaatbare stroom heeft. Voor een (1, n)-snede (W, V − W ) defini¨eren we de capaciteit c(W ) P P door: c(W ) := i∈W,j ∈W bij − i∈W,j∈W aij . / / Toon het volgende aan: de waarde van een maximale stroom is gelijk aan de capaciteit van een (1, n)-snede met minimale capaciteit.
192
HOOFDSTUK 4. NETWERK OPTIMALISERING
Opgave 4.19 Beschouw het hiernaast getekende netwerk met onder- en bovengrenzen. a. Toon aan dat dit netwerk geen toelaatbare stroom heeft. b. Verander de ondergrens van de pijl (3, 6) in 5. Toon aan dat dit nieuwe netwerk een toelaatbare
2
s
2,6
3
4
2,4
5
-s ¡ µ @ 9,12 µ 3,5¡¡ ¡ @ ¡ ¡ @ 3,4¡ @ R s6 s 1 ¡ @ ¡ ¡ µ @ ¡ ¡ 4,6 @ ¡ ¡3,6 @ R¡ s -¡ s
stroom heeft en bepaal een maximale stroom. Opgave 4.20
a. Beschijf een methode om een minimale stroom te bepalen in een netwerk met onder- en bovengrenzen. b. Pas de methode toe op het netwerk uit Opgave 4.19 met 5 als ondergrens van de pijl (3, 6). c. Veronderstel dat er een toelaatbare stroom bestaat. Geeft de methode om een toelaatbare stroom te vinden dan altijd een minimale stroom? Opgave 4.21 Beschouw een netwerk met onder- en bovengrenzen. a. Formuleer het probleem om een maximale stroom te bepalen als een lineair optimaliseringsprobleem. b. Stel het duale probleem op en geef er een interpretatie aan. c. Bewijs met de dualiteitsstelling van de lineaire optimalisering dat de waarde van de maximale stroom gelijk is aan de capaciteit van de (1, n)-snede met de kleinste capaciteit, waarbij de capaciteit is gedefinieerd zoals in Opgave 4.18. Opgave 4.22 Zij N een netwerk met ondergrenzen aij en bovengrenzen bij zdd. positieve ondergrenzen alleen voorkomen bij pijlen (1, i) en (j, n). Knooppunt 1 heeft alleen uitgaande en knooppunt n alleen binnenkomende pijlen. a. Bewijs dat N een toelaatbare stroom heeft d.e.s.d. als: P P / W en n ∈ /W i∈W,j ∈W / bij ≥ i∈W a1i voor iedere W met 1 ∈ P P ajn voor iedere W met 1 ∈ W en n ∈ W i∈W,j ∈W / bij ≥ j ∈W / b. Bewijs dat N een toelaatbare stroom heeft d.e.s.d. als er twee stromen x1 en x2 bestaan waarvoor geldt: 0 ≤ x1 ≤ bij en 0 ≤ x2 ≤ bij voor alle (i, j) ∈ A ij ij a1i ≤ x1 voor alle (1, i) ∈ A; ajn ≤ x2 voor alle (j, n) ∈ A 1i jn
4.2. NETWERKSTROMEN Opgave 4.23 Bepaal een maximale stroom met minimale kosten voor nevenstaand netwerk. De getallenparen bij de pijlen zijn de capaciteiten (het eerste getal) en de kosten (het tweede getal).
193
2
5,6 s @ ¡ µ µ ¡ 6,3 ¡ @3,3 5,1 ¡ ¡ @ 6 ¡ R s¡ @ 3,1 s 1 ¡ @ µ@ ¡ @ 6,5 ¡ @ 4,4 6,4 @ ¡ @ R¡ @ ? R @ s 3
2,4
4
s @ @ 5,6 @ R s7 5,3 @ µ ¡ ¡ 8,2 ¡ ? s¡
5
Opgave 4.24 Zij x een maximale stroom en (W, V − W ) een minimale (1, n)-snede. Toon aan dat x een minimale kostenstroom is d.e.s.d. als iedere ronde van Nx die geheel in W of geheel in V − W ligt een niet-negatieve lengte heeft m.b.t. lx , gedefinieerd in (4.6). Opgave 4.25 Beschouw het probleem om een maximale stroom met minimale kosten te bepalen in een netwerk met onder- en bovengrenzen. Beschrijf een methode om dit probleem op te lossen. Opgave 4.26 a. Formuleer het probleem om een minimale kostenstroom probleem met waarde w te bepalen als een lineair optimaliseringsprobleem. b. Stel het duale probleem op en geef de orthogonalteitsrelaties. c. Zij x een minimale kostenstroom met waarde w. Toon m.b.v. de orthogonalteitsrelaties aan dat in Nx de lengte van iedere ronde niet-negatief is, waarbij de lengte l is gedefineerd volgens (4.6). Opgave 4.27 Beschouw in Algoritme 4.11 de volgende veranderingen in de lengte-functie lk tijdens de k-de iteratie:
( k lij
:=
cij + πik − πjk als (i, j) een voorwaartse pijl is −cji + πik − πjk als (i, j) een achterwaartse pijl is,
waarbij de getallen πik , 1 ≤ i ≤ n, als volgt recursief worden bepaald: ( πi1 := 0 πik := πik−1 + uk−1 met uk−1 de lengte van het kortste pad van v1 naar vi in iteratie k − 1 i i a. Pas deze gewijzigde methode toe op het probleem uit Vraag 4.14. b. Toon aan dat een pad P van v1 naar vn een kortste pad is t.o.v. de lengte-functie l, gedefinieerd in (4.6), d.e.s.d. als P een kortste pad is t.o.v. de in deze opgave gedefinieerde lengte-functie lk . k ≥ 0 voor alle i, j en k (neem hierbij aan dat c ≥ 0 voor alle (i, j)). c. Toon aan dat lij ij
d. Beschrijf een methode met complexiteit O(w · n2 ) om een minimale kostenstroom met waarde w te bepalen (neem hierbij aan dat cij ≥ 0 voor alle (i, j)).
194
HOOFDSTUK 4. NETWERK OPTIMALISERING
Hoofdstuk 5
SCHEDULING 5.1
Inleiding
Scheduling heeft betrekking op het plannen van taken op machines. We zeggen dat taken op machines worden uitgevoerd en we gaan hierbij uit van de volgende aannames: (1) Een machine kan maar ´e´en taak tegelijk uitvoeren; (2) Een taak kan op een bepaald tijdstip door slechts ´e´en machine tegelijk worden uitgevoerd. Een bepaalde planning, ook wel schedule genoemd, wordt meestal gerepresenteerd door een zogenaamd Gantt-schema 1 . Hierin staan de machines langs de vertikale as en wordt de tijd horizontaal uitgezet. Laat J = {1, 2, . . . , n} de verz. van de taken zijn en M = {1, 2, · · · , m} de verz. van de machines. De j-de taak wordt ook wel met Jj aangeduid; de i-de machine met Mi . De bewerkingstijd van taak j op machine i wordt aangeduid met pij . Voorbeeld 5.1 Laat n = m = 3. Voor de drie taken op de drie machines geldt het volgende: J1 wordt eerst op M2 behandeld met p21 = 2, en daarna op M1 met p11 = 1. J2 moet achtereenvolgens op M1 , M3 en M2 worden behandeld met p12 = 1, p32 = 3 en p22 = 2. J3 heeft gaat op alle machines in de volgorde M1 , M2 en M3 met p13 = 3, p23 = 2 en p33 = 2. Hieronder staat een planning in een Gantt-schedule. M1
3
2
1
@ ¡ 3 ¡ @ ¡ @ »» XXX XXX»»»» M3 »»XXXX » XX »»»
M2
1
0
1
2
3
4
HH © H©© © H HH ©©
2
2 3
5
7
9
Genoemd naar Henry Laurence Gantt (1861-1919). Gantt was een mechanisch ingenieur die beroemd werd
door de ontwikkeling van wat we nu Gantt-schema’s noemen voor grote bouwprojecten als de Hoover Dam in 1931 en het Interstate Highway Network in 1956.
195
196
HOOFDSTUK 5. SCHEDULING
Schedulingsproblemen kunnen als volgt worden onderverdeeld: Open shop problemen: Iedere taak moet op een bepaald aantal machines worden uitgevoerd, maar de volgorde van de machines waarop een taak moet worden uitgevoerd is vrij te kiezen. Open shop problemen met m machines worden genoteerd met Om . Job shop problemen: Als open shop problemen, maar voor de taken is de volgorde van de machines niet vrij, maar van te voren bepaald. Job shop problemen met m machines worden genoteerd met Jm . Het probleem uit Voorbeeld 5.1 is een job shop probleem. Flow shop problemen: Iedere taak moet op alle machines worden uitgevoerd en wel in dezelfde volgorde, namelijk 1, 2, . . . , m. Flow shop problemen met m machines worden genoteerd met Fm . Indien we eisen dat de volgorde van de taken op alle machines dezelfde is (een permutatie van de getallen 1, 2, . . . , n), dan spreken we van een permutatie schedule. Een permutatie flow shop probleem wordt aangeduid met P Fm . Verder kunnen we de problemen ook indelen naar het aantal machines: ´e´en-machine problemen, twee-machine problemen en meer-machine problemen. Vaak heeft een taak een gegeven tijdstip waarop de taak gereed moet zijn (d.w.z. alle voor die taak relevante machines moeten de taak hebben behandeld). Een dergelijk tijdstip (due date) wordt voor taak j genoteerd met dj . Ook kunnen aan taken gewichten worden toegekend; met wj noteren we het gewicht voor taak j. Bij een bepaalde planning kunnen voor iedere taak de volgende grootheden worden bepaald: Cj : het tijdstip waarop taak j gereed is (completion time of make span). Lj : de tijd die taak j ’te laat’ is, gedefinieerd door Lj = Cj − dj (lateness, kan negatief zijn). Tj : de tijd waarmee taak j de due date overschrijdt: Tj = max(0, Lj ) (tardiness). Uj : een (0,1)-variabele die aangeeft of de due date al of niet is overschreden: Uj = 1 als Cj > dj en Uj = 0 als Cj ≤ dj (aantal te late jobs). Bij een schedulingsprobleem willen we een schedule vinden dat een bepaalde doelfunctie minimaliseert. Voorbeelden van doelfuncties zijn: Pn Pn Cmax = max1≤j≤n Cj ; j=1 Cj ; j=1 wj Cj . Pn Pn Lmax = max1≤j≤n Lj ; j=1 Lj ; j=1 wj Lj . Pn Pn Tmax = max1≤j≤n Tj ; j=1 Tj ; j=1 wj Tj . Pn Pn Umax = max1≤j≤n Uj ; j=1 Uj ; j=1 wj Uj .
´ MACHINE 5.2. EEN
197
Schedulingsproblemen worden meestal aangeduid met drie velden: α | β | γ.2 Hierin geeft α het type probleem aan, bijv. O3 voor een open shop probleem met 3 machines; β is ofwel leeg of geeft extra gegevens over het probleem, bijv. pij = 1 geeft aan dat alle bewerkingstijden gelijk aan 1 zijn; γ geeft het optimaliteitscriterium aan, bijv. Cmax . Een schedule is actief als er, zonder op een van de machines de volgorde te verwisselen, geen enkele bewerking op geen enkele machine eerder kan worden uitgevoerd. Het is duidelijk dat er voor alle genoemde criteria altijd een optimaal schedule is dat actief is. We nemen daarom in dit hoofdstuk aan dat we ons beperken tot actieve schedules. Vraag 5.1 Toon aan dat de criteria
5.2
Pn
j=1 wj Cj
en
Pn
j=1 wj Lj
equivalent zijn.
E´ en machine
Indien er slechts ´e´en machine is, dan is Cmax niet interessant (zet de taken in een willekeurige P P volgorde achter elkaar, want Cmax = j pj ). Ook hoeven we Tmax en nj=1 wj Lj niet te bekijken (zie Vraag 5.1 en Opgave 5.1).
5.2.1
Model A: 1 | | Lmax
Stelling 5.1 (Jackson) 3 Een schedule met niet-dalende dj ’s is optimaal. Bewijs Veronderstel dat twee taken, zeg Ji en Jj , in een optimaal schedule achter elkaar staan, terwijl dj < di . Verwissel deze taken twee taken en duid het nieuwe schedule aan met een ∗ . Er geldt dan: L∗j = Cj∗ − dj ≤ Cj − dj = Lj . L∗i = Ci∗ − di = Cj − di < Cj − dj = Lj . We kunnen dus schrijven: L∗max = max1≤k≤n L∗k = max{L∗i , L∗j , maxk6=i,j L∗k } ≤ max{Lj , maxk6=i,j Lk } ≤ max1≤k≤n Lk = Lmax . Opmerking: Deze optimale strategie heet de EDD-regel (earliest due date first). 2
Deze notatie verscheen het eerst in het volgende artikel: R.L. Graham, E.L. Lawler, J.K. Lenstra en A.H.G.
Rinnooy Kan: Optimization and approximation in deterministic sequencing and scheduling: A survey, Annals of Discrete Mathematics 5 (1979) 287–326. 3 J.R. Jackson, Scheduling a production line to mimimize maximum tardiness, Research Report 43, Management Science Research Project, University of California, Los Angeles (1955)
198
HOOFDSTUK 5. SCHEDULING
Gevolg 5.1 Er bestaat een schedule met Umax = 0 d.e.s.d. als het schedule met niet-dalende dj ’s voldoet aan Umax = 0. Bewijs ⇒ Omdat Umax = 0 voor een zeker schedule is ook Lmax ≤ 0 voor dat schedule. Dus geldt ook voor het schedule dat Lmax minimaliseert, en dat is het schedule met niet-dalende dj ’s dat Lmax ≤ 0: het schema met niet-dalende dj ’s geeft Umax = 0. ⇐ Triviaal. Opmerkingen: 1. Bovenstaand gevolg geeft aan dat met model A ook het model 1 | | Umax wordt opgelost. 2. Het sorteren van n elementen kan met complexiteit O(nlogn). De complexiteit van dit model is dus O(nlogn).
5.2.2
Model B: 1 | |
Pn j=1
wj Cj
Stelling 5.2 (Smith 4 ) Een schedule met niet-dalende
pj wj ’s
is optimaal.
Bewijs Veronderstel dat twee taken, zeg Ji en Jj , in een optimaal schedule achter elkaar staan, terwijl pj wj
<
pi wi .
Verwissel deze taken twee taken en duid het nieuwe schedule aan met een ∗ .
Er geldt dan: Cj∗ = Cj − pi en Ci∗ = Ci + pj . We kunnen dus schrijven: Pn Pn ∗ ∗ ∗ k=1 wk Ck = wi (Ci − Ci ) + wj (Cj − Cj ) = wi pj − wj pi < 0. k=1 wk Ck − Opmerkingen: 1. Deze regel heet de WSPT-regel (weighted shortest processing time). Als wj = 1 voor alle j, is dit de SPT-regel (shortest processing time). 2. De complexiteit van dit model is eveneens O(nlogn). P P 3. De WSPT-regel lost ook het model 1 | | nj=1 wj Lj op, en dus eveneens 1 | | nj=1 Lj . Bij model A hebben we gezien dat de EDD-regel een optimaal schedule geeft voor het criterium Lmax en dus ook voor Tmax (zie Opgave 5.1). Stel nu dat we een Tmax -probleem op moeten lossen en dat Tmax = 0. Dit betekent dat alle due dates gehaald kunnen worden en dat we eventueel ruimte hebben om onder de schedules met Tmax = 0 een schedule te kiezen dat ons het P beste bevalt, bijvoorbeeld dat de kleinste nj=1 Cj heeft. Indien alle due dates gehaald kunnen P worden, levert het algoritme van Smith een schedule met minimale nj=1 Cj onder de schedules met Tmax = 0. Dit is gebaseerd op de volgende stelling. 4
W.E. Smith, Various optimizers for single stage production, Naval Research Logistics Quaterly 3, (1956) 59-66.
´ MACHINE 5.2. EEN
199
Stelling 5.3 Als er een schedule bestaat met Tmax = 0, dan geldt voor een schedule dat onder die voorwaarde Pn j=1 Cj minimaliseert, dat de laatste job van dit schedule de grootste bewerkingstijd heeft onder P de jobs k waarvoor dk ≥ nj=1 pj . Bewijs Laat S een schedule zijn met Tmax = 0 en laat k de laatste job van S zijn. Omdat in S alle jobs P op tijd klaar zijn, geldt in het bijzonder dat dk ≥ nj=1 pj . Stel dat er ook een andere job is, zeg P l, met dl ≥ nj=1 pj en met pl > pk . Laat S ∗ het schedule zijn dat uit S ontstaat door de taken k en l te verwisselen. Voor alle taken die in S v´ o´ or l gescheduled waren verandert er niets, voor de taken i die in S tussen l en k waren gescheduled geldt Ci∗ = Ci + pk − pl < Ci , en verder is Ck∗ = Cl − pl + pk < Cl en Cl∗ = Ck . Kortom in S ∗ zijn alle taken op tijd klaar en is de som van de voltooiingstijden strict kleiner dan in S. Door bovenstaande stelling herhaald toe te passen kunnen we een schedule van achteraf opbouwen P dat nj=1 Cj minimaliseert onder de voorwaarde dat alle jobs op tijd klaar kunnen zijn. Algoritme 5.1 Het algoritme van Smith Invoer: De bewerkingstijden pj en de due dates dj van taken j = 1, 2, . . . , n. Uitvoer: Een schedule {i1 , i2 , . . . , in } dat voldoet aan de due dates en optimaal is t.a.v. het P criterium nj=1 Cj . P 1. Initialiseer: k := n, τ := nj=1 pj ; J = {1, 2, . . . , n}. 2. Bepaal ik ∈ J zdd. dik ≥ τ en pik ≥ pl voor alle l met dl ≥ τ . 3. τ := τ − pik , k := k − 1 en J := J\{ik }. 4. if k ≥ 1 then goto stap 2 else Stop met het schedule {i1 , i2 , . . . , in }. Opmerking: Het is niet nodig om vooraf te weten of er een schedule is waarbij alle taken op tijd af zijn. Als er geen is, dan vinden we tijdens het algoritme dat er geen taak is met due date minstens τ .
5.2.3
Model C: 1 | |
Pn j=1
Uj
Voor dit model hebben we niet een bepaalde regel, maar wel een goed algoritme. Het algoritme is gebaseerd op het volgende idee. Zet de taken eerst in volgorde van niet-dalende dj ’s. Beschouw nu de taken ´e´en voor ´e´en in de verkregen volgorde. Een nieuwe taak wordt achteraan het (gedeeltelijke) schedule S toegevoegd. Als de toegevoegde taak Jj niet strijdig is met de bijbehorende due date dj , dan laten we deze achteraan het schema staan. Als de toegevoegde taak wel strijdig is met de bijbehorende due date, dan verwijderen we uit S de taak met de grootste bewerkingstijd. Aan het einde van het algoritme voegen we de verwijderde taken in een willekeurige volgorde toe.
200
HOOFDSTUK 5. SCHEDULING
Algoritme 5.2 Het algoritme van Moore 5 Invoer: De bewerkingstijden pj en de due dates dj van taken j = 1, 2, . . . , n. P Uitvoer: Een schedule {i1 , i2 , . . . , in } dat optimaal is t.a.v. het criterium nj=1 Uj . 1. Orden de taken zodanig dat d1 ≤ d2 ≤ · · · ≤ dn ; S := ∅; p := 0. 2. for j = 1 step 1 until n do: begin S := S ∪ {j}; p := p + pj ; if p > dj then begin bepaal l zdd. pl = maxk∈S pk ; S := S\{l}; p := p − pl end end 3. Stop met het schedule {i1 , i2 , . . . , in } := {S, {1, 2, . . . , n}\S}.
Stelling 5.4 Het algoritme van Moore geeft een optimaal schedule. Bewijs In stap 1 worden de taken hernummerd zdd. d1 ≤ d2 ≤ · · · ≤ dn . Zij Sk een deelverz. van {1, 2, . . . , k}, waarvoor geldt: a. Sk is een verz. met het grootste aantal taken uit {1, 2, . . . , k}, zeg nk , dat op tijd kan worden uitgevoerd; b. onder alle verz. met nk taken uit {1, 2, . . . , k} die op tijd kunnen worden uitgevoerd heeft Sk de kleinste totale bewerkingstijd. Sn is dus een optimaal schedule (de verwijderde taken kunnen op een willekeurige manier achteraan worden toegevoegd). We zullen met inductie naar k bewijzen dat de k-de stap van het algoritme een goede Sk oplevert. (k = 1 is triviaal). Veronderstel dat het algoritme een goede Sk heeft geconstrueerd. Geval 1: In stap k + 1 kan taak k + 1 aan Sk worden toegevoegd zonder de due date dk+1 te overschrijden. Het is niet mogelijk meer dan nk + 1 taken uit {1, 2, . . . , k + 1} op tijd af te hebben en taak k + 1 moet deel uitmaken van Sk+1 . Volgens de inductieveronderstelling heeft deze Sk+1 minimale bewerkingstijd. Geval 2: In stap k + 1 kan taak k + 1 niet aan Sk worden toegevoegd zonder de due date dk+1 te overschrijden. In dit geval is nk+1 = nk (omdat Sk de kortste bewerkingstijd heeft van de nk op tijd uit te voeren taken van {1, 2, . . . , k}). Door taak k + 1 toe te voegen en de langste taak uit Sk ∪ {k + 1} te verwijderen krijgen we dat weer nk taken uit {1, 2, . . . , k + 1} op tijd kunnen worden uitgevoerd met kortste bewerkingstijd. 5
J.M. Moore, An n job, one machine sequencing algorithm for minimizing the number of late jobs, Management
Science 15 (1968) 102-109.
´ MACHINE 5.2. EEN
201
Opmerking: Het is mogelijk voor bovenstaand algoritme een implementatie te maken met complexiteit O(nlogn) (zie ook Opgave 5.3). Voorbeeld 5.2 Beschouw een 1 | |
Pn
j=1 Uj
1
2
3
4
5
6
pj
2
4
1
2
3
1
dj
3
5
6
6
7
8
probleem met n = 6 en verder de volgende data: Merk op dat de dj ’s reeds in niet-dalende volgorde staan. Initialisatie: S := ∅; p := 0.
Iteratie 1: S := {1}; p := 2. Iteratie 2: S := {1, 2}; p := 6; l := 2; S := {1}; p := 2. Iteratie 3: S := {1, 3}; p := 3. Iteratie 4: S := {1, 3, 4}; p := 5. Iteratie 5: S := {1, , 3, 4, 5}; p := 8; l := 5; S := {1, 3, 4}; p := 5. Iteratie 6: S := {1, 3, 4, 6}; p := 6. Een optimaal schedule is: {1, 3, 4, 6, 2, 5} met Opmerking: We hebben de criteria
Pn
j=1 Tj ,
Pn
j=1 wj Tj
P6
j=1 Uj
en
= 2.
Pn
j=1 wj Uj
nog niet bekeken. Er kan worden
aangetoond dat de daarbij behorende problemen N P-volledig zijn.6 Wel zijn er enkele resultaten voor speciale problemen (zie Opgave 5.2). In het algemeen worden NP-moeilijke problemen opgelost met branch-and-bound, enumeratie en dynamische programmering. Ook worden voor dit soort problemen vaak benaderingsalgoritmen ontwikkeld. Vraag 5.2 Geef een rechtsteeks argument (geen verwisselingsargument en ook niet de Stelling van Smith P gebruiken) dat in het model 1 | | j Cj de SPT-regel optimaal is. Vraag 5.3 Beschouw het probleem met n = 7, p1 = 6, p2 = 2, p3 = 4, p4 = 9, p5 = 3, p6 = 1, p7 = 8 en d1 = 36, d2 = 16, d3 = 9, d4 = 25, d5 = 34, d6 = 41, d7 = 17. Pas het Algoritme van Smith toe P om een schedule te vinden waarin 7j=1 Cj minimaal is. Vraag 5.4 Beschouw het model 1 | |
Pn
j=1
Uj met n = 6, p1 = 6, p2 = 1, p3 = 2, p4 = 9, p5 = 4, p6 = 6 en
d1 = 10, d2 = 4, d3 = 6, d4 = 16, d5 = 12, d6 = 20. Bepaal een optimaal schedule. 6
Du and Leung hebben in 1990 aangetoond dat het probleem met criterium
Pn j=1
Tj N P-volledig is (J. Du
and J.Y-T. Leung, Minimizing total tardiness on one machine is N P-hard, Mathematics of Operations Research P 15 (1990) 483–495). Dit betekent dat het criterium n j=1 wj Tj ook een N P-volledig probleem geeft. Dit laatste was overigens reeds in 1976 door Rinnooy Kan aangetoond (A.H.G. Rinnooy Kan, Machine scheduling problems: Classification, complexity and computations, Stenfert Kroese, 1976). In 1972 heeft Karp bewezen dat het scheduling Pn probleem met criterium j=1 wj Uj N P-volledig is (R.M. Karp, Reducibility among combinatorial problems, in: R.E. Miller and J.W. Thatcher (eds.), Complexity of computer computations, Plenum Press (1972) 85–103).
202
HOOFDSTUK 5. SCHEDULING
5.3
Twee machines
5.3.1
Model D: O2 | | Cmax
Door pij = 0 te nemen voor de machines waarop deze taken niet hoeven te worden behandeld, mogen we wel aannemen dat iedere taak op iedere machine moet worden behandeld. Lemma 5.1 Voor ieder schedule geldt: Cmax ≥ max{maxj (p1j + p2j ),
Pn
j=1 p1j ,
Pn
j=1 p2j }.
Bewijs Omdat iedere taak op beide machines moet worden behandeld en dit niet gelijktijdig kan, geldt: Cmax ≥ maxj (p1j + p2j ). Omdat alle taken op machine 1 na elkaar moeten worden behandeld P P geldt Cmax ≥ nj=1 p1j . Analoog moet gelden dat Cmax ≥ nj=1 p2j . Door Pinedo is aangetoond (zie de volgende stelling) dat de LAPT-regel (longest alternate processP P ing time first) een optimaal schedule geeft met Cmax = max{maxj (p1j +p2j ), nj=1 p1j , nj=1 p2j }. Deze regel kiest, zodra een machine vrij komt, op die machine een taak die nog op geen van beide machines is bewerkt en waarvoor de bewerkingstijd op de andere machine maximaal is (indien alle taken reeds op minstens ´e´en machine zijn gescheduled, dan wordt een willekeurige taak gekozen, waarbij de keuze voor de eerste taak van M1 op M2 zolang mogelijk wordt uitgesteld, en omgekeerd de keuze voor de eerste taak van M2 op M1 ook zolang mogelijk wordt uitgesteld). Voorbeeld 5.3 1
2
3
4
5
p1j
3
5
1
6
7
p2j
6
2
2
6
5
De LAPT-regel geeft het volgende schedule: 3 M1
9
1
M2
4 5
2
2 5
14 15
3 7
3
5
4 9
22
1 15
J J J
21
Stelling 5.5 (Pinedo 7 ) De LAPT-regel geeft een optimaal schedule. Bewijs Stel de eerste twee taken op M1 en M2 zijn j resp. k. We onderscheiden twee gevallen: 7
M. Pinedo, Scheduling: theory, algorithms ans systems, Prentice Hall, Englewood Cliffs, N.J. (1995) 119-121.
5.3. TWEE MACHINES
203
Geval 1: Tijdens p1j kunnen alle taken i 6= j op M2 worden uitgevoerd. Taak j kan dan na behandeling op M1 op ieder moment op M2 worden behandeld (maar heeft daar wel de laagste prioriteit) en de taken i 6= j kunnen op M1 worden uitgevoerd zodra taak j P daar klaar is. Dit geeft Cmax = max{maxj (p1j + p2j ), nj=1 p1j }, dus een optimaal schedule. Het geval dat tijdens p2k alle taken i 6= k op M1 kunnen worden uitgevoerd gaat analoog. Geval 2: Tijdens p1j kunnen niet alle taken i 6= j op M2 worden uitgevoerd en tijdens p2k kunnen niet alle taken i 6= k op M1 worden uitgevoerd. a. M1 bepaalt Cmax en is niet altijd bezig. (1) Tot het moment dat taak k op M1 is uitgevoerd is M1 steeds zonder oponthoud bezig: taak k wordt dus niet als laatste op M1 uitgevoerd, maar een andere taak, zeg taak l. (2) Als taak k op M1 wordt geplaatst terwijl er nog andere taken op M1 moeten worden uitgevoerd, dan is de reden daarvan dat zo’n andere taak op dat moment op M2 wordt uitgevoerd: dit kan maar voor ´e´en taak gelden, namelijk taak l. (3) Taak l begint eerder op M2 dan taak k op M1 begint, want anders zou taak taal l op M1 zijn geplaatst i.p.v. taak k. (4) Taak j komt na taak l en als laatste op M2 en duurt op M2 korter dan taak l op M1 duurt, want M1 bepaalt Cmax . Er geldt dus: p2j ≥ p2l (want taak j is de eerste op M1 ), p2l > p1k (want taak k begint op M1 later dan taak l op M2 en moet na afloop wachten op be¨eindigen taak l op M2 ) en p1k ≥ p1l (want taak k wordt als eerste op M2 gekozen). Verder is p1l ≥ p2j (want taak l moet na M2 nog op M1 (als laatste) en j moet dan nog op M2 , en M1 is het laatste klaar. Dit leidt tot een tegenspraak, immers: p2j ≥ p2l > p1k ≥ p1l ≥ p2j . P M1 is dus wel altijd bezig, zodat Cmax = nj=1 p1j , dus een optimaal schedule. b. M2 bepaalt Cmax en is niet altijd bezig. Dit geval gaat geheel analoog aan geval a. Opmerking: In verband met het sorteren van de taken, heeft de LAPT-regel complexiteit O(nlogn).
5.3.2
Model E: F2 | | Cmax
Dit probleem is opgelost door Johnson,8 die heeft bewezen dat de zogenaamde SPT1-LPT2regel (shortest processing time first on M1 - largest processing time first on M2 ) optimaal is. In het volgende lemma wordt aangetoond dat er een optimaal schedule bestaat met op beide machines dezelfde volgorde. Optimale schedules kunnen dus beschouwd worden als een permutatie van {1, 2, . . . , n}. Intu¨ıtief ligt het voor de hand om in de permutatie taken met een kleine bewerkingstijd op de eerste machine vooraan te zetten en taken met een kleine bewerkingstijd op de tweede machine achteraan te zetten omdat dan machine M2 in het begin zo kort mogelijk onbenut blijft en machine M1 op het einde zo kort mogelijk stil staat. 8
S.M. Johnson, Optimal two- and three-stage production schedules with setup times included, Naval Research
Logistics Quarterly 1 (1954) 61-68.
204
HOOFDSTUK 5. SCHEDULING
Lemma 5.2 Er bestaat een optimaal schedule met op beide machines dezelfde volgorde. Bewijs Beschouw een optimaal schedule waarin de volgorde op beide machines zolang mogelijk hetzelfde is, zeg voor de eerste k taken (k = 0 is mogelijk), en veronderstel dat k < n. Laat i de taak zijn die als k-de op beide machines wordt behandeld, en laat taak j als (k + 1)-ste op M2 zijn gescheduled. Taak j moet dan reeds op M1 klaar zijn en veronderstel dat op M1 tussen de taken i en j de taken j1 , j2 , . . . , jl worden uitgevoerd, die op M2 dus pas na taak j aan bod komen. Maar dan kan, zonder Cmax te verhogen, op M1 ook de volgorde . . . , i, j, j1 , j2 , . . . , jl , . . . worden gekozen, zodat de eerste k + 1 taken op beide machines dezelfde zijn: tegenspraak. Laat ai := p1i , bi := p2i voor i = 1, 2, . . . , n. Voor een schedule {j1 , j2 , . . . , jn } defini¨eren we: Wk := aj1 + aj2 + · · · + ajk + bjk + bjk+1 + · · · + bjn , k = 1, 2, . . . , n. Het is duidelijk dat iedere Wk een ondergrens is voor Cmax . Indien echter elke Wk strict kleiner zou zijn dan Cmax , dan zouden de bewerkingen die op de tweede machine in het achterste aaneengesloten blok zitten kunnen worden vervroegd waardoor de Cmax kleiner zou worden. Er geldt dus: Cmax = max1≤k≤n Wk . Een optimaal schedule wordt met het volgende algoritme gevonden. Algoritme 5.3 Het algoritme van Johnson Invoer: De bewerkingstijden p1j en p2j van taken j = 1, 2, . . . , n. Uitvoer: Een optimaal schedule S dat op beide machines dezelfde volgorde heeft. 1. X := {j | p1j ≤ p2j }; Y := {j | p1j > p2j }. 2. Sorteer de elementen van X in een niet-dalende volgorde van de p1j ’s en de elementen van Y in een niet-stijgende volgorde van de p2j ’s. Noem de aldus verkregen verz. X 0 resp. Y 0 . 3. S := {X 0 , Y 0 } is een optimaal schema en STOP. Het is eenvoudig in te zien dat de complexiteit van dit algoritme de complexiteit van de sortering is en deze is O(nlogn). Voorbeeld 5.3 (vervolg) X := {1, 3, 4}; Y := {2, 5}. X 0 := {3, 1, 4} en Y 0 := {5, 2}. S := {3, 1, 4, 5, 2} geeft een optimaal schedule. 1
4
M1 3
1
J M2 J J
1
3
10
17
4 J J J
3
4
5
1
4 10
22 2
J J J
16 17
24
Z
½
½
Z
Z½ ½Z
5
2 22
24
5.3. TWEE MACHINES
205
Stelling 5.6 Bovenstaand algoritme geeft een optimaal schedule. Bewijs Stel de SPT(1)-LPT(2)-regel is niet optimaal. Dan is er een paar opeenvolgende taken, zeg j gevolgd door k, zdd. een van de volgende gevallen van kracht is: (1) j ∈ Y en k ∈ X; (2) j, k ∈ X en p1j > p1k ; (3) j, k ∈ Y en p2j < p2k . We moeten aantonen dat in elk van deze gevallen het verwisselen van j en k een niet grotere Cmax geeft. 0 zijn de tijdstippen waarop taak i klaar is op machine m in het schedule van het Stel Cmi en Cmi
algoritme resp. het schedule waarin j en k verwisseld zijn. Laat i de taak zijn die direct aan j voorafgaat in het schedule van het algoritme. 0 ≤C We moeten bewijzen dat C2j 2k in alle drie hierboven genoemde gevallen. 0 kunnen we schrijven (als j de eerste taak is, is C Voor C2k en C2j mi = 0):
C2k = p2k + max{p2j + max(C2i , C1i + p1j ), C1i + p1j + p1k } = max{C2i + p2k + p2j , C2i + p1j + p2k + p2j , C1i + p1j + p1k + p2k }. 0 C2j
= p2j + max{p2k + max(C2i , C1i + p1k ), C1i + p1k + p1j } = max{C2i + p2j + p2k , C2i + p1k + p2j + p2k , C1i + p1k + p1j + p2j }.
0 aan elkaar gelijk zijn. Merk op dat de eerste termen van C2k en C2j
Voor de diverse gevallen krijgen we: (1) p1j > p2j en p1k ≤ p2k : de tweede term van C2k is minstens de 0 en de derde term van C 0 derde term van C2j 2k is groter dan de tweede term van C2j . 0 . In dit geval geldt dus C2k ≥ C2j 0 (2) p1j ≤ p2j , p1k ≤ p2k en p1j > p1k : de tweede term van C2k is minstens de derde term van C2j 0 : C 0 en de tweede term van C2k is groter dan de tweede term van C2j 2k ≥ C2j .
(3) p1j > p2j , p1k > p2k en p2j < p2k : de derde term van C2k is groter dan de tweede term van 0 en de derde term van C 0 0 C2j 2k is groter dan de tweede term van C2j : C2k ≥ C2j .
5.3.3
Model F: J2 | | Cmax
De analyse van dit model wordt herleid tot die van het flow shop model en is afkomstig van Jackson.9 Laat J1 := {j | taak j moet alleen op M1 }
9
J2
:=
{j | taak j moet alleen op M2 }
J12
:=
{j | taak j moet eerst op M1 en dan op M2 }
J21
:=
{j | taak j moet eerst op M2 en dan op M1 }
J.R. Jackson, An extension of Johnson’s results on job lot scheduling, Naval Research Logistics Quarterly 3
(1956) 201-203.
206
HOOFDSTUK 5. SCHEDULING
Algoritme 5.4 Het algoritme van Jackson Invoer: De bewerkingstijden p1j en p2j van taken j = 1, 2, . . . , n. Uitvoer: Schedules S1 en S2 die optimaal zijn voor machine M1 resp. machine M2 . 1. Bepaal S12 , de optimale volgorde van F2 | | Cmax voor de taken J12 . 2. Bepaal S21 , de optimale volgorde van F2 | | Cmax voor de taken J21 , waarbij de machines M1 en M2 zijn verwisseld. 3. S1 := {S12 , J1 , S21 } is een optimale volgorde voor M1 , S2 := {S21 , J2 , S12 } is een optimale volgorde voor M2 en STOP. Opmerking: Het is direct duidelijk dat de complexiteit van dit algoritme de complexiteit van Johnson’s algoritme is, d.w.z. O(nlogn). Voorbeeld 5.4 Taak 1: M1 , M2
1
2
3
4
5
6
7
Taak 2: M1 , M2
p1j
1
5
1
2
2
3
-
Taak 3: M2 , M1
p2j
1
3
2
1
-
-
4
Taak 4: M2 , M1
J1 := {5, 6}
Taak 5: M1
J2 := {7}
Taak 6: M1
J12 := {1, 2} → S12 := {1, 2}
Taak 7: M2
J21 := {3, 4} → S21 := {4, 3} S1 := {1, 2, 5, 6, 4, 3}; S2 := {4, 3, 7, 1, 2}. Het Gantt schedule is: 1 M1
1
M2
4
6 2
3 1
8 5
7 3
6 1
7
11
13 4
14 3
2 8
11
Stelling 5.7 Bovenstaand algoritme geeft een optimaal schedule. Bewijs Als S21 op M2 niet langer duurt dan S12 plus J1 op M1 , dan is er op M1 geen oponthoud. In het andere geval is er op M2 geen oponthoud. Ten minste ´e´en van de machines heeft dus geen oponthoud, zeg M1 . Als er ook geen oponthoud is op M2 of als Cmax bepaald wordt door het werk op M1 , dan is het schedule optimaal. Het enige geval dat nog overblijft is dat S21 plus J2 op M2 korter duurt dan S12 op M1 en dat Cmax bepaald wordt door het werk op M2 . Maar dan wordt Cmax alleen bepaald wordt de taken van J12 en die zijn optimaal gescheduled.
5.4. PARALLELLE MACHINES
207
Opmerking: Voor de meeste problemen die we niet behandeld hebben geldt dat ze N P-volledig zijn. Hiertoe P P behoren onder andere: O2 | | j Cj ; O2 | | Lmax ; O3 | | Cmax ; F2 | | j Cj ; F2 | | Lmax ; F3 | | Cmax . Vraag 5.5 Beschouw het F2 | | Cmax model met de hiernaast
1
2
3
4
5
6
7
8
gegeven data.
p1j
6
2
4
1
7
4
7
2
a. Bepaal een optimaal schedule met Johnson’s algoritme.
p2j
3
9
3
8
1
5
6
2
b. Is dit het enige optimale schedule?
5.4
Parallelle machines
Onder deze term wordt het schedulingsprobleem verstaan waarbij een taak op iedere machine dezelfde bewerkingstijd heeft, pj voor taak j, en de taken zo gescheduled moeten worden dat een taak op een van de machines (welke is vrij) moet worden behandeld. Dit soort problemen wordt voor m machines genoteerd met Pm . Model G: Pm | | Cmax Stelling 5.8 (Garey en Johnson) 10 Dit probleem is N P-volledig voor m ≥ 2. Bewijs Het is voldoende om aan te tonen dat P2 | | Cmax reeds N P-volledig is (dat het tot N P behoort is triviaal). Beschouw het volgende probleem (PARTITION): Gegeven zijn n positieve gehele getallen pj , 1 ≤ j ≤ n. Gevraagd: Is er een partitie S1 , S2 van {1, 2, . . . , n} zodat
P j∈S1
pj =
P j∈S2
pj ?
Uit de complexiteitstheorie is bekend dat PARTITION NP-moeilijk is. P2 | | Cmax is op te vatten als het beslissingsproblemen: is er een schedule met Cmax =
1 2
P j
pj .
Dit laatste is equivalent met het PARTITION-probleem. Dus is ook P2 | | Cmax is N P-volledig. Opmerkingen: 1. Pm | | Cmax kan als volgt als een combinatorisch optimaliseringsprobleem worden geformuleerd. ( 1 als taak j op machine i wordt gescheduled Laat: xij := 0 anders Cmax := het tijdstip waarop alle machines klaar zijn. 10
M.R. Garey and D.S. Johnson: Strong N P-completeness results: motivation, examples and implications, Jour-
nal of the ACM 25 (1978) 499–508.
208
HOOFDSTUK 5. SCHEDULING Merk op dat
Pn
j=1
pj xij de tijd is die machine i gebruikt. Het optimaliseringsprobleem luidt:
min Cmax
¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯
1≤i≤m Pm . 1 = i=1 xij , 1 ≤ j ≤ n xij ∈ {0, 1} voor alle (i, j)
Cmax ≥
Pn
j=1 pj xij ,
2. Omdat dit soort problemen NP-moeilijk zijn, worden vaak heuristieken gebruikt om ze op te lossen. Meestal zijn dit zogenaamde lijst-heuristieken, d.w.z. dat de taken op een bepaalde manier op een lijst worden gezet en dat als een machine vrijkomt de volgende taak van de lijst op deze machine wordt gezet. Met Cmax (LIST ) geven we de Cmax aan van het schedule dat volgens LIST wordt bepaald; met Cmax (OP T ) de Cmax van het optimale schema. Stelling 5.9 (Graham) 11 Voor iedere lijst-heuristiek LIST geldt:
Cmax (LIST ) Cmax (OP T )
≤2−
1 m.
Bewijs
P De tijd dat alle machines tezamen aan het werk zijn is nj=1 pj . De laatste machine is dus nooit 1 Pn 1 Pn eerder klaar dan op tijdstip m j=1 pj , zodat geldt: Cmax (OP T ) ≥ m j=1 pj . Beschouw een willekeurige lijst-heuristiek LIST en laat taak k de taak zijn die het laatste gereed komt. Op het moment dat taak k begint zijn alle machines nog bezig (anders zou taak k eerder aan de beurt zijn gekomen), zodat voor ti , het tijdstip waarop machine i klaar is als de lijstheuristiek wordt gebruikt, geldt: ti ≥ Cmax (LIST ) − pk , 1 ≤ i ≤ m en tl = Cmax (LIST ) voor zekere l. We kunnen nu schrijven: Pn Pm j=1 pj = i=1 ti ≥ (m − 1){Cmax (LIST ) − pk } + Cmax (LIST ) = m · Cmax (LIST ) − (m − 1)pk . Dus geldt: Cmax (LIST ) ≤
1 m
Pn
j=1 pj
m−1 1 + m−1 m pk ≤ Cmax (OP T ) + m Cmax (OP T ) = (2 − m )Cmax (OP T ).
Opmerkingen: 1. Iedere lijst-heuristiek komt dus maximaal een factor 2 te hoog uit. 2. Uit de laatste regel van het bewijs volgt ook dat voor iedere lijst-heuristiek LIST geldt dat 1 1 Pn Cmax (LIST ) ≤ m j=1 pj + (1 − m )maxj pj . 3. De grens uit bovenstaande stelling is scherp, d.w.z. er is voorbeeld dat voor iedere m de gelijkheid geeft. Beschouw namelijk 2m − 1 taken met de volgende bewerkingstijden: m−1 1≤j ≤m−1 pj := 1 m ≤ j ≤ 2m − 2 m j = 2m − 1 Neem als lijst: L := {1, 2, ..., 2m − 1}. Ga na dat Cmax (LIST ) = 2m − 1 en Cmax (OP T ) = m. 11
R.L. Graham, Bounds on multiprocessing timing analomies, SIAM Journal of Applied Mathematics 17 (1969)
263-269.
5.4. PARALLELLE MACHINES
209
De LPT-regel (largest processing time first) kiest de taken naar niet-stijgende bewerkingstijden. Voor deze regel geldt een sterker resultaat, namelijk maximaal een factor Stelling 5.10 (Graham)
4 3
te hoog.
12
Voor de LPT-heuristiek geldt:
Cmax (LP T ) Cmax (OP T )
≤
4 3
−
1 3m .
Bewijs Stel dat de bewering niet waar is en beschouw een tegenvoorbeeld met een minimum aantal taken. Bij dit tegenvoorbeeld moet taak n ook de taak zijn waaraan met de LPT-regel tot het einde toe wordt gewerkt (anders kan taak n worden weggelaten en hebben we een tegenvoorbeeld met minder taken). In het het bewijs van de vorige stelling hebben we gezien dat geldt: 1 Pn m−1 m−1 Cmax (LP T ) ≤ m j=1 pj + m pn ≤ Cmax (OP T ) + m pn . Hieruit volgt (het eerste kleiner-teken omdat we een tegenvoorbeeld hebben): 1 + 13 (1 −
1 m)
<
Cmax (LP T ) Cmax (OP T )
≤1+
1 (1− m )pn Cmax (OP T ) ,
dus Cmax (OP T ) < 3pn , waarbij pn de kortste taak is. Het kleinste tegenvoorbeeld heeft dus een optimaal schedule met op iedere machine hoogstens 2 taken: n ≤ 2m. Bewering: Voor het schedulen van hoogstens 2m taken op m machines zdd. in een optimaal schedule iedere machine hoogstens 2 taken heeft, is de LPT-regel optimaal. Bewijs: Door eventueel taken met tijdsduur 0 toe te voegen, mogen we aannemen dat er precies 2m taken zijn. Deze worden door de LPT-regel zo gescheduled dat op machine i de taken i en 2m + 1 − i worden uitgevoerd (i = 1, 2, . . . , m). Stel de LPT-regel vindt Cmax op machine k, d.w.z. Cmax (LP T ) = pk + p2m+1−k , en deze regel is niet optimaal. Dan worden de taken k en 2m + 1 − k in het optimale schedule gekoppeld aan taken die korter duren, zeg aan de taken 2m + 1 − j resp. i met j < k en i > k. Maar dan kunnen niet alle taken uit {1, 2, . . . , k − 1} gekoppeld worden aan de kleinste k taken: er is in het optimale schedule een taak t (1 ≤ t ≤ k −1) gekoppeld aan een taak 2m + 1 − s met s > k. Maar dan krijgen we als volgt een tegenspraak: Cmax (LP T ) = pk + p2m+1−k ≤ pt + p2m+1−s ≤ Cmax (OP T ) < Cmax (LP T ). Omdat de LPT-regel in dit geval optimaal is, is er geen kleinste tegenvoorbeeld. Voorbeeld 5.5 m = 4; n = 9. p1 = 7, p2 = 7, p3 = 6, p4 = 6, p5 = 5, p6 = 5, p7 = 4, p8 = 4 en p9 = 4. De LPT-regel geeft: Het optimale schedule is: 7
11
M1
1
7
M2
2
M3 M4
7
12
M1
1
5
8
M2
2
6
3
5
M3
3
4
4
6
M4
6 12
15 9
11
7
8 4
9 8
R.L. Graham, Bounds on multiprocessing timing analomies, SIAM Journal of Applied Mathematics 17 (1969)
263-269.
12
210
HOOFDSTUK 5. SCHEDULING
Model H: Pm | prmp | Cmax Bij dit model is het toegestaan een taak te onderbreken (preemption) en het resterende deel van de taak later weer voort te zetten op dezelfde of een andere machine. Het is duidelijk dat geldt: 1 Pn Cmax ≥ max{maxj pj , m j=1 pj }. Het volgende algoritme geeft een optimaal schedule omdat 1 Pn het bijbehorende schedule Cmax = max{maxj pj , m j=1 pj } oplevert. Algoritme 5.5 Invoer: De bewerkingstijden pj van de taken j = 1, 2, . . . , n en m identieke machines. Uitvoer: Een toekenning van de taken aan de machines zdd. dat Cmax minimaal is. 1 1. T := max{maxj pj , m
Pn
j=1 pj };
i := 1; ti := 0.
2. for j = 1 step 1 until n do begin if ti + pj ≤ T then begin schedule taak j op machine i; ti := ti + pj end else begin schedule taak j gedurende T − ti tijdseenheden op machine i en gedurende pj − (T − ti ) tijdseenheden op machine i + 1; i := i + 1; ti := pj − (T − ti ) end end Opmerking: Iedere taak staat `ofwel geheel op ´e´en machine, `ofwel op twee opeenvolgende machines en dan aan het einde van machine i en aan het begin van machine i + 1, dus het schedule is toegestaan. 1 Pn Het is ook duidelijk dat het schedule een Cmax oplevert met Cmax = max{maxj pj , m j=1 pj }. Verder is direct in te zien dat de complexiteit O(n) is. Model I: Pm | intree; pj = 1 | Cmax In dit model zijn de taken partieel geordend, d.w.z. dat er eisen kunnen zijn dat bepaalde taken pas kunnen starten als andere taken af zijn. Deze parti¨ele ordening kan met een gerichte graaf worden voorgesteld: als knooppunten nemen we alle taken en er is een pijl (i, j) als taak i af moet zijn voordat met taak j begonnen kan worden. Deze graaf mag geen ronden bevatten (anders is er inconsistentie). Bovendien nemen we aan dat ieder knooppunt, behalve knooppunt 1, precies ´e´en uitgaande pijl heeft. Vanuit ieder knooppunt is er dus een uniek pad naar knooppunt 1, de wortel, en ieder knooppunt heeft een bepaald niveau (het aantal pijlen naar de wortel). De knooppunten kunnen per niveau en oplopend genummerd worden: op niveau 0 knooppunt 1, op niveau 1 de knooppunten 2,3, . . . , etc. Dit kan bijvoorbeeld met de BFS-methode in O(n). Startpunten zijn knooppunten die geen binnenkomende pijlen hebben. Verder geldt voor dit model dat pj = 1 voor alle taken j. Deze eigenschappen worden bedoeld met de begrippen intree; pj = 1.
5.4. PARALLELLE MACHINES
211
Voorbeeld 5.6 Laat n = 12 en m = 3. De volgorde relaties zijn gegeven door een boom met de pijlen (2, 1), (3, 1), (4, 1), (5, 2), (6, 2), (7, 3), (8, 3), (9, 5), (10, 5), (11, 5) en (12, 6).
Algoritme 5.6 (Hu) 13 Invoer: n taken, partieel geordend via een intree met bewerkingstijd 1, en m identieke machines. Uitvoer: Een toekenning van de taken aan de machines zdd. dat Cmax minimaal is. 1. t := 0; S := ∅. for i = n step −1 unitil 1 do begin if i een startpunt is then S := S ∪ {i} end 2. Plaats de eerste min(m, |S|) taken uit S ieder op een aparte machine; verwijder de op de machines geplaatste taken uit S en uit de boom; if in de boom nieuwe startpunten ontstaan then begin voeg deze aan S toe op een plaats zodat de elementen van S een dalende rij getallen vormen end t := t + 1. 3. if S 6= ∅ then goto stap 2 else Cmax := t en STOP
Voorbeeld 5.6 (vervolg) Bovenstaand algoritme geeft het volgende schedule: M1
12
9
6
3
M2
11
8
5
2
M3
10
7
4
1
Stelling 5.11 Het bovenstaande algoritme is correct en heeft complexiteit O(n2 ). Bewijs Laat nt (j) = het aantal knooppunten van niveau j in iteratie t en laat st (j) = het aantal startpunten van niveau j in iteratie t. Zij Cmax (OP T ) de optimale voltooiingtijd, Cmax (ALG) de voltooiingstijd van het algoritme en h het hoogste niveau dat voorkomt. 13
T.C. Hu, Parallel sequencing and assembly line problems, Operations Research 9 (1961) 841-848.
212 Bewering 1: Cmax (OP T ) ≥
HOOFDSTUK 5. SCHEDULING 1 Ph m { j=k+1
n0 (j) + m · (k + 1)}, k = 0, 1, . . . , h.
Bewijs: Beschouw de situatie dat een optimaal schedule zoveel knooppunten heeft weggehaald dat niveau k het hoogste niveau is geworden. Vanaf dat moment zijn er tenminste k + 1 iteraties nodig (per iteratie kan het niveau hoogstens ´e´en zakken), en tot aan dat moment moeten tenminste alle 1 Ph knooppunten van de niveau’s k + 1 t/m h zijn verwijderd; dit vereist tenminste m j=k+1 n0 (j) iteraties. Hiermee is deze bewering aangetoond. P Laat St (j) = i≥j st (i), d.w.z. het aantal startpunten dat in iteratie t minstens het niveau j heeft. Laat k0 de grootste waarde van k zijn (eventueel k = 0), zodat op het moment dat met het algoritme alle knooppunten van niveau k + 1 verwijderd zijn vervolgens nog k + 1 iteraties nodig zijn om alle knooppunten te verwijderen. 1 Bewering 2: Cmax (ALG) = d m {
Ph
j=k0 +1
n0 (j) + m · (k0 + 1)}e.
Bewijs: Als k0 = h, dan klopt de bewering, want Cmax (ALG) = h+1. Veronderstel nu dat 0 ≤ k0 ≤ h−1, laat t0 de iteratie zijn waarop niveau k0 + 1 als hoogste niveau wordt bereikt en t1 de iteratie waarop niveau k0 als hoogste niveau wordt bereikt. Uit de definitie van k0 volgt: 0 ≤ t0 ≤ t1 − 2. Ieder knooppunt (behalve de wortel) heeft precies ´e´en uitgaande pijl. Als er dus een startpunt wordt verwijderd kan er hoogstens ´e´en nieuw startpunt ontstaan. Dus geldt: St (k0 + 1) ≥ St+1 (k0 + 1) voor alle t. Voor 0 ≤ t ≤ t0 kunnen we schrijven: St (k0 + 1) ≥ St0 (k0 + 1) = st0 (k0 + 1) = nt0 (k0 + 1) > m, de laatste ongelijkheid omdat anders t1 = t0 + 1. Tijdens de iteraties t = 0, 1, . . . , t0 wordt er dus geen enkel knooppunt van een niveau lager dan k0 + 1 verwijderd (want de knooppunten staan op S naar dalend niveau) en kunnen er steeds m taken op de machines worden geplaatst. De knooppunten van de niveau’s k0 + 1, k0 + 2, . . . , h 1 Ph worden dus verwijderd in de eerste d m j=k0 +1 n0 (j)e iteraties en vervolgens zijn er nog k0 + 1 iteraties nodig. Hiermee is bewering 2 aangetoond. 1 Ph Hieruit volgt: Cmax (ALG) = d m { j=k0 +1 n0 (j) + m · (k0 + 1)}e ≤ Cmax (OP T ) ≤ Cmax (ALG), d.w.z. het algorime is correct. Bewering 3: De complexiteit is O(n2 ). Bewijs: Stap 1 van het algoritme vereist O(n) berekeningen. In stap 2 wordt ieder knooppunt ´e´en keer gekozen om S te verlaten, waarna gekeken moet worden of het verwijderen van dit knooppunt een nieuw startpunt oplevert. Dit kan worden gedaan door te kijken of de opvolger van dit knooppunt een opvolger is van nog niet verwijderde knooppunten. Als dat niet het geval is, dan is deze opvolger een nieuw startpunt. Deze controle is van O(n). Wordt een nieuw startpunt gevonden, dan moet dit op de goede plaats in S worden gezet. Hiervoor moet S ´e´enmaal (geheel of gedeeltelijk) worden doorlopen. Ook dit is van O(n). In totaal is stap 2 dus van O(n2 ).
5.4. PARALLELLE MACHINES Model J: Pm | |
P j
213
Cj 14
Bij het ´e´en-machine model hebben we (als speciaal geval van de WSPT-regel) gezien dat de SPTP regel optimaal is voor het criterium j Cj . De volgende stelling laat zien dat dit ook het geval is voor het model met parallelle machines. Stelling 5.12 De SPT-regel is optimaal. Bewijs Veronderstel dat
n m
geheel is (dit kan altijd worden bereikt door dummy taken met bewerkingstijd
0 toe te voegen).Veronderstel verder dat er ni taken op machine i worden gescheduled en laat j(i,l) de taak zijn die op machine i op plaats l staat, 1 ≤ i ≤ m. Dan geldt: P Pm j Cj = i=1 {pj(i,1) + (pj(i,1) + pj(i,2) ) + · · · + (pj(i,1) + pj(i,2) + · · · + pj(i,ni ) )} Pm = i=1 {ni pj(i,1) + (ni − 1)pj(i,2) + · · · + pj(i,ni ) }. De m taken, die als laatste op de machines staan, tellen 1x mee, weer m taken (de op ´e´en na laatste) tellen 2x mee, etc. De uitdrukking is dus minimaal als de taken die achteraan staan de m grootste taken zijn, etc., totdat de laatste m taken (met dus de kleinste bewerkingstijden) vooraan staan. De SPT-regel geeft nu een schema dat overeenkomt met een hierboven aangegeven optimaal schema. De SPT-regel is niet het enige optimale schedule. Uit het bewijs zien we dat iedere verwisseling over de machines van m taken die alle op dezelfde plaats staan (bijvoorbeeld vooraan) ook een optimaal schema geven. Voorbeeld 5.7 m = 2; n = 6; pj = j, 1 ≤ j ≤ 6. P Het SPT-schedule, met j Cj = 34, is: 1 M1
4
1
M2
9
3
5
2
4
6
2
6
12
Een ander optimaal schedule is: 1 M1 M2
4
1
4 2
14
5 3
2
10
6 5
11
R.W. Conway, W.L. Maxwell and L.W. Miller, Theory of scheduling, Addison-Wesley, Reading, Mass. (1967).
214
HOOFDSTUK 5. SCHEDULING
Voor het model Pm | |
P j
wj Cj is de WSPT-regel niet optimaal, zoals het volgende voorbeeld laat
zien. Voorbeeld 5.8 m = 2; n = 3; p1 = 1, p2 = 1, p3 = 6; w1 = 2, w2 = 2, w3 = 6. P P Een optimaal schedule, met j wj Cj = 42, is: Het WSPT-schedule, met j wj Cj = 46, is: 1 M1 M2
1
7 3
1 M1 M2
2
1
2 2 3
1
6
Vraag 5.6 Beschouw P6 | | Cmax met n = 13. Voor de bewerkingstijden geldt: p1 = p2 = p3 = 6; p4 = p5 = 7; p6 = p7 = 8; p8 = p9 = 9; p10 = p11 = 10; p12 = p13 = 11. a. Bepaal het schema volgens de LPT-regel. b. Vind een optimaal schema. Vraag 5.7 Beschouw het volgende P3 | | intree, pj = 1 | Cmax probleem met n = 21. De volgorde relaties zijn gegeven door een boom met de pijlen (1, 5), (2, 8), (3, 8), (4, 8), (5, 8), (6, 8), (7, 8), (8, 13), (9, 17), (10, 17), (11, 17), (12, 17), (13, 17), (14, 17), (15, 17), (16, 17), (17, 19), (18, 21), (19, 21) en (20, 21). Bepaal een optimaal schema voor dit probleem.
5.5 5.5.1
Verbanden met het handelsreizigersprobleem Model K: 1 | sjk | Cmax
In dit model zijn er setup-tijden voordat een taak kan worden gestart. Indien taak k wordt gestart en de vorige taak is taak j geweest, dan bedragen de setup-tijden sjk (s0k als k als eerste taak op de machine wordt gezet). Voor een willekeurige permutatie (k1 , k2 , . . . , kn ) van de taken geldt: P Pn−1 Cmax = nj=1 pj + s0k1 + j=1 skj kj+1 . Pn Omdat j=1 pj onafhankelijk van de permutatie is, is dit probleem equivalent met het oplossen van een handelsreizigersprobleem tussen de steden {0, 1, . . . , n}, waarbij voor de afstand dij van stad i naar stad j geldt: dj := s0j , dj0 := 0 en dij := sij voor alle 1 ≤ i, j ≤ n.
5.5.2
Model L: Fm | no − wait | Cmax
In dit flow shop model hebben we de extra eis dat zodra een taak op de eerste machine start deze onafgebroken door moet kunnen gaan totdat de taak op de laatste machine klaar is. Toepassingen van dit soort modellen zijn o.a. te vinden in de staalindustrie, waar met hoge temperaturen wordt
5.6. OPGAVEN
215
gewerkt en een staalplaat diverse bewerkingen moet ondergaan en tussentijds niet mag afkoelen. Sj is de starttijd van taak j op de eerste machine. Voorbeeld 5.9 M1
@¡ 3 ¡@ H © H © @¡ M2 H H© 1 2 ©© H © HH © ¡ XXXH »»»© HH©© @ X » M3 » X » XX 1 »» X ©©HH
1
2
3 2
3
Als taak jn als laatste taak wordt gestart, dan geldt: Cmax = Sjn +
Pm
i=1
pijn . Stel dat taak l
direct op taak k volgt. Laat dkl = Sl − Sk . Omdat taak l op alle machines direct moet kunnen starten en ook taak k overal ’direct doorloopt’ geldt: M1 : dkl ≥ p1k . M2 : dkl ≥ (p1k + p2k ) − p1l . In het algemeen: Mi+1 : dkl ≥ (p1k + p2k + · · · + pi+1k ) − (p1l + p2l + · · · + pil ), 0 ≤ i ≤ m − 1. P P Hieruit volgt dat dkl = max0≤i≤m−1 { i+1 j=1 pjl }, 1 ≤ k, l ≤ n. j=1 pjk − Voer bovendien een dummy taak 0 in met pi0 = 0 voor alle i (deze representeert het begin en P einde van het schedule). Neem verder d0j = 0 en dj0 = m i=1 pij voor alle taken j. Nu geldt: Pn−1 Pn−1 Pm djk jk+1 + djn 0 , Cmax = Sjn + i=1 pijn = k=1 (Sjk+1 − Sjk ) + djn 0 = d0j1 + k=1 d.w.z. Cmax is de lengte van de ronde {0, j1 , j2 , . . . , jn , 0} m.b.t. de afstandsmatrix d. De minimale Cmax wordt dus gevonden door dit handelsreizigersprobleem op te lossen.
5.6
Opgaven
Opgave 5.1 Toon aan dat ieder schema dat Lmax minimaliseert ook Tmax minimaliseert, maar dat het omgekeerde niet waar is. Opgave 5.2 Beschouw voor het ´e´en-machine model het criterium
Pn
j=1 Tj .
Toon aan dat als pi < pj en di < dj , dan bestaat er een optimaal schedule waarin taak i eerder wordt gescheduled dan taak j. Opgave 5.3 Laat zien dat het mogelijk is voor het algoritme van Moore een implementatie te geven met complexiteit O(nlogn). Opgave 5.4 Beschouw een ´e´en-machine probleem met due dates. Toon aan dat een rij taken opgesteld volgens niet-dalende dj − pj ’s minj Lj maximaliseert.
216
HOOFDSTUK 5. SCHEDULING
Opgave 5.5 Laat S = {1, 2, . . . , i, i + 1, . . . , n} een permutatieschema zijn voor het F2 | | Cmax model, en laat S ∗ uit S worden verkregen door de taken i en i + 1 te verwisselen. ∗ Bewijs dat Cmax ≤ Cmax als min(p1,i , p2,i+1 ) ≥ min(p2,i , p1,i+1 ).
Opgave 5.6 Beschouw het Fm | | Cmax probleem (niet het P Fm | | Cmax probleem). a. Toon met het verwisselingsargument aan dat er een optimaal schema bestaat waarin op de eerste twee machines dezelfde volgorde geldt. b. Toon met het verwisselingsargument aan dat er een optimaal schema bestaat waarin op de laatste twee machines dezelfde volgorde geldt. c. Construeer een voorbeeld waaruit blijkt dat het Fm | | Cmax probleem niet hetzelfde is als het P Fm | | Cmax probleem. Opgave 5.7 Beschouw een P4 | prec | Cmax probleem met 12 taken. De volgorde restricties worden gegeven door: taak
voorgangers
taak
voorgangers
4
1
10
7,8,9
3
2,4,5
11
7,8,9
6
4,5
12
7,8,9
Voor de bewerkingstijden geldt: p11 = 8; p1 = p2 = p3 = p6 = p9 = p10 = p12 = 10; p5 = 11; p4 = p7 = p8 = 12. a. Stel een schedule op volgens de CP-regel, d.w.z. dat als een machine vrij komt de taak wordt gekozen die vooraan staat in het pad (van de gerichte graaf die verkregen wordt uit de volgorde restricties) met de langste totale bewerkingstijd. b. Is dit een optimaal schedule? Opgave 5.8 Probleem Pm | | Cmax is op te lossen met het volgende combinatorische ¯ ¯ Cmax ≥ Pn pj xij , 1 ≤ i ≤ m ¯ j=1 ¯ Pm ¯ min Cmax ¯ 1 = i=1 xij , 1 ≤ j ≤ n ¯ ¯ ¯ xij ∈ {0, 1} voor alle (i, j)
optimaliseringsprobleem: . (5.1)
a. Beschouw de relaxatie van (5.1) waarin de eis xij ∈ {0, 1} wordt vervangen door 0 ≤ xij ≤ 1 1 Pn voor alle i en j. Toon aan dat het optimum van dit LP-probleem gelijk is aan m j=1 pj . b. Neem vervolgens de relaxatie waarin de eis xij ∈ {0, 1} wordt vervangen door 0 ≤ xij ≤ 1 voor alle i en j, en tevens de beperkingen Cmax ≥ pj , 1 ≤ j ≤ n worden toegevoegd. Wat is nu het optimum van het LP-probleem?
Hoofdstuk 6
SPELTHEORIE 6.1
Inleiding
In de speltheorie hebben we te maken met problemen waarbij meer dan ´e´en beslisser aanwezig is. De beslissers hebben in het algemeen uiteenlopende doelstellingen. Indien de spelers ieder een bepaalde strategie kiezen, dan krijgt iedere speler een zekere uitbetaling. De modellen die we in de speltheorie tegenkomen kunnen op verschillende manieren worden ingedeeld. We onderscheiden: - tweepersonen-spelen en meer-personen-spelen; - nulsomspelen (som van alle uitbetalingen is 0) en niet-nulsomspelen; - co¨operatieve spelen (combinevorming is toegestaan) en niet-co¨ operatieve spelen. Voorbeeld 6.1 1 4 3 A= 5 2 6 0 2 4
Matrixspel (tweepersonen nulsomspel) De spelers S1 en S2 kiezen onafhankelijk van elkaar een rij resp. een 2 kolom. Indien S1 rij i kiest en S2 kolom j, dan ontvangt S1 het bedrag 4 a van S . S wil zijn uitbetaling maximaliseren en S wil dat bedrag ij 2 1 2 2 minimaliseren. Wat zijn voor beide spelers optimale strategie¨en?
Voorbeeld 6.2 Prisoners dilemma (tweepersonen niet-nulsomspel) Twee van moord verdachte personen worden gearresteerd en onafhankelijk van elkaar verhoord. Ze kunnen daarbij bekennen of ontkennen. Als beiden ontkennen, dan is er onvoldoende bewijslast en worden beiden slechts veroordeeld voor verboden wapenbezit. Voor dit vergrijp moeten zij 6 maanden celstraf ondergaan. Als beiden bekennen, dan krijgen beiden 4 jaar celstraf. Als ´e´en van beiden bekent en de ander ontkent, dan wordt de persoon die bekent als kroongetuige beschouwd. De kroongetuige krijgt voor zijn verklaring vrijspraak (om daarmee de ander te kunnen veroordelen) en de ander krijgt een extra zware celstraf van 5 jaar. Deze gegevens kunnen worden samengevat in onderstaande zogenaamde bi-matrix. Ieder element heeft twee posities: het eerste is de uitbetaling (het tegengestelde van de strafmaat met als eenheid een half jaar) aan persoon 1, het tweede is de uitbetaling aan de tweede persoon. De rijen en kolommen horen bij de mogelijkheden voor deze personen: A betekent ontkennen en B bekennen; de rijen horen bij persoon 1, de kolommen bij persoon 2. 217
218
HOOFDSTUK 6. SPELTHEORIE A
B
A
(-1,-1)
(-10,0)
B
(0,-10)
(-8,-8)
Wat is voor beide spelers de beste strategie? (ze mogen niet met elkaar overleggen)
Voorbeeld 6.3 Battle of the sexes (tweepersonen niet-nulsomspel) Een pas getrouwd stel bespreekt wat zij die avond zullen gaan doen. De vrouw wil graag naar het theater, de man verkiest een sportwedstrijd te bezoeken. Als ze verschillend kiezen, dan blijven ze thuis, wat door beiden neutraal wordt gewaardeerd (uitbetaling 0). Als ze dezelfde keuze maken, dan waarderen beiden dit positief. Degene die zijn of haar zin krijgt beschouwt dit als een uitbetaling 4, de ander als een uitbetaling 1. Welke keuze zullen ze maken? Dit is een bi-matrix spel met de volgende bi-matrix (de man kiest een rij, de vrouw een kolom; T staat voor het theater en S voor de sportwedstrijd): T
S
T
(1,4)
(0,0)
S
(0,0)
(4,1)
Voorbeeld 6.4 Handschoenenspel (co¨ operatief spel) Er zijn n spelers die ieder een rechter (R) of een linker handschoen (L) bezitten. Een enkele handschoen is niets waard, maar een paar handschoenen is 25 euro waard. Spelers kunnen coalities met elkaar vormen. Een coalitie heeft een bepaalde waarde: 25× het aantal handschoenenparen van de coalitie. Zo hebben alle spelers tezamen de waarde: 25 × min(|R|, |L|). Het probleem bij een co¨operatief spel is: hoe deze waarde onder de spelers te verdelen zodat ieder zo veel mogelijk tevreden is. Als |R| > |L|, dan lijken de spelers met een linker handschoen meer waard dan die met een rechter. Hoeveel meer?
6.2
Tweepersonen nulsomspel
Een tweepersonen nulsomspel wordt gegeven door een n×m uitbetalingsmatrix A = (aij ), met aij het bedrag dat S1 van S2 ontvangt als S1 rij i kiest en S2 kolom j. We veronderstelllen allereerst dat de spelers zich beperken tot zuivere strategie¨en, d.w.z. dat ze niet mogen loten maar een bepaalde rij of kolom (met kans 1) moeten kiezen. S1 kan er op deze wijze voor zorgen dat hij tenminste v(A) = maxi minj aij
(6.1)
ontvangt (hoe?) en analoog kan S2 zijn betaling weten te beperken tot v(A) = minj maxi aij Voorbeeld 6.1 (vervolg) v(A) = maxi minj aij = max{1, 2, 0} = 2 en v(A) = minj maxi aij = min{5, 4, 6, 4} = 4.
(6.2)
6.2. TWEEPERSONEN NULSOMSPEL
219
Lemma 6.1 v(A) ≥ v(A). Bewijs Voor iedere k geldt: aik ≥ minj aij voor iedere i. Hieruit volgt: maxi aik ≥ maxi minj aij = v(A) voor alle k, zodat v(A) = mink maxi aik ≥ maxi minj aij = v(A). Als aij ≥ akj voor alle j, dan zal S1 geen interesse hebben in rij k, zodat deze uit de matrix kan worden weggelaten. We zeggen dan dat rij i de rij k domineert. Analoog geldt: als aij ≤ ail voor alle i, dan is kolom l voor S2 niet interessant en kan deze kolom worden weggelaten. Op deze wijze kan de matrix worden gereduceerd totdat er geen dominante rijen of kolommen meer zijn. Voorbeeld 6.1 (vervolg) Rij 3 wordt gedomineerd door rij 2 en kolom 3 door!kolom 1 (trouwens ook door kolom 4). Ã 1 4 2 Daarmee wordt de matrix gereduceerd tot . 5 2 4 Een zadelpunt is een element dat zowel het grootste in zijn kolom als het kleinste in zijn rij is: akl is een zadelpunt als akl = maxi ail = minj akj . Een matrix hoeft geen zadelpunt te bezitten (zie Voorbeeld 6.1). Rij k is een optimale (zuivere) strategie voor S1 indien akj ≥ v(A) voor alle j; kolom l is een optimale strategie voor S2 indien ail ≤ v(A) voor alle i. Lemma 6.2 Indien alk een zadelpunt is, dan zijn k en l optimale strategie¨en voor S1 resp. S2 , en geldt: v(A) = minj maxi aij = akl = maxi minj aij = v(A). Bewijs akl = maxi ail ≥ minj maxi aij = v(A) = maxi minj aij ≥ minj akj = akl , dus overal gelijkheden. Uit minj akj = v(A) volgt akj ≥ v(A) voor alle j, d.w.z. k is optimaal voor S1 . Analoog is in te zien dat l optimaal is voor S2 . Vervolgens veronderstellen we dat de klasse van strategie¨en wordt uitgebreid tot de gemengde strategie¨en, d.w.z. S1 kiest een x ∈ X en S2 een y ∈ Y , met ¯ n o Pn ¯ X = (x1 , x2 , . . . , xn ) ¯ xi ≥ 0 voor alle i en x = 1 i i=1 en
¯ n o Pm ¯ Y = (y1 , y2 , . . . , ym ) ¯ yj ≥ 0 voor alle j en y = 1 . j j=1
Als S1 en S2 resp. x ∈ X en y ∈ Y kiezen, dan is de verwachte uitbetaling van S2 aan S1 gelijk P P T aan ni=1 m j=1 xi aij yj = x Ay. x∗ ∈ X is een optimale strategie voor S1 als (x∗ )T Ay ≥ maxx miny xT Ay voor alle y ∈ Y ; y ∗ ∈ Y is een optimale strategie voor S2 als xT A(y ∗ ) ≤ miny maxx xT Ay voor alle x ∈ X.
220
HOOFDSTUK 6. SPELTHEORIE
Stelling 6.1 (Hoofstelling matrixspelen) 1 maxx miny xT Ay = miny maxx xT Ay. Bewijs Beschouw het LP-probleem ¯ m m ¯¯ X X min y0 ¯¯ y0 ≥ aij yj , 1 ≤ i ≤ n; yj = 1; yj ≥ 0, 1 ≤ j ≤ m ¯ j=1 j=1 en het bijbehorende duale probleem ¯ ) ( n n ¯ X X ¯ aij xi , 1 ≤ j ≤ m; xi = 1; xi ≥ 0, 1 ≤ i ≤ n max x0 ¯ x0 ≤ ¯ i=1
(6.3)
(6.4)
i=1
Laat (y0∗ , y ∗ ) en (x∗0 , x∗ ) optimale oplossingen zijn van (6.3) resp. (6.4). Dan geldt: xT Ay ∗ ≤ y0∗ = x∗0 ≤ (x∗ )T Ay voor alle x ∈ X en y ∈ Y . Hieruit volgt: x∗0 = y0∗ = (x∗ )T Ay ∗ , zodat (x∗ )T Ay ∗ = maxx xT Ay en (x∗ )T Ay ∗ = miny (x∗ )T Ay. We kunnen nu schrijven: maxx miny xT Ay ≥ miny (x∗ )T Ay = (x∗ )T Ay ∗ = maxx xT Ay ∗ ≥ miny maxx xT Ay. Omgekeerd geldt altijd miny maxx xT Ay ≥ maxx miny xT Ay (het bewijs gaat analoog aan het bewijs dat v(A) ≥ v(A)). Gevolg: Uit hierboven volgt ook dat de x∗ en y ∗ uit het bewijs optimale strategie¨en zijn voor S1 resp. S2 . Het getal v(A) = maxx miny xT Ay = miny maxx xT Ay = v(A) heet de waarde van het spel. Voorbeeld 6.1 (vervolg) De bij dit voorbeeld (in gereduceerde vorm) behorende LP-problemen zijn: ¯ ¯ ¯ ¯ x ≤ + 5x ; + = 1 x x x ¯ 0 1 2 1 2 ¯¯ y0 ≥ y1 + 4y2 + 2y3 ; y1 ≥ 0 ¯ en min y0 ¯¯ y0 ≥ 5y1 + 2x2 + 4y3 ; y2 ≥ 0 max x0 ¯¯ x0 ≤ 4x1 + 2x2 ; x1 ≥ 0 ¯ ¯¯ y + y + y = 1; ¯ x ≤ 2x + 4x ; x ≥ 0 y3 ≥ 0 0 1 2 2 1 2 3
.
Ga na 2 dat de optimale oplossingen van deze problemen zijn: x∗1 = x∗2 = 12 ; x∗0 = 3; y1∗ = 0; y2∗ = y3∗ = 21 ; y0∗ = 3. De waarde is dus 3. Vraag 6.1 Beschouw het matrixspel voor de matrix A =
Ã
2 2 3 −2
!
. 4 3 2 6 a. Reduceer de matrix door rijen en kolommem die worden gedomineerd weg te laten. b. Stel voor beide spelers hun LP-probleem op om optimale strategie¨en en de waarde van het spel te bepalen. Los deze problemen op, bijv. met ORSTAT. 1
Deze minimax stelling werd reeds in 1937, dus voor het ontstaan van de theorie over lineaire programmering,
¨ met behulp van een vaste-punt stelling bewezen door J. von Neumann, Uber ein ¨ okonomisches Gleichungssystem und eine Verallgemeinerung des Brouwerschen Fixpunktsatzes, Ergebnisse eines Mathematische Kolloquium 8 (1937) 73-83. 2 Op www.math.ucla.edu/˜tom/gamesolve.html is kan de matrix worden ingevoerd, waarna de oplossing verschijnt.
6.3. BI-MATRIX SPELEN
6.3
221
Bi-matrix spelen
In het bi-matrix spel zijn er twee n × m matrices, zeg A en B. We nemen aan dat gemengde strategie¨en zijn toegestaan. Als S1 en S2 de strategie¨en x ∈ X en y ∈ Y kiezen, dan ontvangen de twee spelers xT Ay resp. xT By (merk op dat het nulsomspel equivalent is met het bi-matrix spel met B = −A). Een paar strategie¨en (x∗ , y ∗ ) heet een evenwichtspaar indien (x∗ )T Ay ∗ ≥ xT Ay ∗ en (x∗ )T By ∗ ≥ (x∗ )T By voor alle x ∈ X en y ∈ Y
(6.5)
Stelling 6.2 (Nash 3 ) Ieder bi-matrix spel heeft minstens ´e´en evenwichtspaar. Bewijs We maken gebruik van Brouwer’s vaste-punt stelling, die luidt: Zij f : S → S een continue functie van een compacte en convexe verz. in zichzelf, dan is er een x∗ ∈ S zdd. f (x∗ ) = x∗ . Neem S = {(x, y) | x ∈ X, y ∈ Y }. Het is direct in te zien dat S compact en convex is. Laat gi (x, y) := max{0, aTi• y − xT Ay}, 1 ≤ i ≤ n, d.w.z. gi (x, y) is wat S1 extra krijgt, als S2 de strategie y speelt, door zelf de zuivere strategie i te spelen i.p.v. de gemengde strategie x en definieer hj (x, y) := max{0, xT b•j − xT By}, 1 ≤ j ≤ m. x +g (x,y) x0i = 1+Pi n i gi (x,y) , 1 ≤ i ≤ n i=1 Neem f (x, y) = (x0 , y 0 ), waarbij y +h yj0 = Pj m j (x,y) , 1 ≤ j ≤ m hj (x,y) 1+ j=1
f (x, y) is een continue functie (kleine veranderingen in (x, y) geven kleine veranderingen in (x0 , y 0 )) van S in S, zodat volgens de Stelling van Brouwer er een (x∗ , y ∗ ) is met f (x∗ , y ∗ ) = (x∗ , y ∗ ). aTi• y ∗ > (x∗ )T Ay ∗ voor alle i met x∗i > 0 is niet mogelijk, want dat geeft (x∗ )T Ay ∗ > (x∗ )T Ay ∗ : tegenspraak. Dus is gk (x∗ , y ∗ ) = 0 voor zekere k met x∗k > 0, waaruit volgt x∗k =
x∗k P ∗ ∗ . 1+ n i=1 gi (x ,y )
Dit betekent dat gi (x∗ , y ∗ ) = 0 voor alle i, zodat aTi• y ∗ ≤ (x∗ )T Ay ∗ voor alle i, waaruit volgt: xT Ay ∗ ≤ (x∗ )T Ay ∗ ∀x ∈ X. Het bewijs dat (x∗ )T By ∗ ≥ (x∗ )T By ∀y ∈ Y gaat analoog. Nash’s Stelling geeft geen algoritme om een evenwichtspaar te vinden. In 1964 is het Lemke en Howson 4 gelukt om een algoritme op te stellen dat een paar evenwichtsstrategie¨en bepaalt. Dit algoritme is echter nogal complex en zullen we hier niet bespreken.5 We zullen ons hier beperken tot het oplossen van 2 × 2 bi-matrix spelen. We zullen dit doen aan de hand van het volgende voorbeeld. 3
J.F. Nash: Non-cooperative games, Annals of Mathematics 54 (1951) 286-295. Over de schizofrene persoon-
lijkheid John Nash, die op 21-jarige leeftijd al promoveerde en ook winnaar is van de Nobelprijs voor Economie, is de film A beautiful mind gemaakt. 4 C.E. Lemke and J.J. Howson: Equilibrium points of bimatrix games, Journal of the Society for Industrial and Applied Mathematics 12 (1964) 413-423. 5 Voor een behandeling van dit algoritme zie bijvoorbeeld: T. Parthasarathy and T.E.S. Raghavan, Some topics in two-person games, Elsevier, New york (1971) 159-175.
222
HOOFDSTUK 6. SPELTHEORIE
Voorbeeld 6.5 Ã ! Ã ! 3 2 2 1 Laat A = en B = 0 4 3 4 Neem x = (λ, 1 − λ) en y = (µ, 1 − µ). Dan is xT Ay = 3x1 y1 + 2x1 y2 + 4x2 y2 = 4 + λ(5µ − 2) − 4µ en xT By = 2x1 y1 + x1 y2 + 3x2 y1 + 4x2 y2 = 4 + µ(2λ − 1) − 3λ.
µ ↑
Beschouw eerst xT Ay = 4 + λ(5µ − 2) − 4µ: Voor 0 ≤ µ ≤ Voor µ = Voor
2 5
2 5
is
2 5
is xT Ay maximaal voor λ = 0;
xT Ay
maximaal voor alle waarden van λ;
≤ µ ≤ 1 is xT Ay maximaal voor λ = 1.
Beschouw vervolgens xT By = 4 + µ(2λ − 1) − 3λ: Voor 0 ≤ λ ≤ Voor λ = Voor
1 2
2 5
1 2
1 2
0
1 2
→ λ
is xT By maximaal voor µ = 0;
is xT By maximaal voor alle waarden van µ;
≤ λ ≤ 1 is xT By maximaal voor µ = 1.
De punten op de kruisingen van de lijnen komen overeen met evenwichtsparen (ga dit zelf na). Dus het bi-matrix spel uit dit voorbeeld heeft de evenwichtsparen: x∗1 = (0, 1), y1∗ = (0, 1) met waarde-vector (4,4); x∗2 = ( 12 , 12 ), y2∗ = ( 52 , 53 ) met waarde-vector 5 ∗ ∗ ( 12 5 , 2 ); x3 = (1, 0), y3 = (1, 0) met waarde-vector (3,2).
Voorbeeld 6.2 (vervolg) Het is direct in te zien dat voor S1 de tweede rij dominant is en evenzo voor speler 2 de tweede kolom. Hieruit volgt dat het paar strategie¨en waarbij beide spelers kiezen om te bekennen een evenwichtspaar is. Dit is opmerkelijk en tegen-intu¨ıtief, omdat als beide spelers ontkennen ze beiden veel beter af zijn. De reden hiervoor is dat overleg niet is toegestaan. Vraag 6.2 Bepaal alle evenwichtsparen voor het model uit Voorbeeld 6.3.
6.4
Co¨ operatieve spelen
Veronderstel dat er n spelers zijn en laat N = {1, 2, . . . , n}. In een co¨ operatief spel kan een groep spelers een coalitie vormen. Indien de coalitie S ⊆ N wordt gevormd, dan ontvangt deze coalitie een zekere waarde v(S) die onder de spelers moet worden verdeeld. Ook de lege verz. en N zelf noemen we coalities, resp. de lege en de grote coalitie. Er zijn dus 2N coalities. Een co¨operatief spel in coalitie vorm is een paar (N, v) met v: 2N → R zdd.: (1) v(∅) = 0; (2) v(S ∪ T ) ≥ v(S) + v(T ) voor alle S, T ⊆ N , waarvoor S ∩ T = ∅. De functie v heet de karakteristieke functie en de eigenschap (2) superadditiviteit. Superadditiviteit houdt in dat coalitievorming nooit slecht is voor de daaraan deelnemende spelers.
¨ 6.4. COOPERATIEVE SPELEN
223
Een n-personenspel in strategische vorm wordt gegeven door (N, {Xi }, {pi }), waarbij {Xi } de verz. van zuivere strategie¨en en pi de uitbetalingsfunctie voor speler i aangeeft, 1 ≤ i ≤ n: als x = (x1 , x2 , . . . , xn ) met xi ∈ Xi , dan is pi (x) de uitbetaling voor speler i bij strategie-vector x. Een spel in strategiesche vorm kan worden omgezet in een spel in coalitie vorm. Hierbij wordt voor een coalitie S de waarde v(S) gedefinieerd door het tweepersonen nulsomspel van S tegen N \S. Als S strategie xS kiest en N \S strategie xN \S , dan wordt de uitbetaling van N \S aan S P gegeven door i∈S pi (xS , xN \S ), het bedrag dat spelers van S tezamen ontvangen bij de gegeven strategie¨en zonder eventuele extra inkomsten door samenwerking. Voor v(S) nemen we de waarde van dit spel, waarbij gemengde strategie¨en zijn toegestaan. In formule: X X v(S) = maxx∈XS miny∈XN \S pi (x, y) = miny∈XN \S maxx∈XS pi (x, y) i∈S
Verder nemen we: v(∅) = 0 en v(N ) = maxx∈XN
P i∈N
(6.6)
i∈S
pi (x).
Voorbeeld 6.6 Strategie
Uitbetaling
S1
S2
S3
p1
p2
p3
A
A
A
1
1
0
A
A
B
-3
1
0
A
B
A
4
-2
2
A
B
B
0
1
1
B
A
A
1
2
-1
B
A
B
2
0
-1
B
B
A
3
1
-1
B
B
B
2
1
-1
Beschouw de coaltie S = {1, 2}. De matrix van het bijbehorende tweepersonen nulsomspel is (de rijen horen bij S en de kolommen bij N \S):
AA
AB BA BB
A B 2 −2 2 1 3 2 4 3
Merk op dat de eerste kolom voor de ”tweede speler” ({3}) niet interessant is (dominatie). Hieruit volgt: v({1, 2}) = 3.
Analoog kunnen worden bepaald: v({1}) = 1; v({2}) = 14 ; v({3}) = −1; v({1, 3}) = 1; v({2, 3}) = 1; v({1, 2, 3}) = 4. Stelling 6.3 Een co¨ operatief spel, waarvan de karakteristieke functie is bepaald door (6.6), is superadditief. Bewijs Neem S, T ⊆ N met S ∩ T = ∅. Dan is v(S ∪ T ) = maxx∈XS∪T miny∈XN \(S∪T )
P i∈S∪T
pi (x, y).
Als we ons beperken tot onafhankelijke strategie¨en α ∈ XS en β ∈ XT (d.w.z. dat deze in de coalitie S ∪ T de kans op mogelijkheid (i, j) kans αi βj krijgt), dan wordt het maximum niet hoger, P zodat geldt: v(S ∪ T ) ≥ maxα∈XS maxβ∈XT miny∈XN \(S∪T ) i∈S∪T pi (α, β, y). Voor iedere α ∈ XS en β ∈ XT is
P
i∈S∪T pi (α, β, y) P P = miny∈XN \(S∪T ) { i∈S pi (α, β, y) + i∈T pi (α, β, y)} P P ≥ miny∈XN \(S∪T ) i∈S pi (α, β, y) + miny∈XN \(S∪T ) i∈T pi (α, β, y), P P zodat v(S∪T ) ≥ minβ∈XT miny∈XN \(S∪T ) i∈S pi (α, β, y)+minα∈XS miny∈XN \(S∪T ) i∈T pi (α, β, y).
v(S ∪ T ) ≥ miny∈XN \(S∪T )
224
HOOFDSTUK 6. SPELTHEORIE
Een strategie β ∈ XT en een strategie y ∈ XN \(S∪T ) geven een strategie op N \S; analoog geven een strategie α ∈ XS en een strategie y ∈ XN \(S∪T ) een strategie op N \T . Omdat minimaliseren over een willekeurige strategie op N \S minimaliseren over een grotere verz. is dan over de onafhankelijke strategie¨en afkomstig van XT en XN \(S∪T ) (en analoog voor XS en XN \(S∪T ) ), kunnen we schrijven v(S ∪ T ) ≥ minγ∈XN \S
P i∈S
pi (α, γ) + minδ∈XN \T
Hieruit volgt dat v(S ∪ T ) ≥ maxα∈XS minγ∈XN \S
P i∈S
P i∈T
pi (β, δ) voor iedere α ∈ XS en β ∈ XT .
pi (α, γ) + maxβ∈XT minδ∈XN \T
P
pi (β, δ)
i∈T
= v(S) + v(T ). Soms wordt de karakteristieke functie rechtstreeks gegeven, dus zonder gebruik te maken van (6.6). Dit is bijv. het geval in Voorbeeld 6.4, waar v(S) = 25 × min(|L ∩ S|, |R ∩ S|). Het is direct duidelijk dat deze functie superadditief is: het aantal paren handschoenen van S ∪ T is minstens het aantal paren van S plus het aantal paren van T . Een co¨operatief spel heet additief als v(S ∪ T ) = v(S) + v(T ) voor alle S, T ⊆ N met S ∩ T = ∅. Stelling 6.4 Laat v een karakteristieke functie zijn. Dan geldt: v is additief d.e.s.d. als v(N ) = Bewijs Als v additief is geldt: v(N ) = v({N \{1}}) + v({1}) = · · · =
Pn
i=1
Pn
i=1
v({i}).
v({i}). Omgekeerd, neem een
S, T ⊆ N met S ∩T = ∅. Laat R = N \(S ∪T ). Nu geldt (mede op grond van de superadditiviteit): P v(N ) = ni=1 v({i}) ≤ v(S) + v(T ) + v(R) ≤ v(S ∪ T ) + v(R) ≤ v(N ). Dus overal gelijkheden: v(S) + v(T ) = v(S ∪ T ). Additieve spelen zijn niet interessant, want coalities geven geen toegevoegde waarde. Daarom zijn P we in feite alleen ge¨ınteresseerd in spelen met v(N ) > ni=1 v({i}). Deze spelen heten essenti¨ele spelen. Indien geldt dat v(S) + v(N \S) = v(N ) voor alle S ⊆ N , dan spreken we van een spel met constante som. Een spel heet (0,1)-genormaliseerd indien v({i}) = 0 voor 1 ≤ i ≤ n en v(N ) = 1. Voorbeeld 6.7 Beschouw het co¨operatieve spel met N = {1, 2, 3} en waarbij de karakteristieke functie v gegeven wordt door v(∅) = v({1}) = v({2}) = v({3}) = 0, v({1, 2} = v({1, 3} = v({2, 3} = v({1, 2, 3} = 1. Het is direct in te zien dat dit een essentieel (0,1)-genormaliseerd spel is met constante waarde.
Twee spelen met dezelfde spelersverzameling, maar met verschillende karakteristieke functies, zeg v en w, heten equivalent als er een constante K > 0 bestaat en een derde karakteristieke functie voor dit spel is, zeg y, die additief zdd. w(S) = K · v(S) + y(S) voor iedere S ⊆ N . Merk op dat, P vanwege de additiviteit, van y(S) = i∈S y({i}).
¨ 6.4. COOPERATIEVE SPELEN
225
Stelling 6.5 Ieder essentieel spel met karakteristieke functie v is equivalent met precies ´e´en genormeerd spel © ª−1 P met karakteristieke functie w, waarbij K = v(N ) − ni=1 v({i}) en yi = −K · v({i}). Bewijs Het bewijs wordt gevraagd als Opgave 6.3. Voorbeeld 6.8 Land A beschikt over olie en bij eigen gebruik levert een vat olie een bedrag a op. De landen B en C zijn ge¨ınteresseerd om olie van land A te kopen, wat hen (door het te gebruiken voor industri¨ele doeleinden) per vat het bedrag b resp. c oplevert. Neem aan dat c ≥ b ≥ a. Het is eenvoudig in te zien dat voor de karakteristieke functie v geldt: v(A) = a; v(B) = v(C) = 0; v(A, B) = b; v(A, C) = c; v(B, C) = 0; v(A, B, C, ) = c. Dit spel is dus essentieel en equivalent met het (0,1)-genormeerde spel w met P 1 , y1 = −a · K, y2 = y3 = 0. w(S) = K · v(S) + i∈S yi voor iedere S ⊆ N , waarbij K = c−a Dit levert het volgende op: w(A) = w(B) = w(C) = 0; w(A, B) =
b−a c−a ;
w(A, C) = 1; w(B, C) = 0; w(A, B, C) = 1.
We beschouwen vervolgens het probleem hoe de waarde v(N ) over de spelers wordt verdeeld. Om een speler tot samenwerking te bewegen zal zijn opbrengst tenminste v({i}) moeten zijn. Een toelaatbare toewijzing is dan ook een vector x = (x1 , x2 , . . . , xn ) met xi ≥ v({i}), 1 ≤ i ≤ n en Pn i=1 xi = v(N ). De verz. van alle toelaatbare toewijzingen voor een karakteristieke functie v noteren we met T (v): T (v) = {x = (x1 , x2 , . . . , xn ) | xi ≥ v({i}), 1 ≤ i ≤ n;
Pn
i=1 xi
= v(N )}.
Bij een (0,1)-genormaliseerd spel is T(v) het eenheidssimplex. Laten x, y ∈ T (v) en S ⊆ N . We zeggen dat y door x wordt gedomineerd op S als xi > yi voor P alle i ∈ S en i∈S xi ≤ v(S); we zeggen dat y door x wordt gedomineerd als er een S ⊆ N is waarvoor geldt dat y door x op S wordt gedomineerd. De kern 6 van een spel is de verz. van alle toelaatbare toewijzingen die niet worden gedomineerd door een andere toewijzing. De kern van een spel met karakteristieke functie v wordt genoteerd met K(v). Intu¨ıtief is het duidelijk dat een toewijzing uit K(v) stabiel is, in de zin dat er niet een ander ’aanbod’ (toewijzing) is die door alle spelers wordt verkozen boven deze. Stelling 6.6 K(v) = {x ∈ Rn | 6
P i∈S
xi ≥ v(S) voor alle S ⊆ N ;
Pn
i=1
xi = v(N )}.
Dit begrip is ge¨ıntroduceerd door D.B. Gillies: Some theorems on n-person games PhD Thesis, Princeton
University Press (1953).
226
HOOFDSTUK 6. SPELTHEORIE
Bewijs Neem een x ∈ {x ∈ Rn |
P i∈S
xi ≥ v(S) voor alle S ⊆ N ;
Pn
i=1
xi = v(N )}. Door S = {i} te
nemen, zien we direct dat x ∈ T (v). Veronderstel dat x wordt gedomineerd door y. Dan is er een P P P S ⊆ N zdd. yi > xi voor alle i ∈ S en i∈S yi ≤ v(S). Anderzijds: i∈S yi > i∈S xi ≥ v(S): tegenspraak.
P Omgekeerd, laat x ∈ T (v) en niet gedomineerd worden. Omdat x ∈ T (v) geldt ni=1 xi = v(N ). P Veronderstel dat i∈S xi < v(S) voor zekere S ⊆ N . xi + ε P i∈S P v(S)− i∈S xi P en y = , zodat Neem ε = i i∈S yi = v(S). |S| v({i}) + v(N )−v(S)− j ∈S / v({j}) i ∈ / S n−|S| Pn P P P Verder is i=1 yi = i∈S (xi + ε) + i∈S / v({i}) + v(N ) − v(S) − j ∈S / v({j}) = v(N ) en P yi > xi ≥ v({i}), i ∈ S en yi ≥ v({i}), i ∈ / S (er geldt dat v(S) + j ∈S / v({j}) ≤ v(N ) omdat v superadditief is). x wordt dus wel gedomineerd: tegenspraak. Voorbeeld 6.8 (vervolg) Beschouw het probleem in (0,1)-genormaliseerde vorm. T (v) = {(x1 , x2 , x3 ) | K(v) = (x1 , x2 , x3 )
x1 , x2 , x3 ≥ 0; x1 + x2 + x3 = 1}. ¯ ¯ x 1 , x2 , x3 ≥ 0 ¯ ¯ b−a ¯ x1 + x2 ≥ ¯ c−a ¯ = (x1 , x2 , x3 ) ¯ x1 + x3 ≥ 1 ¯ ¯ x2 + x3 ≥ 0 ¯ ¯ ¯ x1 + x2 + x3 = 1
¯ ¯ x1 , x3 ≥ 0; x2 = 0 ¯ ¯ b−a ¯ x1 ≥ c−a ¯ ¯ ¯ x1 + x3 = 1
.
Stelling 6.7 Een essentieel spel met constante som heeft een lege kern. Bewijs Stel K(v) 6= ∅ en laat x ∈ K(v). P Dat geldt voor iedere j ∈ N : xj ≥ v({j}) en i6=j xi ≥ v(N \{j}). P P Hieruit volgt: ni=1 xi ≥ v({j}) + v(N \{j}) = v(N ) = ni=1 xi , dus overal P P gelijkheden, o.a. xj = v({j}) voor alle j ∈ N : v(N ) = ni=1 xi = ni=1 v({i}) : v niet essentieel, wat de gewenste tegenspraak oplevert. Voorbeeld 6.7 (vervolg) ¯ ¯ x 1 , x2 , x3 ¯ ¯ ¯ ¯ x1 + x2 ¯ K(v) = (x1 , x2 , x3 ) ¯ x1 + x3 ¯ ¯ x +x 3 ¯ 2 ¯ ¯ x +x +x 1
2
3
≥ 0 ≥ 1 = ∅ , want x1 + x2 ≥ 1, x1 + x3 ≥ 1, x2 + x3 ≥ 1 ≥ 1 ≥ 1 = 1
geeft 2x1 + 2x2 + 2x3 ≥ 3, wat in strijd is met x1 + x2 + x3 = 1.
¨ 6.4. COOPERATIEVE SPELEN
227
Een verdeling van v(N ) over de n spelers op grond van een x ∈ K(v) heeft dus het nadeel dat zo’n x niet hoeft te bestaan. De nucleolus 7 is een ander concept dat dit nadeel niet heeft, want de nucleolus heeft de volgende eigenschappen: (1) ieder spel heeft precies ´e´en element in de nucleolus; (2) als K(v) 6= ∅, dan ligt de nucleolus in K(v). Het concept van de nucleolus beoogt de coalitie die het meest ’ongelukkig’ is zo min mogelijk ongelukkig te maken. Laat x(S) :=
P i∈S
xi voor alle S ⊆ N .
Beschouw e(x, S) = v(S) − x(S): hoe groter dit is, hoe ongelukkiger de spelers van S met de toewijzing x zijn. Vorm nu de 2n -dimensionale vector met als componenten de 2n deelverz. S van N en de bij S behorende component heeft de waarde e(x, S). Orden deze componenten in een niet-stijgende volgorde en noem deze componenten θi (x): θ1 (x) ≥ θ2 (x) ≥ · · · ≥ θ2n (x). De elementen worden nu lexicografisch geordend: x
P j∈Sk
xj is een continue functie in x (voor vaste i kan een kleine
verandering in x wel een andere Sk als i-de component opleveren, maar ook dit geeft dan slechts een kleine verandering in θi (x)). Merk op dat T (v) een compacte verzameling is. Hieruit volgt dat ) ( ¯ ¯ x ∈ T (v) ¯ T (1) (v) = x ¯ ¯ θ1 (x) ≤ θ1 (y) voor all y ∈ T (v) niet-leeg is, want een continue functie neemt op een compacte verz. zijn minimum aan. Bovendien is T (1) (v) weer compact. In het algemeen is, op grond van hetzelfde argument, voor k = 1, 2, . . . , 2n T (k) (v) =
¯ ) ¯ x ∈ T (k−1) (v) ¯ x ¯ ¯ θk (x) ≤ θk (y) voor all y ∈ T (k−1) (v)
(
n
niet-leeg. Omdat we hiermee de lexicgrafisch kleinste hebben bepaald, is N (v) = T (2 ) (v), waarmee dit onderdeel van de stelling bewezen is. 7
Dit concept is ge¨ıntroduceerd door D. Schmeidler, The nucleolus of a characteristic function game, SIAM
Journal of Applied Mathematics 17 (1969) 1163-1170.
228
HOOFDSTUK 6. SPELTHEORIE
(2) Als x, y ∈ N (v), dan is θ(x) = θ(y). Het is voldoende om te laten zien dat x 6= y tot een tegenspraak leidt. Beschouw z = 12 (x + y). Omdat T (v) convex is, geldt z ∈ T (v). Laat θ(x) = (e(x, S1 ), e(x, S2 ), . . . , e(x, S2n )) en θ(y) = (e(y, T1 ), e(y, T2 ), . . . , e(y, Tn )), die lexicografisch geordend zijn met als extra voorwaarde dat als e(x, Si ) = e(x, Si+1 ). Dan is e(y, Si ) ≥ e(y, Si+1 ). Laat k de eerste index zijn zdd. e(x, Sk ) 6= e(y, Sk ), dus e(x, Sk ) > e(y, Sk ), en zij p = e(x, Sk ). (k bestaat, want als x 6= y, dan is er een S zdd. x(S) 6= y(S), dus ook e(x, S) 6= e(y, S)). Voor iedere S geldt e(z, S) = v(S) − 12 {x(S) + y(S)} = 12 e(x, S) + 12 e(y, S). Hieruit volgt e(z, Sj ) = e(x, Sj ) voor alle j < k. Voor j ≥ k geldt: Als e(x, Sj ) = e(x, Sk ) = p, dan geldt volgens de extra voorwaarde dat e(y, Sk ) ≥ e(x, Sj ), zodat e(z, Sj ) = 12 e(x, Sj ) + 21 e(y, Sj ) ≥ 21 p + 12 e(y, Sk ) < p. Als e(x, Sj ) < e(x, Sk ) = p, dan geldt e(y, Sj ) ≤ p, immers: als e(y, Sj ) > p, dan e(x, Si ) = e(y, Si ), 1 ≤ i ≤ k − 1 en p = e(x, Sk ) < e(x, Sj ), wat in strijd is met θ(x) = θ(y). Dit betekent dat ook in dit geval e(z, Sj ) = 12 e(x, Sj ) + 12 e(y, Sj ) < 12 p + 12 p = p. Hiermee hebben we aangetoond dat e(z, Sj ) = e(x, Sj ) voor j = 1, 2, . . . , k − 1 en e(z, Sj ) < p voor j ≥ k, zodat θj (z) = θj (x) voor j = 1, 2, . . . , k − 1 en θk (z) < θk (x). Dit betekent dat z lexicografisch kleiner is dan x: tegenspraak. (3) x ∈ K(v) ⇔ e(x, S) ≤ 0 voor alle S ⊆ N ⇔ x ≤l 0. N (v) is de lexicografisch kleinste uit T (v). Dus als er toelaatbare toewijzingen zijn die lexicografisch niet-positief zijn, dan is ook N (v) lexicografisch niet-positief en behoort daarmee tot K(v). Voorbeeld 6.8 (vervolg) Beschouw het probleem weer in (0,1)-genormaliseerde vorm. T (v) = {x ∈ R3+ | x1 + x2 + x3 = 1}. Hieronder staan voor alle S ⊆ N de waarden v(S) − x(S), uitgedrukt in x1 en x2 . S
v(S) − x(S)
∅
0
A
−x1
B
−x2
C
x1 + x2 − 1
A, B
b−a c−a
− x1 − x2
A, C
x2
B, C
x1 − 1
A, B, C
0
Als we proberen deze waarden lexicografisch te minimaliseren, dan moet x2 = 0 en
b−a c−a
− x1 − x2 ≤ 0 zijn. In dat geval is de vec-
tor lexicografisch niet-positief. De eerste, derde, zesde en achtste component zijn dan de grootste en gelijk aan 0. De overige componenten zijn: −x1 , x1 −1 (tweemaal) en kleiner is dan
b−a c−a
b−a c−a −x1 .
Omdat −x1 altijd
− x1 , moeten we letten op x1 − 1 en
b−a c−a
− x1 .
Deze 2-dimensionale vector wordt lexicografisch geminimaliseerd door ze aan elkaar gelijk te maken: x1 = 12 · b+c−2a c−a . Hieruit volgt: ¢ ¡ 1 b+c−2a 1 c−b N (v) = 2 · c−a , 0, 2 · c−a en dit is het midden van het lijnstuk K(v).
¨ 6.4. COOPERATIEVE SPELEN
229
De nucleolus kan in principe worden berekend met een rij LP-problemen. In het eerste LPprobleem minimaliseren we het maximum van de 2n lineaire functies e(x, S) over het polyhedron T (v). Dit geeft de eerste (grootste) term in de lexicografische ordening en kan worden berekend (in de (0,1)-genormaliseerde versie) via het LP-probleem: min x0
¯ P ¯ ¯ x0 + i∈Sj xi ≥ v(Sj ), j = 1, 2, . . . , 2n ¯ Pn ¯ ¯ i=1 xi = 1 ¯ ¯ xi ≥ 0, i = 1, 2, . . . , n
(6.7)
Het optimum x0 = 0 d.e.s.d. als K(v) 6= ∅ (negatief kan niet want S = ∅ geeft x0 ≥ 0). Als de optimale x uniek is, dan is dit de nucleolus. Als deze oplossing niet uniek is, dan bepalen we de verz. X (1) van alle optimale oplossingen. Bovendien bepalen we de verz. S (1) van deelverz. waarvoor voor iedere x ∈ X (1) in het LPprobleem de gelijkheid geldt. Daarna kan een tweede LP-probleem worden opgelost: ¯ ¯ x +P N (1) ¯ 0 i∈S xi ≥ v(S), S ∈ 2 − S Pn ¯ ¯ i=1 xi = 1 ¯ min x0 ¯ x ∈ X (1) ¯ ¯ ¯ xi ≥ 0, i = 1, 2, . . . , n
(6.8)
Aldus gaan we verder. We zullen deze aanpak illustreren in het volgende voorbeeld.
Voorbeeld 6.8 (vervolg) We nemen a = 4, b = 7 en c = 8. Het eerste LP-probleem is (we laten de niet-negatieviteit van x1 , x2 , x3 weg). min x0
¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯
x0
≥ 0;
x0 + x1
x0 + x1
≥ 0;
x0
≥ 0;
x0 + x1 + x2
+ x3 ≥ 0;
x1 + x2
x0
+ x2
x0 x0 + x1 + x2
≥
3 4;
+ x2
+ x3 ≥ 1 + x3 ≥ 0 . + x3 ≥ 1 + x3 = 1
De optimale oplossing luidt: x0 = 0; x1 = 1, x2 = x3 = 0. X (1) = {x | x1 + x3 = 1; x2 = 0}. S (1) = {{∅}, {2}, {1, 3}, {1, 2, 3}}. Dit leidt tot het tweede LP-probleem (we laten ook de overbodige beperkingen x0 + x1 ≥ 0 en x0 + x1 + x3 ≥ 1 weg; deze zijn al min x0
het gevolg van andere ¯ ¯ + x3 ¯ x0 ¯ ¯ x0 + x1 ¯ ¯ ¯ x1 + x3
beperkingen van het probleem). ≥ 0; 3 . ≥ 4; = 1
De optimale oplossing luidt: x0 = − 18 ; x1 = 78 , x3 = 81 . Omdat deze uniek is, geeft dit ook de nucleolus: x1 = 78 , x2 = 0 en x3 = 81 .
230
HOOFDSTUK 6. SPELTHEORIE
Een derde concept om een toewijzing op te baseren is de zogenaamde Shapley waarde. Dit door Shapley 8 in 1953 ge¨ıntroduceerde begrip is gebaseerd op een viertal axioma’s. De Shapley waarde φ is een functie die aan iedere karakterstieke functie v een waarde φi (v) toekent, het aandeel dat speler i ontvangt uit de grote coalitie N . De Shapley waarde is gebaseerd op de volgende vier axioma’s: P (1) ni=1 φi (v) = v(N ); (2) als v(S ∪ {i}) = v(S ∪ {j}) voor iedere coalitie S die i en j niet bevat, dan is φi (v) = φj (v); (3) als v(S ∪ {i}) = v(S) voor iedere coalitie S die i niet bevat, dan is φi (v) = 0; (4) Voor ieder tweetal karakteristieke functies u en v moet gelden dat φi (u + v) = φi (u) + φi (v), 1 ≤ i ≤ n, waarbij u + v is gedefinieerd door (u + v)(S) = u(S) + v(S) voor alle S ⊆ N . (merk op dat u + v weer superadditief is). Stelling 6.9 Er is precies ´e´en functie φ die voldoet aan bovenstaande vier axioma’s. Bewijs
(
Neem een vaste T ⊆ N en definieer de karateristieke functie wT door wT (S) :=
1 als T ⊇ S 0 anders
Het is direct in te zien dat wT een karakteristieke functie is, want superadditief. Omdat φ voldoet aan bovenstaande vier axioma’s, geldt: (3) geeft: φi (wT ) = 0, i ∈ / T; (2) geeft: φi (wT ) = φj (wT ) als i, j ∈ T ; P (1) geeft: ni=1 φi (wT ) = wT (N ), zodat geldt: φi (wT ) =
1 |T |
voor alle i ∈ T .
Dit houdt in dat dit soort karakteristieke functies een unieke φ-waarde geeft.
(
Beschouw vervolgens de karateristieke functie cwT , gedefinieerd door (cw)T (S) := Analoog aan hierboven volgt dat φi (cwT ) = 0, i ∈ / T ; φi (cwT ) =
c |T | ,
c als T ⊇ S 0 anders
i ∈ T.
Ook dit soort karakteristieke functies heeft dus een unieke φ-waarde. We zullen nu laten zien dat iedere karakteristieke functie v voldoet aan v =
P T ⊆N
cT wT voor
zekere constanten cT , T ⊆ N . Neem c∅ = 0, en definieer, met inductie naar het aantal elementen in T , voor alle T ⊆ N P cT = v(T ) − S⊂T cS . Dan geldt voor iedere S ⊆ N , met de hierboven gedefinieerde wT , P P P P { T ⊆N cT wT }(S) = T ⊆N cT wT (S) = T ⊆S cT = cS + T ⊂S cT = v(S). P P Omdat v = T ⊆N cT wT , geldt m.b.v. axioma (4) φi (v) = T ⊆N φi (cT wT ). Hieruit volgt dat φi (v), i = 1, 2, . . . , n uniek is. Lemma 6.3 P cS = T ⊆S (−1)s−t v(T ), waarbij s = |S| en t = |T |. 8
L.S. Shapley: A value for n-person games, Annals of Mathematical Studies 28 (1953) 307-317.
¨ 6.4. COOPERATIEVE SPELEN
231
Bewijs We passen inductie naar s toe en merken op dat het klopt voor s = 0, want c∅ = (−1)0 v(∅) = 0. P Uit het bewijs van Stelling 6.9 volgt cS = v(S) − R⊂S cR , zodat m.b.v. de inductieveronderP P P P stelling volgt: cS = v(S)− R⊂S { T ⊆R (−1)r−t v(T )} = v(S)− T ⊂S { R⊂S;R⊇T (−1)r−t }v(T ). P In R⊂S;R⊇T (−1)r−t kan voor vaste t en s de variabele r de waarden t, t + 1, . . . , s − 1 doorlopen à ! s−t en voor iedere r zijn er verz. R met r elementen die voldoen aan R ⊂ S; R ⊇ T . Hieruit r−t à ! P Ps−1 s − t volgt: cS = v(S) − T ⊂S { r=t (−1)r−t }v(T ). Verder geldt, met i = r − t, r−t à ! à ! à ! Ps−1 s − t Ps−t−1 s − t Ps−t s − t r−t i (−1) = i=0 (−1) = i=0 (−1)i −(−1)s−t = −(−1)s−t , r=t r−t i i à ! P s−t de laatste gelijkheid omdat s−t (−1)i = (−1 + 1)s−t = 0. Hiermee krijgen we: i=0 i P P cS = v(S) + T ⊂S (−1)s−t v(T ) = T ⊆S (−1)s−t v(T ). Stelling 6.10 Voor iedere karakteristieke functie v geldt dat de Shapley waarde wordt gegeven door: P φi (v) = S:i∈S (|S|−1)!(n−|S|)! · [v(S) − v(S\{i})], i = 1, 2, . . . , n. n! Bewijs Uit het bewijs van Stelling 6.9 en Lemma 6.3 volgt dat P P P 1 1 P t−s v(S)} φi (v) = T ⊆N ;i∈T cT · t = T ⊆N φi (cT wT ) = T ⊆N ;i∈T t { S⊆T (−1) P P t−s · 1 }v(S). = S⊆N { T ⊇S;i∈T (−1) t P 1 t−s · t . Neem S 0 ⊂ T met i ∈ / S 0 en S = S 0 ∪ {i}, dan geldt: Laat fi (S) := T ⊇S;i∈T (−1) fi (S 0 ) = −fi (S), want in beide uitdrukkingen komen dezelfde termen voor, maar bij S is s = s0 +1, zodat de termen daarin een tegengesteld teken hebben. Hieruit volgt door op te tellen over de P termen S met {i} en S\{i}: φi (v) = S⊆N ;i∈S fi (S){v(S) − v(S\{i})}. à ! n−s Als i ∈ S, dan zijn er precies coalities T met t elementen zdd. S ⊆ T . Hieruit volgt t−s à ! à ! R 1 t−1 P Pn n − s n − s n 1 t−s t−s dx fi (S) = t=s (−1) t=s (−1) t = 0 x t−s t−s à ! à ! R 1 Pn R 1 s−1 Pn n−s n−s t−s t−s t−1 xt−s dx = 0 t=s (−1) x dx = 0 x t=s (−1) t−s t−s à ! R1 R1 P n−s = 0 xs−1 { n−s (−x)i }dx = 0 xs−1 (1 − x)n−s dx = (s−1)!(n−s)! , i=0 n! i de laatste gelijkheid is een standaard integraal 9 . Hieruit volgt P φi (v) = S:i∈S (|S|−1)!(n−|S|)! · [v(S) − v(S\{i})], i = 1, 2, . . . , n. n! 9
Deze integraal staat ook bekend als de Beta-functie en kan worden berekend door voor x sin2 y te substitueren.
Voor de details verwijzen we naar http://mathworld.wolfram.com/BetaFunction.html.
232
HOOFDSTUK 6. SPELTHEORIE
Opmerkingen: 1. De som van de co¨effici¨enten fi (S) is 1, immers: de noemer n! is het aantal permutaties van {1, 2, . . . , n}; de teller het aantal permutaties van {1, 2, . . . , n}, waarbij i ∈ S en op de s-de plaats staat. Door te sommeren over alle coalities S die i bevatten, geeft dit alle permutaties. 2. Omdat vanwege de superaddiviteit v(S)−v(S\{i}) ≥ v({i}) voor alle coalities S die i bevatten, P geldt φi (v) ≥ S:i∈S fi (t)v({i}) = v({i}), d.w.z. φ(v) ∈ T (v). 3. De formule uit Stelling 6.10 heeft een interessante interpretatie. Als speler i aankomt en S\{i} zijn de spelers die al gearriveerd zijn, dan krijgt speler i wat hij tot de coalitie bijdraagt: v(S) − v(S\{i}). De kans dat speler i arriveert nadat de spelers van S\{i} reeds zijn aangekomen, maar voordat de spelers van N \S arriveren is gelijk aan
(|S|−1)!(n−|S|)! . n!
Voorbeeld 6.8 (vervolg) Beschouw het probleem weer in (0,1)-genormaliseerde vorm. φ1 (v) =
0!2! 3!
· (0 − 0) +
1!1! 3!
b−a · ( c−a − 0) +
φ2 (v) =
0!2! 3!
· (0 − 0) +
1!1! 3!
b−a · ( c−a − 0) +
φ3 (v) =
0!2! 3!
· (0 − 0) +
1!1! 3!
· (1 − 0) +
1!1! 3! 1!1! 3!
1!1! 3!
· (1 − 0) + · (0 − 0) +
· (0 − 0) +
2!0! 3! 2!0! 3!
2!0! 3!
· (1 − 0) = · (1 − 1) =
· (1 −
b−a c−a )
=
b−a +3 c−a
6
b−a c−a
6
.
.
b−a 3−2· c−a . 6
Merk op dat dit element niet tot K(v) behoort, want x2 > 0. Een (0,1)-genormaliseerd spel heet een enkelvoudig spel als v(S) ∈ {0, 1} voor iedere S ⊆ N . Een coalitie S heet winnend als v(S) = 1. Een speler i heeft het vetorecht als v(N \{i}) = 0. Dan is ook v(S) = 0 voor iedere coalitie S die i niet bevat. Als geen enkele speler vetorecht heeft, dan is v(N \{i}) = 1 voor 1 ≤ i ≤ n. P Dan is de kern leeg, immers: stel x ∈ K(v), dan j6=i xj ≥ v(N \{i}) = 1 voor 1 ≤ i ≤ n, terwijl Pn j=1 xj = 1, d.w.z. xi = 0 voor 1 ≤ i ≤ n, wat een tegenspraak geeft. Anderzijds, laat T de verz. van spelers zijn die vetorecht hebben en neem een x ∈ T (v) met P i∈T xi = 1. Dan x ∈ K(v), want iedere winnende coalitie moet alle elementen van T bevatten. Hiermee hebben we bewezen dat in een enkelvoudig spel K(v) = ∅ d.e.s.d. als geen enkele speler vetorecht heeft. Omdat v(S) − v(S\{i}) = 1 d.e.s.d. als S een winnende coalitie is en S\{i} niet. P (|S|−1)!(n−|S|)! Hieruit volgt dat φi (v) = , i = 1, 2, . . . , n, waarbij S[i] alle winnende S∈S[i] n! coalities S zijn, waarvoor S\{i} geen winnende coalitie is. Voorbeeld 6.9 Beschouw een corporatie met 4 aandeelhouders, die resp. 10, 20, 30 en 40 aandelen hebben. Een beslissing wordt alleen genomen als de aandeelhouders die er voor zijn de meerderheid van de aandelen hebben. Niemand heeft dus vetorecht en de winnende coalities zijn {2, 4}, {3, 4}, {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4} en {1, 2, 3, 4}. De enige winnende coalitie S zdd. S\{1} niet winnend is, is {1, 2, 3}.
6.5. OPGAVEN Hieruit volgt φ1 (v) =
233 2!1! 4!
=
1 12 .
Voor aandeelhouder 2 zijn {2, 4}, {1, 2, 3} en {2, 3, 4} winnende coalities die dat zonder {2} niet zijn. Dit geeft φ2 (v) =
1!2! 4!
+
2!1! 4!
+
2!1! 4!
= 14 .
Voor aandeelhouder 3 zijn {3, 4}, {1, 2, 3} en {1, 3, 4} de winnende coalities die dat zonder {3} niet zijn. Dit geeft φ3 (v) =
1!2! 4!
+
2!1! 4!
+
2!1! 4!
= 14 .
Voor aandeelhouder 4 zijn {2, 4}, {3, 4}, {1, 2, 4}, {1, 3, 4} en {2, 3, 4} de winnende coalities die dat zonder {4} niet zijn. Dit geeft φ4 (v) =
1!2! 4!
+
1!2! 4!
+
2!1! 4!
+
2!1! 4!
+
1!2! 4!
=
5 12 .
Vraag 6.3 Bepaal de karakteristieke functie van de co¨ operatieve versie van het prisoner’s dilemma (Voorbeeld 6.2). Vraag 6.4 Beschouw een co¨operatief spel met karakteristieke functie v waarvoor geldt: v({1}) = v({2}) = 0; v({3}) = 3; v({1, 2}) = 0; v({1, 3}) = 4; v({2, 3}) = 4; v({1, 2, 3}) = 5. Bepaal T (v), K(v), N (v) en φi (v), i = 1, 2, 3. Vraag 6.5 Geef een voorbeeld van een essentieel spel met drie spelers en met constante som. Laat zien dat K(v) = ∅, bepaal de nucleolus en de Shapley-waarden. Vraag 6.6 Een spel met v(S) = 0 voor alle S ⊆ N heet een nulspel. Bewijs dat een niet-essentieel spel equivalent is met een nulspel.
6.5
Opgaven
Opgave 6.1
0 4 −2
4 . 3 2 1 Stel voor beide spelers hun LP-probleem op om optimale strategie¨en en de waarde van het spel
Beschouw het matrixspel voor de matrix A = 3 1
te bepalen. Bepaal voor beide spelers alle optimale strategie¨en (gebruik eerst ORSTAT en zoek daarmee verder).
Opgave 6.2 Bepaal een gemengd Nash evenwicht voor het bi-matrixspel met A =
à ! 2 0 1 3
à ! 1 2 en B = . 2 0
234
HOOFDSTUK 6. SPELTHEORIE
Opgave 6.3 a. Toon aan dat het als ’equivalent spel’ gedefinieerde begrip voldoet aan de definities van een equivalentierelatie. b. Bewijs de stelling die aangeeft dat een essentieel spel equivalent is met precies ´e´en genormeerd spel.
Opgave 6.4 Beschouw twee equivalente spelen met karakteristieke functies v en w, zodanig dat P w(S) = K · v(S) + i∈S yi . Toon aan: T (w) = {z ∈ Rn | z = K · x + y, x ∈ T (v)}.
Opgave 6.5 Veronderstel dat de plaatsen A, B en C
A @
moeten worden aangesloten op een kabel-
¡
@
¡
@
net vanuit een centrale (O). Als A, B en
¡
@ @6 @
C rechtstreeks met 0 worden verbonden, dan kost dat 5, 14 resp. 9 (totaal 28).
¡ ¡
¡ @¡ ¡@ ¡ @ ¡ @ ¡ @
+ CB). Er kan dus 10 worden bespaard. 14 ¡
Hoe moet deze besparing worden verdeeld
@ @
¡
Modelleer dit probleem als een co¨operatief
@
¡ ¡
O
7
@
¡ ¡
over A, B en C?
Shapley-waarden voor A, B en C.
¡ ¡
@
5
boom. Deze heeft kosten 18 (OA + AC
spel en bepaal daarvan K(v), N (v) en de
¡
@ @
Indien ze samenwerken, dan kunnen ze volstaan met een minimale opspannende
B
10
@ @
9
C
Opgave 6.6 Beschouw een vergadering met 15 personen, waarvan 5 een vetorecht hebben, zeg de personen 1 t/m 5. Om een besluit te kunnen nemen is het nodig dat er geen veto’s worden uitgesproken en dat er 9 stemmen voor het voorstel zijn.
¡ ¢ We noemen een coalitie winnend als het een voorstel kan tegenhouden, dus: v {i} = 1, 1 ≤ i ≤ 5 en v(S) = 1 voor een S ⊆ {6, 7, . . . , 15} d.e.s.d. als |S| ≥ 7. Bepaal in dit model de Shapley-waarde van de spelers met vetorecht en de spelers zonders vetorecht.
Bijlage A
OPLOSSING VAN DE VRAGEN A.1
Hoofdstuk 1
Vraag 1.1 We krijgen de volgende tableaus, waarin we als pivotkolom de kolom met het meest negatieve element in de onderste rij nemen; het pivotelement is aangegeven met een *. x1 (4) y1
10
x2 (5)
2
1
y1
x1 (4)
x2 (5)
-2
∗1
2
x2 (5)
x1 (4)
y1
2
-2
1 -3 2
y2
27
5
3
y2
7
-5
3
y2
1
∗1
x0
0
-3
-2
x0
12
3
-2
x0
16
-1
Geval 1:
Geval 3:
Geval 3:
x1 komt op zijn bovengrens.
de gewone transformatie.
de gewone transformatie.
y2
y1
y2
y1
x2 (5)
4
2
-5
x2 (5)
1
-2
∗5
y1
x1 (4)
1
1
-3
x1 (4)
1
1
-3
x1 (4)
x0
17
1
-1
x0
17
1
-1
x0
Geval 4:
Nu voeren we de gewone
1 5 8 5 86 5
y2
x2 (5)
- 25 - 15 3 5
1 5 3 5 1 5
Dit laatste tableau is optimaal
x2 loopt tegen zijn bovengrens pivottransformaties uit
met oplossing: x1 = 4− 85 =
aan. Aanpassing van b∗1 en de met verwisseling van
en x2 = 5 met waarde van het
eerste rij geeft:
optimum gelijk aan
x2 en y1 .
12 5
86 5 .
Vraag 1.2 Voor kolom j, met j 6= r, van Boud E geldt: {Boud E}•j = Boud ej = {Boud }•j = {Bnieuw }•j , waarbij ej de j-de eenheidskolom is. −1 Voor de r-de kolom geldt: {Boud E}•r = Boud Boud a•k = a•k = {Bnieuw }•k .
235
236
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Vraag 1.3 De j-de kolom, met j 1 0 0 1 · · · · · ·
6= r, van onderstaande vermenigvuldiging a∗ 1 0 · · · − a1k ∗ · · · a∗1k 0 · · · 0 rk ∗ a 2k ∗ 0 1 · · · − ∗ · · · a2k 0 · · · 0 a rk ··· ··· · ··· · · · ··· ··· 1 ··· ··· · ··· · · · ··· a∗rk ··· ··· · ··· · ··· · · ··· a∗ 0 0 · · · a∗mk 0 · · · 1 0 0 · · · − amk ∗ rk
0 ··· 0 ··· ·
···
·
···
·
···
0 ···
0
0 · · · 1
is ej , de j-de eenheidskolom. De r-de kolom van deze onderstaande vermenigvuldiging geeft op a∗
plaats i met i 6= r: − a∗ik + a∗ik · a1∗ = 0, en op plaats r komt a∗rk · a1∗ = 1. Deze vermenigvuldiging rk
rk
rk
geeft dus inderdaad de eenheidsmatrix. Vraag 1.4 Onderdeel a:
We krijgen de volgende tableaus, waarin we als pivotkolom de kolom met het meest negatieve element in de onderste rij nemen; het pivotelement is aangegeven met een *. x1
x2
x3
x1
z2
x3
x1
z2
y1
y1
8
-1
0
2
y1
8
-1
0
∗2
x3
4
0
z2
8
1
∗2
1
x2
4
1 2
1 2
1 2
- 12
x2
2
3 4
1 2
1 2 - 14
x0
0
2
-2
-3
x0
8
3
1
-2
x0
16
2
1
1
z0
-8
-1
-2
-1
z0
0
0
1
0
De optimale oplossing is: x1 = 0, x2 = 2, x3 = 4 met waarde 16.
Onderdeel b: Co¨effici¨ent x1 : dit is een niet-basisvariabele, dus λ ≤ 2, d.w.z. de huidige oplossing is optimaal zolang p1 ≤ −2 + 2 = 0. Co¨effici¨ent x2 : dit is een basisvariabele, dus de huidige oplossing is optimaal zolang (2, 1) + λ( 43 , − 14 ) ≥ 0, d.w.z. − 83 ≤ λ ≤ 4, d.w.z. voor 2 −
8 3
= − 23 ≤ p2 ≤ 2 + 4 = 6.
Co¨effici¨ent b1 : y1 is een niet-basisvariabele, dus de huidige oplossing is optimaal zolang (4, 2) + λ( 12 , − 14 ) ≥ 0, d.w.z. −8 ≤ λ ≤ 8, d.w.z. voor 8 − 8 = 0 ≤ b1 ≤ 8 + 8 = 16. Co¨effici¨ent b2 : z2 is een niet-basisvariabele, dus de huidige oplossing is optimaal zolang (4, 2) + λ(0, 21 ) ≥ 0, d.w.z. λ ≥ −4, d.w.z. voor 8 − 4 = 4 ≤ b2 . Vraag 1.5 We krijgen de volgende tableaus, met twee doelfuncties: u(p) en u(q). x1
x2
y1
6
1
1
y1
3
y2
6
-1
∗2
x2
3
u(p)
0
-1
-3
u(p)
9
u(q)
0
2
1
u(q)
-3
x1
y2
3 2 - 12 − 52 5 2
- 21
x1
2
1 2 3 2 - 21
x2
4
u(p)
14
u(q)
-8
y1
y2
∗2 3 1 3 5 3 - 53
- 13 1 3 2 3 1 3
Dit laatste tableau is optimaal voor 53 − 35 λ ≥ 0 en 2 3
+ 13 λ ≥ 0, d.w.z. voor
−2 ≤ λ ≤ 1, met oplossing x1 = 2, x2 = 4 en waarde 14 − 8λ.
A.1. HOOFDSTUK 1
237
We gaan nu verder met λ ≥ 1: dan wordt de kolom van y1 pivotkolom.
y1
3
x2
3
u(p)
9
u(q)
-3
x1
y2
3 2 - 11 - 52 5 2
- 12 1 2 3 2 -∗ 12
x1
x2
y1
6
1
1
x1
2
y2
6
-1
2
x2
4
u(p)
0
-1
-3
u(p)
14
u(q)
-3
2
1
u(q)
-8
y1
y2
2 3 1 3 5 3 - 53
- 13 ∗1 3 2 3 1 3
Dit tableau is optimaal voor
Optimaal tableau voor
Vervolgens gaan we verder
− 52
−1 + 2λ ≥ 0 en −3 + λ ≥ 0:
met λ ≤ −2, waarbij we uit-
d.w.z. voor 1 ≤ λ ≤ 3, met
voor λ ≥ 3 met oplossing
gaan van het bovenstaande
oplossing x1 = 0, x2 = 3 en
x1 = 0, x2 = 0 en waarde 0.
eerste optimale tableau.
+
5 2λ
≥ 0 en
3 2
−
1 2λ
≥ 0,
waarde 9 − 3λ. Vervolgens gaan we verder met λ ≥ 3. y1
x2
Dit tableau is optimaal voor
x1
6
1
1
1 − 2λ ≥ 0 en −2 − λ ≥ 0,
y2
12
1
3
d.w.z. voor λ ≤ −2, met
u(p)
6
1
-2
oplossing x1 = 6, x2 = 0 en
u(q)
12
-2
-1
waarde 6 − 12λ.
Vraag 1.6 We krijgen de volgende tableaus, waarin we als pivotrij de rij met het meest negatieve element in de eerste kolom nemen; het pivotelement is weer aangegeven met een *. x1
x2
x3
y2
x2 ∗- 5 2 - 21
x3 1 2 3 2
x2
4
1
x0
y1
-3
-1
-2
-1
y1
-1
y2
-4
∗ -2
1
-3
x1
2
- 12 - 12
x0
0
2
3
4
x0
-4
1
x1
Het laatste tableau is optimaal en de optimale oplossing luidt: x1 = waarde is
2 5 11 5 - 28 5 11 5 ,
y2
y1
x3
1 5 - 25 1 5
- 25 - 15 8 5
- 15
x2 =
2 5
7 5 9 5
en x3 = 0; de
- 28 5 .
Het duale probleem luidt: min −3u1 − 4u2
¯ ¯ ¯ −u1 − 2u2 ≥ −2; u1 ≥ 0 ¯ ¯ −2u1 + u2 ≥ −3; u2 ≥ 0 ¯ ¯ ¯ −u1 − 3u2 ≥ −4;
De optimale oplossing van het duale probleem is: u1 = 85 , u2 = Vraag 1.7 Vergelijking (1.5) geeft (xB )i = b∗i −
P j
1 5
.
en de waarde is - 28 5 .
a∗ij (xN )j . Als b∗i < 0 en a∗ij ≥ 0 voor alle j, dan is voor
iedere toegelaten oplossing (xB )r < 0: er is dus geen toegelaten oplossing.
238
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Vraag 1.8 Laat k de pivotkolom zijn, dan is pk = maxj pj > 0. Als we de onderste rij na de transformatie met de vector d∗ noteren, dan geldt: d∗k = pk > 0 en voor j 6= k is d∗j = −pj + pk ≥ 0. Vraag 1.9 Probleem (1.15) heeft een toelaatbare oplossing, namelijk w = b, en het optimum is naar boven begrensd door 0: het probleem (1.15) heeft dus een eindige optimale oplossing. Vraag 1.10 Het duale probleem is min 6u1 + 5u2
¯ ¯ ¯ u1 + 2u2 ≥ −1; u1 − 2u2 ≥ 1 ¯ ¯ u1 − u2 ≥ . 0; u ≥ 0 1 ¯ ¯ ¯ u1 + 3u2 ≥ −2; − u2 ≥ 0
We starten met u = (1, 0), zodat v = (2, 1, 3, 0, 1, 0). Iteratie 1: J = {4, 6} met bijbehorende LP-probleem: ¯ ( ) ¯ x4 + w1 = 6 ¯ max −w1 − w2 ¯ ; x4 , x6 , w1 , w2 ≥ 0 . ¯ −2x4 − x6 + w2 = 5 Omdat −w1 − w2 = −11 − x4 − x6 , is de optimale oplossing x∗4 = x∗6 = 0. Omdat w1∗ en w2∗ in de optimale basis zitten, is s∗1 = s∗2 = −1. −3, j = 1 P 0, j = 2 ∗ Voor j ∈ / J: m i=1 aij si = −4, j = 3 −1, j = 5
−3 −1 → λ = min{ −2 −3 , −4 , −1 } =
2 3
voor j = 1.
u = (1, 0) + 23 (−1, −1) = ( 13 , − 23 ), v = (0, 1, 13 , 23 , 31 , 23 ). Iteratie 2: J = {1} met bijbehorende LP-probleem: ¯ ( ) ¯ x + w = 6 1 1 ¯ max −w1 − w2 ¯ ; x1 , w1 , w2 ≥ 0 . ¯ 2x1 + w2 = 5 De simplex methode geeft de volgende tableaus: x1
w2
w1
6
1
w1
w2
5
∗2
x1
-11
-3
7 2 5 2 - 72
- 12
Dit laatste tableau is optimaal. Voor de optimale oplossing van het bijbehorende duale probleem geldt: s∗1 = −1, s∗2 = 12 .
1 2 3 2
− 32 , 1 2, Pm Voor j ∈ / J: i=1 aij s∗i = −2, −1, −1, 2
j=2 j=3 j=4
n → λ = min
j=5 j=6
u = ( 13 , 23 ) + 13 (−1, 12 ) = (0, − 12 ), v = (0, 12 , 12 , 0, 0, 12 ).
2 1 2 −1 − 3 − 3 − 3 , , , − 32 −2 −1 − 12
o =
1 3
voor j = 4 of 5.
A.2. HOOFDSTUK 2
239
Iteratie 3: J = {1, 4, 5} met bijbehorende LP-probleem: ¯ ) ( ¯ x + x +x + w = 6 1 4 5 1 ¯ max −w1 − w2 ¯ ; x1 , x4 , x5 w1 , w2 ≥ 0 ¯ 2x1 − 2x4 + w2 = 5 We gebruiken het laatste tableau van iteratie 2. De kolommen van x4 en x5 moet worden geupdate. Uit het laatste tableau van iteratie 2 volgt: Ã ! 1 1 − 2 B −1 = , zodat de kolom van x4 en x5 worden: 1 0 2 !Ã ! Ã ! Ã !Ã ! Ã ! Ã 1 1 1 2 1 − 1 1 1 − 2 2 = , resp. B −1 a•5 = = . B −1 a•4 = 1 1 0 −2 −1 0 0 0 2 2 Pm Pm ∗ ∗ Het getallen in de onderste rij worden resp. i=1 ai4 si = −2 en i=1 ai5 si = −1, en dit geeft het onderstaande eerste tableau.
w1 x1
A.2
7 2 5 2 − 72
w2
x4
- 12 1 2 3 2
∗2
1
x4
-1
0
x1
-2
-1
Dit laatste tableau is optimaal met w = 0.
x5
Dit geeft de optimale oplossing:
w2
w1
x5
7 4 17 4
- 14 1 4
1 2 1 2
1 2 1 2
x1 =
0
1
1
0
De oplossing van het duale probleem is:
17 4 ,
x2 = x3 = 0, x4 = 74 ,
x5 = x6 = 0. u1 = 0, u2 = − 12 .
Hoofdstuk 2
Vraag 2.1 a. Beschouw het IP-probleem max{x1 | 3x1 − 2x2 ≤ 0; −2x1 + 3x2 ≤ 3; x1 , x2 ≥ 0 en geheel}. De oplossing van het bijbehorende LP-probleem is x1 = 65 , x2 = 95 , terwijl de enige toelaatbare geheeltallige punten x1 = 0, x2 = 0 en x1 = 0, x2 = 1 zijn. b. Beschouw het IP-probleem max{3x1 + x2 | 2x1 ≤ 7; 2x1 + x2 ≤ 8; x1 , x2 ≥ 0 en geheel}. De oplossing van het bijbehorende LP-probleem is x1 = 72 , x2 = 1. De enige toelaatbare afronding is x1 = 3, x2 = 1 met waarde 10. Het punt x1 = 3, x2 = 2 is echter de optimale oplossing. Vraag 2.2 Voer twee (0,1)-variabelen in: y1 en y2 met de betekenis yi = 0 d.e.s.d. als xi ≤ 5, i = 1, 2 en eis dat y1 = y2 = 1 mag niet. Dit geeft: 0 ≤ x1 ≤ 10; x1 ≤ 5 + 5y1 ; y1 + y2 = 1; 0 ≤ x2 ≤ 10; x2 ≤ 5 + 5y2 ; y1 , y2 ∈ {0, 1}.
240
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Vraag 2.3 Dit probleem kan worden opgelost door de volgende variabelen te introduceren: yj ∈ {0, 1}, waarbij yj = 0 (1) betekent dat doos j niet (wel) wordt gebruikt. xij ∈ {0, 1}, waarbij xij = 0 (1) betekent dat voorwerp i niet (wel) in doos j wordt verpakt. P Pn De doelfunctie luidt: min nj=1 yj . Verder hebben we de beperkingen j=1 xij = 1 voor i = 1, 2, . . . , n, d.w.z. dat ieder voorwerp in precies ´e´en doos wordt gestopt, en tenslotte de P beperkingen nj=1 ai xij ≤ yj voor j = 1, 2, . . . , n, d.w.z. als de j-de doos niet wordt gebruikt (yj = 0), dan kan er ook niets in (xij = 0 voor alle i) en als deze wel wordt gebruikt (yj = 1), P P dan kan er maximaal volume 1 in ( i|xij =1 ai ≤ 1, ofwel ni=1 ai xij ≤ 1). Het probleem is dus te formuleren als: ¯ P n n ¯ X xij = 1, 1 ≤ i ≤ n; yj ∈ {0, 1}, 1 ≤ j ≤ n ¯ min yj ¯ Pn j=1 . ¯ i=1 ai xij ≤ yj , 1 ≤ j ≤ n; xij ∈ {0, 1}, 1 ≤ i, j ≤ n j=1 Vraag 2.4 Dit probleem kan worden opgelost door de volgende variabelen te introduceren: yj ∈ {0, 1} met yj = 0 (1) als kleur j niet (wel) wordt gebruikt. xij ∈ {0, 1} met xij = 0 (1) als het i-de knooppunt niet (wel) met kleur j wordt gekleurd. P P De doelfunctie luidt: min nj=1 yj . Verder hebben we de beperkingen nj=1 xij = 1 voor i = 1, 2, . . . , n, d.w.z. dat ieder knooppunt precies ´e´en kleur krijgt, en de beperkingen xij ≤ yj voor j = 1, 2, . . . , n, d.w.z. als de j-de kleur niet wordt gebruikt (yj = 0), dan kan er ook niets mee worden gekleurd (xij = 0 voor alle i). Tenslotte de beperkingen xij + xkj ≤ 1 als (i, k) ∈ E. Het probleem is dus te formuleren als: ¯ P ¯ n ¯ j=1 xij = 1, ¯ ¯ xij ≤ yj , n ¯ X ¯ yj ¯ xij + xkj ≤ 1, min ¯ j=1 ¯ yj ∈ {0, 1}, ¯ ¯ ¯ xij ∈ {0, 1},
1≤i≤n 1 ≤ i, j ≤ n 1 ≤ j ≤ n, (i, k) ∈ E 1≤j≤n 1 ≤ i, j ≤ n
.
Vraag 2.5 Initialisatie: L = {P0 } (het oorspronkelijke probleem); z 0 = +∞; z = −∞; t = 0. Iteratie 1: Kies P0 ; L = ∅; los de LP-relaxatie op: x01 = 25 , x02 =
15 4 ,
z 0 = b 119 2 c = 59.
Kies als splitsingsvariabele x1 en beschouw de deelproblemen: P1 : P0 met toegevoegd x1 ≥ 3; P2 : P0 met toegevoegd x1 ≤ 2; z 1 = z 2 = 59; L = {P1 , P2 }. Iteratie 2: Kies deelprobleem P1 ; L = {P2 }; los de LP-relaxatie op: x11 = 3, x12 = 52 , z 1 = b59c = 59. Kies als splitsingsvariabele x2 en beschouw de deelproblemen: P3 : P1 met toegevoegd x2 ≥ 3; P4 : P0 met toegevoegd x2 ≤ 2; z 3 = z 4 = 59; L = {P2 , P3 , P4 }.
A.2. HOOFDSTUK 2
241
Iteratie 3: Kies deelprobleem P2 ; L = {P3 , P4 }; los de LP-relaxatie op: x22 = 2, x22 = 4, z 2 = b58c = 58. x∗1 = 2, x∗2 = 4; z = 58 en t = 1. Iteratie 4: Kies deelprobleem P3 ; L = {P4 }; los de LP-relaxatie op: ontoelaatbaar, dus z 3 = −∞. Iteratie 5: Kies deelprobleem P4 ; L = ∅; los LP-relaxatie op: x41 =
16 5 ,
x42 = 2, z 4 = b57 53 c = 57 ≤ z = 58:
afgehandeld. Iteratie 8: Omdat L = ∅ zijn we klaar en is de optimale oplossing: x∗1 = 2, x∗2 = 4 met waarde 58.
Vraag 2.6 We krijgen de volgende tableaus (voor de oplossing van het LP-probleem zie Voorbeeld 2.8).
x0 x1 x2 y2
30 7 13 7 9 7 31 7
y1
y3
5 7 1 7 − 72 − 73
3 7 2 7 3 7 22 7
De kolommen zijn lexicografisch positief. De
x0 x1 x2 y2 s1
30 7 13 7 9 7 31 7 - 27
y1
y3
5 7 1 7 − 27 − 37 − 57
3 7 2 7 3 7 22 7 - 37
4
1
0
x1
9 5 7 5 23 5 2 5
1 5 − 25 − 35 − 75
1 5 3 5 17 5 3 5
y2 y1
− 57
Vervolgens wordt de rij van
bovenste rij wordt de bron-
methode wordt
rij en genereert de snede:
pivot genomen, wat het
horende snede:
volgende tableau geeft.
s2 = − 54 + 15 s1 + 51 y3 .
s1 =
− 27
+
5 7 y1
+
3 7 y3 .
als
y3
x0 x2
Volgens de duale simplex
s1
x1 de bronrij met als bijbe-
Voeg deze snede toe, dit
Voeg deze snede toe, dit geeft
geeft het volgende tableau.
het volgende tableau.
s1
y3
s1
s2
y2
s2
1 4
17 4
x0
4
1
0
x0
4
1
0
x0
x1
9 5 7 5 23 5 2 5 4 −5
1 5 − 52 − 53 − 57 − 51
1 5 3 5 17 5 3 5 1 −5
7 4
x1
1
0
0
x1
1
0
1
5 4 5 2 7 4
− 14 − 12 1 4
− 45
x2 y2 y1 s2
x2
-1
-1
3
x2
y2
-9
-4
17
y1
y1
-2
-2
3
y3
y3
4
1
-5
− 11 2 − 43
De bovenste rij is weer de
De pivotkolom wordt de
Verder pivoten met de rij
bronrij met als bijbehorende
kolom van y3 . Dit geeft het
van y2 als pivotrij en -4 als
snede:
volgende tableau.
pivotelement. Dit geeft het
s3 = − 34 + 14 y2 + 41 s2 .
volgende tableau (we laten
Voeg deze snede toe, dit geeft
de rij van s1 weg).
het volgende tableau.
242
BIJLAGE A. OPLOSSING VAN DE VRAGEN s3
s2
1
1
4
x1
1
0
1
− 45
x2
2
-1
-1
− 12
− 11 2
y1
4
-2
-5
1 4 − 14
− 43 − 41
y3
1
1
-1
y2
3
-4
1
y2
s2
x0
7 4
1 4
17 4
x0
x1
1
0
1
x2
5 4 5 2 7 4 − 34
− 14
y1 y3 s3
De kolom van y2 wordt de
Dit tableau is optimaal
pivotkolom, waarna we het
met oplossing:
volgende tableau krijgen.
x1 = 1, x2 = 2 ; de waarde van het optimum is 1.
Vraag 2.7 We voeren verschilvariabelen y1 en y2 in en nemen de volgende 3 stappen om een optimaal LPtableau te krijgen. x1
x2
x1
y1
y2
y1
15 11 1 22 3 22
28 11 7 22 1 - 22
x0
0
-7
-9
x0
18
-10
3
x0
63
y1
6
-1
3
x2
2
- 13
x2
y2
35
7
1
y2
1 3 - 13
7 2 9 2
De rij van x1 is de bronrij, wat de snede
22 3 3 1 y + 2 22 22 y1
33
≥
x1 1 2
oplevert. Deze voegen we aan het
tableau toe en we voeren een pivotstap uit. x0
63
x2
7 2 9 2 - 12
x1 s1
y2
y1
15 11 1 22 3 22 3 - 22
28 11 7 22 1 - 22 1 - 22
s1
y1 23 11 10 33 1 - 11 1 3
x0
58
10
x2
10 3
1 3
x1
4
1
y2
11 3
- 22 3
Vraag 2.8 De reducties zijn: eerste rij: 24; tweede rij: 32; derde rij: 23; vierde rij: 45; vijfde rij: 23. Vervolgens in de eerste kolom: 1; tweede kolom: 9; derde kolom: 0; vierde kolom 22; vijfde kolom 0. De totale reductie is 179. Hiernaast staat de gereduceerde matrix met bij de 0’en de reductiegetallen. Iteratie 1 179
1
2
3
4
5
1
-
21
24
46
021
2
21
-
03
7
3
3
24
03
-
07
00
4
46
7
07
-
22
5
021
3
00
22
-
Het nevenstaande tableau is optimaal. De optimale oplossing luidt: x1 = 4, x2 =
10 3
met waarde 58.
−
21 24 46 021
21 − 0 L = 24 03 46 7 021 3
03
7
−
07
07
−
00
22
3 00 22 −
Het grootste reductiegetal is 21 bij het element (5, 1). Dit geeft de splitsing in de volgende twee deelproblemen: P1 : (5, 1) behoort wel tot de tour; ondergrens is 179 + 21 = 200 (immers: als 5-de rij en 1-de kolom worden weggelaten kan in 1-ste rij 21 worden gereduceerd). P2 : (5, 1) behoort niet tot de tour; ondergrens 179 + 21 = 200.
A.2. HOOFDSTUK 2
243
Iteratie 2 Kies deelprobleem P1 . Na het weglaten van de 5-de rij en 1-ste kolom en na het reduceren, wordt de tabel: Het grootste reductiegetal is 7 bij het element (4, 3). 200
2
3
4
5
Dit geeft de splitsing in de volgende twee deelproblemen:
1
03
3
25
-
P3 : voeg aan P1 toe: (4, 3) behoort wel tot de tour; ondergrens is
2
-
03
7
3
207 (als (3,4) niet is toegestaan, dan kan in de 2-de rij 3 worden
3
00
-
07
03
gereduceerd en daarna in kolom 4 nog eens 4).
7
07
-
22
P4 : voeg aan P1 toe: (4, 3) behoort niet tot de tour; ondergrens
4
200 + 7 = 207.
Iteratie 3
Kies deelprobleem P3 . Na het weglaten van rij 4 en kolom 3 en het verbieden van (3, 4) wordt de tabel: 207
2
4
5
1
021
21
-
2
-
021
00
-
00
3 00 Iteratie 4
Dit laat zich als volgt optimaal afmaken: (1, 2, 4, 3, 5, 1) met lengte 207. Hierdoor bevat deelprobleem P4 geen betere rondreis. Over blijft dus nog deelprobleem P2 .
Kies deelprobleem P2 . Neem de eerste tabel en verbied (5, 1) en voer de reductie uit. Dit geeft de volgende tabel: 200
1
2
3
4
5
1
-
21
24
46
021
2
03
-
00
7
3
3
3
03
-
07
00
4
25
7
07
-
22
5
-
3
03
22
-
Het grootste reductiegetal is 21 bij het element (1, 5). Dit geeft de splitsing in de volgende twee deelproblemen: P5 : voeg aan P2 toe: (1, 5) behoort wel tot de tour; ondergrens is 200. P6 : voeg aan P2 toe: (1, 5) behoort niet tot de tour; ondergrens 200+21 = 221 en dit probleem kan buiten beschouwing blijven.
Iteratie 5 Kies deelprobleem P5 . Vanwege de symmetrie zitten we in hetzelfde geval als bij P1 toen we (5,1) in de tour namen. We kunnen nu dus stoppen. Een optimale oplossing van het TSP is dus de rondreis (1, 2, 4, 3, 5, 1) met lengte 207. Vraag 2.9 Algoritme 2.6 start met S = {1}. Vervolgens krijgen we: k := 1 : lmin (2) := 35; lmin (3) := 43; lmin (4) := 23; lmin (5) := 33; lmin (6) := 19. j = 3; S := {1, 3}. k := 2 : lmin (2) := 35; lmin (4) := 23; lmin (5) := 31; lmin (6) := 19. j = 2; S := {1, 2, 3}. k := 3 : lmin (4) := 23; lmin (5) := 21; lmin (6) := 19. j = 4; S := {1, 2, 3, 4}. k := 4 : lmin (5) := 21; lmin (6) := 17. j = 5; S := {1, 2, 5, 3, 4}. k := 5 : lmin (6) := 17. j = 6; S := {1, 2, 6, 5, 3, 4}. Approximatie S ∗ := {1, 2, 6, 5, 3, 4, 1} met lengte 156.
244
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Vraag 2.10 Algoritme 2.7 start met S = {1}. Vervolgens krijgen we: k := 1 : bmin (2) := 70; bmin (3) = 86; bmin (4) = 46; bmin (5) = 66; bmin (6) = 38. j := 6; S := {1, 6}. k := 2 : bmin (2) := 42; bmin (3) := 54; bmin (4) := 21; bmin (5) := 59. j := 4; S = {1, 6, 4}. k = 3 : bmin (2) = 42; bmin (3) = 49; bmin (5) = 59. j = 2; S := {1, 2, 6, 4}. k := 4 : bmin (3) = 49; bmin (5) = 19. j = 5; S := {1, 5, 2, 6, 4}. k := 5 : bmin (3) = 41. j = 6; S := {1, 3, 5, 2, 6, 4}. Approximatie S ∗ = {1, 3, 5, 2, 6, 4, 1} met lengte 161. Vraag 2.11 De eerste keten kunnen we willekeurig nemen. De overige ketens zijn op (r − 1)! manieren te rangschikken. Elke verbinding van het einde van keten k naar keten k + 1 kan naar het beginpunt of naar het eindpunt van deze keten worden genomen: dus steeds twee mogelijkheden: in totaal 2r−1 (r − 1)! mogelijkheden.
A.3
Hoofdstuk 3
Vraag 3.1 f (x1 , x2 ) = (x31 − 1)2 + (x32 − 1)2 .
¡ ¢T a. ∇f = 2(x31 − 1)(3x21 ), 2(x32 − 1)(3x22 ) en ∇2 f =
30x41
− 12x1
0
.
30x42
0 − 12x2 ¡ 3 ¢ ¡ ¢ ¡ ¢ ¡ ¢ ¡¢ ¡¢ T b. ∇f = 2(x1 − 1)(3x21 ), 2(x32 − 1)(3x22 ) = 00 → x1 = 00 , x2 = 10 , x3 = 10 en x4 = 11 .
Alleen dat
x4
¡0
0 0 0 ∇2 f (x4 )
c. ∇2 f (x1 ) =
¢ ¡ ; ∇2 f (x2 ) = 180
¢ ¡ ; ∇2 f (x3 ) = 00
0 0
¢ ¡ ; ∇2 f (x4 ) = 180
0 18
¢ .
0 18
is definiet (positief), zodat we op grond van de Hessiaan kunnen concluderen
een lokaal minimum is.
d. De tweede orde benadering is: f (x + h) = f (x) + ∇f (x)T h + 12 hT ∇2 f (x)h + o(khk2 ). Dit geeft voor x = (0, 0)T : f (h1 , h2 ) = 2 + 0 + 0 + o(khk2 ) = 2 + o(khk2 ). Vraag 3.2
P We hebben gezien dat φ0 (λ) = ∇f (x + λs)T s = nj=1 {∇f (x + λs)}j · sj . P d {∇f (x+λs)}j Hieruit volgt: φ00 (λ) = nj=1 · sj . dλ Pn ∂{∇f (x+λs)}j d xk (λ) d {∇f (x+λs)}j = k=1 · d λ , met xk (λ) = (x + λs)k , zodat d xdkλ(λ) = sk . dλ ∂xk P d {∇f (x+λs)}j Dit geeft: = nk=1 {∇2 f (x + λs)}jk · sk . dλ P P Hiermee krijgen we: φ00 (λ) = nj=1 nk=1 {∇2 f (x + λs)}jk · sk · sj = sT {∇2 f (x + λs)}T s. Vraag 3.3 f {λx + (1 − λ)y} = kλx + (1 − λ)yk ≤ λkxk + (1 − λ)kyk = λf (x) + (1 − λ)f (y).
A.3. HOOFDSTUK 3
245
Vraag 3.4 a. f (x) = xT Ax + bx → ∇f (x) = 2Ax + b → ∇2 f (x) = 2A. Omdat f (x) convex is d.e.s.d. als ∇2 f (x) positief semi-definiet is voor alle x (Stelling 3.4) is in dit geval de convexiteit equivalent met het positief semi-definiet zijn van A. b. Volgens Gevolg 3.1 moeten we de vergelijking ∇f (x) = 0 oplossen. ∇f (x) = 2Ax + b en A is inverteerbaar (A positief definiet) en 2Ax + b = 0 ⇔ x = − 21 A−1 b. Vraag 3.5 a. Uit xk+1 = 12 (xk − 1) volgt voor de limiet x∗ : x∗ = 12 (x∗ − 1) → x∗ = −1. |xk+1 −x∗ | |xk −x∗ |
=
| 12 (xk −1)+1| |xk +1|
=
| 12 xk + 12 | |xk +1|
= 12 : orde van convergentie is 1 en convergentiefactor 12 .
b. Uit xk+1 = 2−k (xk − 1) + 1 volgt voor de limiet x∗ : x∗ = 1. |xk+1 −x∗ | |xk −x∗ |
=
2−k |xk −1| |xk −1|
= 2−k → 0 als k → ∞: superlineaire convergentie.
Vraag 3.6
√ In iedere iteratie wordt de lengte van het interval met de factor 12 ( 5−1) ≈ 0.618 vermenigvuldigd en we stoppen als de lengte van het interval voor het eerst kleiner dan ε is. We moeten dus de eerste k bepalen zdd. ½ (b0 − a0 )
¾k ¾k ½ 1 √ 1 √ ε ( 5 − 1) < ε, d.w.z. dat ( 5 − 1) < . 2 2 b0 − a0
Neem aan beide kanten de logaritme: ¾ ½ ¾ ½ ¾ ½ ¾ ½ ¾ ½ ε 1 √ ε b0 − a0 1 √ , d.w.z. k −log ( 5 − 1) > −log = log . k log ( 5 − 1) < log 2 b0 − a0 2 b0 − a0 ε √ Delen we door −log 21 ( 5 − 1) (merk op dat dit een positief getal is), dan krijgen we: »
¼ log{(b0 − a0 )/ε} √ k= . log{2/( 5 − 1)}
Vraag 3.7 Beschouw f (x+λs) = pT (x+λs)− 12 (x+λs)T C(x+λs) = pT x+λpT s− 21 xT Cx−λxT Cs− 21 λ2 sT Cs. Laat g(λ) = f (x + λs), dan is g 0 (λ) = pT s − xT Cs − λsT Cs = (p − Cx)T s − λsT Cs. Omdat ∇f (x) = p − Cs geldt: g 0 (λ) = 0 ⇔ {∇f (x)}T s = λsT Cs ⇔ λ = Vraag 3.8 s = ∇f (x) = (−2x1 , −100x2 ) en λ = Iteratie 1:
sT s sT Cs
=
s21 +s22 2 2s1 +100s22
.
s0 = (−4, −200), λ0 = 0.01, x1 = (2, 2) + 0.01 (−4, −200) = (1.96, 0). Iteratie 2: s1 = (−3.92, 0), λ1 = 0.50, x2 = (1.96, 0) + 0.50 (−3.92, 0) = (0, 0).
{∇f (x)}T s . sT Cs
246
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Vraag 3.9 ¢ ¡ −2x1 −2x2 +6¢ ¡ ¡ 5 −1¢ 2 f (x) = −2 −2 ; {∇2 f (x)}−1 = − 1 ∇f (x) = −10x ; ∇ −2x −2 −2 −10 8 −1 1 . 2 1 ¡¢ ¡ ¢¡ ¢ ¡¢ ¡ ¢ ¡ ¢ x1 = x0 − {∇2 f (x0 )}−1 ∇f (x0 ) = 11 + 18 −15 −11 −142 = 11 + −23 = −14 . Vraag 3.10 Het optimaliseringsprobleem luidt: (
¯ ) ¯ 3x + 4x + 5x = 4 1 2 3 ¯ 1 2 2 2 max − 2 (x1 + 2x2 + 3x3 + 2x2 x3 ) ¯ . ¯ x1 + x2 + x3 = 1 1 0 0 1 0 0 −1 = 3 1 . V = 0 2 1 , zodat V 0 5 −5 2 0 1 3 0 − 15 5
a = rT V −1 r =
103 5 ,
28 T −1 e = 8 , 5 , c=e V 5 λ∗ er als volgt uitziet:
b = rT V −1 e =
Hieruit volgt dat het stelsel voor
(
103 5 λ1 28 5 λ1
+ +
28 5 λ2 8 5 λ2
met als oplossing λ∗1 = − 21 , λ∗2 = 98 , zodat 1 0 0 −1 ∗ ∗ 1 3 x = −V (λ1 r + λ2 e) = − 0 5 −5 0 − 15
2 5
d = ac − b2 = 85 .
= −4 = −1
−3 2 −2 −5 5
+
9 8 9 8 9 8
=
3 8 1 4 3 8
.
Het is dus optimaal om 83 -deel te beleggen in aandeel 1, 14 -deel in aandeel 2 en 83 -deel in aandeel 3. Dit geeft een verwachte opbrengst van 4 bij een risico van x21 + 2x22 + 3x23 + 2x2 x3 = 87 . Vraag 3.11 L(x, µ) = −(x1 − 3)2 − (x2 − 2)2 − µ1 (x21 + x22 − 5) − µ2 (x1 + 2x2 − 4) − µ3 (−x1 ) − µ4 (−x2 ), zodat à ! à ! −2(x1 − 3) − 2µ1 x1 − µ2 + µ3 −2 − 2µ1 0 2 ∇x L(x, µ) = en ∇xx L(x, µ) = . −2(x2 − 2) − 2µ1 x2 − 2µ2 + µ4 0 −2 − 2µ1 à ! 2 − 4µ − µ + µ 1 2 3 Voor x∗ = (2, 1)T krijgen we ∇x L(x∗ , µ) = . 2 − 2µ1 − 2µ2 + µ4 Uit de complementariteit volgt dat µ∗3 = µ∗4 = 0, zodat ∇x L(x∗ , µ∗ ) = 0 geeft µ∗1 =
1 3
en µ∗2 = 23 .
Omdat y T ∇2xx L(x∗ , µ∗ )y = − 83 y12 − − 83 y22 < 0 voor alle y 6= 0 is x∗ een lokaal maximum. Vraag 3.12 a. Door de twee beperkingen bij elkaar op te tellen krijgen we 2(x1 − 1)3 = 0, dus x1 = 1, ¡ ¡ 1 −1)2 ¢ 2¢ waaruit volgt dat x2 = 0. ∇h1 (x) = 3(x11−1) , ∇h2 (x) = 3(x−1 , zodat de vectoren ¡¡1¢¢ ¡0¢ ¡¡1¢¢ ¡ 0 ¢ ¡1¢ ∇h1 0 = 1 en ∇h2 0 = −1 lineair afhankelijk zijn: 0 is niet regulier. ¡¢ ¡¢ ¡¢ ¡0¢ b. ∇f (x) = 10 , zodat stelsel (3.19) wordt: 10 − λ∗1 01 − λ∗2 −1 = 0. Het is duidelijk dat de eerste vergelijking geen oplossing heeft.
A.3. HOOFDSTUK 3
247
c. Stelsel (3.55) wordt µ∗0
¡1¢ 0
− λ∗1
¡0¢ 1
− λ∗2
¡0¢ −1
= 0 met als oplossing µ∗0 = 0, λ∗1 = λ∗2
(verder willekeurig te kiezen). Vraag 3.13 Volgens Stelling 3.19 is x∗ een globaal maximum. Stel dat x 6= x∗ ook een globaal maximum is en neem λ ∈ (0, 1). Dan geldt: f {λx∗ + (1 − λ)x} > λf (x∗ ) + (1 − λ)f (x) = f (x∗ ), wat een tegenspraak oplevert. Vraag 3.14 Laten x1 , x2 twee toegelaten punten zijn en laat x = λx1 + (1 − λ)x2 met λ ∈ [0, 1]. Uit de quasiconvexiteit volgt: gj (x) = gj {λx1 + (1 − λ)x2 } ≤ max{gj (x1 ), gj (x2 )} ≤ 0 voor j = 1, 2, . . . , p. Vraag 3.15 a. De beperking is lineair, dus convex. Voor de doelfunctie geldt dat de Hessiaan gelijk is aan ¡−4 3¢ 3 −4 met eigenwaarden -1 en -7, dus negatief definiet: concaaf. ¡ ¢ ¡¢ 1 +3x2 b. De KKT-voorwaarden zijn: 5−4x = µ 11 ; µ(x1 + x2 − 2) = 0; µ ≥ 0. 3x1 −4x2 20 7 ,
x2 =
15 7 ,
maar dit punt is niet toelaatbaar. ¡ 11−7x1 ¢ ¡¢ 9 Als µ 6= 0: x2 = 1 − x1 geeft −8+7x1 = µ 11 : x1 = 19 14 , x2 = 14 en dit punt geeft de Als µ = 0: x1 =
optimale oplossing. Vraag 3.16 De matrix C =
¡
¢
2 −4 −4 10
is een symmetrische, positief definiete matrix, zodat de methode van
Wolfe kan worden toegepast. Het KKT-stelsel wordt voor dit probleem (zonder de orthogonaliteit en de niet-negativiteit van de variabelen): 2x1 −
4x2
+ u1 −
−4x1 + 10x2 x1 + −x1 +
u 2 − v1
+ u1 + 4u2
= −6 − v2 =
20
=
3
=
4
x2 + y1 4x2
+ y2
Hieronder staan de pivot-iteraties (verboden pivotkolommen en het pivotelement zijn met een * aangegeven). ∗x
v1
6
1
-2
w2
20
-4
y1
3
y2
x2 4
∗u 1
-1
∗u
2
1
∗x 1
v2 0
v1
y2
∗u 1
u2
∗v
0
2
2
-1
-1
-1
∗1
- 32 5 4 - 14 3 2
- 52 - 14 1 4 5 2
1
4
-1
0
0
0
0
0
0
-1
-4
1
10
1
4
-1
w2
10
1
1
0
0
0
y1
2
4
-1
∗4
0
0
0
x2
1
-20
4
-10
-1
-4
1
-10
248
BIJLAGE A. OPLOSSING VAN DE VRAGEN x1
∗y
2
∗u 1
v1
∗v 2
∗y
2
∗v 1 3 -5 - 58
-1
- 52
2
6 5
2 5
1 2
- 25
2 3 -5 - 25 1 2 1 - 10
0
0
0
0
0
2
-1
-1
-1
1
0
u2
w2
2
-4
-1
x1
2
0
0
0
y1
1
x2
1
3 2 - 14 1 4 - 32
5
y1
∗5 2 5 4 - 14 - 52
14 5 4 5
0
0
0
x2
-5
4
1
u2
-2
2 2 -5 3 5
∗u 1
1
Optimale oplossing: x1 =
4 5
∗v
en x2 = 65 .
Vraag 3.17 Het LP-probleem is: ¯ ¯ ¯ z ≤ 11 2 s1 + 3s2 ; ¯ ¯ ¯ z ≤ −s1 − 5s2 + ¯ max z ¯ z ≤ − s2 + ¯ ¯ s1 ; ¯ z ≤ ¯¯ z ≤ s2 + λmax =
21 25
−1 ≤ s1 ≤ 1; 5 ; −1 ≤ s ≤ 1; 2 4 1 T 3 met oplossing s0 = ( 75 , − 28 ) ; z 0 = 57 . 4; 3 ; 4
(volgt uit de tweede beperking) en het lijnoptimalisatieprobleem is
max0≤λ≤ 21 f (xk + λsk ) = max0≤λ≤ 21 25
25
x1 = (0, 43 )T +
21 5 1 T 25 ( 7 , − 28 )
27 8
+
107 28 λ
−
421 2 392 λ
en dit geeft λk =
21 25 ,
zodat
T = ( 35 , 18 25 ) .
Vraag 3.18 ∇f (x) = (−2x1 , 0)T ; k = 0. Iteratie 1: a. I = {1}, B = (1), N = (−1). b. rN = 0 − (−10)(−1) = −10. c. sN = −30, sB = −30. 5 3 e. λmax = min{ 30 , 30 } =
1 10 ;
max0≤λ≤ 1 f (xk + λsk ) = max0≤λ≤ 1 − (5 − 30λ)2 met optimum bij λk = 10
f. x1 = (5, 3)T +
10
1 T 10 (−30, −30)
1 10 .
= (2, 0)T ; k = 1.
Iteratie 2: a. I = {1}, B = (1), N = (−1). b. rN = 0 − (−4)(−1) = −4. c. sN = 0, sB = 0. d. x1 = (2, 0)T is een KKT-punt. Vraag 3.19 De Jacobiaan J(x) = (6x1 , 4x2 ), ∇f (x) = (−4x1 , −6x2 )T . x0 = (2, 2) met waarde -20. a. A = (12, 8) b. I0 = {1}, B = (12), N = (8). 1 c. rN = (−12) − (−8)( 12 )(8) = − 20 3 .
A.4. HOOFDSTUK 4 d. sN = − 40 3 , sB =
249
80 9 .
2 f. λmax = { 40/3 =
g(λ) = f (xk +
3 20 ; λsk )
= −2(2 +
g 0 (λ) = 0 d.e.s.d. als λ = g. x1 = (2, 2)T +
9 140 ;
9 80 40 T 140 ( 9 , − 3
80 2 9 λ)
40 2 3 λ) ; f (xk + λsk )
− 3(2 −
max0≤λ≤ 3
20
8 7
9 140 .
8 T = ( 18 7 , 7) .
h. x1 is ontoelaatbaar. Houd x2 =
heeft optimum bij λ0 =
vast, wat de toelaatbare x1 =
2 7
√ 71 ≈ 2.4075 geeft met waarde -15.51.
i. k = 1. Vraag 3.20 Het deelprobleem (3.84) is max f (x1 , x2 ) met f (x1 , x2 ) = −x1 − x2 + αk {log (−x21 + x2 ) + log x1 }. We zoeken de oplossing van: ∂f ∂x1
n = −1 + αk
−2x1 −x21 +x2
+
1 x1
o = 0 en
∂f ∂x2
n = −1 + αk
1 −x21 +x2
o = 0.
Uit de tweede vergelijking volgt −x21 + x2 = αk , zodat uit de eerste vergelijking volgt: n o 1 1 αk −2x + = 1, ofwel 2x21 + x1 − αk = 0. De oplossing van deze vierkantsvergelijking is αk x1 √ x1 = 41 {−1 + 1 + 8αk } (de plus-wortel omdat x1 > 0 moet zijn), waaruit met x2 = x21 + αk √ 1 volgt dat x2 = 16 {−1 + 1 + 8αk }2 + αk .
A.4
Hoofdstuk 4
Vraag 4.1
u1 = 0 a. De Bellman-vergelijkingen voor dit probleem zijn u2 = min(0 + 10, u3 − 1) u =u +1 3 2 We geven twee verschillende oplossingen: u = (0, 10, 11) en u = (0, 5, 6). b. Alle oplossingen worden gegeven door u = (0, k, k + 1) met k willekeurig, mits hoogstens 10. Vraag 4.2 Uit de gegeven u∗ en de Bellman-vergelijkingen van dit probleem volgt: 0 = u∗1 ∗ ∗ ∗ ∗ −1 = u2 = min(u1 − 1, u4 + 0, u5 + 0) = min(−1, 5, 6) → k(2) = 1;
3 = u∗3 = min(u∗1 + 3, u∗2 + 5, u∗4 − 1, u∗5 + 0) = min(3, 4, 4, 6) → k(3) = 1; 5 = u∗4 = min(u∗2 + 6, u∗5 − 1) = min(5, 5) → k(4) = 2 of 5; 6 = u∗5 = min(u∗1 + 6, u∗2 + 8, u∗3 + 10) = min(6, 7, 13) → k(5) = 1.
De boom van kortste paden is niet uniek, bijv. de pijlenverz. {(1, 2), (1, 3), (2, 4), (1, 5)} of {(1, 2), (1, 3), (5, 4), (1, 5)}
250
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Vraag 4.3 Beschouw het netwerk met nevenstaande lengtematrix (∞ geeft aan dat de pijl niet bestaat). Iteratie 1 D := {1}; u := (0, 3, 2); k(i) := 1, i = 2, 3. Iteratie 2 p := 3; D := {1, 3}; u := (0, , 3, 2). Iteratie 3 p := 2; D := {1, 3, 2}; u∗ := (0, 3, 2). Dit is niet goed, want u∗2 = 1, via {1, 3, 2}. Vraag 4.4 Iteratie 1 D := {1}; u := (0, 3, ∞, 2, ∞, ∞); k(i) := 1, i = 2, 3, . . . , 6. Iteratie 2 p := 4; D := {1, 4}; u := (0, 3, ∞, 2, 6, ∞); k(5) := 4. Iteratie 3 p := 2; D := {1, 4, 2}; u := (0, 3, 13, 2, 6, ∞); k(3) := 2. Iteratie 4 p := 5; D := {1, 4, 2, 5}; u := (0, 3, 8, 2, 6, ∞); k(3) := 5. Iteratie 5 p := 3; D := {1, 4, 2, 5, 3}; u∗ := (0, 3, 8, 2, 6, 11); k(6) := 3. De boom van kortste paden is {(1, 2), (5, 3), (1, 4), (4, 5), (3, 6)}. Vraag u1 j uk1 k uj
4.5 := l1j , j = 2, 3, . . . , n := 0, k = 2, 3, . . . := mini (uk−1 + lij ), j = 2, 3, . . . , n, k = 2, 3, . . . i
Vraag 4.6 Iteratie 1 u := (0, ∞, 4, 10, 3, ∞, ∞); k(i) := 1, i = 2, 3, . . . , 7. Iteratie 2 j = 2, i = 3 : u2 := 13, k(2) := 3; j = 2, i = 5 : u2 := 3, k(2) := 5. j = 3, i = 2 : u3 := 2, k(3) := 2. j = 4, i = 2 : u4 := 0, k(4) := 2. j = 6, i = 2 : u6 := 14, k(6) := 2; j = 6, i = 3 : u6 := 4, k(6) := 3. j = 7, i = 2 : u7 := 3, k(7) := 2; j = 6, i = 5 : u7 := 2, k(7) := 5.
0
3
2
∞ 0 −2 ∞ ∞ 0
A.4. HOOFDSTUK 4
251
Iteratie 3 j = 3, i = 4 : u3 := 0, k(3) := 4. j = 6, i = 3 : u6 := 2, k(6) := 3. j = 7, i = 3 : u7 := 1, k(7) := 3. Iteratie 4 In deze iteratie verandert niets, zodat u∗ = (0, 3, 0, 0, 3, 2, 1). De boom van kortste paden heeft de pijlen {(5, 2), (4, 3), (2, 4), (1, 5), (3, 6), (3, 7)}. Vraag 4.7 We geven steeds de matrices U en K. Omdat er geen pijlen naar v1 zijn, is U 2 = U 1 . Iteratie 1 en 2 1 2 U := U :=
0 ∞
4
10
3 ∞
∞
0 −1 −3
2 11
∞
9
0
8
3
2
∞
4
0
0
8
6
∞
0
1
2
0
3
∞
1 −1
3
2
0
∞
4
∞ ∞
2
3
0 1 3 −1 0 0
1 2 K := K :=
∞
1 1 1 1 1 1
2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7
Iteratie 3 3 U =
Iteratie 4
4 U =
0 ∞
4
10 3 ∞
∞
0 −1 −3 2 11
∞
9
0
6 3
2
∞
4
0
0 6
6
∞
0 −1 −3 0
3
∞
1 −1 −2 2
0
∞
4
3
2
0 13
4
1 6
10 3 6
∞
0 −1 −3 2 1
∞
9
0
6 3 2
∞
4
0
0 3 2
∞
0 −1 −3 0 1
∞
1 −1 −2 2 0
∞
4
3
1 6 2
0 1 3 −1 0 0
3 K =
∞
0 1 1 −1 0 0
K4 =
5
1 1 1 1 1 1 1
2 2 2 2 2 2 2 3 3 3 2 3 3 3 4 4 4 4 2 4 4 5 5 2 2 5 5 5 6 6 6 2 6 6 6 7 7 7 2 2 7 7
1 3 1 1 1 3 3
2 2 2 2 2 3 2 3 3 3 2 3 3 3 4 4 4 4 3 3 3 5 5 2 2 5 3 5 6 6 6 2 6 6 6 7 7 7 2 2 7 7
252
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Iteratie 5 5 U =
∞ ∞ ∞ ∞ ∞ ∞
Iteratie 6 6 U =
0 −3 −3 0 −1 −2 9 0 6 3 2 1 4 0 0 6 2 1 0 −3 −3 0 −1 −2 1 −2 −2 1 0 −1 4 1 1 4 2 0
5 K =
0 13
4
10 3
6
5
∞ 0 −3 −3 0 −1 −2 ∞ 3 0 0 3 2 1 ∞ 4 0 0 6 2 1 ∞ 0 −3 −3 0 −1 −2 ∞ 1 −2 −2 1 0 −1 ∞ 4 1 1 4 2 0
6 K =
∞ 0 −3 −3 0 −1 −2 ∞ 3 0 0 3 2 1 ∞ 3 0 0 3 2 1 ∞ 0 −3 −3 0 −1 −2 ∞ 1 −2 −2 1 0 −1 ∞ 3 0 0 3 2 0
7 K =
0 3
0
0 3
2
1
0 3
0
0 3
2
1
1 3 1 1 1 3 3
2 2 4 2 4 4 4 3 3 3 2 3 3 3 4 4 4 4 2 3 3 5 5 4 2 5 4 4 6 6 4 2 4 6 4 7 7 4 2 4 7 7
1 5 5 5 1 5 5
2 2 4 2 4 4 4 3 5 3 5 3 3 3 4 4 4 4 2 3 3 5 5 4 2 5 4 4 6 6 4 2 4 6 4 7 7 4 2 4 7 7
Iteratie 7 7 U =
1 5 5 5 1 5 5
2 2 4 2 4 4 4 3 5 3 5 3 3 3 4 6 4 4 6 3 3 5 5 4 2 5 4 4 6 6 4 2 4 6 4 7 6 6 6 6 7 7
Iteratie 8 We krijgen geen verandering meer: U ∗ = U 7 . Vraag 4.8 We krijgen het pad {vi , v2 , v4 , vj }, want als k = 10 geeft dit geen verandering meer. We krijgen het pad met de maximale index, noem deze index k, minimaal. Als er meerdere kortste paden zijn met k als maximale index, dan moet hetzelfde principe worden toegepast op de paden vi naar vk en vk naar vj . Vraag 4.9 We hoeven geen knooppunt toe te voegen, want vanuit v1 zijn alle andere punten te bereiken. We schrijven alleen de predk (j) op voor j = n (de andere gebruiken we niet). Stap 1 Start met F0 (1) := 0, F0 (j) := ∞, j = 2, 3, . . . , 6.
A.4. HOOFDSTUK 4
253
Stap 2 F1 (2) := 3, F1 (3) := ∞, F1 (4) := 2, F1 (5) := ∞, F1 (6) := ∞. F2 (2) := 10, F2 (3) := 13, F2 (4) := 9, F2 (5) := 6, F2 (6) := ∞. F3 (2) := 14, F3 (3) := 8, F3 (4) := 9, F3 (5) := 13, F3 (6) := 10. F4 (2) := 9, F4 (3) := 15, F4 (4) := 16, F4 (5) := 13, F4 (6) := 11. F5 (2) := 16, F5 (3) := 15, F5 (4) := 15, F5 (5) := 20, F5 (6) := 17. F6 (2) := 16, pred6 (2) := 3; F6 (3) := 22, pred6 (3) := 5; F6 (4) := 22, pred6 (4) := 2; F6 (5) := 19, pred6 (5) := 4; F6 (6) := 18 , pred6 (6) := 3. Stap 3
n
j := 2 : max0≤k≤n−1 n j := 3 : max0≤k≤n−1 n j := 4 : max0≤k≤n−1 n j := 5 : max0≤k≤n−1 n j := 6 : max0≤k≤n−1
o
Fn (j)−Fk (j) n−k
| Fk (j) < ∞
Fn (j)−Fk (j) n−k
| Fk (j) < ∞
Fn (j)−Fk (j) n−k
| Fk (j) < ∞
Fn (j)−Fk (j) n−k
| Fk (j) < ∞
Fn (j)−Fk (j) n−k
| Fk (j) < ∞
o o o o
16−10 16−14 16−9 16−16 7 = max{ 16−3 5 , 4 , 3 , 2 , 1 } = 2. 22−8 22−15 22−15 = max{ 22−13 4 , 3 , 2 , 1 } = 7. 22−9 22−9 22−16 22−15 = max{ 22−2 5 , 4 , 3 , 2 , 1 } = 7. 19−6 19−13 19−13 19−20 = max{ 19−8 5 , 4 , 3 , 2 , 1 }=
13 4 .
18−8 18−10 18−11 186−176 = max{ 18−8 } = 72 . 5 , 4 , 3 , 2 , 1
Hieruit volgt dat j∗ = 5 en, omdat pred6 (5) = 4, pred6 (4) = 2, pred6 (2) = 3 en pred6 (3) = 5, dat C = {5, 3, 2, 4, 5} de ronde met de kleinste gemiddelde lengte (deze is
13 4 )
is.
Vraag 4.10 De bijbehorende lengtefunctie heeft als lengtes lij = −ln pij en de bijbehorende matrix L is:
− 0.0305 0.0513 0.0305
−
− − 0.0101 0.0202 0.0356 L = − 0.0101 − 0.0408 0.0513 − − 0.0202 − 0.0408 − − − − − Passen we de methode van Dijkstra toe, dan krijgen we (de lengtes vermenigvuldigd met 10.000). Iteratie 1 D := {1}; u := (0, 305, 513, 305, ∞); k(i) := 1, i = 2, 3, 4, 5. Iteratie 2 p := 2; D := {1, 2}; u := (0, 305, 406, 305, 661); k(3) := k(5) := 2. Iteratie 3 p := 4; D := {1, 2, 4} (verder geen veranderingen). Iteratie 4 p := 3; D := {1, 2, 4, 3} (verder geen veranderingen). Iteratie 5 p := 5; D := {1, 2, 4, 3, 5}.
254
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Met behulp van de methode van Dijkstra is hieruit te bepalen dat 1 → 2 → 5 het meest betrouwbare pad van knooppunt 1 naar knooppunt 5 is. De betrouwbaarheid van dit pad is 0.97 × 0.965 = 0.936 (ook te berekenen via de lengtefunctie: e−(0.0305+0.0356) = 0.936). Vraag 4.11 Onderstaand netwerk, met drie dummies (M, N, O), geeft een goed model voor het probleem. 7
D
3
s ¡6 µ ¡ M
-s µ6 ¡ ¡
K - 8s
@
@ L ¡ sH J @ © H¡ E ©©* ¡ @ H ¡ HO ¡ © @ HH B - s©© H R @ I j ¡ 1 ¡ s -s - s9 : » » » ¡ » @ 2 6 » » ¡ @ »»» » N » ¡ @ F »»» ¡ G C@ »»» » ¡ »»» @ ? R¡ @ s»»» 4
A¡
5
De berekeningen staan in onderstaande tabel. i
ei
li
(i,j)
sij
(i,j)
sij
1
0
0
(1,2)
0
(3,7)
9
2
6
6
(1,3)
11
(5,9)
20
3
6
15
(1,5)
19
(6,7)
0
4
16
16
(2,4)
0
(6,9)
12
5
8
22
(2,5)
14
(7,8)
0
6
16
16
(2,6)
2
(8,9)
0
7
22
22
(2,3)
9
(5,7)
14
8
26
26
(4,6)
0
9
33
33
Het kritieke pad is: 1 → 2 → 4 → 6 → 7 → 8 → 9, d.w.z. de activiteiten B, E, O, J, K en L, met totale tijdsduur 33. Vraag 4.12 P1 := {1, 2, 4, 7}; ∆ := 3; x12 := x24 := x47 := 3. P2 := {1, 3, 5, 7}; ∆ := 2; x13 := x35 := x57 := 2. P3 := {1, 2, 4, 5, 7}; ∆ := 3; x12 := x24 := 6, x45 := 3, x57 := 5. P4 := {1, 2, 6, 5, 7}; ∆ := 3; x12 := 9, x26 := 3, x65 := 3, x57 := 8. P5 := {1, 3, 6, 5, 7}; ∆ := 1; x13 := 3, x36 := 1, x65 := 4, x57 := 9. P6 := {1, 3, 6, 4, 5, 7}; ∆ := 2; x13 := 5, x36 := 3, x64 := 2, x45 := 5, x57 := 11. Er is geen groeipad meer. De waarde van de verkregen stroom is 3 + 2 + 3 + 3 + 1 + 2 = 14. In Nx zijn de knooppunten 1, 2, 3, 4 en 6 bereikbaar: W = {1, 2, 3, 4, 6} geeft een snede met minimale capaciteit, nl. 14.
A.4. HOOFDSTUK 4 Vraag 4.13 Een maximale stroom van s naar t in het hiernaast staande netwerk N krijgen we via de volgende groeiketens P : P := {s, 5, 1, t} met hoeveelheid 4. P := {s, 3, 4, t} met hoeveelheid 4. P := {s, 3, 4, 5, 1, 2, t} met hoeveelheid 1. De nu verkregen stroom is maximaal en ook een volgemaakte stroom met waarde 5. Het oorspronkelijke netwerk heeft de volgende toegelaten stroom: x12 := 1, x13 := 4, x14 := 0, x23 := 1,
255 2
s @ ¡ ¢¸ ¡¢ @ 4 @ ¡ ¢ R 5s @ 1 ¡3¢ 3 ¡ ¢ I @ ££± @4 ¡ ¢ £ @ ¡ ¢ 3 ? ª 4 1s¢ 0 ¡ @ss s¾5 £ t s¾ £ A I @ @ £ A @ £ A 4 @ A 1 5 £3 @ A £ @ A £ @A £ AU ? @ £s 4
x25 := 0, x34 := 5, x45 := 5. We gaan hiermee een maximale stroom bepalen via de
∞ ¾
volgende groeiketens: P := {1, 2, 5} met hoeveelheid 2. P := {1, 4, 5} met hoeveelheid 2. Er zijn nu geen groeiketens meer: de stroom is maximaal met waarde 9. De stroom is: x12 := 3, x13 := 4, x14 := 2, x23 := 1, x25 := 2, x34 := 5, x45 := 7. Vraag 4.14 P1 := {1, 2, 3, 4}; l(P ) := 8; ∆ := 1; c := 8, k := 1; x12 := x23 := x34 := 1. P2 := {1, 2, 4}; l(P ) := 9; ∆ := 1; c := 17, k := 2; x12 := 2, x24 := 1. P3 := {1, 3, 4}; l(P ) := 9; ∆ := 1; c := 26, k := 3; x13 := 1, x34 := 2. P4 := {1, 3, 2, 4}; l(P ) := 10; ∆ := 1; c := 36, k := 4; x13 := 2, x32 := 0, x24 := 2. Er is geen groeipad meer. De optimale stroom is: x12 := x24 := x13 := x34 := 2, x32 := 0 met waarde 4 en kosten 36. Vraag 4.15 De kosten van deze stroom zijn 27. C := {1, 2, 3, 1} is een ronde met negatieve lengte: l(C) := −1. Over C kan maximaal ∆ := 1 worden vervoerd. Hiermee krijgen we de stroom x12 := 2, x13 := 1, x23 := 1, x24 := 1, x34 := 2 met waarde 3 en kosten 26. Nu is er geen ronde met negatieve lengte meer: dit is een minimale kostenstroom. Vraag 4.16 We nemen b1 := 4, b2 := b3 := 0, b4 := −4. Start: cu12 := 0, cu13 := 0, cu23 := −1, cu24 := 0, cu34 := 0. Uit (4.12) volgt dat x23 := 1 en dat de overige variabelen vrij zijn, mits tussen hun onder- en bovengrens. Neem x12 := x24 := x13 := x34 := 2. Dan geldt: e1 := 0, e2 := −1, e3 := 1, e4 := 0.
256
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Iteratie 1 s := 3, W := {3}, e(W ) := 1, r(u, W ) := 2. (i, j) := (3, 1), W := {3, 1}, pred[1] := 3, e(W ) := 1, r(u, W ) := 0. α := 1. u1 := 9, u3 := 3; cu12 := −1, cu23 := 0, cu34 := −1. Iteratie 2 s := 3, W := {3}, e(W ) := 1, r(u, W ) := 1. Er is een pad P van s naar knooppunt 2 met pijlen met cuij := 0 en e2 < 0, namelijk P := {3, 2}. ∆ := 1, x23 := 0, e2 := e3 := 0. Iteratie 3 e1 := e2 := e3 := e4 := 0: we hebben een minimale kostenstroom met waarde 4. Vraag 4.17 Bij dit probleem hoort het nevenstaande netwerk met alle bovengrenzen 1 en ondergrenzen 0, behalve de pijlen (i, 4 + i) die als ondergrens ook 1 hebben (i = 1, 2, 3, 4). We moeten een toelaatbare stroom vinden met minimale waarde. Het is direct duidelijk dat de 4-de opdracht door een aparte tanker, zeg tanker 1, moet worden uitgevoerd. Tanker 2 kan de opdrachten 1 en 2 uitvoeren, en tanker 3 opdracht 3. We hebben daarmee inderdaad een toelaatbare stroom met mini-
1
s
¡ µ ¡
5
-s ´ ´ @
´ @ ´ @ ¡ ´ 2´ 6 + s s ¡ PP @ ³ 1 k PP@ ¡³³³ Q Q P@ R q st P Q s ³ ¡ ³ s P 1 Q ³³ ³ @PPP µ ¡ Q 7 ³³ 3 P P q Q³ ¡ s s @ ¡ @ ¡ @ ¡ @ @ Rs -¡ s 4
8
male waarde (in het ’omgekeerde’ hulpnetwerk is geen pad van t naar s)
A.5
Hoofdstuk 5
Vraag 5.1
P P P Omdat Cj = Lj + dj is j wj Cj = j wj Lj + j wj dj , zodat duidelijk is dat beide criteria P equivalent zijn ( j wj dj is een constante). Vraag 5.2 Neem een willekeurige permutatie van de jobs, zeg i1 , i2 , . . . , in . Dan is Cj = pi1 + pi2 + · · · + pij , P zodat j Cj = n · pi1 + (n − 1) · pi2 + · · · + pin . Het is direct duidelijk dat dit minimaal is voor de volgorde waarin de kleinste job voorop staat: dit geeft de SPT-regel.
A.5. HOOFDSTUK 5
257
Vraag 5.3 Initialisatie: k := 7, τ := 33, J := {1, 2, 3, 4, 5, 6, 7}. Iteratie 1: i7 := 1, τ := 27, k := 6, J := {2, 3, 4, 5, 6, 7}. Iteratie 2: i6 := 5, τ := 24, k := 5, J := {2, 3, 4, 6, 7}. Iteratie 3: i5 := 4, τ := 15, k := 4, J := {2, 3, 6, 7}. Iteratie 4: i4 := 7, τ := 7, k := 3, J := {2, 3, 6}. Iteratie 5: i3 := 3, τ := 3, k := 2, J := {2, 6}. Iteratie 6: i2 := 2, τ := 1, k := 1, J := {6}. Iteratie 7: i1 := 6, τ := 0, k := 0, J := ∅. Het optimale schedule is {6, 2, 3, 7, 4, 5, 1}. Vraag 5.4 De taken worden geordend in de volgorde: 2, 3, 1, 5, 4, 6 en we starten met S := ∅, p := 0. Iteratie 1: S := {2}; p := 1. Iteratie 2: S := {2, 3}; p := 3. Iteratie 3: S := {2, 3, 1}; p := 9. Iteratie 4: S := {2, 3, 1, 5}; p := 13; l := 1; S := {2, 3, 5}; p := 7. Iteratie 5: S := {2, 3, 5, 4}; p := 16. Iteratie 6: S := {2, 3, 5, 4, 6}; p := 22; l := 4; S := {2, 3, 5, 6}; p := 13. P Een optimaal schedule is: {2, 3, 5, 6, 1, 4} met 6j=1 Uj = 2. Vraag 5.5 a. X := {2, 4, 6, 8} en Y := {1, 3, 5, 7}. X 0 := {4, 2, 8, 6} en Y 0 := {7, 1, 3, 5}. S := {4, 2, 8, 6, 7, 1, 3, 5} met Cmax = 38. b. Het schedule is niet het enige optimale. De taken 2 en 8 verwisselen geeft ook een optimaal schedule. Vraag 5.6 a. Op M1 eerst taak 13, op M2 eerst taak 12, op M3 eerst taak 11, op M4 eerst taak 10, op M5 eerst taak 9 en op M6 eerst taak 8. Daarna als tweede taak op M6 taak 7, als tweede taak op M5 taak 6, als tweede taak op M4 taak 5, als tweede taak op M3 taak 4, als tweede taak op M2 taak 3 en als tweede taak op M1 taak 2. Alle machines hebben dan 17 eenheden werk gehad en taak 1 komt tenslotte op M1 . Cmax = 23. b. Het optimale schedule heeft 18 eenheden werk op iedere machine, bijvoorbeeld: op M1 de taken 1,2 en 3; op M2 de taken 4 en 12; op M3 de taken 5 en 13; op M4 de taken 6 en 10; op M5 de taken 7 en 11; op M6 de taken 8 en 9.
258
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Vraag 5.7 Hieronder staat het optimale schedule, verkregen met Algoritme van Hu. M1
1
4
7
8
13
16
M2
2
5
9
11
14
18
M3
3
6
10
12
15
20
A.6
17
19
21
Hoofdstuk 6
Vraag 6.1 a. Vanwege dominatie kan de eerste kolom worden weggelaten. b. De LP-problemen zijn: ¯ ¯ x0 ≤ 2x1 + 3x2 x1 ≥ 0 ¯ ¯ ¯ x0 ≤ 3x1 + 2x2 x2 ≥ 0 ¯ max x0 ¯ ¯ x0 ≤ −2x1 + 6x2 ¯ ¯ ¯ 1 = x1 + x2
¯ ¯ y0 ≥ 2y1 + 3y2 − 2y3 y1 ≥ 0 ¯ ¯ and min y0 ¯¯ y0 ≥ 3y1 + 2y2 + 6y3 y2 ≥ 0 ¯ ¯ 1 = y1 + y2 + y3 y3 ≥ 0
ORSTAT geeft als oplossing: x1 = 49 , x2 = 95 , x0 = Vraag 6.2
22 9 ;
y1 = 0, y2 = 89 , y3 = 19 , y0 =
22 9 .
à ! 1 0
à ! 4 0 Dit is een bi-matrixspel met A = en B = . Neem x = (λ, 1 − λ) en y = (µ, 1 − µ). 0 4 0 1 Dan is xT Ay = x1 y1 + 4x2 y2 = 4 + λ(5µ − 4) − 4µ en xT By = 4x1 y1 + x2 y2 = 1 + µ(5λ − 1) − λ. Beschouw eerst xT Ay = 4 + λ(5µ − 4) − 4µ: Voor 0 ≤ µ ≤ Voor µ = Voor
4 5
4 5
4 5
is xT Ay maximaal voor λ = 0;
µ ↑ 4 5
is xT Ay maximaal voor alle waarden van λ;
≤ µ ≤ 1 is xT Ay maximaal voor λ = 1.
Beschouw vervolgens xT By = 1 + µ(5λ − 1) − λ: Voor 0 ≤ λ ≤ Voor λ = Voor
1 5
1 5
1 5
is xT By maximaal voor µ = 0;
is xT By maximaal voor alle waarden van µ;
0
1 5
→ λ
≤ λ ≤ 1 is xT By maximaal voor µ = 1.
De punten op de kruisingen van de lijnen komen overeen met evenwichtsparen. Dus het bi-matrix spel heeft de evenwichtsparen: x∗1 = (0, 1), y1∗ = (0, 1) met waarde-vector (4,1); x∗2 = ( 15 , 54 ), y2∗ = ( 45 , 15 ) met waarde-vector ( 54 , 45 ); x∗3 = (1, 0), y3∗ = (1, 0) met waarde-vector (1,4).
.
A.6. HOOFDSTUK 6
259
Vraag 6.3 Strategie
v(∅) = 0; v({1, 2}) = max(−2, −10, −10, −16) = −2.
Uitbetaling
S1
S2
p1
p2
A
A
-1
-1
A
B
-10
0
B
A
0
-10
B
B
-8
-8
v({1}) is de waarde van het matrixspel bij de matrix
Ã
−1 − 10 0
−8
! .
De tweede rij domineert de eerste, dus v({1}) = min(0, −8) = −8. Ã ! −1 0 v({2}) is de waarde van het matrixspel bij de matrix . −10 − 8 De eerste rij domineert de tweede, dus v({2}) = min(−1, 0) = −1.
Vraag 6.4 T (v) = {(x1 , x2 , x3 ) | x1 ≥ 0; x2 ≥ 0; x3 ≥ 3; x1 + x2 + x3 = 5}. K(v) = {(x1 , x2 , x3 ) | x1 ≥ 0; x2 ≥ 0; x3 ≥ 3; x1 + x3 ≥ 4; x2 + x3 ≥ 4; x1 + x2 + x3 = 5}. Het is handiger om dit in het (x1 , x2 )-vlak te beschouwen en x3 een afhankelijke variabele te laten zijn (x3 = 5 − x1 − x2 ). De eis x3 ≥ 3 komt dan overeen met x1 + x2 ≤ 2. In deze ruimte geldt: K(v) = {(x1 , x2 ) | x1 ≥ 0; x2 ≥ 0; x1 + x2 ≤ 2; x2 ≤ 1; x1 ≥ 1} = {(x1 , x2 ) | x1 ≥ 0; x2 ≥ 0; x1 ≤ 1; x2 ≥ 1}, d.w.z. K(v) is het eenheidsvierkant. Voor de bepaling van de nucleolus beschouwen we onderstaande tabel met voor iedere S ⊆ N de waarden v(S) − x(S), uitgedrukt in x1 en x2 . S
∅
{1}
{2}
{3}
{1, 2}
{1, 3}
{2, 3}
{1, 2, 3, }
v(S) − x(S)
0
−x1
−x2
x1 + x2 − 2
−x1 − x2
x2 − 1
x1 − 1
0
We proberen de vector, die we krijgen door de termen niet-stijgend te ordenen, lexicografisch te minimaliseren. Om de vector lexicografisch niet-positief te laten worden moet gelden: x1 + x2 ≤ 2, x1 ≤ 1 en x2 ≤ 1. De vector wordt lexicografisch minimaal als −x1 = x1 − 1 en ¡ ¢ −x2 = x2 − 1, d.w.z. x1 = x2 = 21 en x3 = 4. Dit geeft de vector 0, 0, − 21 , − 12 , − 12 , − 21 , −1, −1 . Voor de Shapley-waarden krijgen we: © ¡ ¢ ª 1!1! © ¡ ¢ ¡ ¢ª φ1 (v) = 0!2! + 3! v {1} − v(∅) + 3! v {1, 2} − v {2}
1!1! 3!
= 0 + 0 + 16 + 26 = 12 . © ¡ ¢ ª φ2 (v) = 0!2! 3! v {2} − v(∅) +
1!1! 3!
© ¡ ¢ ¡ ¢ª v {1, 2} − v {1} +
1!1! 3!
= 0 + 0 + 16 + 26 = 12 . © ¡ ¢ ª φ3 (v) = 0!2! 3! v {3} − v(∅) +
1!1! 3!
© ¡ ¢ ¡ ¢ª v {1, 3} − v {1} +
1!1! 3!
=
6 6
+
4 6
+
4 6
+
10 6
= 4.
© ¡ ¢ ¡ ¢ª v {1, 3} − v {3} © ¡ ¢ ¡ ¢ª + 2!0! 3! v {1, 2, 3} − v {2, 3} © ¡ ¢ ¡ ¢ª v {2, 3} − v {3} © ¡ ¢ ¡ ¢ª + 2!0! 3! v {1, 2, 3} − v {1, 3} © ¡ ¢ ¡ ¢ª v {2, 3} − v {2} © ¡ ¢ ¡ ¢ª + 2!0! 3! v {1, 2, 3} − v {1, 2}
260
BIJLAGE A. OPLOSSING VAN DE VRAGEN
Vraag 6.5
¡ ¢ ¡ ¢ ¡ ¢ Beschouw een co¨operatief spel met drie spelers. Neem v(∅) = v {1} = v {2} = v {3} = 0, ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ v {1, 2} = v {1, 3} = v {2, 3} = v {1, 2, 3} = 1. P Omdat v(N ) = 1 > 3i=1 v(i) = 0 is dit een essentieel spel. Verder is een voudig in te zien dat v(S) + v(N \S) = v(N ) = 1: dit is ook een spel met constante som. K(v) = {x1 , x2 , x3 ≥ 0; x1 + x2 ≥ 1; x1 + x3 ≥ 1; x2 + x3 ≥ 1; x1 + x2 + x3 = 1}. Als x ∈ K(v), dan volgt uit de ongelijkheden x1 + x2 ≥ 1; x1 + x3 ≥ 1; x2 + x3 ≥ 1 dat 2x1 + 2x2 + 2x3 ≥ 3, wat in strijd is met x1 + x2 + x3 = 1. De kern K(v) is dus leeg. Voor de bepaling van de nucleolus beschouwen we onderstaande tabel met voor iedere S ⊆ N de waarden v(S) − x(S), uitgedrukt in x1 en x2 (door voor x3 1 − x1 − x3 in te vullen). S
∅
{1}
{2}
{3}
{1, 2}
{1, 3}
{2, 3}
{1, 2, 3, }
v(S) − x(S)
0
−x1
−x2
x1 + x2 − 1
1 − x1 − x2
x2
x1
0
We proberen de vector, die we krijgen door de termen niet-stijgend te ordenen, lexicografisch te minimaliseren. Dit wordt bereikt door x1 = x2 = 1 − x1 − x2 te nemen, d.w.z. x1 = x2 = x3 = 13 . ¡ ¢ Dit geeft de vector 13 , 31 , 31 , 0, 0, − 13 , − 13 , − 13 . Voor de Shapley-waarden krijgen we: © ¡ ¢ ª 1!1! © ¡ ¢ ¡ ¢ª 1!1! © ¡ ¢ ¡ ¢ª φ1 (v) = 0!2! + 3! v {1, 3} − v {3} 3! v {1} − v(∅) + 3! v {1, 2} − v {2} © ¡ ¢ ¡ ¢ª + 2!0! 3! v {1, 2, 3} − v {2, 3} = φ2 (v) = = φ3 (v) = =
1 6 {0
+ 1 + 1 + 0} = 31 . © ¡ ¢ ª 0!2! 3! v {2} − v(∅) + + 1 + 1 + 0} = 31 . © ¡ ¢ ª 0!2! 3! v {3} − v(∅) +
1!1! 3!
© ¡ ¢ ¡ ¢ª v {1, 2} − v {1} +
1!1! 3!
1!1! 3!
© ¡ ¢ ¡ ¢ª v {1, 3} − v {1} +
1!1! 3!
1 6 {0
1 6 {0
© ¡ ¢ ¡ ¢ª v {2, 3} − v {3} © ¡ ¢ ¡ ¢ª + 2!0! 3! v {1, 2, 3} − v {1, 3} © ¡ ¢ ¡ ¢ª v {2, 3} − v {2} © ¡ ¢ ¡ ¢ª + 2!0! 3! v {1, 2, 3} − v {1, 2}
+ 1 + 1 + 0} = 31 .
Vraag 6.6
© ¢ P Uit Stelling 6.4 volgt dat het spel additief is, waaruit volgt dat v(S) = i∈S v( i} voor iedere © ¢ P S ⊆ N . Definieer w door: w(S) = v(S) − i∈S v( i} , S ⊆ N . Dan is w een nulspel en w is © ¢ equivalent met v, immers: neem K = 1 en yi = −v( i} , 1 ≤ i ≤ n. Omdat v additief is, is −v ook additief, dus tevens superadditief.
Index methode van Cauchy, 91
2-opt, 63
co¨ operatieve spelen, 222
3-opt, 64
combinatorische optimalisering, 31 achterwaartse pijlen, 167
complementariteitsrelaties, 110
actief schedule, 197
completion time, 196
actieve ongelijkheden, 98
concaaf, 81
additief spel, 224
quasi-concaaf, 81
algoritme van Jackson, 206
strict concaaf, 81
algoritme van Johnson, 204
strict quasi-concaaf, 81
algoritme van Moore, 200
concave functie, 75 convergentie
barri`ere methode, 139
kwadratische convergentie, 86
battle of the sexes, 218
lineaire convergentie, 86
begrensde variabele, 2
orde van convergentie, 86
Bellman-vergelijkingen, 143
superlineaire convergentie, 86
beperkt niet-lineair optimaliseringsprobleem,
convergentiefactor, 86
97
convex, 81
beperkt optimaliseringsprobleem, 75
quasi-convex, 81
bi-matrix spel, 221
strict convex, 81
binaire variabele, 31
strict quasi-convex, 81
blokkerende pijl, 170
convex optimaliseringsprobleem, 75
Boltzmann-verdeling, 68
convexe functie, 75
bovengrenzen, 171
convexe optimalisering, 115
branch-and-bound, 36, 51
covariantie, 77
branching, 38
covariantiematrix, 77
grootste co¨effici¨ent regel, 38
CPM, 158, 162
grootste fractie regel, 38
critical path method, 162
kleinste co¨effici¨ent regel, 38 kleinste fractie regel, 38
duale probleem, 116
bronrij, 41
duale simplex methode, 18, 21, 23
bruikbare richting, 97, 126
due date, 196
beste bruikbare richting, 126 EDD-regel, 197 capaciteiten, 166
eendimensionale optimalisatie, 86
Cauchy
effectief algoritme, 86 261
262
INDEX
efficient frontier, 77, 106
heuristieken, 55
elementaire matrix, 7
boom en koppeling, 61
elementaire padstroom, 175
boom verdubbeling, 59
elementaire rondestroom, 175
invoeg-heuristieken, 56
equivalent spel, 224
beste-invoeg heuristiek, 59
essentieel spel, 224
dichtstbijzijnde-stad heuristiek, 57
evenwichtspaar, 221
naaste-buur heuristiek, 56
flow shop scheduling, 196 permutatie schedule, 196 fractie snede, 41 Fritz John voorwaarden, 112 functie-approximatie, 86 Gantt-schema, 195 geassocieerd netwerk, 171 gegeneraliseerde gereduceerde gradi¨ent methode, 137 geheeltallige optimalisering, 31 gemengd geheeltallige optimalisering, 31 gemengd geheeltallige optimalisering, 31 gemengde strategie, 219 genetische algoritmen, 69 genormaliseerd spel, 224 gereduceerde gradi¨ent methode, 133
verste-stad heuristiek, 58 handschoenenspel, 218 herinversie, 8 herziene simplex methode, 5 Hessiaan, 78 heuristiek, 55 kwaliteit van een heuristiek, 55 interpolatie kwadratische interpolatie, 89 interval-reductie, 86 invoeg-heuristieken, 56 beste-invoeg heuristiek, 59 dichtstbijzijnde-stad heuristiek, 57 naaste-buur heuristiek, 56 verste-stad heuristiek, 58 inwendig punt, 139
gereduceerde kosten, 179
Jacobiaan, 137
gevoeligheidsanalyse, 11
Jensen
100%-regel, 13 doelfunctie, 12 kolom niet-basisvariabele, 14 nieuwe activiteit, 15 rechterlid, 13 globaal maximum, 79 globaal minimum, 79 Gomory’s fractie-snede, 41 Gomory’s gemengde snede, 46 gradi¨ent, 77 groeiketen, 167 Gulden Snede, 87 handelsreizigersprobleem, 49 branch-and-bound, 51
ongelijkheid van Jensen, 83 job shop scheduling, 196 Kantorovich ongelijkheid, 94 karakteristieke functie, 222 Karush-Kuhn-Tucker, 108 kern van een spel, 225 KKT, 108 kleinste kwadraten methode, 76 kortste paden methode van Bellman en Ford, 148 methode van Dantzig, 164 methode van Dijkstra, 145 methode van Floyd en Warshall, 150 kritieke pad methode, 162
INDEX
263
kritische activiteit, 162
methode van Ford en Fulkerson, 166
kwadratisch optimaliseringsprobleem, 75
methode van Newton, 90, 94
kwadratische convergentie, 86
methode van toelaatbare richtingen, 125
kwadratische optimalisering, 119
methode van Wolfe, 120, 134
methode van Wolfe, 120
methode van Zoutendijk, 127, 129 middelwaardestelling, 78
Lagrange functie, 102, 109
minimale kostenstromen, 173
Lagrange multiplier, 99 Lagrange relaxatie, 178
negatief definite matrix, 79
LAPT-regel, 202
negatief semi-definiete matrix, 79
lateness, 196
nettoproductie, 178
lijst-heuristiek, 208
netwerk, 143
Lin-Kernighan heuristiek, 66 lineaire convergentie, 86
geassocieerd netwerk, 171 Newton
lineaire regressie, 76
methode van Newton, 90, 94
lokaal maximum, 79
quasi-Newton methoden, 95
lokaal minimum, 79
nucleolus, 227
lokaal zoeken, 62
nulsomspel, 218
r-opt, 63
nulspel, 233
2-opt, 63
onbalans, 181
3-opt, 64
onbeperkt optimaliseringsprobleem, 75
Lin-Kernighan heuristiek, 66
ondergrenzen, 171
methode van Lin en Kernighan, 65
open shop scheduling, 196
LU-decompositie, 11 make span, 196 matrixspel, 217 bi-matrix spel, 221 waarde van het spel, 220 maximale stromen methode van Ford en Fulkerson, 166
optimaliseringsprobleem beperkt, 75 convex, 75 kwadratisch, 75 onbeperkt, 75 orde van convergentie, 86 orthogonaliteitsrelaties, 110
maximale stroom, 166
parallelle machines, 207
maximum
parametrische programmering, 11, 16
globaal, 79
doelfunctie, 16
lokaal, 79
rechterlid, 18
methode van Bellman en Ford, 148
penalty benadering, 100
methode van Cauchy, 91
permutatie schedule, 196
methode van Dantzig, 164
portefeuille, 77
methode van de sterkste stijging, 91
portfolio, 105
methode van Dijkstra, 145
portfolio analyse, 76
methode van Floyd en Warshall, 150
positief definiete matrix, 79
264
INDEX
positief semi-definite matrix, 79
genormaliseerd spel, 224
potentiaal, 178
kern van een spel, 225
primale-duale methode, 25
spel met constante som, 224
prisoners dilemma, 217
speling, 162
productvorm van de inverse, 5, 7
SPT-regel, 198
quasi-concaaf, 81 quasi-convex, 81 quasi-Newton methoden, 95
SPT1-LPT2-regel, 203 staplengte, 85 stationair punt, 80 sterke convergentie, 92
r-opt, 63
stopcriterium, 86
reductiegetal, 51
strict concaaf, 81
regel van Bland, 22
strict convex, 81
regulier, 99, 109
strict quasi-conconcaaf, 81
rekenkundig gemiddelde, 107
strict quasi-convex, 81
kwadratisch rekenkundig gemiddelde, 107
stroom, 166
rekenkundig-meetkundig gemiddelde, 84
maximale stroom, 166
relaxatie, 36
toelaatbare stroom, 166, 171
LP-relaxatie, 36 richting
volgemaake stroom, 171 waarde van de stroom, 166
bruikbare richting, 97
successieve approximatie, 148
toelaatbare richting, 97
superadditiviteit, 222
richtingsafgeleide, 77 richtingsvector, 85
superlineaire convergentie, 86 tabu search, 71
schaarse grafen, 170
tardiness, 196
schedule, 195
Tartaglia’s probleem, 76
actief schedule, 197 simplex methode duale simplex methode, 18, 21, 23 herziene simplex methode, 5 primale-duale methode, 25 simulated annealing, 68 snede, 41, 166
Taylorontwikkeling eerste orde, 78 tweede orde, 78 toelaatbare richtingen, 97, 125 methode van Wolfe, 134 methode van Zoutendijk, 127, 129 toelaatbare stroom, 171
capaciteit van de snede, 166
toelaatbare toewijzing, 225
Gomory’s fractie-snede, 41
topologisch sorteren, 160
Gomory’s gemengde snede, 46
transportprobleem, 190
minimale snede, 166
TSP, 49 branch-and-bound, 51
spel additief spel, 224
heuristieken, 55
equivalent spel, 224
boom en koppeling, 61
essentieel spel, 224
boom verdubbeling, 59
INDEX invoeg-heuristieken, 56 beste-invoeg heuristiek, 59 dichtstbijzijnde-stad heuristiek, 57 naaste-buur heuristiek, 56 verste-stad heuristiek, 58 tweepersonen nulsomspel, 218 unimodaal, 87 volgemaakte stroom, 171 voorwaartse pijlen, 167 wisselketen, 65 worst case analyse, 55 WSPT-regel, 198 zadelpunt, 219
265