Find vej rundt

Chapter 5:
Formål:
Simplex metoden til løsning af LP
Udvikling af generel metode til løsning af enhver type LP.
Metoden udvikles først for LP i standard form
->
max problem
alle uligheder af typen Ÿ
alle højresider ikke-negative
alle variable ikke-negative
a)
b)
c)
d)
e)
algebraisk introduktion
tableau form
opstilling af initialt tableau
opdatering af tableauer
identifikation af optimal løsning
Derefter:
uligheder af typen
->
eller œ
Big-M metoden
negative højresider
minimeringsproblemer
identifikation af infeasibility
unboundedness
alternative optimalløsninger
degenererede løsninger
Endelig tilfældet med frie variable (ej i lærebog)
Eksempel:
max
50x1
€
40x2
s.t.
3x1
€
5x2
x2
5x2
8x1 €
x1 , x2 0
Ì
Ÿ
Ÿ
Ÿ
150
20
300
max
50x1
€
s.t.
3x1
€
40x2
5x2
x2
8x1 €
5x2
x1 , x2 ß s1 , s2 , s3 0
€ s1
€ s2
œ
150
œ
20
€ s3 œ
(1)
(2)
300
Tegn mulighedsområdet og løs grafisk!
Ligningssystemet (1)-(3) består af 3 ligninger i 5 ubekendte.
Et ligningssystem med flere ubekendte end antallet af ligninger har sædvanligvis
uendeligt mange løsninger.
Men vi ved fra den grafiske metode, at optimum til LP findes i et hjørnepunkt. Og
hjørnepunktsløsninger svarer til såkaldte basisløsninger.
H/0383>398À
En basisløsning til et ligningssystem bestående af 7 ligninger i 8
ubekendte med 8 7 findes ved at fixere (8 • 7) ubekendte
til 0 og løse det resulterende ligningssystem bestående af 7
ligninger i 7 ubekendte.
De (8 • 7) fixerede variable betegnes ikke-basisvariable og de resterende 7
variable basis-variable.
I det foreliggende problem findes således potentielt
ˆ8 ‰ œ
7
8x
Ð8•7Ñx‚7x
x" , x2 , s"
x" , x2 , s2
x" , x2 , s3
x" , s1 , s2
x" , s1 , s3
x" , s2 , s3
x2 , s1 , s2
x2 , s1 , s3
x2 , s2 , s3
s" , s2 , s3
‚3‚2‚1 œ 10 basisløsninger.
œ (25‚‚1)4‚
(3‚ 2‚ 1)
(og s2 œ s3 œ 0)
(og s1 œ s3 œ 0)
(og s1 œ s2 œ 0)
(og x2 œ s3 œ 0)
(og x2 œ s2 œ 0)
(og x2 œ s1 œ 0)
(og x1 œ s3 œ 0)
(og x1 œ s2 œ 0)
(og x1 œ s1 œ 0)
(og x1 œ x2 œ 0)
Find disse grafisk!
Identificer nogle af basisløsningerne!
Bemærk: Kun 5 af de ialt 10 potentielle basisløsninger er brugbare.
(3)
Betragt igen problemet i standard form:
max
50x1
€
40x2
s.t.
3x1
€
5x2
x2
5x2
8x1
€
x1 , x2 ß s1 , s2 , s3
Bemærk:
€ s1
€ s2
€ s3
œ
œ
œ
150
20
300
0
I enhver række findes netop 'en variabel med koefficient '1' i
pågældende række og koefficient '0' i alle øvrige rækker nemlig slackvariablen i rækken.
Det er derfor meget let at finde en initial basisløsning ved at sætte
(x1 , x2 ) œ (0, 0) og løse det resulterende ligningssystem
->
(s1 , s2 , s3 ) œ (150, 20, 300)
Denne løsning kan findes ved opstilling af første del af det initiale simplex
tableau:
Basis
s1
s2
s3
cB
0
0
0
x1
50
3
0
8
x2
40
5
1
5
s1
0
1
0
0
s2
0
0
1
0
s3
0
0
0
1
150
20
300
Er den aktuelle basisløsning bestående af (s1 , s2 , s3 ) optimal?
Observation:
En basisløsning er optimal, hvis der ikke findes en nabobasis,
der kunne give en bedre objektivfunktionsværdi.
En nabobasis findes ved at fixere en aktuel basisvariabel til værdi 0 og frigøre en
aktuel ikke-basisvariabel fra dens p.t. fixerede værdi 0.
Vi skal altså undersøge, om en tilvækst i enten x1 eller x2 (de aktuelle ikkebasisvariable) kan indebære en stigning i z.
Lad os først se på ligningssystemet for x1:
s1
s2
s3
œ
œ
œ
150 • 3x1
20
300 • 8x1
(1)
(2)
(3)
(1)
(2)
(3)
Heraf følger at hvis x1 øges med 1 enhed så
1) falder s1 med 3 enheder,
2) s2 er uændret, og
3) s3 falder med 8 enheder.
Hvordan påvirker dette objektivfunktionen?
s1 Æ 3
Ê fald i z på 0 ‚ 3
s2 uændret Ê fald i z på 0 ‚ 0
s3 Æ 8
Ê fald i z på 0 ‚ 8
hvilket indebærer at nettoændringen i z fremkaldt af ændringen i de aktuelle
basisvariable som følge af en tilvækst på en enhed i x1 er 0. Denne ændring
betegnes z1 .
Men en tilvækst på en enhed i x1 indebærer også en tilvækst i z på 50 enheder,
fordi x1 har en kriteriekoefficient c" på 50.
Den samlede ændring i objektivværdien er derfor c1 • z1 œ 50 • 0 œ 50
Lad os dernæst se på ligningssystemet for x2:
s1
s2
s3
œ
œ
œ
150 • 5x2
20 • x2
300 • 5x2
(1)
(2)
(3)
Heraf følger at hvis x2 øges med 1 enhed så
1) falder s1 med 5 enheder,
2) s2 falder med 1 enhed, og
3) s3 falder med 5 enheder.
Hvordan påvirker dette objektivfunktionen?
s1 Æ 5
s2 Æ 1
s3 Æ 5
Ê fald i z på 0 ‚ 5
Ê fald i z på 0 ‚ 1
Ê fald i z på 0 ‚ 5
hvilket indebærer at nettoændringen i z fremkaldt af ændringen i de aktuelle
basisvariable som følge af en tilvækst på en enhed i x2 er 0. Denne ændring
betegnes z2 .
Men en tilvækst på en enhed i x2 indebærer også en tilvækst i z på 40 enheder,
fordi x2 har en kriteriekoefficient c2 på 40.
Den samlede ændring i objektivværdien er derfor c2 • z2 œ 40 • 0 œ 40
Vi kan i princippet gøre det samme for sættet af basis-variable. Her vil z4
selvfølgelig altid være lig med den pågældende variabels egen kriteriekoefficient
og c4 • z4 derfor altid lig 0.
Disse informationer kan nu gengives i simplextableauet:
Basis cB
s1
0
s2
0
s3
0
z4
c4 • z4
x1
50
3
0
8
0
50
x2
40
5
1
5
0
40
s1
0
1
0
0
0
0
s2
0
0
1
0
0
0
s3
0
0
0
1
0
0
150
20
300
0
Det stærkt optrukne 0 angiver objektivfunktionens aktuelle værdi og findes ved
! cB bi œ 0 ‚ 150 € 0 ‚ 20 € 0 ‚ 300 œ 0
i
$
3œ"
Tallene i c4 • z4 rækken viser,
at objektivværdien vil vokse med 50 enheder hver gang x1 øges med 1 enhed, og
at objektivværdien vil vokse med 40 enheder hver gang x2 øges med 1 enhed.
Den aktuelle basis er derfor ikke optimal, fordi en nabobasis omfattende enten x1
eller x2 forventes at give en bedre objektivfunktionsværdi.
Observation:
Vi vælger at introducere den p.t.ikke-basisvariabel i basen, der
giver den størst mulige tilvækst pr. enhed.
Derfor introduceres x1 i basen.
Hvis x1 skal ind i basen, d.v.s. frigøres fra den p.t.fixerede værdi 0, skal en af de
aktuelle basisvariable ud, d.v.s. fixeres til værdi 0. En tilvækst på en enhed i x1 øger
z med 50 enheder. Vi ønsker derfor at lade x1 vokse så meget som overhovedet
muligt. Men x1 kan kun vokse, indtil den første aktuelle basisvariabel når sit lower
bound på 0 - en yderligere tilvækst i x1 vil indebære at denne basisvariabel bliver
negativ og dermed infeasibility.
Observation:
Den udgående basisvariabel er den, der først falder til værdi 0,
når den indgående variabels værdi øges.
Den maximale tilvækst i x1 er derfor defineret ved det minimal ratio mellem de
aktuelle højresider og de positive elementer i x1 søjlen. Husk at et 0 element
betyder, at den modsvarende basisvariabel ikke ændres, og at et negativt element
vil betyde, at den stiger!
Det mindste ratie er derfor
300
minimum( 150
3 œ 50, 8 œ 37.5)
s3 vil derfor først antage værdien 0, når x1 vokser, og det vil ske når x1 antager
værdien 37.5.
Vi betegner x1 søjlen som pivotsøjlen, fordi x1 er indgående p.t. ikke-basisvariabel,
og s3 rækken som pivotrækken, fordi s3 er udgående variabel. Og elementet 8 i
snittet mellem pivotsøjle og pivotrække betegnes pivotelementet.
Problemet består nu i at finde den nye basisløsning svarende til sættet af
basisvariable (s1 , s2, x1 ). Dette gøres ved at lade x1 overtage s3 's rolle. Betragt det
nye ligningssystem:
3x1
€ s1
€ s2
8x1
œ
œ
œ
150 • 5x2
20 • x2
300 • 5x2 • s3
(1)
(2)
(3)
der skal løses med x2 og s3 fixeret til 0. Dette kan ske v.h.a.elementære rækkeoperationer
med udgangspunkt i simplex tableauets pivot række.
Elementære rækkeoperationer består af:
1) Multiplikation af en række med et tal Á 0.
2) Addition eller subtraktion af (evt. multiplicerede) rækker.
Bemærk, at elementære rækkeoperationer ikke påvirker ligningssystemets løsning, fordi der
hele tiden skaleres, adderes eller subtraheres det samme på højre- og venstre-sider.
Î3Ñ
At lade x1 overtage s3 's rolle betyder, at den aktuelle x1 søjleskal transformeres fra 0 til
Ï8Ò
Î0Ñ
Î0Ñ
0 , idet 0 er s3 søjlens aktuelle værdi. Dette sker ved elementære rækkeoperationer,
Ï1Ò
Ï1Ò
der altid startes med at transformere pivotelementet til værdi 1, d.v.s. division med 8 i
pivotligningen:
8x1 Î8
œ
(300 • 5x2 • s3 )Î8 (38C)
x1
œ
37.5 • 58 x2 • 18 s3
Ì
(38C)
x1 's koefficient på 3 i ligning (1) skal nu konverteres til et 0 med udgangspunkt i (38C). Det
sker ved at multiplicere (38C) med 3 og trække dette fra (1):
(18C ) œ (1) • 3 ‚ (38C)
3x1
€ s1
œ
150
• 5x2
(1)
•
œ
3x1
3
112.5 • 15
8 x2 • 8 s3
3 ‚ (38C)
Ì
s1
3
37.5 • 25
8 x2 € 8 s3 (18C)
œ
x1 skal også have koefficienten 0 i ligning (2). Men det har x1 allerede, så en elementær
rækkeoperation er ej nødvendig.
Vi har dermed fundet den nye basisløsning:
s1
s2
x1
3
œ 37.5 • 25
8 x2 € 8 s3
œ
20 • x2
œ
37.5 • 58 x2 • 18 s3
(18C)
(28C)
(38C)
d.v.s. basisvariable (s1 , s2, x1 ) œ (37.5, 20, 37.5) og ikke-basisvariable (x2 , s3 ) œ 0.
_ _ _
De 3 ligninger i det opdaterede system betegnes (1), (2), (3).
Den modsvarende objektivfunktionsværdi beregnes let til
0 ‚ 37.5 € 0 ‚ 20 € 50 ‚ 37.5 œ 1875.
Disse beregninger kunne lige så let være foretaget med udgangspunkt i simplextableauet:
Æ
Basis cB
s1
0
s2
0
s3
0
z4
c4 • z4
x1
50
3
0
8
0
50
x2
40
5
1
5
0
40
s1
0
1
0
0
0
0
s2
0
0
1
0
0
0
s3
0
0
0
1
0
0
150
20
300
0
Basis
s1
s2
x1
cB
0
0
50
x1
50
0
0
1
z4
50
c4 • z4
0
x2
40
25
8
1
5
8
250
8
70
8
s1
0
1
0
0
s2
0
0
1
0
0
0
0
0
s3
0
• 38
0
•
1
8
50
8
50
8
75
2
20
75
2
1875
Dette er det opdaterede simplex tableau. Her er også beregnet z4 og c4 • z4 . z4 findes som
ovenfor ved at tage summen af elementerne i cB-søjlen ganget med de modsvarende
elementer i hhv. x1 -, x2 , s1 -, s2 - og s3 -søjlen.
5
250
z4 for x2 -søjlen beregnes således som (0 ‚ 25
8 € 0 ‚ 1 € 50 ‚ 8 ) œ 8 . Det betyder, at
ændringen i de aktuelle basisvariable fremkaldt af en tilvækst på 1 enhed i x2 vil indebære et
fald i objektivfunktionsværdien på 250
8 enheder. Men en tilvækst i x2 på en enhed vil samtidig
give en tilvækst i objeltivfunktionsværdien svarende til x2 's egen kriteriekoefficient på 40.
70
Nettoeffekten ved at løfte x2 fra aktuel værdi 0 til 1 er derfor 40 • 250
8 œ 8 som anført i
c4 • z4 i x2 -søjlen. Øvrige elementer i c4 • z4 -rækken fortolkes tilsvarende.
Er tableauet optimalt, d.v.s. er den aktuelle basisløsning optimal? Vi checker, om der i c4 • z4
rækken er strengt positive elementer. x2 har som den eneste p.t. ikke-basisvariabel et positivt
element i denne række og skal derfor bringes til basis. Vi ønsker selvsagt at øge x2 så meget
som muligt, fordi enhver tilvækst på en enhed giver en tilvækst i objektivfunktionsværdien
på 70
8 enheder. x2 kan kun øges, indtil den første p.t. basisvariabel antager værdien 0. Denne
identificeres ved rækken, hvor ratiet mellem en aktuel højreside og et positivt element i x25
søjlen er minimalt. Husk at tallene ( 25
8 , 1, 8 ) i x2 -søjlen angiver den negative ændring i
basisvariablene s1 , s2 og x1 ved en tilvækst på en enhed i x2 .
25
75 5
min( 75
2 Î 8 , 20Î1, 2 Î 8 ) œ min(12, 20, 60) œ 12
Vi finder altså mindste ratiet i s1 -rækken. x2 -søjlen er derfor pivotsøjle, s2 -rækken er
pivotrække, og elementet 25
8 pivotelement. x2 skal således introduceres i basis og s1 gøres til
ikke-basisvariabel. Det betyder, at x2 -søjlen skal konverteres til den aktuelle s1 -søjle v.h.a.
elementære rækkeoperationer med udgangspunkt i pivotrækken.
_
25
(18C) œ (1)
_Î8
(28C ) œ Ð_2) • (18C)
(38C ) œ (3) • 58 (18C)
Disse rækkeoprationer fører til følgende opdaterede simplex-tableau:
Basis
x2
cB
40
x1
50
0
x2
40
1
s1
0
s2
0
0
0
•
x1
50
1
0
•
z4
50
40
c4 • z4
0
0
•
8
25
8
25
5
25
14
5
14
5
s2
0
0
s3
0
3
• 25
12
3
25
5
25
26
5
26
5
8
1
0
0
0
•
30
1980
Dette tableau er optimalt, fordi alle elementer i c4 • z4 rækken er mindre end eller lig med 0.
Algoritme:
En algoritme er en systematisk procedure, der med udgangspunkt i en initial situation i et
antal såkaldte iterationer terminerer i en optimal situation.
Simplex algoritmen for LP i standard form, d.v.s. et maximeringsproblem, alle uligheder af
typen Ÿ , alle højre-sider ikke-negative, og alle variable ikke-negative:
1) Formuler LP.
2) Introducer slack variable
->
slacks identificerer initial basisløsning.
3) Konstruer initialt simplex tableau.
4) Vælg p.t. ikke basis-variabel med maximal ikke-negativ værdi i c4 • z4 -rækken.
Hvis intet element i denne række er strengt positivt, STOP; aktuel basis er optimal.
ELLERS introducer pågældende variabel i basis; den hertil svarende søjle betegnes
pivot søjlen.
5) Identificer udgående p.t. basisvariabel ved mindste ratiet mellem de aktuelle højresider og
de ikke negative elementer i pivotsøjlen. Rækken hvori dette mindste ratio findes betegnes
pivotrækken. Den aktuelle basis variabel i denne række er den første basis variabel, der
antager værdi 0, når værdien af den indgående p.t. ikke-basis variabel øges. Denne basis
variabel betegnes udgående.
6) Opdater basisløsningen ved elementære rækkeoperationer. Den indgående variabels søjle
skal transformeres til en enhedssøjle med'1'-tallet i pivotrækken. Gå til 4).
4)-6) udgør en simplexiteration. 4) definerer et optimalitetstest.
Observation:
! c4 x4 € ! !s3
max
8
7
4œ"
8
3œ"
! a34 x4 € s 3 œ b 3ß
s.t.
3 œ "ß ÞÞÞÞß 7
4œ"
x4 ß s3
!ß4œ"ßÞÞÞÞß8ß3œ"ßÞÞÞÞß7
Initialt simplextableau i generel form:
Basis
s1
.
s3
Þ
sm
cB
0
.
0
Þ
0
x1
c1
a11
.
a31
Þ
am1
.
.
.
.
.
Þ
.
! cB3 a31
7
z4
! cB3 a34
xn
cn
a1n
.
a3n
Þ
amn
! cB3 a3n
7
.
3œ"
c1 - ! cB3 a31
3œ"
.
.
.
.
.
Þ
.
xn+3
0
0
.
1
.
0
.
.
.
.
.
.
.
xn+m
0
0
.
0
Þ
1
0
.
0
.
0
c 4- ! cB3 a34
cn - ! cB3 a3n
3œ"
0
.
0
.
0
3œ"
Her svarer xn+1 til s1 , xn+3 til s3 , og xn+m til sm. Bemærk at alle elementer i z4 rækken i det
initiale tableau er 0, fordi cB3 œ ! ß 3 œ " ß Þ Þ Þ Þ ß 7, idet enhver basisvariabel er en slack med
kriteriekoefficient 0. Alle elementer i c4 • z4 rækken er derfor lig med c4. Lad os nu se på det
opdaterede tableau i en vilkårlig iteration:
xBi
cBi
Þ
Þ
0
Basis
cB
.
.
xB1
.
xB3
Þ
xBm
cB1
.
cB3
Þ
cBm
.
.
.
Þ
.
.
1
.
0
Þ
Þ
Þ
Þ
Þ
.
cB3
.
z4
c4 • z4
xNj
cN
_ j
a 1Nj
.
_
a 3Nj
Þ
_
a mNj
.
.
7
_
! cB3 a 3N
j
3œ"
_
. c Nj - ! cB3 a 3Nj
.
.
.
Þ
.
.
_
b1
._
b3
Þ_
bm
_
7
! cB3 b3
3œ"
7
.
0
! cB3 b3
3œ"
7
.
b1
.
b3
Þ
bm
7
3œ"
7
.
xn+1
0
1
.
0
Þ
0
7
.
3œ"
7
c4 • z4
Þ
Þ
Þ
Þ
Þ
Þ
Þ
x4
c4
a 14
.
a34
.
am4
.
3œ"
Her svarer xB3 -søjlen til den opdaterede søjle for den variabel, derer i basis i den 3 'te række;
det kan enten være en af de oprindeligex-variable eller en slack. Søjlen er i princippet en
enhedssøjle med'1'-tallet i 3 'te række.
xN4 -søjlen svarer til den opdaterede søjle for den 4'te ikke-basis variabel; det kan enten være en
af de oprindelige x-variable eller en slack. z4 -indgangen i denne søjle måler her effekten på
objektivfunktionen fremkaldt af den nødvendige ændring i sættet af basis variable ved en
tilvækst fra 0 til 1 i den pågældende ikke-basis variabel. Tilsvarende måler indgangen i
c4 • z4 rækken nettoændringen i objektivfunktionsværdien ved en tilvækst fra 0 til 1 i den
pågældende ikke-basis variabel.
Endeligangiver b-søjlen de opdaterede højresider, d.v.s. ligningssystemets basisløsning givet sættet af
aktuelle basis-variable.
Æ
Basis cB
s1
0
s2
0
s3
0
z4
c4 • z4
Basis
s1
s2
x1
cB
0
0
50
x1
50
3
0
8
0
50
x1
50
0
0
1
x2
40
5
1
5
0
40
x2
40
25
8
1
z4
50
c4 • z4
0
5
8
250
8
70
8
x1
50
0
x2
40
1
Basis
x2
cB
40
s1
0
1
0
0
0
0
s2
0
0
1
0
0
0
s1
0
1
0
0
Æ
s2
0
0
1
0
0
0
0
0
s1
0
s2
0
0
0
•
x1
50
1
0
•
z4
50
40
c4 • z4
0
0
•
8
25
8
25
5
25
14
5
14
5
s3
0
0
0
1
0
0
150
20
300
0
s3
0
• 38
0
•
s2
0
0
20
1
8
50
8
50
8
75
2
1875
s3
0
3
• 25
12
3
25
5
25
26
5
26
5
8
1
0
0
0
75
2
•
30
1980
Håndtering af LP i ikke-standard form:
max
50x1
€
40x2
s.t.
3x1
€
5x2
x2
5x2
x2
8x1 €
x1 €
x1 , x2 0
Ÿ
Ÿ
Ÿ
150
20
300
25
Ì
max
50x1
€
s.t.
3x1
€
40x2
5x 2
x2
8x1 €
5x2
x1 €
x2
x1 , x2 ß s1 , s2 , s3 , s4
€ s1
œ
œ
œ
œ
150
20
300
25
(1)
(2)
(3)
(4)
œ 150
œ 20
œ 300
• s4 € a4 œ 25
(1)
(2)
(3)
(4)
€ s2
€ s3
• s4
0
Bemærk: Nu er en initial basis bestående af slack- og surplusvariable ikke længere
brugbar, fordi
(x1 , x2 ) œ (0, 0) Ê (s1 , s2 ß s3, s4) œ (150, 20, 300, • 25)
hvilket betyder, at s4 er negativ. Problemet undgås ved en kunstig udvidelse af
mulighedsområdet.
max
50x1
€
s.t.
3x1
€
• Ma4
40x2
5x2
x2
8x1 €
5x2
x1 €
x2
x1 , x2 ß s1 , s2 , s3 , s4, a4
€ s1
€ s2
€ s3
0
En initial basis bestående af (s1 , s2, s 3, a4) er brugbar i ovenstående model, idet
(x1 , x2 , s4 ) œ (0, 0) Ê (s1 , s2 ßs 3, a 4) œ (150, 20, 300, 25)
Men en løsning til modellen er kun brugbar i den oprindelige model, hvis
kunstvariablen a4 antager værdien 0. Dette opnås ved at sætte M lig med et meget
stort positivt tal, idet a4 dermed aldrig kan indgå i en optimal basis (hvis det
oprindelige problem har brugbare løsninger).
Lad os herefter bruge simplex algoritmen på vanlig vis:
Æ
x1
x2
s1
Basis cB
50
40
0
s1
0
3
5
1
s2
0
0
1
0
s3
0
8
5
0
a4
•M
1
1
0
z4
•M
•M
0
c4 • z4
50 € M 40 € M 0
Basis cB
s1
0
s2
0
s3
0
x1
50
z4
c4 • z4
x1
50
0
0
0
1
50
0
x2
40
2
1
•3
1
50
• 10
s1
0
1
0
0
0
0
0
s2
0
0
1
0
0
0
0
s2
0
0
1
0
0
0
0
s3
0
0
0
1
0
0
0
s4
0
0
0
0
•1
M
•M
Æ
s4
s3
0
0
0
1
0
0
0
a4
•M
•3
0
•8
1
50
• M • 50
0
3
0
8
• 1
• 50
50
Æ
Basis
s1
s2
s4
cB
0
0
0
x1
50
0
0
0
x1
50
1
z4
50
c4 • z4
0
x2
40
25
8
1
• 38
5
8
250
8
70
8
s1
0
1
0
0
s2
0
0
1
0
0
0
0
0
0
0
s3
0
• 38
0
•
1
8
1
8
50
8
50
8
a4
•M
0
0
0
1
•M
0
s4
0
0
0
1
0
0
0
75
2
20
25
2
75
2
1875
150
20
300
25
• 25M
75
20
100
25
1250
Basis
x2
Bemærk:
cB
40
x1
50
0
x2
40
1
s2
0
0
0
s4
0
0
0
x1
50
1
0
z4
50
40
c4 • z4
0
0
s1
0
•
•
•
8
25
8
25
3
25
5
25
14
5
14
5
s2
0
0
s3
0
3
• 25
1
0
0
0
0
•
3
25
2
25
5
25
26
5
26
5
s4
0
0
12
0
8
1
17
0
30
0
1980
0
Tableau no. 2 definerer en brugbar løsning til det oprindelige problem, fordi
kunstvariablen antager værdien 0. a4 vil aldrig indgå i basis igen, fordi
værdien i c4 • z4 rækken altid vil nære negativ. Vi kan derfor i de følgende
tableauer ignorere a4 -søjlen.
Sammenlign bevægelserne fra basis til nabobasis grafisk!
Håndtering af negative højre-sider:
->
multiplicer med • 1 på begge sider.
Håndtering af ligheder:
->
8
Ú
Ý
! a34 x4 Ÿ b3
Ý
Ý
8
! a34 x4 œ b3 Ê Û 4œ"
8
Ý
4œ"
Ý
Ý ! a34 x4 b3
Ü 4œ"
Sammenfatning af procedurer til etablering af LP i tableau form:
1)
Hvis problem indeholder ligninger eller uligheder med negative højresider
multipliceres på både venstre- og højreside med • 1 (husk at vende uligheder!).
Alle højresider er nu ikke-negative.
2)
Ÿ uligheder: Transformer til lighed ved addition af ikke-negativ slack på venstresiden med kriteriekoefficient 0.
3)
uligheder: Transformer til lighed ved subtraktion af ikke-negativ
surplus på venstre-siden med kriterie koefficient 0. Introducer artificial variabel med
koefficient '1' i begræsningen selv og '0' i alle andre begræsninger. Eliminer denne
fra enhver optimal løsning ved at give den kriteriekoefficient • M, hvor M i
princippet er et meget stort tal.
4)
œ relationer: Introducer artificial variabel med koefficient '1' i begræsningen selv
og '0' i alle andre begræsninger. Eliminer denne fra enhver optimal løsning ved at give
den kriteriekoefficient • M, hvor M i princippet er et meget stort tal.
Håndtering af lighedsbetingelser og negative højresider:
max
s.t.
6x1
€
3x2
€ 4x3 € x4
• 2x1
x1
•
.5x2
€ x3 • 6x4 œ • 60
€ x3 € 23 x4 Ÿ 20
• 5x3
Ÿ • 50
•
x1 , x2, x3, x4
x2
0
Negative højresider konverteres til positive højresider ved multiplikation med • 1
på begge sider af relationen:
Ì
max
s.t.
6x1
2x1 €
x1
€
3x2
.5x2
x2
x1 , x2, x3, x4
€ 4x3 € x4
• x3 € 6x4 œ
€ x3 € 23 x4 Ÿ
€ 5x3
60
20
50
0
I ligning 1) introduceres en kunst-variabel, i ulighed 2) en slack-variabel og i
ulighed 3) en surplus- og en kunst-variabel:
max
6x1 €
3x2
s.t.
2x1 €
x1
.5x2
€ 4x3 € x4 • Ma1
• x3 € 6x4 € a 1
€ x3 € 23 x4
€ s2
x2 € 5x3
x1 , x2, x3, x4 , s2, s 3, a 1, a3 0
• Ma3
• s3 € a3
œ
œ
œ
60
20
50
Bemærk: Nu er en initial basis bestående af slack- og surplusvariable ikke brugbar,
fordi surplusvariable antager negativ værdi. Vi starter derfor med en kunstig basis
bestående af slack- og kunstvariable. Men kunstvariable drives ud af basen qua
deres kriteriekoefficient.
Løsning af minimeringsproblemer:
Betragt følgende LP:
min ! c4 x4
8
4œ"
! a34 x4 Ÿ b3 , 3 œ 1, ...., 7
8
s.t.
4œ"
x4
!
Lad (x‡4 ) betegne en optimal basisløsning til dette LP. Så er (x‡4 ) også en optimal
basisløsning til følgende LP:
! • c4 x4
8
max
4œ"
! a34 x4 Ÿ b3 , 3 œ 1, ...., 7
8
s.t.
4œ"
x4
!
Et minimeringsproblem kan derfor løses ved transformation til maximering af den negative
objektivfunktion.
Alternativt: Vi kunne have ændret reglen for identifikation af indgående variabel til
mængden af p.t. ikke-basisvariable med en negativ indgang i c4 • z4 -rækken.
Eksempel p. 244-245.
Specialtilfælde:
1)
2)
3)
4)
5)
Infeasibility
Unboundedness
Alternative løsninger
Degenererede basis løsninger
Håndtering af frie variable
Infeasible solutions:
max
x1
€
x2
s.t.
x1
€
x1
€
x1 , x2 0
2x2
x2
Basis cB
a1
•M
s2
0
z4
c4 • z4
Basis cB
a1
•M
x2
1
z4
c4 • z4
10
Ÿ 4
x1
x2
Æ
s1
1
1
1
•M
1 €M
1
2
1
• 2M
1 € 2M
0
•1
0
M
•M
x1
x2
1
0
1
1
0
1
•1
1
M €1
•M
s2
0
0
1
0
0
a1
•M
1
0
•M
0
s1
s2
0
•1
0
M
•M
0
•2
1
2M € 1
• 2M • 1
a1
•M
1
0
M
0
10
4
• 10M
2
4
4 • 2M
Dette tableau er optimalt, men indeholder en kunstvariabel på niveau større end
nul. Det betyder, at det underliggende problem ikke besidder brugbare løsninger,
fordi kunstvariablen aldrig vil kunne antage en værdi lig nul.
Et infeasible LP kendes derfor ved, at det indeholder mindst en kunstvariabel på
niveau større end nul i en optimal basis.
Unbounded solutions:
max
s.t.
x1
€
x1
•
x1 , x2 0
x2
x2
Ÿ 1
Æ
Basis cB
s1
0
z4
c4 • z4
x1
1
1
0
1
x2
1
•1
0
1
Æ
s1
0
1
0
0
1
0
Basis cB
x1
1
z4
c4 • z4
x1
1
1
1
0
x2
s1
1
•1
•1
2
0
1
1
•1
1
1
Heraf ses, at en tilvækst i p.t. ikke-basis variabel x2 indebærer en tilvækst i
objektivfunktionsværdien på 2 enheder. Men x2 kan bringes til at vokse uendelig
meget, fordi en tilvækst i x2 indebærer en tilvækst i samtlige aktuelle basisvariable
(her altså i x1 ). Dette følger af, at alle elementer i pivotsøjlen i xB3 -rækkerne (her
altså x1 -rækken) er mindre end eller lig med nul. Det betyder, at det underliggende
problem ikke besidder en endelig optimal løsning, men karakteriseres som
unbounded.
Et unbounded LP kendes derfor ved, at det indeholder en opdateret søjle for en p.t.
ikke basisvariabel med positiv indgang i c4 • z4 rækken og ikke-positive indgange i
samtlige xB3 -rækker, så ingen aktuel basis variabel aftager i værdi, når pågældende
ikke-basis variabel bringes til at antage en større værdi.
Alternative optimalløsninger:
max
s.t.
x1
€
2x1
€
x1 , x2 0
x2
2x2
Ÿ 4
Basis cB
s1
0
z4
c4 • z4
x1
1
2
0
1
Æ
x2
1
2
0
1
Basis
x1
x1
1
1
x2
1
1
z4
1
1
c4 • z4
0
0
cB
1
s1
0
1
0
0
4
0
s1
0
•
1
2
1
2
1
2
2
2
Tableauet er optimalt, fordi ingen indgang i c4 • z4 -rækken er positiv. Men aktuel
ikke-basis variabel x2 har værdien 0 i c4 • z4 rækken. Heraf følger, at x2 kan
introduceres i basis uden at den optimale objektivfunktionsværdi ændres. En basis
med x2 œ 1er derfor også optimal. Problemet har altså flere optimale basisløsninger.
Et LP med alternative løsninger kendes ved, at et optimalt tableau indeholder en
opdateret søjle for en p.t. ikke basisvariabel med 0-indgang i c4 • z4 -rækken.
Degenererede basisløsninger:
max
50x1
€
40x2
s.t.
3x1
€
5x2
x2
5x2
8x1 €
x1 , x2 0
Ÿ
Ÿ
Ÿ
175
20
300
Æ
Basis cB
s1
0
s2
0
s3
0
z4
c4 • z4
Basis
s1
s2
x1
cB
0
0
50
x1
50
3
0
8
0
50
x1
50
0
0
1
z4
50
c4 • z4
0
x2
40
5
1
5
0
40
x2
40
25
8
1
5
8
250
8
70
8
s1
0
1
0
0
0
0
s2
0
0
1
0
0
0
s1
0
1
0
0
Æ
s2
0
0
1
0
0
0
0
0
s3
0
0
0
1
0
0
175
20
300
0
s3
0
• 38
0
•
1
8
50
8
50
8
125
2
20
75
2
1875
Basis
x2
cB
40
x1
50
0
x2
40
1
s1
0
s2
0
0
0
•
x1
50
1
0
•
z4
50
40
c4 • z4
0
0
•
8
25
8
25
5
25
14
5
14
5
s2
0
0
s3
0
3
• 25
20
3
25
5
25
26
5
26
5
0
1
0
0
•
0
25
2050
Den optimale basis løsning er degenereret, fordi en basis variabel antager værdien 0.
Det betyder, at vi ikke kan se forskel på denne basis variabel og sættet af ikke-basis
variable, der også har værdi 0.
Degenererede løsninger etableret i løbet af simplex algoritmen er problematiske,
fordi de kan betyde, at algoritmen cykler. Et basis skift indebærer ikke en forbedring
af objektivfunktionsværdien, hvis udgående basis variabel har værdi 0 og indgående
variabel bringes i basis med værdi 0.
Degenererede løsninger opstår, hvis et hjørnepunkt er overdetermineret. I
eksempler som ovenfor med 2 beslutningsvariable x1 og x2 er et hjørnepunkt
defineret ved skæringen mellem 2 begrænsninger. Men i det aktuelle eksempel
skærer alle 3 begrænsninger hinanden i det samme punkt, som derfor er
overdetermineret.
Beslutningsvariable, som kan være negative:
max
50x1
€
40x2
s.t.
3x1
€
8x1
x1
x2
€
5x2
x2
5x2
Ÿ
Ÿ
Ÿ
150
20
300
• 50
0
Introducer komplementær variabel til x1:
• 50
x1
Heraf følger
w
x1 œ x1 • 50
w
w
Ê x1 • x1 œ • 50, x1
0
LP kan derfor omskrives:
w
max
50(x1 • 50)
s.t.
3(x1 • 50)
w
w
8(x1 • 50)
w
x1 , x2
€
40x2
€
€
5x2
x2
5x2
€
40x2
€
5x2
x2
5x2
Ÿ
Ÿ
Ÿ
150
20
300
0
eller
w
max
50x1
s.t.
3x1
w
w
€
8x1
w
x1 , x2
( • 2500)
Ÿ
Ÿ
Ÿ
300
20
700
0
Dette LP er i standardform og løses på sædvanlig måde.
max
50x1
€
40x2
s.t.
3x1
€
8x1
x2
€
0
5x2
x2
5x2
Ÿ
Ÿ
Ÿ
150
20
300
Omskriv den frie variabel x1 til differensen mellem to ikke negative variable:
x1 œ x€
• x•
1ß
1
x€
, x•
1
1
0
Reformuler herefter modellen
max
50x€
1
• 50x•
1 €
40x2
s.t.
3x€
1
• 3x•
1 €
5x2
x2
5x2
8x€
• 8x•
1 €
1
€ •
x1 , x1 x2 0
Ÿ
Ÿ
Ÿ
150
20
300
Dette problem er i standardformat og ækvivalent til det oprindelige problem.