+ x - Telin - Universiteit Gent
Download
Report
Transcript + x - Telin - Universiteit Gent
Didactisch materiaal bij de cursus
Optimalisatietechnieken
http://telin.UGent.be/~philips/optimalisatie/
Academiejaar 2010-2011
Prof. dr. ir. W. Philips
[email protected]
Tel: 09/264.33.85 Fax: 09/264.42.95
UNIVERSITEIT
GENT
Telecommunicatie en
Informatieverwerking
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Copyright notice
This 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-2002” 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
Department of Telecommunications and Information Processing
University of Gent
St.-Pietersnieuwstraat 41, B9000 Gent, Belgium
E-mail: [email protected]
Fax: 32-9-264.42.95
Tel: 32-9-264.33.85
02d.2
Lineair programmeren
De simplex-methode
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Simplexmethode: Voorbeeld...
Trofeeprobleem: Maximaliseer 12 x1+9 x2 waarbij
x1
+x3
x2
+x4
x1 + x2
+x5
4x1 +2x2
x1, x2, x3, x4, x5, x6 0
= 1000
= 1500
= 1750
+x6= 4800
Stap 0: zoek een initieel extreem punt x(0)
x1= 0, x2= 0 zijn geldige NB-variabelen (op zicht!)
De corresponderende oplossing x=(0, 0, 1000, 1500, 1750, 4800)
is niet-negatief x is een extreem punt kies x(0)=x
Stap 1: bepaal de simplex-richtingen: bereken de B-variabelen
xb=(x3, x4, x5, x6) in functie van de NB-variabelen xnb=(x1,x2)
x3 = 1000 -x1
x4 = 1500 -x2
x5 = 1750 -x1 -x2
x6 = 4800 -4x1 -2x2
02d.4
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld: simplextableau
Maximaliseer 12 x1+9 x2 waarbij
x3 = 1000 -x1
Extreem punt:
x4 = 1500 -x2
x(0)=(0, 0, 1000, 1500, 1750, 4800)
x5 = 1750 -x1 -x2
NB-variabelen: x1 , x2
x6 = 4800 -4x1-2x2
Simplextableau:
x3
x4
x5
x6
0
1000
1500
1750
4800
B-variabelen
x1
12
-1
0
-1
-4
x2
9
0
-1
-1
-2
NB-variabelen
Winstfunctie: 12 x1+9 x2
gelijkheden
Waarden B-variabelen in extreem punt
02d.5
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld: simplexrichtingen...
Simplextableau:
x3
x4
x5
x6
0
1000
1500
1750
4800
x1
12
-1
0
-1
-4
x2
9
0
-1
-1
-2
Simplex-richtingen kunnen
worden afgelezen uit het
tableau:
(x1, x2)=(1, 0)
(x1, x2)=(0, 1)
De simplexrichtingen kunnen eenvoudig worden afgelezen
•ribbe A: (x1, x2)=l (1, 0) x = l (1, 0, -1, 0, -1, -4)
•ribbe B: (x1, x2)=l (0, 1) x = l (0, 1, 0, -1, -1, -2)
Ribbe A en B doen de winst stijgen; we kiezen ribbe A
lmax= 1000 want voor l > 1000 wordt de eerste B-variabele,
n.l. x3, negatief
Nieuw extreem punt: x(1) = (1000, 0, 0, 1500, 750, 800)
02d.6
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld...
Simplextableau:
x3
x4
x5
x6
0
1000
1500
1750
4800
x1
12
-1
0
-1
-4
Gevonden extreme punten
x2
9
0
-1
-1
-2
winst
0
12000
x1
0
1000
x2
0
0
x3
1000
0
x4
1500
1500
x5
1750
750
x6
4800
800
nieuwe winst: 12 x1+9 x2
=12(1000)+9(0)
De NB-variabelen x1 , x2 zijn niet meer geldig (want x1 0)
we kiezen x2= 0, x3= 0 als nieuwe NB-variabelen voor x(1)
We drukken nu de nieuwe B-variabelen uit in functie van x2 , x3
x3
x4
x5
x6
= 1000 -x1
= 1500 -x2
= 1750 -x1 -x2
= 4800 -4 x1 -2 x2
x1
x4
x5
x6
= 1000 -x3
= 1500 -x2
= 1750 -(1000 -x3) -x2
= 4800 -4(1000 -x3) -2 x2
02d.7
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld…
x1
x4
x5
x6
= 1000 -x3
= 1500 -x2
= 1750 - (1000 -x3) -x2
= 4800 -4(1000 -x3) -2x2
x1
x4
x5
x6
12000
1000
1500
750
800
= 1000 -x3
= 1500 -x2
= 750 +x3 -x2
= 800 +4 x3 -2 x2
Nieuwe winstfunctie: 12 x1+9 x2
Nieuw simplextableau:
x3
-12
-1
0
1
4
x1
x4
x5
x6
x2
9
0
-1
-1
-2
= 12(1000 -x3) +9 x2
=12000-12 x3+9 x2
nieuwe gelijkheden
Nieuwe simplex-richtingen
•ribbe A: x = l (-1, 0, 1, 0, 1, 4) verslechterend
•ribbe B: x = l (0, 1, 0, -1, -1, -2) verbeterend
lmax= 400;
x(2) = (1000, 400, 0, 1100, 350, 0)
02d.8
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld…
Simplextableau
x1
x4
x5
x6
12000
1000
1500
750
800
x3
-12
-1
0
1
4
Gevonden extreme punten
x2
9
0
-1
-1
-2
kost
0
12000
15600
x1
0
1000
1000
x2
0
0
400
x3
1000
0
0
x4
1500
1500
1100
x5
1750
750
350
x6
4800
800
0
nieuwe winst: 12 x1+9 x2
=12(1000)+9(400)
We stappen nu over van de niet meer geldige NB-variabelen x2,
x3 naar nieuwe NB-variabelen x6, x3 voor x(2)
We drukken nu de nieuwe B-variabelen uit in functie van x6 , x3
x1
x4
x5
x6
= 1000 -x3
= 1500 -x2
= 750 +x3 -x2
= 800 +4x3 -2x2
x1
x4
x5
x2
= 1000 -x3
= 1500 -(800 +4x3 -x6)/2
= 750 +x3 -(800 +4x3 -x6)/2
= (800 +4x3 -x6)/2
02d.9
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld…
x1
x4
x5
x2
= 1000 -x3
= 1500 -(800 +4x3 -x6)/2
= 750 +x3 -(800 +4x3 -x6)/2
= (800 +4x3 -x6)/2
Nieuw simplextableau:
x1
x4
x5
x2
15600
1000
1100
350
400
x3
6
-1
-2
-1
2
x6
-4.5
0
0.5
0.5
-0.5
x1
x4
x5
x2
= 1000 -x3
= 1100 -2 x3 +0.5 x6
= 350 -x3 +0.5 x6
= 400 +2 x3 -0.5 x6
Nieuwe winstfunctie: 12 x1+9 x2=
12(1000 -x3) +9 (400 +2x3 -0.5 x6)
=15600 +6 x3 -4.5 x6
controle: =nieuwe winst
nieuwe gelijkheden
Nieuwe simplex-richtingen
•ribbe A: x = l (-1, 2, 1, -2, -1, 0)
verbeterend
•ribbe B: x = l (0, -0.5, 0, 0.5, 0.5, 1) verslechterend
lmax= 350;
x(3) = (650, 1100, 350, 400, 0, 0)
02d.10
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld...
Simplextableau:
x1
x4
x5
x2
15600
1000
1100
350
400
x3
6
-1
-2
-1
2
Gevonden extreme punten
x6
-4.5
0
0.5
0.5
-0.5
kost
0
12000
15600
17700
x1
0
1000
1000
650
x2
0
0
400
1100
x3
1000
0
0
350
x4
1500
1500
1100
400
x5
1750
750
350
0
x6
4800
800
0
0
nieuwe winst: 12 x1+9 x2
=12(650)+9(1100)
We stappen nu over van de niet meer geldige NB-variabelen x3,
x6 naar nieuwe NB-variabelen x5, x6 voor x(3)
We drukken nu de nieuwe B-variabelen uit in functie van x5 , x6
x1 = 1000 -(350 -x5 +0.5 x6)
x1 = 1000 -x3
x4 =1100 -2(350 -x5+0.5 x6)+0.5 x6
x4 = 1100 -2 x3+0.5 x6
x5 = 350 -x3 +0.5 x6
x3 = 350 -x5 +0.5 x6
x2 = 400 +2 x3 -0.5 x6
x2 = 400+2(350 -x5+0.5 x6)-0.5 x6
02d.11
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld...
x1
x4
x3
x2
=1000 -(350 -x5 +0.5 x6)
=1100 -2(350 -x5 +0.5 x6)+0.5 x6
=350 -x5 +0.5 x6
=400+2(350 -x5+0.5 x6)-0.5 x6
x1
x4
x3
x2
= 650 +x5 -0.5 x6
= 400 +2 x5 -0.5 x6
= 350 -x5 +0.5 x6
= 1100 -2 x5 +0.5 x6
Nieuw simplextableau:
x1
x4
x3
x2
17700
650
400
350
1100
x5
-6
1
2
-1
-2
x6
-1.5
-0.5
-0.5
0.5
0.5
Nieuwe winstfunctie: 12 x1+9 x2
= 17700 -6 x5 -1.5 x6
nieuwe gelijkheden
Nieuwe simplex-richtingen
•ribbe A: x = l (1, -2, -1, 2, 1, 0)
verslechterend
•ribbe B: x = l (-0.5, 0.5, 0.5, -0.5, 0, 1) verslechterend
Geen verbeterende ribben optimum bereikt
02d.12
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld: grafische voorstelling
Standaardvorm:
A: x3 0 D: x6 0
B: x4 0 E: x1 0
C: x5 0 F: x2 0
2000
D
x2
A
B
x(4)
Gevonden extreme punten
1000
x1
0
1000
1000
650
E
C
x(3)
x(0)
F x(2)1000
2000
x2
0
0
400
1100
x3
1000
0
0
350
x4
1500
1500
1100
400
x5
x6
1750 4800
750
800
350
0
0
0
x1
extreem punt
02d.13
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Stopvoorwaarde en optimaliteit...
Simplextableau:
We hebben gestopt omdat geen
x5
x6 enkele simplexrichting tot een
17700
-6
-1.5
betere winst leidt, maar misschien
x1
650
1
-0.5
x4
400
2
-0.5 bestaan er verbeterende richtingen
x3
350
-1
0.5 die geen simplexrichting zijn?
x2
1100
-2
0.5
Neen, toch niet!
Bewijs: stel dat we vanuit het eindpunt een stap x zetten in een
willekeurige richting naar een andere mogelijke oplossing
al deze x hebben x5 0 en x6 0 omdat x5 en x6 positief
moeten blijven
Dergelijke stappen vergroten echter nooit de winst omdat de
coëfficiënten van x5 en x6 in de winst negatief zijn
Als de coëfficiënten van de winst in het simplex-tableau allemaal
negatief zijn zitten we dus zeker in een optimum
02d.14
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Opmerking
Simplextableau:
x1
x4
x3
x2
17700
650
400
350
1100
x5
-6
1
2
-1
-2
x6
0
-0.5
-0.5
0.5
0.5
Wat als geen enkele winstcoëfficiënt strikt positief is, maar ze
niet allemaal strikt negatief zijn?
Optima: (650-l/2, 1100+l/2,
350+l/2, 400-l/2, 0, l),
met l[0,800]
In dit geval kan men vanuit het huidig extreem punt
•geen stappen zetten naar een mogelijke oplossing met een
strikt betere winst we zitten wel degelijk in een optimum
•maar wel naar mogelijke oplossingen met gelijke winst
er zijn meerdere optima
Men vindt alle optima door de NB-variabelen met nulcoëfficienten alle mogelijke niet-negatieve waarden te laten aannemen
waarvoor de B-variabelen niet-negatief blijven
02d.15
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Nulstappen
Als er verbeterende simplexrichtingen zijn mogen we niet
stoppen en moeten we één van die richtingen volgen
Dit kan echter niet als alle verbeterende simplexrichtingen
gedegenereerd zijn d.w.z. als voor elke verbeterende
simplexrichting lmax= 0
er zijn dus verbeterende simplexrichtingen, maar we
kunnen langs geen enkele van die richtingen een stap zetten
Zonder bewijs: het simplexalgoritme werkt toch, mits de
volgende aanpassing
•indien mogelijk, volg een verbeterende richting met lmax > 0
•zoniet, kies dan een gedegenereerde verbeterende
simplexrichting (een richting met verbeterende winst en met
lmax= 0) en doe verder alsof lmax zeer klein en positief was
•op die manier forceert men de keuze van nieuwe NBvariabelen
02d.16
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Voorbeeld met 0-stappen...
Maximaliseer 2 x1 -x2 waarbij
x1 -x2 +x3= 0
x1, x2, x3 0
Dit probleem is al in standaardvorm
x1= 0, x2= 0 zijn geldige NB-variabelen (op zicht!)
Extreem punt x(0)=(0, 0, 0)
Simplextableau:
x3
0
0
x1
2
-1
x2
-1
1
NB-variabelen
Winstfunctie: 2x1 -x2
Enige gelijkheid
Simplex-richtingen
•ribbe A: x = l (1, 0, -1) verbeterend
•ribbe B: x = l (0, 1, 1) verslechterend
lmax= 0; x(1) = (0, 0, 0) =x(0)
We doen verder alsof lmax> 0 en dus ook x1>0
02d.17
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld met 0-stappen...
Simplextableau:
x3
0
0
Gevonden extreme punten
x1
2
-1
x2
-1
1
kost
0
0
x1
0
e0
x2
0
0
x3
0
0
We stappen nu over van de (zogezegd) niet meer geldige NBvariabelen x1, x2 naar nieuwe NB-variabelen x2, x3 voor x(2)
We drukken nu de nieuwe B-variabelen uit in functie van x2 , x3
Nieuw simplextableau:
x1
0
0
x2
1
1
x3
-2
-1
Winstfunctie: 2 x1-x2
= 2 (x2 -x3) -x2 = x2 -2 x3
x1 -x2 +x3= 0 x1= x2 -x3
Simplex-richtingen: • ribbe A: x = l (1, 1, 0) verbeterend
• ribbe B: x = l (-1, 0, 1) verslechterend
lmax= + optimale winst +
02d.18
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld met 0-stappen
x2
mogelijke oplossingen
x3 =0
x1
x2
e
gedegenereerd
extreem punt
x1 -x2 +x3= 0
x1, x2, x3 0
Filosofie:
x3 =0 Stap 1: x1 >0, x1=x3=0
Stap 2: x2 >0, x2=x3=0
x1
De tekening is natuurlijk overdreven
x(0)x(1) Besluit: nul-stappen helpen ons ontsnappen uit een
gedegenereerd extreem punt (hier toevallig naar +)
02d.19
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Nulstappen: probleem
Opmerking: in theorie is het mogelijk dat men een cyclus
van nulstappen zet
NB={ x1, x2 }
nulstap
cyclus
NB={ x1, x3 }
NB={ x2, x1 }
nulstap
NB={ x2, x3 }
nulstap
In de praktijk komt dit gelukkig zeer zelden voor
Men kan bewijzen dat men zo een cyclus altijd kan doorbreken
d.w.z. dat men in een bepaalde stap een andere keuze voor de
NB-variabelen kan maken die uiteindelijk de cyclus doorbreekt
Een praktisch algoritme moet dus in staat zijn cycli te detecteren en in “de tweede ronde” een andere keuze maken
02d.20
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Convergentie
Als lmax>0 in elke simplexstap dan stopt het algoritme na een
eindig aantal stappen met ofwel een optimale oplossing ofwel
met de conclusie dat het optimum is
•Het stopt omdat er maar eindig veel extreme punten zijn en
we in dit geval nooit terugkeren in een extreem punt
•Het resultaat is optimaal omdat we in de eindsituatie geen
stap kunnen zetten die winst of kost verbetert
Als er gedegenereerde extreme punten zijn kan lmax=0 zijn
•het algoritme convergeert dan nog steeds op voorwaarde dat
men maatregelen neemt om cycli van nulstappen te
doorbreken
•deze situatie is zeldzaam
02d.21
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
...efficiëntie van simplex...
optimum
betere winst
x(0)
Initiële keuze voor snelle winsttoename 7 stappen
Alternatieve keuze
2 stappen
Besluit: er zijn geen goede regels om te kiezen tussen
verschillende verbeterende simplexrichtingen
02d.22
Initieel extreem punt
zelfstudie
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Initieel extreem punt...
Het simplexalgoritme begint met een initieel extreem punt x(0)
Hoe vinden we dit?
Zo een initieel extreem punt moet
•mogelijk zijn: voldoen aan alle gelijkheden en aan alle “nietnegatief” voorwaarden
•een basisoplossing zijn: voldoende variabelen xj=0 hebben
die de oplossing uniek bepalen
Oplossing:
•het zoeken van een mogelijke oplossing van het origineel
probleem wordt als een hulpsimplexprobleem geformuleerd
•en dit zodanig dat een initieel extreem punt vinden voor dit
hulpprobleem wel eenvoudig is
•het oplossen van het hulpprobleem levert een mogelijke
oplossing van het origineel probleem; deze oplossing blijkt
zelfs een extreem punt te zijn
02d.24
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
...Initieel extreem punt: Methode...
n
(S):
a x
j 1
ij
j
bi
i 1,, m en
j : x j 0
1. Maak alle bi 0 door eventueel een vergelijking met -1 te
vermenigvuldigen
2. Vorm een stelsel (S’) door het invoeren van hulpvariabelen zi
(S’): zi bi
n
a x
j 1
ij
j
i 1, , m
Elke mogelijke oplossing van het origineel probleem voldoet
aan (S’) met alle zi=0 en met alle xj 0
3. Beschouw nu het volgende hulpsimplexprobleem in xj en zi:
minimaliseer z1+z2+… zm mits (S’), alle xj 0 en alle zi 0
•Als de optimale kost 0 is dan is z1=… =zm= 0 en hebben we
een mogelijke oplossing x voor het origineel probleem
•en een initieel extreem punt kiezen voor het hulpprobleem is
triviaal: kies alle xj=0 i: zi=bi 0
02d.25
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
...Initieel extreem punt: Methode
Minimaliseer z1+z2+… zm mits
(S’): zi bi
n
a x
j 1
ij
j
i 1, , m
en alle xj 0 en alle zi 0
De oplossing van het hulpprobleem kan op 2 manieren stoppen:
•ofwel is de optimale kost z1+z2+… zm > 0 (S’) heeft geen
oplossingen met alle zi=0 en met alle xj 0 het origineel
probleem heeft geen mogelijke oplossingen
•ofwel is de optimale kost z1+z2+… zm = 0 de eindoplossing
(z, x) is extreem voor het hulpprobleem x is een mogelijke
oplossing voor het origineel probleem en is ook extreem
Reden: (z, x) bevat als extreem punt (n+m)-(m)= n
nulvariabelen (aantal onbekenden-aantal vergelijkingen),
waaronder alle m zi-variabelen en dus nog n-m xj-variabelen
x heeft net voldoende nulcomponenten om een extreem
punt te zijn in het origineel probleem
02d.26
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Voorbeeld
-9 x3+x4 mits xj 0 en
8 x1 +x2 -x3 = 74
4 x2 -7x3 +x4 = -21
x2 +x3
= 11
x2 +x3 +x5
=4
z1= 74 -8 x1 -x2 +x3
z2= -21 -4 x2+7 x3 -x4 z2= -(-21-4 x2+7 x3 -x4)
z3= 11 -x2 -x3
z4= 4 -x2 -x3-x5
Maximaliseer 14 x1
Fase 1: Minimaliseer z1 +z2+z3+z4 mits alle xj 0 en alle zi 0
Initieel extreem punt voor dit hulpprobleem:
x1=x2=x3=x4=x5=0, z1=74, z2=21, z3=11
02d.27
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Minder hulpvariabelen…
8x1 +x2 -x3 = 74
4x2 -7x3 +x4 = -21
x2 +x3
x2 +x3 +x5
= 11
=4
x1= (74 -x2 +x3)/8
z1= -(-21 -4x2+7x3 -x4)
z2= 11-x2 -x3
x5= 4 -x2 -x3
Soms kan men minder hulpvariabelen invoeren:
•als een bepaalde xk slechts in één vergelijking voorkomt
•en die xk het zelfde teken heeft als de constante term
xk zal altijd niet-negatief zijn als we de andere xj op 0 zetten
Fase 1: Minimaliseer z1+z2 mits alle xj 0 en alle zj 0
Initieel extreem punt van dit hulpprobleem:
x2=x3=x4=0,
x1=9.25, x5=4, z1=21, z2=11
Voordeel: minder variabelen sneller en met minder
geheugenruimte op te lossen
02d.28
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Minder hulpvariabelen
x1= (74 -x2 +x3)/8
z1= -(-21 -4 x2+7 x3 -x4)
z2= 11 -x2 +x3
x5= 4 -x2 -x3
Fase 1: Minimaliseer z1+z2 mits
alle xj 0 en alle zj 0
Fase 1: initieel extreem punt:
x(0) = (9.25, 0, 0, 0, 4; 21, 11)
z1 en z2
x1
z1
z2
x5
32
9.25
21
11
4
x2
3
-0.125
4
-1
-1
x3
-6
0.125
-7
1
-1
x4
1
0
1
0
0
Kostfunctie: z1+z2 =
32 +3 x2 -6 x3 +x4
verbeterend (doet kost dalen!)
lmax= 3;
x(1) = (9.625, 0, 3, 0, 1; 0, 14)
…
02d.29
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Besluit: 2-fasen simplexmethode
Stap 1: breng het probleem in standaardvorm
Stap 2: construeer het artificieel fase-1 probleem om een
initieel extreem punt te vinden
Stap 3: los het fase-1 probleem op 2 mogelijkheden
• de oplossing heeft kost > 0 het origineel probleem
heeft geen mogelijke en dus ook geen optimale oplossing
• de oplossing heeft kost 0 we hebben x(0)
Stap 4: los het origineel probleem in standaardvorm op,
gebruik makend van x(0)
Opmerking:
• het fase-1 probleem heeft bij constructie mogelijke
oplossingen en een eindige minimumkost
• stap 2 en 3 zijn overbodig als men om een of andere
reden al een extreem punt kent
02d.30
Zelfstudie: simplex met onder- en
bovengrenzen
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Simplex met boven- en ondergrenzen...
Minder hulpveranderlijken gebruiken is interessant omdat
elke bijkomende hulpveranderlijke een extra kolom of rij
toevoegt in het simplextableau (geheugenbesparing)
n
Verbeterde standaardvorm: optimaliseer
de voorwaarde dat
n
(S):
a x
j 1
ij
j
bi
c x
j 1
j
j
onder
i 1,, m en (O): j : u j x j l j
Nieuwe definitie basisoplossing:
•stel voldoende variabelen xj gelijk aan lj of uj om het stelsel
een unieke oplossing te geven dit zijn de NB-variabelen
•een dergelijke oplossing is een basisoplossing
Een basisoplossing is een extreem punt als ze voldoet aan (O)
02d.32
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
...Simplex met boven- en ondergrenzen
Voorwaarden:
n
(S):
a x
j 1
ij
j
bi
i 1,, m en (O): j : u j x j l j
Om een ribbe te volgen laten we nu een NB-variabele xj
toenemen of afnemen met een hoeveelheid l:
•als xj=uj dan stellen we xj=uj+l met lmin l 0
•als xj=lj dan stellen we xj=lj+l met lmax l 0
Bij llmin of llmax wordt een ongelijkheid actief
Er zijn twee mogelijkheden:
•xj bereikt zijn andere grens (b.v.: xj=uj+l leidt tot xj=lj)
•een B-variabele xk met k j bereikt een grens uk of lk
In het eerste geval blijft xj nu een geldige NB-variabele!
In het tweede geval vervangt xk weer xj als NB-variabele
02d.33
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Voorbeeld...
Trofeeprobleem: Maximaliseer 12 x1+9 x2 mits x1 , x2 0
x1 1000 x2 1500 x1 x2 1750 4 x1 2 x2 4800
x1 +x2+x3 = 1750
0 x1 1000 0 x3
4x1+2x2+x4 = 4800
0 x2 1500 0 x4
Slechts 2 reservevariabelen nodig i.p.v. 4
Slechts 2 vergelijkingen i.pv. 4
x1= 0, x2= 0 zijn geldige NB-variabelen want
•ze zijn gelijk aan 1 van hun grenzen (hier ondergrenzen)
•hun waarden bepalen de andere variabelen uniek
En de corresponderende B-variabelen voldoen aan hun grenzen
Extreem punt x(0)=(0, 0, 1750, 4800)
B- in functie van de NB-variabelen: x3 = 1750 -x1 -x2
x4 = 4800 -4 x1 -2 x2
02d.34
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld...
Maximaliseer 12 x1+9 x2 mits
x3 = 1750 -x1 -x2
0 x1 1000 0 x3
x4 = 4800 -4 x1 -2 x2 0 x2 1500 0 x4
Extreem punt: x(0)=(0, 0, 1750, 4800); NB-variabelen: x1, x2
Simplextableau:
Grenzen
0
0
x3
x4
0
1750
4800
1000
0
x1
12
-1
-4
1500
0
x2
9
-1
-2
Grenzen
Winstfunctie
Voor beide richtingen is l 0 (ondergrens); beide verbeteren
Grenzen: voor x1: 0+l 1000 x3: 1750-l 0 x4: 4800-4l 0
lmax = 1000; x(1)=(1000, 0, 750, 800)
02d.35
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld...
Simplextableau:
0
0
x3
x4
0
1750
4800
1000
0
x1
12
-1
-4
1500
0
x2
9
-1
-2
Gevonden extreme punten
kost
0
12000
x1
0
1000
x2
0
0
x3
1750
750
x4
4800
800
Niet meer de huidige waarden van x3 en x4 wegens x1 0
x1 bereikte zijn bovengrens x1 blijft NB-variabele
Simplextableau verandert niet
Voor de 1e richting is l 0 toegelaten en voor de 2e l 0
De 1e richting kan uiteraard niet verbeteren; de 2e verbetert wel
Grenzen: voor x2: 0+l 1500 x3: 750 -l 0 x4: 800 -2l 0
lmax = 400;
x(2)=(1000, 400, 350, 0)
x4 vervangt x2 als NB
02d.36
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld...
Simplextableau:
0
0
x3
x4
0
1750
4800
1000
0
x1
12
-1
-4
1500
0
x2
9
-1
-2
Gevonden extreme punten
kost
0
12000
15600
x1
0
1000
1000
x2
0
0
400
x3
1750
750
350
x4
4800
800
0
x4 bereikte zijn ondergrens x4 vervangt x2 als NB-variabele
Nieuw tableau:
0 1500 x2
0
x3
21600
2400
-650
x3 = 1750 -x1 -x2
x4 = 4800 -4x1 -2x2
1000
0
x1
-6
-2
1
0
x4
-4.5
-0.5
0.5
x4 bevindt zich op
ondergrens
nieuwe kostfunctie
x3 = -650 +x1 +0.5 x4
x2 = 2400 -2x1 -0.5x4
02d.37
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld...
Simplextableau:
0 1500 x2
0
x3
21600
2400
-650
1000
0
x1
-6
-2
1
Gevonden extreme punten
0
x4
-4.5
-0.5
0.5
kost
0
12000
15600
x1
0
1000
1000
x2
0
0
400
x3
1750
750
350
x4
4800
800
0
Voor de eerste richting is enkel l 0 toegelaten; voor de
tweede richting is enkel l 0 toegelaten
Beide richtingen kunnen maar verbeteren voor l 0
we veranderen x1 (d.w.z., laten x1 zakken)
Grenzen: voor x1: 1000+l 0 x2: 400 -2l 1500
x3 wordt nieuwe NB
x3: 350 +l 0
lmin = -350; x(3)=(650, 1100, 0, 0)
02d.38
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld...
Simplextableau:
0
0
x2
x3
21600
2400
-650
1000
0
x1
-6
-2
1
Gevonden extreme punten
0
x4
-4.5
-0.5
0.5
kost
0
12000
15600
17700
x1
0
1000
1000
650
x2
0
0
400
1100
x3
1750
750
350
0
x4
4800
800
0
0
x3 bereikte zijn ondergrens x3 vervangt x1 als NB-variabele
Nieuw tableau:
0
0
x2
x1
17700
1100
650
x3 = -650 +x1 +0.5 x4
x2 = 2400 -2x1 -0.5x4
0
x3
-6
-2
1
0
x4
-1.5
0.5
-0.5
nieuwe kostfunctie
x1 = 650 +x3 -0.5x4
x2 = 1100 -2x3 +0.5x4
02d.39
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
…Voorbeeld
Gevonden extreme punten
Simplextableau:
0
0
x2
x1
17700
1100
650
0
x3
-6
-2
1
0
x4
-1.5
0.5
-0.5
kost
0
12000
15600
17700
x1
0
1000
1000
650
x2
0
0
400
1100
x3
1750
750
350
0
x4
4800
800
0
0
We zijn in beide gevallen verplicht l 0 te nemen omdat x3
en x4 zich beiden op hun ondergrens bevinden
Anderzijds verbeteren beide richtingen enkel als l 0
Besluit: er zijn geen verbeterende richtingen
we hebben het optimum gevonden
02d.40
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Literatuur
Rardin, hfdstk. 5: blzn. 175-225, blzn. 238-245
Press, hfdst. 10: blzn. 430-444
02d.41
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Opmerking
In de les kwamen enkele slides uit deze presentatie niet aan
bod; deze slides zijn bedoeld voor zelfstudie tenzij anders
vermeld
02d.42
Appendix
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
Vraag i.v.m. de efficiëntie van simplex...
Standaardvorm:
A: x3 0 D: x6 0
B: x4 0 E: x1 0
C: x5 0 F: x2 0
2000
D
x2
A
B
x(4)
Gevonden extreme punten
1000
E
C
x(3)
x1
0
1000
1000
650
x2
0
0
400
1100
x3
1000
0
0
350
x4
1500
1500
1100
400
x5
x6
1750 4800
750
800
350
0
0
0
(2)
F
x
1000
2000 x1
x(0)
Soms kan men kiezen tussen verschillende verbeterende
richtingen: krijgt men dan een snellere oplossing als men de
richting kiest die het meest of het snelst verbetert?
Antwoord: niet noodzakelijk: enkel het aantal stappen telt
02d.44
versie: 21/2/2011
© W. Philips, Universiteit Gent, 1998-2011
...Vraag i.v.m. de efficiëntie van simplex
x3
x(6)
© Rardin, fig. 5.7
Maximaliseer x3
optimum
A
Randvoorwaarden:
A-L
x1, x2, x3 0
x(5)
x(4)
B
C
F
x1
x(3)
x(2) D
H
E
G
I
in standaardvorm
correspondeert ieder
vlak met een xj=0
x(1)
x2
x(0)
L
J
K
verbeterende kost
(=toenemende kost)
snellere oplossing
02d.45