Optimering af New Zealands økonomi. Gruppe G3-115



Relaterede dokumenter
Optimering i Moderne Portefølje Teori

Emneopgave: Lineær- og kvadratisk programmering:

Noter til kursusgang 8, IMAT og IMATØ

Ugeseddel 12( )

2. Funktioner af to variable

Differentialregning Infinitesimalregning

Algebra INTRO. I kapitlet arbejdes med følgende centrale matematiske begreber:

LINEÆR OPTIMERING JESPER MICHAEL MØLLER. Resumé. Disse noter handler om dualitet i lineære optimeringsprogrammer.

Mat H /05 Note 2 10/11-04 Gerd Grubb

Substitutions- og indkomsteffekt ved prisændringer

G r u p p e G

Lineære ligningssystemer

P2-projektforslag Kombinatorik: grafteori og optimering.

Matematiske metoder - Opgaver

Potensrækker. Morten Grud Rasmussen november Definition 1 (Potensrække). En potensrække er en uendelig række på formen

MASO Uge 11. Lineær optimering. Jesper Michael Møller. Uge 46, Formålet med MASO. Department of Mathematics University of Copenhagen

Prøveeksamen december 2010 matematik studiet med svar

Højere Teknisk Eksamen maj Matematik A. Forberedelsesmateriale til 5 timers skriftlig prøve NY ORDNING. Undervisningsministeriet

Løsning af præmie- og ekstraopgave

Optimale konstruktioner - når naturen former. Opgaver. Opgaver og links, der knytter sig til artiklen om topologioptimering

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 8. Juni 2015

9.1 Egenværdier og egenvektorer

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

Lineær programmering. med Derive. Børge Jørgensen

Opgave 6. Opgave 7. Opgave 8. Peter Harremoës Mat A delprøve med hjælpemidler 15 december 2015

UGESEDDEL 10 LØSNINGER. = f

Gamle eksamensopgaver (MASO)

Differentialligninger. Ib Michelsen

Matematikprojekt Belysning

Matematik A. Højere handelseksamen. 1. Delprøve, uden hjælpemidler. Mandag den 20. december kl

Matematik A Delprøven uden hjælpemidler

Matematik A. Studentereksamen. Forberedelsesmateriale til de digitale eksamensopgaver med adgang til internettet

MATEMATIK A-NIVEAU-Net Forberedelsesmateriale

Chapter 5: Simplex metoden til løsning af LP. -> max problem alle uligheder af typen ì alle højresider ikke-negative alle variable ikke-negative

Undervisningsbeskrivelse

Lineær programmering. Maksimer c T u.b.b. A b hvor > 0. Vores metode er også nytteløs her. Ekstrema- teori og praksis

LINEÆR PROGRAMMERING I EXCEL

Matematik A-niveau STX 24. maj 2016 Delprøve 2 VUC Vestsjælland Syd.

Operationsanalyse 1 Obligatorisk opgave 2

LÆRERVEJLEDNING. Fattigdom og ulighed

Note om interior point metoder

Tjek. lønnen. Et værktøj til at undersøge ligeløn på arbejdspladser inden for det grønne område og transportsektoren udgave Varenr.

Eksempel på logistisk vækst med TI-Nspire CAS

Matematik C. Cirkler. Skrevet af Jacob Larsen 3.år HTX Slagelse Udgivet i samarbejde med Martin Gyde Poulsen 3.år HTX Slagelse.

Pointen med Differentiation

Besvarelser til Lineær Algebra og Calculus Globale Forretningssystemer Eksamen - 6. Juni 2016

π er irrationel Frank Nasser 10. december 2011

Talrækker. Aktivitet Emne Klassetrin Side

Lokalt ekstremum DiploMat 01905

Projekt Lineær programmering i to variable

Matematikken bag Parallel- og centralprojektion

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 3. Juni 2014

Opgaver hørende til undervisningsmateriale om Herons formel

Funktion af flere variable

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6

Matematik for økonomer 3. semester

Algebra - Teori og problemløsning

Epistel E2 Partiel differentiation

DesignMat Uge 11. Vektorrum

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

GUX Matematik Niveau B prøveform b Vejledende sæt 2

Matematisk argumentation

Vejledende opgavebesvarelse Økonomisk kandidateksamen 2006I 1. årsprøve, Økonomiske Principper I

IKKE-LINEÆR OPTIMERING

Det teknisk-naturvidenskabelige basisår Matematik 1A, Efterår 2005, Hold 3 Prøveopgave B

Undervisningsbeskrivelse. Stamoplysninger til brug ved prøver til gymnasiale uddannelser. Oversigt over gennemførte undervisningsforløb.

Vejledende Matematik A

Årsplan for Matematik 8. klasse 2011/2012

Matematik A, vejledende opgave 2, ny ordning. Vejledende løsninger, Peter B. Delprøven uden hjælpemidler. Opgave 1. a) A= 6x 2 +12xdx = 2x 3 + 6x 2 2

Kort gennemgang af Samfundsfaglig-, Naturvidenskabeligog

Opgaver til Kapitel 6 MatB

Indholdsfortegnelse. DUEK vejledning og vejleder Vejledning af unge på efterskole

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning

Introduktion til Laplace transformen (Noter skrevet af Nikolaj Hess-Nielsen sidst revideret marts 2013)

Mere om differentiabilitet

Bilag til AT-håndbog 2010/2011

GrundlÄggende variabelsammenhänge

3.1 Baser og dimension

Some like it HOT: Højere Ordens Tænkning med CAS

Matematik B. Højere handelseksamen

Kursusgang 3 Matrixalgebra Repetition

Besvarelser til Calculus Ordinær Eksamen Juni 2019

[FUNKTIONER] Hvornår kan vi kalde en sammenhæng en funktion, og hvilke egenskaber har disse i givet fald. Vers. 2.0

Besvarelse af Eksamensopgaver Juni 2005 i Matematik H1

Opgave 1 - løsning 1) De partielle afledede beregnes. Opgave 1 Betragt funktionen. x + y for x > 0, y > 0. f x = y 1 (x + y) 2.

Oversigt [LA] 6, 7, 8

Oversigt [LA] 1, 2, 3, [S] 9.1-3

f(x)=2x-1 Serie 1

MATEMATIK A-NIVEAU. Anders Jørgensen & Mark Kddafi. Vejledende eksempler på eksamensopgaver og eksamensopgaver i matematik, 2012

MATEMATIK. Formål for faget

Maple 11 - Chi-i-anden test

Egenskaber ved Krydsproduktet

Analytisk Geometri. Frank Nasser. 12. april 2011

Undervisningsbeskrivelse

Matematik A. Højere teknisk eksamen. Forberedelsesmateriale til prøverne i Matematik A

Peter Harremoës Mat A eksamen med hjælpemidler 15. december f (x) = 0. 2x + k 1 x = 0 2x 2 + k = 0 2x 2 = k x 2 = k 2. k 2.

Udledning af multiplikatoreffekten

Transkript:

Optimering af New Zealands økonomi Gruppe G3-115

Det Teknisk-Naturvidenskabelige Fakultet Matematik og Matematik-Økonomi Frederik bajersvej 7G Telefon 99409940 http://math.aau.dk Titel: Tema: Optimering af New Zealands økonomi Lineær Programmering, Lineær Algebra, Optimering, Simplex-algoritmen, Økonomi Projektperiode: Synopsis: 3. Semester, 2011 Matematik-Økonomi Projektgruppe: Gruppe G3-115 Deltagere: Kasper Enghoff Jensen Jens Højen Hans-Erik Thing Belinda Wieczorek Vejledere: Horia Cornean Oplagstal: 7 Sidetal: 57 Bilagsantal: 2 Dette 3. semesters projekt omhandler optimering, herunder lineær programmering. Der vil blive gennemgået, hvordan et lineært programmerings problem skal løses grafisk i R 2, og derudover vil der blive bevist en central sætning indenfor lineær programmering. Dernæst vil Simplex-algoritmen blive gennemgået; både teoretisk og med eksempel. Til sidst bliver Simplex-algoritmen anvendt på et udsnit af New Zealands økonomi, og ud fra dette resultat komme med et bud på, om resultat kan implementeres i New Zealand, eller om der skal ændres i selve betingelserne, for at et resultat kan anvendes i New Zealand på langt sigt. Afsluttet den 16. december 2011 Rapportens indhold er frit tilgængeligt, men offentliggørelse må kun ske efter aftale med forfatterne.

Forord Dette projekt er udarbejdet af gruppe G3-115 på Matematik-økonomistudiet, d. 2. september til d. 16. december 2011, ved Det Teknisk-Naturvidenskabelige Fakultet, Institut for Matematiske Fag ved Aalborg Universitet. Gruppen retter en særlig tak til vejleder Horia Cornean for det store engagement, han har udvist i projektforløbet. Denne rapport er lavet i samarbejde med Thomas Gøtke, men han har valgt at forlade Matematik-Økonomi studiet, og er derfor ikke en del af denne rapport. Referencer til ligninger er angivet i (), hvorimod referencer til kapitler, afsnit og figurer angives uden parenteser. Kilder bliver igennem projektet referet vha. []. Dette betyder at når der i teksten står [#], hvor # er et tal, så referer det til kilde nr. #, der er nævnt sidst i projektet. Her vil forfatterens navn, forlag, titel, samt udgivelsesår være angivet. Derudover vil der sidst i rapporten være at findes et appendix. Projektet er skrevet med tekstbehandlingssystemet L A TEX. Det forudsættes, at læseren har grundlæggende kendskab til lineær algebra og dets anvendelse, samt et en hvis økonomisk forståelse. Aalborg, 16. december 2011 Belinda Wieczorek Hans-Erik Thing Jens Højen Kasper Enghoff 3

Indhold 1 Indledning 7 2 Problemformulering 10 2.1 Problemafgrænsning......................... 10 3 Lineær programmering 12 3.1 En introduktion til lineær programmering............. 12 3.1.1 Objektfunktionen....................... 12 3.1.2 Bibetingelser......................... 12 3.1.3 Brugbar og begrænset løsningsmængde........... 13 3.2 Eksempel på opstilling af objektfunktion og bibetingelser..... 14 3.2.1 Problem 1: Den produktionsansvarlige optimerer...... 15 3.2.2 Problem 2: Den finansansvarlige minimerer......... 16 3.3 Præsentation af et lineært programmerings problem........ 17 3.4 Løsning ved brute-force og grafisk metode............. 20 3.4.1 Definitioner.......................... 20 3.5 Bevis for sætning (3.1)........................ 22 4 Simplex-algoritmen 29 4.1 Det kanoniske lineære programmerings problem.......... 29 4.2 Slackvariable............................. 30 4.3 Eksempel på en løsning vha. Simplex-algoritmen.......... 31 4.4 Uddybning af Simplex-algoritmen.................. 33 4.5 Grafisk illustration af Simplex-algoritmen.............. 36 4.5.1 En raffineret Simplex-algoritme............... 39 5 Optimering af New Zealands økonomi 40 5.1 Introduktion af kontekstuelle problem................ 40 5.2 Kanonisk opstilling af problem.................... 41 5.3 Anvendelse af Simplex-algoritmen.................. 42 6 Økonomisk fortolkning af resultat 45 6.1 Betydning af ingen investering (x 2 =0)................ 45 4

6.2 Betydning af ingen eksport (x 3 =0)................. 46 7 Ændring af variable 47 7.1 Ændring af bibetingelser....................... 47 7.2 Anvendelse af nye bibetingelser................... 49 8 Økonomisk fortolkning efter ændring i bibetingelser 51 8.1 Konsekvenser på kort sigt...................... 52 8.2 Konsekvenser på lang sigt...................... 53 9 Konklusion 55 5

Kapitel 1 Indledning Lineær programmering er en matematisk metode, der bestemmer en måde at opnå det bedste udfald i en problemstilling, som kan beskrives matematisk. En sådan problemstilling skal indeholde en liste af krav, der kan beskrives som lineære relationer. Typisk bruges lineær programmering indenfor en given mikroøkonomisk case. Formelt sagt er lineær programmering en metode, som har til formål at optimere en given lineær objektfunktion. Denne funktion er underlagt bibetingelser, der enten er skrevet som lineære ligheder eller uligheder. Til at løse disse problemstillinger kan Simplex-algoritmen bruges. Denne algoritme har til formål at finde frem til en optimal løsning, hvis en sådan findes. Historisk ses på tre personer, der har skabt grundlaget for lineær programmering. Den russiske matematiker Leonid Kantorovich, udformede det grundlæggende indenfor lineær programering i 1939. Matematikeren George Dantzig, udgav Simplex-algoritmen i 1947. Matematikeren John von Neumann, udformede teorien om det duale problem i samme år som Simplex-algoritmen blev udgivet. Ideen bag lineær programmering har været kendt længe før 1939. Det var dog først under 2. verdenskrig, at teorien for alvor blev taget i brug. Der ønskedes under 2. verdenskrig en metode, der kunne hjælpe med løsning af større og komplekse problemer, såsom planlægningen af hærens udgifter. Disse udgifter blev opstillet som lineære programmeringsproblemer, og Simplex-algoritmen blev taget i brug til at løse dette problem. Simplex-algoritmen blev hemmeligholdt indtil 1947, da den blev betragtet som et militærstrategisk værktøj, indtil Dantzig offentliggjorde teorien i samme år. 7

Dantzigs oprindelige problem bestod i at fordele 70 mennesker på 70 forskellige jobstillinger og samtidig opnå den bedst mulige løsning. Den oprindelige metode til at løse dette problem var at teste samtlige kombinationer, hvorefter den bedste fordeling blev udvalgt som løsning. Dette kunne hurtigt blive en tidskrævende affære. Hvis der i stedet blev gjort brug af lineær programmering, løst vha. Simplex-algoritmen, ville problemet blive forholdsvis hurtigt løst. Da 2. verdenskrig endelig var overstået, fandt mange industrier nytte i Simplexalgoritmen, da der nu var bedre mulighed for at optimere de forskellige problemstillinger i virksomhederne. Simplex-algoritmen er et værktøj, der kan bl.a. bruges til at maksimere indtjening eller minimere omkostninger i forhold til en række restriktioner. [6] I denne rapport vil der blive taget udgangspunkt i en makroøkonomisk problemstilling. Når der arbejdes med en makroøkonomiske problemstilling, rettes fokus mod et lands økonomi. I rapporten arbejdes der ud fra et udsnit af New Zealands økonomi, hvor problemstillingen er et maksimeringsproblem. Der vil blive gennemgået 3 løsningsmetoder indenfor lineær programmering: Brute-force Grafisk metode Simplex-algoritmen Løsning til New Zealands økonomi er ikke løst ved grafisk metode, da det ikke er muligt at tegne domænet, fordi der arbejdes i R n, n > 3. De 2 første løsningsmetoder vil blive gennemgået ud fra et mikroøkonomisk eksempel. Kapitel 3 er en introduktion til lineær programmering, hvor objektfunktion, bibetingelser og opstilling af et lineært programmerings problem gennemgås. Derudover løses et mikroøkonomisk eksempel ved brute-force og dernæst løses det samme mikroøkonomisk eksempel grafisk metode. Det vil i dette kapitel blive bevist, at en optimal løsning til et givet lineært programmeringsproblem, altid grafisk vil befinde sig i et hjørnepunkt. Kapitel 4 er en introduktion til Simplex-algoritmen, og hvordan den bruges til at løse et lineært programmeringsproblem. Der vil blive givet eksempler på, hvorledes algoritmen arbejder, samt en dybdegående beskrivelse af hvorfor de forskellige skridt i algoritmen foretages. Kapitel 5 omhandler opstilling og løsning af det kontekstuelle problem. Simplexalgoritmen anvendes ved løsning af problemet. Kapitel 6 er en økonomisk fortolkning af det fundne resultalt i kapitel 5. Kapitel 7 beskriver, hvorledes variable og bibetingelser ændres, så et mere anvendeligt resultat fremkommer ved gennemløb af Simplex-algoritmen. 8

Kapitel 8 er en diskussion af det fundne resultat, såvel før som efter ændring af variable og bibetingelser, samt en diskussion af konsekvenser ved anvendelse af resultat set på kort og lang sigt. 9

Kapitel 2 Problemformulering Denne afhandling vil rette sit fokus mod Simplex-algoritmen og dets anvendelse i økonomiske sammenhænge. Med udgangspunkt i rapporten om New Zealands økonomi, [8], konstrueres et matematik-økonomisk problem, som løses matematisk og fortolkes økonomisk. Den nødvendige teori som danner baggrund for brugen af Simplex-algoritmen, beskrives undervejs. Dette leder frem til følgende hovedspørgsmål: Er det muligt at optimere et udsnit af New Zealands økonomi ved hjælp af Simplex-algoritmen? For at kunne besvare dette hovedspørgsmål, rejses følgende underspørgsmål: Hvad er Lineær Programmering? Hvordan virker Simplex-algoritmen? Er løsningen fra Simplex-algoritmen anvendelig for New Zealand? Er løsningen fordelagtig? 2.1 Problemafgrænsning I den originale rapport omhandlende New Zealands økonomi, blev resultatet produceret ud fra 5 sektorer. I dette projekt vil der kun blive regnet med én sektor, idet at 5 sektorer er for komplekst at regne med på nuværende tidspunkt. Eksempelvis er variablen e ij ([8], side 10) fjernet fra bibetingelserne, da denne variabel er afhængig af 2 sektorer, og derved uden for projektets rammer. Aktiviteter sættes ligeledes lig 1, grundet samme argument. Det antages at New Zealand er et lukket land over for immigration og emmigration. Eksport og import er tilladt. 10

I kapitel 3 gennemgåes, hvordan et lineært programmerings problem kan løses grafisk R 2, men der vil ikke blive gennemgået detaljeret, hvordan et lineært programmerings problem løses i R 3. Indenfor lineær programmering betragtes duale problemstillinger. Dette vil ikke blive anvendt i denne rapport. Det vides ikke hvilken økonomisk situation, New Zealand befinder sig i. 11

Kapitel 3 Lineær programmering 3.1 En introduktion til lineær programmering Denne afhandling vil primært omhandle emnet lineær programmering. Det følgende kapitel er baseret på [1]. Lineær programmering er ikke, som navnet ellers kunne antyde, kun forbeholdt et problem indenfor IT. Programmering i denne forstand, betyder at et problem programmeres eller defineres matematisk. Typiske problemer indenfor lineær programmering er maksimeringsog minimeringsproblemer. Først programmeres en objektfunktion, samt nogle tilhørende bibetingelser indeholdende en række restriktioner. Først vil rapporten gennemgå det mest basale indenfor lineær programmering, og dernæst vil der blive givet et eksempel. 3.1.1 Objektfunktionen Målet med lineær programmering er altid at maksimere eller minimere en given lineær funktion. Denne funktion kaldes en objektfunktion, og kan generelt skrives på formen: Z = c 1 x 1 + c 2 x 2 +... c n x n. c j, j = 1, 2,, n er konstanter, og x j, j = 1, 2,, n er variable. Hvis der kigges på et mikroøkonomisk eksempel, hvor der skal maksimeres, er c j typisk den profit, der fås ved hvert x j, hvor x j betegner den mængde, der skal optimeres. 3.1.2 Bibetingelser Når der arbejdes med lineær programmering anvendes bibetingelser. Disse anvendes til at begrænse løsningsmængden. I alle tilfælde ved lineær programmering 12

består bibetingelserne af: og a 1 x 1 + a 2 x 2 + + a n x n = b (3.2) x j > 0, j = 1, 2,, n (3.3) Ligning (3.2) er forskellig fra problem til problem, hvordan disse bibetingelser udformes. Dette afhænger af, hvad der skal optimeres. Hvis der kigges på (3.3), er denne begrænsning logisk. Her benyttes et mikroøkonomisk eksempel til illustrere dette. Antag, at en virksomhed skal optimere deres produktion, hvor x j betegner de pågældende varer, der skal optimeres. Hvis x j < 0, ville det betyde, at virksomheden skulle producere negativ, hvilket ikke kan på nogen måde lade sig gøre. Derfor er x j > 0. I afsnit 3.2 følgende afsnit gennemgåes et eksempel, hvor en virksomhed skal opstille en objektfunktion og tilhørende bibetingelser. 3.1.3 Brugbar og begrænset løsningsmængde I alle tilfælde er det en fordel indenfor lineær programmering at vide, om en given løsningsmængde er brugbar og begrænset. I dette projekt vil der ikke blive givet en generel matematisk metode til at undersøge om, en given løsningsmængde er brugbar eller begrænset. Der vil blive givet en mulig fremgangsmetode, dog findes der tilfælde, hvor denne metode ikke fungerer. Definitionen på en brugbar løsning er som følger: 3.1 Definition En brugbar løsning er en løsning til et problem, der opfylder at samtlige bibetingelser er opfyldt. Mængden af disse løsninger er problemets løsningsmængde. For at undersøge om løsningsmængden er brugbar, tilskrives alle variable i bibetingelserne værdien 0, og der undersøges om ulighederne stadig er gældende. Hvis dette er tilfældet, har løsningsmængden mindst en brugbar løsning; mere præcist i punktet orego. Ligeledes må b-værdierne ikke være negative, ellers er sættet ikke brugbart. Deruderover undersøges det, om løsningsmængden er begrænset: 13

3.2 Definition En løsningsmængde M er begrænset, hvis og kun hvis M opfylder, at den dels er brugbar og er indeholdt i en cirkel med centrum i orego. For at undersøge om løsningsmængden er begrænset, isoleres hver variabel i bibetingelserne, og der ses hvordan den enkelte variabel er begrænset af de andre. Et mere formelt eksempel findes i kapitel 5.3. 3.2 Eksempel på opstilling af objektfunktion og bibetingelser For læsbarhedens og forståelsens skyld inddrages et eksempel med et fiktivt firma. Dette firma kaldes Linear-Programming-productions, fremover LPP. LPP producerer en række produkter n j, j = 1, 2,..., n. Til disse produkter kræves forskellige råmaterialer. Det antages, at der kræves 1, 2,..., m forskellige råmaterialer. Understående er en tabel, der beskriver de forskellige betegnelser, der bruges i dette kapitel Betegnelse n n j m m i b i v i a ij s j w i c j y i Beskrivelse Antal forskellige produkter Et bestemt produkt Antal af forskellige råmaterialer Et bestemt råmateriale Enheder af råmateriale m i på lager Pris på en enhed af råmateriale m i Enheder af m i, der kræves for at producere n j Pris firmaet sætter for produkt n j Den tilskrevne værdi af det i te råmateriale Nettofortjeneste ved salg af råvare j Mark-up af råmateriale i Tabel 3.1: Betegnelser Da markedet hele tiden ændrer sig, ses der på et bestemt arbitrært tidspunkt i LPP, for at give et nogenlunde realistisk og kort billede af lineær programmering. På dette tidspunkt har LPP, for hvert råmateriale m i, en kendt mængde på lager. Denne mængde noteres b i, og prisen på en enhed af hvert af disse råmaterialer 14

noteres med v i. Til hvert produkt kræves der en kendt mængde råmateriale; for at producere en enhed af produkt n j kræves der a ij enheder af råmateriale m i. Produkt n j kan herefter sælges for s j pr. enhed. Det antages, at LPP er et relativt lille selskab, hvis handlinger hverken påvirker markedsprisen på råmaterialer eller prisen på dets egne varer. Der ses på to forskellige lineære programmeringsproblemer. Ét, hvor den produktionsansvarlige skal optimere en produktion, og ét hvor den finansansvarlige skal minimere omkostninger. 3.2.1 Problem 1: Den produktionsansvarlige optimerer Det første problem tilhører den produktionsansvarlige manager. Han fungerer som optimist, og prøver dermed hele tiden at optimere produktionen. En af hans opgaver er at beregne, hvordan firmaets råmaterialer bedst udnyttes. Det antages, at han beslutter, at der skal produceres n j enheder af det j te produkt (j = 1, 2,..., n), baseret på efterspørgslen efter det j te produkt. Det antages, at efterspørgslen er større end udbuddet, så det producerede er muligt at afsætte. Indtægt på produkt j er som ovenfor nævnt s j 3.1. Prisen på råmaterialer skal naturligvis også medregnes. Prisen for at producere n j er m i=1 v ia ij. Altså, en sum af prisen på råmateriale v i ganget med hvor meget der bruges af dette råmateriale a ij. Differensen mellem salgspris og produktionsomkostninger spiller naturligvis en stor rolle i dette lineære programmeringsproblem, derfor tildeles dette en enhed, ved at sætte c j = s j m v i a ij, j = 1, 2,..., n (3.4) i=1 Dermed bliver nettofortjenesten ved produktionen af et antal enheder af det n j te produkt: n n j c j (3.5) j=1 Det er den produktionsansvarliges opgave at maksimere denne. Det er dog åbenlyst, at der er nogle begrænsninger; for eksempel kan n j ikke være negativ: n j 0, j = 1, 2,..., n (3.6) Derudover er råmaterialerne også en begrænsning, da der selvsagt ikke kan produceres yderligere, hvis råmaterialerne slipper op. Mængden af råmaterialer i, der forbruges i en given produktionsplan er n j=1 a ijn j, derfor må den produktionsansvarlige underlægge produktionen følgende begrænsning: n a ij n j b i, i = 1, 2, 3,...m (3.7) j=1 15

Kort sagt, er det den produktionsansvarliges opgave at fastsætte værdier for n j, således at (3.4) maksimeres. (3.4) er dog underlagt begrænsningerne givet i (3.6) og (3.7). Problemet er selvsagt et optimeringsproblem, og et godt eksempel på et lineært programmeringsproblem. Dette problem er ofte kaldet et ressourceallokeringsproblem. 3.2.2 Problem 2: Den finansansvarlige minimerer På et andet kontor i LPP sidder den finansansvarlige. Han kan betegnes som pessimist, da hans opgave er at minimere omkostningerne for LPP. Hans problem, blandt andre, er at fastsætte den pengemæssigeværdi af de råmaterialer, firmaet har på lager. Disse værdier er med til at fastsætte lagerværdien. F.eks. skal LPP være villig til at sælge dets råmaterialer, skulle et udefrakommende firma tilbyde at købe disse varer til den værdi, som den finansansvarlige fastsætter. Som ovenfor anført i 3.1, betegner w i den tilskrevne pris på det i te råmateriale. Det er disse værdier den finansansvarlige skal bestemme. Når en vare har en pris større end markedsværdien, og denne ligger på lager i stedet for at blive solgt til denne pris, kan der tales om en offeromkostning ; altså omkostningen ved at have råmaterialet liggende på lageret, fremfor at sælge det til en værdi over markedsprisen. Det økonomiske tab ved at have b i enheder af råvare i på lager, bliver dermed b i w i. Da LPP har flere forskellige typer af råmatrialer, bliver den samlede offeromkostning ved at have b antal af vare i på lager: m b i w i (3.8) i=1 Det er den finansansvarliges opgave at minimere denne offeromkostning. Dog er der nogle restriktioner på, hvilken værdi et råmateriale i kan tilskrives. Hvert råmateriale må ikke tilskrives en værdi under markedsprisen, da dette vil modsige at v i er markedsprisen. w i v i, i = 1, 2,..., m. (3.9) På samme måde, skal samtlige råmaterialer der forbruges til at producere produkt j, tilskrives en lagerværdi højere end salgsprisen på dette produkt. m w i a ij s j j = 1, 2,..., n (3.10) i=1 For at se hvorfor, kan det antages at den modsatte ulighed holder. Dermed ville et udefra kommende firma være i stand til at købe råmaterialer fra LPP, fremstille produkt j, og sælge det til en lavere pris end LPP er i stand til. Dette er en modsigelse, da det er antaget, at firmaet ikke kan ændre markedsprisen med dets 16

handlinger. Minimeringen af (3.8), underlagt begrænsningerne givet af (3.9) og (3.10), er et lineært programmeringsproblem. y i sættes til den værdi, som den finansansvarlige tilskriver en vare. y i = w i v i, i = 1, 2,..., m. Skulle LPP ønske at være mellemhandler og sælge dets råmaterialer tilbage til markedet, skal dette naturligvis gøres med en pris højere end indkøbsprisen. y i, eller markup-værdien, er stigningen i enhedsværdien af råmateriale i. Denne værdi er ikke negativ. Minimeringsproblemet kan dermed skrives som: m b i y i Underlagt bibetingelsen, givet ved markupværdien og nettofortjenesten. i=1 samt m y i a ij c j, j = 1, 2,..., n. i=1 y i 0, i = 1, 2,..., m. I det følgende kapitel gennemgåes, hvordan en lineært problem skal opstilles rent matematisk, samt eksempler på lineær programmeringer, der ikke har en løsning. 3.3 Præsentation af et lineært programmerings problem Følgende sektion er baseret på [2, Afsnit 9.2] I dette afsnit vil der blive gennemgået, hvordan den matematiske opstilling af et lineært programmerings problem formuleres. Denne opstilling vil blive anvendt gennem resten af projektet. Den generelle form ser således ud: 17

Maksimer c 1 x 1 + c 2 x 2 + + c n x n Under bibetingelser a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2. a m1 x 1 + a m2 x 2 + + a mn x n b m x 1, x 2,, x n 0. (3.15) Dette er standardformen. m betegner antallet af begrænsninger, og n betegner antallet af beslutningsvariable. Et forslag til beslutningsvariable med specifikke værdier kaldes en løsning. Denne løsning er brugbar, hvis og kun hvis, den opfylder alle begrænsninger. Hvis løsningen er fundet ved den højeste maksimumsværdi, er løsningen optimal. Nogle lineære programmerings problemer er ikke-løselige. Følgende er et eksempel, hvor ingen løsning eksisterer: Maksimer 5x 1 + 4x 2 Under bibetingelser x 1 + x 2 2 2x 1 2x 2 9 x 1 + x 2 4, 5 x 1, x 2 0 Det er trivielt, at første og anden bibetingelse er modstridende. Dette er et ikkeløseligt lineært programmerings problem, da bibetingelserne er umulige at opfylde. En anden type af ikke-løselige lineære programmerings problemer, er problemer med uendeligt mange løsninger. Den brugbare løsningsmængde for et lineært programmerings problem, er ikke begrænset, hvis der findes en brugbar løsning af vilrkårligt store værdier. Nedenstående illustrerer: Antag: 18

Maksimer x 1 4x 2 Under bibetingelser 2x 1 + x 2 1 x 1 2x 2 2 x 1, x 2 0 Her sættes x 2 til at være 0, og x 1 sættes til at være en vilkårlig værdi større end 2. Så længe 2 x 1, er ligningen løst. En optimal løsning kan ikke findes, idet x 1 kan være uendelig stor, hvilket medfører at funktionsværdien ligeledes bliver uendelig. Et problem som dette kaldes et ubegrænset problem. Hyperplaner og konvekse mængder Når lineær programmering anvendes på eksempelvis et maksimeringsproblem bestående af n variable, kan problemets løsningsmængde, hvis en sådan findes og er begrænset, afbildedes i R n. 3.3 Definition Et hyperplan er et lineært underrum af dimension n 1 i R n, der deler det n-dimensionale rum i 2. Et hyperplan kan beskrives af en lineær ligning. En konveks mængde er en mængde, der tilfredsstiller følgende definition: 3.4 Definition En delmængde E af R n siges at være konveks, hvis og kun hvis en linie L(x; a) E for alle x, a E. Hvis en linie L mellem alle par af punkter i E er indeholdt i E, siges mængden at være konveks. Et konvekst polyhedron er altså dermed en figur i R n, hvor ovenstående definition gælder. Det er hyperplaner, der afgrænser dette polyhedron. Figur 3.1 illustrerer, hvordan hyperplaner afgrænser en løsningsmængde: Det næste afsnit viser to løsningsmetoder til et givet lineært programmerings problem. 19

Figur 3.1: Illustration af løsningsmængde i R 3 3.4 Løsning ved brute-force og grafisk metode Dette afsnit er baseret på kilde [3] Når der arbejdes med lineær programmering i R 2 og R 3, kan der findes en optimal løsning ved at løse maksimerings eller minimerings problemet grafisk. Dette grundes følgende sætning: 3.1 Sætning Hvis den brugbare mængde F, så er den brugbare mængde domænet, som er begrænset af alle hyperplaner. Da F er kontinuert og kompakt, findes der mindst én max værdi. Fordi der arbejdes med hyperplaner, findes max i et hjørnepunkt i R n. Før sætning 3.1 kan bevises, er det nødvendigt at indføre nogle definitioner. 3.4.1 Definitioner I dette afsnit defineres nogle matematiske udtryk. Følgende er baseret på [3]. Bolde 3.5 Definition Lad a X og r > 0. X og ρ er metriske rum Den åbne bold (i X) med centrum a og radius r, er sættet 20

B r (a):={x X : ρ(x, a) < r}, og den lukkede bold (i X) med centrum a og radius r, er sættet B r (a):={x X : ρ(x, a) r}, Globalt maksimum 3.6 Definition Betragt R n ; f er defineret på en delmængde af R n med reelle værdier. En funktion af n variable har et globalt maksimum i punktet (a 1, a 2,..., a n ), hvorom det gælder, at f(a 1, a 2,..., a n ) f(x 1, x 2,..., x n ) for alle (x 1, x 2,..., x n ) Gradient 3.7 Definition Gradienten af en skalarfunktion f(x 1, x 2...x n ) er betegnet med notationen f. beskriver differentialoperatoren. Gradienten af f er defineret som vektorrummet hvis komponenter er de partielle afledede af f: ( f f =,..., f ) x 1 x 1 Her er gradienten en rækkevektor, men kan ofte være noteret som en søjlevektor. Lokalt maksimum på en åben mængde 21

3.8 Definition Lad V være et åbent interval i R n, lad a V, og antag at f : V R. i) f(a) kaldes et lokalt minimum i f, hvis og kun hvis der eksisterer et r > 0 således at f(a) f(x) for alle x B r (a). ii) f(a) kaldes et lokalt maksimum i f, hvis og kun hvis der eksisterer et r > 0 således at f(a) f(x) for alle x B r (a). iii) f(a) kaldes et lokalt ekstremum i f, hvis og kun hvis f(a) er et lokalt maksimum eller et lokalt minimum. 3.5 Bevis for sætning (3.1) Bevis Lad D n R n og a,..., z R n. Der vil findes maksimum for f : D n R hvor D n := x R n : a x c 1 b x c2. z x c z, og 0 / { a, b,..., z} som er enhedsvektorer og 1 n z Randen defineres som følgende: f( x) = A x + B, A = [A 1, A 2,..., A n ], B R D n 1 := { x R n : Mindst en af ulighederne fra D n, er en lighed} Ud fra dette, kan D n omskrives: D n = D n 1 { x R n : a x < c 1,, z x < c z } 3.2 Lemma Den indre del af D n noters med D n. Vi har at: { x R n : a x < c 1,, z x < c z } = D n. Bevis Det skal vises, at alle punkter tilhørende D n, hvor skarpe uligheder gælder, er indre punkter. 22

Tag ɛ = 1 2 min {c j a j x j } Et punkt w ligger indenfor en r af x, hvis det gælder at: B r (x) = { w R n : w x < r} Det skal nu vises, at B ε (x) D n, når x D n. Ligeledes skal det vises, at er vilkårligt punkt i B ε (x) også opfylder lighederne. Da x D n opfylder x: x a < c 1,, x z < c z For alle w R n, hvor w x < ε. Så vides det at w a < c 1,, w z < c z. Der kigges på ( w x a) w a = ( w v + v) a = ( w x) a + x a ( w x) a ( w x) a w x a = w x < ε 1 2 (c 1 x a) ( w x) a + x a < 1 2 c 1 1 x a + v a 2 w a < 1 2 c 1 + 1 2 a x < c 1 Da w x < ε ligger det vilkårlige punkt w i B ε (x). Da w a < c 1 er B ε (x) D n Det undersøges nu, om maksimum af f taget på D n er lig maksimum taget på D n 1. Dette gøres ved at indføre lemma 3.3. 3.3 Lemma Max{f(x) x Dn } = Max{f(x) x Dn 1 } Bevis Antag: Max{f(x) x Dn } > Max{f(x) x Dn 1 } Det vil sige, at punktet x m, hvori maksimum findes, må nødvendigvis findes i Dn. Altså er x m et indre punkt i D n og et globalt maksimum. Da x m er et lokalt maksimum på en åben mængde, så gælder det at f(x m ) = 0. I følge definition 11.50 [3, side 435] kaldes f(x m ) et lokalt maksimum, hvis og kun hvis der eksisterer en kugle med radius r, med centrum i x m, således at f(x m ) f(x) for alle x B r (x m ). 23

Da f er en lineær funktion, og f(x m ) = 0, så er f en konstant funktion jf. ovenstående. Dette er en modstrid med antagelsen. Hvis f(x m ) = A 0, så er f enten en voksende eller aftagende funktion. Dermed er max{f(x) x Dn } < max{f(x) x Dn 1 } = maxf(x) x Dn hvilket er en modstrid. Det skal nu bevises, at Her noteres Hvor og Max{f(x) x Dn 1 } = Max{f(x) x Dn 2 } D n 2 := { x R n : Mindst to uligheder er ligheder D n 1 } D n 1 = D n 2 { x R n : Netop én ulighed er en lighed} D n 1 kan nu omskrives til: { x R n : Netop én ulighed er en lighed} := D n 1 { x R n : a x = c 1, b x < c 2,, z x < c z } { x R n : a x < c 1, b x = c 2,, z x < c z }... 3.4 Lemma... { x R n : a x < c 1, b x < c 2,, z x = c z } Bevis Antag Max{f(x) x Dn 1 } = Max{f(x) x Dn 2 } Max{f(x) x Dn 2 } < Max{f(x) x Dn 1 } Det vil sige at punktet x m, hvori maksimum findes, nødvendigvis må ligge i Dn 1. Grundet samme argumentation i 3.3 er x m et globalt maksimum i Dn 1. Lad planet G betegne et hyperplan, hvor det gælder at G = x m { x R n : a x = c 1, b x < c 2,, z x < c z } 24

x m { x = t 1 x 1 + t 2 x 2 + + t n 1 x n 1 + c, hvor t 1, t 2,, t n 1 R n 1 og x 1, x 2,, x n 1 er basisvektorer, der udspænder planet G} Funktionen f beskrives på planet G. f G ( t) = A (t 1 x 1 + t 2 x 2 + + t n 1 x n 1 + c) + B Betragt: = t 1 ( A v 1 ) + t 2 ( A v 2 ) + + t n 1 ( A v n 1 ) + A c + B A V 1 0 t f A V 2 g ( t) =. 0. A 0 V n 1 Hvis og kun hvis t f g ( t) = B. Det vil sige, at f er en konstant funktion. Betragt: A V 1 t f A V 2 g ( t) =. 0 A V n 1 hvis og kun hvis t f g ( t) B. Det vil sige, at f ikke er en konstant funktion. Begge tilfælde er i modstrid med antagelsen, da det følger af begge mulige tilfælde at det nødvendigvis må gælde at Max{f(x) x Dn 1 } = Max{f(x) x Dn 2 }. Det er nu vist at domænet D n = { x R n : mindst n-n uligheder er ligheder}, kan skrives som D n = D n Dn 1. Dette gælder også partikulært for D n = { x R n : mindst n-1 uligheder er ligheder}, hvor D 1 = D 1 D0 og D 0 = { x R n : mindst n-0 uligheder er ligheder}. Det er vist at Max{f(x) x Dn 1 } = Max{f(x) x Dn 2 }, hvilket partikulært for D 1 betyder at Max{f(x) x D1 } = Max{f(x) x D0 }. Det kan konkluderes at Max{f(x) x Dn } = Max{f(x) x D0 }. Maksimum er fundet, når mindst n uligheder er ligheder. Sætning 3.1 medfører, at ved at sammenligne værdien i for objektfunktionen ved hvert hjørnepunkt i F, findes der en optimal løsning ved at vælge punktet med størst værdi. Denne metode kaldes Brute-force. Hvis det er muligt at tegne det lineære programmerings problem, ses det hurtigt, om sættet er brugbart og begrænset. For at illustrere dette ses på følgende maksimeringsproblem: 25

Maksimer f(x 1, x 2 ) = 2x 1 + 3x 2 u.b.b. x 1 30 (3.8) x 2 20 (3.9) x 1 + 2x 2 54 (3.10) x 1, x 2 0 Brute-force Ses der på figuren 3.2, er den brugbare løsning vist i det skraverede område, hvilket er opnået ved at indtegne begrænsningerne. Det fremgår, at grafen har fem hjørnepunkter svarende til de fem punkter i den brugbare løsning. Hjørnepunkterne findes ved at løse et passende antal lineære ligninger ved at isolere den enkelte variabel. For eksempel findes hjørnepunktet (30, 12) ved at løse ligningen x 1 + 2x 2 54 hvor x 1 = 30, da x 1 ikke kan antage en større værdi end 30. Ud fra denne begrænsning af x 1, skal variablen x 2 bestemmes. Dette gøres ved at løse ligningen 30 + 2x 2 54. Først sættes x 2 = 0, og dette giver 30+0=30. Dernæst findes maksimumsværdien af x 2 når 30 + 2x 2 54. Her bliver x 2 = 12, og det ses, at værdien i objektfunktionen bliver 96. Denne fremgangsmetode forsættes for samtlige hjørnepunkter, og der hvor objektfunktionen har den største værdi, findes maksimum. Tabellen nedenfor viser værdierne for objektfunktionen i hvert hjørnepunkt. Det kan her observeres, at maksimum er 96, når x 1 = 30 og x 2 = 12 (x 1, x 2 ) 2x 1 + 3x 2 (0, 0) 0 (30, 0) 60 (30, 12) 96 (14, 20) 88 (0, 20) 60 26

Figur 3.2: Illustration af løsningsmængde Grafisk metode En anden metode til at løse problemet er den grafiske metode. Denne fremgangsmåde anvender niveaulinjer til at finde maksimum. Niveaulinjen findes ud fra objektfunktionen ved at parametisere objektfunktionen. Beregnes normalvektoren til niveaulinjen, angiver normalvektoren hvilken retning, niveaulinjen skal parallelforskydes. Dette gøres for at finde hjørnepunktet, hvori maksimum eller minimum findes. I specielle tilfælde hænder det, at linien for opjektfunktionen og en bibetingelse er paralelle. I et sådan tilfælde gælder følgende: Hvis normalvektoren tilhørende niveaulinjen er ortogonal på en linie givet ved en bibetingelse, så er der maksimum eller minimum i de 2 hjørnepunkter. Disse niveaulinjer er parallelle og objektfunktionen har en konstant værdi på hver linje (se figur 3.3). Værdierne af objektfunktionen f(x 1, x 2 ) vokser når (x 1, x 2 ) flyttes mod højre i normalvektorens retning, da normalvektoren anviser denne retning i dette eksempel. Niveaulinjen i dette eksempel bestemmes således: Objektfunktionen 2x 1 + 3x 2 parametiseres: v := [ x1 x 2 ] [ 1 = s 2 3 ] + [ 0 0 ] Dette er niveaulinjen. Normalvektoren bestemmes ud fra gældende ligning v n = 0 Derved bliver normalvektoren: n = [ 1 3 2 ] (3.10) 27

Niveaulinjen længst til højre som stadig skærer den brugbare løsning er linjen gennem punktet (30, 12). Det vil sige punktet (30, 12) giver maksimumsværdien af f(x 1, x 2 ) i den brugbare mængde. Figur 3.3: Illustration af niveaulinjer i eksempel Denne fremgangsmetode er dog kun mulig at arbejde med i R 2 og R 3. Anvendelse af grafisk metode, vil ikke blive gennemgået yderligere i dette projekt. Lineær programmering kan også anvendes i rum med dimensionen højere end 3. Til dette anvendes Simplex-algoritmen. 28

Kapitel 4 Simplex-algoritmen 4.1 Det kanoniske lineære programmerings problem Det kanoniske lineære programmerings problem anvendes i forhold til Simplexalgoritmen til opbygningen af et maksimeringsproblem. 4.1 Definition b 1 Givet b =. b m i R m, c = c 1. c n i R n og givet er en m n matrix, A= [a ij ], da opstilles det kanoniske lineære programmerings problem således: x 1 Find en n-liste x=. x n f(x 1,..., x n ) = c 1 x 1 + c 2 x 2 +... + c n x n Under bibetingelser i R n til at maksimere objektfunktionen a 11 x 1 + a 12 x 2 +... + a 1n x n b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n b 2. 29

a m1 x 1 + a m2 x 2 +... + a mn x n b m og x j 0 for j = 1,..., n Dette kan omskrives til en matrix-vektor notation, hvilket skrives som: Maksimer f( x) = c T x Under bibetingelser A x b og x 0 (4.1) Hver vektor x, der opfylder (4.1), kaldes en brugbar løsning. Mængden af alle brugbare løsninger, betegnet F, kaldes den brugbare mængde. En vektor x i F er en optimal løsning, hvis F ( x) = max x F f( x) Denne opstilling er nødvendig i forhold til at anvende Simplex-algoritmen. Derudover er det nødvendigt at definere slackvariable, da sådanne anvendes i Simplexalgoritmen. 4.2 Slackvariable Ved løsning af et givet optimeringsproblem ved brug af Simplex-algoritmen er det nødvendigt at tilføje slackvariable i de tilfælde, hvor bibetingelserne er uligheder, således de ændres til ligheder. Slackvariablen, der indsættes i uligheden, er forskellen mellem ligheden og uligheden. Der gøres opmærksom på, at disse variable ikke indgår i den endelige løsning. Det gælder for alle slackvariable, at de er ikke-negative. Hvis slackvariablen tilhørende en bibetingelse, hvorom det gælder, at slackvariablen er nul, så er bibetingelsen allerede en lighed. Derved restringerer bibetingelsen de mulige valg af hjørnepunkter Hvis slackvariablen tilhørende en bibetingelse er positiv, så er bibetingelse blevet ændret fra en ulighed til en lighed. Derfor restringerer bibetingelsen ikke et muligt valg af hjørnepunkt. Hvis slackvariblen tilhørende en bibetingelse, hvor om det gælder, at slackvariblen er negativ, så er punktet ikke tilladt. Det opfylder ikke bibetingelsen, og derved er punktet ikke en del af den brugbare løsning. 30

For at konvertere en ulighed til en lighed lægges slackvariablen, w, til bibetingelsen. For at illustrere dette, antag uligheden: a 1 x 1 + a 2 x 2 + + a n x n b Derved bliver ligningen: a 1 x 1 + a 2 x 2 + + a n x n + w = b, w 0. 4.3 Eksempel på en løsning vha. Simplex-algoritmen Når der arbejdes med lineær programmering, hvor flere variable er gældende, kan Simplex-algoritmen benyttes til at løse et maksimeringsproblem. I dette afsnit vil der først blive introduceret et eksempel, hvorefter en dybdegående undersøgelse af algoritmen vil blive fremlagt. Følgende afsnit er baseret på [2, Afsnit 9.3]. Et godt eksempel på hvor Simplex-algoritmen kan anvendes er, hvis LPP ønsker at optimere produktionen af sine varer. Til dette bruges variablene, defineret i tabel 3.1. Virksomheden har 3 varer, n 1, n 2, n 3. Fortjenesten på disse tre varer antages at være som følger: n 1 =25, n 2 =33, n 3 =18. Til at producere varerne er der en række bibetingelser, der skal overholdes. Bibetingelserne kunne være som følger: For at producere vare n 1 skal der bruges 2 af m 1, 3 af m 2 og 1 af m 3. For at producere vare n 2 skal der bruges 3 af m 1, 1 af m 2 og 2 af m 3. Til at producere den sidste vare n 3 skal der bruges 4 af m 1, 5 af m 2 og 1 af m 3. LPP har dog kun 60 af m 1, 46 af m 2 og 50 af m 3 på lager. På baggrund af disse informationer kan objektfunktionen opstilles jvf. 3.1.1, hvilken i dette tilfælde ser således ud: 25n 1 + 33n 2 + 18n 3 Herefter kan der opstilles en række bibetingelser (forkortet u.b.b.) som uligheder: hvor n j 0 og j = 1,..., 3. 2n 1 + 3n 2 + 4n 3 60 3n 1 + n 2 + 5n 3 46 n 1 + 2n 2 + n 3 50 Det første skridt der skal foretages, for at løse dette maksimeringsproblem, er at tilføre slackvariable. Derudover ændres objektfunktionen til en ligning ved at 31

introducere en M variabel (M defineres i 4.4), der giver følgende ligning: M = 25n 1 + 33n 2 + 18n 3 Målet er nu at optimere variablen M, hvor M opfylder ligningen: 25n 1 33n 2 18n 3 + M = 0 Den samlede opstilling, med slackvariable tilføjet, ser således ud: 2n 1 +3n 2 +4n 3 +n 4 =60 3n 1 +n 2 +5n 3 +n 5 =46 n 1 +2n 2 +n 3 +n 6 =50 25n 1 33n 2 18n 3 +M =0 Det oprindelige problem kan nu opstilles som et system af ligninger, og der kan derfor bruges lineær algebra, helt bestemt rækkeoperationer, til at løse maksimeringsproblemet. Systemet opstilles således: n 1 n 2 n 3 n 4 n 5 n 6 M 2 3 4 1 0 0 0 60 3 1 5 0 1 0 0 46 1 2 1 0 0 1 0 50-25 -33-18 0 0 0 1 0 Tabel 4.1: Totalmatrix Efter at have udført rækkeoperationer på totalmatricen, som kan ses i tabel 4.2, kan den brugbare løsning aflæses som b-værdierne i samme række som de positive pivotelementer. n 1 n 2 n 3 n 4 n 5 n 6 M 11 1 3 78 1 0 0 0 7 7 7 7 2 3 2 88 0 1 0 0 7 7 7 7 8 5 1 96 0 0 1 0 7 7 7 7 215 74 9 4854 0 0 0 1 7 7 7 7 Tabel 4.2: Færdigt resultat I dette eksempel er maksimum givet ved n 1 = 78, n 7 2 = 88 og n 7 3 = 0. Dette fås ud fra aflæsning af pivotelementerne. Der er i søjle n 3 ikke pivotelement, så n 3 32

indgår ikke i løsningen. Dette resultat betyder, at for at LPP kan få den maksimale indtjening, skal LPP producere 78 7 stk. af varen n 1, 88 7 stk. af varen n 2 og 0 stk. af varen n 3. Da LPP kun kan producere hele varer, er den nødsaget til at runde ned til nærmeste hele tal. I dette tilfælde vil det være 11 stk. for vare n 1, 12 stk. af vare n 2 og stadig 0 stk. af vare n 3. Årsagen til at varen n 3 ikke indgår i den optimale løsning, kan skyldes, at den i forhold til de andre varer koster for meget at lave i forhold til de ressourcer, der skal bruges til at producere varen. Det er derfor fordelagtigt for LPP kun at producere varerne n 1 og n 2. Hvis forholdene for enten indtjening- eller bibetingelser ændres, er det muligt, at varen n 3 igen kan indgå som en del af en optimal produktion. En sådan ændring kan forårsages af eksterne såvel som interne faktorer. 4.4 Uddybning af Simplex-algoritmen Det er tidligere vist, at det første skridt i Simplex-algoritmen er at tilføje variablen M til objektfunktionen. Baggrunden for at M-variablen tilføjes til objektfunktionen, skyldes at det dermed bliver muligt at optimere objektfunktionen. M defineres til værdien af objektfunktionen. c T x = M; deraf følger, c T x + M = 0 I Simplex-tabellen vil denne række ligge nederst, samt blive omtalt som c-rækken. Det næste skridt i Simplex-algoritmen er at tilføje slackvariable til ulighederne. Efter at have introduceret de nye variable, kan der opstilles en brugbar basisløsning, hvor de oprindelige variable er lig med 0, da der ikke er pivot i deres søjler. Slackvariablene er større end 0, samt ( objektfunktionen)+m = 0. Rettes blikket tilbage på eksempel 4.3, ses det, at den pågældende basisløsning ser ud som følger: n 1 = n 2 = n 3 = 0 og n 4 = 60, n 5 = 46, n 6 = 50, M = 0 Som resultatet er opstillet nu, er den brugbare løsning ikke optimal, da det kun er slackvariablene, der indgår i basisløsningen. Når kun disse er med i basisløsningen, svarer det til, at punktet grafisk befinder sig i orego, hvilket skyldes 33

at n 1 = n 2 = n 3 = 0. Målet er nu at bevæge sig væk fra nulpunktet, og derved nærme sig en mere optimal løsning. Dette gøres ved at introducere n 1, n 2, n 3 til basisløsningen. Baggrunden for denne introduktion skal findes i de tilhørende skalarer for n 1, n 2, n 3 i ligningen for M. Ved at sammenligne disse skalarer kan der observeres hvilken variabel, der vil forøge værdien af M mest. Objektfunktionen fra det indledende eksempel bruges som illustration. Når skalarerne i objektfunktionen sammenlignes, kan det ses, at skalaren tilhørende n 2 har den største positive værdi. Dermed forøges værdien af M mest, når n 2 vokser med en 1, sammenlignet med når n 1 eller n 3 vokser med 1. I Simplex-algoritmen vil den mest negative værdi i nederste række modsvare den mest positive værdi i objektfunktionen. n 4, n 5 og n 6 indgik i den første basisløsning, men efter undersøgelsen af skalarerne for n 1, n 2, n 3 ønskes der en udskiftning i basisløsningen, sådan at en af de tre slackvariable bliver erstattet med n 2. Først skal der skabes et pivotelement i søjlen for n 2, idet skalaren tilhørende n 2 har den største positive værdi i objektfunktionen. Pivotelement i søjle frembringes ved hjælp af elementære rækkeoperationer. For at finde ud af hvilken af disse elementer i søjlen, der skal vælges som værende pivotelement, skal to betingelser være opfyldt. Betragt følgende system: Betingelserne er følgende: a 11 n 1 + +a 1r n r + +a 1p n p = b 1. a i1 n 1 + +a ir n r + +a ip n p = b i. a t1 n 1 + +a tr n r + +a tp n p = b t koefficienten a ws tilhørende n s skal være positiv. Når den w te ligning divideres med a ws, skal b w efter division være positiv. bw a ws skal være den mindste af alle b i a is, i = {1,..., t} når a is > 0. Dette medfører at når den w te ligning bliver brugt til at eliminere det n s te udtryk fra den i te ligning med resultatet at b i bliver positiv. Ses der på det indledende eksempel i 4, kan det observeres, at elementerne i søjle n 2 har værdierne 3, 1 og 2. For at finde ud af hvilken af disse elementer der skal danne pivotelement, divideres disse tal op i henholdsvis 60, 46 og 50 jf. 34

ovenstående betingelser. Dette giver følgende resultat: 60 3 = 20 46 1 = 46 50 2 = 25 Som det fremgår af udregningerne, har det øverste element i søjlen n 2 den mindste værdi. Det betyder, at det er dette element, som skal danne pivotelement for søjle n 2 jf. betingelse 2 ud fra ovenstående betingelser. Den nye simplex tabel ser således ud: n 1 n 2 n 3 n 4 n 5 n 6 M 2 4 1 1 0 0 0 20 3 3 3 7 11 1 0 1 0 0 26 3 3 3 1 5 2 0 0 1 0 10 3 3 3-3 0 26 11 0 0 1 660 Tabel 4.3: Basisløsning efter første gennemløb Den nye brugbare basisløsning skrives: n 1 = n 3 = n 4 = 0 og n 2 = 20, n 5 = 26, n 6 = 10, M = 660 Dette betyder, at værdien af M nu er steget fra 0 til 660. For at se om M kan stige yderligere, ses på ligningen for M, der nu kan skrives som: M = 660 + 3n 1 26n 3 11n 4 Det ses, at n 3 og n 4 begge er negative og vil derfor medføre et fald i værdien af M, hvis disse tilføjes til løsningen. Derimod er n 1 positiv og vil derfor øge værdien af M, hvis denne tilføjes til løsningen. For at tilføje n 1 til løsningen gentages proceduren fra før ved at finde et pivotelement og derefter udføre rækkeoperationer. Den optimale løsning er til sidst fundet, når der ikke længere er flere variable, der kan tilføjes til løsningen, hvorved værdien af M forøges. 35

Denne procedure kan opstilles i følgende algoritme: Simplex-algoritme for et kanonisk lineært programmerings problem 1. Omskriv bibetingelser med ulighed til ligheder ved tilføjelse af slackvariable. Lad M være en variabel lig objektfunktionen. 2. Opsæt den indledende Simplex-tabel. Nederste række dannes af c-rækken. Slackvariablene og M giver den indledende brugbare løsning. 3. Undersøg den c-rækkens mulighed for optimering. Hvis alle indgange i c- rækken er ikke-negative, så er løsningen optimal. Hvis 1 eller flere indgange er negative, så vælg variabel n k for hvilken hvis indgang i c-rækken er mest negativ. 4. Indsæt variablen n k i løsningen. Dette gøres, ved at pivotere den positive indgang a wk for hvilken det gælder, at det ikke-negative forhold b i /a ik er mindst. Den nye brugbare basisløsning medfører en øget værdi af M. 5. Gentag denne proces, begyndende fra trin 3, indtil alle indgange i c-rækken er ikke-negative. 6. Maksimum for objektfunktionen aflæses direkte ud fra M. Værdierne n aflæses ud fra pivotelement i samme søjle. 4.5 Grafisk illustration af Simplex-algoritmen I det tidligere eksempel blev det vist, hvordan simplex-algoritmen bruges i R 3. Det næste eksempel vil illustrere, hvad der sker grafisk under løsning af simplex tabellen. Der tages her udgangspunkt i eksemplet løst i 3.5. Maksimér 2x 1 +3x 2 u.b.b. x 1 30 x 2 20 x 1 +2x 2 54 x 1 0, x 2 0. Når problemet løses ved hjælp af Simplex-algoritmen, vil den brugbare basisløsning fra hver tabel svare til et hjørnepunkt i det brugbare område i 4.1. 36

Figur 4.1: Illustration af hjørnepunkter For at opstille totalmatricen tilføjes slackvariablene og objektfunktionen sættes lige med M. Målet er nu at finde en ikke-negativ løsning til følgende system: x 1 +x 3 = 30 x 2 +x 4 = 20 x 1 +2x 2 +x 5 = 54 2x 1 3x 2 +M = 0 hvor M er maksimum. Den oprindelige Simplex-tabel ser således ud: x 1 x 2 x 3 x 4 x 5 M 1 0 1 0 0 0 30 0 1 0 1 0 0 20 1 2 0 0 1 0 54-2 -3 0 0 0 1 0 Den brugbare basisløsning hvor x 1, x 2 og M er lige med 0 svarer til punktet (x 1, x 2 ) = (0, 0) i figur 4.1. I c-rækken er den mest negative indgang 3. Dermed skal det første pivotelement findes i søjlen x 2. Forholdet mellem 20 og 54 1 2 viser, at pivotelementet findes i den anden række i søjlen x 2. Herefter udføres der rækkeoperationer, hvorefter Simplex-tabellen udvikler sig således: 37

x 1 x 2 x 3 x 4 x 5 M 1 0 1 0 0 0 30 0 1 0 1 0 0 20 1 0 0-2 1 0 14-2 0 0 3 0 1 60 Den brugbare basisløsning er nu x 1 = x 4 = 0, x 2 = 20, x 3 = 30, x 5 = 14 og M = 60. I figur 4.1 svarer det til, at den nye løsning befinder sig i hjørnepunkt (x 1, x 2 ) = (0, 20). Det næste pivotelement skal findes i søjlen x 1, da dennes indgang i c- rækken 2. Dette giver den næste Simplex-tabel: x 1 x 2 x 3 x 4 x 5 M 0 0 1 2-1 0 16 0 1 0 1 0 0 20 1 0 0-2 1 0 14 0 0 0-1 2 1 88 Nu er den brugbare basisløsning x 4 = x 5 = 0, x 1 = 14, x 2 = 20, x 3 = 16 og M = 88. Dette svarer til, at løsningen i figur 4.1 er rykket videre til hjørnepunkt (14, 20) og objektfunktionen er steget fra 60 til 88. Det næste element der skal pivoteres findes i søjlen x 4, da indgangen i c-rækken er -1. Pivotelementet vælges i 2. række og giver følgende Simplex-tabel: x 1 x 2 x 3 x 4 x 5 M 1 1 0 0 1 0 8 2 2 1 1 0 1 0 0 12 2 2 1 0 1 0 0 0 30 1 3 0 0 0 1 96 2 2 Da alle indgange i den nederste række er ikke-negative, kan den optimale løsning aflæses, hvilket opnås når x 1 = 30 og x 2 = 12. Dette svarer til punktet (30, 12) i figur 4.1, hvor M = 96. I det tidligere eksempel 3.5 hvor den grafiske metode blev brugt til at løse problemet, gav det samme resultat. 38

4.5.1 En raffineret Simplex-algoritme Det er et velkendt problem, at Simplex-algoritmen kan fejle i at komme frem til et resultat grundet begrebet cycling. Der er dog flere mulige måder at omgå denne problemstilling på. De følgende restriktioner begrænser også valget af både række og søjle, når der vælges pivotelement, dog efter en anden metode. Det hævdes af matematikeren Robert G. Bland, at denne metode er den nemmeste at implementere direkte i Simplex-algoritmen. Bland s regel om mindste subscript Antag et vilkårligt simplex tabel, som tidligere er beskrevet. Rækkerne gives endnu et index, således at række i = B i, dog vælges den nedereste række i tabellen, c-rækken, til at være B 0 ; altså række 0. Iblandt alle de mulige c < 0, vælg søjlen med variblen x k, som har det laveste index, i.e., pivoter i søjle k, fastlagt ved k = min{j : c 0j < 0} Iblandt alle kandidaterne til pivotering i række v, vælg den variable x v, som har det laveste index, i.e., pivoter i rækken v fastlagt af B v = min{b i : a ik > 0 og b i a ik = min{ b i a ik : a ik > 0}} Altså der pivoteres i rækken, med det laveste index, v, hvor det gælder at det forholdet mellem rækkens a og b er så lavt som muligt. Denne Simplex-metode kan ikke cycle, og finder altid en løsning hvis en sådan findes. Dette er bevist i artiklen Glands New Finite Pivoting Rules for the Simplex Method af Robert G. Bland [7]. 39

Kapitel 5 Optimering af New Zealands økonomi Tidligere nævnt i indledningen vil der i denne rapport blive anvendt Simplexalgoritmen på et udsnit af New Zealands økonomi. Denne rapport vil ud fra udregninger med Simplex-algoritmen komme med et bud på, hvordan landets forbrug kan optimeres. Først introduceres de variable der indgår i rapportens kontekstuelle problem. 5.1 Introduktion af kontekstuelle problem Rapporten, der bliver arbejdet ud fra, er A linear programming model for economic planning in New Zealand [8]. Problemet tager udgangspunkt i New Zealands økonomi, hvor en arbejdsgruppe har anvendt teorien bag lineær programmering. Målet med opgaven var dengang, at give realistiske og sektorspecifikke retningslinier til New Zealands regering. På baggrund af disse retningslinjer kunne regeringen træffe de korrekte beslutninger med henblik på at skabe den mest optimale økonomiske situation/vækst for New Zealand. I denne rapport vil der blive gjort brug af den samme objektfunktion samt et udsnit af de samme bibetingelser. Der gøres brug af disse for at skabe et nyt resultat på baggrund af de i afgrænsningen 2.1 nævnte antagelser. Herefter vil resultatet af Simplex-algoritmens gennemløb blive diskuteret, for at give et bud på, om det fundne resultat er fordelagtigt for New Zealand. I afgrænsningen blev det nævnt, at der kun bliver opstillet ét lineært programmerings problem med én sektor, der anvender én aktivitet. Dette betyder, at de forskellige variable antages til ikke at være afhængige af flere aktiviteter og sektorer, til at producere den pågældende mængde varer. Ud fra dette kan variablene, objektfunktionen og bibetingelserne fra den originale rapport [8] opstilles på følgende måde: 40