660 likes | 819 Views
Managerial Decision Modeling. A Practical Introduction to Management Science , 5ed by Cliff Ragsdale. Chapter 6. Integer Programming. Introduksjon. Når en eller flere variabler i et LP problem må anta heltallsverdier har vi et Heltallsproblem, Integer Linear Programming (ILP) problem.
E N D
Managerial Decision Modeling A Practical Introduction to Management Science , 5ed by Cliff Ragsdale
Chapter 6 Integer Programming LOG350 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. LOG350 Operasjonsanalyse
Heltallsrestriksjoner MAX:350X1 + 300X2} dekningsbidrag S.T.: 1X1 + 1X2 <= 200} pumper 9X1 + 6X2 <= 1566 } arbeid 12X1 + 16X2 <= 2880} rør X1, X2>= 0} ikke-negativitet X1, X2må være heltall} heltallsrestriksjon Heltallsbetingelser er enkle å angi, men problemet blir ofte mye vanskeligere (og noen ganger umulig) å løse. LOG350 Operasjonsanalyse
Forenkling • Opprinnelig ILP MAX: 2X1 + 3X2 S.T.: X1 + 3X2 <= 8.25 2.5X1 + X2 <= 8.75 X1, X2 >= 0 X1, X2må være heltall • LP forenkling MAX: 2X1 + 3X2 S.T.: X1 + 3X2 <= 8.25 2.5X1 + X2 <= 8.75 X1, X2 >= 0 Vi ser bort fra heltallsbetingelsene LOG350 Operasjonsanalyse
X2 Mulige heltallsløsninger 3 2 1 0 X1 0 1 2 3 4 Mulige heltallsløsninger og Mulighetsområdet til LP problemet LOG350 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 ? LOG350 Operasjonsanalyse
LP problem med desimalløsning LOG350 Operasjonsanalyse
Grenser • Den optimale løsningen til et LP-forenklet heltallsproblem gir oss en grense for den optimale verdien på målfunksjonen. • For maksimeringsproblemer 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. LOG350 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. LOG350 Operasjonsanalyse
Hvordan avrunding nedoverkan 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 LOG350 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). LOG350 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 en 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. LOG350 Operasjonsanalyse
Bruk av Solver på heltall • Angi heltall som en restriksjon på de aktuelle beslutningsvariablene : LOG350 Operasjonsanalyse
Angi toleranse i Solver • Velg Options og Integer Options : LOG350 Operasjonsanalyse
Heltallsløsning fra Solver • Når Solver har løst et heltallsproblem får vi følgende beskjed : LOG350 Operasjonsanalyse
Bruk av Solver på heltall • Angi heltall som en restriksjon på de aktuelle beslutningsvariablene : • Bare beslutningsvariabler kan ha heltallskrav. LOG350 Operasjonsanalyse
Angi toleranse i Solver • Under Engine tab i Task Pane, Integer Tolerance. • I den nye Solver (V9 osv.) er standard Integer Tolerance = 0 • Forbedret B&B algoritmer (strong branching) gjør at Solver raskere finner gode heltallsløsninger. LOG350 Operasjonsanalyse
Er heltallsløsningen optimal ? LOG350 Operasjonsanalyse
Hvordan få optimal heltallsløsning • Da må vi sette Tolerance til 0%: Sett denne verdien til 0 hvis du vil finne den globale optimale løsningen. (Men det kan ta lang tid) LOG350 Operasjonsanalyse
Optimal heltallsløsning LOG350 Operasjonsanalyse
Et skiftplanleggingsproblem:Air-Express 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). LOG350 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 skift 7 LOG350 Operasjonsanalyse
Definer målfunksjonen Minimer totale lønnskostnader: MIN: 680X1 +705X2 +705X3 +705X4 +705X5 +680X6 +655X7 LOG350 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 LOG350 Operasjonsanalyse
Standard LP i regneark LOG350 Operasjonsanalyse
Alternativ layout LOG350 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. LOG350 Operasjonsanalyse
Et kapitalbudsjetteringsproblem:CRT Technologies Forventet NPV Prosjekt (i $000) År 1 År 2 År 3 År 4 År 5 1 $141 $75 $25 $20 $15 $10 2 $187 $90 $35 $0 $0 $30 3 $121 $60 $15 $15 $15 $15 4 $83 $30 $20 $10 $5 $5 5 $265 $100 $25 $20 $20 $20 6 $127 $50 $20 $10 $30 $40 Kapital (i $000) som trengs i • Selskapet har for øyeblikket $250,000 disponibelt til å investere i nye prosjekter. Det har budsjettert $75,000 til fornyet dekning til disse prosjektene i år 2, og $50,000 per år for årene 3, 4, og 5. LOG350 Operasjonsanalyse
Definere beslutningsvariablene Vi kan altså investere i prosjektene 1 – 6, men bare i hele prosjekter. Og vi kan ikke investere i mer enn ett prosjekt av samme type, dvs. prosjektene kan ikke dupliseres. LOG350 Operasjonsanalyse
Definere målfunksjonen • Maksimer total netto nåverdi av de valgte prosjektene. MAX: 141X1 + 187X2 + 121X3 + 83X4 + 265X5 + 127X6 LOG350 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 LOG350 Operasjonsanalyse
Programvaretips • Solver i Excel 8.0 (Office 97) har en “bin” mulighet forangivelse av binære variabler. • Du slipper da å benytte de restriksjonene som var angitt på forrige slide vedrørende binære variabler. LOG350 Operasjonsanalyse
Implementere Modellen LOG350 Operasjonsanalyse
Binære Variabler & LogiskeBetingelser • 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 – X5 <= 0 eller • X4 <= X5 LOG350 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. LOG350 Operasjonsanalyse
Eksempel med faste kostnader :Remington Manufacturing Timer som trengs for: Operasjon Prod. 1 Prod. 2 Prod. 3 Timer tilgjengelig Maskinering 2 3 6 600 Sliping 6 3 4 300 Montering 5 6 2 400 DB pr. Stk. $48 $55 $50 Klargjøringskost $1000 $800 $900 LOG350 Operasjonsanalyse
Definere beslutningsvariablene Yi angir om vi har klargjort til produksjon av produkt Xi : Yi = binærvariabel Xi = kvantum av produktisom skal produseres, i = 1, 2, 3 LOG350 Operasjonsanalyse
Definere målfunksjonen • Maksimere total fortjeneste. MAX: – 1000Y1 – 800Y2 – 900Y3 + 48X1 + 55X2 + 50X3 LOG350 Operasjonsanalyse
Definere restriksjonene • 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 • Er det noe som mangler ? LOG350 Operasjonsanalyse
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 • HvisYi = 0så vil disse restriksjonene tvingeXitil å bli lik0. • HvisYi = 1så tillater disse restriksjoneneXiå være0 eller større.Men hvis Xi = 0vil målsettingen da medføre at også Yisettes til 0, for å spare kostnader. • Merk atMiangir en øvre grense forXi. • Vi må velge en tilstrekkelig stor men ikke for stor verdi tilMi. LOG350 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 verdiX1kan anta? LaX2 = 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. LOG350 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 } } LOG350 Operasjonsanalyse
Mulige feller • Ikke bruk 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. LOG350 Operasjonsanalyse
Implementere modellen LOG350 Operasjonsanalyse
Minimum ordre størrelse Anta at Remington ikke ønsker å produsere noe av produkt 3 uten at det blir produsert minst 40 enheter ... Vurder følgende: X3 <= M3Y3 X3 >= 40 Y3 LOG350 Operasjonsanalyse
Kvantumsrabatter • MAX: 350X1 + 300X2 } dekningsbidrag • S.T.: 1X1 + 1X2 <= 200 } pumper • 9X1 + 6X2 <= 1520 } arbeid • 12X1 + 16X2 <= 2650 } rør • X1, X2 >= 0 } ikke-negativitet • Kvantumsrabatter: • Ved produksjon over 75 X1 oppnås rabatter slik at dekningsbidraget økes til 375$ pr. enhet. • Ved produksjon over 50 X2 oppnås rabatter slik at dekningsbidraget økes til 325$ pr. enhet. LOG350 Operasjonsanalyse
Revidert modell MAX: 350X11 + 300X21 +} kvanta uten rabatt 375X12 + 325X22 } kvanta med rabatt S.T.: 1X11 + 1X21 + 1X12 + 1X22 <= 200 } pumper 9X11 + 6X21 + 9X12 + 6X22 <= 1560 } arbeid 12X11 + 16X21 + 12X12 + 16X22 <= 2650 } rør X12 <= M12Y1 } kan ikke produsere med rabatt X11 >= 75Y1 } før vi ha produsert 75 uten. X22 <= M22Y2 } kan ikke produsere med rabatt X21 >= 50Y2 } før vi ha produsert 50 uten. Y1, Y2 binærvariabler; Xijikke-negative heltall. LOG350 Operasjonsanalyse
Standard LP modell LOG350 Operasjonsanalyse
Alternativ lay-out LOG350 Operasjonsanalyse