660 likes | 815 Views
Managerial Decision Modeling. Cliff Ragsdale 6. edition. Chapter 6 Integer Linear Programming. Introduksjon. Når en eller flere variabler i et LP problem må anta heltallsverdier har vi et heltallsproblem , Integer Linear Programming (ILP) problem. ILP problemer er ganske vanlige:
E N D
ManagerialDecisionModeling Cliff Ragsdale 6. edition Chapter 6 Integer Linear Programming BØK350 OPERASJONSANALYSE
Introduksjon • Når en eller flere variabler i et LP problem må anta heltallsverdier har vi et heltallsproblem, IntegerLinear Programming (ILP) problem. • ILP problemer er ganske vanlige: • Fordele arbeidsstyrke • Produsere fly • Heltallsvariabler gjør oss også i stand til å lage mer nøyaktige modeller for en mengde økonomiske problemer. BØK350 OPERASJONSANALYSE
Heltallsrestriksjoner • Heltallsbetingelser er enkle å angi, men problemet blir ofte mye vanskeligere (og noen ganger umulig) å løse. BØK350 OPERASJONSANALYSE
Forenkling • I forenklingen ser en ganske enkelt bort fra heltallsbetingelsene. BØK350 OPERASJONSANALYSE
Mulighetsområdet og heltallsløsninger X2 1·X1+ 3·X2≤ 8,25 X1 ≥ 0 Et uendelig antall mulige løsninger på LP problemet, men bare 11 mulige heltallsløsninger. Mulighetsområdet til LP problemet 2,75 De røde punktene angir mulige heltallsløsninger 2 1 2,5·X1 + 1·X2≤8,75 X2 ≥ 0 2 0 3 3,5 8,25 1 X1 BØK350 OPERASJONSANALYSE
Løsning av ILP problemer Når en løser et LP-forenklet heltallsproblem, kan en noen ganger være heldig å få en optimal heltallsløsning. Det var tilfellet i det opprinnelige Blue Ridge Hot Tubs problemet i tidligere kapitler. Men hva hvis vi reduserer tilgjengelig arbeidstid til 1520 timer og tilgjengelig mengde rør til 2650 dm ? BØK350 OPERASJONSANALYSE
LP problem med desimalløsning BØK350 OPERASJONSANALYSE
Grenser Den optimale løsningen til et LP-forenklet heltallsproblem gir oss en grense for den optimale verdien på målfunksjonen. For maksimerings problemer er den optimale forenklede målfunksjonen en øvre grense for den optimale heltallsløsningen. For minimeringsproblemer er den optimale forenklede målfunksjonen en nedre grense for den optimale heltallsløsningen. BØK350 OPERASJONSANALYSE
Avrunding • Det er fristende å ganske enkelt avrunde en desimalløsning til nærmeste heltallsløsning. • Generelt vil dette ikke virke tilfredsstillende: • Den avrundede løsningen kan være umulig. • Den avrundede løsningen kan være suboptimal. BØK350 OPERASJONSANALYSE
Hvordan avrunding nedover kan skape en umulig løsning X2 3 2 Optimal forenklet løsning Ikke mulig løsning som resultat av å runde av nedover 1 0 X1 0 1 2 3 4 BØK350 OPERASJONSANALYSE
Branch-and-Bound Branch-and-Bound (B&B) algoritmenkan brukes for å løse ILP problemer. Krever løsning av en serie med LP problemer kalt ”kandidat problemer”. Teoretisk kan dette løse et hvilket som helst ILP. I praksis krever det ofte enormtmye regnekraft (og tid). BØK350 OPERASJONSANALYSE
Stoppe - regler • Fordi B&B tar så lang tid, tillater de fleste ILP pakker å angiensuboptimalitets toleranse faktor. • Den lar deg stoppe straks en heltallsløsning er funnet som er innenfor en gitt % av den globale optimaleløsningen. • Grenseroppnåddfra LP-forenklingen er her nyttige. • F.eks. • LP forenklingenhar optimal verdi på målfunksjonen lik $64.306. • 95% av $64.306 er $61.090. • En heltallsløsning med verdi på målfunksjonenlik $61.090 eller mer må derfor ligge innenfor 5% av denoptimale løsningen. BØK350 OPERASJONSANALYSE
Bruk av Solver på heltall • Barebeslutningsvariabler kan ha heltallskrav. BØK350 OPERASJONSANALYSE Angi heltall som en restriksjon på de aktuelle beslutningsvariablene:
IntegerTolerance Under Engine tab i TaskPane, IntegerTolerance. I den nye Solver (V9 osv.) er standard IntegerTolerance = 0 Forbedret B&B algoritmer (strongbranching) gjør at Solver raskere finner gode heltallsløsninger. BØK350 OPERASJONSANALYSE
Angi toleranse i Solver Hvis IntegerTolerance > 0, så er det ikke sikkert at optimal løsning er funnet: BØK350 OPERASJONSANALYSE
Optimal heltallsløsning BØK350 OPERASJONSANALYSE
Et skiftplanleggingsproblem: Behovet for antall ansatte varierer med ukedagene. Lønn pr. ansatt pr. uke er lavest for de som har fri i helgene (lørdag og søndag). BØK350 OPERASJONSANALYSE
Definer beslutningsvariablene X1 = antall arbeidere tildelt skift 1 X2 = antall arbeidere tildelt skift 2 X3 = antall arbeidere tildelt skift 3 X4 = antall arbeidere tildelt skift 4 X5 = antall arbeidere tildelt skift 5 X6 = antall arbeidere tildelt skift 6 X7 = antall arbeidere tildelt skift7 BØK350 OPERASJONSANALYSE
Definer målfunksjonen Lønnener $131 pr. dag, med tillegg $25 pr. dag for helg(lørdagogsøndag). De som jobber 5 ukedagerharukelønn 1315 = 655 De som i tillegg jobber en helgedaghar 655 + 25 = 680 De som jobber to helgedagerhar 655 + 252 = 705. Minimer totale lønnskostnader: MIN: 680X1 +705X2 +705X3 +705X4 +705X5 +680X6 +655X7 BØK350 OPERASJONSANALYSE
Definere restriksjonene • Behov for arbeidere hver ukedag: 0X1 + 0X2 + 1X3 + 1X4 + 1X5 + 1X6 + 1X7 >= 27 } Mandag 1X1 + 0X2 + 0X3 + 1X4 + 1X5 + 1X6 + 1X7 >= 22 } Tirsdag 1X1 + 1X2 + 0X3 + 0X4 + 1X5 + 1X6 + 1X7 >= 26 } Onsdag 1X1 + 1X2 + 1X3 + 0X4 + 0X5 + 1X6 + 1X7 >= 25 } Torsdag 1X1 + 1X2 + 1X3 + 1X4 + 0X5 + 0X6 + 1X7 >= 21 } Fredag 1X1 + 1X2 + 1X3 + 1X4 + 1X5 + 0X6 + 0X7 >= 19 } Lørdag 0X1 + 1X2 + 1X3 + 1X4 + 1X5 + 1X6 + 0X7 >= 18 } Søndag • Ikke-negativitets-betingelsene: Xi >= 0 for allei BØK350 OPERASJONSANALYSE
Standard LP i regneark En kolonne for hver variabel, en LHS (total)- og en RHS -kolonne. (Kolonne C – I for variabler, J for LHS/total og L for RHS) En linje for verdier til beslutningsvariablene. (Linje 3) En linje for målfunksjonen. (Linje 4) En linje for hver restriksjon. (Linje 6 – 12) BØK350 OPERASJONSANALYSE
Alternativ LP formulering Formler beregner koeffisientene, istedenfor manuell inntasting av beregnede verdier. BØK350 OPERASJONSANALYSE
Alternativ layout LP-modellen snudd 90 grader. Husker du trikset? Copy Paste &Transpose BØK350 OPERASJONSANALYSE
Binær -variabler • Binærevariabler er heltallsvariabler som bare kan anta to verdier: • 0 eller • 1 • Slike variabler kan være meget nyttige i en mengde praktiske modelleringssituasjoner. BØK350 OPERASJONSANALYSE
Et kapitalbudsjetteringsproblem: • Selskapet har $250,000 disponibelt år 1 til å investere i nye prosjekter. • Det har budsjettert $75,000 til fornyet dekning til disse prosjektene i år 2. • Og det er budsjettert inntil $50,000 per år for årene 3, 4, og 5. BØK350 OPERASJONSANALYSE
Definere beslutningsvariablene Vi kan altså investere i prosjektene 1 – 6, men bare i hele prosjekter. Vi kan heller ikke investere i mer enn ett prosjekt av samme type, dvs. prosjektene kan ikke dupliseres. BØK350 OPERASJONSANALYSE
Definere målfunksjonen Maksimer total netto nåverdi av de valgte prosjektene. MAX: 141X1 + 187X2 + 121X3 + 83X4 + 265X5 + 127X6 Merk at de prosjektene som ikke velges «nulles» ut. BØK350 OPERASJONSANALYSE
Definere restriksjonene • Kapitalrestriksjoner 75X1 + 90X2 + 60X3 + 30X4 + 100X5 + 50X6<= 250 } år 1 25X1+ 35X2 + 15X3 + 20X4 + 25X5 + 20X6 <= 75 } år 2 20X1+ 0X2 + 15X3 + 10X4 + 20X5 + 10X6 <= 50 } år 3 15X1+0X2 + 15X3 + 5X4 + 20X5 + 30X6 <= 50 } år 4 10X1+ 30X2 + 15X3 + 5X4 + 20X5 + 40X6 <= 50 } år 5 • Binærrestriksjoner Xi <= 1, i = 1, 2, ..., 6 Xi >= 0, i = 1, 2, ..., 6 Alle Ximå være heltall BØK350 OPERASJONSANALYSE
Binærvariabler Solver har en “bin” mulighet forangivelse av binære variabler (enten 0 eller 1). Du slipper da å angi 3 betingelser (0 ≤ heltall ≤ 1). BØK350 OPERASJONSANALYSE
Implementere LP modellen En kolonne for hver variabel, en LHS (total)- og en RHS -kolonne. (Kolonne C – H for variabler, I for LHS/total og K for RHS) En linje for verdier til beslutningsvariablene. (Linje 4) En linje for målfunksjonen. (Linje 5) En linje for hver restriksjon. (Linje 6 – 10) BØK350 OPERASJONSANALYSE
Alternativ lay-out LP-modellen snudd 90 grader. Copy Paste &Transpose. Samt litt formatering. BØK350 OPERASJONSANALYSE
Binære Variabler & Logiske Betingelser • Binære variabler er også nyttige ved modellering av en rekke logiske betingelser. • Av prosjektene 1, 3 & 6, kan maksimalt ett velges: • X1 + X3 + X6 <= 1 • Av prosjektene 1, 3 & 6, må nøyaktig ett velges: • X1 + X3 + X6 = 1 • Prosjekt 4 kan ikke velges med mindre også prosjekt5 velges: • X4 <= X5eller X4– X5 <= 0 BØK350 OPERASJONSANALYSE
Faste kostnader • Mange beslutninger medfører at faste kostnader endres: • Kostnad ved leasing, leie eller kjøp av utstyr som kreves hvis et spesielt alternativ velges. • Klargjøringskostnader som er nødvendige for å forberede en maskin eller et produksjonsutstyr til å produsere en annen type produkt. • Kostnaden ved å konstruere nytt produksjonsutstyr som kreves hvis en bestemt beslutning fattes. • Kostnader ved å ansette mer personale som vil bli nødvendig hvis en bestemt beslutning tas. BØK350 OPERASJONSANALYSE
Eksempel med faste kostnader : • Tabellen viser produktenes tidsforbruk og tilgjengelig tid i de tre produksjonsavdelingene. • Den viser også produktenes dekningsbidrag pr. stk, samt klargjøringskostnader før en produksjonsserie. BØK350 OPERASJONSANALYSE
Definere beslutningsvariablene Yiangir om vi har klargjort til produksjon av produkt Xi. Yi = binærvariabel. Xi= kvantum av produkt i som skal produseres, i = 1, 2, 3 Xi= standard kontinuerlig variabel (delbar, ikke-negativ). BØK350 OPERASJONSANALYSE
Definere målfunksjonen Maksimere total fortjeneste: MAX: – 1000Y1 – 800Y2 – 900Y3 + 48X1 + 55X2 + 50X3 FasteklargjøringskostnaderoppstårnårbinærvariableneYi = 1. BØK350 OPERASJONSANALYSE
Definere restriksjonene Er det noe som mangler? BØK350 OPERASJONSANALYSE • Ressursrestriksjoner 2X1 + 3X2 + 6X3 <= 600 } maskinering 6X1 + 3X2 + 4X3 <= 300 } sliping 5X1 + 6X2 + 2X3 <= 400 } montering • Binær-restriksjoner Yi <= 1, i = 1, 2, 3 Yi >= 0, i = 1, 2, 3 Alle Yimå være heltall • Ikke-negativitetsrestriksjoner Xi >= 0, i = 1, 2, 3
Definere restriksjonene (forts.) • Koble restriksjonene(med “Big M”) X1 <= M1Y1eller X1 - M1Y1 <= 0 X2 <= M2Y2 eller X2 - M2Y2 <= 0 X3 <= M3Y3 eller X3 - M3Y3 <= 0 • Hvis Yi = 0 så vil disse restriksjonene tvinge Xitil å bli lik 0. • Hvis Yi = 1 så tillater disse restriksjonene Xiå være 0 ellerstørre. Men hvis Xi = 0 vil målsettingen da medføre at også Yisettes til 0, for å spare kostnader. • Merk atMiangir en øvre grense for Xi. • Vi må velge en tilstrekkelig stor men ikke for stor verdi til Mi. BØK350 OPERASJONSANALYSE
Finne rimelige verdier for M1 • Betrakt ressursrestriksjonene 2X1 + 3X2 + 6X3 <= 600 } maskinering 6X1 + 3X2 + 4X3 <= 300 } sliping 5X1 + 6X2 + 2X3 <= 400 } montering • Hva er maksimum verdi X1kan anta? La X2 = X3 = 0 X1 = MIN(600/2, 300/6, 400/5) = MIN(300, 50, 80) = 50 • Maximum verdier for X2 & X3kan finnes på samme måte. BØK350 OPERASJONSANALYSE
Sammendrag av modellen MAX: - 1000Y1 - 800Y2 - 900Y3 + 48X1 + 55X2 + 50X3 Slik at: 2X1 + 3X2 + 6X3 <= 600 } maskinering 6X1 + 3X2 + 4X3 <= 300 } sliping 5X1 + 6X2 + 2X3 <= 400 } montering X1 <= 50Y1 X2 <= 67Y2kobling X3 <= 75Y3 Yi <= 1, i = 1, 2, 3 Yi >= 0, i = 1, 2, 3 binær-restriksjoner Alle Yimå være heltall Xi >= 0, i = 1, 2, 3 } ikke-negativitet BØK350 OPERASJONSANALYSE
Mulige feller • Ikkebruk IF( ) funksjonen til å modellere sammenhengen mellom Xi og Yi. • Anta celle A5 representerer X1 • Anta celle A6 representerer Y1 • Du ønsker å lage A6 = IF(A5>0;1;0) • Dette vil skape store problemer for Solver! • La Yi være som en hvilken som helst variabel. • Gjør dem til binære beslutningsvariabler. • Bruk koblingsrestriksjoner til å skape de nødvendige sammenhengene mellom Xi og Yi. BØK350 OPERASJONSANALYSE
Implementere LP modellen En kolonne for hver variabel, en LHS (total)- og en RHS -kolonne. (Kolonne C – H for variabler, I for LHS/total og K for RHS) En linje for verdier til beslutningsvariablene. (Linje 4) En linje for målfunksjonen. (Linje 5) En linje for hver restriksjon. (Linje 7 – 12) BØK350 OPERASJONSANALYSE
Alternativ lay-out Merk at Set-Up kapasiteten er avhengig av verdien på den binære Set-Up variabelen. BØK350 OPERASJONSANALYSE
Minimum ordre størrelse Anta at Remington ikkeønsker å produserenoeavprodukt 3 uten at detblirprodusertminst 40 enheter. Vurderfølgende: X3 <= M3Y3 X3 >= 40 Y3 BØK350 OPERASJONSANALYSE
Kvantumsrabatter • Kvantumsrabatter: • Ved produksjon over 75 stk. X1oppnås rabatter slik at dekningsbidraget økes til 375$ pr. enhet. • Ved produksjon over 50 stk. X2oppnås rabatter slik at dekningsbidraget økes til 325$ pr. enhet. BØK350 OPERASJONSANALYSE
LP modell med rabatter Uten rabatt Med rabatt BØK350 OPERASJONSANALYSE I tilleggmå vi ha følgendebetingelser: X1M<= M1MY1M} kan ikke produsere med rabatt X1U>= 75Y1M } før vi ha produsert 75 uten. X2M<= M2MY2M} kan ikke produsere med rabatt X2U>= 50Y2M } før vi ha produsert 50 uten. Y1M, Y2M binærvariabler; Xijikke-negative heltall.
Revidert LP modell med rabatter BØK350 OPERASJONSANALYSE
LP modell med rabatter Restriksjonene gruppert etter type – forenkler bruk av Solver. En kolonne for hver variabel, en LHS (total)- og en RHS -kolonne. (Kolonne C – H for variabler, I for LHS/total og K for RHS) En linje for verdier til beslutningsvariablene. (Linje 3) En linje for målfunksjonen. (Linje 4) En linje for hver restriksjon. (Linje 5 – 11) BØK350 OPERASJONSANALYSE
Alternativ lay-out BØK350 OPERASJONSANALYSE
Et kontraktstildelingsproblem: • Selskap 1 leverer bare ordrer på minst 150 tonn. • Selskap 2 kan levere ordrer på over 200 tonn bare for ett prosjekt. • Selskap 3 leverer totalt bare i kvanta på 200, 400 eller 550 tonn. BØK350 OPERASJONSANALYSE