Post on 18-Aug-2020
TW2020 OptimaliseringHoorcollege 1
Leo van Iersel
Technische Universiteit Delft
7 september 2016
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 1 / 40
Opzet vak
Woensdag: hoorcollege 13:45 - 15:30
Vrijdag: werkcollege
I Leiden 9:00 - 10:45, zaal 312.
I Delft 10:45 - 12:30, zaal H en Pi(vanaf 18 november van 8:45 tot 10:30)
Een feedbackopgave per week (inleveren op het werkcollege)
Maandag 7 november: deeltentamen (in Leiden en Delft)
Vrijdag 20 januari: tentamen
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 2 / 40
Bepalen eindcijfer
e = 0.3d + 0.7t
onder de voorwaarde: t ≥ 5.0
met
e het eindcijferd het deeltentamencijfer ent het tentamencijfer.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 3 / 40
Materiaal
Website: http://leovaniersel.wordpress.com/optimalisering/
Dictaat voor week 1: Karen Aardal. Modelleren van LP en ILPproblemen: een introductie (op website)
Boek (niet verplicht): Christos H. Papadimitriou, Kenneth Steiglitz.Combinatorial Optimization: Algorithms and Complexity. DoverPublications, Inc., Mineola, NY, 1998.
Slides (op website)
Opgaven (op website)
NB: collegeaantekeningen komen niet op de website
NB: uitwerkingen van opgaven komen niet op de website
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 4 / 40
Optimalisering
Vraag
Wat is optimalisering?
Antwoord
Vind de “beste” oplossing uit een “gegeven” verzameling oplossingen.
Vraag
Wat is hier moeilijk aan?
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 5 / 40
Voorbeeld Voorbeeld:
Je moet gaten boren voor componenten en bedrading van een “printed circuit board” (pcb). De boor-machine moet zo snel mogelijk klaar zijn. Hoe kunnen we dit probleem wiskundig modelleren?
Je moet gaten boren voorcomponenten en bedra-ding van een printed cir-cuit board (pcb). Deboormachine moet zo snelmogelijk klaar zijn.
Hoe kunnen we dit pro-bleem wiskundig modelle-ren?
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 6 / 40
Model gebaseerd op een graafEen graaf bestaat uit punten en lijnen die punten met elkaar verbinden.
De punten respresenteren de gaten in het pcb.
Alle verbindingen tussen punten zijn mogelijk. Als een verbinding wordtgebruikt betekent dit dat de twee verbonden punten (= gaten) achterelkaar worden geboord.
Een graaf.
Een graaf waarin we uit allemogelijke verbindingen mogen
kiezen.Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 7 / 40
Hoe ziet een toegelaten verzameling verbindingen eruit?
Ze vormen een route door de gaten. Elk gat wordt precies een keergeboord.
Voorbeeld.
Vraag
Hoeveel mogelijke routes zijn er?
1
2(n − 1)(n − 2) · · · =
1
2(n − 1)!
In dit voorbeeldje: 19, 958, 400Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 8 / 40
Bij honderd gaten:100 gaten:
394328933682395251776181606966092531147567988843586631647371266622179724981701671460152142005992311952088606069459819415128821395121318552530963312476414965556731428635381658618698494471961222810725832120127016645932065613714147426638762121203786951620160628702789784330113015952085162031175850429398089461111394811851948687360000000000000000000000000000000000000000000000000 routes
Ouch, we moeten iets slimmers bedenken
routes.
Ouch! We moeten iets slimmers bedenken.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 9 / 40
Terug naar ons echte voorbeeldVoorbeeld:
Je moet gaten boren voor componenten en bedrading van een “printed circuit board” (pcb). De boor-machine moet zo snel mogelijk klaar zijn. Hoe kunnen we dit probleem wiskundig modelleren?
3038 gaten
3038 gaten Beste (=optimale) route:
optimale (beste) route
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 10 / 40
Hoe pakken we dit aan?Formuleer een optimaliseringsprobleem gebaseerd op hetgrafenmodel.
Input (wat weten wij?): de graaf G met puntenverzameling V enlijnenverzameling E , en de lengte `(e) van elke lijn (verbinding) e.
Stap 1: definieer de beslissingsvariabelen
Wat willen we weten?Hoe kunnen we een oplossing met variabelen beschrijven?
xe = 1 als lijn e in de route zit
xe = 0 anders
Stap 2: formuleer de doelfunctie
Wat willen we maximaliseren of minimaliseren?Minimaliseer de lengte van de route:
min∑e∈E
`(e)xe
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 11 / 40
Hoe pakken we dit aan?
Stap 3: formuleer de voorwaarden
Waar moeten oplossingen aan voldoen?
1 De boormachine gaat naar een te boren gat, en gaat na het boren weerweg. Dat betekent dat elk punt precies twee verbindingen moet hebben:∑
lijnen e die aan v vast zitten
xe = 2 voor elk punt v ∈ V
2 We willen geen sub-routes.
Dit kan ook met lineaire restricties. Hier komen we later op terug.3 Restricties op de variabelwaarden.
xe ≥ 0 voor alle e ∈ E
xe ≤ 1 voor alle e ∈ E
xe ∈ Z voor alle e ∈ E
Oftewel xe ∈ {0, 1}voor alle e ∈ E .
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 12 / 40
Output: de variabelwaarde 0 of 1 voor elke variabele. De variabelen metwaarde 1 horen bij de verbindingen die samen een optimale route vormen!
Om output te produceren, laten we een algoritme op het model los.
Huidig “wereldrecord” (2006): 85900 punten in een VLSI-toepassing.
Output: De variabelwaarden 0 of 1 voor elke variabele. De variabelen met waarde 1 behoren bij verbindingen die samen een route vormen!
Om output te produceren, laten we een algoritme op het model los.
Huidig “wereldrecord”: 85.900 punten in een VLSI-toepassing, opgelost in 2006
Dit probleem is een toepassing van het Travelling Salesman Problem(TSP), het handelsreizigersprobleem.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 13 / 40
Vragen die in dit vak aan bod komen
Vraag
Wat is een goed wiskundig model voor een gegeven probleem?
Vraag
Hoe kun je aantonen dat een oplossing optimaal is?
Vraag
Wat is een goed algoritme om een probleem, gegeven het model, op telossen.
Vraag
Zijn er modellen waarvoor we geen efficiente algoritmes kunnen vinden?Kunnen we dit aantonen of verklaren?
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 14 / 40
Optimalisering
Vraag
Wat is optimalisering?
Antwoord
Vind de “beste” oplossing uit een “gegeven” verzameling oplossingen.
Vraag
Wat is hier moeilijk aan?
Antwoord
De oplossingen zijn impliciet gegeven door middel van voorwaarden waarze aan moeten voldoen. Alle mogelijke oplossingen afgaan zou in demeeste gevallen veel te lang duren.
We hebben wiskunde nodig! Algebra, discrete wiskunde, analyse,algoritmiek,. . .
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 15 / 40
Soorten optimaliseringsproblemen
Algemene formulering:
min f (x)o.d .v . gi (x) ≥ 0 voor i = 1, . . . , p
hj(x) = 0 voor j = 1, . . . , q
met f , gi , hj functies van x ∈ Rn of x ∈ Zn
o.d.v. staat voor “onder de voorwaarden”in het Engels: s.t. = “subject to”.
Linear Programming (LP) (lineaire optimalisering):f , gi , hj lineair, x ∈ Rn
Integer Linear Programming (ILP) (geheeltallige lineaireoptimalisering): f , gi , hj lineair, x ∈ Zn
Convex Programming: (convexe optimalisering)f convex, gi concaaf, hj lineair, x ∈ Rn.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 16 / 40
LP problemen formuleren: een simpel voorbeeld
Voorbeeld (1)
Je hebt 6m2 land beschikbaar en wilt hier aardappelen en wortelen opverbouwen.
Met aardappelen kun je 3 euro per m2 verdienenen met wortelen 2 euro per m2.
Voor aardappelen heb je 2 liter insecticide per m2 nodigen voor wortelen 1 liter per m2.
Je hebt 8 liter insecticide.
Hoeveel land gebruik je voor aardappelen en hoeveel voor wortelen?
Stap 1: definieer de beslissingsvariabelen
Stap 2: formuleer de doelfunctie
Stap 3: formuleer de voorwaarden
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 17 / 40
Grafische weergave
x2
(1)
x1
(2)
1 2 3 4 5 6
1
2
3
4
5
6
7
8
z=0
LP formulering:
max z = 3 x1 + 2 x2o.d .v . x1 + x2 ≤ 6 (1)
2 x1 + x2 ≤ 8 (2)x1, x2 ≥ 0
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 18 / 40
Optimale oplossing
x2
(1) x1
(2)
1 2 3 4 5 6
1
2
3
4
5
6
7
8
(2,4)
z=14
LP formulering:
max z = 3 x1 + 2 x2o.d .v . x1 + x2 ≤ 6 (1)
2 x1 + x2 ≤ 8 (2)x1, x2 ≥ 0
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 19 / 40
Belangrijke begrippen
Een oplossing die aan de voorwaarden voldoet heet eentoegelaten oplossing (feasible solution).
De verzameling van alle toegelaten oplossingen heet hettoegelaten gebied (feasible region).
Een toegelaten oplossing waarvoor de doelfunctie gemaximaliseerd ofgeminimaliseerd is heet een optimale oplossing.
Er kunnen dus meerdere optimale oplossingen zijn. Die hebben dandezelfde doelfunctiewaarde.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 20 / 40
ILP problemen formuleren: Facility Location
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 21 / 40
ILP problemen formuleren: Facility Location
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 22 / 40
ILP problemen formuleren: Facility Location
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 23 / 40
ILP problemen formuleren: Facility Location
Voorbeeld (2)
m winkels moeten regelmatig bevoorraad worden.
n locaties zijn beschikbaar om distributiecentra te openen.
Selecteer locaties voor distributiecentra zodanig dat de totale kostenzo klein mogelijk zijn:
I cj zijn de kosten om een distributiecentrum te openen op locatie j
I dij zijn de kosten om winkel i uit locatie j te bevoorraden.
Stap 1: definieer de beslissingsvariabelen
Stap 2: formuleer de doelfunctie
Stap 3: formuleer de voorwaarden
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 24 / 40
Minimum Spanning Tree
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 25 / 40
Minimum Spanning Tree
Voorbeeld (3)
Verbind n huizen met kabels (bijv. glasvezel) zodanig dat de totaleafstand van de verbindingen (kabels) minimaal is. Niet alle verbindingenzijn mogelijk.
Modelleren als grafenprobleem
Definitie
Een graaf is een paar (V ,E ) met:
V is een verzameling punten of knopen (nodes, vertices)
E is een verzameling lijnen of kanten (edges)
elke kant is een verzameling van twee punten.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 26 / 40
Beschouw een graaf G = (V ,E ).
Definitie
G is samenhangend als er een pad bestaat tussen elk tweetal punten.
G is een boom als G samenhangend is en geen circuits (cykels) bevat.
Een deelgraaf van G is een graaf G ′ = (V ′,E ′)met V ′ ⊆ V en E ′ ⊆ E .
Een opspannende boom van G is een deelgraaf van Gdie een boom is en alle punten van G bevat.
Lemma
De volgende beweringen zijn equivalent voor een graaf G = (V ,E ):
1 G is een boom;
2 G is samenhangend en |E | = |V | − 1;
3 G heeft geen circuits, maar als er een lijn aan G wordt toegevoegdontstaat er een uniek circuit.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 27 / 40
Minimum Spanning Tree
Voorbeeld (3)
Verbind n huizen met kabels (bijv. glasvezel) zodanig dat de totaleafstand van de verbindingen (kabels) minimaal is. Niet alle verbindingenzijn mogelijk.
Modelleren als grafenprobleem:
Probleem
Minimum Spanning TreeGegeven: een graaf G = (V ,E ) en een lengte `(e) voor elke lijn e ∈ EVind: een opspannende boom van G zodanig dat de som van de lengtesvan de lijnen in de boom minimaal is.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 28 / 40
Voorbeeld
u
v w
MST formuleren met LP: voorbeeld
min 𝑑𝑑1𝑥𝑥1 + 𝑑𝑑2𝑥𝑥2 + 𝑑𝑑3𝑥𝑥3 o.d.v. 𝑥𝑥1 + 𝑥𝑥2 + 𝑥𝑥3 = 2 𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3 ≥ 0 𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3,≤ 1 (𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3 geheeltallig)
𝒆𝒆𝟏𝟏 𝒆𝒆𝟐𝟐
𝒆𝒆𝟑𝟑
Alle hoekpunten zijn geheeltallig, dus de geheeltalligheidseisen kunnen worden weggelaten!
min `(e1) x1 + `(e2) x2 + `(e3) x3o.d .v . x1 + x2 + x3 = 2
x1, x2, x3 ≤ 1x1, x2, x3 ≥ 0
Alle hoekpunten zijn geheeltallig, dus zijn er geen geheeltalligheidseisennodig! We hebben een LP formulering.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 29 / 40
Hele ILP formulering voor MST
min∑e∈E
`(e)xe
o.d .v .∑e∈E
xe = |V | − 1∑e∈δ(S)
xe ≥ 1 voor alle S ( V ,S 6= ∅
xe ∈ {0, 1} voor alle e ∈ E
met δ(S) de verzameling lijnen met een eindpunt in S en een eindpuntbuiten S .
(Het blijkt dat de laatste restrictie vervangen kan worden door 0 ≤ xe ≤ 1,waardoor een LP formulering verkregen wordt.)
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 30 / 40
Terug naar TSP
Nu kunnen een soortgelijk idee gebruiken om onze ILP formulering vanTSP af te maken.
Probleem
Travelling Salesman Problem (TSP)Gegeven: een graaf G = (V ,E ) en een lengte `(e) voor elke lijn e ∈ EVind: een zo kort mogelijk circuit dat elk punt van de graaf precies eenkeer doorloopt.
Beslissingsvariabelen: xe = 1 als lijn e in het circuit zit en anders xe = 0.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 31 / 40
Probleem
Travelling Salesman Problem (TSP)Gegeven: een graaf G = (V ,E ) en een lengte `(e) voor elke lijn e ∈ EVind: een zo kort mogelijk circuit dat elk punt van de graaf precies eenkeer doorloopt.
Beslissingsvariabelen: xe = 1 als lijn e in het circuit zit en anders xe = 0.
ILP formulering:
min∑e∈E
`(e)xe
o.d .v .∑e3v
xe = 2 voor alle v ∈ V∑e∈δ(S)
xe ≥ 2 voor alle S ( V , S 6= ∅
xe ∈ {0, 1} voor alle e ∈ E
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 32 / 40
Energietransportprobleem
50 miljoenkWh
40 miljoenkWh
40 miljoenkWh
45 miljoenkWh
20 miljoenkWh
30 miljoenkWh
30 miljoenkWh
Capaciteit VraagTransportkosten
8
6
10
9
13
12
137
916
5
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 33 / 40
Voorbeeld (4)
Vier energiecentrales moeten de elektriciteit leveren voor vier steden.Beslis hoeveel elektriciteit van elke centrale naar elke stad getransporteerdmoet worden, zodanig dat aan de (piek) vraag van elke stad voldaanwordt, de capaciteit van de centrales niet overschreden wordt, en de totaletransportkosten minimaal zijn.
Modelleren met behulp van een gerichte graaf:
Definitie
Een gerichte graaf is een paar (V ,A) met:
V is een verzameling punten of knopen (nodes, vertices)
A is een verzameling pijlen (arcs)
elke pijl is een geordend paar van twee punten.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 34 / 40
Definitie
Een (gerichte) graaf is bipartiet als de puntenverzameling V gesplitst kanworden in twee verzamelingen U en W , zodanig dat:
U ∪W = V
U ∩W = ∅elke lijn (of pijl) heeft een eindpunt in U en een eindpunt in W .
Bipartiete graaf Gerichte bipartiete graaf
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 35 / 40
Model m.b.v. gerichte graaf
Probleem
Energietransportprobleem
Gegeven: een gerichte bipartiete graaf D = (U ∪W ,A),kosten cuw voor elke pijl (u,w) ∈ A, met u ∈ U en w ∈W ,capaciteit su voor elke u ∈ U envraag dw voor elke w ∈W .
Vind: een waarde xuw ≥ 0 voor elke pijl (u,w) ∈ A zodanig dat:∑w :(u,w)∈A
xuw ≤ su voor alle u ∈ U
∑u:(u,w)∈A
xuw ≥ dw voor alle w ∈W
∑(u,w)∈A
cuwxuw is minimaal.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 36 / 40
Modelleren als LP probleem
Beslissingsvariabelen: xuw is de hoeveelheid elektriciteit diegetransporteert wordt van centrale u naar stad w , in kWh.
min∑
(u,w)∈A
cuwxuw
o.d .v .∑
w :(u,w)∈A
xuw ≤ su voor alle u ∈ U∑u:(u,w)∈A
xuw ≥ dw voor alle w ∈W
xuw ≥ 0 voor alle (u,w) ∈ A
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 37 / 40
Optimale oplossing
50 miljoenkWh
40 miljoenkWh
40 miljoenkWh
45 miljoenkWh
20 miljoenkWh
30 miljoenkWh
30 miljoenkWh
Capaciteit VraagTransport
15
2545
5
5
30
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 38 / 40
Modelleertechnieken voor ILP formuleringen
Voorbeeld (5)
Twee van de restricties van een zeker model zijn 2x1 + 3x2 ≤ 3 enx1 + 2x3 ≤ 4. Er hoeft echter maar aan een van de twee restrictiesvoldaan te worden. Hoe kunnen we dit modelleren?
Voorbeeld (6)
Beschouw een verpakkingsprobleem waarin er dozen beschikbaar zijn waar5, 10, 25 of 50 producten in passen. Laat x het aantal producten per dooszijn. Hoe kunnen we modelleren dat x ∈ {5, 10, 25, 50}?
Voorbeeld (7)
Stel we hebben variabelen x1, . . . , xn ∈ Rn en we willenn
mini=1
xi
maximaliseren (je wilt bijvoorbeeld zorgen dat je laagste cijfer zo hoogmogelijk is). Hoe kunnen we dit modelleren?
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 39 / 40
Soorten optimaliseringsproblemen
Linear Programming (LP) problemen hebben lineaire doelfunctieen restricties en reele variabelen.
Integer Linear Programming (ILP) problemen hebben lineairedoelfunctie en restricties en geheeltallige variabelen.
Mixed Integer Linear Programming (MILP) problemen hebbenlineaire doelfunctie en restricties en geheeltallige en reelevariabelen.
In de rest van het vak gaan we o.a. zien hoe je deze problemen opkunt lossen.
Leo van Iersel (TUD) TW2020 Optimalisering 7 september 2016 40 / 40