Theoretische onderbouwing van
de simplexmethode
Een verzameling heet convex als het rechte
verbindingslijntje tussen elke twee punten
uit de verzameling helemaal in de
verzameling ligt.
Formeel:
)yU
(x,yU) ([0,1]): x+(1-
Convex:
|x| r},
Rn, Halfvlak {x | aTx 0}, Bal {x |
Punt {x}, .
Niet convex: Bol {x | |x| = r}, {(x,y) | y < x2}
Stelling: De doorsnede van convexe
verzamelingen is weer convex.
Gevolg: Het toelaatbare gebied van een LP
probleem is convex.
Een punt x heet een inwendig punt van een
verzameling U, als er een klein bolletje {y |
|x-y| r} is dat helemaal in U ligt.
Stelling: Een niet-constante lineaire functie
neemt zijn maximum nooit aan in een
inwendig punt.
Gevolg: Het maximum van een LP
probleem wordt op de rand aangenomen
Gevolg: Er is een hoekpunt van het
toelaatbare gebied waar het maximum van
een LP probleem wordt aangenomen
Stelling: Omdat het toelaatbare gebied
convex is, heeft een LP probleem geen
locale maxima, alleen globale.
Bewijs: De rechte verbindingslijn tussen
twee locale optima ligt in het toelaatbare
gebied en de doelfunctie is er lineair.
Geef een voorbeeld van een convex gebied
K en een lineaire functie die op K niet zijn
maximum aanneemt.
K = R n,
f(x) = x1
begrensd)
(f is niet
K = (0,1), f(x) = x
limiet niet)
(gebied bevat
Geef een voorbeeld van een niet-convex
gebied K, een lineaire functie op K en een
punt in K waarop de functie een locaal
maximum heeft, maar geen globaal
maximum.
Stelling: elke convexe K Rn is de
doorsnede van (oneindig veel) halfruimtes.
SIMPLEX METHODE
Meetkundig idee: Onderzoek alleen
hoekpunten.
- Start in een willekeurig hoekpunt
- Zoek de ribbe met de grootste stijging
doelwaarde
- Vind aan het eind van de ribbe een beter
hoekpunt
- Stop als geen verbetering mogelijk
Praktische implementatie kan niet
meetkundig maar moet algebraïsch.
Ongelijkheden zijn onhandig voor algebra.
Ga uit van de standaardvorm:
Max
Z = c1x1 + c2x2 + … + cnxn
z.d.d. a11x1 + a12x2 + … + a1nxn b1
a21x1 + a22x2 + … + a2nxn b2
…
…
…
…
…
…
…
…
am1x1 + am2x2 + … + amnxn bm
en
x1, x2 …, xn 0
Hierin zijn alle bi 0
Herschrijf alle ongelijkheden als gelijkheid:
x1 + 4x2 17
0 17 - x1 - 4x2
Nieuwe extra variabele: x3 := 17 - x1 - 4x2
x1 + 4x2 17
x3 0
x1 + 4x2 + x3 = 17
x3 heet slackvariabele (verschilvariabele).
x3 geeft aan hoe “erg” de ongelijkheid x1 +
4x2 17 geldt (x3 > 0) of juist níet geldt (x3 <
0), bv. hoeveel de productie onder of boven
de bovengrens ligt.
n variabelen met m nevenvoorwaarden ()
n + m variabelen met m nevenvoorwaarden
(=)
Een toegelaten oplossing die met een
hoekpunt correspondeert heet
basisoplossing.
In een hoekpunt zijn n (slack)variabelen =0,
dus maximaal m positieve variabelen. Dit
heten de basisvariabelen van dat hoekpunt.
Simplex algebraïsch:
1 Startoplossing: toegelaten
basisoplossing
(= nuloplossing van het oorspronkelijke
probleem)
2 Maak nieuwe basisoplossing die één
basisvariabele verschilt: Eén nietbasisvariabele wordt > 0. Eén
basisvariabele wordt = 0.
Doelwaarde moet verbeteren
Nieuwe oplossing is toegelaten
basisoplossing
3 Ga door tot er geen verbetering meer is.
Klaar.
Voorbeeld
Max
Z = 3x1 + 2x2 – 0.5x3
z.d.d. 4x1 + 3x2 + x3 10
3x1 + x2 - 2x3 8
en
x1, x2, x3 0
Voer slackvariabelen (x4, x5) in:
Max
Z = 3x1 + 2x2 – 0.5x3
z.d.d. 4x1 + 3x2 + x3 + x4
= 10
3x1 + x2 - 2x3
+ x5 = 8
en
x1, x2, x3, x4, x5 0
Basisoplossing: x1 = x2 = x3 = 0
10, x5 = 8
Basisoplossing:
Doelwaarde:
Basisvariabelen:
Niet-basisvariabelen:
x4 =
(0, 0, 0, 10, 8)
0
x4, x5.
x1, x2, x3.
Welke van x1, x2, x3 positief maken?
Sterkste stijging voor x1.
Hoe groot kan x1 worden? x2 = x3 = 0
dus
4x1 + x4 = 10 4x1 = 10 - x4 10 x1
2,5
3x1 + x5 = 8
2,666
3x1 = 8 - x5 8
x1
x1 kan maximaal 2,5 worden als x4 = 0.
x4 verlaat de basis. x1 komt in de basis.
Max
Z = 3x1 + 2x2 – 0,5x3
z.d.d. 4x1 + 3x2 + x3 + x4
= 10
3x1 + x2 - 2x3
+ x5 = 8
en
x1, x2, x3, x4, x5 0
Nieuwe basisvorm: x1 en x5 mogen niet in
de Z vergelijking en in de andere
vergelijkingen met één 1, rest 0. Krijg je
door vegen:
Max
Z = - 0,25x2 – 1,25x3 – 0,75x4 + 7,5
z.d.d. x1 + 0,75x2 + 0,25x3 + 0,25x4
= 2,5
- 1,25x2 – 2,75x3 – 0,75x4 + x5 =
0,5
en
x1, x2, x3, x4, x5 0
Basisoplossing: (2,5, 0, 0, 0, 0,5)
Doelwaarde: 7,5
Oplossing is al optimaal (want alle
coëfficiënten in de Z vergelijking zijn
negatief).
Optimale oplossing: x1 = 2,5, x2 = 0, x3 = 0,
Z = 7,5
Standaardvorm voor een LP probleem:
Max
Z = c1x1 + c2x2 + … + cnxn
z.d.d. a11x1 + a12x2 + … + a1nxn b1
a21x1 + a22x2 + … + a2nxn b2
…
…
…
…
…
…
…
…
am1x1 + am2x2 + … + amnxn bm
en
x1, x2 …, xn 0
Hierin zijn alle bj 0.
Reden voor de standaardvorm: x1 = x2 = …
= xn = 0 is een feasible oplossing
Afwijkingen van de standaardvorm:
1. Minimalisering: Min Z = – (Max – Z)
2. Geen niet-negativiteitseis voor xj (xj
0)
2a. xj 10. Ga over op xj’ = xj – 10, dan is
xj’ 0.
2b. xj -7. Ga over op xj’ = –7 – xj, dan is
xj’ 0.
2c. Geen ongelijkheid voor xj. Schrijf xj =
xj+ - xj-,
dan is xj+, xj- 0.
3. Negatief rechterlid:
3x2 – 7x4 –4
– 3x2 + 7x4 4
4. i.p.v. in constraint:
surplusvariabele, i.p.v.
slackvariabele + behandelen als
gelijkheid!
– 3x2 + 7x4 4 – 3x2 + 7x4 – x5 =
4
–3x2 + 7x4 – x5 + x6 = 4
(en x5, x6 0, extra term –Mx6 in
doelfunctie)
5. = i.p.v. in constraint: Voer
kunstmatige
variabele + x in én extra term –Mx in
doelfunctie
Voorbeeld omzetten naar standaardvorm
Max
Z = x1 + x2 + x4
z.d.d. x1 + 2x2
5
2x1 – x2 + x3
–4
x2 – 2x3 + x4 = 5
en
x1 0, x2 5, x3 0
x2 5 klopt niet. Nieuwe variabele x2’ = 5 –
x1 0. Vervang x2 door x2’:
Max
Z = x1 – x2’ + x4 + 5
z.d.d. x1 – 2x2’
–5
2x1 + x2’ + x3
1
–x2’ – 2x3 + x4 = –2
en
x1 0, x2’ 0, x3 0
Vervang –x2’ – 2x3 + x4 = –2 door x2’ + x3 –
x4 = 2
Geen constraint voor x4.
Vervang x4 = x4+ - x4-, x4+, x4- 0:
Max
Z = x1 – x2’ + x4+ – x4- + 5
z.d.d. x1 - 2x2’
–5
2x1 + x2’ + x3
1
x2’ + 2x3 – x4+ + x4=2
en
x1 0, x2’ 0, x3 0, x4+, x4- 0
Vervang Z door Z’ = Z – 5.
Max
Z’ = x1 – x2’ + x4+ – x4z.d.d. x1 – 2x2’
–5
2x1 + x2’ + x3
1
x2’ + 2x3 – x4+ + x4=2
en
x1 0, x2’ 0, x3 0, x4+, x4- 0
Vervang x1 – 2x2’ –5 door
5
–x1 + 2x2’
Max
Z’’ = x1 – x2’ + x4+ – x4- – Mx6
z.d.d. –x1 + 2x2’
5
2x1 + x2’ + x3
+ x5
=
1
x2’ + 2x3 – x4+ + x4+x6 = 2
en
x1 0, x2’ 0, x3 0, x4+, x4-, x5, x6
0
Max
Z’’’ = x1 – x2’ + x4+ – x4- – Mx6 – Mx8
z.d.d. –x1 + 2x2’
–x7 +
x8 = 5
2x1 + x2’ + x3
+ x5
=1
x2’ + 2x3 – x4+ + x4+x6
=2
en
x1 0, x2’ 0, x3 0, x4+, x4-, x5, x6,
x7, x8 0
Optimale oplossing:
Optimale waarde:
(x1, 5-x2’, x3, x4+ – x4-)
Z = Z’’’ + 5
Alternatieve aanpak voor de gelijkheid:
x2’ + 2x3 – x4+ + x4-
=2
vervang door
x2’ + 2x3 – x4+ + x4- 2
x2’ + 2x3 – x4+ + x4- 2
Dit wordt
x2’ + 2x3 – x4+ + x4- + x6 2
x2’ + 2x3 – x4+ + x4- - x9 + x10 2
Dit geeft 3 extra variabelen in plaats van 1:
x2’ + 2x3 – x4+ + x4=2
+x6