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