Linjärprogrammering (Kap 3,4 och 5)

Relevanta dokument
LP-problem. Vårt första exempel. Baslösningar representerar extrempunkter. Baslösningar representerar extrempunkter

1 LP-problem på standardform och Simplexmetoden

Föreläsning 2: Simplexmetoden. 1. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform.

Lösningar till 5B1762 Optimeringslära för T, 24/5-07

Optimeringslära Kaj Holmberg

1(8) x ijt = antal mobiltelefoner av typ i=1,,m, Som produceras på produktionslina 1,, n, Under vecka t=1,,t.

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin

Optimeringslära Kaj Holmberg

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Onsdag 25 augusti 2010 kl

1 Duala problem vid linjär optimering

Lösningar till SF1861/SF1851 Optimeringslära, 24/5 2013

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Torsdag 28 maj 2010 kl

TAOP14: Optimeringslära SAMMANFATTNING OSKAR QVIST:

Lösningar till SF1861 Optimeringslära, 28 maj 2012

Optimeringslära Kaj Holmberg

Vinsten (exklusive kostnaden för inköp av kemikalier) vid försäljning av 1 liter fönsterputs är 2 kr för F1 och 3 kr för F3.

Ett linjärprogrammeringsproblem på allmän form ser ut som

Optimeringslära Kaj Holmberg

Optimalitetsvillkor. Optimum? Matematisk notation. Optimum? Definition. Definition

Laboration 1 - Simplexmetoden och Modellformulering

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

Vinsten (exklusive kostnaden för inköp av kemikalier) vid försäljning av 1 liter fönsterputs är 2 kr för F1 och 3 kr för F3.

Lösningar till tentan i SF1861 Optimeringslära, 1 juni 2017

Lösningar till SF1852 Optimeringslära för E, 16/1 08

TNK049 Optimeringslära

LP-dualitet: Exempel. Vårt första exempel. LP-dualitet: Relationer. LP-dualitet: Generellt

Tentamensinstruktioner. När Du löser uppgifterna

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

Tentamensinstruktioner

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet. Specialfall av minkostnadsflödesproblemet. Slutsats.

Vårt första exempel. LP-dualitet: Exempel. LP-dualitet: Generellt. LP-dualitet: Relationer

Optimeringslära för T (SF1861)

TNSL05 Optimering, Modellering och Planering. Föreläsning 10

Tentamensinstruktioner

Tentamensinstruktioner. Vid skrivningens slut

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler

TENTAMEN. Tentamensinstruktioner. Datum: 30 augusti 2018 Tid: 8-12

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Lösningar till tentan i SF1861 Optimeringslära, 3 Juni, 2016

1 Minkostnadsflödesproblem i nätverk

Laboration 1 - Simplexmetoden och modellformulering

Sats: Varje anslutningsmatris ar fullstandigt unimodular. Bevis: Lat m beteckna antalet rader i anslutningsmatrisen.

Optimering med bivillkor

Föreläsning 10/11! Gruppuppgifter: Gruppuppgift 1: Alla har redovisat. Gruppuppgift 2: Alla har redovisat Gruppuppgift 3: På gång.

Tentamensinstruktioner. När Du löser uppgifterna

Optimering med bivillkor

Tentamensinstruktioner

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C

5B1817 Tillämpad ickelinjär optimering. Kvadratisk programmering med olikhetsbivillkor Active-set metoder

1 Konvexa optimeringsproblem grundläggande egenskaper

Föreläsning 6: Nätverksoptimering

Olinjär optimering med bivillkor: KKT min f (x) då g i (x) 0 för alla i

De optimeringsproblem som kommer att behandlas i denna kurs kan alla (i princip) skrivas. 1 2 xt Hx + c T x. minimera

Tentamensinstruktioner

Lösningar/svar. Uppgift 1. Tekniska Högskolan i Linköping Optimering av realistiska sammansatta system. Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg. Lösningar/svar. Iteration 2: x 2 s

Tentamensinstruktioner

Tentamensinstruktioner. När Du löser uppgifterna

LÖSNINGAR TILL UPPGIFTER TILL RÄKNEÖVNING 1

MIO310 OPTIMERING OCH SIMULERING, 4 p

Tentamensinstruktioner

z = min 3x 1 2x 2 + y Fixera y, vilket ger subproblemet

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Vektorgeometri för gymnasister

Optimeringslära Kaj Holmberg

Tentamensinstruktioner

MICROECONOMICS Mid Sweden University, Sundsvall (Lecture 2) Peter Lohmander &

Tentamensinstruktioner. När Du löser uppgifterna

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

MIO310 OPTIMERING OCH SIMULERING, 4 p

tentaplugg.nu av studenter för studenter

1 Ickelinjär optimering under bivillkor

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

SF1626 Flervariabelanalys

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Föreläsning 7: Kvadratisk optimering. 4. Kvadratisk optimering under linjära bivillkor

Uppgift 1 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM. Tentamensinstruktioner. När Du löser uppgifterna

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

. (2p) 2x + 2y + z = 4 y + 2z = 2 4x + 3y = 6

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TNSL05 Optimering, Modellering och Planering. Föreläsning 4

TNSL05 Optimering, Modellering och Planering. Föreläsning 6

Vektorgeometri för gymnasister

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering

Tentamensinstruktioner

Transkript:

Linjärprogrammering (Kap 3,4 och 5) Fredrik Olsson, fredrik.olsson@iml.lth.se Avdelningen för produktionsekonomi Lunds tekniska högskola, Lunds universitet 16 september 2015 Dessa sidor innehåller kortfattade föreläsningsanteckningar från kapitel 3, 4 och 5 i Hillier & Lieberman. Dessa anteckningar är inte fullständiga på något sätt och ersätter därmed ej kursboken. Vanligaste applikationen: Verktyg för att allokera begränsade resurser mellan konkurrerande aktiviteter på bästa sätt. Alla samband (funktioner) i modellen måste vara linjära, både målfunktion och bivillkor. Med programmering menas här planering LP-problem av storlek större löses mha den så kallade simplex algoritmen. Exempel 1 Ett stålverk köper in skrot och annan metall och smälter samman detta till olika produkter. Till en speciell produkt som består av 1000 kg metall ingår de tre metallerna: Nickel, Krom och Molybden. Metallblandningen består av fyra olika sorters skrot samt de tre metallerna. Antag att vi har följande specifikation. 1 1 Detta exempel är hämtat från Lundgren, Rönnqvist, Värbrand: Linjär och icke-linjär optimering. 1

2 Nr Komponent Kol Nickel Krom Molybden Kostnad per kg 1 Skrot 1 0.8 18 12 0 16 2 Skrot 2 0.7 3.2 1.1 0.1 10 3 Skrot 3 0.85 0 0 0 8 4 Skrot 4 0.4 0 0 0 9 5 Nickel 0 100 0 0 48 6 Krom 0 0 100 0 60 7 Molybden 0 0 0 100 53 Undre gräns 0.65 3.0 1.0 1.1 Övre gräns 0.75 3.5 1.2 1.3 Det gäller även att skrot 1 och 2 är begränsade till 75 respektive 250 kg. Målet är alltså att minimera inköpskostnaden. Lösning: Matematisk modell: x j = antal kg av sort j som ingår i blandningen, j = 1,...,7. då minz = 16x 1 +10x 2 +8x 3 +9x 4 +48x 5 +60x 6 +53x 7 x 1 +x 2 +x 3 +x 4 +x 5 +x 6 +x 7 = 1000 0.8x 1 +0.7x 2 +0.85x 3 +0.4x 4 0.65 1000 0.8x 1 +0.7x 2 +0.85x 3 +0.4x 4 0.75 1000 18x 1 +3.2x 2 +100x 5 3 1000 18x 1 +3.2x 2 +100x 5 3.5 1000 12x 1 +1.1x 2 +100x 6 1.0 1000 12x 1 +1.1x 2 +100x 6 1.2 1000 0.1x 2 +100x 7 1.1 1000 0.1x 2 +100x 7 1.3 1000 x 1 75 x 2 250 x 1,x 2,...,x 7 0 Detta ger en optimal lösning x = (75,90.9,672.3,137.3,13.6,0,10.9) med optimalt målfunktionsvärde Z = 9953.7 kr. Exempel 2 Vi ska i detta exemplet studera ett transport problem. Antag att ett företag har m st. anläggningar (fabriker) S 1,S 2,...,S m som distribuerar

3 till n st. stora kunder D 1,D 2,...,D n. Problemet är att hitta vilka anläggningar som ska skicka till vilka kunder, samt hur mycket som ska skickas. Definiera S1 D1 S2 D2 Sm Dn Figur 1: Flöde från fabriker S i till kunder D j. c ij = kostnad för att transportera från S i till D j s i = tillgång (kapacitet) vid S i, i = 1,...,m d j = kundefterfrågan vid D j, j = 1,...,n x ij = flödet från S i till D j Detta ger LP-problemet minz = m c ij x ij i=1 då x ij s i, i = 1,...,m m x ij = d j, j = 1,...,n alla x ij 0 Den första olikheten i bivillkoren betyder helt enkelt att man inte kan skicka mer än det som finns vid varje fabrik. Det andra villkoret (den med likhet) säger att efterfrågan vid varje kundcentra D j skall mötas exakt.

1 LP-PROBLEMS MATEMATISKA KARAKTÄR 4 1 LP-problems matematiska karaktär LP-problem på standardform: max Z = c i x i i=1 (eng: objective function, sv: målfunktion) då a ij x j b i, i = 1,...,m (eng: functional constraints, sv: bivillkor) x j 0, j = 1,...,n. (eng: non-negative functional constraints) LP-problem på matrisform: max Z = c T x då Ax b x 0 (1) där c = (c 1 c 2 c n ) T, x = (x 1 x 2 x n ) T, b = (b 1 b 2 b m ) T, och a 11 a 12... a 1n a A = 21 a 22... a 2n....... a m1 a m2... a mn Andra varianter på formuleringar 1. minc T x 2. n a ijx j b i 3. n a ijx j = b i 4. x i fri, dvs x i tillåts både vara negativ och positiv Senare då simplex algoritmen ska formuleras matematiskt är det en fördel om det tillåtna området är uttryckt som ekvationer (inte olikheter) och även att alla variabler är icke-negativa. Problemtransformationer 1. n a ijx j b i n a ijx j + s i = b i, s i 0. Den införda variablen s i kallas för slackvariabel. Slackvariabeln är ett mått på icke utnyttjade resurser.

2 LINJÄRPROGRAMMERINGENS FUNDAMENTALSATS 5 2. n a ijx j b i n a ijx j s i = b i, s i 0. 3. n a ijx j = b i n a ijx j b i och n a ijx j b i. 4. max i=1 c ix i = min i=1 ( c ix i ). Detta betyder att: maxz = c T x med bivillkor Ax b, x 0 är ekvivalent med miny = c T y med bivillkor Ay b, y 0. Alltså är Z = Y och x = y. 2 Linjärprogrammeringens fundamentalsats Sats 1 Antag att det tillåtna området X = {x ; Ax b, x 0} är begränsat och icke-tomt, dvs det finns en begränsad optimal lösning till LP-problemet. Då gäller att maxc T x och minc T x antas i (minst) en extrempunkt x (k) i X. För beviset behövs först några definitioner. Definition 1 En mängd X R n är konvex om X = {y ; y = λx (1) +(1 λ)x (2) X, x (1), x (2) X, 0 λ 1} X. I Figur 2 finns ett exempel på en konvex- och en icke-konvex mängd. konvex ej konvex Figur 2: Exempel på en konvex- och en icke-konvex mängd. Lemma 1 Det tillåtna området i ett LP-problem utgör en konvex mängd. Bevis: Tag två punkter x och y som båda är tillåtna map bivillkor i, dvs a ij x j b i, a ij y j b i.

2 LINJÄRPROGRAMMERINGENS FUNDAMENTALSATS 6 Betrakta en godtycklig punkt på linjen mellan x och y, dvs en punkt w = λx + (1 λ)y, 0 λ 1. Multiplicera första olikheten med λ och andra olikheten med 1 λ. = λ a ij x j +(1 λ) a ij y j λb i +(1 λ)b i = b i a ij (λx+(1 λ)y) b i. Detta betyder att även alla punkter w på linjen mellan x och y är tillåten map bivillkor i, vilket är definition på en konvex mängd. Definition 2 En konvex kombination av punkterna x (1), x (2),...,x (p) är en punkt sådan att p x = λ j x (j), p λ j = 1, λ j 0 för alla j. Definition 3 Punkten x (k) är en extrempunkt i X om x (k) ej kan skrivas som en strikt konvex kombination av två punkter i X, dvs givet x (1), x (2) X så gäller att x (k) = λx (1) +(1 λ)x (2) endast om x (1) = x (2) = x (k). Bevis av fundamentalsatsen: Antag motsatsen, dvs att x (inre punkt eller randpunkt) minimerar c T x och att ingen extrempunkt i X ger samma målfunktionsvärde, dvs, c T x < c T x (k), k = 1,...,p. Eftersom X är konvex kan x skrivas som p x = λ k x (k) där k=1 p λ k = 1, λ k 0 för alla k. k=1 = c T x = p λ k c T x (k) > k=1 p λ k c T x = c T x k=1 p λ k = c T x vilket är en motsägelse. Alltså kan vi dra slutsatsen att x måste vara en extrempunkt. k=1

2 LINJÄRPROGRAMMERINGENS FUNDAMENTALSATS 7 Grundläggande terminologi Ett LP-problem på standardform har formen maxz = c i x i (2) i=1 då a ij x j b i, i = 1,...,m x j 0, j = 1,...,n. I detta allmäna fall har vi alltså n beslutsvariabler samt m bivillkor. Här följer några definitioner Definition 4 Med en hörnpunktslösning till (2) menas en punkt där minst n bivillkor är uppfyllda med likhet. Definition 5 Med en tillåten hörnpunktslösning till (2) menas en punkt där samtliga bivillkor är uppfyllda, samt att minst n bivillkor är uppfyllda med likhet. Vi ska nu beskriva en metod som på ett systematiskt sätt söker efter optimum (om det existerar) till problem (2). Låt oss i fortsättningen antaga att problem (2) har en begränsad lösning. Intuitivt vore det en god idé att enbart söka i tillåtna hörnpunktslösningar eftersom vi vet att en lösning garanterat finns i en sådan enligt fundamentalsatsen. Detta är precis vad simplexalgoritmen gör. Algoritmen beskrivs enklast genom ett exempel. Betrakta följande exempel. Exempel 1: max Z = 3x 1 + 5x 2 då x 1 4 2x 2 12 3x 1 + 2x 2 18 x j 0 j. (3) Det skuggade området i figuren nedan utgöt det tillåtna området för (3). I figuren markerar ringarna hörnpunktslösningar. Låt oss skriva problemet i form av likheter i bivillkoren istället för olikheter. Detta görs genom att

2 LINJÄRPROGRAMMERINGENS FUNDAMENTALSATS 8 x 2 9 6 0 0 4 6 Figur 3: Tillåtet område. x 1 införa s.k. slackvariabler x 3, x 4 och x 5. max Z = 3x 1 + 5x 2 då x 1 + x 3 = 4 2x 2 + x 4 = 12 3x 1 + 2x 2 + x 5 = 18 x j 0 j. (4) En lösning till (3) kallas en hörnpunktslösning, medan en lösning till (4) kallas en baslösning. Skillnaden är att i en baslösning inkluderas värdena på slackvariablerna. T ex betyder x 3 = 0 att bivillkor 1 är aktivt, dvs uppfyllt med likhet. Vi är nu mogna för en definition av en baslösning. Låt n vara antal variabler, och m antal bivillkor i ett system på kanonisk form (likhet i bivillkoren). Definition 6 En baslösning till ekvationssystemet Ax = b erhålles om n m variabler sätts till 0 och resterande variabler får de unika värden då det kvarvarande (m m) ekvationssystemet löses. De variabler som sätts till noll kallas icke-bas variabler, medan resterande m variablerkallas bas variabler.ivårtexempeläralltsån = 5ochm = 3.Detta betyder att vi alltid kommer att ha 3 basvariabler, och 2 icke-basvariabler.

2 LINJÄRPROGRAMMERINGENS FUNDAMENTALSATS 9 Basbyten Antag att vi har hittat en tillåten lösning till ett LP-problem. Frågan är hur vi ska söka efter andra lösningar som resulterar i ett bättre målfunktionsvärde. Givet att vi står i en punkt, säg x 0, så är en idé att kontrollera vilken närliggande punkt till x 0 som ger den största förbättringen av målfunktionsvärdet och förflytta sig till denna. Vi upprepar förförandet genom att återigen förflytta oss till den närliggande punkt som ger den största förbättringen av målfunktionsvärdet. Till slut, då det inte finns någon närliggande hörnpunkt som ger ett bättre målfunktionsvärde har vi hittat optimum. Kan vi vara säkra på att detta förfaringssätt kommer att fungera? Ja, vi nöjer oss medatt konstateraatt; ärbaradettillåtna området konvextsåärdet säkert! Med ett basbyte menar vi att en basvariabel byts ut mot en icke-basvariabel. På detta sätt förflyttar vi oss till en närliggande hörnpunkt. Vi fortsätter nu vårt exempel. 0. Hitta en tillåten startpunkt: I ett LP-problem på standardform är alltid origo en tillåten lösning. Låt oss därför alltid ta origo som startlösning för enkelhets skull. Vi startar alltså i punkten x = (0,0,4,12,18). Detta är vår ingående baslösning. Notera att alla slackvariabler är basvariabler här eftersom alla ursprungliga variabler är satta till noll. 1. Testa optimalitet: Vi har målfunktionen Z = 3x 1 + 5x 2. För tillfället är både x 1 och x 2 icke-basbasvariabler, de har alltså värdet noll. Genom att låta antingen x 1 eller x 2 få ett postivt värde kan vi öka Z. Alltså har vi ej hittat optimum. 2. Basbyte: Gör ett basbyte, d v s byt ut exakt en basvariabel mot en icke-basvariabel. Ingående basvariabel: Vi väljer att låta x 2 få ett positivt värde eftersom Z ökar mest då. På detta sätt gör vi x 2 till en basvariabel. Utgående basvariabel: Vi vill öka den ingående basvariabeln så mycket som möjligt utan att hamna utanför det tillåtna området. Uttryck basvariablerna som funktion av icke-basvariablerna. Vi får x 3 = 4 (eftersom x 1 = 0) x 4 = 12 2x 2 0 x 2 6 minst x 5 = 18 2x 2 0 x 2 9.

2 LINJÄRPROGRAMMERINGENS FUNDAMENTALSATS 10 Alltså, vi kan öka x 2 till 6 utan att komma ur det tillåtna området. Då x 2 ökas till 6 så minskar samtidigt x 4 till 0, och därmed blir x 4 den utgående basvariabeln. 3. Gausselimination: Skriv om problemet på ny form så att vi lätt kan utföra en ny iteration. Tänk på att basvariablerna nu är x 2, x 3, och x 5. max Z 3x 1 5x 2 = 0 då x 1 + x 3 = 4 2x 2 + x 4 = 12 3x 1 + 2x 2 + x 5 = 18 x j 0 j. max Z 3x 1 + 5 2 x 4 = 30 då x 1 + x 3 = 4 x 2 + 1 2 x 4 = 6 3x 1 x 4 + x 5 = 6 x j 0 j. Märk hur lätt det nu är att se baslösningen x = (0,6,4,0,6). I figur 4 ses förflyttningen från x = (0,0,4,12,18) till punkten x = (0,6,4,0,6). x 2 6 0 0 4 x 1 Figur 4: Förflyttning från x = (0,0,4,12,18) till punkten x = (0,6,4,0,6). 1. Testa optimalitet: Vi har målfunktionen Z = 3x 1 5 2 x 4 +30. Vi kan fortfarande öka Z genom att öka x 1. Därför har optimum ej ännu uppnåtts.

3 SIMPLEXMETODEN I MATRISFORM 11 2. Basbyte: Ingående basvariabel: x 1 blir alltså ingående basvariabel. Utgående basvariabel: Uttryck basvariablerna som funktion av icke-basvariablerna. Vi får x 3 = 4 x 1 0 x 1 4 x 2 = 6 (eftersom x 4 = 0) x 5 = 6 3x 1 0 x 1 2 minst Detta betyder att x 5 får värdet 0 då x 1 ökas till 2. x 5 blir alltså utgående basvariabel. 3. Gausselimination: max Z 3x 1 + 5 2 x 4 = 30 då x 1 + x 3 = 4 x 2 + 1 2 x 4 = 6 3x 1 x 4 + x 5 = 6 x j 0 j. max Z 3x 1 + 3 2 x 4 + x 5 = 36 då x 3 + 1 3 x 4 1 3 x 5 = 2 x 2 + 1 2 x 4 = 6 x 1 1 3 x 4 + 1 3 x 5 = 2 x j 0 j. Här ses lätt att vi för tillfället befinner oss i punkten x = (2,6,2,0,0). 1. Testa optimalitet: Vi har målfunktionen Z = 3 2 x 4 x 5 + 36. Här ses att om vi ökar antingen x 4 eller x 5 från 0 till ett positivt värde, så kommer målfunktionsvärdet att försämras. Detta betyder att vi nått optimum. I figur 5 nedan syns alla förflyttningar (två stycken). 3 Simplexmetoden i matrisform Vi ska i detta avsnitt generalisera simplex algoritmen. Metoden kan ganska enkelt beskrivas algebraiskt, vilket är en fördel när man väl ska implementera algoritmen. Istället för att skilja på ursprungliga varibler och slackvariabler som i Hillier & Lieberman, så ska vi istället skilja på bas och ickebasvariabler. Detta ska visa sig vara smidigt då man vill avgöra om en baslösning är

3 SIMPLEXMETODEN I MATRISFORM 12 x 2 optimum 6 0 0 4 x 1 Figur 5: Förflyttning från x = (0,0,4,12,18) till x = (0,6,4,0,6), och slutligen till x = (2,6,2,0,0). optimal eller inte. Antag att vi har ett system på kanonisk form (kan fås genom att lägga till slackvariabler i standardproblemet), dvs Max Z = cx = c 1 x 1 +...+c n x n då Ax = b, x 0 (5) Här är c definierad som en radvektor medan x och b är kolonnvektorer. Vi benämner Z som målfunktionen och säger att x är en tillåten lösning då x L där L = {x R n ; Ax = b, x 0}. Idén är( att dela ) upp i basrespektive ickebasvariabler, dvs A = (B N) och x = x B x N. Här består B av kollonner i A som hör till basvariablerna och på motsvarande sätt för N. Påsamma sätt delas även c upp,c = (c B c N ). System (5) kan nuskrivas som Max Z = c B x B +c N x N då Bx B +Nx N = b, x B, x N 0. Bivillkoret i (6) kan enkelt skrivas som (B inverterbar) (6) x B = B 1 b B 1 Nx N. (7) Här har vi alltså uttryckt basvariablerna som funktion av ickebasvariablerna. Detta gör vi för att kunna uttrycka målfunktionen Z som funktion av endast

3 SIMPLEXMETODEN I MATRISFORM 13 ickebasvariablerna. Målfunktionen kan nu skrivas som Z = c B x B +c N x N = c B (B 1 b B 1 Nx N )+c N x N = c B B 1 b+(c N c B B 1 N) }{{} x N. (8) = c N Här ses tydligt att så länge det finns positiva element i c N så kan vi öka målfunktionen ytterliggare genom att låta motsvarande ickebasvariabel gå in som ny basvariabel. Uttrycket c B B 1 b är endast en konstant term som läggs till målfunktionen. Eftersom x N = 0 i extrempunkten så blir Z = c B B 1 b och x B = B 1 b. Vi kan nu sammanfatta resultaten i tabellform. Låt b beteckna högerledet. Ursprungligen har vi tabellen Z x B x N b 1 c B c N 0 0 B N b Enligt resonemangen ovan kan vi uttrycka målfunktionen och basvariabler som funktion av ickabasvariablerna i tabellform Z x B x N b 1 0 c B B 1 N c N c B B 1 b 0 I B 1 N B 1 b I raden för målfunktionen ser vi att c N återkommer fast med omvänt tecken. Alltså, så länge det finns negativa koefficienter i raden för målfunktionen så har vi inte nått den optimala lösningen. Exempel Betrakta följande maximeringsproblem max 3x 1 +4x 2 x 3 +2x 4 +x 5 då 2x 1 +x 2 2x 3 +4x 4 x 5 4 2x 1 +3x 2 +x 3 +2x 4 +x 5 8 x j 0 j. Lös problemet med simplex-algoritmen i matrisform. Ange den optimala baslösningen samt målfunktionens maximala värde.

3 SIMPLEXMETODEN I MATRISFORM 14 Lösning: Problemet skall lösas på matrisform och efter att ha infört slackvariablerna x 6 och x 7 som blir de initiala basvariablerna så får vi att c B = (0 0) = c B B 1 N c N = c N = ( 3 4 1 2 1). Iteration ( 1: ) Detta betyder att x 2 går in som ny basvariabel. Enligt uppgift 4 är b =. För att avgöra vilken variabel som ska lämna som basvariabel 8 gör vi divisionstestet. Eftersom b 1 /a 12 = 4 > b 2 /a 22 = 8/3 så ska x 7 lämna som basvariabel. De nya basvariablerna är alltså x B = (x 6 x 2 ) T och c B = (0 4). Det betyder att ( ) ( ) 1 1 B = = B 1 = 1 3 1, 0 3 3 0 1 samt att N = ( 2 2 4 1 0 2 1 2 1 1 ) (, c N = 3 1 2 1 0 ). Kontrollera optimalitet enligt c B B 1 N c N = 1 3 ( 1 7 2 1 4 ). Då det finns negativa element kvar i c B B 1 N c N så är lösningen inte optimal. x 1 blir den nya basvariablen. Iteration 2: Kom ihåg att vi har basvariablerna x B = (x 6 x 2 ) T i just den ordningen. En av dessa ska gå ut som basvariabel när x 1 går in, men vilken? Först måste vi uppdatera högerledet b till b och bivillkors-koefficienterna A 1 till à 1 för den ingående basvariabeln, se ekvation (7) (dessa koefficienter ändras klart när man utför Gausselimination). Vi får alltså ( )( ) ( ) Nytt högerled: b = B 1 b = 1 3 1 4 4/3 = 3 0 1 8 8/3 ( ) ( )( ) ( ã 11 Nya koeff. för x 1 : à 1 = = B 1 A 1 = 1 3 1 2 = ã 21 3 0 1 2 Enligt samma resonemang som tidigare så tar vi reda på vilken nuvarande basvariabel som begränsar x 1 :s ökning mest Ska x 6 gå ut? b1 /ã 11 = 4 3 /4 3 = 1 minst Ska x 2 gå ut? b2 /ã 21 = 8 3 /2 3 = 4. 4/3 2/3 )

3 SIMPLEXMETODEN I MATRISFORM 15 Alltså blir x 6 utgående variabel vilket betyder att ( ) ( 2 1 B = = B 1 = 1 3 1 2 3 4 2 2 ), c B = (3 4). ( ) 2 4 1 1 0 ( ) N =, c N = 1 2 1 0 0. 1 2 1 0 1 ( ) och att c B B 1 N c N = 1.75 1.5 0 0.25 1.25 vilket betyder att vi har nått optimum. Det optimala värdet ( är: ) z = c B B 1 b = 11, och den optimala baslösningen är: x B = 1 B 1 b =. 2 Det överlåtes åt läsaren att implementera simplex-algoritmen i Matlab. T ex: A=[2 1-2 4-1;2 3 1 2 1]; b=[4 8] ; c=[3 4-1 2 1]; [optbasevector,optbasevalues,optz] = simplexalg(a,b,c) ITERATION: 1 Ingående basvariabel: 2 Utgående basvariabel: 7 ITERATION: 2 Ingående basvariabel: 1 Utgående basvariabel: 6 Vi har nått optimal lösning, ÄNTLIGEN (som Fylking säger)! optbasevector = 1 2 optbasevalues =

3 SIMPLEXMETODEN I MATRISFORM 16 1 2 optz = 11