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