klik her

Simplex metoden
Matematik A, HHX sommeren 2011
Tirsdag den 19. juli 2011
Introduktion
I denne note betragter vi det gennerelle problem, at maximere et lineært programmeringsproblem p˚
a
formen
max
u.b
z=
c1 x1
a11 x1
a21 x1
+
+
+
c2 x 2
a12 x2
a22 x2
+
+
+
am1 x1 + am2 x2 +
x1 ,
x2 ,
···
···
···
+
+
+
cn xn
a1n xn
a2n xn
· · · + amn xn
...,
xn
≤
≤
..
.
b1
b2
(1)
≤ bm
≥
0
z kaldes objektfunktionen, ci er objektfunktionens koefficienter, xi er problemets variabler, aij er koefficienter i begrænsningerne og bi angiver øvre grænse for begrænsningerne.
I kapitel B9 har vi set hvordan et s˚
adan problem med kun 2 variabler kan løses grafisk. I den forbindelse opdagede vi at en optimal løsning altid ligger i et hjørnepunkt for begrænsningsomr˚
adet. Denne
observation kan udnyttes til at udvikle en metode som systematisk undersøger hjørnepunkterne indtil
den optimale løsning er fundet.
Vi kunne selvfølgelig undersøge alle hjørnepunkter. For store problemer kan der desværre være rigtig
mange hjørnepunkter. Heldigvis er der en m˚
ade s˚
a vi kan afgøre om vi er i et optimalt hjørnepunkt, uden
at have tjekket dem allesammen. Lad x være et hjørnepunkt som ikke er optimalt. S˚
a kan det vises at
n˚
ar objektfunktionen er lineær, s˚
a vil et af hjørnepunkterne ved siden af x give en større objektfunktion.
Eksempel:
Betragt begrænsningsomr˚
adet givet ved
2x1 + x2
x1 + 2x2
≤8
≤ 12
(2)
som er afbilledet p˚
a figur 1. I dette eksempel ligger v0 ved siden af v3 og v1 .
x2
v3
v0
v2
x1
v1
Figur 1: Begrænsningsomr˚
adet givet i ulighederne, (2).
1
Ligningssystemer
Før vi kigger p˚
a simplexmetoden skal vi se p˚
a hvilke typer af løsninger et ligningssytem som (3) har.
a11 x1
a21 x1
+
+
am1 x1
a12 x2
a22 x2
+ am2 x2
+ ···
+ ···
+
+
···
+
a1n xn
a2n xn
=
=
..
.
+ amn xn
b1
b2
(3)
= bm
Det viste ligningssystem har m ligninger og n ubekendte. For et ligningssystem med n ≥ m variabler
gælder det at vi kan fikserer n − m af variablerne p˚
a 0 og løse det ligningssystem der bliver tilbage. Det
vil s˚
a have m ligninger og m ubekendte. Den fundne løsning vil ogs˚
a være en løsning til det oprindelige
problem. Bemærk dog at det ikke er klart hvilke variabler vi kan sætte til 0.
Simplex metoden
I det følgende vil simplex metoden blive gennemg˚
aet samtidig med at de enkelte trin vil blive illustreret
p˚
a nedenst˚
aende eksempel.
max
u.b
z=
3x1
x1
3x1
x1
+2x2
+x2
+x2
≤ 9
≤ 18
≤ 7
≤ 6
≥ 0
x2
x2
x1 ,
(4)
Eksemplets begrænsningsomr˚
ade er vist p˚
a figur 2
x2
9
6
v1
v2
v3
v4
v0
6
7
9
x1
Figur 2: Mulighedsomr˚
adet for LP problemet i (4).
Trin 1 Vi starter med at introducere s˚
akaldte slack variabler, xn+1 , . . . , xn+m , s˚
adan at ulighederne i
begrænsningsomr˚
adet bliver til ligninger. I vores eksempel f˚
ar vi problem (5).
max
u.b
z=
3x1
x1
3x1
x1
x1 ,
+2x2
+x2
+x2
+x3
+x4
+x5
x2
x2
+x6
2
= 9
= 18
= 7
= 6
≥
0
(5)
Trin 2 Vi opstiller nu det vi kalder for en simplex tabel (eller simplex tableau). En simplex tabel er en
praktisk m˚
ade at afbillede en løsning der overholder alle begrænsninger. Øverst har vi en ligning for hver
af begrænsningerne. Nederst skriver vi objektfunktionen. Variablerne p˚
a venstreside af lighedstegnene er
de variabler som kan være forskellige fra 0. Disse variabler kalder vi for basen. Alle de variabler som er
p˚
a højre side af lighedstegnet er 0. Disse kaldes for non-basen.
Det er ikke trivielt at finde en lovlig base til at starte med, men i de eksempler vi kigger p˚
a vil
slackvariablerne altid være en lovlig base.
Det første simplex tableau for vores eksempel er vist i ligningerne (6).
x3
x4
x5
x6
z
= 9 −x1
= 18 −3x1
= 7 −x1
= 6 −x2
= 0 +3x1
−x2
−x2
(6)
+2x2
Her kan vi aflæse værdien af variablerne i vores første løsning: (x1 , x2 , x3 , x4 , x5 , x6 ) = (0, 0, 9, 18, 7, 6).
Dette svarer til punktet v0 p˚
a figur 2.
Trin 3 Det næste trin er at tjekke om vi er i et maksimum. Dette tjekkes i den nederste ligning i simplex
tabellen, det der svarer til objektfunktionen. Hvis der er en variabel med positiv koefficient, s˚
a kan den
variabel bringes ind i basen og dermed øge objektfunktionen. Hvis det er tilfældet, s˚
a g˚
a til trin 4. Hvis
alle variabler derimod har negativt fortegn har n˚
aet et maksimum. I det tilfælde, g˚
a til trin 5.
I vores eksempel har variablen x1 koefficient 3 og x2 har koefficient 2. Begge er positive, s˚
a en af dem
kan bringes ind i basen. Dette gøres i trin 4.
Trin 4 I trin 3 konstaterede vi at det nuværende punkt ikke gav anledning til den maksimale værdi af
objektfunktionen i det enten x1 eller x2 kan bringes ind i basen og øge objektfunktionen. Vi vælger at
bringe x2 ind i basen (vi kunne lige s˚
a godt have valgt x1 , det ville i sidste ende give det samme).
Vi skal nu finde ud af hvor meget vi kan øge x2 . Til dette betragter vi simplex tabel (6) og husker
at alle vores variabler skal være positive. Den øverste begrænsning sætter derfor en øvre grænse p˚
a x2
til 9. Den anden ligning giver en grænse p˚
a 18 og den fjerde ligning giver en grænse p˚
a 6. Den stærkeste
begrænsning er alts˚
a 6, og vi kan alts˚
a ikke øge x2 med mere end 6.
Vi isolerer nu x2 i den fjerde ligning og f˚
ar x2 = 6 − x6 . Dette udtryk substitueres for x2 i de andre
ligninger. Vi laver derfor følgende udregninger.
x3 = 9 − x1 − (6 − x6 ) ⇔ x3 = 3 − x1 + x6
x4 = 18 − 3x1 − (6 − x6 ) ⇔ x4 = 12 − 3x1 + x6
x2 = 6 − x6
z = 0 + 3x1 + 2(6 − x6 ) ⇔ z = 12 + 3x1 − 2x6
Hvilket giver anledning til den nye simplex tabel herunder.
x3
x4
x5
x2
z
= 3 −x1
= 12 −3x1
= 7 −x1
= 6 −x6
= 12 +3x1
+x6
+x6
(7)
−2x6
Fra denne simplex tabel kan vi aflæse løsningen (x1 , x2 , x3 , x4 , x5 , x6 ) = (0, 6, 3, 12, 7, 0) hvilket svarer til
punktet v1 p˚
a figur 2. Vi kan desuden aflæse fra objektligningen i tabellen af den nuværende løsning har
en værdi p˚
a 12 samt at denne ikke er optimal idet koefficienten foran x1 stadig er positiv.
Vi vil derfor indføre x1 i basen, men først skal vi finde ud af hvor meget vi kan øge x1 og stadig sikre
at alle variabler er mindst 0. Øverste ligning i tabellen giver en grænse p˚
a 3, den anden ligning i giver
en grænse p˚
a 12/3 = 4 og den tredje ligning giver en grænse p˚
a 7. Vi kan derfor øge x1 med højest 3.
Fra den øverste ligning f˚
ar vi, at vi skal substituerer x1 = 3 − x3 + x6 . Hvis vi gør det f˚
ar vi simplex
tabellen (8).
3
x1
x4
x5
x2
z
= 3 −x3
= 3 +3x3
= 4 +x3
= 6 −x6
= 21 −3x3
+x6
−2x6
−x6
(8)
+x6
Fra denne tabel aflæses løsningen (3, 6, 0, 3, 4, 0) hvilket svarer til punktet v2 p˚
a figur 2. Denne løsning
giver en objektfunktionen en værdi p˚
a 21. Vi kan desuden se at vi stadig ikke er i et maksimum i det
variablen x6 nu har f˚
aet en positiv koefficient.
Den øverste ligning giver ikke nogen begræsning p˚
a x6 i det x6 her optræder med en positiv koefficient.
Den anden ligning giver at x6 højest kan øges med 3/2, den tredje ligning giver en grænse p˚
a 4 og den sidste
ligning en grænse p˚
a 6. Vi øger derfor x6 med 3/2. Dette svarer til at substituerer x6 = 3/2+3/2x3 −1/2x4 .
Dermed f˚
ar vi simplex tabel (9).
x1
x6
x5
x2
z
=
9/2 +1/2x3
= 3/2 +3/2x3
= 5/2 −1/2x3
= 9/2 −3/2x3
= 45/2 −3/2x3
−1/2x4
−1/2x4
+1/2x4
+1/2x4
−1/2x4
(9)
Da alle koefficienter i objektfunktionen her er negative har vi n˚
aet et maksimum.
Trin 5 Vi har nu fundet den endelige simplex tabel og kan nu aflæse en optimal løsning til vores
LP problem. Vi husker at variablerne i non-basen, det vil sige de variabler der er p˚
a venstre side af
lighedstegnene er 0. I vores tilfælde vil det sige at x3 = x4 = 0. Hvis vi indsætter dette i tabllen (9) kan
vi aflæsen en optimal løsning med x1 = x2 = 9/2, x5 = 5/2 og x6 = 3/2, hvilket giver en objektfunktion
med en værdi p˚
a 45/2.
Til sidst bør vi naturligvis tjekke at alle vores oprindelige begrænsninger. I dette tilfælde ser vi at
hvis vi indsætter x1 = x2 = 9/2 i (4) s˚
a er alle begrænsninger overholdt.
4
Opgave 1
Observer at der er fire muligheder for et lineært programmerings (LP) problem:
• LP problemet har en unik optimal løsning.
• LP problemet har uendelig mange optimale løsninger.
• LP problemet har ingen brugbare løsninger.
• LP problemet er ubegrænset.
Afgør for de følgende fire LP problemer hvilken type problem de er og skitser løsningsomr˚
adet.
max
u.b.
z=
3x1
x1
x1
max
u.b.
max
u.b.
z=
z=
+5x2
x2
+2x2
x2
x1
+6x2
7x1
+2x2
2x1 +12x2
x1 ,
x2
x1
x1
2x1
x1
+x2
+2x2
+x2
x2
max
u.b.
z=
x1
x1
2x1
+2x2
+x2
+x2
x2
x1 ,
x2
5
≥ 5
≤ 10
≥ 10
≥ 0
≤
≤
≥
28
24
0
≤
≤
≥
≥
6
8
7
0
≤ 25
≤ 30
≤ 35
≥ 0
(10)
(11)
(12)
(13)
Opgave 2
Spørgsm˚
al 2.1
(Noter til Compinatorial Optimisation af Gregory Gutin)
Et firma producerer tre slags kemikalier: A, B og C. Kemikalierne produceres gennem to processer. At
køre proces 1 i en time koster $4 og producerer 3 enheder af A, 1 af B og 1 af C. Det koster $1 at køre
proces 2 i en time hvilket producerer 1 enhed af A og 1 enhed af B. Der skal produceres mindst 10 enheder
af A, 5 af B og 3 af C. Opskriv det LP problem som minimerer firmaets omkostningerne, men s˚
adan at
efterspørgslen er dækket. Løs problemet ved at bruge simplex metoden.
Spørgsm˚
al 2.2
(DM515 Eksamen 2008, opgave 3)
En fabrik som producerer to typer maling I og U (indendørs og udenførs) benytter de samme to kemikalier
K1, K2 til produktionen af I og U . Til fremstilling af 1 ton af I benyttes 6 tons af K1 og 1 ton af K2
og til fremstilling af 1 ton af U benyttes 4 tons af K1 og 2 tons af K2. Fabrikken kan sælge et ton af
I med en profit p˚
a 50000 kr og et ton af U med en profit p˚
a 40000 kr. R˚
avare leverancen er s˚
adan at
firmmaet kan bruge op til 24 tons af K1 og op til 6 tons af K2 per dag. En markedsanalyse viser at det
daglige salg af I ikke kan overstige det daglige salg af U med mere end 1 ton. Formuler et LP problem
som finder det produktmiks af I og U som optimerer den daglige indtjening.
Opgave 3
(DM515 Eksamen 2008, opgave 1)
Betragt LP problemet
max
u.b.
z=
2x1
2x1
+4x2
+3x2
x1
+x2
x1 ,
x2 ,
−x3
−x3
−x3
x3
≤
≤
≤
≥
6
9
4
0
(14)
Spørgsm˚
al 3.1
Omskriv problemet til ligningsform ved at tilføje slackvariable x4 , x5 og x6 , svarende til de tre begrænsninger (regnet oppefra) og løs problemet med brug af simplex metoden.
Spørgsm˚
al 3.2 - kun til de rigtigt seje
Antag nu at d1 , d2 og d3 er reelle tal og at de tre uligheder i (14) ændres som følger:
max
u.b.
z=
2x1
2x1
+4x2
+3x2
x1
+x2
x1 ,
x2 ,
−x3
−x3
−x3
x3
≤ 6 − d1
≤ 9 − d2
≤ 4 − d3
≥
0
(15)
Forklar hvordan man, uden at løse problemet forfra, dels kan opstille den endelige simplex tabel for det
nye problem, dels kan udlede hvilke grænser d1 , d2 og d3 skal ligge indefor, for at x1 , x2 og x4 stadig udgør
en optimal basis (du skal ikke gøre dette, men blot opstille de begrænsninger man kan udlede direkte af
den sidste simplex tabel).
Spørgsm˚
al 3.3
Brug udregningerne ovenfor og den modificerede simplex tabel til at aflæse en optimal løsning (og dennes
værdi), n˚
ar (d1 , d2 , d3 ) = (0, 9, 1) og n˚
ar (d1 , d2 , d3 ) = (6, 0, 1). Husk at argumentere for at (x1 , x2 , x4 )
stadig er en optimal basis løsning
6