BESLISKUNDE 2 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN



Vergelijkbare documenten
1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist is. Kruis de juiste bewering aan. (2pt. per juist antwoord).

BESLISKUNDE 2 EN 3 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

Optimalisering en Complexiteit, College 10. Begrensde variabelen. Han Hoogeveen, Utrecht University

Optimalisering en Complexiteit, College 11. Complementaire speling; duale Simplex methode. Han Hoogeveen, Utrecht University

Basiskennis lineaire algebra

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

3.2 Vectoren and matrices

TU/e 2DD50: Wiskunde 2 (1)

Branch-and-Bound en Cutting Planes

TW2020 Optimalisering

Bijlage A Simplex-methode

TW2020 Optimalisering

TU/e 2DD50: Wiskunde 2

OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

Samenvatting college 1-12

TW2020 Optimalisering

vandaag is Annie twee jaar jonger dan Ben en Cees samen

TU/e 2DD50: Wiskunde 2

Lineaire programmering

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur.

Tentamen Optimalisering (IN2520) Datum: 5 november 2004, Docent: Dr. J.B.M. Melissen

Bekijk nog een keer het stelsel van twee vergelijkingen met twee onbekenden x en y: { De tweede vergelijking van de eerste aftrekken geeft:

Lineaire Algebra voor ST

Tentamen: Operationele Research 1D (4016)

Lineaire Algebra (2DD12)

Tie breaking in de simplex methode

1. Het aantal optimale oplossingen van een LP probleem is 0, 1, of oneindig. 2. De vereniging van twee konvexe verzamelingen is niet convex. 3.

Tie breaking in de simplex methode

Universiteit Utrecht Departement Informatica

TW2020 Optimalisering

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk.

Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking

TW2020 Optimalisering

Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b

Stelsels Vergelijkingen

Lineaire Algebra voor ST

Lineaire Algebra TW1205TI. I.A.M. Goddijn, Faculteit EWI 12 februari 2014

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

CTB1002 deel 1 - Lineaire algebra 1

Stelsels lineaire vergelijkingen

l e x e voor alle e E

Optimalisering. Hoorcollege 4. Leo van Iersel. Technische Universiteit Delft. 23 september 2015

Tentamen combinatorische optimalisatie Tijd:

te vermenigvuldigen, waarbij N het aantal geslagen Nederlandse munten en B het aantal geslagen buitenlandse munten zijn. Het resultaat is de vector

Uitwerking Tweede Quiz Speltheorie,

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

UITWERKINGEN d. Eliminatie van a geeft d. Eliminatie van b,

Lineaire Algebra voor ST

Lineaire Optimilizatie Extra sessie. 19 augustus 2010

3 Wat is een stelsel lineaire vergelijkingen?

SPECIALE LINEAIRE MODELLEN

Ruimtewiskunde. college. Stelsels lineaire vergelijkingen. Vandaag UNIVERSITEIT TWENTE. Stelsels lineaire vergelijkingen.

A.1 Grafentheorie 64 BIJLAGE A. OPLOSSING VAN DE VRAGEN A.1. GRAFENTHEORIE 65. dan heeft deze kring in ieder knooppunt een even aantal takken).

Transshipment problemen Simplex methode en netwerk optimalisatie algoritmes. Luuk van de Sande Begeleider: Judith Keijsper 20 januari 2013

Faculteit der Economie en Bedrijfskunde

TW2020 Optimalisering

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Netwerkstroming. Algoritmiek

Jordan normaalvorm. Hoofdstuk 7

Aanvullingen bij Hoofdstuk 8

Optimalisering. Hoorcollege 4. Leo van Iersel. Technische Universiteit Delft. 28 september 2016

Gaap, ja, nog een keer. In één variabele hebben we deze formule nu al een paar keer gezien:

Stelsels differentiaalvergelijkingen

Lineaire vergelijkingen

l e x e voor alle e E

TW2020 Optimalisering

Hoofdstuk 13: Integer Lineair Programmeren

TW2020 Optimalisering

Universiteit Utrecht Departement Informatica. Examen Optimalisering op dinsdag 29 januari 2019, uur.

TENTAMEN LINEAIRE ALGEBRA 1 donderdag 23 december 2004,

Optimalisering. Hoorcollege 4. Leo van Iersel. Technische Universiteit Delft. 28 september 2016

III.2 De ordening op R en ongelijkheden

Voorbeeld simplexmethode. Max Z = 3x 1 + 2x 2 0.5x 3 z.d.d. 4x 1 + 3x 2 + x 3 10, 3x 1 + x 2-2x 3 8, en x 1, x 2, x 3 0.

Vrije Universiteit Faculteit der Economische Wetenschappen en Bedrijfskunde Afdeling Econometrie

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

1 Eigenwaarden en eigenvectoren

1. Een kortste pad probleem in een netwerk kan worden gemodelleerd als a. een LP probleem. b. een IP probleem. c. een BIP probleem. d.

Lineaire Algebra voor ST

Overzicht. Lineaire vergelijkingen. Onderwerpen & Planning. Doel. VU Numeriek Programmeren 2.5

Bijzondere kettingbreuken

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

1 Transportproblemen. 1.1 Het standaard transportprobleem

Lineaire Algebra voor ST

Linalg.nb 1. Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes!

PROEFEXAMEN LINEAIRE ALGEBRA dinsdag 22 november 2016

x = b 1 x 1 , b = x n b m i,j=1,1 en een vector [x j] n j=1 m n a i,j x j j=1 i=1

TW2020 Optimalisering

TW2020 Optimalisering

Kies voor i een willekeurige index tussen 1 en r. Neem het inproduct van v i met de relatie. We krijgen

INHOUDSOPGAVE LEERGANG BESLISKUNDE L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

Matrices en Grafen (wi1110ee)

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

Vector-en matrixvergelijkingen. Figuur: Vectoren, optellen

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

Lineaire Algebra WI1048WbMt. I.A.M. Goddijn, Faculteit EWI 4 september 2016

Modellen en Simulatie Speltheorie

Benaderingsalgoritmen

Transcriptie:

BESLISKUNDE L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

Voorwoord Dit vak is een voortzetting van het tweedejaarscollege Besliskunde. Een aantal andere mathematische beslissingsproblemen komt aan de orde en voor enkele onderwerpen uit Besliskunde worden aanvullende resultaten en methoden afgeleid. Hieronder volgt een beknopte beschrijving van de onderwerpen die worden behandeld. Hoofdstuk : Lineaire Optimalisering (deel ) Deel van Lineaire Optimalisering is reeds in Besliskunde besproken. In dit hoofdstuk komen andere resultaten aan de orde: implementatie aspecten, gevoeligheidsanalyse, de duale simplex methode en de primale-duale simplex methode. Hoofdstuk : 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 ééndimensionale 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ënt methode, de gegeneraliseerde gereduceerde gradiënt methode en de barrière 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 één 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 één 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öperatieve 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öperatieve spelen. Vragen en opgaven Het dictaat bevat 7 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 LINEAIRE OPTIMALISERING (deel ). Inleiding........................................... Implementatie aspecten................................... Begrensde variabelen................................. Herziene simplex methode en de productvorm van de inverse........ 5..3 Opgaven.......................................3 Gevoeligheidsanalyse....................................3. Veranderingen in één coëfficiënt van de doelfunctie...............3. Veranderingen in één coëfficiënt van het rechterlid.............. 3.3.3 Veranderingen in meer coëfficiënten van het rechterlid (of doelfunctie)... 3.3.4 Veranderingen in een kolom van een niet-basisvariabele........... 4.3.5 Toevoegen van een nieuwe activiteit/variabele................. 5.3.6 Parametrische programmering.......................... 6.3.7 Opgaven...................................... 0.4 De duale en de primale-duale simplex methode.....................4. De duale simplex methode.............................4. De primale-duale methode............................ 5.4.3 Opgaven...................................... 9 GEHEELTALLIGE LINEAIRE OPTIMALISERING 3. Model, formuleringen en voorbeelden.......................... 3.. Model en formuleringen............................. 3.. Voorbeelden.................................... 33..3 Opgaven...................................... 35. Branch-and-Bound.................................... 36.. Het generieke algoritme............................. 36.. Behandeling van en opsplitsing in deelproblemen............... 37..3 Opgaven...................................... 40.3 Sneden........................................... 4.3. Gomory s fractie-snede algoritme........................ 4.3. Gomory s snede voor gemengd geheeltallige optimalisering.......... 46 iii

iv INHOUDSOPGAVE.3.3 Opgaven...................................... 48.4 Handelsreizigersprobleem................................ 49.4. Inleiding en formuleringen............................ 49.4. Branch-and-Bound methode........................... 5.4.3 Heuristieken.................................... 55.4.4 Opgaven...................................... 7 3 NIET-LINEAIRE OPTIMALISERING 75 3. Inleiding.......................................... 75 3.. Klassificatie van niet-lineaire optimaliseringsproblemen............ 75 3.. Voorbeelden.................................... 76 3..3 Afgeleiden..................................... 77 3..4 Optimaliteitsvoorwaarden............................ 79 3..5 Convexiteit.................................... 8 3..6 Opgaven...................................... 85 3. Onbeperkte optimalisering................................ 85 3.. Inleiding...................................... 85 3.. Eéndimensionale optimalisatie......................... 86 3..3 Meerdimensionale optimalisatie......................... 9 3..4 Opgaven...................................... 96 3.3 Beperkte optimalisering: theorie............................ 97 3.3. Inleiding...................................... 97 3.3. Lagrange multipliers bij gelijkheidsbeperkingen................ 99 3.3.3 Karush-Kuhn-Tucker voorwaarden bij gelijkheden en ongelijkheden..... 08 3.3.4 Fritz John voorwaarden............................. 3.3.5 Convexe optimalisering en dualiteit....................... 5 3.3.6 Opgaven...................................... 8 3.4 Beperkte optimalisering: methoden........................... 9 3.4. Kwadratische optimalisering........................... 9 3.4. Methode van toelaatbare richtingen...................... 5 3.4.3 Gereduceerde gradiënt methode......................... 33 3.4.4 Gegeneraliseerde gereduceerde gradiënt methode............... 36 3.4.5 Barrière methode................................. 39 3.4.6 Opgaven...................................... 40 4 NETWERK OPTIMALISERING 43 4. Kortste paden....................................... 43 4.. Inleiding...................................... 43 4.. De methode van Dijkstra............................ 45 4..3 Methode van Bellman en Ford......................... 48 4..4 Methode van Floyd en Warshall........................ 50

INHOUDSOPGAVE v 4..5 De kortste gemiddelde ronde.......................... 5 4..6 Enkele toepassingen............................... 55 4..7 Opgaven...................................... 63 4. Netwerkstromen..................................... 66 4.. Maximale stromen................................ 66 4.. Minimale kostenstromen............................. 73 4..3 Enkele toepassingen............................... 87 4..4 Opgaven...................................... 90 5 SCHEDULING 95 5. Inleiding.......................................... 95 5. Eén machine....................................... 97 5.. Model A: L max................................ 97 5.. Model B: n j= w jc j............................ 98 5..3 Model C: n j= U j.............................. 99 5.3 Twee machines...................................... 0 5.3. Model D: O C max............................... 0 5.3. Model E: F C max............................... 03 5.3.3 Model F: J C max............................... 05 5.4 Parallelle machines.................................... 07 5.5 Verbanden met het handelsreizigersprobleem..................... 4 5.5. Model K: s jk C max.............................. 4 5.5. Model L: F m no wait C max......................... 4 5.6 Opgaven.......................................... 5 6 SPELTHEORIE 7 6. Inleiding.......................................... 7 6. Tweepersonen nulsomspel................................ 8 6.3 Bi-matrix spelen..................................... 6.4 Coöperatieve spelen................................... 6.5 Opgaven.......................................... 33 A OPLOSSING VAN DE VRAGEN 35 A. Hoofdstuk........................................ 35 A. Hoofdstuk........................................ 39 A.3 Hoofdstuk 3........................................ 44 A.4 Hoofdstuk 4........................................ 49 A.5 Hoofdstuk 5........................................ 56 A.6 Hoofdstuk 6........................................ 58

vi INHOUDSOPGAVE

Hoofdstuk LINEAIRE OPTIMALISERING (deel ) In Besliskunde 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.. Inleiding In deze paragraaf herhalen we in het kort een aantal zaken uit Besliskunde. De standaard formulering van het LP-probleem luidt in matrixnotatie: max{p T x Ax b; x 0}, waarbij p, x R n, b R m en A een m n-matrix is (.) Met verschilvariabelen y = b Ax krijgen we de equivalente formulering max{p T x Ax + y = b; x, y 0} (.) Bij ieder LP-probleem hoort een duaal probleem. Het duale probleem van (.) is min{b T u A T u p; u 0} (.3) en met verschilvariabelen v = A T u p geeft dit de equivalente formulering min{b T u A T u v = p; u, v 0} (.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 (.), waarvoor bovendien geldt dat B b 0. De overige kolommen vormen een m n-deelmatrix N. De bijbehorende variabelen x B resp. x N heten de basisvariabelen resp. de niet-basisvariabelen.

HOOFDSTUK. LINEAIRE OPTIMALISERING (DEEL ) Het tableau heeft de vorm x N x B B b B N x 0 p T B B b d T N waarbij d T N = pt B B N p T N, en de bijbehorende oplossing luidt: x B = B b, x N = 0. Het tableau bevat tevens een bijbehorende duale oplossing: u B = 0, u N = d N. Om de notatie simpel te houden, voeren we in: b = B b, A = B N, p = p T B B b en d = p T B B N p T N. Het stelsel is dan, tezamen met de doelfunctie, te schrijven als: (x B ) i = b i n j= a ij (x N) j, i =,,..., m p T x = p (.5) n j= d j (x N) j Als d j 0 voor alle j, dan is x B = b, x N = 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 = min j d j ). b. Bepaal een pivotrij, d.w.z. bepaal een r met b r a = min{ b i rk a a ik > 0}. ik c. Verwissel de variabelen (x B ) r en (x N ) 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 r en/of j k trekken we a rj a ik a rk g. Vervang het pivotelement a rk door zijn inverse a. rk In het simplex tableau staat ook informatie over het duale probleem te lezen. Naar analogie van (.5) moet daarvoor de j-de kolom van het simplex tableau moet gelezen worden als (de voorste kolom met b slaat op de doelfunctie): (u N ) j = d j + m i= a ij (u B) i, j =,,..., n b T u = p + (.6) m i= b i (u B) i af.. Implementatie aspecten.. Begrensde variabelen Vaak zijn variabelen begrensd, zowel naar beneden als naar boven, zeg l j x j u j. Door over te gaan op de variabele x j = x j l j, kunnen we l j x j u j vervangen door 0 x j u j l j. We

.. IMPLEMENTATIE ASPECTEN 3 kunnen dus veronderstellen dat alle ondergrenzen 0 zijn en aannemen dat begrensde variabelen van het type 0 x j u j zijn. Deze beperkingen kunnen natuurlijk op de gewone manier behandeld kunnen worden met een verschilvariabele: x j + y j = u j ; x j, y j 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 u j (hun bovengrens). Zoals een niet-basisvariabele die op de ondergrens (0) staat een potentiële pivotkolom is als er in de onderste rij een negatief getal staat, zo is een niet-basisvariabele x j die op zijn bovengrens (u j ) staat een potentiële 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 x j := u j x j hebben we weer de gewone situatie. Ook bij de keuze van de pivotrij moet rekening worden gehouden met het feit dat x j niet groter dan u j mag worden, d.w.z. voor begrensde basisvariabelen (x B ) i met in de pivotkolom een negatief getal moet gelden dat b i a ik (x N) k (u B ) i d.w.z. (x N ) k (u B) i b i a ik Nadat we een pivotkolom hebben gekozen zijn er vier mogelijke gevallen: Geval : met a ik < 0. De niet-basisvariabele (x N ) k van de pivotkolom staat op zijn ondergrens en loopt tegen zijn bovengrens aan. Deze variabele (x N ) 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 (x N ) k := (u N ) k (x N ) k, d.w.z. (x B ) i = b i j k a ij(x N ) j a ik (x N) k = {b i a ik (u N) k } j k a ij(x N ) j + a ik {(u N) k (x N ) k }. Voor de transformaties geldt dus: (x N ) k komt op zijn bovengrens, de pivotkolom verandert van teken en van het getransformeerde rechterlid wordt (u N ) k keer de pivotkolom afgetrokken. Geval : De niet-basisvariabele (x N ) 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 (x N ) k, d.w.z. (x B ) i = b i j k a ij(x N ) j a ik {(u N) k (x N ) k } = {b i a ik (u N) k } j k a ij(x N ) j + a ik (x N) k. Voor de transformaties geldt dus: (x N ) k komt op zijn ondergrens, de pivotkolom verandert van teken en van het getransformeerde rechterlid wordt (u N ) k keer de pivotkolom afgetrokken. Geval 3: Een basisvariabele (x B ) 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. LINEAIRE OPTIMALISERING (DEEL ) Geval 4: Een basisvariabele (x B ) r loopt tegen zijn bovengrens aan. Merk op dat in dit geval de pivot a rk negatief is. De gewone simplex transformaties volgen uit de vergelijking (x B ) r = b r j a rj (x N) j, die equivalent is met (u B ) r (x B ) r = (u B ) r b r + j a rj(x N ) j Voor de transformaties geldt dus: Voer de gewone transformaties uit na de volgende veranderingen: neem (u B ) 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 en er met vrijwel geen werk een nieuw tableau gevonden wordt. Voorbeeld. Beschouw het volgende LP-probleem: max x + x + 3x 3 + x 4 + x 5 x + x 3 x 5 + x 6 = x + x 4 + x 5 + x 7 = x + x x 3 x 4 + x 8 = onder de voorwaarden 0 x ; 0 x ; 0 x 3 ; 0 x 4 3; 0 x 5 ; 0 x 6 ; 0 x 7 3; 0 x 8. We starten met als basisvariabelen x 6, x 7 en x 8. Als de variabele x j op zijn bovengrens staat, dan noteren we dat met x j. 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): x () x () x 3 () x 4 (3) x 5 () x 6 () - 0 0 - x 7 (3) 0-0 x 8 () - - 0 x 0 0 - - -3 - - Geval 4: x 8 loopt tegen zijn bovengrens aan. Aanpassing van b 3 en de derde rij geeft: x () x () x 8 () x 4 (3) x 5 () x 6 () - - - - x 7 (3) 0-0 x 3 () - - 3 x 0-5 - 7 0 3 - - Geval 3: dit geeft de gewone transformatie. x () x () x 3 () x 4 (3) x 5 () x 6 () - 0 0 - x 7 (3) 0-0 x 8 () - - 0 x 0 0 - - -3 - - Nu voeren we de gewone pivottransformaties uit met verwisseling van x 8 en x 3. x () x 6 () x 8 () x 4 (3) x 5 () x () - - - - x 7 (3) 3 - - 0 0 x 3 () - 0 0 - x 0 5-6 7 - -4-8 Geval 4: x 3 loopt tegen zijn bovengrens aan. Aanpassing van b 3 en de derde rij geeft:

.. IMPLEMENTATIE ASPECTEN 5 x () x 6 () x 8 () x 4 (3) x 5 () x () - - - - x 7 (3) 3 - - 0 0 x 3 () 0-0 0 x 0 5-6 7 - -4-8 Nu voeren we de gewone pivottransformaties uit met verwisseling van x 3 en x 5. x () x 6 () x 8 () x 4 (3) x 3 () x () 0 - - x 7 (3) 3 - - 0 0 x 5 () 0-0 0 x 0 5 - - -4 8 Geval 4: x loopt tegen zijn bovengrens aan. Aanpassing van b en de eerste rij geeft: x () x 6 () x 8 () x 4 (3) x 3 () x () - 0 x 7 (3) 3 - - 0 0 x 5 () 0-0 0 x 0 5 - - -4 8 Nu voeren we de gewone pivottransformaties uit met verwisseling van x en x 4. x () x 6 () x 8 () x () x 3 () x 4 (3) - 0 - x 7 (3) 3 - - 0 0 x 5 () 0-0 0 x 0 9 - - 4 0 Geval 3: dit geeft de gewone transformatie. x 5 () x 6 () x 8 () x () x 3 () x 4 (3) - - x 7 (3) 3-0 x () 0-0 0 x 0 9-3 4 Geval : x 6 komt op zijn bovengrens. x 5 () x 6 () x 8 () x () x 3 () x 4 (3) - x 7 (3) - - 0 x () 0 0 x 0 3 4 Dit tableau is optimaal. De optimale oplossing luidt: x = ; x = ; x 3 = ; x 4 = ; x 5 = 0; x 6 = ; x 7 = ; x 8 =. De optimale waarde is. Vraag. Beschouw het volgende LP-probleem: { max 3x + x x + x 0; 0 x 4 5x + 3x 7; 0 x 5 }. Los dit probleem op met de simplex methode voor begrensde variabelen... 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ënter 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. LINEAIRE OPTIMALISERING (DEEL ) 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 x k die in de basis gaat komen moet een negatief element in de onderste rij hebben, d.w.z. de gereduceerde kosten zijn negatief: v k := p T BB a k p k < 0. Meestal kiezen we voor de pivotkolom de kolom waarvan het getal v k het meest negatief is. Als we geen tableau hebben, dan moeten we de waarde p T B B a k p k berekenen. Daarvoor hebben we B nodig. Als we B hebben, dan is het eenvoudig om p T B B a k p k 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 x k vanaf 0 steeds groter maken. Hiervoor moeten we de quotiënten nemen van {B b} i en {B a k } i, voor zover dit laatste getal positief is, en van deze quotiënten de kleinste nemen (als alle getallen {B a k } i niet-positief zijn, dan is er een oneindige oplossing). Als i = r behoort bij het kleinste quotiënt, dan geldt voor de nieuwe oplossing: x k = {B b} r {B a k } r en x i = {B b} i {B a k } i x k 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 berekend wordt. Laat B nieuw de nieuwe basismatrix zijn en B oud de oude. Dan geldt dat B nieuw uit B oud wordt verkregen door de r-de kolom van B oud te vervangen door de kolom a k, d.w.z. (zie Vraag.) B nieuw = B oud E, waarbij E de eenheidsmatrix is met in de r-de kolom de vector B oud a k. Noteren we B oud a k met a k, dan kunnen we schrijven: 0 a k 0 0 0 a k 0 0 E =. 0 0 a mk 0 De relatie B nieuw = B oud E maakt het mogelijk om op een efficiënte manier de inverse van B nieuw uit de inverse van B oud te bepalen, immers Bnieuw = E B oud. Er geldt (zie Vraag.3) dat 0 a k a 0 0 rk 0 a k a 0 0 rk E = a. rk 0 0 a mk a 0 rk

.. IMPLEMENTATIE ASPECTEN 7 waarbij het element a in de r-de rij (en r-de kolom) staat. Omdat ook E slechts in één kolom rk van de eenheidsmatrix verschilt, kan deze worden opgeborgen als vector: we onthouden de r-de vector van E en het getal r. E heet de elementaire matrix. Laat B t de basismatrix zijn na t iteraties en laat B t van B t verschillen in de r-de kolom, die vervangen wordt door de kolom a k. Dan geldt B t = B t E t, waarbij E t de eenheidsmatrix is met in de r-de kolom de vector B t a k. Omdat we starten met als basis de eenheidsmatrix, d.w.z. B 0 = I, geldt B t = E E E t, zodat B t = Et Et E E. 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 verloopt. Dit kan zijn c T E, de navermenigvuldiging, of E c, de voorvermenigvuldiging. De r-de vector van E, d.w.z. de vector die in het algemeen geen eenheidskolom is, noteren we met g. Navermenigvuldiging 0 g 0 0 0 g 0 0 c T E = (c, c,..., c m ) g r 0 0 g m 0 Dus c T E wordt uit c verkregen door c r te vervangen door m i= c ig i. Voorvermenigvuldiging 0 g 0 0 c 0 g 0 0 c E... c = = g r c r... 0 0 g m 0 c m = (c, c,..., c r, m i= c ig i, c r+,, c m ). c + g c r c g c + g c r c g......... = + c g r c r 0 r. g r......... c m + g m c r Dus E c wordt uit c verkregen door eerst de r-de component van c gelijk aan 0 te maken en dan bij deze vector c r keer de vector g op te tellen. Bepaling duale variabelen v j In de t-de iteratie berekenen we eerst p T B B t, en wel op de volgende manier. Bepaal eerst, met navermenigvuldiging, u T = p T B E t. Bepaal vervolgens, eveneens met navermenigvuldiging, u T Et, etc. Op deze wijze berekenen we in t stappen p T BB t = p T BEt Et E E. c m g m

8 HOOFDSTUK. LINEAIRE OPTIMALISERING (DEEL ) Vervolgens kunnen eenvoudig voor iedere niet-basisvariabele x j de getallen v j = p T BBt a j p j worden berekend. Van de niet-basisvariabele x j = (x B ) r, die net een niet-basisvariabele is geworden, weten we dat v j > 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 x k zijn. Dan moet eerst a k = B t a k = E t E t E E a k worden bepaald. Deze vector krijgen we door de vector a k t keer voor te vermenigvuldigen, met E, E tot en met E t. 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 één voorvermenigvuldiging met Et 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: ( g t = Update van de inverse van de basis a k a rk, a k a,, rk a rk,, a ) T mk. a rk 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 uit te rekenen als product van de elementaire matrices: B t = Et Et E E. Vervolgens kan hier in volgende iteraties weer op worden teruggerekend : deze Bt dezelfde rol als B0 = I in de eerste iteraties. vervult dan Algoritme. De (t + )-ste iteratie van de productvorm algoritme Invoer: De elementaire matrices E, E,..., E t, gegeven door de vectoren g, g,..., g t en de getallen r, r,..., r t. Uitvoer: De elementaire matrix E t+, gegeven door de vector g t+ en het getal r t+ ; of de conclusie dat de huidige oplossing optimaal is; of de conclusie dat er een oneindige optimale oplossing is.. Update b door voorvermenigvuldiging met de elementaire matrix E t.. Bepaal u T = p T B B door herhaalde navermenigvuldiging met Et, Et tot en met E.

.. IMPLEMENTATIE ASPECTEN 9 3. Bepaal voor de niet-basisvariabelen x j (behalve die er het laatst bij is gekomen) de duale variabelen v j = u T a j p j. 4. Als alle v j s niet-negatief zijn: de oplossing is optimaal en stop. Anders: Kies k zdd. v k v j voor alle niet-basisvariabelen x j. 5. Bepaal a k = B a k door herhaalde voorvermenigvuldiging met E, E tot en met E t. 6. Als a k 0: er is een oneindige oplossing en stop. { Anders: bepaal pivotrij r zdd. = min a ik }. > 0 b r a rk 7. Bepaal de vector g t+ en de component r t+ die E t+ vastleggen. b i a ik Oplossing duale probleem Uit de algemene theorie van de lineaire optimalisering volgt dat v B = 0, v T N = pt B B N p T N de oplossing van het duale probleem is. Voorbeeld. Beschouw het volgende LP-probleem: 4x + x + x 3 = ; x, x 0 max x + 4x x + x 4 = ; x 3, x 4 0 x + 3x + x 5 = ; x 5 0. Iteratie : De basisvariabelen zijn x 3, x 4 en x 5, en E 0 = I. b = (,, ) T ; u = (0, 0, 0) T. 4 v = (0, 0, 0) = ; v = (0, 0, 0) 0 4 = 4. 3 k = (bij x ); a = a = (4,, ) T ; min{ 4,, } = en r = (bij x 4 ); g = ( 4,, ) T. Iteratie : De basisvariabelen zijn x 3, x en x 5. 4 4 b = 0 + = ; ut = (0,, 0)E = (0,, 0). 8 4 v = (0,, 0) 0 4 = 4; k = (bij x ); a = E a = 0 + 0 = 0. 3 3 3 min{ 4,, 8 3 } = en r = (bij x 3 ); g = (, 0, 3 )T.

0 HOOFDSTUK. LINEAIRE OPTIMALISERING (DEEL ) Iteratie 3: De basisvariabelen zijn x, x en x 5. 0 b = + 4 0 = ; ut = (4,, 0)E E = (7,, 0)E = (7, 7, 0). 8 3 0 v 4 = (7, 7, 0) 0 = 7; k = 4 (bij x 4). a 4 = E E a 4 = 0 0 4 E 0 + 4 0 = E 0 = 4 0 =. 4 min{,, 4 } = en r 3 = 3 (bij x 5 ). g 3 = (, 4, 4 )T. Iteratie 4: De basisvariabelen zijn x, x en x 4. b = + 3 =. 0 4 4 u T = (4,, 0)E 3 E E = (4,, 7 4 )E v 3 = ( 35 8, 0, 7 4 ) 0 0 = 35 8. 0 3 E 3 = ( 35 8,, 7 4 )E = ( 35 8, 0, 7 4 ). Het huidige tableau is optimaal. De optimale oplossing luidt x B = b en x N = 0, d.w.z. x = 3, x = 3, x 4 =, x 3 = x 5 = 0. Het duale probleem luidt: 4u + u + u 3 min u + u + u 3 u + 3u 3 4 u, u, u 3 0 met als optimale oplossing u = 35 8, u = 0, u 3 = 7 4. 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 + rijen en n + 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(m ). In de meeste practische problemen is n vele malen groter dan m, zodat dit een aanzienlijk verschil geeft.

.3. GEVOELIGHEIDSANALYSE 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. Vraag. Laat zien dat als x k in de basis komt op plaats r, dan geldt: B nieuw = B oud E, waarbij E de eenheidsmatrix is met in de r-de kolom de vector B oud a k. Vraag.3 Toon aan dat als x k in de basis komt op plaats r, de bijbehorende elementaire matrix E de eenheidsmatrix is, waarin de r-de kolom vervangen is door een kolom met op plaats r het element a rk en op de plaatsen i r de elementen a ik a. rk..3 Opgaven Opgave. Bepaal met de simplex methode voor begrensde variabelen een optimale oplossing van { } x + x + x 3 6; 0 x 3 max x + x + x 3. x x + x 3 ; 0 x 3 Opgave. Bepaal met de herziene simplex methode een optimale oplossing van x + x + x 3 4; max x + x x 3 x + x x 3 6; x, x, x 3 0. x + x 5; Geef ook het duale probleem en de optimale oplossing ervan..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:. veranderingen in één coëfficiënt van de doelfunctie.. veranderingen in één coëfficiënt van het rechterlid. 3. veranderingen in meer coëfficiënten van het rechterlid of doelfunctie. 4. veranderingen in een kolom van een niet-basisvariabele. 5. toevoegen van een nieuwe activiteit (variabele). 6. parametrische programmering. Voor deze technieken zie bijvoorbeeld: M.S. Bazaraa, J.J. Jarvis and H.D. Sherali, Linear programming and network flows, Wiley, 990.

HOOFDSTUK. LINEAIRE OPTIMALISERING (DEEL ) Beschouw het LP-probleem in de gedaante max j p jx j met de volgende beperkingen: j a ijx j b i, i I, met b i 0 voor alle i I ; j a ijx j b i, i I, met b i < 0 voor alle i I ; j a ijx j = b i, i I 3, met b i 0 voor alle i I 3 ; x j 0, j =,,..., n. Door niet-negatieve verschilvariabelen y i, i I I, en schijnvariabelen z i, i I I 3, in te voeren schrijven we het stelsel in de vorm: j a ijx j + y i = b i, i I ; j a ijx j y i + z i = b i, i I ; j a ijx j +z i = b i, i I 3 ; x j 0, j =,,..., n; y i 0, i I I ; z i 0, i I I 3. Al deze variabelen stoppen we in één grote vector x, die we opsplitsen in een vector van basisvariabelen x B en een vector van niet-basisvariabelen x N. Het optimale tableau heeft de gedaante: x N x B B b B N x 0 p T B B b p T B B N p T N x B = B b 0 u N = p T B B N p T N 0, waarbij de niet-negativiteit niet hoeft te gelden voor de elementen in de kolommen van de schijnvariabelen..3. Veranderingen in één coëfficiënt 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 u N in gevaar komen. Voor iedere coëfficiënt p j van de doelfunctie kunnen we onder- en bovengrenzen berekenen waarvoor de huidige oplossing x B = B b, x N = 0 nog steeds optimaal is. Stel p j wordt vervangen door p j + λ, d.w.z. in plaats van de vector p hebben we de vector p met { p pi als i j; i = p j + λ als i = j. Laat e i de i-de eenheidsvector zijn. We onderscheiden de volgende twee gevallen: { p a. x j is een basisvariabele, zeg x j = (x B ) k, zodat: N = p N ; p B = p B + λe k. u N = (p B) T B N (p N) T = {p B + λe k } T B N p T N = u N + λ(e k ) T B N = u N + λ{b 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ëfficiënten die behoren bij de z-variabelen.

.3. GEVOELIGHEIDSANALYSE 3 b. x j is een niet-basisvariabele, zeg x j = (x N ) k, zodat: { p N = p N + λe k ; p B = p B. u N = (p B) T B N (p N) T = (p B ) T B N {p T N + λe k } T = u N λ(e k ) T. Voor de niet-negativiteit van u N moet dus gelden λ (u N) k, d.w.z. de huidige oplossing blijft optimaal voor p j p j + (u N ) k..3. Veranderingen in één coëfficiënt van het rechterlid Veranderingen in het rechterlid hebben geen invloed op de niet-negativiteit van u N, echter wel op die van x B = B b. Ook nu kunnen we voor iedere coëfficiënt b i 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 b j wordt vervangen door b j + λ, d.w.z. in plaats van de vector b hebben we de vector b met b i = { bi als i j b j + λ als i = j. Als i I, dan beschouwen we y i als de bij de i-de gelijkheid behorende variabele; als i I I 3, dan is z i de bijbehorende variabele. Indien i I, dan is het rechterlid -b i. 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 = e j, zodat geldt: B b = B {b + λe j } = B b + λb B k = B b + λe k. Voor de niet-negativiteit moet dus gelden: λ {B b} k, d.w.z. de huidige oplossing blijft optimaal voor b j b j (x B ) k. b. De bij de j-de gelijkheid behorende variabele is een niet-basisvariabele, zeg op plaats k: Dan is N k = e j, zodat geldt: B b = B {b + λe j } = B b + λb N k. B 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..3.3 Veranderingen in meer coëfficiënten 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 u N, echter wel op die van B b. Laat x 0 de optimale oplossing van het oorspronkelijke probleem zijn en x i een optimale oplossing voor het probleem met b vervangen door b + max i e i, waarbij max i de maximale waarde (als ( 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 Bx i = b + max i e i, i m. Veronderstel dat ( b) i = λ i max i met λ i 0, i m en m i= λ i. Laat λ 0 = m i= λ i, max 0 = 0 en beschouw x = m i=0 λ ix i. Dan geldt: x 0 en Bx = m i=0 λ ibx i = m i=0 λ i(b + max i e i ) = b + m i= λ i( max i e i ) = b + b = b.

4 HOOFDSTUK. LINEAIRE OPTIMALISERING (DEEL ) 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 b i, heet de 00%-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 p j. Vraag.4 a. Los met de simplex methode het volgende probleem op: { x + x 3 8; max x + x + 3x 3 x + x + x 3 = 8; x, x, x 3 0 }. b. Voer de gevoeligheidsanalyse uit op: - de coëfficiënten van x en x uit de doelfunctie; - de beide coëfficiënten van het rechterlid..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 (x N ) k. Dit heeft - voor de controle op toelaatbaarheid en optimaliteit - alleen gevolgen voor de waarde van (u N ) k (ga dit zelf na). Uit het simplex tableau volgt dat de nieuwe waarde, zeg (u N ) k, voldoet aan (u N ) k = p T B B a (p N ) k. Er geldt dat p T B B = u T, immers (analoog aan wat we hebben gedaan bij verandering in één coëfficiënt van het rechterlid): als de bij de j-de gelijkheid behorende variabele een basisvariabele is, zeg op plaats k, d.w.z. B k = e j, ofwel e k = B j, dan geldt: u j = (u B ) k = 0 en ook {p T BB } j = p T BB j = p T Be k = (p B ) k = 0; als de bij de j-de gelijkheid behorende variabele een niet-basisvariabele is, zeg op plaats k, d.w.z. N k = e j, dan geldt: u j = (u N ) k = p T BB N k (p N ) k = p T BB e j 0 = {p T BB } j. We kunnen dus schrijven: (u N ) k = u T a (p N ) 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 a. Om deze nieuwe kolom te berekenen moeten we dus B kennen. De matrix B kan uit het simplex tableau worden afgelezen en wel als volgt:

.3. GEVOELIGHEIDSANALYSE 5 a. Als de variabele bij de i-de beperking (y i als i I, anders z i ) een niet-basisvariabele is en hoort bij de k-de kolom van het tableau, dan geldt N k = e i, dus B N k = B e i = {B } i, d.w.z. de i-de kolom van B 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 = e i, dus B B k = B e i, dus e k is de i-de kolom van B..3.5 Toevoegen van een nieuwe activiteit/variabele Het toevoegen van een nieuwe activiteit met kolom a en coëfficiënt 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 a resp. u T a p. Voorbeeld.3 Beschouw het volgende LP-probleem: x + x 3 5; x 0 max x + x + x 3 x + x 3 ; x 0 x x + 3x 3 = ; x 3 0. Het optimale simplex tableau van dit probleem is: x z z 3 y y - - 3 x 0-3 x 3 5 0 0 x 0 3 0-5 We zullen de volgende veranderingen bekijken:. de coëfficiënten van de variabelen x en x in de doelfunctie;. de coëfficiënten b en b van het rechterlid; 3. een nieuwe kolom voor de variabele x.. De coëfficiënten van de x en x in de doelfunctie: p : λ : de huidige oplossing blijft optimaal voor p + = 3. p : (, 5 ) + λ(, 3 ) 0, d.w.z. λ : de huidige oplossing blijft optimaal voor p = 0.. De coëfficiënten van b en b in de doelfunctie: b : (, 3, 5) + λ(, 3, ) 0, d.w.z. λ : de huidige oplossing blijft optimaal voor b 5 = 4. b : (, 3, 5) + λ(, 0, 0) 0, d.w.z. λ : de huidige oplossing blijft optimaal voor b + = 3 (merk op dat de tweede beperking in de standaardschrijfwijze luidt: x x 3 y + z = ). 3. Veronderstel vervolgens dat de kolom van x wordt veranderd in a = (0, 0, ). Dan geldt: (u N ) = u T a (p N ) = ( 5, 0, )(0, 0, )T =, dus het tableau is niet meer optimaal. Uit het tableau volgt B :

6 HOOFDSTUK. LINEAIRE OPTIMALISERING (DEEL ) B = 3 0 0 0 Het nieuwe tableau wordt:, dus B a = 3 0 0 0 0 0 =. 0 y 3 x x z z 3 y 0 3 x 3 5 0 0 0 x 0 3 0 5 y z z 3 y x - - x 6-0 x 3 5 0 0 0 x 0 - - 3 De optimale oplossing is: x =, x = 6, x 3 = 5 met waarde. De duale oplossing is: u = 3, u =, u 3 =..3.6 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} (.7) Als we het rechterlid parametriseren, dan beschouwen we het probleem max{p T x Ax b + λc; x 0} (.8) Parametrische programmering van de doelfunctie We beschouwen probleem (.7) en we gaan uit van een optimaal tableau voor de oorspronkelijke doelfunctie p T x met bijbehorende optimale basis B. Dan is x B = B b onveranderd, dus nog steeds een toelaatbare oplossing. Voor de gewijzigde u N, zeg u N is de gewijzigde, geldt: u N = (p B + λq B ) T B N (p N + λq N ) T = u N + λ(qbb T N qn). T 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 (x N ) j, zal (u N ) j + λ(qbb T N qn) T 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.

.3. GEVOELIGHEIDSANALYSE 7 Voorbeeld.4 { max ( λ)x + ( λ)x + ( 3 + λ)x 3 x + x + x 3 5; x, x 0 x + x 3x 3 ; x 3 0 }. Het optimale tableau voor λ = 0 staat hieronder (de kolom van de z is weggelaten, want deze doet niet meer ter zake). De rij bij p T 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(λ). y x x 3 y 3 * 3 - x 5 u(p) 0 3 5 u(q) -5 - - - Dit tableau is optimaal voor λ met bijbehorende oplossing: x = 5, x = x 3 = 0 en z(λ) = 0 5λ. y x x 3 y 3 3 - x - - *3 u(p) 4 - -3 9 u(q) - -4 Dit tableau is optimaal voor λ 9 4 met bijbehorende oplossing: x =, x = x 3 = 0 en z(λ) = 4 λ. y 3 3 3 y x x 7 3 3 3 x 3 3 3 3 u(p) - 0-3 u(q) 3 3 3 Dit tableau is optimaal voor 9 4 λ 3 met bijbehorende oplossing: x = x = 0, x 3 = 3 en z(λ) = + 3 λ. 4 3 y x x y 3 3 7 x 3 5 u(p) -5-3 -7-5 u(q) 5 3 Dit tableau is optimaal voor λ 3 met bijbehorende oplossing: x = x = 0, x 3 = 5 en z(λ) = 5 + 5λ. Stelling. 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 λ en λ, en laat λ = αλ + ( α)λ, waarbij α [0, ]. Veronderstel dat x en x optimale oplossingen zijn bij λ, resp. λ, en laat x een optimale oplossing bij λ zijn. We moeten bewijzen dat z(λ) αz(λ ) + ( α)z(λ ). αz(λ ) + ( α)z(λ ) = α(p + λ q) T x + ( α)(p + λ q) T x α(p + λ q) T x + ( α)(p + λ q) T x = { p + {αλ + ( α)λ }q } T x = (p + λq) T x = z(λ).

8 HOOFDSTUK. LINEAIRE OPTIMALISERING (DEEL ) Parametrische programmering van het rechterlid We beschouwen nu probleem (.8) en we gaan weer uit van een optimaal tableau voor het oorspronkelijke rechterlid b met bijbehorende optimale basis B. Dan is u T N = pt B B N p T N onveranderd, dus nog steeds een duaal toelaatbare oplossing. Voor de gewijzigde primale oplossing, zeg x B, geldt x B = B (b + λc) = B b + λb c. Om in te zien of de huidige oplossing ook toelaatbaar is, moeten we nagaan voor welke waarden van λ de vector B b+λb 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 (x B ) i, zal B b + λb 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.4 worden behandeld, maar we vermelden nu reeds zonder bewijs hoe een iteratie verloopt. Algoritme. 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.. Als b i 0 voor alle i: ga naar stap 7.. 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 4. Bepaal de pivotkolom k zdd. d k a = min j j rk a rj a rj < 0. 5. Voer een pivotoperatie uit: Verwissel de variabelen (x B ) r en (x N ) k. b r := b r a ; b i rk a rj := a rj a rk 6. Ga naar stap. := b i b ra ik a, i r; d k := d k rk a ; d j rk, j k; a ik := a ik, i r; a ij := a ij a rj a ik a rk := d j a rj d k a, j k. rk a rk, j k, i r; a rk := a. rk 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+. De duale oplossing is op de bekende wijze af te leiden uit de onderste rij.

.3. GEVOELIGHEIDSANALYSE 9 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.5 { max x + 3x x + x 6 λ; x 0 x + x 6 + λ; x 0 }. Het optimale tableau voor λ = 0 staat hieronder (voor het rechterlid hebben we nu twee kolommen: de getransformeerde b en c ). b c y y x - 3 x 4 0 3 x 0 4-5 3-3 3 3 De optimale oplossing van dit tableau luidt: x = λ, x = 4 met waarde 4 λ. Dit tableau is optimaal voor λ. Voor λ > wordt het rechterlid in de eerste rij negatief: de eerste rij wordt pivotrij en de kolom van y de pivotkolom. b c y x y -6 3 - -3 x 6 - x 0 8-3 3 Optimaal tableau voor λ > met oplossing: x = 0, x = 6 λ en waarde 8 3λ. Voor λ > 6 wordt het rechterlid in de tweede rij negatief. Omdat er in de tweede rij geen negatief element staat, is er geen pivotkolom: voor λ > 6 is het probleem ontoelaatbaar. Stelling. 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 λ en λ, en laat λ = αλ + ( α)λ, waarbij α [0, ]. We moeten bewijzen dat z(λ) αz(λ ) + ( α)z(λ ) en doen dat via het duale probleem. Veronderstel dat u en u optimale oplossingen van het duale probleem zijn bij λ, resp. λ, en laat u een optimale oplossing bij λ zijn. αz(λ ) + ( α)z(λ ) = α(b + λ c) T u + ( α)(b + λ c) T u α(b + λ c) T u + ( α)(b + λ c) T u = { b + {αλ + ( α)λ }c } T u = (b + λc) T u = z(λ). Vraag.5 Bepaal voor alle waarden van λ de optimale oplossing van het LP-probleem max { ( λ)x + (3 λ)x x + x 6; x 0 x + x 6; x 0 }.

0 HOOFDSTUK. LINEAIRE OPTIMALISERING (DEEL ).3.7 Opgaven Opgave.3 Beschouw het volgende LP-probleem: max 4x x 3x 3 x x + x 3 4; x 0 x + x x 3 = ; x 0 x x + x 3 ; x 3 0. a. Bepaal een optimale oplossing met de simplex methode. b. Wat is de optimale oplossing als een variabele x 4 wordt toegvoegd met in de doelfunctie de coëfficiënt - en in de drie beperkingen resp. de coëfficiënten -, 0 en. Beantwoord deze vraag zonder het nieuwe probleem van vooraf aan op te lossen, maar vanuit het in onderdeel a verkregen optimale tableau. Opgave.4 Beschouw het volgende LP-probleem: max x + 5x x 4; x 0 x 3; x 0 x + x 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 variabele: x + 3x 3 4; x 0 max x + 5x + 9x 3 x + x 3 3; x 0 x + x + x 3 6; x 3 0 c. Los voor alle waarden van λ het volgende parametrisch LP-probleem op: x 4; x 0 max ( + λ)x + 5x x 3; x 0. x + x 6; d. Los voor alle waarden van λ het volgende parametrisch LP-probleem op: x 4; x 0 max x + 5x x 3 + λ; x 0. x + x 6; Opgave.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 a T m+ x b m+ is, en dat als de.

.4. DE DUALE EN DE PRIMALE-DUALE SIMPLEX METHODE kolom ( van de verschilvariabele ) y m+ aan de basis matrix wordt toegevoegd deze de gedaante B 0 B = heeft. a m+ ( ) a. Toon aan dat B B 0 = is. a m+ B b. Beschouw het volgende LP-probleem: x + x ; x 0 max x + 3x x 4x 5; x 0. x + x 3; x + x 6; Los dit probleem op en bepaal vanuit deze oplossing de optimale oplossing van het probleem waaraan als extra beperking is toegevoegd: x + 3x 5. Gebruik voor extra pivot stappen de duale simplex methode..4 De duale en de primale-duale simplex methode.4. 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 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:. Als er niet eenvoudig een toelaatbaar hoekpunt van (.) is te vinden, maar wel van (.4). Dit laatste is bijvoorbeeld het geval als p 0 (zie verder).. 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 b, 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 b. Als B b 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.5). Dit wordt ook gebruikt bij bepaalde methoden om geheeltallige lineaire optimaliseringsproblemen op te lossen (zie het volgende hoofdstuk). De duale simplex methode is in 954 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 (954) 53 53 en C.E. Lemke, The dual method for solving the linear programming problem, Naval Research Logistics Quarterly (954) 36 47.