Didactisch materiaal bij de cursus
Academiejaar 2010-2011
http://telin.UGent.be/~philips/optimalisatie/
Tel: 09/264.33.85 Fax: 09/264.42.95
Prof. dr. ir. W. Philips
Optimalisatietechnieken
Telecommunicatie en Informatieverwerking
UNIVERSITEITGENT
06d
.2
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Copyright noticeThis powerpoint presentation was developed as an educational aid to the renewed course “Optimisation Techniques” (Optimalisatietechnieken), taught at the University of Gent, Belgium as of 1998.
This presentation may be used, modified and copied free of charge for non-commercial purposes by individuals and non-for-profit organisations and distributed free of charge by individuals and non-for-profit organisations to individuals and non-for-profit organisations, either in electronic form on a physical storage medium such as a CD-rom, provided that the following conditions are observed:
1. If you use this presentation as a whole or in part either in original or modified form, you should include the copyright notice “© W. Philips, Universiteit Gent, 1998” in a font size of at least 10 point on each slide;
2. You should include this slide (with the copyright conditions) once in each document (by which is meant either a computer file or a reproduction derived from such a file);
3. If you modify the presentation, you should clearly state so in the presentation;
4. You may not charge a fee for presenting or distributing the presentation, except to cover your costs pertaining to distribution. In other words, you or your organisation should not intend to make or make a profit from the activity for which you use or distribute the presentation;
5. You may not distribute the presentations electronically through a network (e.g., an HTTP or FTP server) without express permission by the author.
In case the presentation is modified these requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the presentation, and can be reasonably considered independent and separate works in themselves, then these requirements do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the presentation, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. In particular note that condition 4 also applies to the modified work (i.e., you may not charge for it).
“Using and distributing the presentation” means using it for any purpose, including but not limited to viewing it, presenting it to an audience in a lecture, distributing it to students or employees for self-teaching purposes, ...
Use, modification, copying and distribution for commercial purposes or by commercial organisations is not covered by this licence and is not permitted without the author’s consent. A fee may be charged for such use.
Disclaimer: Note that no warrantee is offered, neither for the correctness of the contents of this presentation, nor to the safety of its use. Electronic documents such as this one are inherently unsafe because they may become infected by macro viruses. The programs used to view and modify this software are also inherently unsafe and may contain bugs that might corrupt the data or the operating system on your computer.
If you use this presentation, I would appreciate being notified of this by email. I would also like to be informed of any errors or omissions that you discover. Finally, if you have developed similar presentations I would be grateful if you allow me to use these in my course lectures.
Prof. dr. ir. W. Philips E-mail: [email protected] of Telecommunications and Information Processing Fax: 32-9-264.42.95University of Gent Tel: 32-9-264.33.85St.-Pietersnieuwstraat 41, B9000 Gent, Belgium
Dynamisch programmeren
06d
.4
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Dynamisch programmeren…
Voorbeeld: het Floyd algoritme voor kortste paden•origineel probleem: vind alle kortste paden tussen alle paren van knopen
•hulpproblemen: vind alle kortste paden tussen alle paren van knopen die enkel knopen 1, … t als intermediaire knopen gebruiken
Principe van dynamisch programmeren•soms lost men een optimalisatieprobleem gemakkelijker op door eerst een aantal verwante problemen met toenemende moeilijkheid op te lossen•dit is het geval als er sterke verbanden bestaan tussen al deze problemen zodat de oplossing van een probleem de oplossing van een ander vergemakkelijkt
06d
.5
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
…Dynamisch programmeren
Dynamisch programmeren heeft pas zin•als de som van de complexiteiten (rekentijd) van de hulp-problemen kleiner is dan de complexiteit van een directe oplossing van het origineel probleem
•of als men ook geïnteresseerd is in de oplossing van de hulpproblemen
Voorbeeld: maximaliseer f(x,y,z) mits (x,y,z) •hou eerst x en y vast en optimaliseer over z•laat vervolgens ook y vrij en optimaliseer over y en z•laat tenslotte ook x vrij en optimaliseer over x, y en z
Gebruik hierbij in elke stap de oplossingen van de vorige stap
Dynamisch programmeren
Optimale paden in acyclische grafen
06d
.7
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Productieplanning (Wagner)
Twee soorten productiekosten (elk afhankelijk van de maand k):•opstartkosten: sk per productie “run”•de marginale productiekost: pk per eenheid product
productie opslag verkoop
Er zijn ook opslagkosten: hk per eenheid productVraag: plan de productie zodat de som van productie- en opslagkosten minimaal wordt en aan de vraag voldaan wordtBepaal dus
•in welke maanden we moeten produceren•en hoeveel we in die maanden moeten produceren
Vraag in maand k: vk (afhankelijk van de maand k):
06d
.8
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Voorbeeld: afweging
productie opslag verkoop
Men kan willekeurig veel produceren in elke periode (veronderstelling!)
•men kan b.v. in maand 1 alles produceren voor maand 1-6 slechts 1 maal opstartkosten, maar veel opslagkosten
•men kan ook elke maand enkel produceren voor die maand geen opslagkosten, maar elke maand opstartkosten
Vraag: plan de productie zodat de som van productie- en opslagkosten minimaal wordt en aan de vraag voldaan wordtBelangrijk inzicht: in een optimale oplossing zal er nooit geproduceerd worden als er nog voorraad is een optimale oplossing levert dus ofwel de vraag voor een maand k ofwel volledig uit voorraad ofwel volledig uit productie maar niet uit een combinatie van beide
06d
.9
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Extra uitleg
Een concrete situatie waarin het Wagner-voorbeeld van toepassing is, is de volgende:
een Belgisch bedrijf verkoopt speeldgoedpoppen van het type “Samson” op de Belgische markt en heeft daarop de exclusiviteit. Deze poppen worden gemaakt door het moederbedrijf in Finland. Het maken van een groot aantal poppen duurt op zich niet lang (b.v. 1 of 2 dagen), maar de machine moet er wel voor worden aangepast wat een belangrijke opstartkost met zich meebrengt.
Vermits Samson enkel in België wordt verkocht, maakt het moederbedrijf de poppen enkel aan op vraag van het Belgisch bedrijf. Het moederbedrijf rekent dus per (interne) bestelling van het Belgisch bedrijf telkens een opstartkost aan (sk, aanpassen van de machine) en een kost per eenheid (pk). Elke bestelling wordt in één keer geproduceerd.
Vanuit het standpunt van het Belgisch bedrijf komt het erop neer om het totaal aantal te verkopen poppen optimaal te spreiden over één of meerdere bestellingen om zodoende de totale kostprijs (bestelkosten en opslagkosten) voor het Belgisch bedrijf te minimaliseren. Elke bestelling wordt aan het begin van de maand doorgegeven aan het moederbedrijf dat dan de machine aanpast, de poppen produceert, en voor de rest van de maand de machine gebruikt (na heraanpassen van de machine) voor de productie van andere types poppen voor andere landen.
06d.
10
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Totale kost: (s’l+s’k)+pkvk+axkvk met a=hl+hl+1+… hk-1+pl -pk
Geval 1: a<0 de kost daalt als xk stijgt •het optimum is xk=1 met kost s’l+s’k+pkvk+avk
•vermits 1-xk=0 is het misschien niet eens nodig om in maand k de productie op te starten de kost wordt dan nog kleiner, n.l.
s’l+pkvk+avk
•opmerking: opstarten in maand k is toch nodig als we beslis-sen om dan voorraad op te bouwen om later te verkopen
Productie of voorraad, maar niet beide…Stel dat we in de k-de maand aan een deel xkvk van de vraag voldoen uit voorraad (met producten geproduceerd in maand l) en de rest, n.l. (1-xk)vk nu produceren (0 xk 1)
kost van de producten uit voorraad:s’l+pl xkvk+(hl+hl+1+… hk-1) xkvk (als xk>0)kost van de nieuw geproduceerde producten: s’k+pk (1-xk)vk (als xk<1)
(deel van) opstartkost
06d.
11
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
…Productie of voorraad, maar niet beide
Besluit: in alle gevallen kunnen we een oplossing met gelijktijdige voorraad en
productie (dus met xk 0 en xk 1) verbeteren; een dergelijke oplossing is dus nooit optimaal!
Totale kost: (s’l+s’k)+pkvk+axkvk met a=hl+hl+1+… hk-1+pl -pk
Geval 2: a>0 de kost daalt als xk daalt
•het optimum is xk=0 met kost s’l+s’k+pkvk
•vermits xk=0 is het misschien niet eens nodig om in maand l de productie op te starten de kost wordt dan nog kleiner, n.l. s’k+pkvk+avk
•opmerking: opstarten in maand l is toch nodig als we beslis-sen om dan voorraad op te bouwen om later (maar dus niet in maand k) te verkopen
Geval 3: a=0 keuze: optimum xk=0 of xk=1 (naargelang welk van de twee goedkoper is; opstartkosten zouden weer geheel of gedeeltelijk kunnen vervallen)
06d.
12
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
...Productieplanning: graafvoorstelling
Reden: het geen zin heeft te produceren terwijl er nog voorraad is een oplossing die geen pad is, kan nooit optimaal zijn
Besluit: het probleem is herleid tot het zoeken van een optimaal pad in een acyclische graaf (geen circuits aanwezig!)
1 2 3 4 5 6 7
Elke knoop k is een mogelijk productietijdstip (begin maand k)just in time
r1 r2 r3 r4 r5 r6
2 runs
r1
r3
Het begin van pijl is de effectieve productie van een hoeveelheid
Het eind van een pijl is het moment waarop de geproduceerde hoeveelheid volledig is verkochtOns productieplan is een pad (en dus niet een willekeurige verzameling takken)
06d.
13
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
...Productieplanning: graafvoorstelling...
1 2 3 4 5 6 7
Besluit: we zoeken een optimaal pad in een graaf•de graaf is volledig geconnecteerd •de graaf is acyclisch (hij bevat geen circuits)
De kost van een pijl (k,l ) ligt nu volledig vast omdat de aanwezigheid van (k,l ) in een pad betekent dat de productie in maand k gelijk is aan de vraag in de periode k…l -1:
geen pad = gelijktijdige voorraad/productie niet optimaal
paden misschien optimaal
c(k,l)=sk+(vk+…+ vl-1) pk
+ (vk+1+…+ vl-1) hk+(vk+2+…+ vl-1)hk+1+…
productiekost
opslagkost
06d.
14
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
© Rardin, fig 9.13 525
305
100
65555511017060
170
135180
280
315
360
270
305
350
515
14570
1 2 3 4 5 6 7
...Productieplanning...
optimale oplossing
06d.
15
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Kortste paden in de Wagner graaf
Oplossingsmethode: tabelmethode
Het is niet nodig expliciet een graaf te construeren eenvoudiger datastructuren
We hebben een acyclische graaf het optimaal pad naar k kan enkel 1… k-1 als intermediaire knopen hebben
het optimaal pad naar k is dus een ééntaksuitbreiding van één van de optimale paden naar 1… k-1
Definieer d(k): de kost van het beste pad van 1 naar kAlgoritme:
•Initialisatie: d(1)=0
•Voor k=2,… n:
d(k)=min{ d(l)+c(l,k): 1 l < k }Complexiteit: O(n2/2) optellingen en evenveel vergelijkingenDit algoritme doet dezelfde berekeningen als Bellman-Ford maar in een andere volgorde
Zelfstudie
06d.
17
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Graafmodellering van knapzakprobleemInvestering: totaal budget 8 (miljoen $)Mogelijke investeringen: A B C D Kost ak opbrengst ck (later!): 58 13 24 710
8Nogbeschikbaar
einde8
3
310
10
8
7
6
5
4
3
2
1
0
8
7
6
5
4
3
2
1
0
8
7
6
5
4
3
2
1
0
4
4
4
4
Maximum-winst padin een graaf!
niet kopenkopen
06d.
18
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Staten en beslissingen
De graaf in dynamisch programmeren is dikwijls een beslissingsgraaf (cfr. het knapzakprobleem):
•elke kolom correspondeert met een beslissingsstadium•elke knoop correspondeert met een toestand: b.v. de knoop in kolom 3 op rij 4 = “we hebben al een beslissing genomen voor A en B en hebben nog 5 miljoen over”
•elke tak correspondeert met een beslissing genomen in een bepaalde toestand: C kopen
Het principe “deelpaden van een optimaal pad moeten ook optimaal zijn” maakt dynamisch programmeren hier efficiënt:
•Voorbeeld: als we nog 5 miljoen over hebben op het moment dat we over C beslissen heeft het geen belang hoe we tot die 5 miljoen gekomen zijn (alleen de toestand is van belang)
Belangrijke beperking: deze graafmodellering heeft maar zin als het aantal mogelijke toestanden beperkt blijkt
06d.
19
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Functionele vergelijkingen
Zij dk[i] de maximale opbrengst als men over i miljoen beschikt waarmee men (b.v. de laatste) k objecten mag kopen (en d0[i]=0)Als men nu k+1 i.p.v. k objecten mag kopen met de i miljoen:
•als men het nieuwe object niet koopt dan heeft men i over om een keuze te maken uit de oude objecten opbrengst 0 +dk[i]
•als i ak+1met ak+1 de prijs van het nieuwe object en als men dit object koopt dan heeft men i-ak+1 over om optimaal te kiezen uit de oude objecten opbrengst ck+1 +dk[i-ak+1]
Beste opbrengst: dk+1[i] = max(ck+1 +dk[i-ak+1], dk[i] ) als i ak+1
ni: toestand:Nogbeschikbaar
n
0
n
0
n
0
k=0 k=1 k=2 … k=m-1
…
…
…
…
0
k: stadium (waarin men mag kiezen uit k objecten)
en dk+1[i] = dk[i] als i < ak+1
06d.
20
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Oplossingsmethoden...
Complexiteit: O(mn)
dk[i]=max(ck +dk-1[i-ak], dk-1[i] ) als … en dk[i]=dk-1[i] als ….
D? C? B? A?k 0 1 2 3 4
a(k) 7 2 1 5c(k) 10 4 3 8
0 0 0 0 0 01 0 0 0 3 32 0 0 4 4 43 0 0 4 7 74 0 0 4 7 75 0 0 4 7 86 0 0 4 7 117 0 10 10 10 128 0 10 10 13 15
i
Methode 1: los de functionele vergelijkingen op voor alle k,i: for(k=0;k<=m;k++)
for(i=0;i<=n;i++)…
Men heeft meteen ook het resultaat voor kleiner budget
beste opbrengst als men 4 miljoen mag spenderen aan D,C en/of B
06d.
21
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
...Oplossingsmethoden...
D? C? B? A?k 0 1 2 3 4
ak 7 2 1 5ck 10 4 3 80 0 0 0 0 01 0 0 0 3 32 0 0 4 4 43 0 0 4 7 74 0 0 4 7 75 0 0 4 7 86 0 0 4 7 117 0 10 10 10 128 0 10 10 13 15
i
Men kan genomen beslis-singen gemakkelijk terug-vinden
verschillend, dus A werd gekocht
B gekochtC gekocht
D niet gekocht
06d.
22
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
...Oplossingsmethoden
Opmerking: de tabelmethode doet overbodige berekeningenHet is voldoende de gekleurde cellen te berekenenAlternatieve methode:
•eerst de te berekenen cellen opsporen (van rechts naar links)
De graaf is precies deze van enkele slides geleden (in spiegelbeeld)
D? C? B? A?k 0 1 2 3 4
ak 7 2 1 5ck 10 4 3 80 0 0 0 0 01 0 0 0 3 32 0 0 4 4 43 0 0 4 7 74 0 0 4 7 75 0 0 4 7 86 0 0 4 7 117 0 10 10 10 128 0 10 10 13 15
i
•vervolgens de waarde van de cellen berekenen (van links naar rechts)
Dit is dan weer een zuiver graafalgoritme
•stap 1: opstellen graaf•stap 2: berekenen optimaal pad
06d.
23
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Literatuur
Rardin, hfdst. 9: blzn. 458-468
Appendix
kennen!
06d.
25
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
veel kleine (1-dimensionale) optimalisatieproblemen
1 middelgroot (2-dimensionaal) optimalisatieprobleem
1 groot (3-dimensionaal) optimalisatieprobleem
Dynamisch programmeren: voorbeeld...
Hulpprobleem: idem, maar met gegeven vaste x en y•Stel 1(x,y)={z: (x,y,z) }, de verzameling van alle toegelaten oplossingen met gegeven (x,y)
•Stel 1(x,y) de verzameling van alle (x,y) waarvoor 1(x,y) niet leeg is
•Voor alle (x,y) 1(x,y): maximaliseer f(x,y,z) over z 1(x,y)
Maximaliseer f(x,y,z) mits (x,y,z)
Finale oplossing: •maximaliseer f1(x,y) over (x,y) 1(x,y)
optimum: f1(x,y) bereikt bij z=Z1(x,y)
06d.
26
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
...Voorbeeld...
Stel dat ={(x,y,z): x, y, z = 1,…1000}
Stel f(x,y,z) heeft geen speciale eigenschappen (zoals continuïteit) de enig mogelijke optimalisatiestrategie bestaat er in alle mogelijke functiewaarden onderling te vergelijken
Directe oplossing: één 3D probleem
dit vraagt 10003 functie-evaluaties (en -vergelijkingen)
Via dynamisch programmeren
•10002 1D hulpproblemen; complexiteit: 100021000
•Eén 2D hulpprobleem; complexiteit: 10002
totale complexiteit 10003+10002 10003
Besluit: • dynamisch programmeren helpt hier niet omdat de deelproblemen elkaar niet helpen oplossen
• het schaadt echter ook niet (veel) ...
06d.
27
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
...Voorbeeld
Stel dat 1(x,y)={(x,y,z): x, y, z = 1,…1000}
Stel f(x,y,z)=g(x,y)+h(z)
Via dynamisch programmeren
•10002 1D hulpproblemen elk met vaste g(x,y)
•alle hulpproblemen leiden tot dezelfde oplossing z=z0 omdat
ze in feite h(z) optimaliseren over steeds dezelfde z-waarden
•Complexiteit: 1000 (zoeken van z0)
•Eén 2D hulpprobleem; complexiteit: 10002
totale complexiteit 10002+1000 i.p.v. 10003
Besluit: dynamisch programmeren helpt hier wel omdat de deelproblemen enorm sterk verwant zijn waardoor 10002 problemen oplossen evenveel werk vraagt als er 1 oplossen
06d.
28
© W. Philips, Universiteit Gent, 1998-2011versie: 28/3/2011
Productieplanning: kostberekening
60 170 110 55 55 65
Periode k
1 2 3 4 5 6
Vraag rk: 10 40 20 5 5 15
Opstartkost sk: 50 50 50 50 50 50
Productiekost pk: 1 3 3 1 1 1
Opslagkost hk: 2 2 2 2 2 2
1 2 3 4 5 6 7
just in time 2 runs
c(1,3)=50+(10+40)1+(40)2=180
180
c(3,7)=50+(20+5+5+15)3+(5+5+15)2+(5+15)2+(15)2=305
305
…
Top Related