Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin



Relevanta dokument
1 Duala problem vid linjär optimering

Föreläsning 2: Simplexmetoden. 1. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform.

Tentamensinstruktioner. När Du löser uppgifterna

Optimeringslära Kaj Holmberg

Optimeringslära för T (SF1861)

De optimeringsproblem som kommer att behandlas i denna kurs kan alla (i princip) skrivas. 1 2 xt Hx + c T x. minimera

Lösningar till 5B1762 Optimeringslära för T, 24/5-07

TNK049 Optimeringslära

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg

LP-problem. Vårt första exempel. Baslösningar representerar extrempunkter. Baslösningar representerar extrempunkter

z = min 3x 1 2x 2 + y Fixera y, vilket ger subproblemet

TNSL05 Optimering, Modellering och Planering. Föreläsning 6

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler

1(8) x ijt = antal mobiltelefoner av typ i=1,,m, Som produceras på produktionslina 1,, n, Under vecka t=1,,t.

TNSL05 Optimering, Modellering och Planering. Föreläsning 4

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Onsdag 25 augusti 2010 kl

TNK049 Optimeringslära

Optimeringslära Kaj Holmberg

Linjärprogrammering (Kap 3,4 och 5)

Laborationsuppgift 1 Tillämpad optimeringslära för MMT (5B1722)

Optimeringslära Kaj Holmberg

Tentamensinstruktioner. När Du löser uppgifterna

Optimeringslära Kaj Holmberg

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Torsdag 28 maj 2010 kl

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Tentamensinstruktioner. När Du löser uppgifterna

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

1 LP-problem på standardform och Simplexmetoden

Optimeringslära Kaj Holmberg

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

Tentamensinstruktioner

1 Konvexa optimeringsproblem grundläggande egenskaper

Lösningar till SF1861/SF1851 Optimeringslära, 24/5 2013

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM. Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner. När Du löser uppgifterna

Lösningar till SF1861 Optimeringslära, 28 maj 2012

Vinsten (exklusive kostnaden för inköp av kemikalier) vid försäljning av 1 liter fönsterputs är 2 kr för F1 och 3 kr för F3.

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Hemuppgift 2, SF1861 Optimeringslära för T, VT-10

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Lösningar/svar. Uppgift 1. Tekniska Högskolan i Linköping Optimering av realistiska sammansatta system. Optimeringslära Kaj Holmberg

Tentamensinstruktioner. Vid skrivningens slut

Optimeringslara = matematik som syftar till att analysera och. Optimeringslara ar en gren av den tillampade matematiken.

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

Tentamensinstruktioner

Optimalitetsvillkor. Optimum? Matematisk notation. Optimum? Definition. Definition

Tentamensinstruktioner. När Du löser uppgifterna

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM. Tentamensinstruktioner. När Du löser uppgifterna

SF1545 Laboration 1 (2015): Optimalt sparande

Lösningar till tentan i SF1861 Optimeringslära, 1 juni 2017

Tentamensinstruktioner. När Du löser uppgifterna

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

MIO310 OPTIMERING OCH SIMULERING, 4 p

Vinsten (exklusive kostnaden för inköp av kemikalier) vid försäljning av 1 liter fönsterputs är 2 kr för F1 och 3 kr för F3.

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TNK049 Optimeringslära

Tentamensinstruktioner

Olinjär optimering med bivillkor: KKT min f (x) då g i (x) 0 för alla i

TAOP07/TEN1 OPTIMERINGSLÄRA GRUNDKURS för Y. Antal uppgifter: 7 Uppgifterna är inte ordnade efter svårighetsgrad.

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C

TAOP14: Optimeringslära SAMMANFATTNING OSKAR QVIST:

Optimering, exempel. Funktionens enda stationära punkt är alltså origo. Den ligger också i det inre av mängden.

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

1. Vad är optimering?

Laboration 1 - Simplexmetoden och Modellformulering

Föreläsning 7: Kvadratisk optimering. 4. Kvadratisk optimering under linjära bivillkor

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Laboration 1 i SF1544: Öva på Matlab och konstruera en optimal balk Avsikten med denna laboration är att:

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

När det gäller en motor kanske man vill maximera verkningsgraden för att hålla nere bränslekostnaden men inte till vilket pris som helst.

TNSL05 Optimering, Modellering och Planering. Föreläsning 2: Forts. introduktion till matematisk modellering

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Lösningar till SF1852 Optimeringslära för E, 16/1 08

Lösningar till tentan i SF1861 Optimeringslära, 3 Juni, 2016

Tentamensinstruktioner

TNSL05 Optimering, Modellering och Planering. Föreläsning 9

Optimeringsproblem. 1 Inledning. 2 Optimering utan bivillkor. CTH/GU STUDIO 6 TMV036c /2015 Matematiska vetenskaper

Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner

5B1817 Tillämpad ickelinjär optimering. Kvadratisk programmering med olikhetsbivillkor Active-set metoder

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Laboration 1: Optimalt sparande

Optimering med bivillkor

Modellering och optimering av schemaläggning vid en ridskola

Tentamensinstruktioner. När Du löser uppgifterna

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Laboration 1 - Simplexmetoden och modellformulering

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

MIO310 OPTIMERING OCH SIMULERING, 4 p

Transkript:

Linjärprogramming EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin 1

Kursmål Formulera korttidsplaneringsproblem för vatten- och värmekraftsystem. 2

Tillämpad matematisk programming Korttidsplanering av vatten- och värmekraftsystem är en tillämpning av matematisk programmering (optimeringslära). I den här kursen lär vi ut hur man formulerar optimeringsproblem, men inte hur man löser dem. Lösningsmetoder lärs ut av Matematikinstitutionen, t.ex. - SF1811 Optimeringslära, 6 hp - SF2812 Tillämpad linjär optimering, 7,5 hp - SF2822 Tillämpad ickelinjär optimering, 7,5 hp För att formulera optimeringsproblem behöver man vara bekant med grundläggande koncept inom matematisk programmering. 3

Optimering Optimeringslära (kallas också matematisk programmering) är en gren av tillämpad matematik. Generellt exempel: minimera f(x) då x X, där x = vektor av optimeringsvariabler, X = mängd av tillåtna lösningar. 4

Tillåtna lösningar Mängden av tillåtna lösningar definieras med olika matematiska uttryck. Bivillkor (definierar samband mellan optimeringsvariabler) Exempel: g(x) b. Variabelgränser Exempel: x x x, x heltal. 5

Minimering eller maximering Observera att man alltid kan växla mellan minimerings- och maximeringsproblem, eftersom Exempel: minimera f(x) maximera f(x) minimera x maximera x då 0 x 10. då 0 x 10. 6

Linjärprogrammering (LP) Klass av optimeringsproblem med linjär målfunktion och linjära bivillkor. Standardform: minimera c T x då Ax = b, 0 x. Man kan relativt snabbt lösa även stora LP problem med fler än 100 000 variabler! Kommersiell programvara finns tillgänglig - GAMS, Matlab, Excel 7

Exempel A.1 Formulera LP problem på standardform Alice ska köpa något till hennes mammas fest. 2 liter frukt behövs för att fylla fruktskålen. Alices mamma vill att var och en av de fem gästerna ska få minst två var av det som Alice köper, d.v.s. Alice behöver köpa minst 10 saker. Alice får 100 kr och kan behålla växeln. Ett päron kostar 3 kr, varje päron har en volym på 1/6 liter. Ett äpple kostar 5 kr, varje päron har en volym på 0,3 liter. 8

Exempel A.1 LP-formulering Inför x 1 = antal päron, x 2 = antal äpplen. Formulera optimeringsproblemet: maximera 100 3x 1 5x 2 {vinst} då 1 --x 6 1 + 0,3x 2 2, x 1 + x 2 10, x 1 0, x 2 0. {volymbivillkor} {kvantitetsbivillkor} {variabelgränser} 9

Exempel A.1 Minimering Ett LP-problem på standardform formuleras som ett minimeringsproblem. Maximera vinst Minimera kostnad maximera 100 3x 1 5x 2 {vinst} minimera 3x 1 + 5x 2 {kostnad} Observera att den konstanta termen i målfunktionen inte har någon inverkan på lösningen, eftersom den inte påverkas av vilka värden vi väljer på optimeringsvariablerna! Inför z = målfunktion. 10

Exempel A.1 Slackvariabler Ett LP-problem på standardform formuleras med likhetsbivillkor. Inför slackvariabler: x 3 = extra volym, x 4 = extra kvantitet. Formulera om bivillkoren: 1 --x 6 1 + 0.3x 2 x 3 = 2, {volymbivillkor} x 1 + x 2 x 4 = 10, {kvantitetsbivillkor} Lägg till variabelgränser: x 1 0, x 2 0, x 3 0, x 4 0. {variabelgränser} 11

Exempel A.1 LP-formulering på standardsform min z = 3x 1 + 5x 2 {kostnad} då 1 --x 6 1 + 0.3x 2 x 3 = 2, x 1 + x 2 x 4 = 10, {volymbivillkor} {kvantitetsbivillkor} x 1 0, x 2 0, x 3 0, x 4 0. {variabelgränser} 12

Exempel A.1 Optimal lösning Optimum: x 1 = 7,5 x 2 = 2,5 Optimalt värde på målfunktionen: z = 35 13

Extrempunkter Hörnen i det tillåtna området kallas extrempunkter. Den optimala lösningen till ett LP-problem kan alltid hittas i en av extrempunkterna. 14

Standardform Standardformen är användbar för matematisk analys. Dessutom förutsätter vissa lösare att LP-problemet är formulerat på standardform. Inom ingenjörskonsten är det viktigare med en tydlig problemformulering, d.v.s. optimeringsproblem ska formuleras så att det är lätt att känna igen det bakomliggande ingenjörsproblemet. - Använd tydligare beteckningar än x 1, x 2, - Välj mellan maximering och minimering utifrån vad som är naturligt för ingenjörsproblemet. - Välj mellan likhets- och olikhetsbivillkor utifrån vad som är naturligt för ingenjörsproblemet. 15

Exempel A.2 Ingen tillåten lösning Alices pappa säger Köp inte mer än 1 kg. Ett päron väger 1/6 kg. Ett äpple väger 0,3 kg. Lösning Lägg till ytterligare ett bivillkor: 1 --x 6 1 + 0,3x 2 1. {viktbivillkor} 16

Exempel A.2 Optimal lösning Det finns inga tillåtna lösningar. (Eng.: infeasible problem). 17

Inga tillåtna lösningar Om ett problem saknar tillåten lösning så finns motstridiga bivillkor som inte kan vara uppfyllda samtidigt. Korttidsplaneringsproblem ska under normal omständigheter ha en tillåten lösning! Hur hittar man felet? - Vissa lösare kan ange vilka bivillkor som inte går att uppfylla. - Lägg till slackvariabler. I exempel A.2 kan vi t.ex. formulera det nya bivillkoret så här i stället: 1 --x {viktbivillkor} 6 1 + 0.3x 2 + x 5 x 6 1. x 5 0, x 6 0. 18

Exempel A.3 Icke bindande bivillkor Det finns bara 13 päron kvar i affären. Lösning Lägg till ytterligare ett bivillkor: x 1 13. {päronbegränsning} 19

Exempel A.3 Optimal lösning Optimum: x 1 = 7,5 x 2 = 2,5 Optimalvärde: z = 35 Det nya bivillkoret ändrar inte den optimala lösningen! 20

Exempel A.4 Problem utan ändlig lösning Alices mamma säger: Du får 1 kr för varje sak du köper i affären. Lösning Ny målfunktion: max z = x 1 + x 2 {inkomst} 21

Exempel A.4 Optimal lösning Optimum: x 1 = x 2 = Optimalvärde: z = 22

Problem utan ändlig lösning Ett problem utan ändlig lösning innebär att det inte finns tillräckligt med bivillkor. Korttidsplaneringsproblem ska inte sakna lösning! Hur hittar man felet? - Det troligaste är att några bivillkor saknas eller är felaktigt formulerade! - Titta på de optimala värdena på variablerna! Är det någon variabel som ligger utanför det intervall man kan förvänta sig? - Lägg till tillfälliga bivillkor. 23

Exempel A.5 Ändring i målfunktionen Ett päron kostar 4 kr i stället för 3 kr. Lösning Ny målfunktion: min z = 4x 1 + 5x 2 {kostnad} 24

Exempel A.5 Optimal lösning Optimum: x 1 = 7,5 x 2 = 2,5 Optimalvärde: z = 42,5 Samma lösning, men nytt optimal värde på målfunktionen! 25

Exempel A.6 Degenererad lösning Ett päron kostar 5 kr i stället för 3 kr. Lösning Ny målfunktion: min z = 5x 1 + 5x 2 {kostnad} 26

Exempel A.7 Optimal lösning Optimum: x 1 [0, 7,5] x 2 = 10 x 1 Optimalvärde: z = 50 Många lösningar med samma optimalvärde! 27

Degenererade problem Ett degenererat problem har ingen unik optimal lösning. Många korttidsplaneringsproblem är degenererade! Lösningen till ett degenererat problem kan skilja sig från lösare till lösare och kan t.o.m. bero på i vilken ordning man angett variabler och bivillkor! För att kontrollera om två lösningar till ett degenererat problem är likvärdiga måste man studera målfunktionsvärdet, inte de optimala värdena på optimeringsvariablerna! 28

Exempel A.7 Flackt optimum Jämför lösningen till följande två fall: - Ett päron kostar 4,90 kr och ett äpple kostar 5 kr. - Ett päron kostar 5 kr och ett äpple kostar 4,90 kr. 29

Exempel A.7 Optimal lösning Optimum: x 1 = 7.5 x 2 = 2.5 eller x 1 = 0 x 2 = 10 Optimalvärde: z = 49.25 eller z = 49 30

Flackt optimum Ett flackt optimum innebär att det finns extrempunkter som inte är optimal, men som resulterar i ett målfunktionsvärde som är väldigt nära det optimala värdet. Vissa lösare söker inte alltid efter den exakt optimala lösningen, utan nöjer sig med en lösning som är tillräckligt bra. 31

LP-dualitet Alla LP problem (primalt problem) har ett motsvarande dualt problem. Primalt problem Dualt problem min c T x max b T då Ax = b, då A T c. x 0, ( obegränsad) där x = primalvariabler, = dualvariabler. 32

Stark dualitet Sats: Om ett primalt problem har en optimal lösning så har även det duala problemet en optimal lösning och de optimala målfunktionsvärdena är desamma. Beviset överlämnas till lämplig matematikkurs Den praktiska nyttan av LP-dualitet är att dualvariablerna (vars värde ändå beräknas då man löser LP-problemet) kan användas för känslighetsanalyser av den optimala lösningen. 33

Marginalvärden Högerledet i det primala problemet återfinns som målfunktion i det duala problemet. En liten ändring i målfunktionen till det duala problemet ändrar inte lösningen till det duala problemet (jfr exempel A.5)T lätt att beräkna nytt optimalt värde på målfunktionen. Tack vare den starka dualiteten så är det nya optimala målfunktionsvärdet för det primala problemet lika med det nya värdet för det duala problemet. Vi kan således använda dualvariablerna för att beräkna hur en liten ändring i högerledet på ett LP-problem påverkar det optimala målfunktionsvärdet. Dualvariablerna kan tolkas som marginalvärdet för högerledet i ett bivillkor, eftersom de anger hur målfunktionen kommer att ändras för en liten ändring i högerledet: z = T b. 34

Exempel A.9 Tillämpning av dualvariabler Antag att Alice skulle lura sin mamma och endast köpa 1,9 liter frukt. Hur mycket extra skulle hon kunna tjäna på detta bedrägeri?* * Föreläsaren önskar betona att syftet med detta exempel absolut inte är att uppmuntra ett sådant beteende! 35

Exempel A.9 Lösning Det duala problemet lyder max 2 1 + 10 2 då 1 -- 6 1 + 2 3, 0,3 1 + 2 5, 1 0, 2 0. Att dualvariablerna måste vara icke-negativa beror på att olikhetsbivillkoren i Alices primala problem då det formuleras utan slackvariabler. 36

Exempel A.9 Optimal lösning Optimum: 1 = 15 2 = 0.5 Optimalvärde: z = 35 37

Exempel A.9 Känslighetsanalys Om Alice köper 1,9 liter frukt så ändras högerledet till volymbivillkoret med 0,1. Det optimala målfunktionsvärdet ändras då 0,1 1 = 1,5. Detta innebär att Alice sparar in en kostnad på 1,5 kr. 38

Blandad heltalsprogrammering (MILP) Klass av optimeringsproblem med linjär målfunktion och linjära bivillkor, där några variabler endast kan anta heltalsvärden. minimera c T x då Ax = b, x {0, 1, } Snälla MILP-problem kan lösas relativt fort. Besvärliga MILP-problem tar betydligt längre tid att lösa en ett LP-problem av samma storlek! Undvik heltalsvariabler om de inte är nödvändiga! 39

Exempel A.10 Heltalslösning Kunderna kan enbart köpa hela frukter. Lösning Lägg till variabelgränser: x 1, x 2 heltal. 40

Exempel A.10 Optimal lösning Optimum: x 1 = 7 x 2 = 3 Optimalvärde: z = 36 41

Styckvis linjära funktioner Ibland behöver man approximera en ickelinjär funktion i ett LP-problem. I en styckvis linjär funktion delas variabeln in i olika segment. Det lägsta värdet i varje segment är lika med 0, vilket ger oss att x = x j, j där x j är värdet i det j:e segmentet. Observera att vi inte tillåter vilka kombinationer av x j som helst; vi kan inte börja använda ett segment innan det föregående segmentet är fullt utnyttjat, d.v.s. om x j > 0 så är x j = x j 1, där x j 1 är det maximala värdet i segment j 1. 42

Exempel A.10 Mängdrabatt De första fem päronen kostar 5 kr/st. För ytterligare päron utöver detta får Alice rabatt och betalar bara 3 kr/st. 43

Exempel A.10 Lösning Omformulera problemet med en styckvis linjär funktion och introducera en binär variabel: min 5x 1, 1 + 3x 1, 2 + 5x 2 {kostnad} 1 1 då --x {volymbivillkor} 6 11 + --x 6 1 2 + 0,3x 2 2, x 1, 1 + x 1, 2 + x 2 10, {kvantitetsbivillkor} x 1, 1 5s, x 1, 2 M s, x 1, 1 0, x 1, 2 0, x 2 0, s {0, 1}. {variabelgränser} där M är ett godtyckligt, stort tal. 44

Exempel A.10 Den binära variabelns funktion Antag M = 100. Det är optimalt att undvika att använda x 1, 1 och i stället använda x 1, 2 så mycket som möjligt, eftersom kostnaden för x 1, 2 är lägre! För s = 0 erhålls x 1, 1 5s x 1, 1 0 x 1, 1 0 x 1, 2 M s x 1, 2 0 x 1, 2 = 0 För s = 1 erhålls x 1, 1 5s x 1, 1 5 x 1, 1 5 x 1, 2 M s x 1, 2 100 x 1, 2 100 45

Exempel A.11 Begränsat erbjudande Affären erbjuder rabatt (3 kr/st) på upp till fem päron. Köper Alice ytterligare päron får hon betala fullt pris, d.v.s. 5 kr/st. 46

Exempel A.10 Lösning Omformulera problemet med en styckvis linjär funktion. min 3x 1, 1 + 5x 1, 2 +5x 2 {kostnad} 1 1 då --x {volymbivillkor} 6 11 + --x 6 1 2 + 0,3x 2 2, x 1, 1 + x 1, 2 + x 2 10, {kvantitetsbivillkor} x 1, 1 5, x 1, 1 0, x 1, 2 0, x 2 0. {variabelgränser} I det här fallet är det fördelaktigt att använda x 1, 1 i stället för x 1, 2 och därför är det tillräckligt att ange en övre gräns för x 1, 1 ingen binär variabel behövs! 47

Ickelinjär programmering (NLP) Klass av optimeringsproblem där åtminstone ett bivillkor eller målfunktionen är ickelinjär. Vissa snälla NLP-problem kan lösas relativt snabbt. Andra NLP-problem kan ta lång tid att lösa och det är inte säkert att vi hittar ett globalt optimum. Undvik ickelinjära problem om det inte är nödvändigt! Globalt minimum Lokala minimum 48