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
© Copyright 2024