TAOP61 Projekt 2. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober / 14

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

TAOP61 Förprojekt 4: GPS

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering

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

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

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

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:

Projektinformation TAOP61 Optimering av realistiska sammansatta system Projekt 4: Lösning av snöröjningsproblemet

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

Linköpings Universitet. Matematiska institutionen/optimeringslära Kaj Holmberg IT Termin 5. IT Termin Vinjetter

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:

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

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

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

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

Optimeringslära Kaj Holmberg

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

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

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Linköpings Universitet. Matematiska institutionen/optimeringslära Kaj Holmberg IT Termin 5. IT Termin Vinjetter

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Optimering. Optimering

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Laboration 1 - Simplexmetoden och modellformulering

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

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Tentamensinstruktioner. När Du löser uppgifterna

Laboration 1 - Simplexmetoden och Modellformulering

Laborationsinformation TAOP88 Optimering för ingenjörer, VT17

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret Lektion 1

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

Optimeringslära Kaj Holmberg

Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

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

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

Optimeringslära Kaj Holmberg

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

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

1 VIGROPT: Visual Group Optimization

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

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Optimeringslära Kaj Holmberg

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Optimeringslära Kaj Holmberg

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

kl Tentaupplägg

Värmedistribution i plåt

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

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

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Optimeringslära Kaj Holmberg

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

Tentamensinstruktioner. När Du löser uppgifterna

MMA132: Laboration 2 Matriser i MATLAB

Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

Tentamen TEN1 HI

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Micro:bit. Börja skapa egna program

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

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

Linjärprogrammering (Kap 3,4 och 5)

1 LP-problem på standardform och Simplexmetoden

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

Instruktion för laboration 1

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Optimering av NCCs klippstation för armeringsjärn

Laboration: Vektorer och matriser

Laboration 1, M0039M, VT16

Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper

Laboration: Grunderna i MATLAB

Sanningar om programmering

Billigaste väg: Matematisk modell i vektor/matrisform. Billigaste väg: Matematisk modell i vektor/matrisform

Tentamen i Beräkningsvetenskap II, 5.0 hp,

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

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

Instruktion för laboration 1

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Övningsuppgifter till föreläsning 2 Variabler och uttryck

2 Matrisfaktorisering och lösning till ekvationssystem

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

k 1 B k 2 C ges av dx 1 /dt = k 1 x 1 x 1 (0) = 100 dx 2 /dt = k 1 x 1 k 2 x 2 x 2 (0) = 0 dx 3 /dt = k 2 x 2 x 3 (0) = 0

3.0. Tips och Trix Sida 1 av 18

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C. Tentamensinstruktioner. När Du löser uppgifterna

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Optimeringslära Kaj Holmberg

Transkript:

TAOP61 Projekt 2 Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

TAOP61 Projekt 2 Optimering av elmotorutnyttjandet i en laddhybrid med hjälp av dynamisk programmering. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

TAOP61 Projekt 2 Optimering av elmotorutnyttjandet i en laddhybrid med hjälp av dynamisk programmering. Programvara: Matlab/Octave/Python, eget program. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

TAOP61 Projekt 2 Optimering av elmotorutnyttjandet i en laddhybrid med hjälp av dynamisk programmering. Programvara: Matlab/Octave/Python, eget program. Material: Fallbeskrivning: Laddhybrid. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

TAOP61 Projekt 2 Optimering av elmotorutnyttjandet i en laddhybrid med hjälp av dynamisk programmering. Programvara: Matlab/Octave/Python, eget program. Material: Fallbeskrivning: Laddhybrid. Uppgifter: Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

TAOP61 Projekt 2 Optimering av elmotorutnyttjandet i en laddhybrid med hjälp av dynamisk programmering. Programvara: Matlab/Octave/Python, eget program. Material: Fallbeskrivning: Laddhybrid. Uppgifter: Formulera problemet för lösning med dynamisk programmering. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

TAOP61 Projekt 2 Optimering av elmotorutnyttjandet i en laddhybrid med hjälp av dynamisk programmering. Programvara: Matlab/Octave/Python, eget program. Material: Fallbeskrivning: Laddhybrid. Uppgifter: Formulera problemet för lösning med dynamisk programmering. Gör ett program som löser problemet med dynamisk programmering. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

TAOP61 Projekt 2 Optimering av elmotorutnyttjandet i en laddhybrid med hjälp av dynamisk programmering. Programvara: Matlab/Octave/Python, eget program. Material: Fallbeskrivning: Laddhybrid. Uppgifter: Formulera problemet för lösning med dynamisk programmering. Gör ett program som löser problemet med dynamisk programmering. Lös det lilla testproblemet för att se att allt fungerar korrekt. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

TAOP61 Projekt 2 Optimering av elmotorutnyttjandet i en laddhybrid med hjälp av dynamisk programmering. Programvara: Matlab/Octave/Python, eget program. Material: Fallbeskrivning: Laddhybrid. Uppgifter: Formulera problemet för lösning med dynamisk programmering. Gör ett program som löser problemet med dynamisk programmering. Lös det lilla testproblemet för att se att allt fungerar korrekt. Lös de stora problemen. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

TAOP61 Projekt 2 Optimering av elmotorutnyttjandet i en laddhybrid med hjälp av dynamisk programmering. Programvara: Matlab/Octave/Python, eget program. Material: Fallbeskrivning: Laddhybrid. Uppgifter: Formulera problemet för lösning med dynamisk programmering. Gör ett program som löser problemet med dynamisk programmering. Lös det lilla testproblemet för att se att allt fungerar korrekt. Lös de stora problemen. Skriv en rapport om resultaten. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 1 / 14

Laddhybrid Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 2 / 14

Laddhybrid Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 3 / 14

TAOP61 Projekt 2: Laddhybrid Vi har fyra inställningar för framdrivningssättet: 1. Bara el. 2. Mest el, med bidrag av bensin. 3. Lite el, med mera bensin. 4. Bara bensin. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 4 / 14

TAOP61 Projekt 2: Laddhybrid Vi har fyra inställningar för framdrivningssättet: 1. Bara el. 2. Mest el, med bidrag av bensin. 3. Lite el, med mera bensin. 4. Bara bensin. Vägarna delas upp i fem kategorier: 1. Motorväg. 2. Landsväg. 3. Mindre väg, backig och/eller kurvig. 4. Väg i gles tätort (liten stad eller förort). 5. Väg i innerstad (trafikljus, många start och stopp). Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 4 / 14

TAOP61 Projekt 2: Laddhybrid Vi förutsätter att man har bestämt vilken väg man ska ta. Hela vägen delas upp i n stycken vägavsnitt av olika typer och olika längder. Vägavsnitt j har längden l j (m) och är av typen t j. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 5 / 14

TAOP61 Projekt 2: Laddhybrid Vi förutsätter att man har bestämt vilken väg man ska ta. Hela vägen delas upp i n stycken vägavsnitt av olika typer och olika längder. Vägavsnitt j har längden l j (m) och är av typen t j. Baserat på förväntad medelhastighet har man uppskattat hur mycket batterinivån sjunker om man färdas en meter på en väg av kategori t med framdrivningssätt k, och det betecknas med b kt. Dessutom har man beräknat en kostnad (inkluderande allt, dvs. bensin, slitage, miljöpåverkan etc) för att färdas en meter på en väg av kategori t med framdrivningssätt k, och den betecknas med d kt. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 5 / 14

TAOP61 Projekt 2: Laddhybrid Vi förutsätter att man har bestämt vilken väg man ska ta. Hela vägen delas upp i n stycken vägavsnitt av olika typer och olika längder. Vägavsnitt j har längden l j (m) och är av typen t j. Baserat på förväntad medelhastighet har man uppskattat hur mycket batterinivån sjunker om man färdas en meter på en väg av kategori t med framdrivningssätt k, och det betecknas med b kt. Dessutom har man beräknat en kostnad (inkluderande allt, dvs. bensin, slitage, miljöpåverkan etc) för att färdas en meter på en väg av kategori t med framdrivningssätt k, och den betecknas med d kt. Eftersom vägavsnitt j har längden l j, sjunker batterinivån med a jk = l j b ktj om man kör den med inställning k, och kostnaden blir c jk = l j d ktj. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 5 / 14

TAOP61 Projekt 2: Laddhybrid Vi förutsätter att man har bestämt vilken väg man ska ta. Hela vägen delas upp i n stycken vägavsnitt av olika typer och olika längder. Vägavsnitt j har längden l j (m) och är av typen t j. Baserat på förväntad medelhastighet har man uppskattat hur mycket batterinivån sjunker om man färdas en meter på en väg av kategori t med framdrivningssätt k, och det betecknas med b kt. Dessutom har man beräknat en kostnad (inkluderande allt, dvs. bensin, slitage, miljöpåverkan etc) för att färdas en meter på en väg av kategori t med framdrivningssätt k, och den betecknas med d kt. Eftersom vägavsnitt j har längden l j, sjunker batterinivån med a jk = l j b ktj om man kör den med inställning k, och kostnaden blir c jk = l j d ktj. Man kan använda sig av variablerna x jk = 1 om vi kör vägavsnitt j med inställning k, och 0 om inte. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 5 / 14

TAOP61 Projekt 2: Laddhybrid Vi förutsätter att man har bestämt vilken väg man ska ta. Hela vägen delas upp i n stycken vägavsnitt av olika typer och olika längder. Vägavsnitt j har längden l j (m) och är av typen t j. Baserat på förväntad medelhastighet har man uppskattat hur mycket batterinivån sjunker om man färdas en meter på en väg av kategori t med framdrivningssätt k, och det betecknas med b kt. Dessutom har man beräknat en kostnad (inkluderande allt, dvs. bensin, slitage, miljöpåverkan etc) för att färdas en meter på en väg av kategori t med framdrivningssätt k, och den betecknas med d kt. Eftersom vägavsnitt j har längden l j, sjunker batterinivån med a jk = l j b ktj om man kör den med inställning k, och kostnaden blir c jk = l j d ktj. Man kan använda sig av variablerna x jk = 1 om vi kör vägavsnitt j med inställning k, och 0 om inte. (Om alla koefficienter för en variabel blir noll, kommer den att elimineras.) Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 5 / 14

TAOP61 Projekt 2: Modell Kappsäcksproblem: min c jk x jk j k x jk = 1 för alla j k j a jk x jk L 0 x jk 0 för alla j och k Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 6 / 14

TAOP61 Projekt 2: Modell Kappsäcksproblem: min c jk x jk j k x jk = 1 för alla j k j a jk x jk L 0 x jk 0 för alla j och k Notera att antal vägavsnitt (j) avgör antalet iterationer, medan högerledet L 0 avgör storleken av tabellen i dynamisk programmering. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 6 / 14

TAOP61 Projekt 2: Indata Data till detta problem består av koefficienterna b kt och d kt. Dessa data återfinnes på filerna linkbatt.txt och linkcost.txt. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 7 / 14

TAOP61 Projekt 2: Indata Data till detta problem består av koefficienterna b kt och d kt. Dessa data återfinnes på filerna linkbatt.txt och linkcost.txt. Dessutom behövs längd l j och typ t j för varje vägavsnitt, vilket kan vara många. Dessa data återfinnes på filerna path0.txt, path1.txt etc. Slutligen behövs startladdningen, L 0. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 7 / 14

TAOP61 Projekt 2: Indata Data till detta problem består av koefficienterna b kt och d kt. Dessa data återfinnes på filerna linkbatt.txt och linkcost.txt. Dessutom behövs längd l j och typ t j för varje vägavsnitt, vilket kan vara många. Dessa data återfinnes på filerna path0.txt, path1.txt etc. Slutligen behövs startladdningen, L 0. Programmet läser in dessa data, och beräknar koefficienterna a och c. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 7 / 14

TAOP61 Projekt 2: Indata linkbatt.txt: 12 8 5 0 11 7 4 0 10 6 3 0 10 6 3 0 12 8 5 0 linkcost.txt: 2 4 7 10 1 4 7 10 1 5 8 14 1 6 10 17 1 7 15 20 Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 8 / 14

TAOP61 Projekt 2: Instanser Instans Antal sträckor L 0 Vad? path1 3 10 Litet test path2 3 4000 Mellantest path3 5 4000 Större test path4 20 1000 Från slumpad karta path6 74 200000 Linköping - Jönköping path7 74 200000 Linköping - Jönköping path8 94 100000 Östergötland, öst till väst path9 246 100000 Östergötland, norr till syd path12 200 70000 Slumpat path13 300 100000 Slumpat path14 500 100000 Slumpat path15 700 200000 Slumpat path16 1000 300000 Slumpat Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 9 / 14

TAOP61 Projekt 2: path6 Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 10 / 14

TAOP61 Projekt 2: path8 Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 11 / 14

TAOP61 Projekt 2: path9 Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 12 / 14

TAOP61 Projekt 2: Kod På filen initeldynp.m finns ett förslag på början av matlab-koden. Den läser in indatafilerna. Programmet kontrollerar om batteriladdningen räcker till att köra på bara el hela vägen. (Dvs. om L 0 är tillräckligt stort.) Då minskas L 0 till precis vad som behövs för eldrift. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 13 / 14

TAOP61 Projekt 2: Kod På filen initeldynp.m finns ett förslag på början av matlab-koden. Den läser in indatafilerna. Programmet kontrollerar om batteriladdningen räcker till att köra på bara el hela vägen. (Dvs. om L 0 är tillräckligt stort.) Då minskas L 0 till precis vad som behövs för eldrift. Efter detta ska ni skriva in er optimeringsalgoritm. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 13 / 14

TAOP61 Projekt 2: Kod På filen initeldynp.m finns ett förslag på början av matlab-koden. Den läser in indatafilerna. Programmet kontrollerar om batteriladdningen räcker till att köra på bara el hela vägen. (Dvs. om L 0 är tillräckligt stort.) Då minskas L 0 till precis vad som behövs för eldrift. Efter detta ska ni skriva in er optimeringsalgoritm. Några tips (matlab-kommandon som kan vara bra att ha): ix=ix-a; Minskar indexvektorn ix med a enheter. nix=1-ix>0; nix blir 0 i de positioner där ix är större än noll och 1 i de positioner där ix mindre eller lika med noll. ft0=circshift(ft1,[0 a]); Vektorn ft0 är vektorn ft1 skiftad (flyttad) a steg åt höger. ft3(nix)=inf; Elementen med index där nix=1 i vektorn ft3 sätts till ett stort tal. (De kommer därför aldrig att ge minimum.) Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 13 / 14

TAOP61 Projekt 2 1 Gör nödvändiga definitioner och formuleringar för att lösa problemet med dynamisk programmering. 2 Gör ett program som löser problemet med dynamisk programmering. 3 Lös det lilla testproblemet för att se att allt fungerar korrekt. 4 Lös de större problemen. Notera målfunktionsvärde och lösning. 5 Lös problem path7 för olika startladdning. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober 2016 14 / 14