Enkele uitbreidingen op het simplexalgoritme

Maat: px
Weergave met pagina beginnen:

Download "Enkele uitbreidingen op het simplexalgoritme"

Transcriptie

1 Enkele uitbreidingen op het simplexalgoritme Stageverslag Rovecom Moniek Messink 2 oktober 2014

2

3 Enkele uitbreidingen op het simplexalgoritme Stageverslag Rovecom Masterscriptie Wiskunde 2 oktober 2014 Moniek Messink messink@science.ru.nl s Rovecom Begeleider: Marius-Hans Troost Radboud Universiteit Nijmegen Begeleider: Prof. dr. J.D.M. Maassen

4

5 Inhoudsopgave 1 Inleiding 1 2 Rovecom Het bedrijf VoerExpert Mineraal op maat Vraagstelling 5 4 Lineair Programmeren Lineair Programmeren Het originele simplex algoritme Pivoteren Het simplexalgoritme in de praktijk Wiskundige beschrijving en bewijs van het simplexalgoritme Conclusie Afwijkingen toestaan Mogelijke oplossing: grenzen minder strak maken Uitleg algoritme Mogelijke problemen Conclusie /1-optimalisatie Verdieping van het probleem Branch and bound algoritme Uitbreiding van het algoritme Mogelijke problemen Conclusie Verhoudingen Verdieping van het probleem Conclusie Conclusie Wat is er gedaan? Wat kan er nog worden onderzocht?

6

7 1 Inleiding 1 Inleiding Rovecom is een bedrijf dat onder andere software ontwikkelt om rantsoenen voor melkvee te berekenen, zij maken hiervoor onder andere gebruik van het simplexalgoritme. Dit algoritme kan veel, maar klanten van Rovecom vragen soms net iets extra s. Het simplexalgoritme wordt al decennialang gebruikt om lineaire programma s op te lossen. Het idee achter dit algoritme is verrassend eenvoudig, maar de mogelijkheden zijn zeer divers. In dit verslag wordt uitgelegd wat het simplexalgoritme inhoudt, hoe het werkt en hoe het kan worden gebruikt om aan de extra eisen van Rovecom en haar klanten te voldoen. Deze extra eisen worden besproken in hoofdstuk 3. De basis van lineair programmeren en het simplexalgoritme wordt besproken in hoofdstuk 4. Hier wordt zowel aandacht besteed aan het idee van het algoritme als aan de wiskundige beschrijving ervan. Dit hoofdstuk vormt de basis voor de volgende hoofdstukken waarin wordt ingegaan op de vragen van Rovecom zoals gesteld in hoofdstuk 3. De eerste paragrafen dienen als naslagwerk voor de medewerkers van Rovecom, paragraaf 4.5 bevat de wiskundige beschrijving van het algoritme en het bewijs dat het simplexalgoritme ook daadwerkelijk werkt. 1

8 Enkele uitbreidingen op het simplexalgoritme 2 Rovecom 2.1 Het bedrijf Rovecom is een breed bedrijf binnen de wereld van de ICT. Van oorsprong is Rovecom een bedrijf dat is gericht op de ontwikkeling van kennissystemen, met name binnen de agrarische sector. Rovecom is nog steeds actief op dit gebied. De afdeling agrarische kennis systemen ontwikkelt software en geeft advies, onder andere over rantsoenberekening. Tegenwoordig doet Rovecom echter veel meer. Zo is bijvoorbeeld internet erg belangrijk geworden. Een van de afdelingen van Rovecom helpt haar klanten door bijvoorbeeld een passende website te bouwen of door het implementeren van uitgebreide online oplossingen. De hardware afdeling ICTS biedt ondersteuning met cloud computing en geeft advies op maat over de sociale media. De ICT-afdeling gaat samen met de klant op zoek naar de beste oplossingen voor allerlei ICT-vraagstukken op het gebied van hardware en software. Dit kunnen zowel langdurige projecten zijn als projecten die eenmalig worden uitgevoerd. Tot slot houdt de afdeling loonwerk & weg- en waterbouw zich bezig met de planning en administratie van bedrijven. Hiervoor wordt software ontwikkeld en advies gegeven. Alle afdelingen hebben hetzelfde doel: tijdrovende taken eenvoudiger maken voor de klant. De software die wordt aangeboden kan gebruik maken van achterliggende (wiskundige) modellen die binnen Rovecom worden ontwikkeld. De klanten merken vaak weinig van deze modellen, zij werken immers alleen met de praktische kant van de software. Een van de doelen van Rovecom is om de module lineaire optimalisatie ook voor minder ervaren gebruikers geschikt te maken door de beslissingen die ervaren gebruikers zelf nemen over te laten nemen door nieuwe software-onderdelen. Enkele van deze onderdelen zullen in dit verslag aan bod komen. 2

9 2 Rovecom 2.2 VoerExpert Een van de tools die door Rovecom ontwikkeld is, is VoerExpert. Deze tool wordt door mengvoerbedrijven gebruikt om voor hun klanten, voornamelijk agrariërs en veehouders, rantsoenen te berekenen. Koeien hebben naast hun basisrantsoen ook krachtvoer nodig. Welke soort krachtvoer hiervoor het meest geschikt is en hoeveel hiervan nodig is, kan door VoerExpert worden berekend. Er bestaan verschillende modules voor VoerExpert: melkvee, varkens, vleesvee en geiten. Een deel van de krachtvoeroptimalisatie is niet lineair. Dit verslag richt zich op het lineaire gedeelte. Om duidelijker te maken wat VoerExpert kan, zal hier een korte omschrijving worden gegeven van de module melkvee. Het mengvoerbedrijf heeft voor al haar klanten een lijst met voedermiddelen die beschikbaar zijn, de klant geeft zelf aan hoeveel verschillende voedermiddelen hij maximaal wil gebruiken. Dit aantal hangt af van bijvoorbeeld de opslagmogelijkheden en de machines die aanwezig zijn op de boerderij. Ook kan de klant aangeven waarop hij wil optimaliseren, bijvoorbeeld op melkproductie of op zo veel mogelijk structuur. Deze keuzes bepalen de eisen van het lineair programma. De doelfunctie wordt gegeven door de prijs. Aangezien de behoefte en opname per koe kunnen verschillen, moet er voor iedere koe apart een rantsoen worden berekend. Dit wordt gedaan door eerst een modelkoe te kiezen, voor deze koe te bepalen welke voedermiddelen er worden gebruikt en dan voor de andere koeien de optimalisatie uit te voeren met de gekozen voedermiddelen. Door regelmatig de melk van de koeien te testen en terug te koppelen naar VoerExpert, wordt continu bijgehouden of de gegevens van de koe in het systeem nog wel correct zijn. Er komen steeds grotere veebedrijven in Nederland, deze bedrijven zullen steeds vaker zelf hun rantsoen willen berekenen. Hierdoor gaan ook veehouders met weinig tot geen kennis over voer VoerExpert gebruiken. VoerExpert biedt de gebruikers de mogelijkheid om eisen en beperkingen aan te passen, maar niet alle gebruikers weten wat er aangepast kan worden om de optimalisatie te laten slagen. Om problemen hiermee te voorkomen, is het wenselijk om VoerExpert zelf altijd met een oplossing te laten komen. 2.3 Mineraal op maat Mineraal op maat is een applicatie waarmee adviseurs maatoplossingen kunnen berekenen voor maatmineraalmengsels voor boeren. De bestaande programma s zijn vaak erg standaard en houden geen rekening met het ruwvoer en krachtvoer die het vee binnen krijgt. Mineraal op maat houdt tijdens het optimaliseren van het maatmineraal hiermee wel rekening. Er zijn in principe twee belangrijke functies binnen deze applicatie: het berekenen van het mengsel door de adviseur en het bestellen door de leverancier. 3

10 Enkele uitbreidingen op het simplexalgoritme De adviseur is meestal een mengvoer- of adviesbedrijf en heeft ook beschikking over andere voedermiddelen zoals ruwvoer. Hij heeft zo de benodigde informatie over de prijs en samenstelling van het voer en de wettelijke eisen op de voeding. De eisen die door de wet zijn vastgesteld zijn bijvoorbeeld de minimale en maximale waarden die de mineralen mogen hebben, de verhoudingen tussen mineralen en andere nutriënten en de grenzen van het totaalvoer voor een koe. De klanten van de adviseur zijn de boeren. De adviseur weet per agrariër wat het rantsoen is van zijn vee en dus ook welke mineralen nog bijgevoerd moeten worden. Hij kan kiezen of de nadruk ligt op bijvoorbeeld vruchtbaarheid of op structuur in het voer, maar heeft geen directe invloed op de samenstelling van het mineraalmengsel. Ook kan een adviseur een vulmiddel kiezen, dit heeft invloed op de hoeveelheid voer en de concentratie van de mineralen in het mengsel. Hierdoor is de totale hoeveelheid mineralen die een koe per dag binnenkrijgt aan te passen naar de wensen van de veehouder. In de meeste gevallen zal Mineraal op maat inderdaad de optimale oplossing berekenen, in extreme situaties kan het echter wel eens misgaan. Het probleem bij deze situaties is dat de adviseur geen aanpassingen kan doen aan de eisen en beperkingen. Er zal in enkele gevallen dus geen oplossing worden gevonden. Binnen Mineraal op maat kan een leverancier van mineralen de prijzen van de afzonderlijke mineralen bijhouden, maar hij kan ook de prijzen invoeren van de productie van de mengsels, het verpakken en het transport. Op deze manier is het voor de gebruiker direct duidelijk wat de uiteindelijke kosten van een bestelling zullen zijn. Een van de belangrijkste taken van de leverancier is het up-to-date houden van deze gegevens. Voordelen van Mineraal op maat zijn onder andere het feit dat een adviseur de oplossing kan opslaan en zo niet elke keer opnieuw de berekening hoeft uit te voeren. Hij kan kiezen uit grotere zakken voer en de gewenste totale hoeveelheid aangeven. De adviseur kan na het berekenen direct het mengsel bestellen via de applicatie en de bestelling wordt g d naar alle betrokken partijen. 4

11 3 Vraagstelling 3 Vraagstelling Tijdens de eerste gesprekken kwam de algemene vraag naar voren om uit te leggen wat een lineair programma is, hoe het simlexalgoritme dit op kan lossen en om een algoritme te maken. In hoofdstuk 4 zal een korte beschrijving worden gegeven van lineair programmeren en van het simplex algoritme. Het algoritme moest aan de volgende eisen voldoen: Het algoritme moet in ieder geval hetzelfde kunnen als het huidige algoritme; Het algoritme moet snel zijn; Er moet altijd een oplossing uit komen. Al snel bleek dat het algoritme herschrijven niet nodig zou zijn. Het plan werd om verschillende problemen aan te pakken en deze in het huidige algoritme te implementeren. Na een aantal weken werd duidelijk dat zelf programmeren teveel tijd zou gaan kosten, daarom is besloten dat een van de programmeurs dat zou doen. Het eerste probleem was dat er altijd een oplossing moet zijn: Vraag 1. Soms spreken de eisen elkaar tegen, hierdoor is het programma niet altijd oplosbaar. Het simplexalgoritme kan in dit geval geen oplossing vinden. Is er een manier om het algoritme zelf de eisen te laten aanpassen (soepeler te laten maken), zodat het algoritme toch een uitkomst geeft? Deze vraag riep meteen een aantal deelvragen op: Deelvraag 1.1. Sommige eisen zijn minder belangrijk dan anderen, zo mogen sommige eisen absoluut niet aangepast worden en is het voor anderen minder erg. Is het mogelijk om hier onderscheid in te maken? Deelvraag 1.2. De gebruiker wil graag weten welke eis is aangepast en op welke manier. Is het mogelijk te achterhalen welke eis soepeler is geworden en in welke mate? Een mogelijke oplossing voor bovenstaand probleem is het invoeren van extra variabelen waarmee de grenzen verschoven kunnen worden. Deze oplossing staat beschreven in hoofdstuk 5. Naar aanleiding van deze oplossing kwam er nog een aantal vragen naar boven: Deelvraag 1.3. Hoe kun je dit programmeren zonder dat de complexiteit erg wordt verhoogd? Deelvraag 1.4. Hoe zorg je ervoor dat deze variabelen de doelfunctie niet dusdanig beïnvloeden dat er een totaal andere oplossing uit komt? Een andere belangrijke vraag gaat over de zogeheten 0/1-optimalisatie, dit wordt behandeld in hoofdstuk 6. Vraag 2. De gebruiker kan nu per voedermiddel een minimum en een maximum instellen, voor sommige voedermiddelen is dit echter niet voldoende. Soms is een bepaalde minimale hoeveelheid nodig, bijvoorbeeld om het voedermiddel te kunnen mengen met andere voedermiddelen. Hieruit is de wens ontstaan om in deze gevallen aan te kunnen geven dat er óf minstens de minimale hoeveelheid (zeg M) gevoerd wordt, óf niets van dit voedermiddel. Is dit mogelijk? 5

12 Enkele uitbreidingen op het simplexalgoritme Ook dit probleem valt uiteen in een aantal deelvragen: Deelvraag 2.1. Is het mogelijk om dit met lineaire optimalisatie te doen? Als het niet met het simplexalgoritme kan, op welke manier kan het dan wel? Er is gekozen om het simplexalgoritme iets uit te breiden en zo door middel van een branch-andbound algoritme het simplexalgoritme vaker toe te passen. Dit roept de volgende vragen op: Deelvraag 2.2. Op welke manier wordt de volgorde van de variabelen gekozen om de takken de definiëren? Deelvraag 2.3. Als niet per se het optimum gevonden hoeft te worden, maar een benadering ook goed is, kan dit dan tijdswinst opleveren? Deelvraag 2.4. Welke complicaties kunnen er optreden? Tot slot kwam er nog een relatief eenvoudige vraag over verhoudingen, deze zal behandeld worden in hoofdstuk 7: Vraag 3. Voor sommige nutriënten is naast de hoeveelheden, ook de onderlinge verhouding belangrijk. Hoe kun je eisen als a x y b meenemen? Daarnaast kwamen er tussendoor wat kleinere vragen. Bijvoorbeeld over het omrekenen tussen verschillende eenheden en of dat invloed heeft op de oplossing van het algoritme. Deze vragen zullen verder niet aan bod komen in dit verslag. Ook is er nog een aantal vragen blijven liggen: Vraag 4. De verdringing van het basisrantsoen door het krachtvoer is niet lineair, hierdoor is ook de opname van voedingsmiddelen uit het basisrantsoen niet lineair. Is het mogelijk om dit op te lossen? Is het bijvoorbeeld wel lineair in de gewenste variabelen? Vraag 5. Stel uit de optimalisatie komt dat optimale mengsel uit de drie voedermiddelen bestaat, alleen heeft de gebruiker slechts 2 opslagruimten beschikbaar en wil daarom maar twee voedermiddelen opnemen. Is het mogelijk om het aantal voedermiddelen te beperken? 6

13 4 Lineair Programmeren 4 Lineair Programmeren 4.1 Lineair Programmeren In dit hoofdstuk zullen we zien wat lineair programmeren inhoudt, we volgen hiervoor het idee van [4]. Het doel van lineair programmeren is het optimum vinden van de doelfunctie binnen een bepaald gebied. Het gebied waarover de optimalisatie plaatsvindt, wordt gegeven door de eisen die gesteld worden aan de variabelen. Zoals de naam al doet vermoeden, moeten de doelfunctie en alle eisen lineair zijn. Hier volgt een voorbeeld. Voorbeeld 4.1. De doelfunctie is p = 3x 1 + 2x 2, deze willen we maximaliseren. We stellen de volgende eisen aan de variabelen: x 2 5 x 1 + 2x 2 10 x 1 + 2x 2 6 5x 1 + x 2 5 x 1 + 2x 2 6 x 1 + 2x x 1 3x 2 4 x 1 4 x x 1 + x 2 5 3x 1 + 2x 2 (5, 5 2 ) x 1 4 2x 1 3x 2 4 x 2 0 x 1 Figuur 1: De eisen bakenen een gebied af. De doelfunctie is een lijn loodrecht op de pijl. Om het maximum te vinden, verschuiven we deze lijn als het ware in de richting van de pijl totdat we bij de rand van het grijze gebied komen. In dit voorbeeld komen we dan uit in het punt (5, 5 2 ), dit betekent dat het maximum ligt bij x 1 = 5 en x 2 = 5 2. De waarde van het optimum is p = 3x 1 + 2x 2 = 20. Zoals we in bovenstaand voorbeeld kunnen zien, corresponderen de eisen aan de variabelen met hypervlakken in de ruimte. In voorbeeld 4.1 hadden we twee variabelen, hierdoor vormden de eisen lijnen in R 2. In het algemeen geldt dat de eisen van een lineair programma met n variabelen corresponderen met (n 1)-dimensionale hypervlakken in R n. 7

14 Enkele uitbreidingen op het simplexalgoritme Een algemeen lineair programma kan altijd in de volgende vorm worden geschreven: max c T x zodat Ax b x 0 Een gelijkheid kan worden vervangen door twee ongelijkheden en -eisen kunnen door een vermenigvuldiging met 1 getransformeerd worden in -eisen. Daarnaast kan een variabele x i die ongebonden is (dat wil zeggen waarvoor niet is geëist dat x i 0) worden vervangen door x i x i met x i, x i 0, zodat geldt x Definities Definitie 1. De vergelijkingsvorm is nodig om later het simplexalgoritme toe te kunnen passen. Een lineair programma in deze vorm ziet er als volgt uit: max c T x zodat Ax = b x 0 met A R m n en b, c, x R n Van ongelijkheden kan door het toevoegen van een slackvariabele een gelijkheid worden gemaakt waarvoor geldt b 0: max c T x zodat Ax + s = b x, s 0 = max zodat c T x à x = b x 0 Waarbij A R m n, à R m (m+n), b, c, x R n en b R m+n +, c, x Rm+n. Voorbeeld 4.2. We bekijken nogmaals het lineaire programma uit voorbeeld 4.1, maar nu in de vergelijkingsvorm: Eerst maken we van alle ongelijkheden gelijkheden door het toevoegen van slackvariabelen: max p = 3x 1 + 2x 2 zodat 5x 1 + x 2 5 x 1 + 2x 2 6 x 1 + 2x x 1 3x 2 4 x 1 4 x 2 0 max p = 3x 1 + 2x 2 zodat 5x 1 + x 2 s 1 = 5 x 1 + 2x 2 + s 2 = 6 x 1 + 2x 2 + s 3 = 10 2x 1 3x 2 + s 4 = 4 x 1 + s 5 = 4 x 2 0 Omdat x 1 oorspronkelijk ongebonden was, vervangen we x 1 door x 1 x 1. Alle nieuwe variabelen voldoen aan x, s 0. 8

15 4 Lineair Programmeren max p = 3x 1 + 2x 2 zodat 5x 1 + x 2 s 1 = 5 x 1 + 2x 2 + s 2 = 6 x 1 + 2x 2 + s 3 = 10 2x 1 3x 2 + s 4 = 4 x 1 + s 5 = 4 x 2 0 max p = 3x 1 + 2x 2 zodat 5x 1 5x 1 + x 2 s 1 = 5 x 1 + x 1 + 2x 2 + s 2 = 6 x 1 x 1 + 2x 2 + s 3 = 10 2x 1 2x 1 3x 2 + s 4 = 4 x 1 x 1 + s 5 = 4 x, s 0 Het simplexalgoritme begint in een toegelaten basisoplossing en zoekt van daaruit verder naar een optimum. Definitie 2. Een toegelaten oplossing is een punt dat aan de eisen voldoet. toegelaten oplossing hoeft dus niet een optimale oplossing te zijn. Merk op: een Definitie 3. Een toegelaten basisoplossing is een toegelaten oplossing dat op een hoekpunt van het oplossingsgebied ligt. Oftewel een x R m waarvoor een B {1, 2,..., n}, B = m bestaat waarvoor geldt: De (vierkante) matrix A B is niet-singulier (dat wil zeggen: de kolommen zijn onafhankelijk); x j = 0 j / B In paragraaf wordt er gebruik gemaakt van de testratio: Definitie 4. Bij een gegeven kolom j worden de testratio s per rij als volgt gevonden: r i = b i A ij Definitie 5. In dit verslag gaan we uit van niet-ontaarde programma s. We noemen een lineair programma niet-ontaard wanneer aan de volgende twee voorwaarden is voldaan: 1. De matrix A heeft precies m lineair onafhankelijke kolommen. 2. De vector b is geen lineaire combinatie van minder dan m kolommen van A. Oftewel: als Ax = b, dan zijn minstens m componenten van x ongelijk aan Het originele simplex algoritme Het simplex algoritme werd halverwege de vorige eeuw bedacht door George Dantzig, daarna werd het verder ontwikkeld door onder andere John von Neumann en Oskar Morgenstern. De naam is pas later bedacht. Het algoritme doorloopt de rand van een simplex die gegeven wordt door de eisen van het programma, om zo de optimale oplossing te vinden. De simplexmethode heeft 9

16 Enkele uitbreidingen op het simplexalgoritme vele toepassingen. Dit komt doordat veel problemen vertaald kunnen worden naar een lineair programma. In deze paragraaf wordt het idee achter het simplex algoritme beschreven zoals het door Dantzig is bedacht. Tegenwoordig wordt het algoritme nauwelijks nog in deze vorm gebruikt, omdat er efficiëntere varianten van bestaan. Deze paragraaf dient dan ook vooral ter verduidelijking van de gedachten achter het algoritme Het idee van het simplexalgoritme Alle informatie over een lineair programma wordt weergegeven in tableaus. Om het starttableau te construeren, moeten de vergelijkingen eerst worden omgeschreven zodat de slackvariabelen aan de linkerkant staan. Deze vergelijkingen komen in het bovenste deel van het tableau te staan. De onderste regel van het tableau is voor de doelfunctie. Beide delen worden meestal gescheiden door een horizontale lijn. In het algemeen zit een starttableau er als volgt uit: s = b Ax p = c T x Vanuit het starttableau wordt een reeks tableaus geconstrueerd die allemaal dezelfde vorm hebben en dezelfde informatie over het lineair programma bevatten, maar waarin deze informatie op een andere manier is opgeschreven. Het laatste tableau in de reeks laat de informatie zodanig zien dat de optimale oplossing direct kan worden afgelezen. De basisvariabelen staan aan de linkerkant in het bovenste deel van het tableau en de niet-basisvariabelen staan op de onderste regel. Bij elk tableau hoort een toegelaten basisoplossing. Soms is de toegelaten basisoplossing van het starttableau gelijk aan x = (0, 0,..., 0, b }{{} 1, b 2,..., b m ). Dit wil zeggen dat de originele variabelen n nullen gelijk worden gesteld aan nul en dat de slackvariabelen de vergelijkingen kloppend maken. Dan geldt B = {n + 1, n + 2,..., n + m} en is A B de indentiteitsmatrix en dus niet-singulier. De doelfuctie heeft dan als waarde p = 0. In het algemeen kan een toegelaten basisoplossing worden gevonden door het simplexalgoritme op het probleem los te laten met een andere doelfunctie. Dit wordt uitgelegd in paragraaf In voorbeeld 4.3 is x = (0, 0, 2, 4, 3) een toegelaten basisoplossing. Dan geldt B = {3, 4, 5}. De variabelen x 3, x 4 en x 5 zijn basisvariabelen en x 1 en x 2 zijn niet-basisvariabelen. De waarde van de doelfunctie is nu p = 0. Tijdens het construeren van de reeks van tableaus, is het de bedoeling de waarde van de doelfunctie te verhogen in het geval van een maximalisatie probleem en te verlagen als het om een minimalisatie gaat. Bij een maximalisatie wordt de doelfunctie verhoogd door een niet-basisvariabelen met een +-teken in de onderste rij te vergroten en deze in de basis te zetten ten koste van een basisvariabele. Bij een minimalisatie moet er juist gekeken worden naar een niet-basisvariabele met een -teken. Hoeveel een niet-basisvariabele verhoogd kan worden wordt begrensd door de vergelijkingen boven de lijn in het tableau. Het herschrijven van een tableau op deze manier, wordt een pivot stap 10

17 4 Lineair Programmeren genoemd. In paragraaf 4.3 zullen enkele richtlijnen en regels voor dit pivoteren aan bod komen. Voorbeeld 4.3. We bekijken het volgende voorbeeld: x 2 x x 1 + 2x 2 4 x 1 x 2 2 (5, 3) x 2 3 max x 1 + x 2 zodat x 1 x 2 2 x 1 + 2x 2 4 x 2 3 x 1, x x 1 + x x 2 0 x 1 Omschrijven naar de vergelijksvorm en het starttableau opstellen geeft: max x 1 + x 2 zodat x 1 x 2 + s 1 = 2 x 1 + 2x 2 + s 2 = 4 x 2 + s 3 = 3 x 1, x 2, s 1, s 2, s 3 0 s 1 = 2 x 1 + x 2 s 2 = 4 + x 1 2x 2 s 3 = 3 x 2 p = x 1 + x 2 De toegelaten basisoplossing is x = (0, 0, 2, 4, 3) en p = 0. Zowel het verhogen van x 1 als x 2 leidt tot een verhoging van p, we kiezen willekeurig om x 1 te verhogen. We willen x 1 zoveel mogelijk vergroten terwijl we de variabelen s 1, s 2 en s 3 positief houden. De eerste vergelijking geeft ons x 1 2 en de overige vergelijkingen zijn geen beperking. We zetten x 1 in de basis in plaats van s 1 door de eerste vergelijking zó om te schrijven dat x 1 links komt te staan, vervolgens vullen we deze uitdrukking voor x 1 in in de overige vergelijkingen. We krijgen het volgende tableau: x 1 = 2 + x 2 s 1 s 2 = 6 x 2 s 1 s 3 = 3 x 2 p = 2 + 2x 2 s 1 De enige variabele die we kunnen verhogen die leidt tot een hogere waarde voor p is x 2. We kijken weer naar de restricties door de vergelijkingen voor x 1, s 2 en s 3. De eerste vergelijking geeft geen restrictie, de tweede geeft x 2 6 en uit de derde volgt x 2 3. Uitgaande van de meest strikte beperking, halen we s 3 uit de basis en zetten x 2 er voor in de plaats. De derde vergelijking 11

18 Enkele uitbreidingen op het simplexalgoritme omschrijven en de gevonden uitdrukking voor x 2 invullen in de andere vergelijkingen levert: x 1 = 5 s 1 s 3 s 2 = 3 s 1 + s 3 x 2 = 3 s 3 p = 8 s 1 2s 3 Er zijn nu geen variabelen meer die we kunnen ophogen om p te vergroten, we hebben dus het optimum gevonden. Omdat s 1 en s 3 niet in de basis zitten, geldt dat s 1 = s 3 = 0. Dit invullen geeft x 1 = 5, x 2 = 3, s 2 = 3 en p = Een toegelaten basisoplossing vinden Wanneer er geen triviale toegelaten basisoplossing is, is het mogelijk om door middel van het toepassen van het simplexalgoritme op een aangepast lineair programma toch een toegelaten basisoplossing te vinden. Hiervoor is het nodig om het oorspronkelijke programma een beetje aan te passen. We beginnen weer met max c T x zodat Ax = b x 0 Er worden m nieuwe variabelen toegevoegd, één voor elke eis. Laat nu x = (x 1, x 2,..., x n, t 1,..., t m ) en A = (A I m ), dan is een toegelaten basisoplossing te vinden door het volgende programma op te lossen: max (t 1 + t t m ) zodat Ax = b x 0 Indien p = 0 bestaat er een toegelaten basisoplossing en is deze gelijk aan de oplossing van het lineaire programma. Als p 0, dan bestaat er geen toegelaten basisoplossing voor het originele probleem en is deze dus niet oplosbaar. Voorbeeld 4.4. We bekijken het volgende probleem en schrijven deze in de vergelijkingsvorm: max x 1 + x 2 zodat x 1 + 2x 2 5 2x 1 2x 2 1 x 1, x 2 0 max x 1 + x 2 zodat x 1 + 2x 2 + s 1 = 5 2x 1 2x 2 s 2 = 1 x 1, x 2 s 1, s 2 0 Vervolgens voegen we de variabelen x 5 en x 6 toe en veranderen de doelfunctie zodat we een toege- 12

19 4 Lineair Programmeren laten basisoplossing kunnen vinden: max x 1 + x 2 zodat x 1 + 2x 2 + s 1 = 5 2x 1 2x 2 s 2 = 1 x 1, x 2 s 1, s 2 0 max t 1 t 2 zodat x 1 + 2x 2 + s 1 + t 1 = 5 2x 1 2x 2 s 2 + t 2 = 1 x, s, t 0 Het starttableau is nu: t 1 = 5 x 1 2x 2 s 1 t 2 = 1 2x 1 + 2x 2 + s 2 p = 6 + 3x 1 + s 1 s 2 (Merk op: p = t 1 t 2 = (5 x 1 2x 2 s 1 ) (1 2x 1 + 2x 2 + s 2 ) = 6 + 3x 1 + s 1 s 2 ). Het algoritme toepassen zoals uitgelegd in paragraaf levert de volgende reeks tableaus: t 1 = 5 x 1 2x 2 s 1 t 2 = 1 2x 1 + 2x 2 + s 2 p = 6 + 3x 1 + s 1 s 2 t 1 = 9 2 3x 2 s s t 2 x 1 = x s t 2 p = x 2 + s s t 2 x 2 = s s t t 2 x 1 = s s t t 2 p = t 1 t 2 En dus is x = (2, 3 2, 0, 0, 0, 0) een toegelaten basisoplossing. De vergelijkingen van het oorspronkelijke probleem omschrijven zodat x 1 en x 2 worden uitgedrukt in s 1 en s 2 en deze uitdrukkingen invullen in de doelfunctie levert het volgende starttableau en het eindtableau: x 1 = s s 2 x 2 = s s 2 p = s s 2 x 1 = 5 2x 2 s 1 s 2 = 9 6x 2 2s 1 p = 5 x 2 s 1 De optimale oplossing is dus x = (5, 0, 0, 9) met p = Pivoteren Pivoteren is in feite het omschrijven van een tableau van de ene basis naar een tableau met een nieuwe basis. De informatie in het tableau blijft gelijk, maar de basisvariabelen en daarmee de vergelijkingen en de (waarde van) de doelfunctie veranderen. 13

20 Enkele uitbreidingen op het simplexalgoritme Hoe werkt pivoteren? In paragraaf 4.2 werden de vergelijkingen, oftewel de rijen van het tableau, met de hand omgeschreven naar de nieuwe basis. Dit werd gedaan door de nieuwe basisvariabele naar de linkerkant te halen en de vergelijking die op deze manier werd gevonden voor deze variabele in te vullen in de overige vergelijkingen. In de praktijk worden er meestal matrices gebruikt voor het weergeven van de tableaus en gebeurt het pivoteren door middel van standaard rijoperaties. Er zijn drie standaard rijoperaties, de eerste twee zijn voldoende voor pivoteren: 1. Een rij vermenigvuldigen met een constante 2. Een rij bij een andere rij optellen 3. Twee rijen verwisselen Tijdens het pivoteren in het punt M ij wordt pivot-kolom j omgeschreven naar een veelvoud van de eenheidsvector E i. Dit betekent dat er niets hoeft te veranderen aan de i-de rij, maar dat een veelvoud van rij i bij de overige rijen wordt opgeteld zodat M kj = 0 voor k i. Oftewel: k {1... m} l {1... n}\{i} : M kl M kl M kj M ij M il Enkele pivotregels Pivotregels bepalen welke variabele de basis in komt (en in sommige gevallen ook welke variabele de basis verlaat). Hieronder worden enkele pivotregels besproken. Grootste coëfficiënt: Dit is de methode die Dantzig zelf voorstelde en in dit verslag is gebruikt. De variabele in de doelfunctie met de grootste coëfficiënt die de doelfunctie verhoogd wordt gekozen om de basis in te gaan. Grootste toename: Bij deze methode wordt gekeken naar de absolute toename van de doelfunctie. Er wordt dus niet (alleen) naar de coëfficiënt gekeken, maar ook naar hoeveel elke mogelijke variabele wordt beperkt door de eisen. Steilste helling: Er wordt gekeken naar de richting van de doelfunctie en aan de hand daarvan wordt gekeken welke mogelijke variabele in de basis komt. Stel x is de huidige basis. De nieuwe basis x, is de basis waarvoor ct (x x) x x gemaximaliseerd wordt. Regel van Bland: Bij het gebruik van de regel van Bland wordt voorkomen dat het algoritme in een cycle terecht komt. De variabele die de basis in komt is degene met de laagste index van de mogelijke variabelen en hetzelfde geldt voor de variabele die uit de basis wordt gehaald. Willekeurig: Zowel de variabele die de basis in gaat als die eruit gaan wordt willekeurig gekozen, bijvoorbeeld door gebruik te maken van een uniforme verdeling. 14

21 4 Lineair Programmeren 4.4 Het simplexalgoritme in de praktijk In deze paragraaf zal ik uitleggen hoe het simplexalgoritme in de praktijk werkt, dit doe ik aan de hand van de website [1]. Merk op dat de rollen van b en c op deze website omgedraaid zijn ten opzichte van de b en c in dit verslag Tableaus aflezen Het simplex algoritme werkt met tableaus, deze worden gerepresenteerd door matrices. Op deze matrices worden matrixoperaties los gelaten die uiteindelijk naar het eindtableau leiden waaruit de oplossing van het lineaire programma kan worden afgelezen. We zullen verderop in deze paragraaf zien hoe een tableau geconstrueerd wordt. Een voorbeeld van een (eind)tableau is: x 1 x 2 x 3 x 4 x 5 x 6 p x 1 a 11 a 12 0 a 14 a w 1 x 3 0 a 22 a 23 a 24 a w 2 x 6 0 a 32 0 a 34 a 35 a 36 0 w 3 p 0 p 2 0 p 4 p 5 0 p 6 w p De waarde van het optimum staat rechts onderin: w p. De variabelen x 1, x 3 en x 6 staan nu in de basis, de overige variabelen zijn gelijk aan 0. Verder geldt: x 1 = w 1 a 11, x 3 = w 2 a 23 en x 6 = w 3 a 36. In paragraaf 4.2 zou dit tableau er als volgt hebben uitgezien: x 1 = w 1 a 12 x 2 a 14 x 4 a 15 x 5 x 3 = w 2 a 22 x 2 a 24 x 4 a 25 x 5 x 6 = w 3 a 32 x 2 a 34 x 4 a 35 x 5 p = w p p 2 x 2 p 4 x 4 p 5 x Het simplexalgoritme We zullen het stappenplan doornemen aan de hand van twee voorbeelden. Stap 1: Vertaal het lineair probleem naar een systeem van lineaire vergelijkingen. Dit doen we door bij alle ongelijkheden een zogeheten slackvariabele toe te voegen. De doelfunctie wordt op 0 gesteld door alle variabelen naar de linkerkant te brengen. Stel ons lineair probleem was: max p = c T x zodat Ax b x 0 15

22 Enkele uitbreidingen op het simplexalgoritme Met x, c R n, b R m en A R m n. Dan wordt dit nu: Ax + s = b c T x + p = 0 Waarbij s R m. Merk op dat de eis x 0 wordt weg gelaten. Dit kan omdat het simplexalgoritme aanneemt dat de variabele x niet-negatief is. Merk op dat dit overeenkomt met de vergelijkingsvorm uit paragraaf Voorbeeld a: Voorbeeld b: max p = 2x 1 3x 2 + x 3 zodat x 1 + x 2 + x x 1 3x 2 + x 3 3 2x 1 + x 2 x 3 10 x 1, x 2, x 3 0 max p = x 1 + 2x 2 + 3x 3 zodat 7x 1 + x 3 6 x 1 + 2x x 2 + 4x 3 30 x 1, x 2, x 3 0 x 1 + x 2 + x 3 + s 1 = 10 4x 1 3x 2 + x 3 + s 2 = 3 2x 1 + x 2 x 3 + s 3 = 10 2x 1 + 3x 2 x 3 + p = 0 7x 1 + x 3 + s 1 = 6 x 1 + 2x 2 + s 2 = 20 3x 2 + 4x 3 + s 3 = 30 x 1 2x 2 3x 3 + p = 0 Stap 2: Vertaal het systeem van lineaire vergelijkingen naar een matrix. De matrix die we op deze manier krijgen, is het eerste tableau waarmee we gaan werken. hadden een systeem van lineaire vergelijkingen: We Ax + s = b c T x + p = 0 Dit wordt de volgende matrix: Voorbeeld a: x T s T p s A I m 0 b p c T x 1 + x 2 + x 3 + s 1 = 10 4x 1 3x 2 + x 3 + s 2 = 3 2x 1 + x 2 x 3 + s 3 = 10 2x 1 + 3x 2 x 3 + p = 0 x 1 x 2 x 3 s 1 s 2 s 3 p s s s p

23 4 Lineair Programmeren Voorbeeld b: 7x 1 + x 3 + s 1 = 6 x 1 + 2x 2 + s 2 = 20 3x 2 + 4x 3 + s 3 = 30 x 1 2x 2 3x 3 + p = 0 x 1 x 2 x 3 s 1 s 2 s 3 p s s s p Stap 3: Selecteer een pivotkolom. Kies een kolom (met uitzondering van de laatste kolom) met het meest negatieve getal in de onderste rij. Als er geen kolommen (meer) zijn met een negatief getal in de onderste rij, dan is het optimum gevonden. In paragraaf 4.2 zochten we ook naar een variabele om in de basis te zetten om zo de waarde van de doelfunctie te verhogen. Voorbeeld a: Voorbeeld b: x 1 x 2 x 3 s 1 s 2 s 3 p s s s p x 1 x 2 x 3 s 1 s 2 s 3 p s s s p Stap 4: Selecteer de pivotcel. Bereken hiervoor van elke rij met een positief getal in de pivotkolom de testratio. De testratio is gelijk aan het getal uit de laatste kolom gedeeld door het getal in de pivotkolom, zie paragraaf Kies een rij waarvoor de testratio het kleinst is. 17

24 Enkele uitbreidingen op het simplexalgoritme Voorbeeld a: Voorbeeld b: x 1 x 2 x 3 s 1 s 2 s 3 p 10 s = 10 3 s = 0, s = 5 p x 1 x 2 x 3 s 1 s 2 s 3 p 6 s = 6 s s = 7, 5 p Stap 5: Pivoteer met behulp van de gekozen pivotcel. Pivoteren zoals beschreven in paragraaf 4.3 geeft ons het tweede tableau. Voorbeeld a: Voorbeeld b: x 1 x 2 x 3 s 1 s 2 s 3 p s s s p x 1 x 2 x 3 s 1 s 2 s 3 p s s s p x 1 x 2 x 3 s 1 s 2 s 3 p s x s p x 1 x 2 x 3 s 1 s 2 s 3 p x s s p

25 4 Lineair Programmeren Stap 6: Herhaal stap 3-5 totdat er geen pivotkolommen meer zijn. Bij iedere herhaling krijgen we een nieuw tableau. Op het moment dat er geen kolommen meer zijn om te kiezen als pivotkolom, is het optimum gevonden en stopt het algoritme. Voorbeeld a: Voorbeeld b: x 1 x 2 x 3 s 1 s 2 s 3 p s x s p x 1 x 2 x 3 s 1 s 2 s 3 p x s s p x 1 x 2 x 3 s 1 s 2 s 3 p s x s p x 1 x 2 x 3 s 1 s 2 s 3 p x s x p De oplossing aflezen Dit gaat op dezelfde manier als het aflezen van een basisoplossing. Voorbeeld a: Voorbeeld b: x 1 x 2 x 3 s 1 s 2 s 3 p s x s p x 1 x 2 x 3 s 1 s 2 s 3 p x s x p x 1 = 0 s 1 = 28 4 p = 6 2 = 3 x 2 = 0 s 2 = 0 x 3 = 3 1 = 3 s 3 = 62 2 = 13 x 1 = 0 s 1 = 0 p = 66 3 = 22 x 2 = 6 3 = 2 s 2 = 48 3 = 16 x 3 = 6 1 = 6 s 3 = 0 19

26 Enkele uitbreidingen op het simplexalgoritme 4.5 Wiskundige beschrijving en bewijs van het simplexalgoritme In deze paragraaf gebruiken we de notatie zoals gebruikt in [4]. Een lineair programma in de vergelijkingsvorm bestaat uit n variabelen en m+1 lineaire vergelijkingen (m eisen en de doelfunctie met waarde z). In elke stap bestaat de basis B uit m basisvariabelen en de n m niet-basisvariabelen vormen de verzameling N. Een tableau behorend bij een basis B wordt genoteerd als τ(b) en ziet er als volgt uit: τ(b) = x B = p + Qx N z = z 0 + r T x N, waarbij p, x B R m, r R n m, Q R m (n m) en z 0 R. De toegelaten basisoplossing is nu x N = 0, x B = p en z = z 0. Merk op dat er geldt: Q = A 1 B A N, p = A 1 B b, z 0 = c T B A 1 B b en r = c N (c T B AT B A N) T. Tijdens het pivoteren wordt de oude basis B vervangen door een nieuwe basis B en dus verandert het tableau τ(b) in τ(b ). Er wordt een niet-basisvariabele x v gekozen om de basis in te gaan ten koste van een basisvariabele x u. Dus geldt: B = (B\{u}) {v}. Het heeft alleen zin om x v in de basis te zetten als de coëfficiënt van x v in de doelfunctie positief is, anders heeft het toevoegen van x v aan de basis juist een negatieve invloed op de waarde van de doelfunctie. Daarnaast mag het toevoegen van x v aan B er niet voor zorgen dat andere basisvariabelen negatief worden, hiervoor moet x v de variabele vervangen die de verhoging van x v het meest beperkt. We schrijven B = {k 1,..., k m } met k 1 <... < k m en N = {l 1,..., l n m } met l 1 <... < l n m. Dan geldt x ki = p i + n m q ij x lj. j=1 Laat nu α {1,..., m} zodat u = k α en laat β {1,..., n m} zodat v = l β. Dan geldt voor de basisvariabele x u = x kα : q αβ < 0 en γ := p { α = min p } i q iβ < 0. q αβ i=1,...,m q iβ Dus er geldt x v = γ = pα q αβ. 20

27 4 Lineair Programmeren Lemma 1. Voor een niet-ontaard programma geldt: x is een toegelaten basisoplossing een toegelaten oplossing met precies m positieve componenten. x is Bewijs. Omdat x een toegelaten oplossing basisoplossing is, heeft x geen negatieve componenten. Stel x heeft minder dan m positieve componenten, dan is b een combinatie van minder dan m kolommen van A. Dit is in tegenspraak met het feit dat het programma niet-ontaard is. Stel x heeft meer dan m positieve componenten, dan is x afhankelijk van meer dan m kolommen van A. Aangezien A rang m heeft, zijn deze kolommen lineair afhankelijk en dit is wederom in tegenspraak met de aanname dat het programma niet-ontaard is. Dus het moet wel zo zijn dat x precies m positieve componenten heeft. Stel x is een toegelaten oplossing met precies m positieve elementen, x is een toegelaten basisoplossing wanneer de kolommen van A B onafhankelijk zijn. Stel de kolommen zijn afhankelijk, dan is er een γ zodat γa B = γ 1 (A B ) γ m (A B ) m = 0 met γ i > 0 voor een zekere i. Dan geldt voor elke λ: x 1 (A B ) x m (A B ) m = b = (x 1 λγ 1 )(A B ) (x m λγ m )(A B ) m = b { } Bekijken we nu λ = min xi i=1...m γ i γ i > 0, dan worden er meer coëfficiënten gelijk aan 0. Dit betekent dat b een combinatie is van minder dan m kolommen van A en dit is in tegenspraak met een niet-ontaard programma. Dus moeten de kolommen van A B onafhankelijk zijn en is x dus een toegelaten basisoplossing. En dus: x is een toegelaten basisoplossing x is een toegelaten oplossing met precies m positieve componenten. Lemma 2. Als B een toegelaten basis is, dan is ook B = (B\{u}) {v} een toegelaten basis. Bewijs. A v is een lineaire combinatie van kolommen van A B : A v = j Bλ j A j = A B λ En dus geldt λ = A 1 B A v = λ j = ( A 1 B A v (A )j = 1 B (A N) β )j = ( Q) jβ = q jβ Verder geldt A 1j x j j B b = A B x B = b =. = x 1 A mj x j j B 21 A 11. A m x m A 1m. A mm = j Bx j A j

28 Enkele uitbreidingen op het simplexalgoritme Voor willekeurige γ geldt γa v γλ j A j = 0. En dus geldt: j B γa v + (x j γλ j ) A j = b j B ( ) Kiezen we γ = γ, dan is x j γ λ j = p j pα q αβ q jβ = 0 voor j = α. En dus geldt dat er precies één coëfficiënt 0 is in de representatie γ A v + (x j γ λ j ) A j = b, namelijk die behorend bij j B x u. Volgens lemma 1 is B = (B\{u}) {v} een basis, we moeten alleen nog aantonen dat A B niet-singulier is. We weten dat j α k zodat (A B ) j = (A B ) k en dus (A 1 B A B ) j = e k. Verder geldt: m ( ) A 1 B 1r (A N) rβ m ( ) A 1 B 1r r=1 (A B ) rα r=1 Q β = m r=1 ( A 1 B. = ) mr (A N) rβ Volgens de pivotregels geldt q αβ 0, dus: m ( ) 0 q αβ = A 1 B αr (A N) rβ = r=1 m r=1 m r=1 ( A 1 B. ) mr (A B ) rα = (A 1 B A B ) α ( A 1 B )αr (A B ) rα = ( A 1 B A B )αα Kijken we nu naar (A 1 B A B ) α, dan zien we dat (A 1 B A B ) αα > 0 en i α (A 1 B A B ) αj = 0. En dus is A 1 B A B niet-singulier. Omdat ook A B niet-singulier is, volgt nu dat A B niet-singulier is. Het is nu duidelijk dat het simplexalgoritme steeds een betere toegelaten basisoplossing vindt, maar wanneer is het optimum bereikt? 22

29 4 Lineair Programmeren Lemma 3. Het optimum is gevonden zodra r < 0, de doelfunctie heeft dan de waarde z 0. Bewijs. Er geldt z = z 0 + r T x N, uit lemma 2 volgt dat x N = 0 en dus geldt z = z 0. Aangezien x N = 0, kan de waarde van z worden verhoogd door een variabele x j N toe te laten tot de basis als de bijbehorende coëfficiënt positief is (anders heeft het toelaten van x j tot de basis een negatieve invloed op de waarde van z). Zodra r 0 is er dus een lokaal optimum gevonden. Omdat het toegelaten gebied convex is en de doelfunctie lineair is, is ook het globale optimum gevonden. Lemma 4. Bij een niet-ontaard programma eindigt het simplexalgoritme na een eindig aantal stappen. Bewijs. Omdat er sprake is van een niet-ontaard programma, komt het programma nooit in een cykel terecht. Aangezien er eindig veel variabelen zijn, zijn er ook slechts een eindig aantal mogelijkheden voor de basis B. Omdat bij iedere pivotstap een nieuwe basis wordt gevormd met een strikt hogere waarde voor de doelfunctie, wordt na een eindig aantal stappen het optimum bereikt. Lemma s 2, 3 en 4 bewijzen samen dat het simlexalgoritme werkt. 4.6 Conclusie Het simplexalgoritme is een handige methode om lineaire programma s op te lossen. Het idee van het algoritme is in dit hoofdstuk besproken, hoe het in de praktijk wordt geïmplementeerd is afhankelijk van de toepassing en de specifieke wensen van de gebruiker. Voor specialistische toepassingen kunnen er in de praktijk aanpassingen worden gedaan aan het algoritme. In de volgende hoofdstukken zullen we hier twee voorbeelden van zien. 23

30 Enkele uitbreidingen op het simplexalgoritme 5 Afwijkingen toestaan Zoals in hoofdstuk 3 al is aangekondigd, zal in dit hoofdstuk het probleem van tegenstrijdige eisen behandeld worden: Vraag 1. Soms spreken de eisen elkaar tegen, hierdoor is het programma niet altijd feasible. Het simplexalgoritme kan in dit geval geen oplossing vinden. Is er een manier om het algoritme zelf de eisen te laten aanpassen (soepeler te laten maken), zodat het algoritme toch een uitkomst geeft? 5.1 Mogelijke oplossing: grenzen minder strak maken Als eisen elkaar tegen spreken, dus als het niet mogelijk is om aan alle eisen tegelijkertijd te voldoen, dan is het gebied waarover geoptimaliseerd moet worden leeg. In dit geval zijn er dus geen mogelijke oplossingen voor het probleem en bestaat er ook geen optimale oplossing. Ter verduidelijking bekijken we het volgende voorbeeld: Voorbeeld 5.1. x 2 4 x 1 + x max x 1 + x 2 zodat x 1 + x 2 1 x 1 + 6x x 1 x x 1 + x 2 x 1 + 6x x 1 4x 1 x 2 10 Figuur 2: Het gebied is leeg. Zoals in het plaatje goed te zien is, is het gebied leeg: er is geen oplossing van het probleem! Om het gebied niet-leeg te krijgen, kunnen we (een van) de grenzen iets verschuiven totdat er wel een punt geschikt is. Dit doen we door bij elke eis een extra variabele toe te voegen waardoor de eis 24

31 5 Afwijkingen toestaan makkelijker behaald wordt. In de doelfunctie komen deze variabelen terug met zogeheten straffen, het is immers niet wenselijk om deze variabelen te gebruiken. We kijken weer naar dezelfde situatie als in voorbeeld 5.1 en voegen nu de extra variabelen v 1, v 2 en v 3 toe met de bijbehorende straffen p 1, p 2 en p 3 in de doelfunctie. Voorbeeld 5.2. max x 1 + x 2 p 1 v 1 p 2 v 2 p 3 v 3 zodat x 1 + x 2 + v 1 1 x 1 + 6x 2 v x 1 x 2 + v 3 10 Als we de straffen p 1 = 2, p 2 = 3 en p 3 = 5 kiezen, dan krijgen we als oplossing x 1 = 3, x 2 = 2, v 1 = 2, v 2 = 0, v 3 = 0 en het maximum heeft de waarde 5. Dat v 1 de waarde 2 heeft gekregen, wil zeggen dat de eerste eis met 2 is versoepeld. In plaats van x 1 + x 2 1, geldt nu x 1 + x 2 = 1. Als we de straffen anders kiezen, krijgen we een andere oplossing. Kiezen we bijvoorbeeld p 1 = 7, p 2 = 1 en p 3 = 2, dan vinden we als oplossing x 1 = 11 3, x 2 = 14 3, v 1 = 0, v 2 = 50 3, v 3 = 0 met optimale waarde Nu is de tweede eis veranderd in x 1 + 6x (= ). x 2 4 x 1 + x 2 1 x 2 4 x 1 + x 2 1 x 1 + 6x ( 11 3, 14 3 ) 3 x 1 + x x 1 + x 2 (3, 2) x 1 + 6x x 1 + x 2 x 1 + 6x x x 1 4x 1 x x 1 x 2 10 (a) p 1 = 2, p 2 = 3, p 3 = 5 (b) p 1 = 7, p 2 = 1, p 3 = 2 Figuur 3: Andere oplossingen bij andere straffen. 25

32 Enkele uitbreidingen op het simplexalgoritme Zoals we zien heeft de hoogte van de straffen invloed op de uitkomst. Het is daarom belangrijk om goed te bedenken welke eisen versoepeld mogen met welke waarde. Om te voorkomen dat sommige eisen te veel afwijken van de eigenlijke grens, is het ook mogelijk om een maximale waarde aan de afwijking mee te geven. Dit is te zien als we in het voorgaande voorbeeld eisen dat v 1, v 2, v 3 10: Voorbeeld 5.3. x 2 max x 1 + x 2 7v 1 v 2 2v 3 zodat x 1 + x 2 + v 1 1 x 1 + 6x 2 v x 1 x 2 + v 3 10 v 1, v 2, v x 1 + x 2 x 1 + x x 1 + x 2 1 ( 17 5, 18 5 ) x 1 + 6x 2 25 x 1 + 6x Oplossing: x 1 = 17 5, x 2 = 18 5, v 1 = 4 5, v 2 = 10, v 3 = 0 en de optimale waarde is x 1 x 2 10 x 1 Figuur 4: Begrenzen van de afwijkingen. Het is mogelijk dat er ondanks de extra versoepelingen nog steeds geen oplossing is. Dit betekent dat de gestelde eisen elkaar dermate tegenspreken dat ook de toegestane afwijkingen er niet voor kunnen zorgen dat er een oplossing is. In dit geval is het raadzaam nog eens goed naar de gestelde eisen te kijken en te controleren of deze wel juist zijn. 5.2 Uitleg algoritme De basis blijft hetzelfde zoals uitgelegd in hoofdstuk 4: er worden extra variabelen toegevoegd aan het probleem, maar de manier om een oplossing voor het probleem te vinden blijft ongewijzigd. In deze paragraaf zullen we steeds het volgende probleem bekijken: 26

33 5 Afwijkingen toestaan Voorbeeld 5.4. min 5x 1 + 4x 2 + 2x 3 zodat x 1 + x 2 + x x 1 + x x 1 + x x 2 + 4x x 2 + 4x 3 30 Aan de hand van bovenstaand voorbeeld zullen we kijken hoe het algoritme werkt. Als eerste moet er worden vastgesteld welke eisen mogen afwijken en in welke mate. Rovecom heeft er voor gekozen om met percentages te werken in plaats van met absolute afwijkingen, dit zorgt voor een beter inzicht in de grootte van de afwijking. Stel er wordt besloten dat de eerste en de laatste eis 7% mogen afwijken en de overige eisen 10%. De totale afwijking mag niet meer zijn dan 25%. Daarnaast moet ook de hoogte van de straffen worden vastgesteld. We nemen aan dat alle eisen even belangrijk zijn en dat afwijken als zeer negatief wordt ervaren, daarom stellen we alle straffen gelijk aan 100. Door het toevoegen van de extra variabelen, de straffen en de beperkingen op de afwijkingen ziet ons probleem er als volgt uit: Voorbeeld 5.5. min 5x 1 + 4x 2 + 2x v v v v v 5 zodat x 1 + x 2 + x v x 1 + x v x 1 + x 2 17v x 2 + 4x v x 2 + 4x 3 30v 5 30 v 1, v 5 0, 07 v 2, v 3, v 4 0, 10 v 1 + v 2 + v 3 + v 4 + v 5 0, 25 Deze toevoegingen zien we ook terug in de tableaus. Merk op dat bij beide problemen de doelfunctie met 1 is vermenigvuldigd om er een maximalisatieprobleem van te maken en dat de slackvariabelen zijn toegevoegd. 27

34 Enkele uitbreidingen op het simplexalgoritme x 1 x 2 x 3 s 1 s 2 s 3 s 4 s 5 p s s s s s p x 1 x 2 x 3 v 1 v 2 v 3 v 4 v 5 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 p s s s s s s , 07 s , 07 s , 1 s , 1 s , 1 s , 25 p Het simplexalgoritme zal nu als optimale waarde de waarde inclusief straffen teruggeven. Om het gewenste antwoord te krijgen, moeten de straffen hier dus nog van af getrokken worden. Uit het eindtableau zijn ook de waarden voor de nieuwe variableen v i s af te lezen, aan deze waarden is te zien welke eis met welke mate is versoepeld. 5.3 Mogelijke problemen Complexiteit Door het toevoegen van extra variabelen en extra eisen, wordt de complexiteit verhoogd. Het is verstandig om eerst het programma op te lossen zonder de mogelijkheid om grenzen te versoepelen. Hierdoor wordt de complexiteit alleen verhoogd in de gevallen dat dit echt nodig is Nog steeds geen oplossing Doordat er eisen worden gesteld aan hoe ver er een eis maximaal versoepeld mag worden, kan het voorkomen dat er nog steeds geen oplossing bestaat. Mocht er door deze eisen aan de afwijkingen geen oplossing meer gevonden worden, is het de vraag hoe reëel de eisen zijn. Blijkbaar is het niet mogelijk om in de buurt van de eisen te blijven om een oplossing te vinden. Het is dan een goed idee om nog een keer goed naar de betekenis van de eisen te kijken en te zoeken naar een andere mogelijkheid. 28

35 5 Afwijkingen toestaan Hoogte van de straffen Zoals we in de voorbeelden in de vorige paragrafen hebben kunnen zien, hebben de straffen invloed op de optimale oplossing. Het is dus belangrijk om over de hoogte hiervan na te denken. De straffen zijn een maat voor hoe erg het is om een eis te overschrijden (in het geval van een maximale eis) of niet te halen (in het geval van een minimale eis). Hoe hoger de straf, hoe strenger de bijbehorende eis is. Als de straffen te laag worden ingesteld, dan mogen de eisen makkelijk verschoven worden. Het risico hiervan is dat er eisen worden versoepeld, terwijl dit misschien helemaal niet nodig is om tot een oplossing te komen. Te hoge straffen kunnen ervoor zorgen dat de oorspronkelijke doelfunctie, de prijs van het voermengsel, nauwelijks tot geen invloed meer heeft op de optimalisatie Straffen minimaliseren Het is mogelijk om eerst een optimalisatie uit te voeren zonder de oorspronkelijke doelfunctie. Op deze manier wordt het oplossingsgebied gevonden waarbij de eisen zo min mogelijk versoepeld hoeven te worden. Het nadeel hiervan is dat het oplossingsgebied vaak maar uit één punt zal bestaan, dit is dan automatisch het optimum van het originele probleem. De prijs van het voermengsel heeft dan geen invloed meer. 5.4 Conclusie Door het toevoegen van extra variabelen is het mogelijk om eisen te versoepelen waardoor het oplossingsgebied wordt vergroot. Hierdoor wordt er altijd een oplossing gevonden. Door eisen te stellen aan de hoogte van deze extra variabelen kan worden tegen gegaan dat eisen te ver worden overschreden. Om te zorgen dat de eisen niet zonder meer worden versoepeld, moeten de extra variabelen ook worden opgenomen in de doelfunctie. De hoogte van de coëfficiënten van deze variabelen geven aan hoe belangrijk de bijbehorende eisen zijn. 29

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 3 Leo van Iersel Technische Universiteit Delft 21 september 2016 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 1 / 36 LP: Lineair Programmeren min x 1 2

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 3 Leo van Iersel Technische Universiteit Delft 21 september 2016 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 1 / 36 LP: Lineair Programmeren min x 1 2

Nadere informatie

Lineaire programmering

Lineaire programmering Lineaire programmering Hans Maassen kort naar Inleiding Besliskunde van J. Potters [Pot]. en Methods of Mathematical Economics van J. Franklin [Fra]. Lineaire programmering is het bepalen van het maximum

Nadere informatie

Basiskennis lineaire algebra

Basiskennis lineaire algebra Basiskennis lineaire algebra Lineaire algebra is belangrijk als achtergrond voor lineaire programmering, omdat we het probleem kunnen tekenen in de n-dimensionale ruimte, waarbij n gelijk is aan het aantal

Nadere informatie

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

Optimalisering en Complexiteit, College 10. Begrensde variabelen. Han Hoogeveen, Utrecht University Optimalisering en Complexiteit, College 10 Begrensde variabelen Han Hoogeveen, Utrecht University Begrensde variabelen (1) In veel toepassingen hebben variabelen zowel een ondergrens als een bovengrens:

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 2 Leo van Iersel Technische Universiteit Delft 14 september 2016 Leo van Iersel (TUD) TW2020 Optimalisering 14 september 2016 1 / 30 Modelleren van LP en ILP problemen

Nadere informatie

TU/e 2DD50: Wiskunde 2

TU/e 2DD50: Wiskunde 2 TU/e 2DD50: Wiskunde 2 Enkele mededelingen Instructies (vandaag, 10:45 12:30) in vier zalen: Zaal Aud 10 Pav b2 Pav m23 Ipo 0.98 voor studenten met achternaam beginnend met letters A tot en met D met letters

Nadere informatie

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

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur. Universiteit Utrecht Faculteit Wiskunde en Informatica Examen Optimalisering op maandag 18 april 2005, 9.00-12.00 uur. De opgaven dienen duidelijk uitgewerkt te zijn en netjes ingeleverd te worden. Schrijf

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 2 Leo van Iersel Technische Universiteit Delft 9 september 2015 Leo van Iersel (TUD) TW2020 Optimalisering 9 september 2015 1 / 23 Huiswerk Huiswerk 1 is beschikbaar op

Nadere informatie

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

Optimalisering en Complexiteit, College 11. Complementaire speling; duale Simplex methode. Han Hoogeveen, Utrecht University Optimalisering en Complexiteit, College 11 Complementaire speling; duale Simplex methode Han Hoogeveen, Utrecht University Duale probleem (P) (D) min c 1 x 1 + c 2 x 2 + c 3 x 3 max w 1 b 1 + w 2 b 2 +

Nadere informatie

Lineair Programmeren op het polytoop

Lineair Programmeren op het polytoop Lineair Programmeren op het polytoop Paulien Neppelenbroek 12 juli 2017 Bachelorproject wiskunde Supervisor: dr. Jan Brandts Korteweg-de Vries Instituut voor Wiskunde Faculteit der Natuurwetenschappen,

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 5 Leo van Iersel Technische Universiteit Delft 12 oktober 2016 Leo van Iersel (TUD) TW2020 Optimalisering 12 oktober 2016 1 / 31 Dualiteit Dualiteit: Elk LP probleem heeft

Nadere informatie

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.

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. 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. Een LP probleem heeft n>2 variabelen en n+2 constraints.

Nadere informatie

Lineaire Algebra (2DD12)

Lineaire Algebra (2DD12) Lineaire Algebra (2DD12) docent: Ruud Pellikaan - Judith Keijsper email: J.C.M.Keijsper@tue.nl studiewijzer: http://www.win.tue.nl/ ruudp/2dd12.html Technische Universiteit Eindhoven college 1 J.Keijsper

Nadere informatie

Lineaire Algebra voor ST

Lineaire Algebra voor ST Lineaire Algebra voor ST docent: Judith Keijsper TUE, HG 9.31 email: J.C.M.Keijsper@tue.nl studiewijzer: http://www.win.tue.nl/wsk/onderwijs/2ds06 Technische Universiteit Eindhoven college 2 J.Keijsper

Nadere informatie

TU/e 2DD50: Wiskunde 2 (1)

TU/e 2DD50: Wiskunde 2 (1) TU/e 2DD50: Wiskunde 2 (1) Organisatorische informatie Wat Dag Tijd Zaal Docent College Tue 5+6 Aud 6+15 Gerhard Woeginger Thu 1+2 Aud 1+4 Gerhard Woeginger Clicker session Tue 7+8 Aud 6+15 Gerhard Woeginger

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

Nadere informatie

Stelsels Vergelijkingen

Stelsels Vergelijkingen Hoofdstuk 5 Stelsels Vergelijkingen Eén van de motiverende toepassingen van de lineaire algebra is het bepalen van oplossingen van stelsels lineaire vergelijkingen. De belangrijkste techniek bestaat uit

Nadere informatie

Lineaire Algebra voor ST

Lineaire Algebra voor ST Lineaire Algebra voor ST docent: Judith Keijsper TUE, HG 9.31 email: J.C.M.Keijsper@tue.nl studiewijzer: http://www.win.tue.nl/wsk/onderwijs/2ds6 Technische Universiteit Eindhoven college 2 J.Keijsper

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 5 Leo van Iersel Technische Universiteit Delft 2 oktober 206 Leo van Iersel (TUD) TW2020 Optimalisering 2 oktober 206 / 3 Dualiteit Dualiteit: Elk LP probleem heeft een

Nadere informatie

Stelsels lineaire vergelijkingen

Stelsels lineaire vergelijkingen Een matrix heeft een rij-echelon vorm als het de volgende eigenschappen heeft: 1. Alle nulrijen staan als laatste rijen in de matrix. 2. Het eerste element van een rij dat niet nul is, ligt links ten opzichte

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 10 Leo van Iersel Technische Universiteit Delft 23 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 1 / 40 Vraag Ik heb het deeltentamen niet

Nadere informatie

Universiteit Utrecht Departement Informatica

Universiteit Utrecht Departement Informatica Universiteit Utrecht Departement Informatica Uitwerking Tussentoets Optimalisering 20 december 206 Opgave. Beschouw het volgende lineair programmeringsprobleem: (P) Minimaliseer z = x 2x 2 + x 3 2x 4 o.v.

Nadere informatie

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

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). Tentamen Optimalisering (IN2805-I) Datum: 3 april 2008, 14.00 17.00. Docent: Dr. J.B.M. Melissen Naam: Studienummer: 1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist

Nadere informatie

Modellen en Simulatie Speltheorie

Modellen en Simulatie Speltheorie Utrecht, 20 juni 2012 Modellen en Simulatie Speltheorie Gerard Sleijpen Department of Mathematics http://www.staff.science.uu.nl/ sleij101/ Program Optimaliseren Nul-som matrix spel Spel strategie Gemengde

Nadere informatie

Bijlage A Simplex-methode

Bijlage A Simplex-methode Dee bijlage hoort bij Beter beslissen, Bijlage A Simplex-methode Verreweg de meeste LP-problemen worden opgelost met behulp van het ogenoemde Simplex-algoritme, in ontwikkeld door G.B. Dantig. De meeste

Nadere informatie

Chemische reacties. Henk Jonker en Tom Sniekers

Chemische reacties. Henk Jonker en Tom Sniekers Chemische reacties Henk Jonker en Tom Sniekers 23 oktober 29 Inleiding Op 3 september hebben wij met u gesproken U heeft aan ons gevraagd om twee problemen op te lossen Het eerste probleem ging over het

Nadere informatie

3 Wat is een stelsel lineaire vergelijkingen?

3 Wat is een stelsel lineaire vergelijkingen? In deze les bekijken we de situatie waarin er mogelijk meerdere vergelijkingen zijn ( stelsels ) en meerdere variabelen, maar waarin elke vergelijking er relatief eenvoudig uitziet, namelijk lineair is.

Nadere informatie

Mengsel mix. Elieke van Sark en Liza Fredriks

Mengsel mix. Elieke van Sark en Liza Fredriks Mengsel mix Elieke van Sark en Liza Fredriks 2 oktober 29 Inleiding Een chemisch bedrijf is naar ons toe gekomen met een aantal vragen over het reageren van stoffen tot andere stoffen Hierbij gaat het

Nadere informatie

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

Lineaire Algebra TW1205TI. I.A.M. Goddijn, Faculteit EWI 12 februari 2014 Lineaire Algebra TW1205TI, 12 februari 2014 Contactgegevens Mekelweg 4, kamer 4.240 tel : (015 27)86408 e-mail : I.A.M.Goddijn@TUDelft.nl homepage : http: //fa.its.tudelft.nl/ goddijn blackboard : http:

Nadere informatie

Samenvatting college 1-12

Samenvatting college 1-12 Samenvatting college 1-12 Probleemformulering Duidelijk definiëren van beslissingsvariabelen Zinvolle namen voor variabelen bv x ij voor ingrediënt i voor product j, niet x 1,..., x 20 Beschrijving van

Nadere informatie

Combinatoriek groep 1 & 2: Recursie

Combinatoriek groep 1 & 2: Recursie Combinatoriek groep 1 & : Recursie Trainingsweek juni 008 Inleiding Bij een recursieve definitie van een rij wordt elke volgende term berekend uit de vorige. Een voorbeeld van zo n recursieve definitie

Nadere informatie

4 Positieve en niet-negatieve lineaire algebra

4 Positieve en niet-negatieve lineaire algebra 4 Positieve en niet-negatieve lineaire algebra Positieve en niet-negatieve matrices komen veel voor binnen de stochastiek (zoals de PageRank matrix) en de mathematische fysica: temperatuur, dichtheid,

Nadere informatie

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12 Katern 2 Getaltheorie Inhoudsopgave 1 Delers 1 2 Deelbaarheid door 2, 3, 5, 9 en 11 6 3 Grootste gemene deler en kleinste gemene veelvoud 12 1 Delers In Katern 1 heb je geleerd wat een deler van een getal

Nadere informatie

a) Bepaal punten a l en b m zó dat de lijn door a en b parallel is met n.

a) Bepaal punten a l en b m zó dat de lijn door a en b parallel is met n. . Oefen opgaven Opgave... Gegeven zijn de lijnen l : 2 + λ m : 2 2 + λ 3 n : 3 6 4 + λ 3 6 4 a) Bepaal punten a l en b m zó dat de lijn door a en b parallel is met n. b) Bepaal de afstand tussen die lijn

Nadere informatie

Geldwisselprobleem van Frobenius

Geldwisselprobleem van Frobenius Geldwisselprobleem van Frobenius Karin van de Meeberg en Dieuwertje Ewalts 12 december 2001 1 Inhoudsopgave 1 Inleiding 3 2 Afspraken 3 3 Is er wel zo n g? 3 4 Eén waarde 4 5 Twee waarden 4 6 Lampenalgoritme

Nadere informatie

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

Ruimtewiskunde. college. Stelsels lineaire vergelijkingen. Vandaag UNIVERSITEIT TWENTE. Stelsels lineaire vergelijkingen. college 4 collegejaar college build slides Vandaag : : : : 16-17 4 29 maart 217 38 1 2 3.16-17[4] 1 vandaag Vectoren De notatie (x 1, x 2,..., x n ) wordt gebruikt voor het punt P met coördinaten (x 1,

Nadere informatie

Vierde huiswerkopdracht Lineaire algebra 1

Vierde huiswerkopdracht Lineaire algebra 1 Vierde huiswerkopdracht Lineaire algebra December, 00 Opgave : Voor positieve gehele getallen m, n schrijven we Mat(m n, R) voor de vectorruimte van alle m n matrices, met de gebruikelijke optelling en

Nadere informatie

l e x e voor alle e E

l e x e voor alle e E Geselecteerde uitwerkingen Werkcollege Introduceer beslissingsvariabelen x e met x e = als lijn e in de boom zit en anders x e = 0. De doelfunctie wordt: min e E l e x e Voor elke deelverzameling S V met

Nadere informatie

Jordan normaalvorm. Hoofdstuk 7

Jordan normaalvorm. Hoofdstuk 7 Hoofdstuk 7 Jordan normaalvorm Zoals we zagen hangt de matrix die behoort bij een lineaire transformatie af van de keuze van een basis voor de ruimte In dit hoofdstuk buigen we ons over de vraag of er

Nadere informatie

3.2 Vectoren and matrices

3.2 Vectoren and matrices we c = 6 c 2 = 62966 c 3 = 32447966 c 4 = 72966 c 5 = 2632833 c 6 = 4947966 Sectie 32 VECTOREN AND MATRICES Maar het is a priori helemaal niet zeker dat het stelsel vergelijkingen dat opgelost moet worden,

Nadere informatie

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

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j FLIPIT JAAP TOP Een netwerk bestaat uit een eindig aantal punten, waarbij voor elk tweetal ervan gegeven is of er wel of niet een verbinding is tussen deze twee. De punten waarmee een gegeven punt van

Nadere informatie

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

Tentamen lineaire algebra voor BWI maandag 15 december 2008, uur. Vrije Universiteit Amsterdam Faculteit der Exacte Wetenschappen Afdeling Wiskunde Tentamen lineaire algebra voor BWI maandag 5 december 8, 5.5-8. uur. ELK ANTWOORD DIENT TE WORDEN BEARGUMENTEERD. Er mogen

Nadere informatie

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie Lineaire Algebra, tentamen Uitwerkingen vrijdag 4 januari 0, 9 uur Gebruik van een formuleblad of rekenmachine is niet toegestaan. De

Nadere informatie

Combinatoriek groep 2

Combinatoriek groep 2 Combinatoriek groep 2 Recursie Trainingsdag 3, 2 april 2009 Homogene lineaire recurrente betrekkingen We kunnen een rij getallen a 0, a 1, a 2,... op twee manieren definiëren: direct of recursief. Een

Nadere informatie

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

K.0 Voorkennis. y = -4x + 8 is de vergelijking van een lijn. Hier wordt y uitgedrukt in x. K.0 Voorkennis y = -4x + 8 is de vergelijking van een lijn. Hier wordt y uitgedrukt in x. y = -4x + 8 kan herschreven worden als y + 4x = 8 Dit is een lineaire vergelijking met twee variabelen. Als je

Nadere informatie

De partitieformule van Euler

De partitieformule van Euler De partitieformule van Euler Een kennismaking met zuivere wiskunde J.H. Aalberts-Bakker 29 augustus 2008 Doctoraalscriptie wiskunde, variant Communicatie en Educatie Afstudeerdocent: Dr. H. Finkelnberg

Nadere informatie

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.

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. 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. Voer slackvariabelen (x 4, x 5 ) in: Max Z = 3x 1 + 2x 2 0.5x 3 z.d.d. 4x 1 + 3x

Nadere informatie

Discrete Wiskunde 2WC15, Lente Jan Draisma

Discrete Wiskunde 2WC15, Lente Jan Draisma Discrete Wiskunde 2WC15, Lente 2010 Jan Draisma HOOFDSTUK 2 Gröbnerbases 1. Vragen We hebben gezien dat de studie van stelsels polynoomvergelijkingen in meerdere variabelen op natuurlijke manier leidt

Nadere informatie

Definities, stellingen en methoden uit David Poole s Linear Algebra A Modern Introduction - Second Edtion benodigd voor het tentamen Matrix Algebra 2

Definities, stellingen en methoden uit David Poole s Linear Algebra A Modern Introduction - Second Edtion benodigd voor het tentamen Matrix Algebra 2 Definities, stellingen en methoden uit David Poole s Linear Algebra A Modern Introduction - Second Edtion benodigd voor het tentamen Matrix Algebra 2 Bob Jansen Inhoudsopgave 1 Vectoren 3 2 Stelsels Lineaire

Nadere informatie

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

Nadere informatie

De dimensie van een deelruimte

De dimensie van een deelruimte De dimensie van een deelruimte Een deelruimte van R n is een deelverzameling die op zichzelf ook een vectorruimte is. Ter herinnering : Definitie. Een deelverzameling H van R n heet een deelruimte van

Nadere informatie

Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking

Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking. Sensitiviteitsanalyse (a) Als de prijs van legering 5 daalt, kan het voordeliger worden om gebruik te maken van deze legering. Als de

Nadere informatie

Lineaire vergelijkingen II: Pivotering

Lineaire vergelijkingen II: Pivotering 1/25 Lineaire vergelijkingen II: Pivotering VU Numeriek Programmeren 2.5 Charles Bos Vrije Universiteit Amsterdam c.s.bos@vu.nl, 1A40 15 april 2013 2/25 Overzicht Pivotering: Methodes Norm en conditionering

Nadere informatie

Ter Leering ende Vermaeck

Ter Leering ende Vermaeck Ter Leering ende Vermaeck 15 december 2011 1 Caleidoscoop 1. Geef een relatie op Z die niet reflexief of symmetrisch is, maar wel transitief. 2. Geef een relatie op Z die niet symmetrisch is, maar wel

Nadere informatie

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

Lineaire Algebra WI1048WbMt. I.A.M. Goddijn, Faculteit EWI 4 september 2016 Lineaire Algebra WI1048WbMt, 4 september 2016 Informatie over de docent Mekelweg 4, kamer 4.240 tel : (015 27)86408 e-mail : I.A.M.Goddijn@TUDelft.nl homepage : http: //fa.its.tudelft.nl/ goddijn blackboard

Nadere informatie

Bijzondere kettingbreuken

Bijzondere kettingbreuken Hoofdstuk 15 Bijzondere kettingbreuken 15.1 Kwadratische getallen In het vorige hoofdstuk hebben we gezien dat 2 = 1, 2, 2, 2, 2, 2, 2,.... Men kan zich afvragen waarom we vanaf zeker moment alleen maar

Nadere informatie

Uitwerkingen tentamen lineaire algebra 2 13 januari 2017, 10:00 13:00

Uitwerkingen tentamen lineaire algebra 2 13 januari 2017, 10:00 13:00 Uitwerkingen tentamen lineaire algebra 3 januari 07, 0:00 3:00 Hint: Alle karakteristiek polynomen die je nodig zou kunnen hebben, hebben gehele nulpunten. Als dat niet het geval lijkt, dan heb je dus

Nadere informatie

TU/e 2DD50: Wiskunde 2 (1)

TU/e 2DD50: Wiskunde 2 (1) TU/e 2DD50: Wiskunde 2 () Tussentoets 26 november, tijdens de instructies Zaal: paviljoen (study hub) Time: 90min Tentamenstof: colleges 4 (LP; Simplex; dualiteit; complementaire slackness) Oude tentamens:

Nadere informatie

Tentamen Lineaire Algebra 1 (Wiskundigen)

Tentamen Lineaire Algebra 1 (Wiskundigen) Tentamen Lineaire Algebra Wiskundigen Donderdag, 23 januari 24,.-3. Geen rekenmachines. Motiveer elk antwoord.. Voor alle reële getallen a definiëren we de matrix C a als a C a = a 2. a Verder definiëren

Nadere informatie

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

Nadere informatie

Lineaire algebra I (wiskundigen)

Lineaire algebra I (wiskundigen) Lineaire algebra I (wiskundigen) Toets, donderdag 22 oktober, 2009 Oplossingen (1) Zij V het vlak in R 3 door de punten P 1 = (1, 2, 1), P 2 = (0, 1, 1) en P 3 = ( 1, 1, 3). (a) Geef een parametrisatie

Nadere informatie

vandaag is Annie twee jaar jonger dan Ben en Cees samen

vandaag is Annie twee jaar jonger dan Ben en Cees samen Hoofdstuk I Lineaire Algebra Les 1 Stelsels lineaire vergelijkingen Om te beginnen is hier een puzzeltje: vandaag is Annie twee jaar jonger dan Ben en Cees samen over vijf jaar is Annie twee keer zo oud

Nadere informatie

Lineaire afbeeldingen

Lineaire afbeeldingen Les 2 Lineaire afbeeldingen Als een robot bij de robocup (het voetbaltoernooi voor robots een doelpunt wil maken moet hij eerst in de goede positie komen, d.w.z. geschikt achter de bal staan. Hiervoor

Nadere informatie

TU/e 2DD50: Wiskunde 2

TU/e 2DD50: Wiskunde 2 TU/e 2DD50: Wiskunde 2 Enkele mededelingen Tussentoets: 26 november, tijdens de instructies Tentamenstof: LP; Simplex; dualiteit (= colleges 1 4) Bij de tussentoets mag een eenvoudige (niet programmeerbare)

Nadere informatie

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

Bekijk nog een keer het stelsel van twee vergelijkingen met twee onbekenden x en y: { De tweede vergelijking van de eerste aftrekken geeft: Determinanten Invoeren van het begrip determinant Bekijk nog een keer het stelsel van twee vergelijkingen met twee onbekenden x en y: { a x + b y = c a 2 a 2 x + b 2 y = c 2 a Dit levert op: { a a 2 x

Nadere informatie

Branch-and-Bound en Cutting Planes

Branch-and-Bound en Cutting Planes Branch-and-Bound en Cutting Planes Vandaag: Er is nog geen algoritme om ILP s in polynomiale tijd op te lossen. Twee opties: 1 Exponentiëel algoritme dat optimale oplossing geeft 2 Polynomiaal algoritme

Nadere informatie

Verbanden en functies

Verbanden en functies Verbanden en functies 0. voorkennis Stelsels vergelijkingen Je kunt een stelsel van twee lineaire vergelijkingen met twee variabelen oplossen. De oplossing van het stelsel is het snijpunt van twee lijnen.

Nadere informatie

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

Universiteit Utrecht Departement Informatica. Examen Optimalisering op dinsdag 29 januari 2019, uur. Universiteit Utrecht Departement Informatica Examen Optimalisering op dinsdag 29 januari 2019, 17.00-20.00 uur. ˆ Mobieltjes UIT en diep weggestopt in je tas. Wanneer je naar de WC wil, dan moet je je

Nadere informatie

Lights Out. 1 Inleiding

Lights Out. 1 Inleiding Lights Out 1 Inleiding Het spel Lights Out is een elektronisch spel dat gelanceerd werd in 1995 door Tiger Electronics. Het originele spel heeft een bord met 25 lampjes in een rooster van 5 rijen en 5

Nadere informatie

Tentamen: Operationele Research 1D (4016)

Tentamen: Operationele Research 1D (4016) UITWERKINGEN Tentamen: Operationele Research 1D (4016) Tentamendatum: 12-1-2010 Duur van het tentamen: 3 uur (maximaal) Opgave 1 (15 punten) Beschouw het volgende lineaire programmeringsprobleem P: max

Nadere informatie

Complexe eigenwaarden

Complexe eigenwaarden Complexe eigenwaarden Tot nu toe hebben we alleen reële getallen toegelaten als eigenwaarden van een matrix Het is echter vrij eenvoudig om de definitie uit te breiden tot de complexe getallen Een consequentie

Nadere informatie

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

Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b Ruud Pellikaan g.r.pellikaan@tue.nl /k 2014-2015 Lineaire vergelijking 2/64 DEFINITIE: Een lineaire vergelijking in de variabelen

Nadere informatie

Hoofdstuk 3. Matrices en stelsels. 3.1 Matrices. [[1,7]],[[12,8] ] of [ 1, 7; 12,8 ] bepaalt de matrix

Hoofdstuk 3. Matrices en stelsels. 3.1 Matrices. [[1,7]],[[12,8] ] of [ 1, 7; 12,8 ] bepaalt de matrix Hoofdstuk 3 Matrices en stelsels 3.1 Matrices Een matrix is in DERIVE gedefinieerd als een vector van vectoren. De rijen van de matrix zijn de elementen van de vector. Op de volgende manier kan je een

Nadere informatie

Functies van vectoren

Functies van vectoren Functies van vectoren Alexander Ly Psychological Methods University of Amsterdam 15 September 2014 Overview 1 Notatie 2 Overview 1 Notatie 2 Matrices Een matrix schrijven we vaak met een hoofdletter A.

Nadere informatie

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

Kies voor i een willekeurige index tussen 1 en r. Neem het inproduct van v i met de relatie. We krijgen Hoofdstuk 95 Orthogonaliteit 95. Orthonormale basis Definitie 95.. Een r-tal niet-triviale vectoren v,..., v r R n heet een orthogonaal stelsel als v i v j = 0 voor elk paar i, j met i j. Het stelsel heet

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 9 Leo van Iersel Technische Universiteit Delft 16 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 16 november 2016 1 / 28 Vandaag Integer Linear Programming (ILP)

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 11 Leo van Iersel Technische Universiteit Delft 25 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 1 / 28 Vandaag Vraag Voor welke problemen

Nadere informatie

Toegepaste Wiskunde 2: Het Kalman-filter

Toegepaste Wiskunde 2: Het Kalman-filter Toegepaste Wiskunde 2: Het Kalman-filter 25 februari, 2008 Hans Maassen 1. Inleiding Het Kalman filter schat de toestand van een systeem op basis van een reeks, door ruis verstoorde waarnemingen. Een meer

Nadere informatie

Lineaire Algebra voor ST

Lineaire Algebra voor ST Lineaire Algebra voor ST docent: Judith Keijsper TUE, HG 9.3 email: J.C.M.Keijsper@tue.nl studiewijzer: http://www.win.tue.nl/wsk/onderwijs/2ds6 Technische Universiteit Eindhoven college 6 J.Keijsper (TUE)

Nadere informatie

Je hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015

Je hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015 Je hebt twee uur de tijd voor het oplossen van de vraagstukken. Elk vraagstuk is maximaal 10 punten waard. Begin elke opgave op een nieuw vel papier. µkw uitwerkingen 12 juni 2015 Vraagstuk 1. We kunnen

Nadere informatie

Toewijzingsprobleem Bachelorscriptie

Toewijzingsprobleem Bachelorscriptie Radboud Universiteit Nijmegen Faculteit der Natuurwetenschappen, Wiskunde en Informatica Toewijzingsprobleem Bachelorscriptie Auteur: Veronique Rademaekers (s4155718) Begeleiders: Dr. W. Bosma en dr. H.

Nadere informatie

Hoofdstuk 1 : Vectoren (A5D)

Hoofdstuk 1 : Vectoren (A5D) 1 Hoofdstuk 1 : Vectoren (A5D) Hoofdstuk 1 : Vectoren (A5D) Les 1 : Stelsels en Echelon vorm DOEL : WE GAAN EEN AANTAL VERGELIJKINGEN MET EEN AANTAL VARIABELEN PROBEREN OP TE LOSSEN. Definities Stelsel

Nadere informatie

Symmetrische matrices

Symmetrische matrices Symmetrische matrices We beginnen met een eenvoudige definitie : Definitie Een matrix A heet symmetrisch als A T = A NB Een symmetrische matrix is dus altijd vierkant Symmetrische matrices hebben fraaie

Nadere informatie

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.

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. Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee

Nadere informatie

Hoofdstuk 3 : Determinanten

Hoofdstuk 3 : Determinanten (A5D) Hoofdstuk 3 : Determinanten Les : Determinanten Definitie 3. De determinant van de [2 x 2]-matrix A = ( a c det(a) = ad bc. b ) is een getal met waarde d a b Notatie : det(a) = = ad bc c d Voorbeeld

Nadere informatie

Lineaire Algebra voor ST

Lineaire Algebra voor ST Lineaire Algebra voor ST docent: Judith Keijsper TUE, HG 9.31 email: J.C.M.Keijsper@tue.nl studiewijzer: http://www.win.tue.nl/wsk/onderwijs/2ds06 Technische Universiteit Eindhoven college 1 J.Keijsper

Nadere informatie

Uitbreidingen van Fouriers 17 lijnen probleem

Uitbreidingen van Fouriers 17 lijnen probleem Uitbreidingen van Fouriers 17 lijnen probleem Jelte J. Zwetsloot Begeleider Dr. W. Bosma Radboud Universiteit Nijmegen 1 juli 2015 Inhoudsopgave 1 Fouriers 17 lijnen probleem 2 1.1 Uitbreidingen van het

Nadere informatie

Matrixoperaties. Definitie. Voorbeelden. Een matrix is een rechthoekig array van getallen, die kentallen of elementen heten.

Matrixoperaties. Definitie. Voorbeelden. Een matrix is een rechthoekig array van getallen, die kentallen of elementen heten. Definitie Een matrix is een rechthoekig array van getallen, die kentallen of elementen heten. Voorbeelden De coëfficiëntenmatrix of aangevulde matrix bij een stelsel lineaire vergelijkingen. Een rij-echelonmatrix

Nadere informatie

Uitwerkingen bij 1_1 Lineaire vergelijkingen

Uitwerkingen bij 1_1 Lineaire vergelijkingen Uitwerkingen bij 1_1 Lineaire vergelijkingen!! "#$ #!%!& " %'!& " #!' " # ( # )' * # ' #*" # + '!#*" ' ' + + ' '!, %' &% &%& % -&. = / +. = / + * 0 #!*" 0 $! 1 = ' + 1 = - 0 " "!$ *# 2 1 = # '2 = ' + 2

Nadere informatie

Discrete Wiskunde 2WC15, Lente Jan Draisma

Discrete Wiskunde 2WC15, Lente Jan Draisma Discrete Wiskunde 2WC15, Lente 2010 Jan Draisma Voorwoord Dit zijn aantekeningen voor het vak Discrete Wiskunde (2WC15), gegeven in het lentesemester van 2010. Dit vak bestaat uit twee delen: algoritmische

Nadere informatie

1 Eigenwaarden en eigenvectoren

1 Eigenwaarden en eigenvectoren Eigenwaarden en eigenvectoren Invoeren van de begrippen eigenwaarde en eigenvector DEFINITIE Een complex (of reëel getal λ heet een eigenwaarde van de n n matrix A als er een vector x is met Ax = λx Dan

Nadere informatie

Matrices en Grafen (wi1110ee)

Matrices en Grafen (wi1110ee) Matrices en Grafen (wi1110ee) Electrical Engineering TUDelft September 1, 2010 September 1, 2010 Inleiding Mekelweg 4, kamer 4.240 tel : (015 27)86408 e-mail : I.A.M.Goddijn@TUDelft.nl homepage : http:

Nadere informatie

Praktische toepassing van functies

Praktische toepassing van functies Excellerend Heemraadweg 21 2741 NC Waddinxveen 06 5115 97 46 richard@excellerend.nl BTW: NL0021459225 ABN/AMRO: NL72ABNA0536825491 KVK: 24389967 Praktische toepassing van functies De laatste twee functies

Nadere informatie

Wanneer zijn veelvouden van proniks proniks?

Wanneer zijn veelvouden van proniks proniks? 1 Uitwerking puzzel 92-1 Wanneer zijn veelvouden van proniks proniks? Harm Bakker noemde het: pro-niks voor-niks De puzzel was voor een groot deel afkomstig van Frits Göbel. Een pronik is een getal dat

Nadere informatie

Determinanten. Definities en eigenschappen

Determinanten. Definities en eigenschappen Determinanten Definities en eigenschappen Definities (korte herhaling) Determinant van een 2x2-matrix: a b ad bc c d S. Mettepenningen Determinanten 2 Definities (korte herhaling) Determinant van een 3x3-matrix:

Nadere informatie

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

Tentamen Optimalisering (IN2520) Datum: 5 november 2004, Docent: Dr. J.B.M. Melissen Tentamen Optimalisering (IN2520) Datum: 5 november 2004, 14.00 17.00. Docent: Dr. J.B.M. Melissen Veel succes! 1 Deze opgave bestaat uit 15 tweekeuzevragen. Per goed antwoord krijg je 2 punten. a. Dynamisch

Nadere informatie

l e x e voor alle e E

l e x e voor alle e E Geselecteerde uitwerkingen Werkcollege Introduceer beslissingsvariabelen x e met x e = als lijn e in de boom zit en anders x e = 0. De doelfunctie wordt: min e E l e x e Voor elke deelverzameling S V met

Nadere informatie

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

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University Optimalisering en Complexiteit, College 1 Han Hoogeveen, Utrecht University Gegevens Docent : Han Hoogeveen : j.a.hoogeveen@uu.nl Vak website : http://www.cs.uu.nl/docs/vakken/opt/ Student assistenten

Nadere informatie