Lineair programmeren met de TI-84 CE-T

Vergelijkbare documenten
K.0 Voorkennis. y = -4x + 8 is de vergelijking van een lijn. Hier wordt y uitgedrukt in x.

Bijlage A 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.

TU/e 2DD50: Wiskunde 2

TW2020 Optimalisering

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.

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).

TW2020 Optimalisering

Universiteit Utrecht Departement Informatica

TW2020 Optimalisering

TU/e 2DD50: Wiskunde 2 (1)

Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking

Hoofdstuk 9 - Lineair Programmeren Twee variabelen

Praktische opdracht Wiskunde A Formules

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

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.

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

Stoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )

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

Tentamen: Operationele Research 1D (4016)

TW2020 Optimalisering

Kerstvakantiecursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

3.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

5.1 Lineaire formules [1]

3 Wat is een stelsel lineaire vergelijkingen?

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

1.1 Lineaire vergelijkingen [1]

Voorbereidende opgaven Kerstvakantiecursus. Rekenregels voor vereenvoudigen ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )

Vergelijkingen en hun oplossingen

ProefToelatingstoets Wiskunde B

2.1 Lineaire formules [1]

HP Prime: Functie App

TU/e 2DD50: Wiskunde 2 (1)

vandaag is Annie twee jaar jonger dan Ben en Cees samen

Uiteenzetting Wiskunde Grafische rekenmachine (ti 83) uitleg

Beknopte handleiding voor Derive 5.0 for Windows

Digitaal Proefstuderen Econometrie en Operationele Research Universiteit van Tilburg

HP Prime: Functie App Grafieken op de GR

Berekeningen op het basisscherm

Kerstvakantiecursus. wiskunde B. Voorbereidende opgaven VWO. Haakjes. Machten

5. Functies. In deze module leert u:

11.0 Voorkennis V

1.1 Tweedegraadsvergelijkingen [1]

de Wageningse Methode Beknopte gebruiksaanwijzing TI84 1

Antwoorden Wiskunde Hoofdstuk 4

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

Lineaire Algebra (2DD12)

Lineaire Algebra voor ST

Wiskunde D. Keuzevak beslissen onderdeel: optimaliseren

Lineaire programmering

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

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Basiskennis lineaire algebra

Tentamen lineaire algebra voor BWI maandag 15 december 2008, uur.

Lineaire Algebra voor ST

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

OEFENINGEN PYTHON REEKS 6

2.0 Voorkennis (64 36) Haakjes (Stap 1) Volgorde bij berekeningen:

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

Kerstvakantiecursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven HAVO kan niet korter

RUDOLF STEINERCOLLEGE HAARLEM WISKUNDE HAVO CM/EM UITWERKING Voor elk onderdeel is aangegeven hoeveel punten kunnen worden behaald.

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Lineair programmeren Problemen met twee onbekenden

Modellen en Simulatie Speltheorie

Wiskunde - MBO Niveau 4. Eerste- en tweedegraads verbanden

Hoofdstuk 2: Grafieken en formules

Excel. Inleiding. Het meest gebruikte spreadsheet programma is Excel.

Tie breaking in de simplex methode

Verbanden en functies

Opgave 2: Simplex-algoritme - oplossing

Paragraaf 1.1 : Lineaire verbanden

l e x e voor alle e E

Tie breaking in de simplex methode

Opgave 1 Bestudeer de Uitleg, pagina 1. Laat zien dat ook voor punten buiten lijnstuk AB maar wel op lijn AB geldt: x + 3y = 5

1 Transportproblemen. 1.1 Het standaard transportprobleem

Wiskunde D vwo Lineaire algebra. Presentatie Noordhoff wiskunde Tweede Fase congres 19 november 2015 Harm Houwing en John Romkes

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

Uitwerkingen bij 1_1 Lineaire vergelijkingen

Rekenen aan wortels Werkblad =

Uitwerkingen Rekenen met cijfers en letters

Optimalisering WI 2608

Hoofdstuk 11 - formules en vergelijkingen. HAVO wiskunde A hoofdstuk 11

Getal en Ruimte wi 1 havo/vwo deel 1 hoofdstuk 4 Didactische analyse door Lennaert van den Brink ( )

Toepassingen met de grafische rekenmachine TI-83/84 (plus)

VIDEO 4 4. MODULUSVERGELIJKINGEN

klas 3 havo Checklist HAVO klas 3.pdf

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

Formules grafieken en tabellen

Wiskunde - MBO Niveau 4. Eerste- en tweedegraads verbanden

Voorbeelden van gebruik van de grote bron Grafiek

Transcriptie:

Lineair programmeren met de TI-84 CE-T Harmen Westerveld Oktober 2018

INHOUDSOPGAVE Lineair programmeren met TI-84 PLUS CE-T... 2 Introductie... 3 Voorbeeld 1: maximaliseringsprobleem... 4 De app Inequalz... 5 De app Transfrm... 10 Voorbeeld 2: minimaliseringsprobleem... 12 Voorbeeld 3: (standaard) minimaliseringsprobleem... 15 Voorbeeld 4: transportprobleem... 18 Het Simplex-algoritme... 21 Voorbeeld 3 met Simplex-algoritme... 31 Simplex-algoritme bij grafisch probleem: big M -methode... 35 Simplex-algoritme: 3 of meer variabelen... 39 Acties bij afwijkingen van de standaardvorm LP-probleem... 41 Gebruikte documenten/websites... 42 1

Lineair programmeren met TI-84 PLUS CE-T Lineair programmeren is in de boeken van bv. Getal en Ruimte voor VWO A/C-2 (editie 2015) opgenomen als mogelijk keuzeonderwerp. Daarnaast kan een school kiezen om lineair programmeren op te nemen als keuzeonderwerp voor HAVO en VWO wiskunde D (of als module in het vrije deel van NLT). Probleem dat veel collega s misschien zullen herkennen is het visualiseren van het probleem in een plaatje voor de leerlingen. Dit kan middels computerprogramma s, maar dan moet je weer het computerlokaal reserveren etc., of via een klassikale demo met behulp van bv. Geogebra. En dan blijft het bij een passief verhaal voor de leerlingen. Of het blijft bij een druk op de knop in het geval van optimaliseren middels de simplex methode, zonder dat begrepen wordt wat er op de achtergrond (wiskundig) speelt. Er zijn ook mogelijkheden om leerlingen aan de gang te laten gaan met de TI-84 CE-T. Zowel grafisch met de apps Inequalz en Transfrm als meer analytisch met de simplexmethode. Hierbij gebruiken we matrices om het simplextableau weer te geven en rijvermenigvuldigingen om variabelen te elimineren. 2

Introductie Een lineair programmeringsprobleem bestaat eruit om een lineaire doelstellingsfunctie te optimaliseren, gegeven lineaire vergelijkingen/ongelijkheden die de beperkingen/voorwaarden weergeven waaronder de doelstellingsfunctie wordt geoptimaliseerd. Wij gaan in deze workshop in eerste instantie uit van lineair programmeringsproblemen met 2 variabelen. Aan het eind gaan we kort in op een aanpak met meerdere variabelen bij het simplex algoritme. Bij lineair programmeren worden veelal lineaire vergelijkingen/ongelijkheden geschreven in de vorm a x + b y = (, ) c Vaak inherent aan het geschetste probleem: Voor een concert zijn kaartjes te koop van 25 en 40 euro. Op een avond is de opbrengst 6750 euro. Stel bij deze gegevens een lineaire vergelijking op met twee variabelen. Oplossing: Stel x is het aantal verkochte kaartjes van 25 euro en y het aantal verkochte kaartjes van 40 euro. Dan geldt: 25 x + 40 y = 6750 Deze vergelijking is alleen in te voeren in de GR nadat y uitgedrukt is in x: Dus: 25 x + 40 y = 6750 y = 6789:;8 < =9 ofwel: y = 8? x + 168 B = 3

Voorbeeld 1: maximaliseringsprobleem Zuivelfabrikant Uniemelk heeft twee nieuwe soorten desserts ontwikkeld. Een liter van de soort Melko (M) bestaat voor 20% uit melk en voor 15% uit room. Bij de soort Romich (R) zijn deze percentages 20 en 30. Per dag heeft de zuivelfabrikant 620 liter melk en 600 liter room beschikbaar voor de nieuwe desserts. De afdeling verkoop constateert een grote vraag naar de nieuwe desserts, maar geeft wel twee voorwaarden waaraan de hoeveelheden moeten voldoen. Maak nooit meer R dan M. Maak in totaal minstens 2000 liter per dag van de nieuwe desserts samen. Verder is de winst 0,45 per liter M en 0,60 per liter R. De fabrikant streeft naar winstmaximalisatie. Hoeveel liter M en hoeveel liter R moet Uniemelk produceren om zijn winst maximaal te laten zijn binnen de beperkingen. (Bron: Getal en Ruimte VWO A/C-2, 11 e ed.) Als we x definiëren als het aantal liters M en y als het aantal liters R dat Uniemelk gaat produceren en W noemen we de totale winst, dan is het probleem als volgt weer te geven: Doelstellingsfunctie: max W = 0,45x + 0,60y Beperkende voorwaarden: 0,20x + 0,20y 620 (melkrestrictie) (Samen toelaatbare gebied) 0,15x + 0,30y 600 (roomrestrictie) y x x + y 2000 x 0 ; y 0 4 (1 e voorwaarde verkoop) (2 e voorwaarde verkoop) (hoeveelheden)

De app Inequalz Onder Œ is de optie 7: Inequalz te vinden. Met deze app is het mogelijk om halfvlakken bij lineaire ongelijkheden te plotten. Deze gaan we gebruiken om de beperkende voorwaarden grafisch weer te geven. Start de app en ga naar het invoerscherm voor vergelijkingen o, ga met de cursor naar links en druk op Í: We kunnen nu de eerste ongelijkheid uit het voorbeeld invoeren, nadat we deze terug hebben gebracht naar de standaardvorm y of y : 0,20x + 0,20y 620 y 6;9:9,;9< 9,;9 of: y x + 3100. met plot: Voer de resterende ongelijkheden op dezelfde wijze in. 5

Om de ongelijkheid x 0 in te voeren ga je naar het menu X= boven in beeld. Na een Í kom je in een menu om ongelijkheden voor x in te voeren: We zijn nu zo ver om het toelaatbare gebied V te plotten met s: (niet erg bevredigend.) 6

Probleem is dat we eigenlijk het toelaatbare gebied willen zien; het gebied dat voldoet aan alle vijf de voorwaarden. Verder zou je geïnteresseerd kunnen zijn in de snijpunten van elk tweetal vergelijkingen. Ga daarvoor naar het CALC-menu: y/ en naar het tabblad INEQUALITY : Met optie 2: Inequal Intersection wordt het toelaatbare gebied getoond. Met andere woorden, de doorsnede V van alle halfvlakken. Met optie 1: Point of Interest kun je via de pijltjestoetsen het snijpunt bepalen van Y J Y L. Met 65 verander je de eerste functie Y J en met34de tweede functie Y L. Sla deze snijpunten op door bij elk hoekpunt van V op te drukken. 7

F Doe dit netjes door de hoekpunten van het convexe gebied rond te lopen en te eindigen bij het punt waarmee je bent begonnen. (Hint: start met punt op as). Deze lijsten met alle snijpuntcoördinaten van het toelaatbare gebied V hebben we straks nodig bij het uiteindelijke optimaliseren: het zoeken van die combinatie van x- en y-waarden die de maximale waarde voor W = 0,45x + 0,60y oplevert binnen V. De x- en y-waarden worden opgeslagen in de speciale lijsten INEQX resp. INEQY, die terug te vinden zijn onder y9 en onder Edit. Hoeveelheden x en y die een zelfde hoeveelheid winst W opbrengen liggen op de rechte 0,45x + 0,60y = c. Deze rechte noemen we een iso(winst)lijn. 8

Tekenen we bv. de rechte door het punt (2000, 0), dan komt dat overeen met een winst van W = 0,45 2000 + 0,60 0 = 900. Alle punten (x, y) op de lijn 0,45x + 0,60y = 900 zijn combinaties van x- en ywaarden die een winst W van 900 euro opleveren. 0,45x + 0,60y = 900 y = T99:9,=8< 9,69, ofwel: y = 1500 B = x. Een ander punt (1500, 500) levert W = 0,45 1500 + 0,60 500 = 975. Alle combinaties van x- en y-waarden op de iso(winst)lijn leveren nu een hogere winst W op: 0,45x + 0,60y = 975 y = T78:9,=8< 9,69, ofwel: y = 1625 B = x. Deze lijn loopt evenwijdig aan de eerdere, maar ligt ook boven de eerdere in het assenstelsel. Een gunstiger strategie voor de producent dus; het levert een hogere winst op. We willen nu die isowinstlijn W zien, die binnen het toelaatbare gebied V en zo ver mogelijk van de oorsprong ligt. Want dit levert een hogere totale winst W op. (N.B.: bij kostenminimalisatie wil je het snijpunt zo dicht mogelijk richting de oorsprong). Dit schuiven moet de doelstellingsfunctie gaan we doen met behulp van de app Transfrm (Transformation Graphing). Daar heb je de mogelijkheid om een parameter in een vergelijking in te bouwen. In onze vergelijking is dat de parameter c : 0,45x + 0,60y = c y = U:9,=8< indien gewenst: y = 1 ; B c B = x ) 9,69 (of F Verlaat de app Inequalz middels het menu boven in het scherm en verwijder alle aanwezige vergelijkingen in het o-scherm. 9

De app Transfrm Om het gebied V opnieuw te plotten definiëren we de XY-lijn ( INEQX, INEQY). Start daarvoor de app Transfrm en ga naar y,: De lijsten INEQX en INEQY zijn te vinden onder y9. met als plot: Nu de vergelijking met de parameter c invoeren in Y1: Y V = 1 ; C B X ; de parameter C invoeren met 7 C. (N.B.: je mag bij Transfrm B = kiezen tussen de variablelen A, B, C en D als parameter in vergelijking Y1 of Y2). met als plot: Nu kun je in het SETUP -menu variëren met de parameter C en m.b.v. de cursortoets ~ de doelstellingsfunctie verschuiven. We zien dat de winst maximaal 1530 euro is in één van de hoekpunten met coördinaten (2200, 900). 10

met eindplot: Omdat het lastig is om af te lezen òf de isowinstlijn W in één van de hoekpunten zit, is het handig om een nieuwe lijst W te definiëren, gebaseerd op de lijsten INEQX en INEQY. Daarmee wordt de winst berekend in de verschillende hoekpunten van het toelaatbare gebied V. De naam W voer je in m.b.v. 7 W en de variabelen INEQX en INEQY via y9. Nu is zeker dat de maximale winst binnen de beperkingen gelijk is aan 1530 euro. Dit berekenen van de waarde van de doelstellingsfunctie op basis van de waarden in de hoekpunten van het toelaatbare gebied heet de hoekpuntmethode. Deze methode werkt vaak, maar niet als het hoekpunt waardes oplevert voor x en/of y die niet een integer zijn, terwijl het probleem dit impliciet wel vereist (een heel aantal dozen bv.). 11

Voorbeeld 2: minimaliseringsprobleem In de stal van Jan Pol worden de pony s gevoerd zoals het hoort. s Winters wordt er hoofdzakelijk biks en hooi aan de dieren gegeven. De belangrijkste bestanddelen van dit voer zijn: Koolhydraten (zetmeel en suiker), ruwvezel en vetten, die zorgen voor de energievoorziening, Eiwitten, die van groot belang zijn voor de vorming van spieren, hoeven, bloed enz. Jasper is een pony die bij Jan op stal staat. Volgens het boekje heeft Jasper per dag 2100 gram zetmeel en 360 gram eiwit nodig. In één kg biks zit 600 gram zetmeel en 80 gram eiwit. In één kg hooi zit 300 gram zetmeel en 60 gram eiwit. Jasper krijgt elke dag x kg biks en y kg hooi te eten. Een zak biks van 15 kg kost 15,- en een baal hooi van 20 kg kost 8,-. Welk voerplan moet boer Jan aanhouden om de kosten zo laag mogelijk te houden? (Bron: Wageningse Methode) Allereerst de doelstellingsfunctie: de kosten K hangen af van het aantal kg hooi en het aantal kg biks. De prijs voor biks is dan 15, /15 = 1, per kg en de prijs voor hooi is dan 8, /20 = 0,40 per kg. De doelstellingfunctie K wordt dan: min K = x + 0,40y Hiermee is het probleem terug te brengen tot het volgende model: ^ Min K = x + 0.4y S.T. 600x + 300y 2100 80x + 60y 360 x 0 ; y 0 12

Het tekenen van het initiële resp. het geschoonde toelaatbare gebied: Zet vervolgens de snijpunten in de lijsten INEQX en INEQY: Verwijder alle functies, sluit de app Inequalz, start de app Transfrm en markeer het toelaatbare gebied opnieuw met y, : 13

En voer de doelstellingsfunctie in: Nu de waarde van C zo kiezen dat doelstellingsfunctie nog net het toelaatbare gebied raakt. Het voerplan met de laagste kosten bestaat dus uit alleen 7 kg hooi voeren, met kosten 2,80 ( immers: x = 0 y = ;.?:9 = 7 ). Arme Jasper.geen biks. 9.= 14

Voorbeeld 3: (standaard) minimaliseringsprobleem (Bron: www.math4all.nl) Dit probleem is terug te brengen tot het standaardprobleem: Min K = 250 x 2y S.T. y 40 x + 2y 120 3x + y 200 x 0 ; y 0 Vervolgens met de app Inequalz het toelaatbare gebied afbakenen: 15

En de hoekpunten opslaan: De app Inequalz afsluiten, alle functies verwijderen, het toelaatbare gebied weer aangeven met y, en de app Transfrm starten om de doelstellingsfunctie in te voeren: Dit resulteert in het uiteindelijke optimale plaatje: 16

We zoomen in om te kijken of de lijnen samenvallen. Dit is natuurlijk het geval omdat de coëfficiënten in de doelstellingsfunctie en die van de beperking x + 2y 120 hetzelfde zijn. Daardoor zijn beide hoekpunten (40, 40) en (56, 32) een oplossing voor de optimale waarde van K = 130. Het is natuurlijk ook mogelijk om met de lijsten INEQX en INEQY een extra lijst K te maken met K = 250 INEQX 2 INEQY en hier de laagste waarde voor K uit te halen. 17

Voorbeeld 4: transportprobleem Een firma moet 200 dozen, elk met 40 literblikken appelmoes, naar twee filialen transporteren. Deze dozen komen uit drie magazijnen. De transportkosten in euro per doos zijn weergegeven in de tabel. In magazijn 1 staan 50 dozen, in magazijn 2 ook 50 en in magazijn 3 staan 100 dozen. Naar filiaal 1 moeten 80 dozen, naar filiaal 2 moeten 120 dozen. Hoe kun je dit transportprobleem zo oplossen, dat de totale benodigde transportkoten zo klein mogelijk zijn? (Bron: Math4All.nl) We gaan eerst het probleem schematisch in beeld brengen met behulp van een (gerichte) graaf. Daarbij nemen we aan dat x dozen van magazijn 1 naar filiaal 1 gaan en y dozen van magazijn 2 naar filiaal 1. Dat betekent automatisch dat er nog 80 x y dozen uit magazijn 3 moeten komen om aan de vraag van filiaal 1 te voldoen en dat er nog 50 x dozen uit magazijn 1 overblijven om naar filiaal 2 te sturen etc. Deze te transporteren hoeveelheden staan in de graaf met rood aangegeven. De transportkosten per doos staan tussen haakjes in het groen weergegeven. 18

In de magazijnen en filialen staan de voorraadhoeveelheden resp. vraaghoeveelheden weergegeven met blauw. F1 80 (2) x (1) y (5) 80-x-y M1 50 M2 50 100 M3 (8) 50-x (7) (3) 50-y 120-(50-x)-(50-y) = 20+x+y 120 F2 We kunnen nu de volgende restricties m.b.t. het model opzetten: - 0 x 50-0 y 50-80 x y 0-20 + x + y 0 Maar omdat x 0 en y 0 geldt dat 20 + x + y 0 x, y immers x + y 20 x, y 0. We kunnen de restricties derhalve reduceren tot: - x 50 - y 50 - x + y 80 - x 0 ; y 0 19

De bijbehorende doelstellingsfunctie wordt: K = 2x + 1y + 5(80 x y) + 7(50 x) + 3(50 y) + 8(20 + x + y) = 1060 2x + y Samengevat: Min K = 1060 2x + y S.T. x 50 y 50 x + y 80 x 0 ; y 0 De verdere uitwerking laten we hier achterwege. De totale kosten zijn na uitwerking minimaal 960 euro voor x = 50 en y = 0. 20

Het Simplex-algoritme De simplexmethode (of het simplexalgoritme) is een methode die LP-problemen in een eindig aantal stappen oplost, dan wel de onoplosbaarheid ervan vaststelt. Het algoritme werd in 1947 door George Dantzig ontwikkeld. De naam komt van het feit dat de vergelijkingen van het probleem een simplex beschrijven, waarvan de rand bij het vinden van de oplossing beschreven wordt. Een simplex of n-simplex is in de wiskunde het convexe omhulsel van n + 1 onafhankelijke punten in de vectorruimte. (bron: Wikipedia) M.a.w.: bij het oplossen loop je langs de rand van het toelaatbare gebied. Stel we hebben het volgende probleem: Max F = 4x + 3y S.T. x + y 6 3x + 2y 15 x + 4y 18 x 0 ; y 0 Het bijbehorende toelaatbare gebied is hiernaast getekend. 21

Voordat we het stappenplan van het Simplex-algoritme starten wordt het probleem in de standaardvorm geschreven: Standaardvorm LP-probleem: Max Z = c Vx V + c ; x ; + + c p x V S.T. a VV x V + a V; x ; + + a Vp x p b V a ;V x V + a ;; x ; + + a ;p x p b ; a qv x V + a q; x ; + + a qp x p b q x V, x ;,, x q 0 en b V, b ;,, b q 0 Is hier niet aan voldaan, dan moet er eerst actie ondernomen worden om het probleem naar de standaardvorm te brengen. Aan het eind komen we daar op terug als we samenvatten hoe afwijkingen t.o.v. het standaardprobleem opgelost kunnen worden. Stap 1: Schrijf de ongelijkheidsrestricties (behalve x 0 ; y 0 ) als gelijkheden door het invoeren van zgn. spelingsvariabelen. Deze spelingsvariabelen (ook bekend als slackvariabele) geven aan hoeveel er bv. van een bepaalde capaciteit niet gebruikt wordt. Het voordeel is dat we bovenstaande ongelijkheden nu kunnen schrijven als vergelijkingen. Het voordeel hiervan is dat je vergelijkingen bij elkaar kunt optellen en van elkaar kunt aftrekken, wat bij ongelijkheden niet zondermeer kan. 1F 4x 3y = 0 1x + 1y + 1s V = 6 3x + 2y + 1s ; = 15 1x + 4y + 1s B = 18 x 0 ; y 0 ; s V 0 ; s ; 0 ; s B 0 22

Het volgende bijbehorende initiële Simplextableau ontstaat dan: Initiële simplex-tableau BASIS F x y s V s ; s B RL F 1-4 -3 0 0 0 0 s V 0 1 1 1 0 0 6 s ; 0 (3) 2 0 1 0 15 s B 0 1 4 0 0 1 18 Dit tableau voldoet aan alle eisen: Alle rechterleden (RL) zijn 0 De basisoplossing F = 0 ; s V = 6 ; s ; = 15 en s B = 18 vinden we door de twee beslissingsvariabelen (de variabelen in de F-rij) gelijk te stellen aan 0: x = y = 0. Dit is een toelaatbare oplossing, omdat deze voldoet aan de eis dat alle elementen 0. We kunnen de basisoplossing verder optimaliseren doordat er variabelen met negatieve coëfficiënten in de F-rij staan. Toevoeging van een hoeveelheid van deze variabele zal zorgen voor een verhoging van de doelstellingsfunctie. (bij een minimaliseringsprobleem moeten er juist positieve coëfficiënten in de F-rij staan). 23

Stap 2: Bepaal de variabele met de meest negatieve coëfficiënt in de F-rij. De bijbehorende variabele heeft de grootste invloed op de waardestijging van F. Dit veld is in het tableau rood gearceerd. De negatieve coëfficiënt zorgt ervoor dat de waarde van F nog kan toenemen. Als je x groter maakt, wandel je als het ware in het toelaatbare gebied van de oorsprong naar rechts. Als we te maken hebben met een minimaliseringprobleem dan zoek je de variabele met de meest positieve coëfficiënt in de F-rij. Dit is dan de bijbehorende variabele die de grootste invloed op de waarde van F heeft. De bijbehorende variabele x zal straks in de basis verschijnen ten koste van één van de andere. N.B.: zijn er geen negatieve elementen meer in de F-rij, dan is het tableau optimaal. Voor een minimaliseringsprobleem is dit het geval als er geen positieve elementen meer aanwezig zijn. Stap 3: Bepaal welke variabele uit de basis zal verdwijnen door te kijken naar de ratio van alle rechterleden te nemen met het corresponderende element in de kolom. Als je namelijk de waarden van de rechterleden RL deelt door de overeenkomstige waarde uit de kolom x krijg je precies de punten op de x-as. 24

De variabele die uit de basis gaat is die variabele die de kleinste positieve ratio heeft. Hier: 6 V = 6 ; V8 B = 5 ; V? V = 18, dus 5. 15 3 = 5 6 1 = 6 18 1 = 18 Basisoplossing: x = y = 0 De variabele s ; zal uit de basis verdwijnen ten koste van de variable x. Deze zgn. pivot variabele is tussen groene haken gezet. Als dit element 1, zorg dan dat deze de waarde 1 krijgt door de hele rij te delen door de coëfficiënt van de pivot variabele (hier x). Stap 4: Veeg de betreffende kolom schoon; de pivot-variabele mag alleen nog maar voorkomen in de rij met de laagste ratio. In dit geval: - Tel bij de F-rij 4 keer de s ; -rij op - Trek van de s V -rij de s ; -rij af - Trek van de s B -rij de s ; -rij af 25

Voeren we dit uit, dan resulteert dit in het tweede simplex-tableau: Tweede simplex-tableau BASIS F x y s V s ; s B RL F 0 0 s V 0 0 1 3 v 1 3 w 1 0 4 3 1 3 0 20 0 1 x 0 1 2 3 s B 0 0 3 1 3 0 1 3 0 1 3 0 5 1 13 De nieuwe basisoplossing wordt nu: F = 20 ; x = 5 ; s V = 1 en s B = 13 We zien nog een negatieve component in de F-rij, dus er is nog verbetering mogelijk. Bepaal dat y de nieuwe pivot-variabele wordt ten koste van s V door de ratio s te berekenen; we kunnen y in waarde toe laten nemen (zie tekening). 5 = 7 1 x 2 y 13 = 3,9 3 V B 1 = 3 z y Basisoplossing: x = 5; y = 0 26

Herhaal nu de stappen 2 t/m 4 totdat er geen negatieve componenten meer in de F-rij aanwezig zijn. Dan is het optimale Simplex-tableau bereikt. Derde (optimale) simplex-tableau BASIS F x y s V s ; s B RL F 1 0 0 1 1 0 21 y 0 0 1 3-1 0 3 x 0 1 0-2 1 0 3 s B 0 0 0 10 3 1 3 Met optimale basis-oplossing: F = 21 ; y = 3 ; x = 3 en s B = 3. Het meest tijdrovend is het schoonvegen van de kolommen na het kiezen van de pivot variabele. Hiervoor gaan we gebruik maken van rij-vermenigvuldigingen en het optellen en aftrekken van rijen in een matrix. Bekijk nogmaals het initiële simplex-tableau: Initiële simplex-tableau BASIS F x y s V s ; s B RL F 1-4 -3 0 0 0 0 s V 0 1 1 1 0 0 6 s ; 0 3 2 0 1 0 15 s B 0 1 4 0 0 1 18 27

De enige plaats in het tableau waar veranderingen plaats kunnen vinden is in het groene deel. Dit deel zetten we in een matrix A met y¾ EDIT 4x6: Deze is op te roepen in het basisscherm met y¾ 1 Í. F Onthoud hierbij dat de eerste rij van A hoort bij de F-rij en de laatste kolom bij de rechterleden (RL) van de gelijkheden. In de matrix bepalen we welk element het meest negatief is van de eerste rij (behorend bij de F-rij) en vervolgens welke variabele de pivot-variabele wordt door de kleinst mogelijke positieve ratio te zoeken. Deze kolom en rij zijn aangegeven in de matrix: 4 3 0 { 1 1 1 3 2 0 1 4 0 0 0 0 0 0 6 1 0 15 0 1 18 De overlappende component moet eerst naar 1 gebracht worden door rij 3 met 1/3 te vermenigvuldigen: 1/3*R3. Dit kan met behulp van optie: E: *row( uit het y¾ MATH-menu. F Als niet de breuktoets is gebruikt bij de invoer (bv. met ƒ ), maar 1/3, dan worden de uitkomsten weergegeven als een decimaal getal. De matrix kan dan worden omgezet naar exacte waarden middels breuken-optie 1: 4Frac in het»-menu. 28

Om de rest van de kolom schoon te vegen moeten we: - Rij 3 vermenigvuldigen met 4 en optellen bij rij 1. - Rij 3 aftrekken van rij 2, ofwel rij 3 vermenigvuldigen met -1 en optellen bij rij 2. - Rij 3 aftrekken van rij 4, ofwel rij 3 vermenigvuldigen met -1 en optellen bij rij 4. Om rij 3 te vermenigvuldigen met 4 en op te tellen bij rij 1: 4*R3+R1 met behulp van de optie F: *row+(, welke terug te vinden is in het y¾ MATH-menu. Vervolgens rij 3 aftrekken van rij 2: -1*R3+R2 en rij 3 aftrekken van rij 4: -1*R3+R4 In de resterende matrix is nog verbetering mogelijk: er is nog een negatief element in de eerste rij (behorend bij F-rij) en we bepalen weer welke variabele de nieuwe pivot variabele wordt. In dit geval de variabele y, die in de basis komt ten koste van s V. 29

0 V B 0 1 V B ; B 0 3 V B 0 1 0 0 = B V B V B V B 0 20 0 1 0 5 1 13 Eerst moet het element op 1 gezet worden door rij 2 met 3 te vermenigvuldigen: 3*R2. Dit kan weer met behulp van optie: E: *row( uit het y¾ MATH-menu. Om de rest van de kolom schoon te vegen moeten we: - Rij 2 vermenigvuldigen met 1/3 en optellen bij rij 1: 1/3*R2 + R1 - Rij 2 vermenigvuldigen met -2/3 en optellen bij rij 3: -2/3*R2 + R3 - Rij 2 vermenigvuldigen met -10/3 en optellen bij rij 4: -10/3*R2 + R4. En we zien dat dit het optimale tableau is. De basis is te herkennen aan de kolommen met alleen een 1 (eenheidssubmatrix). Deze horen resp. bij de basisvariabelen x, y en s B (zie aangebrachte rode arcering). De optimale oplossing is derhalve: F = 21 ; x = 3 ; y = 3 en s B = 3. 30

Voorbeeld 3 met Simplex-algoritme Het oorspronkelijke probleem wordt na invoering van spelingsvariabelen: Min K = 250 x 2y S.T. y 40 x + 2y 120 3x + y 200 x 0 ; y 0 1K + 1x + 2y = 250 1y + 1s V = 40 1x + 2y + 1s ; = 120 3x + 1y + 1s B = 200 x 0 ; y 0 ; s V 0 ; s ; 0 ; s B 0 We gaan dit probleem nu op een alternatieve wijze oplossen, door het minimaliseringsprobleem te laten staan en niet om te zetten naar een maximaliseringsprobleem, wat de standaardprocedure zou zijn. Dit heeft dus ook consequenties voor het behandelen van de coëfficiënten in de F-rij. De doelstellingsvariabele is te verkleinen als er positieve coëfficiënten in staan. Het bijbehorend initiëel Simplex-tableau: Initiële simplex-tableau BASIS F x y s V s ; s B RL K 1 1 2 0 0 0 250 s V 0 0 (1) 1 0 0 40 s ; 0 1 2 0 1 0 120 s B 0 3 1 0 0 1 200 Met basisoplossing: K = 250 ; s V = 40 ; s ; = 120 en s B = 200. De ratios berekenen geeft als kleinste waarde =9 V = 40. 31

Voor het schoonvegen van de variable y gebruiken we rijvermenigvuldigingen van de matrix A: - -2*R2 + R1 - -2*R2 + R3 - -1*R2 + R4 Dit levert het volgende (nog niet optimale) simplex-tableau op: tweede simplex-tableau BASIS F x y s V s ; s B RL K 1 1 0-2 0 0 170 y 0 0 1 1 0 0 40 s ; 0 (1) 0-2 1 0 40 s B 0 3 0-1 0 1 160 Met basisoplossing: K = 170 ; y = 40 ; s ; = 40 en s B = 160. 32

Na het berekenen van de ratios verdwijnt s ; uit de basis en komt x er in en gaan we de overgebleven matrix weer schoonvegen voor de variabele x. Daartoe slaan we eerst de overgebleven matrix op voor de zekerheid (hier gekozen voor A). Om kolom 1 voor variabele x schoon te vegen moeten we: - 1*R3 + R1 - R2 kan onveranderd blijven, vanwege de coëfficiënt 0 - -3*R3 + R4 33

Hierdoor ontstaat het optimale simplex-tableau: optimale simplex-tableau BASIS F x y s V s ; s B RL K 1 0 0 0-1 0 130 y 0 0 1 1 0 0 40 x 0 1 0-2 1 0 40 s B 0 0 0 5-3 1 40 De optimale oplossing: K = 130 ; y = 40 ; x = 40 en s B = 40. 34

Simplex-algoritme bij grafisch probleem: big M -methode Het probleem dat we eerder besproken hebben en grafisch relatief eenvoudig op te lossen was, is te schrijven als: Min K = 0,45x + 0,60y S.T. 0,20x + 0,20y 620 0,15x + 0,30y 600 y x 0 x + y 2000 x 0; y 0 Max K = 0,45x 0,60y S.T. 0,20x + 0,20y + s V = 620 0,15x + 0,30y + s ; = 600 y x + s B = 0 x + y s = = 2000 x 0; y 0; s V 0; s ; 0; s B 0; s = 0 Omdat je niet weet welke vergelijkingen uiteindelijk bepalend zijn voor de optimale oplossing introduceren we slackvariabelen s J, met s J 0 (i = 1, 2, 3) en surplusvariabele s =, ook met s = 0. Er komt voor elke beperking één slack- of surplusvariabele, waarmee alle ongelijkheden in het oorspronkelijke probleem veranderen in lineaire vergelijkingen. Deze slack- en surplusvariabelen hebben dus een waarde 0 of niet, afhankelijk van het feit of ze bepalend zijn voor de optimale oplossing of niet. Stellen we de gebruikelijke beslissingsvariabelen x = y = 0, dan resulteert dat in de basisoplossing K = 0 ; s V = 620 ; s ; = 600 ; s B = 0 en s = = 2000. Deze oplossing is echter niet toelaatbaar, omdat s = 0. Dit probleem kunnen we oplossen door het introduceren van een artificial (kunstmatige) variabele a in de vierde beperking: x + y s = + a = 2000 met a 0. 35

Het stelsel wordt nu: Max K + 0,45x + 0,60y = 0 S.T. 0,20x + 0,20y + s V = 620 0,15x + 0,30y + s ; = 600 y x + s B = 0 x + y s = + a = 2000 x 0; y 0; s V 0; s ; 0; s B 0; s = 0; a 0 Een toelaatbare basisoplossing wordt dan: K = 0 ; s V = 620 ; s ; = 600 ; s B = 0) en a = 2000. De andere variabelen hebben allemaal de waarde 0. Een probleem is echter dat in de optimale oplossing deze artificial variabele a gelijk moet zijn aan 0 en dus niet in de basis mag zitten. Dat lossen we op met de zgn. big M-method. Definieer daartoe de doelstellingsfunctie als volgt: Max K + 0,45x + 0,60y + Ma. Hierin is M een groot positief getal. In de optimale oplossing zal de waarde van a dan altijd 0 zijn. Kies een waarde M = 5 bijvoorbeeld. Het stelsel wordt nu: Max K + 0,45x + 0,60y + 5a = 0 S.T. 0,20x + 0,20y + s V = 620 0,15x + 0,30y + s ; = 600 y x + s B = 0 x + y s = + a = 2000 x 0; y 0; s V 0; s ; 0; s B 0; s = 0; a 0 We hebben echter wel een nieuw probleem geïntroduceerd: K is niet alleen uitgedrukt in niet-basisvariabelen, maar ook in een basisvariabele, namelijk a. 36

Dit probleem kun je oplossen door de beperkingsvergelijking met a erin te vermenigvuldigen met 5 en af te trekken van de K -rij, waardoor deze verdwijnt in de K -rij. We moeten nu dus nog oplossen: Max K 4,55x 4,40y + 5s = = 10000 S.T. 0,20x + 0,20y + s V = 620 0,15x + 0,30y + s ; = 600 x + y + s B = 0 x + y s = + a = 2000 x 0; y 0; s V 0; s ; 0; s B 0; s = 0; a 0 Starten we nu weer met x = y = 0, dan is een basisoplossing: K = 10000 ; s V = 620 ; s ; = 600 ; s B = 0 en a = 2000. De andere variabelen hebben allemaal de waarde 0. Nu staat alles klaar om het standaard Simplextableau uit te werken totdat de optimale oplossing is verkregen. Initiële simplex-tableau Basis K x y s V s ; s B s = a q RL K 1-4,55-4,40 0 0 0 5 0 0-10000 s V 0 0,20 0,20 1 0 0 0 0 0 620 s ; 0 0,15 0.30 0 1 0 0 0 0 600 s B 0-1 1 0 0 1 0 0 0 0 a 0 (1) 1 0 0 0-1 1 0 2000 37

En na één stap is het Simplextableau al optimaal (geen negatieve componenten in de K -rij): Tweede en optimale simplex-tableau Basis K x y s V s ; s B s = a q RL K 1 0 0,15 0 0 0 0,45 4,55 0-900 s V 0 0 0 1 0 0 0,20-0,20 0 220 s ; 0 0 0,15 0 1 0 0,15-0,15 0 300 s B 0 0 2 0 0 1-1 1 0 2000 x 0 1 1 0 0 0-1 1 0 2000 De optimale oplossing is dan: K = 900 ; s V = 220 ; s ; = 300 ; s B = 2000 en x = 2000. De andere variabelen hebben allemaal de waarde 0. Dat betekent tegelijktijd dat K = K = 900 de optimale oplossing is voor het oorspronkelijke minimalisatieprobleem. 38

Simplex-algoritme: 3 of meer variabelen Toepassing van het simplex-algoritme is niet beperkt door het aantal variabelen. We gaan eerst een eenvoudig voorbeeld bekijken met 3 variabelen: ^ Max F = 3x + 2y 0,5z S.T. 4x + 3y + z 10 3x + y 2z 8 x, y, z 0 Na toevoeging van de spelingsvariabelen s V en s ; krijgen we het volgende standaardmodel met bijbehorend tableau: ^ Max F 3x 2y + 0,5z = 0 S.T. 4x + 3y + z + s 1 = 10 3x + y 2z + s 2 = 8 x, y, z, s 1, s 2 0 Initiële simplex-tableau BASIS F x y z s V s ; RL F 1-3 -2 0,5 0 0 0 s V 0 (4) 3 1 1 0 10 s ; 0 3 2-2 0 1 8 De ratio-controle leert dat variabele x in de basis zal verschijnen ten koste van s V. 39

Initiële simplex-tableau BASIS F x y z s V s ; RL F 1-3 -2 0,5 0 0 0 x 0 (1) 3 4 1 4 1 4 0 10 4 s ; 0 3 2-2 0 1 8 De andere rijen schoonpoetsen voor x levert het volgende simplex-tableau op: Tweede en optimale simplex-tableau BASIS F x y z s V s ; RL F 1 0 1 4 5 4 3 4 0 7 1 2 x 0 1 3 4 1 4 1 4 0 10 4 s ; 0 0 1 1 4 2 3 4 3 4 1 1 2 En omdat er geen negatieve coëfficiënten meer in de F-rij staan is dit tevens het optimale tableau. De maximale waarde van F is 7 V ; voor x = 2 V en y = z = 0. ; 40

Acties bij afwijkingen van de standaardvorm LP-probleem Tijdens de bespreking van de voorbeelden kwamen we al een aantal LP-problemen tegen die afweken van de standaardvorm voor een LP-probleem. Deze standaardvorm is nodig om het simplex-algoritme te starten/het initiële simplextableau in te kunnen vullen, hoewel we hebben laten zien dat de aanpak van een minimaliseringsprobleem ook op een alternatieve wijze aangepakt kan worden. Hier volgt een schematische opsomming van problemen die zich voor kunnen doen: 1. Minimalisering van doelstellingsfunctie: Vervang Min Z = (Max -Z). N.B.: dit kan maar hoeft niet altijd. In het stappenplan van het simplex-algoritme hebben we al een alternatieve aanpak laten zien. 2. Geen niet-negativiteitseis voor x L (x L 0): a. x L 10. Ga over op x L = x L 10, met x L 0 b. x L 7. Ga over op x L = 7 x L, met x L 0 c. Geen ongelijkheid voor x L. Schrijf x L = x L x L :, met xl, x L : 0 3. Negatief rechterlid in één of meerdere beperking: Bv.: 3x ; 7x = 4 3x ; + 7x = 4 4. i.p.v. in beperking: voer een surplusvariabele i.p.v. spelingsvariabele in èn verder de beperking weer behandelen als gelijkheid. Bv.: 3x ; + 7x = 4 3x ; + 7x = s V = 4 3x ; + 7x = s V + s V 4, met s V, s V 0 en voer een extra term +Ms V in bij de doelstellingsfunctie Z (de zgn. big-m-methode ). 5. = i.p.v. in beperking: voer een kunstmatige variabele +a V in bij de beperking en voer een extra term +Ma V in bij de doelstellingsfunctie Z. Wel dient deze variabele uiteindelijk uit de doelstellingsfunctie gewerkt te worden. 41

Gebruikte documenten/websites - Cahier 10 Lineair Programmeren Etienne Goemaere (T3 Europe-Vlaanderen) (link: https://docplayer.nl/3805492-lineair-programmeren-problemen-met-tweeonbekenden.html) - Inleiding tot Lineair Programmeren Tom de Decker (link: https://samenvattingen.files.wordpress.com/2010/05/inleiding-tot-lineairprogrammeren.ppt.) - Voorbeelden Simplex methode TUDelft (hoorcollege Dr. J.B.M. Melissen) (link: http://docplayer.nl/47693553-1-het-aantal-optimale-oplossingen-van-een-lpprobleem-is-0-1-of-oneindig-2-de-vereniging-van-twee-konvexe-verzamelingenis-niet-convex-3.html) - Math4all (link: http://math4allview.appspot.com/view?comp=vd-k1&subcomp=vdk14&repo=m4a2015) 42