1.76k likes | 2k Views
Inleiding Besliskunde Lineair Programeren Prof. Dr. Ronald L. Westra Maastricht University Department Mathematics. Inhoud Geometrische interpretatie en d e Simplexmethode De valkuilen van de Simplexmethode en Infeasible Dictionaries
E N D
Inleiding Besliskunde Lineair Programeren Prof. Dr. Ronald L. Westra Maastricht University Department Mathematics
Inhoud • Geometrische interpretatie en de Simplexmethode • De valkuilen van de Simplexmethode en Infeasible Dictionaries • Dualiteitstheorie en de Simplexmethode in matrixformulatie • Toepassing: robuuste regressie en Sparse Estimation mbv de Simplexmethode Inleiding Besliskunde
1. Geometrische interpretatie Meestal is de beschrijving van het probleem gebaseerd op het beschrijven van de voorwaarden waaraan de oplossing moet voldoen. Zo’n voorwaarde heet een constraint. Veelal nemen we niet genoegen met ’n oplossing maar willen we de ‘beste’ oplossing. Dat wordt dan uitgedrukt in een criterium of object-functie. De beste oplossing wordt nu gedefinieerd als diegene die het criterium maximaliseert. Bij het mathematisch modelleren van een beslissingsprobleem zijn verscheidene modellen mogelijk. We onderscheiden: kwantitatieve modellen: hierin worden de beslissingsproblemen uitgedrukt aan de hand van kwantitatieve grootheden die we beslissingsparameters (decision variables) noemen. Dit zijn parameters die gehele of reële waarden kunnen aannemen. Bijvoorbeeld: x = 3.14. kwalitatieve modellen: hierin worden de kwalitatieve beslissingsparameters gebruikt. Bijvoorbeeld: kleur = ‘rood’.
1. Geometrische interpretatie Lineair Programmeren Een groot probleem bij dergelijke beslissingmodellen is het vinden van de constraints, en het schatten van de parameters en constanten die daarin voorkomen. Vaak zijn experimenten of metingen nodig om deze te schatten. Op een zelfde manier is de validatie van het model problematisch. Voorbeeld: de ‘prijselasticiteit’ = hoeveel meer producten worden verkocht als we de prijs b.v.1 euro goedkoper maken? Bij de meest eenvoudige kwantitatieve modellen zijn zowel de constraints alsook het criterium lineair in de beslissingsparameters. Dit zijn de lineaire programmeer problemen.
1. Geometrische interpretatie Lineair Programmeren Historisch ligt hier ook de oorsprong van de besliskunde. Bij de landing van de geallieerden in Normandië in 1944, moesten in korte tijd een miljoen soldaten aan vijandig land gebracht worden. Deze operatie werd zeer nauwkeurig voorbereid. Bij die voorbereiding werden de eerste mathematische beslissingsmodellen gemaakt en toegepast. Dit waren lineaire modellen. Men kon zulke problemen toen nog niet exact oplossen, maar nam er genoegen mee door zo lang te gokken tot een oplossing werd gevonden die aan alle constraints voldeed. Dit is de zg. Monte Carlo simulatie. Pas in 1947 werd door G.B. von Dantzig een exacte mathematische oplossingsmethode bedacht: de zogenaamde Simplex-methode
1. Geometrische interpretatie Lineair Programmeren Historisch ligt hier ook de oorsprong van de besliskunde. Bij de landing van de geallieerden in Normandië in 1944, moesten in korte tijd een miljoen soldaten aan vijandig land gebracht worden. Deze operatie werd zeer nauwkeurig voorbereid. Bij die voorbereiding werden de eerste mathematische beslissingsmodellen gemaakt en toegepast. Dit waren lineaire modellen. Men kon zulke problemen toen nog niet exact oplossen, maar nam er genoegen mee door zo lang te gokken tot een oplossing werd gevonden die aan alle constraints voldeed. Dit is de zg. Monte Carlo simulatie. Pas in 1947 werd door G.B. von Dantzig een exacte mathematische oplossingsmethode bedacht: de zogenaamde Simplex-methode
1. Geometrische interpretatie Wij beschouwen nu de algemene vorm van lineaire programmeer (=LP) problemen: Beschouw een beslissingsprobleem waarin we zoeken naar de waarden van n reële (beslissings)variabelen x1, x2, ..., xn, onder de voorwaarde dat: Dit noemen we de standaardvorm van een LP probleem.
1. Geometrische interpretatie De geometrische interpretatie We kunnen een nuttige geometrische interpretatie geven aan standaard LP-problemen. Beschouw een n-dimensionale Euclidische ruimte IRn met elementen (x1, x2, ..., xn). De vergelijking van een vlak V in deze ruimte is gegeven door: u1x1 + u2x2+ ... + unxn = c Hierbij zijn ui en c gegeven constanten. De vector u = (u1,u2,...,un)T staat loodrecht op vlak V en heet een normaalvector van V. Vervangen we het is-teken door een ongelijkheidsteken, dan definieert de relatie het halfvlak boven – of onder het vlak V. Het stelsel van ongelijkheden definieert de doorsnede van een aantal van zulke vlakken.
Voorbeeld: het vergelijken van appels en peren Voorbeeld: het vergelijken van appels en peren Verbale beschrijving van het probleem: Hoeveel appels en peren kan ik kopen als ik 3.60 euro heb, en: appels 20 ct/stuk peren 30 ct/stuk Oplossing : Stel: #appels = a, #peren = p, beperkende voorwaarde [constraint]:
Voorbeeld: het vergelijken van appels en peren Stel dat er een bijkomend probleem is, te weten dat de groenteboer slechts 12 appels en 10 peren in voorraad heeft, dus:
Voorbeeld: het vergelijken van appels en peren Hier valt weinig – of veel – te beslissen; elk paar (p,a) in het vlak is een toegestane oplossing. Stel dat we nu echter de voedingswaarde van onze keuze zo hoog mogelijk willen maken – bijvoorbeeld het vitaminegehalte. Stel: appel: 4 gram vitamine C/stuk peer: 7 gram vitamine C/stuk Het totaal aantal gram vitamine C is dan: V = 4 a + 7 p
Voorbeeld: het vergelijken van appels en peren Het totaal aantal gram vitamine C is : V = 4 a + 7 p ; Dit definieert een verzameling van parallelle lijnen in het (a,p)-vlak:
Voorbeeld: het vergelijken van appels en peren Door schuiven van de lijn V = 4 a + 7 p over de convexe simplex vinden we de oplossing: a = 3 p = 10V = 82
1. Geometrische interpretatie Het oplossen van LP-problemen Voor het oplossen van een LP-probleem bestaan zeer effectieve en deterministische methoden. (Vergelijk dit met de vierkantswortel van tweedegraads-functies: ) De oudste en meest bekende is de genoemde simplex-methode. Deze is enerzijds duidelijk gedefinieerd. Anderzijds bewerkelijk en bol van de technische begrippen. Het werkt verhelderend om steeds de geometrische interpretatie steeds voor ogen te houden.
1. Geometrische interpretatie Doelstelling van deze cursus • Nu we de basisbegrippen hebben leren kennen, kunnen de drie voornaamste doelstellingen van deze cursus noemen: • het kunnen mathematisch modelleren van een beslissingsprobleem. • het kunnen oplossen van een LP-probleem middels de Simplex-methode. • het begrijpen van de theoretische achtergronden en de termen betreffende LP-problemen.
1. De Simplexmethode Voorbeeld Laten we eens een voorbeeld handmatig doorrekenen: Dit is een LP-probleem in standaardvorm.
1. De Simplexmethode Als eerste willen we de lineaire ongelijkheden ombouwen naar lineaire gelijkheden. Dit doen we met de volgende truck. We merken op dat: Voor de eerste restrictie: geldt dus dat het rechterlid altijd iets positief is, of minimaal nul als alle variabelen nul zijn. Het verschil: is dus ook altijd niet-negatief. Als we nu definiëren: dan geldt dus blikbaar dat: Deze observatie gaat op voor elk van de 3 restricties.
1. De Simplexmethode Generalisatie: De Simplex methode in zes stappen We proberen de aanpak van het bovenstaande voorbeeld nu generaliseren. Dit is een beschrijving van het Simplex-algorithme. We zullen dit Simplex-algorithme nu in zes stappen beschrijven: stap 1: definieer restvariabelen Voor elke van de m constraints Ci voeren we een nieuwe variabele in. We nummeren door vanaf n dus dit zijn de variabelen xn+1, xn+2, ..., xn+m .Deze zg restvariabelen (eng: slack variables) zijn gedefinieerd als: voor i=1.. m. De eerdere variabelen heten de beslissings-variabelen (decision variables). Vanwege de i-e constraint Ci geldt dan :
Generalisatie: De Simplex methode in zes stappen • stap 2: herschrijf LP-standaardvorm naardictionairies • Ons stelsel heeft nu de vorm: • maximaliseer: z = c1x1 + c2x2+ ... + cnxn • onder restricties: C’i : , voor: i = 1 .. m. • en: • Verder leggen wij onszelf een beperking op: we zullen voorlopig slechts problemen beschouwen waarvoor: x1 = 0; x2 = 0; ... xn = 0; een toegestane oplossing is. Dit maakt het navolgende verhaal eenvoudiger, en doet niets af aan de algemene gedachte achter de Simplex-methode.
Generalisatie: De Simplex methode in zes stappen stap 3: initialisatie: kies een toegestane oplossing Kies initiële waarden voor de variabelen x1 = 0, x2 = 0, ..., xn = 0. Met bovenstaande restrictie voldoet deze keuze aan alle constraints. De waarden voor de slack-variabelen volgen uit de restricties en zullen i.h.a. niet-nul zijn. Daardoor is de startwaarde van:
Generalisatie: De Simplex methode in zes stappen stap 4: bepaal de sterkste invloed op z Welke van de variabelen x1, x2, ..., xn+m doet de doelfunctie z het meest toenemen vanuit de huidige waarde? Het is duidelijk dat de variabele met de grootste coëfficiënt ci de waarde van z het meeste doet toenemen. Dus we zoeken de variabele met de index: k* = arg max kck. Dit kunnen er in principe meerdere zijn. In dat geval bepalen we een tie breakrule. Bijvoorbeeld min, max of rand. Dus, b.v.: j = min arg max kck. Stel nu dat: . Daar: , kan z alleen maar afnemen t.o.v. de waarde . M.a.w. is de maximale – en dus de gezochte – oplossing.
Generalisatie: De Simplex methode in zes stappen De Simplex iteratie We kunnen nu de stappen 4 t/m 6 weer herhalen op de nieuwe basis, dictionaires, en uitdrukking voor z. Zoals al aangegeven in stap 4 stopt het proces – dus de iteratie als: De waarden van geven dan de optimale oplossing.
Generalisatie: De Simplex methode in zes stappen • Samenvatting • Het feitelijke Simplex algoritme bestaat uit de volgende onderdelen: • Initialisatie (stap 3) • Iteratie (stap 4, 5, 6) • Terminatie (in stap 4: ) • Meteen rijzen er een aantal vragen: • leidt het Simplex-algorithme altijd naar de juiste oplossing? • vinden we de oplossing altijd in een eindig aantal iteraties?
Inleiding Besliskunde EINDE LEZING 1
2. Valkuilen van de Simplexmethode Valkuilen van de Simplex-methode In dit onderdeel beschouwen we de efficiëntie van de Simplex-methode. Onder welke voorwaarden bestaat er een oplossing, en vinden we deze altijd in een eindig aantal iteraties? Of kan het voorkomen dat het Simplex-algorithme blijft ‘hangen’, en zo ja, onder welke voorwaarden. We beginnen met enkele definities om daarmee de hoofdstelling van lineair programmeren te kunnen formuleren..