Optimering med hjälp av Lego. Mathias Henningsson

Relevanta dokument
Laboration 1 - Simplexmetoden och Modellformulering

Laboration 1 - Simplexmetoden och modellformulering

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

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

Optimeringslära Kaj Holmberg

Linjärprogrammering (Kap 3,4 och 5)

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

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

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Optimeringslära för T (SF1861)

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

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

Tentamensinstruktioner. När Du löser uppgifterna

Optimeringslära Kaj Holmberg

Tentamensinstruktioner

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

Föreläsning 2: A/ modellera och lösa LP-problem. TAOP14: Föreläsning 2

Föreläsning 2: A/ modellera och lösa LP-problem. TAOP52: Föreläsning 2. Att modellera och lösa LP-problem

Föreläsning 2: A/ modellera och lösa LP-problem

Föreläsning 2: A/ modellera och lösa LP-problem

Tentamensinstruktioner. När Du löser uppgifterna

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TNK049 Optimeringslära

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

Tentamensinstruktioner

Tentamensinstruktioner. När Du löser uppgifterna

Optimeringslära Kaj Holmberg

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

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2011

Tentamensinstruktioner

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Tentamensinstruktioner. När Du löser uppgifterna

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.

Optimering av olika slag används inom så vitt skilda områden som produktionsplanering,

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:

Optimering och simulering: Hur fungerar det och vad är skillnaden?

LP-dualitet: Exempel. Vårt första exempel. LP-dualitet: Relationer. LP-dualitet: Generellt

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:

Vårt första exempel. LP-dualitet: Exempel. LP-dualitet: Generellt. LP-dualitet: Relationer

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

Introduktion till modelleringsspråket Ampl

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

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

Optimeringslära Kaj Holmberg

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Matematik och grafik i mikroekonomiska modeller

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

TNK049 Optimeringslära

Optimeringslära Kaj Holmberg

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

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

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

TAOP52: Optimeringslära grundkurs

Tentamensinstruktioner. När Du löser uppgifterna

TAOP14: Optimeringslära SAMMANFATTNING OSKAR QVIST:

Tentamensinstruktioner

Optimeringslära Kaj Holmberg

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Optimering och Simulering (MIO310) Kursinformation HT 2016

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Examinator: Torbjörn Larsson Jourhavande lärare: Torbjörn Larsson, tel Tentamensinstruktioner. När Du löser uppgifterna

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TNK049 Optimeringslära

MIO310 OPTIMERING OCH SIMULERING, 4 p

Optimering och Simulering (MIOF30) Kursinformation HT 2019

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Laborationsinformation

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Optimering. Optimering

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

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

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

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Kan du det här? Geometrisk summa och linjär optimering

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Tentamensinstruktioner

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

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

Tekniska Högskolan i Linköping Optimering av realistiska sammansatta system. Optimeringslära Kaj Holmberg.

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Optimeringslära Kaj Holmberg. Lösningar/svar. Iteration 2: x 2 s

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Tentamensinstruktioner

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Tentamensinstruktioner. När Du löser uppgifterna

TNK049 Optimeringslära

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

Tentamensinstruktioner

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2010

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

MIO310 OPTIMERING OCH SIMULERING, 4 p

TNSL05 Övningsuppgifter modellering

Optimering. TAOP88 Optimering för ingenjörer. När inte intuitionen räcker till... Långsiktiga mål med kursen. Vad är optimering?

Transkript:

Optimering med hjälp av Lego Mathias Henningsson

Vem är jag? Mathias Henningsson Lärare Optimeringslära 1996-2007 Produktionsekonomi 2008- Bokförfattare Optimeringslära övningsbok (Studentlitteratur) Arbetar även med genomförande, utveckling och kvalitet för bla programmet Industriell ekonomi

Optimering för högstadiet/gymnasium 3 Har under årens lopp presenterat detta på högstadieskolor i Katrineholm, Nyköping och Linköping (Berzeliusskolan) Har även haft presentationen för I1 på universitetet Beroende på målgrupp så anpassar man nivån och hur långt man går i presentationen Blandar matematik, ekonomi och datoranvändning

Optimeringslära, exempel med Lego Bord Stolar vinst/bord: 150 kr vinst/stol: 100 kr Består av 2 stora, 2 små Består av 1 stor, 2 små Tillgång: Stora bitar: 6 st Små bitar: 9 st Mål: Maximera vinsten

Modellformulering Variabeldefinition: Modellformulering x 1 x 2 = antalet tillverkade bord = antalet tillverkade stolar max z =150x 1 +100x 2 (Målfunktion) då 2x 1 + x 2 6 (Stora bitar) 2x 1 + 2x 2 9 (Små bitar) x 1, x 2 0 (Variabelbegränsningar)

Stol Grafisk lösning x=(1 3) z =450 Heltalig lösning, ej optimum x=(1,5 3) z =525 Kontinuerligt optimum x=(2 2) z =500 Heltaligt optimum Bord

Möjlighet att köpa in ytterligare material 1 stor bit Vad vill du som mest betala? 2 stora bitar Vad vill du som mest betala? 1 liten bit Vad vill du som mest betala? 2 små bitar Vad vill du som mest betala?

Stol x=(2 2) z =500 x=(1 4) z =550 Om högerledet är 8 blir vinsten 500 Om högerledet är 9 blir vinsten 525 kontinuerligt 500 heltaligt Om högerledet är 10 blir vinsten 550 Marginalintäkten 25 kr/bit 2x 1 + 2x 2 10 2x 1 + 2x 2 8 Bord

Stol x=(1,5 3) z =525 x=(2 2) z =500 2x 1 + x 2 8 x=(2,5 2) z =575 x=(3 1) z =550 2x 1 + x 2 6 2x 1 + x 2 7 Om högerledet är 6 blir vinsten 525 kontinuerligt 500 heltaligt Om högerledet är 7 blir vinsten 575 kontinuerligt 550 heltaligt Om högerledet är 8 blir vinsten 625 kontinuerligt 600 heltaligt Marginalintäkten 50 kr/bit x=(3,5 1) z =625 x=(4 0) z =600 Bord

Resultat från optimeringslösare Kontinuerligt z = 525 x := Bord 1.5 Stol 3 Diskret (Heltalig) z = 500 x:= Bord = 2 Stol = 2 Tillgångsvillkor := SMÅ 25 STORA 50

Större problem Lägg till produkterna, bänk och pall En bänk består av en liten och en stor bit Försäljningspris 80 kronor En pall består av två små bitar Försäljningspris 50 kronor Sedan tidigare En stol består av en stor och 2 små bitar Försäljningspris 100 kronor Ett bord består av 2 stora och 2 små bitar Försäljningspris 150 kronor I lagret finns 14 stora och 20 små bitar

Modellformulering Variabeldefinition: x 1 = antalet tillverkade bord = antalet tillverkade stolar Modellformulering x 2 x 3 = antalet tillverkade bänkar x 4 = antalet tillverkade pallar max z =150x 1 +100x 2 +80x 3 + 50x 4 då 2x 1 + x 2 + x 3 14 (Stora bitar) 2x 1 + 2x 2 + x 3 + 2x 4 20 x 1, x 2, x 3, x 4 0 (Små bitar)

Summationsform max z = då 4 c i x i i=1 4 a i x i 14 i=1 4 d i x i 20 i=1 x i 0 (Stora bitar) (Små bitar) där x i = antal av respektive möbel i=1,...4 c i = 150 100 80 50 ( ) a i = 2 1 1 0 ( ) d i = 2 2 1 2 ( ) max z =150x 1 +100x 2 +80x 3 + 50x 4 då 2x 1 + x 2 + x 3 14 (Stora bitar) 2x 1 + 2x 2 + x 3 + 2x 4 20 x 1, x 2, x 3, x 4 0 (Små bitar)

Matrisform Varje rad är en legobit Varje kolumn är en möbel Bord Stol max z = c T x då Ax b x 0 där x = antal av respektive möbel x = (????) ( ) c = 150 100 80 50 # A = 2 1 1 0 & % ( $ 2 2 1 2' ( ) b = 14 20

Resultat från optimeringslösare z = 1270 x['stol'] 0 x['bänk'] 14 x['bord'] 0 x['pall'] 3 Precis som vi tänkt ut!!! Men så här enkelt är det kanske inte i verkligheten Använd lösare Hur använder vi lösaren på ett effektivt sätt?

Datafil set PRODUKTER := STOL BÄNK BORD PALL; set BITAR := STORA SMÅ; param Tillgång := STORA 14 SMÅ 20; param Intäkt := STOL 100 BÄNK 80 BORD 150 PALL 50; param Atgang : STORA SMÅ := STOL 1 2 BÄNK 1 1 BORD 2 2 PALL 0 2;

Modell set PRODUKTER; set BITAR; max z =150x 1 +100x 2 +80x 3 + 50x 4 då 2x 1 + x 2 + x 3 14 (Stora bitar) 2x 1 + 2x 2 + x 3 + 2x 4 20 x 1, x 2, x 3, x 4 0 (Små bitar) param Intäkt{PRODUKTER}; param Tillgång{BITAR}; param Atgang{PRODUKTER,BITAR}; var x{produkter} >= 0; maximize z: sum{i in PRODUKTER} Intäkt[i]*x[i]; s.t. Tillgångsvillkor{j in BITAR}: sum{i in PRODUKTER} Atgang[i,j]*x[i]<=Tillgång[j];

Ännu större problem Lägg till ytterligare produkter En storsoffa består av 3 stora, 2 stora-smala Försäljningspris 200 kronor En soffa består av 2 stora, 1 stor-smal Försäljningspris 140 kronor En specialsoffa består av 1 stor, 1 liten, 3 liten-smal Försäljningspris 153 kronor En minipall består av 1 liten och en liten-smal Försäljningspris 40 kronor Ett specialbord består av 2 stora och 2 liten-smal Försäljningspris 132 kronor I lagret finns 102 stora, 100 små, 69 Stor-smala och 83 Liten-smala Nu blir det svårt att lösa utan dator..

Matrisform max z = c T x då Ax b x 0 där x = antal av respektive möbel c = 150 100 80 50 200 140 153 40 132 ( ) # 2 1 1 0 3 2 1 0 2& % ( 2 2 1 2 0 0 1 0 0 A = % ( % 0 0 0 0 2 1 0 1 0( % ( $ 0 0 0 0 0 0 3 1 2' b = 102 100 69 83 ( ) Kolumnen för soffa 2 stora och en stor-smal Samma modell, men med annan indata Enkelt att lösa flera liknande problem med ungefär samma modell

Modell set PRODUKTER; set BITAR; param Intäkt{PRODUKTER}; param Tillgång{BITAR}; param Atgang{PRODUKTER,BITAR}; var x{produkter} >= 0; maximize z: sum{i in PRODUKTER} Intäkt[i]*x[i]; s.t. Tillgångsvillkor{j in BITAR}: sum{i in PRODUKTER} Atgang[i,j]*x[i]<=Tillgång[j];

Datafil set PRODUKTER := STOL BÄNK BORD PALL SPECIALBORD MINIPALL SOFFA STORSOFFA SPECIALSOFFA; set BITAR := STORA SMÅ STOR-SMAL LITEN-SMAL; param Tillgång := STORA 102 SMÅ 100 STOR-SMAL 69 LITEN-SMAL 83; param Intäkt := STOL 100 BÄNK 80 BORD 150 PALL 50 SPECIALBORD 132 MINIPALL 40 SOFFA 140 STORSOFFA 200 SPECIALSOFFA 153 ; param Atgang : STORA SMÅ STOR-SMAL LITEN-SMAL := STOL 1 2 0 0 BÄNK 1 1 0 0 BORD 2 2 0 0 PALL 0 2 0 0 SPECIALBORD 2 0 0 2 MINIPALL 0 1 0 1 STORSOFFA 3 0 2 0 SOFFA 2 0 1 0 SPECIALSOFFA 1 1 0 3;

Resultat från optimeringslösare Vinst = 11221 x['stol'] 0 x['bänk'] 1 x['bord'] 0 x['pall'] 35 x['specialbord'] 0 x['minipall'] 2 x['soffa'] 37 x['storsoffa'] 0 x['specialsoffa'] 27

Hur gör lösaren Fundamentalsatsen Optimum finns i minst en hörnpunkt Simplexmetoden som gås igenom i Optimeringslära, grk Bygger på Gausselimination från Linjär algebra Lägger till nya variabler för att erhålla likhetsvillkor Gå runt bland hörnpunkterna och hitta optimum Antalet hörnpunkter är stort 100 variabler, 50 villkor ger miljarder hörnpunkter Måste göra detta på ett smart sätt Simplex använder målfunktionen och lite andra trix 100 variabler, 50 villkor löses på mindre än 1 sek

www.liu.se www.liu.se