WI2608 sheets week 2..

advertisement
Stelling: Een halfruimte Ha,b = {x  Rn | aTx  b} is convex.
Bewijs: Kies x, y  Ha,b en   [0,1].
Voor het punt x+(1-)y geldt:
aT(x+(1-)y) = aTx+(1-)aTy  b+(1-)b = b
(want   0 en (1-)  0).
Dit betekent dat ook x+(1-)y  Ha,b.

Let op: a  0 is een vector, b is een getal.
Stelling: De bal B = {x | |x|  r} is convex.
Bewijs: Kies x, y  B en   [0,1].
Voor het punt x+(1-)y geldt:
|x+(1-)y|2 = (x+(1-)y)T(x+(1-)y) =
2|x|2+2(1-)xTy+ (1-)2|y|2  2r2+2(1-)r2 + (1-)2r2 = r2.
Dit volgt uit de ongelijkheid van Schwarz xTy  |x||y|.
Andere manier: gebruik de driehoeksongelijkheid:
|a+b|  |a| + |b|.
|x + (1-)y|  |x| + (1-)|y|  r + (1-)r = r.

Stelling: De doorsnede van (willekeurig veel) convexe
verzamelingen is weer convex.
Bewijs: Het lijnstuk tussen twee punten in de doorsnede
zit in elk van de verzamelingen (want deze zijn allemaal
convex).

Gevolg: Een bal in Rn is convex.
Gevolg: Het toelaatbare gebied van een LP probleem is
convex (Want doorsnede van halfruimten 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.
Bewijs: f is lineair en niet-constant, d.w.z. f(x) = aTx met a
 0. Stel f is maximaal in een inwendig punt x0  U. Dan is
er een r > 0 zodat {y | |x0-y|  r}  U. Dit betekent dat
x1 := x0 + (r/(2|a|))a  U.
Er geldt dat f(x1) = f(x0) + r|a|/2 > f(x0), dus f is niet
maximaal in x0. Tegenspraak!

Gevolg: De maximale waarde van een LP probleem wordt
op de rand van het toegelaten gebied aangenomen.
Bewijs: Het toegelaten gebied is gesloten en de
doelfunctie lineair, dus het maximum wordt aangenomen.
Dit kan niet in het inwendige, dus op de rand.
Voor een constante doelfunctie wordt het maximum ook
op de rand aangenomen.

Gevolg: Er is een hoekpunt van het toelaatbare gebied
waar het maximum van een LP probleem wordt
aangenomen.
Bewijs: Maxima liggen op de rand, dus er is een lineaire
constraint met gelijkheid. Dit reduceert de dimensie van
het probleem met 1. Ga zo door tot je in een hoekpunt
eindigt.

Een maximum is locaal als er in een bolletje rond het punt
geen grotere waarde wordt aangenomen.
Stelling: Omdat het toelaatbare gebied convex is, heeft
een LP probleem geen locale maxima, alleen globale.
Bewijs: Het rechte verbindingslijnstuk tussen een locaal
en een globaal optimum ligt in het toelaatbare gebied en
de doelfunctie is er lineair. De doelwaarden moeten dus
gelijk zijn, anders is het locale optimum niet locaal
optimaal.

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
(f is niet begrensd)
K = (0,1),
f(x) = x
(gebied bevat limiet 1 niet)
K = ,
f(x) = x
(gebied bevat geen punten)
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.
[0,1]  [2,3]
of:
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.d.d.
Z = c1x1 + c2x2 + … + cnxn
a11x1 + a12x2 + … + a1nxn  b1
a21x1 + a22x2 + … + a2nxn  b2
…
…
…
…
…
…
…
…
am1x1 + am2x2 + … + amnxn  bm
en
x1, x2 …, xn  0
Hierin zijn alle bi  0, dus is x1 = x2 = … = xn = 0 een
toegelaten startoplossing (CPF).
Herschrijf alle ongelijkheden als gelijkheid:
x1 + 4x2  17

0  17 - x1 - 4x2
Introduceer nieuwe extra variabele: x3 := 17 - x1 - 4x2
x1 + 4x2  17

x1 + 4x2 + x3 = 17

x3  0
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.
Voor elke  ongelijkheid krijg je een nieuwe niet-negatieve
(slack-)variabele.
n variabelen met m nevenvoorwaarden () 
n + m variabelen met m nevenvoorwaarden (=)
Een toegelaten oplossing die met een hoekpunt
correspondeert heet een basisoplossing.
In een hoekpunt zijn n (slack)variabelen = 0, dus maximaal
m positieve variabelen. Dit heten de basisvariabelen van
dat hoekpunt.
Simplexmethode algebraïsch:
1 Startoplossing: toegelaten basisoplossing.
(= nuloplossing van het oorspronkelijke probleem)
2 Maak nieuwe basisoplossing die één basisvariabele
verschilt: Eén niet-basisvariabele wordt > 0 terwijl één
andere basisvariabele = 0 wordt. (Dit correspondeert met
langs een ribbe naar een nieuw hoekpunt gaan).
Doelwaarde moet verbeteren.
Nieuwe oplossing is toegelaten basisoplossing.
3 Ga door met 2 tot er geen verbetering meer is. Klaar.
In een LP probleem is een locaal optimum ook globaal,
dus het algoritme stopt terecht.
Standaard voorbeeld uit het boek: Wyndor Glass Co.
In drie fabrieken worden aluminium en houten kozijnen
gefabriceerd. Aluminium kozijnen hebben 1 uur in fabriek
1 nodig en 3 uur in fabriek 3 per batch, de winst is $3000.
Houten kozijnen hebben 2 uur in fabriek 2 nodig en 3 uur
in fabriek 3 per batch, de winst is $5000. De fabrieken
hebben voor productie resp. 4, 12 en 18 uur beschikbaar .
LP model:
Max
z.d.d.
Z = 3x1 + 5x2
x1

2x2 
3x1 + 2x2 
x1, x2  0
4
12
18
(capaciteit fabriek 1)
(capaciteit fabriek 2)
(capaciteit fabriek 3)
(hoeveelheden)
Vervang de ongelijkheden door gelijkheden (Augmented
form):
Max
z.d.d.
Z = 3x1 + 5x2
x1
+ x3
=
2x2
+ x4
=
3x1 + 2x2
+x5 =
x1, x2, x3, x4, x5  0
4
12
18
Simplex algoritme:
Start met de oorsprong van het oorspronkelijke probleem:
(0, 0)  (0, 0, 4, 12, 18)
(Initial Basic Feasible solution (BF))
Is deze oplossing optimaal?
De “vrije” (non-basic) variabelen zijn x1 en x2. De
doelfunctie is Z = 3x1 + 5x2 en stijgt als x1 of x2 worden
vergroot. De stijging is het grootst voor x2 (grootste
richtingscoëfficiënt), dus x2 moet worden vergroot
Hoe groot kan x2 worden?
Constraints:
x3 = 4 – x1
x4 = 12 – 2x2
x5 = 18 – 3x1 – 2x2
x1 = 0, x2 wil groter worden:
x3 = 4
x4 = 12 – 2x2
x5 = 18 – 2x2
0
0
0
 x2  6
 x2  9
Conclusie: x2 kan maximaal 6 worden.
In dat geval is x4 = 0.
Startoplossing:
na één iteratie:
(0, 0, 4, 12, 18) basis: x3, x4, x5
(0, 6, 4, 0, 6)
basis: x3, x2, x5
Wat nu?
Z
-3x1 - 5x2
=
x1
+ x3
=
2x2
+ x4
=
3x1 + 2x2
+x5 =
x1, x2, x3, x4, x5  0
0
4
12
18
Kunnen de niet-basis variabelen x1, x4 worden vergroot?
Wat is het effect op de doelfunctie?
Herschrijf het stelsel. Zorg dat de coëfficiënt in de x2 van
de x4 vergelijking1 wordt en veeg alle andere coëfficiënten
uit de x2 kolom weg:
Z
-3x1 - 5x2
x1
2x2
3x1 + 2x2
Z
-3x1 - 5x2
x1
x2
3x1 + 2x2
Z
-3x1
x1
+ x3
+ ½ x4
+ 5/2x4
+ x3
x2
3x1
=
+ x3
=
+ x4
=
+x5 =
+ ½ x4
- x4
0
4
12
18
=
=
=
+x5 =
0
4
6
18
=
=
=
+x5 =
30
4
6
6
Nu zie je dat Z stijgt met als functie van x1, daalt met x4.
Hoever kan x1 stijgen (als x4 = 0)?
x3 =
x2 =
x5 =
4 - x1  x 1  4
6
6 - 3x1  x1  2
Gevolg: x1 kan maximaal 2 worden. Dan is x5 = 0.
Nieuwe BF oplossing is (2, 6, 2, 0, 0) basis: x3, x2, x1
Volgende iteratie: herschrijf het stelsel:
Z
-3x1
x1
+ 5/2x4
+ x3
+ ½ x4
- x4
x2
3x1
=
=
=
+x5 =
30
4
6
6
wordt:
Z
-3x1
x1
+ 5/2x4
x1
+ ½ x4
- 1/3x4 +1/3x5
=
=
=
=
30
4
6
2
x1
+ 3/2x4 + x5
x3 + 1/3x4 - 1/3x5
+ ½ x4
- 1/3x4 +1/3x5
=
=
=
=
36
2
6
2
+ x3
x2
Z
x2
De doelfunctie daalt nu als je x4 of x5 vergroot.
Locaal optimum = globaal optimum.
BF oplossing is (2, 6, 2, 0, 0), dus
x1 = 2, x2 = 6, Z = 36
Download