Beboerinformation januar/februar 2015

Emneopgave: Lineær- og kvadratisk programmering:
LINEÆR PROGRAMMERING
I lineær programmering løser man problemer hvor man for en bestemt funktion ønsker at finde enten en
maksimering eller en minimering under nogle betingelser, altså en optimal løsning på et problem.
Maksimum og minimum bruger vi når vi vil finde en maksimering af f.eks. omsætning eller indtægter, eller
f.eks. minimere omkostninger ved fremstillingen af produkter. Betingelserne skrives y > ax + b eller y < ax + b
De rette linjer vil i de fleste tilfælde (de tilfælde hvor der er en optimal løsning) omkredse et område ind mod xog y-aksen, kaldet vores polygonområde eller mulighedsområde.
Det er inden for dette område at alle de gyldige løsninger på problemet findes. Den optimale løsning findes for
lineær programmering altid i et af hjørnepunkterne.
Objektfunktionen er forskriften for den lineære programmeringsfunktion z, som også er navnet på den
tredjeakse i koordinatsystemet.
Til vores funktion z stilles der nogle ”begrænsninger”. Det skrives u.b., som står for at vores objektfunktion z er
under betingelse af de nævnte begrænsninger.
Polygonområdet (eller mulighedsområdet) er det område vores begrænsninger giver os, f.eks. det område
hvor vores produktion, omsætning eller omkostninger ligger. Indenfor dette område er det hjørnerne der
opstår i skæringerne mellem vores begrænsninger, hvor vi oftest finder vores maksimum eller minimum, i
punktet hvor begrænsningerne skære hinanden eller der hvor de skære akserne x1 eller x2.
Hvilket et af disse hjørner vores min. eller maks. ligger i, bestemmes af vores niveaulinje.
Niveaulinjer (eller –kurver, generelt) svarende til niveauet t (som er en konstant). Det skrives: ax + by + c = t.
Det vi er interesseret i ved denne niveaulinje er dens hældning. Den bestemmer hvor vores max eller min
ligger. Hvis vi skal finde et maksimum flytter vi t med en konstant hældning fra f.eks. t(0,0) ud til det yderst
1
liggende punkt inden for polygonområdet. Og omvendt hvis vi vil finde minimum sætter vi vores N(t) i et ydre
punkt og bestemmer hvilket punkt der ligger længst væk fra N(t) som vores min.
Niveaulinjen regner vi os frem til ved at isolere y efter vi har sat z=0.
Problematikker ved lineær programmering:
Der er 4 forskellige løsninger:
1. LP-problemet har én optimal løsning:
Denne løsning er nævnt i overstående. Den forekommer når
niveaulinjen og vores grænseværdier møder hinanden i et
yderpunkt. Det punkt er så den optimale løsning.
2. Problemet har uendelig mange optimale løsninger (øverst til højre):
Vores niveaulinje er parallel med en af vores begrænsninger og
derfor ligger vores minimum eller maksimum i alle punkterne på
denne linje, og der altså uendeligt mange optimale løsninger.
3. Problemet har ingen brugbare løsninger (midterst t.h.):
Vores begrænsningers polygonområde ligger på forskellige sider af
vores begrænsningslinjer. Begrænsningerne definerer altså ikke et
mulighedsområde, og der vil ikke være nogen optimal løsning.
4. Problemet er ubegrænset (nederst t.h.):
Her er vores polygonområde ubegrænset i den retning vores niveau
linje går mod så derfor er vores min eller max punkt udefineret.
2
SIMPLEX METODEN
En metode til at løse lineære programmerings-problemer er simplex metoden.
Fordelen ved simplex metoden er at man kan løse LP-problemer med mange flere variabler end man kan hvis
man løser dem grafisk, vha. niveaukurver.
Da den optimale løsning på et lineært programmerings-problem som sagt altid ligger i et hjørnepunkt mellem 2
begrænsninger kan man, i stedet for at sidde og tjekke hver enkelt hjørnepunkt, med simplex metoden hele
tiden bestemme om det punkt man er i, er den optimale løsning. Hvis ikke det er, vil et af hjørnepunkterne ved
siden af give en større objektfunktion. Med simplex metoden kan man altså systematisk undersøge
hjørnepunkterne indtil den optimale løsning er fundet.
Simplex metoden opererer ud fra 5 trin, som her vil blive illustreret vha. et eksempel.
max z  3 x1
u.b.
x1
 x2
2 x3
 x2
 x3
 5
2 x2
 x3
 4
 3
x1
x1 ,
x2 ,
x3
 0
1. trin:
I første trin introducerer vi slack variabler, her
uligheder i begrænsningsområdet til ligninger.
max z  3x1
u.b.
x1
 x2
2 x3
 x2
 x3
2 x2
 x3
 5
 x5
 4
 x6
x1
x1 ,
 x4
x2 ,
x3
. De indsættes med det formål at gøre vores
 3
 0
2. trin:
I næste trin opstiller vi et såkaldt simplex tableau (tabel). Et simplex tableau har til formål at opstille en løsning
på vores problem der overholder alle begrænsningerne, på en praktisk måde. Øverst i tableauet skriver vi en
ligning for hver af begrænsningerne, nederst skrives objektfunktionen.
x4
x5
x6
z




5  x1
4 2 x2
3  x1
0 3x1
 x2
 x3
 x3
 x2
2 x3
3
Variablerne på venstresiden af lighedstegnene kaldes basen, og de er forskellige fra 0. Alle variablerne på
højresiden kaldes non-basen, og de er lig med 0.
3. trin:
Det 3. trin er at tjekke om vores objektfunktion har nået maksimum. Det tjekker man ved at observere den
nederste ligning i simplex tableauet, altså objektfunktionen – hvis der er en eller flere variabler med en positiv
koefficient, kan objektfunktionen maksimeres yderligere.
Hvis alle variablerne har negative koefficienter har objektfunktionen nået et maksimum, og man kan gå direkte
til trin 5. Dette skyldes at hvis man maksimerer en variabel med en negativ koefficient, vil det sænke
objektfunktionen. En variabel med en positiv koefficient vil derimod øge objektfunktionen.
I vores eksempel kan det ses at
maksimum endnu.
har koefficienten +3, og
har koefficienten +2 – vi har derfor ikke nået
4. trin:
Det næste trin er at maksimere en af de variabler med en positiv koefficient i objektfunktionen. Det gøres ved
først at undersøge hvor stor den kan blive i hver enkelt ligning og samtidigt overholde at ingen af variablerne i
basen må være 0 eller under. Derefter isoleres variablen i den af ligningerne hvor begrænsningen er stærkest.
I vores eksempel kan både og maksimeres, her er valgt.
Den første ligning giver en begrænsning på 5 til , og den tredje giver en begrænsning på 3 til . Den
stærkeste begrænsning til er altså 3, og vi isolerer så i 3. ligning og får
. Dette udtryk
substitueres nu for i de andre ligninger, og vi får følgende udregninger:
(
(
)
)
Med disse udregninger kan vi nu opstille 2. simplex tableau:
x1
x4
x5
z




3  x6
2  x2
4 2 x2
9  x2
 x3
 x3
2 x3
 x6
3x6
På samme måde som i trin 3, tjekker vi nu om objektfunktionen har nået maksimum. Da der stadig er en
variabel med en postiv koefficient, , er udtrykket ikke ved sit maksimum endnu. Denne variabel maksimerer
vi nu, på samme måde som vi gjorde før. Den anden ligning giver en begrænsning på 2, den tredje ligning
giver en begrænsning på 4. Den stærkeste begrænsning er 2, og isoleres så i 2. ligning og får
Dette substitueres så for i de andre ligninger, og vi får:
(
)
(
)
4
Og vi kan nu opstille 3. simplex tableau:
x1
x3
x5
z
 3  x6
 2  x2
 2 3x2
 13  x2
 x4
 x4
2 x4
 x6
 x6
 x6
Da under vores omskrivninger har skiftet fortegn er der igen en variabel med en positiv koefficient, og vi
gentager trin 4 for det her simplex tableau.
Da anden ligning ikke sætter nogen begrænsning på
og vi får ligningen
, isoleres den i 3. ligning som giver en begrænsning på ,
. Ligesom før, substitueres det for
(
)
(
)
i de andre ligninger.
Og 4. simplex tableau opstilles:
x1

3
 x6
x2

x3

z

2
1
 x4
3
3
8
2
 x4
3
3
41
5
 x4
3
3
1
 x5
3
1
 x5
3
1
 x5
3
1
 x6
3
2
 x6
3
4
 x6
3
5. trin:
Da der nu ikke er flere variabler med positive koefficienter i objektfunktionen er udtrykket maksimeret, og vi
har den optimale løsning til vores problem. Variablerne i non-basen, variablerne på højre side af lighedstegnet,
er alle lig 0. Indsættes dette i det 4. simplex tableau, fås det at
og
.
For en sikkerheds skyld bør beregningerne tjekkes igennem ved at indsætte vores fundne værdier i vores
begrænsninger.
max z  3 x1
u.b.
x1
 x2
2 x3
 x2
 x3
 5
2 x2
 x3
 4
 3
x1
x1 ,
x2 ,
x3
 0
5
Det kan da ses at begrænsningerne er overholdt, og dette er netop den optimale løsning.
KVADRATISK PROGRAMMERING
Kvadratisk programmering beskæftiger sig som lineær programmering med at beregne ekstrema for
objektfunktioner, hvis tilgængelige løsningsmængde begrænses. Kvadratisk programmering adskiller sig fra
lineær programmering ved at beskæftige sig med objektfunktioner og evt. begrænsninger, hvor en eller flere
variable optræder i anden potens. Dette er i økonomisk sammenhæng typisk relevant ved bearbejdning af
problemstillinger, der omhandler prisdifferentiering på flere markeder, hvor et eller flere kendetegnes ved
monopollignende forhold, hvilket bør betyde, at efterspørgslen falder proportionalt med effektorens udbud,
således at prisen ikke er konstant, men skal udtrykkes som en funktion af solgt kvantum. Betingelserne for
prisdifferentiering kendetegnes ved forskellige efterspørgselskurver på markederne og adskillelsen af disse.
I vores arbejde beskæftiger vi os kun med op til to uafhængige variable, der så kommer til at repræsentere to
produkter, der afsættes på to separate markeder. I forbindelse med prisdifferentiering resulterer dette i
følgende fire kombinationer af parametrene fuldkommen konkurrence (f) og monopol (m): Første mulighed er
to produkter, der afsættes på hvert sit marked, på hvilke en ækvilibriumspris har indstillet sig som følge af
fuldkommen konkurrence (altså ff på fig. 1). Endvidere eksisterer muligheden, at det ene produkt skal afsættes
på et marked med fuldkommen konkurrence, mens det andet skal afsættes på et med monopoltilstande (fm og
mf på fig. 1), og til sidst har vi mulighed fire, at begge produkter afsættes på hvert sit marked, hvorpå der
hersker monopoltilstande (mm på fig. 1).
1
2
3
4
ff
fm
mf
Mm
Fig. 1
6
Første mulighed medfører en objektfunktion, hvis uafhængige variable kun forefindes i første potens grundet
den konstante pris, og falder følgelig under den lineære programmerings domæne. Mulighed to og tre er
ækvivalente og vil resultere i en kriteriefunktion, hvis graf vil være en parabel (fig. 2), og endelig har vi den
fjerde mulighed med to monopolmarkeder, hvilket vil føre til en kriteriefunktion, hvis afbildning bliver cirkulær
(fig. 4) eller elliptisk (fig. 3).
Mulighed 4: mm
fig. 3 (ovenfor): En hypotetisk ellipse,
hvis punktmængdekan beskrives ved flg.
sammenhæng:
Mulighed 2+3: mf
fig. 2 (ovenfor): Eksempler på parabelbuer.
Parabler har standardforskriften:
fig. 4 (til højre): En hypotetisk cirkel, hvis punktmængden
kan beskrives ved:
7
Fremgangsmåden for løsning af kvadratiske programmeringsproblemer er den samme som for lineære, nemlig:
1) Definer de uafhængige variable x og y
2) Formuler begrænsninger i produktionsfaktorerne som uligheder for x og y
3) Indtegn polygonområdet svarende til løsningsmængden for ulighederne (mulighedsområdet)
4) Formuler kriteriefunktionen (det udtryk, der skal optimeres)
5) Bestem og indtegn niveaukurver og marker evt. niveauets retning med en pil for at lette forståelsen af
hvorledes en udvikling ændrer kriteriefunktions deling af punkter med mulighedsområdet.
6) Konkluder vha. niveaukurverne og mulighedsområdet den kombination af x og y, der optimerer
kriteriefunktionen.
Kilde for ovenstående: s. 127 i Matematik A, Hansen et al. (lettere parafraseret)
Se evt. eksempler s. 127-136
8
a)
Den samlede omsætning må kunne udtrykkes som summen af varernes pris multipliceret med afsat mængde,
hvilket resulterer i følgende: (
)
(
)
(
)
b)
Først vil jeg omformulere N(t), indtil den minder om ellipse-formlen, da vi grundet lineær prisudvikling for
begge varer må antage to monopolmarkeder:
For t = 25200 (indtegnet på fig. 5) gælder det, at:
Hvilket var, hvad søgtes vist.
9
c)
Grundet t's entydigt negative koefficienter sammenholdt med dens placering i nævner (nævnerne er
jf. ellipsens ligning fig. 3 kvadratet på halvaksernes længde og dermed bestemmende for ellipsens
dimensionering) vil en forøgelse af t forårsage en reduktion af ellipsens omkreds, hvilket betyder, at ellipsens
centrum (60;75) er maksimum for kriteriefunktionen og dermed den ønskede, optimale fordeling af varerne,
altså 60 x A og 75 x B. Da (60;75) er beliggende indenfor den betingende uligheds punktmængde, er den en
gyldig løsning, og vi har fundet, hvad vi ville.
Fig. 5: Skraveret mulighedsområde samt niveaukurven for N(25200) med indtegning af halvakser, hvis
skæringspunkt angiver centrum for ellipsen og som nævnt i opgave c, maksimum for kriteriefunktionen.
10