Modellen en Simulatie Lineare Programmering

Vergelijkbare documenten
Modellen en Simulatie Lineare Programmering

TW2020 Optimalisering

Modellen en Simulatie Speltheorie

TW2020 Optimalisering

Lineaire programmering

TW2020 Optimalisering

1. Het aantal optimale oplossingen van een LP probleem is 0, 1, of oneindig. 2. De vereniging van twee konvexe verzamelingen is niet convex. 3.

TW2020 Optimalisering

UITWERKINGEN d. Eliminatie van a geeft d. Eliminatie van b,

Basiskennis lineaire algebra

TW2020 Optimalisering

a) Bepaal punten a l en b m zó dat de lijn door a en b parallel is met n.

TW2020 Optimalisering

Eerste deeltentamen Lineaire Algebra A

Beeldverwerking. Scientific Computing. sleij101/ Program. WISB356, Utrecht, najaar WISB356, Utrecht, najaar 2010

TU/e 2DD50: Wiskunde 2 (1)

Modellen en Simulatie Recursies

Dimensie van een deelruimte en rang van een matrix

Lineaire functies? x 3x. (x 1, x 2 ) 5x 1 7x 2. x 6x 17. x ax. (a, x) ax??? 3x log x 2. substitueer x 1 = y 1, x 2 = exp(y 2 ) levert

1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist is. Kruis de juiste bewering aan. (2pt. per juist antwoord).

Hoofdstuk 1 : Vectoren (A5D)

Optimalisering WI 2608

Lineaire Algebra en Vectorcalculus 2DN60 College 5.a Basis en dimensie

Vector-en matrixvergelijkingen. Figuur: Vectoren, optellen

Lineaire Algebra voor ST

Modellen en Simulatie Lesliematrices Markovketens

Coördinatiseringen. Definitie 1. Stel dat B = {b 1,..., b n } een basis is van een vectorruimte V en dat v V. iedere vector v V :

Stelsels lineaire vergelijkingen

Tentamen lineaire algebra voor BWI maandag 15 december 2008, uur.

Lineaire Algebra voor ST

Lineaire Algebra voor ST

TU/e 2DD50: Wiskunde 2

Computerized Tomography: The ART of inspection

Lineaire Algebra voor W 2Y650

K.0 Voorkennis. y = -4x + 8 is de vergelijking van een lijn. Hier wordt y uitgedrukt in x.

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

Iterative methoden voor lineaire vergelijkingen. Scientific Computing. sleij101/ Program

Modellen en Simulatie

Ruimtewiskunde. college. Stelsels lineaire vergelijkingen. Vandaag UNIVERSITEIT TWENTE. Stelsels lineaire vergelijkingen.

Optimalisering en Complexiteit, College 11. Complementaire speling; duale Simplex methode. Han Hoogeveen, Utrecht University

3. Stelsels van vergelijkingen

Lineair Programmeren op het polytoop

Lineaire Algebra C 2WF09

Matrixalgebra (het rekenen met matrices)

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b

Lineaire vergelijkingen II: Pivotering

Examenvragen Hogere Wiskunde I

College WisCKI. Albert Visser. 5 december, Department of Philosophy, Faculty Humanities, Utrecht University. Lijn, Vlak, etc.

TENTAMEN LINEAIRE ALGEBRA 1 donderdag 23 december 2004,

Lineaire Algebra voor W 2Y650

Hoofdstuk 13: Integer Lineair Programmeren

Tentamen Modellen en Simulatie (WISB134)

Lineaire Algebra (2DD12)

Platonische lichamen en andere reguliere polytopen

TW2020 Optimalisering

Eerste deeltentamen Lineaire Algebra A. De opgaven

Stelsels Vergelijkingen

Lineaire Algebra voor ST

College WisCKI. Albert Visser. 16 januari, Department of Philosophy, Faculty Humanities, Utrecht University. Loodrechte Projectie

Uitwerking 1 Uitwerkingen eerste deeltentamen Lineaire Algebra (WISB121) 3 november 2009

Ruimtewiskunde. college. De determinant en lineaire afbeeldingen. Vandaag. De determinant van een matrix. Toepassing: oppervlakte en inhoud

Lineaire Algebra voor ST

Samenvatting college 1-12

Je hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015

Tentamen Modellen en Simulatie (WISB134)

Tentamen Besliskunde 3 (11 juni 2012, uur)

4 Positieve en niet-negatieve lineaire algebra

Bekijk nog een keer het stelsel van twee vergelijkingen met twee onbekenden x en y: { De tweede vergelijking van de eerste aftrekken geeft:

ProefToelatingstoets Wiskunde B

Lineaire Algebra voor W 2Y650

Paragraaf 8.1 : Lijnen en Hoeken

TW2020 Optimalisering

Opgaven Functies en Reeksen. E.P. van den Ban

Paragraaf 7.1 : Lijnen en Hoeken

Lineaire Algebra Een Samenvatting

Lineaire Algebra voor ST

Tentamen Lineaire Algebra voor BMT en TIW (2DM20) op vrijdag 11 mei 2007, 9:00 12:00 uur.

Kwantitatieve Economie / Faculteit Economie en Bedrijfskunde / Universiteit van Amsterdam. Schrijf je naam en studentnummer op alles dat je inlevert.

De inverse van een matrix

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

Lineaire Algebra voor ST

TU/e 2DD50: Wiskunde 2

Enkele uitbreidingen op het simplexalgoritme

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Tentamen Lineaire Algebra voor ST (2DS06) op , uur.

Week 22: De macht van het spoor en het spoor van de macht

Voorbeeld simplexmethode. Max Z = 3x 1 + 2x 2 0.5x 3 z.d.d. 4x 1 + 3x 2 + x 3 10, 3x 1 + x 2-2x 3 8, en x 1, x 2, x 3 0.

Uitwerkingen tentamen lineaire algebra 2 13 januari 2017, 10:00 13:00

TW2020 Optimalisering

Kwantummechanica Donderdag, 13 oktober 2016 OPGAVEN SET HOOFDSTUK 4. Bestudeer Appendix A, bladzijden van het dictaat.

ONBETWIST ONderwijs verbeteren met WISkunde Toetsen Voorbeeldtoetsen Lineaire Algebra Deliverable 3.10 Henk van der Kooij ONBETWIST Deliverable 3.

TENTAMEN LINEAIRE ALGEBRA 1A. maandag 16 december 2002, b. Bepaal een basis voor de rijruimte en voor de kolomruimte van A.

Afdeling Kwantitatieve Economie

1 Eigenwaarden en eigenvectoren

Tentamen Lineaire Algebra 1 (Wiskundigen)

Geef niet alleen antwoorden, maar bewijs al je beweringen.

Modellen en Simulatie Differentiaalvergelijkingen. Modellen en Simulatie. sleij101/ Program.

Tie breaking in de simplex methode

EXAMEN LINEAIRE ALGEBRA EN MEETKUNDE I

Opgaven Getaltheorie en Cryptografie (deel 1) Inleverdatum: 28 februari 2002

Transcriptie:

Utrecht, 13 juni 2013 Modellen en Simulatie Lineare Programmering Gerard Sleijpen Department of Mathematics http://www.staff.science.uu.nl/ sleij101/ Program Optimaliseren Lineaire programmering Voorbeelden Polytopen Intermezzo: rang Intermezzo: notatie Hoekpunten Intermezzo: vegen Standaard vorm Simplex methode Positiviteitsristricties Het eerste hoekpunt dagelijks kunnen verwerkt worden: 480 hammen (H), 400 pork bellies (B), 230 picnic hammen (P) 420 kunnen gerookt worden, en met overwerk nog eens 250 Winst per item (in dollars) vers gerookt (regulier) gerookt (overwerk) H 8 14 11 B 4 12 7 P 4 13 9 Dagelijkse aantallen (nog te bepalen onbekenden x 1,..., x 9 ) vers gerookt (regulier) gerookt (overwerk) H x 1 x 2 x 3 B x 4 x 5 x 6 P x 7 x 8 x 9 Voorbeeld. f(x) c T x met c R n (Lineaire vorm op R n ) en V = {x R n a T i x β i voor i = 1,..., m}, waarbij a i R n en β i R (i = 1,....m). doel, doelfunctie zodat a T i x β i voor alle i = 1,..., m. beperkingen Stelling. Als 1) V een hoekpunt heeft en 2) het maximum wordt aangenomen op V dan wordt het maximum aangenomen in een hoekpunt. Maximaliseer 8x 1 + 14x 2 + 11x 3 + 4x 4 +... + 9x 9 onder de beperkingen x 1 0, x 2 0,..., x 9 0, x 1 +x 2 +x 3 = 480, x 4 +x 5 +x 6 = 400, x 7 +x 8 +x 9 = 230 x 2 + x 5 + x 8 420, x 3 + x 6 + x 9 250

Dieet m Voedingsstoffen V 1,..., V m (vitaminen, mineralen, koolhydraten,...). Keuze uit n ingrediënten I 1,..., I n. Aanname: Het dagelijkse dieet moet minstens β i microgram V i bevatten. Een gram van ingrediënt I j bevat a ij microgram V i. Een gram van ingrediënt I j kost c j euro. Opdracht. Bepaal het goedkoopste dieet waarmee je gezond blijft. Model. x j is de dagelijkse hoeveelheid van ingrediënt I j. Schrijf x (x 1,..., x n ) T, c (c 1,..., c n ) T, a i (a i,1,..., a i,n ) T. Voorbeeld. f(x) c T x met c R n (Lineaire vorm op R n ) en V = {x R n a T i x β i voor i = 1,..., m}, waarbij a i R n en β i R (i = 1,....m). doel, doelfunctie zodat a T i x β i voor alle i = 1,..., m. beperkingen Stelling. Als 1) V een hoekpunt heeft en 2) het maximum wordt aangenomen op V dan wordt het maximum aangenomen in een hoekpunt. Minimalizeer c T x met x zo dat a T i x β i (i = 1,..., m). Terminologie. Punten in V zijn acceptabele punten. Maximalizeer c T x met x zo dat a T i x β i (i = 1,..., m). Terminologie. Beschouw een a R n en een β R. {x R n a T x β} is een halfruimte, {x R n a T x = β} is een hypervlak. Als a i R n en β i R dan heet m V {x a T i x β i (i = 1,..., m)} = {x a T i x β i} i=1 een polytoop. Een polyeder of veelvlak is een begrensd polytoop. Notatie. a T 1 β 1 Met A., b. en x y als x j y j alle j a T m β m is V = {x Ax b} Met p en q in R n is [p,q] {αp + (1 α)q α [0,1]} het lijnstuk tussen p en q. Als p q, dan bekijken we ook (p,q) {αp + (1 α)q α (0,1)}. Met p j in R n (j = 0,1,..., k) is een polytoop, k k S { α j p j α j 0, α j = 1} j=0 j=0 Als p 1 p 0, p 2 p 0,..., p k p 0 lineair onafhankelijk zijn dan heet S een k-simplex. p 0 = 0 en p j = e j de j-de standaard basis vector (k = n) geeft het eenheidssimplex in R n

Definitie. Een verzameling U R n is convex als voor alle p,q U [p,q] U. Stelling. U en W convex U W convex. Stelling. Halfruimtes en hypervlakken zijn convex. Stelling. Polytopen zijn convex. Definitie. Zij U een convexe verzameling. Een p in U is een hoekpunt van U als p (x,y) voor alle x,y U, x y. Hoe zie je in hogere dimensies of p een hoekpunt is? A is m k, b R m, k m, V {x R k Ax b}. Terminologie. p R k is een basispunt voor V als er een rij I is van k verschillende getallen uit {1,2,..., m} waarvoor A(I,:) inverteerbaar is en A(I,:)p = b(i). Stelling. p V. p is een hoekpunt van V p is een basispunt voor V. Interpretatie. In de k-dim. ruimte: hoekpunten zijn snijpunten van k hypervlakken {x R k A(i,:)x = b(i)} (i uit een rij I van k verschillende getallen uit {1,..., m}). In 2-d (k = 2), snijpunten van 2 lijnen. In 3-d (k = 3), snijpunten van 3 vlakken. Opmerking. Als I = [I, i] een rij is van verschillende getallen uit {1,..., m} en A(I,:) heeft niet volle rang, dan is, met H(I) {x R k A(I,:)x = b(i)}, H(I ) parallel aan (een deel van) H(i). zodat Ax b. Stelling. Als 1) V een hoekpunt heeft en 2) het maximum wordt aangenomen op V dan wordt het maximum aangenomen in een hoekpunt. Oplosmethode. Vind een hoekpunt van V Herhaal Vind vanuit dat hoekpunt een richting langs de rand van V waar langs de doelfunctie groter wordt. Stop als er niet zo n richting is. Loop vanuit dat hoekpunt in die richting tot een volgend hoekpunt van V Stelling. Het hoekpunt waarin gestopt wordt is n maximalizerende x ( n x die het lp-probleem oplost). zodat Ax b. Lineair programmering in standaardvorm. Los op zodat Ax = b en x 0. Breng op standaard vorm door 1) slack variabelen in te voeren: Beperking wordt: Ax = b met x j 0 alle j J, waarbij J {1,..., n} en x j R voor j J 2) en de x j te elimineren waarvoor j J Opmerking. De matrix A = A stand in standaardvorm is geconstrueerd uit de matrix A = A lp voor het algemene LP-probleem. De matrices zijn echter niet hetzelfde: A lp is smal en hoog (m k met, gewoonlijk, m > k), A stand is breed en laag (l n met, gewoonlijk, l < n, m = n = k+l).

Lineair programmering in standaardvorm. Los op zodat Ax = b en x 0. Stelling. Als 1) V {x R n Ax = b en x 0} = en 2) maximum c T x wordt aangenomen op V dan wordt het max. aangenomen in een hoekpunt van V. Simplex methode. Breng het lp-probleem op standaardvorm. Vind een hoekpunt van V. Herhaal Vind vanuit dat hoekpunt een richting langs de rand van V waarin de doelfunctie groter wordt. Stop als er niet zo n richting is. Loop vanuit dat hoekpunt in die richting tot een volgend hoekpunt van V Stelling. Het hoekpunt waarin gestopt wordt is n maximalizerende x (x lost het lp-probleem in standaardvorm op). A is l n, l < n, b R l, V = {x R n Ax = b en x 0}. Terminologie. p R n is een basispunt voor V als er een rij J is van l verschillende getallen uit {1,2,..., n} waarvoor A(:, J) inverteerbaar is, A(:, J)p(J) = b, p(j) = 0 voor iedere j J. Stelling. p is een hoekpunt van V p 0 & p is een basispunt voor V. Opmerking. Als p een basispunt is voor V dan is Ap = A(:, J)p(J) = b en dus is p V als ook nog p 0. Opmerking. Als J uit minder dan l verschillende getallen bestaat en A(:, J) heeft volle rang, A(:, J)p(J) = b, p(j) = 0 voor iedere j J, en A heeft rang l (volle rang), dan kan J worden aangevuld tot een basis. A is l n, l < n, b R l, V = {x R n Ax = b en x 0}. Met c R n en M max{c T x x V}, zij V max { x V c T x = M } { [ ] [ ]} A b = x 0 c T x =. M Door te vegen veranderen A, b, c en M maar Stelling. Door te vegen veranderen V en V max niet. Bewijs. V: merk op dat met ν, α R, ν 0 geldt { a T 1 x = β 1 1 a T 2 x = β ν a T 1 x = 1 ν β 1 (x R n ). 2 (a 2 αa 1 ) T x = β 2 αβ 1 Als (i 0, j 0 ) de pivot is in een veegstap dan is bovenstaande van toepassing met a T 1 = A(i 0,:) en a T 2 n andere rij van A. V max : behandel (de[ onbekende) ] [ ] M als een getal en pas het A b resultaat toe met c T en in plaats van A, resp. b. M Zij A een l n matrix van volle rang, l < n, b R l, c R n. { J rij van l verschillende getallen uit {1,2,..., n} (B) zodat A(:, J) = I l, c(j) = 0, b 0 Herhaal Als c 0 dan, succes=true, stop anders, kies j 0 zodat c(j 0 ) > 0 Als A(:, j 0 ) 0 dan, succes=false, stop anders, i 0 argmin i {b(i)/a(i, j 0 ) A(i, j 0 ) > 0} Vervang het i 0 -de getal van J door j 0 Veeg met (i 0, j 0 ) als pivot (veeg b, M µ en c mee) einde herhaal h(j) = b, h(j) = 0 als j J. Als succes dan x opl = h, M = µ, anders M =. Bewering. Als M < dan is de gevonden x opl een hoekpunt dat het probleem oplost (x opl is een maximaliserende vector in V: x opl = argmax{c T oorx x V} waarbij c oor de oorspronkelijke vector c is).

Voorbeeld. 2 3 10 1 0 0 5 4 1 2 0 1 0 11 3 4 16 0 0 1 8 5 4 26 0 0 0 M 2 3 10 1 0 0 5 4 1 2 0 1 0 11 3 4 16 0 0 1 8 5 4 26 0 0 0 M 1 1.5 5 0.5 0 0 2.5 0 5 18 2 1 0 1 0 0.5 1 1.5 0 1 0.5 0 3.5 1 2.5 0 0 M 12.5 b 0, J = [4,5,6]. Kies j 0 = 1 (of 2 of 3). Minimum [5/2,11/4,8/3] voor i 0 = 1. Nieuwe J = [1,5,6]. Veeg met pivot (i 0, j 0 ) = (1,1). Kies j 0 = 3. Min. [5/2.5,,0.5] voor i 0 = 3 (of Nieuwe J = [1,5,3]. Veeg met pivot (i 0, j 0 ) = (3,3). Minder dan n positiviteitsrestricties Wat doen we als er geen positiviteitsrestrictie zit op k van de n coördinaten x j van x? Hernummer de x j zodat x j 0 voor alle j = k+1,..., n. Elimineer x 1,..., x k. 1 4 0 8 0 5 0 0 14 0 29 1 18 10 0 0.5 1 1.5 0 1 0.5 0 3 0 1 0 1 M 13 Geen verbetering meer mogelijk. J = [1,5,3], M = 13, x opl (J) = h(j) = (0,10,0.5) T, x opl = (0,0,0.5,0,10,0) T. x j x opl (j) aflezen uit de eindtabel is gemakkelijk: als j J dan is x j = 0, anders loop in de jde-kolom naar de rij met de 1 en x j is de b(i) in die rij. 1 Vb. 1 4 3 3 1 0 0 0 2 1 3 1 1 0 1 0 0 2 1 2 3 2 0 0 1 0 3 1 3 2 1 0 0 0 1 3 3 1 4 2 0 0 0 0 M 1 0 13 5 3 4 0 0 14 0 1 4 2 1 1 0 0 4 0 0 10 3 1 0 1 2 11 0 0 1 0 0 1 0 1 1 0 0 30 9 0 0 8 5 M 39 x 3 0, x 4 0,..., x 8 0 J = [3,4] j 0 = 6 Conclusie. x = (x 1, x 2,0,0,11 + 2α,1 + α,0, α) T is feasible voor iedere α 0. I.h.b., x 3 = x 4 = 0. Dus x 1 = 14 + 3x 5 4x 6 = 15 + 2α en x 2 = 4 x 5 + x 6 = 6 α. er is geen i 0 Dus is x = (15 + 2α, 6 α,0,0,...) T feasible (α 0) (controleer door invullen) en 3x 1 + x 2 + 4x 3 + 2x 4 = 39 + 5α = M voor α Het vinden van het 1ste hoekpunt A = A stand is l n, l < n, V = {x Ax = b en x 0} Stel A komt van een l k matrix A oor door toevoegen van l slack variabelen (n = l + k): A = [A oor,i l ]. En stel 0 k (0,0,...,0) T is een aanvaardbaar punt voor het oorspronkelijke l bij k probleem Dan is J 1 = [ k + 1,..., k + l] een basis, h 1 (0 T k,bt ) T 0, en h 1 is een hoekpunt van V. Conclusie. h 1 is een geschikt eerste hoekpunt.

Het vinden van het 1ste hoekpunt A = A stand is l n, l < n, V = {x Ax = b en x 0} Vind basispunt p: vind n rij J van l getallen waarvoor p(j) = 0 als j J, rang(a(:, J)) = l en A(:, J)p(J) = b. Stel p is niet aanvaardbaar. Veeg zo dat A(:, J) = I l. 1 is de l-vector (1,1,...,1) T. Zij i 0 argmin i b(i). Alternatief probleem (+). Maximaliseer ( z), [ ] x zodat [A, 1] = b en x 0, z 0. z Voor (+) is h + 0 een aanvaardbaar hoekpunt. Los (+) op met de simplexmethode met start h + 0. Het vinden van het 1ste hoekpunt A = A stand is l n, l < n, V = {x Ax = b en x 0} Vind basispunt p: vind n rij J van l getallen waarvoor p(j) = 0 als j J, rang(a(:, J)) = l en A(:, J)p(J) = b. Stel p is niet aanvaardbaar. Veeg zo dat A(:, J) = I l. 1 is de l-vector (1,1,...,1) T. Zij i 0 argmin i b(i). Alternatief probleem (+). Maximaliseer ( z), [ ] x zodat [A, 1] = b en x 0, z 0. z Stelling. V = V heeft minstens een hoekpunt dat bovendien gevonden wordt door de simplexmethode. Bewijs. De simplexmethode vindt een hoekpunt van V +, zeg h + 1. h+ 1 is van de vorm h+ 1 = (ht 1, z)t en z = 0 (zie vorige stelling). Dus is h 1 is een hoekpunt V. Het vinden van een basis(punt) A = A stand is l bij n, l < n. V = {x Ax = b, x 0} Vind basispunt p: vind n rij J van l getallen waarvoor p(j) = 0 als j J, rang(a(:, J)) = l en A(:, J)p(J) = b. Voorbeeld. 1 1 2 2 5 Met J = [1,2] heeft Veeg kolom 1 en 2: [ ] 1 1 1 3 x 0 heeft volle rang. Hoe vind je een J met l elementen zodat A(:, J) volle rang heeft? 1 0 2.5 3 6 0 1 0.5 1 1 p = (6, 1,0,0)T is een basispunt. Kies J en veeg. i 0 argmin i b(i) = 2 en ρ b(i 0 ) = 1. h + 0 [ p + ρ1j ρ ] = (7,0,0,0,1) T Pas nu de simplexmethode toe op [A, 1] en c = e n+1 om een aanvaardbaar basispunt te construeren.

Voorbeeld. 1 1 2 2 5 1 0 2.5 3 1 6 0 1 0.5 1 1 1 0 0 0 0 1 M 1 1 3 4 0 7 0 1 0.5 1 1 1 0 1 0.5 1 0 M + 2 1 5 0 2 0 1 0 2 1 2 2 2 0 0 0 0 1 M x 0 h + 0 (7,0,0,0,1)T is n acceptabele hoek. Veeg met pivot (i 0, n + 1) = (2,5). Vervang i 0 -de getal J = [1,2] door n + 1: J [1,5] j 0 = 3 min. [7/3,1/0.5] voor i 0 = 2, Veeg met pivot (i 0, j 0 ) = (2,3). Vervang i 0 -de getal J = [1,5] door j 0 : J [1,3] Geen verbetering mogelijk: J = [1,3] Voorbeeld. 1 1 2 2 5 1 7 3 2 M 1 5 0 2 1 0 2 1 2 2 0 6 0 6 M 7 0.5 2.5 0 1 0.5 3 21 0 0 M 10 h 1 0 J = [1,3] j 0 = 4, min. [1/2, ] voor i 0 = 1, Vervang i 0 -de getal J door j 0 : J [4,3] Geen verbetering mogelijk J = [4,3], x opl = (0,0,3,0.5) T, M = 10. z = 1 x 5 max. voor z = x 5 = 0 M = 0 en x T opl = (1,0,2,0,0)T. h 1 (1,0,2,0) T hoekpunt voor 1 1 2 2 5, x 0