Optimering - Ã bo Akademi
Optimering - Ã bo Akademi
Optimering - Ã bo Akademi
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Kurskompendium i kursen 3321<strong>Optimering</strong>100080060040020003210-1-2 -1.5-1 -0.50 0.5 11.5 2Frank PetterssonLaboratoriet för värmeteknikKemisk-tekniska fakultetenÅbo <strong>Akademi</strong>2005
<strong>Optimering</strong>2
<strong>Optimering</strong>1 Inledning<strong>Optimering</strong> är ett grundläggande verktyg inom de flesta tillämpadevetenskaperna och dess betydelse har klart ökat under de senaste decennierna.Ordet optimering kommer från latinets ”optimus” som betyder ”det bästa”, dvsoptimeringslära kan sägas vara läran om att göra det bästa eller kanske snarareatt göra något så bra som möjligt. Då man optimerar söker man en lösning tillett givet problem som är så bra som möjligt medan man beaktar de fakta sompåverkar beslutsprocessen. Strävan att lösa ett problem så väl som möjligt ärväldigt allmänt och optimerings problem uppstår därför inom så gott som allaområden. Exempel på dylika problemställningar kan vara t.ex. att leda ettföretag för att uppnå största möjliga vinst, minimera förluster eller minimerariskerna. Uppgifter som t.ex. produktionsplanering och process syntes ärtypiska tekniska områden där optimeringsmetoderna används rutinmässigt.Dantzig har definierat optimering enligt följande:“Mathematical programming (or optimization theory) is that branch ofmathematics dealing with techniques for maximizing or minimizingobjective function subject to linear, nonlinear and integer constraints onthe variables”<strong>Optimering</strong>smetoder har utnyttjats i årtionden. Under de senaste tiderna har deblivit nästan oumbärliga emedan företagsverksamheten blivit mera omfattandeoch komplicerad medan kraven på konkurrenskraften ständigt ökar på grund avglobaliseringen. Ifall man lyckas uppnå en liten procentuell förbättring i ett avdagens multinationella företag, kan detta leda till enorm ökning i vinsten. Föratt uppnå denna vinstökning kan det dock krävas att man analyserar allaföretagets divisioner vilket ofta är en väldigt omfattande uppgift. Sådana storaproblem vore av litet värde ifall de inte kunde lösas. Under de senasteårtionden har förbättringar inom både dator hårdvara och mjukvara uppnåttssom gör optimering till ett praktiskt och värdefullt verktyg både inomingenjörs- och affärsverksamhet.I detta material presenteras optimeringsmetoder med det primära målet att geläsaren insikt i hur dessa kan utnyttjas. Presentationen är uppdelad så att förstdiskuteras några allmänna aspekter om optimering och därefter presenteras ettantal metoder för olika typers problemställningar. Målet har varit att hållamaterialet på ingenjörsnivå där teorem och bevis utelämnats men där ändånödvändig förståelse för metoderna uppnås. Antalet metoder som kangenomgås i ett dylikt material är naturligtvis begränsat. Flera algoritmer ochmetoder kan finnas i litteraturen som anges. Litteraturförteckningen är på ingetvis avsedd att vara uttömmande.Ett mål är även att introducera vissa datorprogram som är lämpliga för lösningav olika problem. De exempel som presenteras i detta material kan lämpligenlösas med hjälp av Microsoft Excel, Matlab och Lp_solve. Excel är detvanligaste spreadsheet programmet medan Matlab är ett allmänt och effektivt3
<strong>Optimering</strong>kommersiellt programpaket med ett stort antal numeriska metoder inkluderade.Lp_solve är ett bra shareware program för linjära och blandade heltalsproblem.Detta material omfattar inte anvisningar om hur programvaran används, utananvändaren hänvisas till respektive bruksanvisning eller till den handledningsom ges i samband med övningstillfällena.Några av de områden där optimeringsmetoder har utnyttjats omnämns nedan,• Processdesign (omfattar bl.a. separations system, reaktornätverkoch värmeväxlar nätverk)• Planering av hela fabriker• Produktionsplanering• Scheduleringsproblem• Allokeringsproblem• Blandningsproblem• Investeringsuppgifter• Design med avseende på operabilitet (flexibilitet, styrbarhet ...)Förteckningen är inte fullständig, men ger iallafall en uppfattning om hurallmänna problemen är.För att få en uppfattning om optimeringsmetodernas betydelse kan vi betraktanågra faktiska industriella resultat som rapporterats i litteraturen. Delta Airlinesanger att bruket av en optimeringsmodell medför inbesparingar på $(US) 300miljoner under en treårs period. I ett enkelt blandingsproblem har BASF-AGsparat flera hundra tusen DM per år och i några produktions och distribueringsproblem anger de sig ha sparat flera miljoner DM per år.<strong>Optimering</strong>sproblem har traditionellt lösts med matematiska programmeringsmetoder.Dessa deterministiska metoder baserar sig på gradvis och rigorösförminskning av sökområdet tills den optimala lösningen kan identifieras meden viss, i förväg bestämd, noggrannhet. Förutom de matematiska metodernafinns det även metoder som i främsta hand baserar sig på slumpmässiggenerering av lösningar till problemen. För dessa stokastiska sökmetoder kannågra garantier för lösningens godhet inte ges och dessa omfattar sådanametoder som t.ex. simulated annealing och de genetiska algoritmerna. Fastdessa metoder inte kan kallas optimeringsmetoder enligt de mest striktadefinitionerna är de intressanta alternativ vid lösning av sådana svåra problemdär de exakta matematiska metoderna ännu kan vara otillräckliga. Dettamaterial har rubriken ”optimering” och inte ”matematisk programmering” dåäven några stokastiska metoder behandlas ytligt.Även om ett stort antal metoder kommer att presenteras är det bra att kommaihåg att “No free lunch” teoremet även gäller i detta fall. Det existerar inte4
<strong>Optimering</strong>ännu en metod som är så allmängiltig att den skulle kunna lösa allaoptimeringsproblem som uppstår. Den som utnyttjar optimeringsmetoder kanbli tvungen att pröva olika problemformuleringar och metoder innan godaresultat kan uppnås.1.1 HistoriaUnder andra världskriget arbetade George Dantzig som matematisk rådgivareför det amerikanska flygvapnet. Han jobbade främst med frågor som berördeplaneringen av hur de begränsade resurserna kunde utnyttjas effektivt.Planeringen var på den tiden överlåten åt högt uppsatta experter som med hjälpav färdigt fastställda tumregler och moget övervägande gjorde sina beslut. Medhjälp av dessa tumregler reducerades antalet möjliga lösningar till ett fåtal somsedan kunde beräknas och jämföras.För att beskriva vilken omöjlig uppgift planerarna hade framför sig, presenterarDantzig ett enkelt exempel.Planera hur uppgifterna skall fördelas då 70 arbetsuppgifter skall utföras av 70män. Antag att man har en viktfaktor v ij som beskriver t.ex. en effektivitetsfördelom den i:te mannen sköter det j:te jobbet. Det enda ställda villkoret är attalla män skall få en uppgift samt att alla jobben bör utföras.Tyvärr finns det 70! (70!=70*69*68*…*1) olika möjliga lösningar till dettaproblem som vid första anblicken inte verkar särskilt besvärligt. För att kunnavälja den bästa, borde alla dessa jämföras. 70! är dock ett otroligt stort tal,betydligt större än t.ex. 10 100 . För att få en uppfattning om komplexiteten pådetta problem konstaterar Dantzig att om man hade 10 40 jordar kring solen somalla vore helt täckta med datorer som kan utföra en miljard beräkningar pernanosekund och dessa skulle ha börjat beräkningen vid Big Bang för 15miljarder år sedan så skulle de kanske ha räknat färdig innan solen kallnar.På 1940-talet kunde man inte på något sätt utvärdera alla möjliga lösningar fördylika problem, varför man inte ens var speciellt intresserad av att söka efterden bästa lösningen. 1947 formulerade Dantzig det allmänna linjäraprogrammerings problemet och utvecklade simplex metoden för att lösa detta.Han väckte samtidigt intresset för sökning efter de bästa lösningarna.För den fortsatta utvecklingen kom utvecklingen av datorn 1946 att spela enstor roll. Man insåg snart att med datorns hjälp skulle det gå att lösa storaproblem snabbt.Beteckningen programmering i linjär programmering hänför sig inte till datorprogrammering. Den härrör sig från amerikanska armén där olika planeradetidtabeller för övningar kallas för program. Ordet program användes såledestidigare i samband med linjär programmering, långt före datorer användes vidlösning av dessa problem.5
<strong>Optimering</strong>Termen matematisk programmering härrör sig redan från 1949 då man insågatt linjär programmering var en för restriktiv benämning för problemtypen iallmänhet.Influerade av framgången med LP började även andra matematiska metoderutvecklas under 1950-talet. Startskottet för ickelinjär programmering var dearbeten som presenterades av Karush, Kuhn och Tucker år 1951. Heltalsprogrammering presenterades i början av 1960-talet av bl.a. Gomory.Lösningen av blandade heltals ickelinjära problem visades vara möjlig 1972 avGeoffrion.Linjärprogrammering har utnyttjats inom många områden och omfattar t.ex.många av de viktigaste metoderna inom operationsanalys. Den förstaframgångsrika industriella applikationen av LP skedde inom petroleumindustrin,som ännu idag flitigt använder metoderna inom t.ex. extraktion,blandning och distribution. Livsmedelsindustrin är en annan branch somanvänder LP i stor utsträckning. De första tillämpningarna gällde transporter avketchup från några fabriker till olika varuhus. Inom metallindustrin används LPt.ex. för utvärdering av olika råvaror så att råvarukostnader och önskadslutprodukt viktas mot varandra. De senaste tillämpningarna är inomfinansvärlden där LP används för analys av aktieportföljer.6
<strong>Optimering</strong>Några typexempel på enkla optimeringsproblem,1. Vår destillationskolonn har en återkokare som innehåller material avhögre temperatur än omgivningen. Temperaturskillnaden leder tillvärmeförluster från systemet. Vår uppgift är att beställa isolering tillåterkokaren för att minska förlusterna på ett så kostnadseffektivt sättsom möjligt.Vi har uppskattat att de årliga kostnaderna som uppstår förvärmeförlusterna (i 1000 €) kan beskrivas enligt följande ekvation:⎛ − 5 ⎞= 10 − 9exp⎜⎟⎝ x ⎠där x anger tjockleken på det eventuella isoleringsmaterialet. Isolationsmaterialsleverantörenhar gett oss några prisofferter som gör att deårliga investeringskostnaderna följer följande uttryck (1000 €)0.6= 0.5+ 0.7xHur tjock isolering skall vi beställa?2. Du har en hönsfarm med 100 hönor och 100 ägg. Antag att det tar tvåveckor för en höna att lägga 12 ägg eller ruva 4 ägg så att de kläcks.Det tar två veckor för en kyckling att växa till en höna. Vilket är detbästa schemat för läggning och ruvning om vid slutet av den åttondeveckan alla hönor och kycklingar säljs för 60 cent och äggen för 10 centper stycke?7
<strong>Optimering</strong>2 AllmäntFör att lösa ett “verkligt” problem med optimeringsmetoder består den förstauppgiften i att representera problemet med en matematisk modell som består aven uppsättning matematiska förhållanden (t.ex. olikheter, likheter och logiskaförhållanden) som beskriver problemet med en viss noggrannhet. Enmatematisk modell består i allmänhet av parametrar, variabler, begränsningaroch en objektfunktion. Begränsningarna kan representera t.ex. massbalanser,energibalanser, kvalitets förhållande, kapacitets gränser osv. Objektfunktionenrepresenterar målet: minimera kostnaderna, maximera verkningsgraden osv.De matematiska modellerna leder till olika strukturella problemtyper som:linjär programmering (LP, Linear Programming), blandad heltals linjärprogrammering (MILP, Mixed Integer Linear Programming), ickelinjärprogrammering (NLP, Non-linear Programming) samt blandade heltalsickelinjär programmering (MINLP, Mixed Integer Non-linear Programming).För att kunna lösa ett optimeringsproblem behövs även mjukvara som medhjälp av olika algoritmer löser olika problemtyper. För att vara framgångsrik imodelleringsarbetet är det av stor vikt att man känner till de olikaproblemkategorierna och förstår innebörden av beslutet att välja en viss sortsformulering. Kunskaper om de olika algoritmerna som finns tillgängliga för deolika problemtyperna ger värdefull information om hurdan framgång man kanförvänta sig och samtidigt förståelse för möjliga problemsituationer som kanuppstå.Hörnstenarna vid optimering kan ses i figuren nedtill.ModelleringAlgoritm MjukvaraIngenjörens roll är i första hand att modellera problemet så att man beskriverrelevanta problem. Det är dock viktigt att inse att en viss insikt om algoritmeroch mjukvara är till stor fördel vid framgångsrik modellering. Det är ävenviktigt att känna till goda modelleringsprinciper och hur man kopplar ihopmodeller och algoritmer.Ett träd som avbildar de olika problemtyperna kan ses i följande figur där ävenett antal metoder finns omnämnda. På den lägsta nivån i trädet delas problemenupp enligt förekomst eller avsaknad av variabler som bör anta heltalsvärden. Påföljande nivå separeras de problem som är obegränsade från dem medbegränsningar. På tredje nivån ses problemkategorierna medan metodernaåterfinns på fjärde och sista nivån. Namnen på flertalet av de numeriska8
<strong>Optimering</strong>metoderna anges på engelska då vedertagna svenska namn saknas. Där detsvenska namnet kan anses gångbart används detta.Gyllene snittetKvadratisk interpoleringSimplex (NM)Random WalkSteepest descentNewtonQuasi NewtonPenalty metoderSQPGRGSimplexInterior pointCutting PlaneBranch & BoundBranch & BoundOuter ApproximationGBDECPNLPNLP LP MILP MINLPObegränsadBegränsadBegränsadKontinuerligKontinuerlig och diskretOPTIMERINGFörhållandena mellan de olika problemkategorierna illustreras i följande fígur.NLPLPMILPMINLP9
<strong>Optimering</strong>MINLP området omfattar den största mängden av problem. MILP och NLPproblem är olika delområden av MINLP problemen. De problem som ärgemensamma i både MILP och NLP området är LP problem. Detta skullebetyda att man kan lösa ett LP problem med en metod för vilken som helst avde fyra kategorierna. Ett MILP problem kan lösas även med MINLP metoderliksom även NLP problem kan. Modeller som är formulerade som MINLPproblem kan således endast lösas med metoder för MINLP problem.Naturligtvis är det dock mest ändamålsenligt att använda metoder utveckladeför den aktuella problemtypen, t.ex. Simplex algoritmen för LP fungerar bättreför LP problem än någon av algoritmerna för NLP problem.2.1 MjukvaraI detta avsnitt nämns några lämpliga programpaket för de olika problemtyperna. Även några programpaket som fungerar på shareware basis omnämns.Förteckningen är på inget vis fullständig.Det finns ett stort antal programpaket för lösning av stora LP problem med ettstort antal variabler och begränsningar. De bästa programmen för tillfället ärCPLEX (ILOG Inc.) och OSL (OSL Development, IBM Corporation) sombägge fungerar på kommersiell basis. Ett välfungerande sharewareprogrampaket är LP_solve (Michel Berkelaar, Holland).Program för lösning av MILP problem är ofta integrerade med LP lösare. Sålöser även t.ex. CPLEX, OSL och Lp_solve blandade heltals linjära problem.LINDO (Lindo Systems, Inc.) är också ett alternativ. Både Excel och QuattroPro löser MILP problem av modesta dimensioner.Dator program som baserar sig på GRG algoritmer för lösning av begränsadeNLP problem är t.ex. CONOPT (ARKI Consulting and Development A/S) ochGRG2 (Prof. Leon Lasdon). Excel och Quattro Pro löser även små NLPproblem. SQP metoden har implementerats i t.ex. SQP (Prof. Leon Lasdon)och DONLP2 (Prof. Spellucci), som bägge är shareware program. MINOS(Stanford Business Software Inc.) är baserad på Lagrange algoritmer. Matlab(MathWorks Inc.) omfattar flere metoder för lösning av NLP problem.Då det gäller MINLP problem finns det relativt få kommersiella programpaket.Det första var DICOPT, som är baserad på OA-algoritmerna och ingår som ensubrutin i programpaketet GAMS. Det finns även fungerande programpaketsom utvecklats vid högskolor t.ex. i Dundee, Imperial College, Princeton ochÅbo <strong>Akademi</strong>. Excel och Quattro Pro kan även klara av modesta problem idenna kategori.De stokastiska metoderna är ofta enkla att implementera, varför detta arbeteofta utförs av användarna. Det finns dock även ett stort antal färdigaprogrampaket tillgängliga på internet som t.ex. för simulated annealing ASA(Lester Ingberg Research) och SA (Everett Carter) samt för de genetiskaalgoritmerna PGAPack (David Levin) och Galib (Matthew Wall).10
<strong>Optimering</strong>2.2 GrunderEn matematisk modell beskriver det egentliga problemet med matematiskauttryck (likheter och olikheter) som innehåller variabler (reella och heltals),parametrar, begränsningar och matematiska förhållanden. En allmänproblembeskrivning i matematiska termer,min fhgxs.t.,( x)( x)x ∈ R( x)= 0≤ 0där s.t. står för de engelska orden ”subject to” vilket kunde översättas till ”såatt”.Objektfunktionen f(x) beskriver någonting som vi antingen vill minimera ellermaximera. De flesta problem har ett mål som eftersträvas, men ibland kan viäven ha flere mål som eftersträvas samtidigt. Dessa mål kan dessutom verka imotsatt riktning. Ett sådant exempel kan vara tillverkningen av bilar där mansamtidigt önskar uppnå en så lätt bil som möjligt men även vill att karossenskall vara så hållfast som möjligt. I allmänhet skrivs dylika problem om till enenda objektfunktion där de olika aspekterna viktas med individuella vikter sombeskriver aspektens viktighet. Ett alternativt sätt är att beskriva ett av målensom ett bivillkor. Vi kan till exempel definiera den hållfasthet som krävs ochsedan minimera vikten.Beslutsvariabeln x representerar de okända numeriska värdena och derasspecifikationer anger olika tillstånd för det studerade systemet. Variablerna kanvara kontinuerliga, heltal eller en blandning av båda. Variablerna kan beskrivatillstånd i ett fysikaliskt system som t.ex. temperatur, tryck ellerflödeshastigheter, design variabler som t.ex. reaktor volym eller värmeväxlaresvärmeöverföringsytor eller resurser för olika aktiviteter. De kan t.ex. ocksåbeskriva en produktionsplan för produktion av flere olika produkter underlängre perioder. Parametrarna har fastslagna värden och deras specifikationdefinierar olika modeller.Bivillkoren kan delas upp i likheter, olikheter och logiska uttryck. Likheter kanbeskriva t.ex. massbalanser, energibalanser och jämviktstillstånd. Olikheternaanger ofta de tillåtna operationstillstånden, mängden tillgångar som finns tillförfogande samt krav på t.ex. kvantitet och kvalitet.n11
<strong>Optimering</strong>2.2.1 Globalt eller lokalt optimumEn vektor x är möjlig (feasible) om den uppfyller alla begränsningar.Uppsättningen möjliga punkter kallas för det möjliga området (feasible region).Om det möjliga området är tomt är problemet omöjligt (infeasible). Om detfinns möjliga lösningar är lösningen, x*, ett globalt minimum (globalminimum) om f(x*)≤f(x) för alla x i det möjliga området. För ett lokaltminimum (local minimum) gäller att f(x*)≤f(x) för alla x nära x*.fx ()Globalt maximumLokalt maximumLokalt minimumGlobalt minimumxDet kan noteras att av de olika problemkategorierna kan globalt optimumgaranteras för LP och MILP problem med de deterministiska metoderna sompresenteras. Då det gäller NLP och MINLP kan sådan garanti inte ges ifallproblemen inte är konvexa.2.2.2 KonvexitetEn funktion f(x) är konvex om linjen som sammanbinder två godtyckligapunkter på f(x) ligger helt ovanför eller på funktionskurvan. På motsvarandesätt ligger alla punkter på den sammanbindande linjen under eller påfunktionskurvan f(x) då funktionen är konkav.Konvex, konkav och icke-konvex funktionEn linjär funktion är både konkav och konvex men inte strikt konvex ellerstrikt konkav. För att vara strikt konkav eller konvex krävs att linjen endastberör kurvan vid ändpunkterna.Övriga egenskaper för en konvex funktion:• derivatan (lutningen) ökar då x ökar12
<strong>Optimering</strong>• andra derivatan är alltid icke-negativ för alla x• en linjär approximation vid x är alltid en underestimator• för en konvex funktion är ett lokalt minimum alltid det globala optimetDefinition (Konvex mängd):nEn mängd S ∈ R är konvex om alla punkter på linjen ( 1− λ ) x1+ λx2,där 0 ≤ λ ≤ 1 , hör till mängden S och då x 1 och x 2 väljs godtyckligt urS.Konvexa mängderIcke-konvexa mängder:Definition (Konvex funktion):En funktion f(x) är konvex då godtyckliga kombinationer av x 1 och x 2uppfyller följande olikhet. f [( 1− λ ) x1 + λx2] ≤ ( 1−λ) fx1+ λfx2där0 ≤ λ ≤ 1. Principskiss nedan.Definition (Strikt konvex funktion):13
<strong>Optimering</strong>En funktion f(x) är strikt konvex då godtyckliga kombinationer av x 1och x 2 uppfyller följande olikhet. f [( 1−λ ) x1 + λx2] < ( 1−λ) fx1+ λfx2där 0 ≤ λ ≤ 1En strikt konvex funktion är alltid konvex. Det omvända stämmer däremot inte,t.ex. en linje är konvex men inte strikt konvex.Definition (Konkav funktion):En funktion f(x) är konkav då godtyckliga kombinationer av x 1 och x 2uppfyller följande olikhet. f [( 1− λ ) x1 + λx2] ≥ ( 1−λ) fx1+ λfx2där0 ≤ λ ≤ 1. Se figuren nedan.Definition (Strikt konkav funktion):En funktion f(x) är strikt konkav då godtyckliga kombinationer av x 1 och x 2f 1− λ x + λx> − λ fx + λfxdär 0 ≤ λ ≤ 1uppfyller följande olikhet. [( )1 2] ( 1 )1 2Definition (Kvasi-konvex funktion):En funktion f(x) är kvasi-konvex då godtyckliga kombinationer av x 1och x 2 uppfyller följande olikhet. f [( 1−λ ) x1 + λx2] ≤ max[ f ( x1),f ( x2)]där 0 ≤ λ ≤ 1. Se figuren nedan.Definition (Kvasi-konkav funktion):En funktion f(x) är kvasikonkav då godtyckliga kombinationer av x 1 ochx 2 uppfyller följande olikhet. f [( 1−λ ) x1 + λx2] ≥ min[ f ( x1),f ( x2)]där0 ≤ λ ≤ 1. Exempel i figuren nedan.14
<strong>Optimering</strong>Definition (Strikt kvasikonvex funktion):En funktion f(x) är strikt kvasikonvex då godtyckliga kombinationer avx 1 och x 2 uppfyller följande olikhet,f 1−λ x + λx< max f x f x där 0 ≤ λ ≤ 1. Se figuren nedan.[( ) ] [ ( ) ( )]1 21,2Definition (Strikt kvasikonkav funktion):En funktion f(x) är strikt kvasikonvex då godtyckliga kombinationer avx 1 och x 2 uppfyller följande olikhet.f 1−λ x + λx> min f x f x där 0 ≤ λ ≤ 1[( ) ] [ ( ) ( )]1 21,2.2.2.1 Kontroll av konvexitetEn funktion f är konvex om Hessianmatrisen G för f är positiv definit för allax 1 ,x 2 ,…,x nExempelf2 2 2( x) = x + 3x+ 5x+ 6xx + x x − 3x− 2x15241 2 3 1 2 1 3 1 2+∇f⎛8x1+ 6x2+ x3− 3⎞⎜⎟= ⎜6x2+ 6x1− 2 ⎟⎜⎟⎝10x3+ x1⎠⎡86 1 ⎤G =⎢ ⎥⎢6 6 0⎥⎢⎣1 0 10⎥⎦Då hessianmatrisens alla determinanter > 0 är G positiv definit och f är striktkonvex.15
<strong>Optimering</strong>8 6 18 68 = 8= 12 6 6 0 = 1146 61 0 1016
<strong>Optimering</strong>3 Linjär programmeringDet är inte en tillfällighet att linjär programmering (LP) undervisas överallt ivärlden inom ingenjörsutbildningen. Sedan 1950-talet har LP varit det förstaformaliserade sättet att jämföra, utvärdera och optimera verksamheter somomfattar ett stort antal produkter, individer, material och maskiner liksom ävenkompletta fabriker och hela företag. LP har framgångsrikt använts för bl.a.allokering av lastbilar och flygplan så att kunderna och passagerarna betjänaspå bästa möjliga sätt. LP metoderna har haft en stor betydelse för denlevnadsstandard som uppnåtts idag.3.1 Ett exempelFör att få en uppfattning om vad linjär programmering är studerar vi ett företagsom verkar inom försäljningsbranschen. För att förenkla exemplet antar vi attföretaget endast förmedlar en enda produkt och upprätthåller tre centrallager,ett i Köpenhamn, ett i Trondheim och ett i Helsingfors. Bolaget levererarprodukten till fem distributionslager, Oslo, Göteborg, Malmö, Stockholm ochÅbo. Beslutet hur produkten skall transporteras från centrallagren tilldistributionslagren varje månad bör fattas. Beslutet bör beakta behovet viddistributionslagren samt tillgången vid centrallagren. Målet är att minimeratransportkostnaderna. I följande tabell framgår transportkostnaderna mellanrespektive centrallager och distributionslager.Tabell 3.1. Transportkostnader i € per enhetOslo Göteborg Malmö Stockholm ÅboKöpenhamn 7 3 1 7 10Trondheim 5 9 12 8 10Helsingfors 11 11 12 6 2Det månatliga tillskottet i centrallagren är: Köpenhamn 500 enheter,Trondheim 300 enheter och Helsingfors 200 enheter medan det månatligabehovet är: Oslo 250, Göteborg 350, Malmö 150, Stockholm 250 och Åbo 100enheter. Vi kan observera att både tillgång och behov är 1000 enheter permånad. Ett möjligt sätt att sköta transporterna kan ses i tabell 3.2. Totalatransportkostnaderna för denna lösning är 3950€.17
<strong>Optimering</strong>Tabell 3.2. En möjlig lösning till transport problemet. Siffrorna anger antaletenheter som transporteras från varje centrallager till respektivedistributionslager.Oslo Göteborg Malmö Stockholm TurkuKöpenhamn 0 350 150 0 0Trondheim 250 0 0 0 50Helsingfors 0 0 0 150 50Det är helt klart att det finns ett ofantligt stort antal olika alternativ på hurtransporterna kan ske men vår uppgift är att finna den lösning som ger deminsta månatliga transportkostnaderna. Vi behöver således en effektiv metodför lösning av denna typs problem för att kunna få den optimala lösningen –metoden att undersöka alla alternativ är utesluten. Dessutom bör metoden klaraav att lösa problemet för ett godtyckligt antal centrallager, distributionslageroch produkter. Som följande modellerar vi problemet i matematiska termer.Vi börjar med att definiera våra beslutsvariabler x ij som indikerar antalettransporterade produkter från centrallager i till distributionslager j. Dettaresulterar i 15 variabler:x 11 , x 12 , x 13 , x 14 , x 15x 21 , x 22 , x 23 , x 24 , x 25(transporter från Köpenhamn)(transporter från Trondheim)x 31 , x 32 , x 33 , x 34 , x 35 (transporter från Helsingfors)Målet att minimera de månatliga transportkostnaderna kan beskrivas medföljande objektfunktion där konstanterna är hämtade ur tabell (3.1) medkostnadsuppgifter.xxxxxx7 11 + 3 12 + 1 13 + 7 14 + 10 15 + 5+ 11x32+ 12x33+ 6x34+ 2x3521 + 9 22 + 12 23 + 8 24 + 10 25 + 11 31De värden som variablerna kan anta begränsas av tillgången vid centrallagrenx11+ x12+ x13+ x14+ x15≤ 500x21+ x22+ x23+ x24+ x25≤ 300x31+ x32+ x33+ x34+ x35≤ 200samt behovet vid varje distributionslager,x11+ x21+ x31≥ 250x12+ x22+ x32≥ 350x13+ x23+ x33≥150x14+ x24+ x34≥ 250x15+ x25+ x35≥100xxxxx18
<strong>Optimering</strong>Likaså har variablerna ingen betydelse om de antar negativa värden,≥ 0 i = 1, 2,..., 5, j = 1, 2, 3x ijDet totala linjära programmeringsproblemet kan nu sammanställas,min 7xs.t.xxxxxxxxxx ij1121311112131415ij+ 10x+ x+ x+ x+ x+ x+ x+ x+ x≥ 0111222322122232425+ 3x25+ x+ x+ xi = 1,+ 1x+ 11x13+ x+ x+ x+ x+ x2333313233343512+ x14+ x+ x31243413≥ 250≥ 350≥ 150≥ 250≥ 1002,..., 5,+ 7x+ 11x+ x15+ x+ x25351432≤ 500≤ 300≤ 200j = 1,+ 10x+ 12x2, 31533+ 5x+ 6x2134+ 9x+ 2x2235+ 12x23+ 8xProblemet har 15 variabler, 8 linjära begränsningar samt en linjärobjektfunktion. För detta exempel är den optimala lösningen 3650 €/månadvilken uppnås med följande värden på variablerna x 12 =350, x 13 =150, x 21 =250,x 24 =50, x 34 =100, x 35 =100 medan alla andra variabler antar värdet noll. Dennatyps problem kallas för transportproblem. Andra typer av optimeringsproblemsom ofta kan skrivas i linjär form är t.ex. allokeringsproblem.3.2 Grafisk lösningIfall ett LP problem endast består av två variabler kan detta lösas grafiskt.Fastän denna teknik inte kan användas vid lösning av praktiska problem medflere variabler, ger den värdefull insikt om egenskaperna för de optimalalösningarna. Vi betraktar följande linjära problem,min fx1, x2s.t.x + x12xxx1112+ 3x≤ 4≥ 0= −2x− x≤ 52≤ 12x2≥ 0Bivillkoren och objektfunktionen kan ritas ifall f ges ett numeriskt värde. Iföljande figur har f värdet 4 och objektfunktionen är ritad med streckad linje.1224(3.1)19
<strong>Optimering</strong>Figur 3.1. LP problem med två variablerDet skuggade området är det giltiga sökområdet, där samtliga begränsningaruppfylls och det är inom detta område vi bör söka vår lösning. Genom attminska på värdet f förflyttas den streckade linjen parallellt uppåt mot höger. Dåf minskas till noll har objektfunktionen en gemensam punkt (0,0) med detmöjliga området. Om vi fortsätter att minska på f kommer vi till sist att uppnåvärdet –9 där vi åter endast har en enda gemensam lösning (4,1) med detmöjliga området. Detta är det minsta värdet som objektfunktionen kan anta,alla mindre värden resulterar i att objektfunktionen inte har gemensammapunkter med det möjliga området. Vi kan även notera att lösningen är enhörnpunkt till det möjliga området. Lösningen till ett LP problem finns alltid ien hörnpunkt av det möjliga sökområdet ifall en möjlig lösning överhuvudtagetexisterar.Det är klart att en dylik grafisk metod är oanvändbar om antalet variableröverskrider två. I allmänhet anses problem med färre än 1000 variabler varasmå.Då vi betraktar den grafiska lösningen kan det även noteras att vi kan haproblem där lösningen är obegränsad, vilket kan ses i följande figur. Iproblemet ingår då ingen begränsning som begränsar lösningen. Dylikasituationer indikerar i allmänhet att den använda modellen är bristfällig. Visaknar således något väsentligt bivillkor.20
<strong>Optimering</strong>321-3 -2 -1 123 4Figur 3.2. Obegränsat LP problemEtt LP problem kan däremot ha flere lösningar som är lika goda. Sådanasituationer uppstår då lösningen hittas vid en begränsning som är parallell medobjektfunktionen. Ett dylikt exempel kan ses i figuren nedan.32f * =2001f=100-2 -1 123 4Figur 3.3. LP problem med flere likvärdiga lösningar.3.3 Simplex metodenSimplex metoden kan användas vid handberäkningar av LP problem och utförsdå med de s.k. simplex tabellerna. Metoden kan även implementeras på datoroch möjliggör då lösning av stora problem på rimligt kort tid. Simplex metodenutgår från att problemet är skrivet i s.k. standard form. Då x 1 , x 2 , …, x n ärbeslutsvariabler, kan standardformen skrivas,21
<strong>Optimering</strong>max z = c1x1+ c2xs.t.aaMa1121m1x , x1x + a111212x + a22x + am2, Kxxnx22x2≥ 02+ L + a1n+ L+a2n+ L + a+ L + c xxmnnxnx= b1= bnn2n= bmdär c 1 , c 2 , …, c n är kostnadskoefficienterna i objektfunktionen. a ij är parametrari bivillkoren då; i=1,2,…,m och j=1,2,…,n. b 1 , b 2 , …, b m är positiva parametrarsom återfinns på högra sidan av likhetstecknen. Vi kan notera att standardformen, förutom att ha m likhetsvillkor, begränsar variablerna till ickenegativatal. Problemet kan då skrivas kompakt i matrisform.Tmax = c xxsubject toAx = bx ≥ 0Fastän det verkar som om standardformen vore mera begränsad, är det alltidmöjligt att skriva om vilket godtyckligt LP problem som helst i standard form.Om problemet är ett minimerings problem, kan detta skrivas om som ettmaximeringsproblem genom multiplikation av c-vektorn med –1, min av f(x)är det samma som max av -f(x). Om ett villkor är av “mindre än”-typ kan detskrivas om som ett likhetsvillkor genom addition av ickenegativa slackvariablertill den vänstra sidan av likhetstecknet. Om begränsningen är av”större än”-typ subtraheras den icke-negativa slackvariabeln från vänstra sidan.En variabel som kan anta både positiva och negativa värden kan skrivas omsom skillnaden mellan två icke-negativa variabler medan en negativ variabeldirekt kan ersättas med en icke-negativ variabel.Beakta följande problemmin xs.t.1x , x11212x+ xx + x2+ 3x2≥ 2≥ 02≤ 5Då vi skriver om detta problem i standard form erhåller vi,22
<strong>Optimering</strong>max−xs.t.2x+ x1x , x11x + x2212, x3− 3x+ x− x4, x432= 5= 2≥ 0där x 3 och x 4 är icke-negativa slackvariabler.Om ett problem, skrivet i standard form, har m likhetsvillkor och n variablerkan vi anta att mn finns det m-n oberoende begränsningarsom kan elimineras från problemet. Om m=n finns det exakt en möjlig lösningoch ingen optimering behöver utföras. Då vi har m
<strong>Optimering</strong>f = 2xxxx3451+ x= 5 − x1= 4 − x12= 12 − 2x− x12− 3xFör x 1 =x 2 =0 har vi den korresponderande baslösningen x 3 =5, x 4 =12, x 5 =4 ochf=0, vilken är en möjlig lösning och således uppfyller alla bivillkor. Vi ser attobjektfunktionen nu endast är beroende av värden på x 1 och x 2 . För att få bättre(högre) värden på f måste vi öka värdet på x 1 och/eller x 2 . Istället för att ökavärdet på bägge samtidigt, väljer vi att öka dessa en i taget. I detta fall har x 1högre koefficient och vi vet då att objektfunktionen ökar snabbare då vi ökardenna variabel. Då vi håller x 2 =0 kan värdet på x 1 ökas till 5 men inte längreom vi beaktar det första bivillkoret. Ifall x 1 får ett värde över 5 fås negativtvärde på x 3 , vilket bryter mot ickenegativitetskravet. På samma sätt ger detandra bivillkoret en övre gräns på 6 och det tredje bivillkoret en övre gräns på4. Därmed kan vi höja x 1 till 4 och fortfarande ha en giltig lösning. Variabeln x 5försvinner nu ur basen då den får värdet 0 och ersätts av den nya basvariabelnx 1 .Följande steg är att uttrycka de nya basvariablerna, x 1 , x 3 , och x 4 liksom ävenobjektfunktionen f i termer av x 2 och x 5 . Detta kan göras utan att lösa deursprungliga ekvationerna. Den nya ekvationen som anger värdet på den nyabasvariabeln, x 1 , fås ur funktionen med variabeln som försvinner ur basen, x 5 ,vilket i detta fall är det tredje bivillkoret. Ekvationen fås då genom divisionmed koefficienten framför den nya basvariabeln och sortering av termerna.4 1x1= − x51 1Lösningen för de variabler som hålls kvar i basen fås genom substitution medovanstående uttryck,xx34⎛ 4 1 ⎞= 5 − ⎜ − x5⎟ − x2⎝ 1 1 ⎠⎛ 4 1 ⎞= 12 − 2⎜− x5⎟ − 3x2⎝ 1 1 ⎠2Samma procedur utförs även på objektfunktionen,⎛ 4 1 ⎞f = 2⎜− x5⎟ + x⎝ 1 1 ⎠2Då kan vi skriva det nya problemet24
<strong>Optimering</strong>f = 8 − 2xxxx341= 1+x5= 4 − x55= 4 + 2x+ x− x522− 3x2Koefficienten för x 5 är negativ och det bästa är att låta denna vara lika mednoll. f är dock en ökande funktion i x 2 , vilken är nästa variabel att komma ibasen. Om vi använder oss av samma strategi som ovan, fås de följandebasvariablerna efter att vi noterat att x 2 kan ökas till 1.f = 9 − 2xxxx241= 1+x5= 4 − x55= 1+2x− x5− x33− 3x3f kommer att ha sitt största värde då x 3 och x 5 är lika med noll och därmed ärden optimala lösningen f=9 vid x 1 =4 och x 2 =1. Då vi jämför det uppnåddaresultatet med figur 3.1 ser vi att vi har stegat oss från hörnpunkt (0,0) via (4,0)till optimet vid (4, 1). Vi har således gått från hörnpunkt till hörnpunkt och helatiden fått ett bättre värde på objektfunktionen vid varje ny hörnpunkt.3.3.1 Två-fas simplexSimplex metoden rör sig från en baslösning (hörnpunkt) till en annan tillslösningen hittas eller tills problemet konstateras vara obegränsat. Enstartlösning fås genom att välja slackvariablerna som bas. Då samtliga bivillkorhar slackvariabler är detta alltid en giltig startpunkt. Allmänna problemuppfyller dock inte denna egenskap, t.ex. likhetsvillkor har inga slackvariableri standard form. Frågan är då hur en giltig initial baslösning skall väljas. Iblandkan användaren ge en sådan lösning, men i allmänhet behövs en metod som geren giltig startpunkt. En sådan metod är två-fas simplex metoden.I två-fas simplex söks en möjlig baslösning i den första fasen och i den andrafasen löses problemet utgående från den identifierade startpunkten enligt ovanbeskrivna simplex metod. Betrakta följande problem,min f = 2x1+ 3x2s.t.3x1+ 2x2= 142x1− 4x2≥ 24x1+ 3x2≤19x1,x2≥ 025
<strong>Optimering</strong>I standard form blir problemetmax f = −2x1− 3x2s.t.3x1+ 2x2= 142x1− 4x2− x3= 24x1+ 3x2+ x4= 19x1,x2,x3,x4≥ 0Det första bivillkoret innehåller ingen kandidat till basvariabel medan det andrabivillkoret har en kandidat som skulle anta det icke tillåtna värdet -2. Det tredjebivillkoret har en slackvariabel som är lämplig bas.Den första fasen i tvåfas simplex utnyttjar artificiella variabler som temporärtadderas till problemet för varje bivillkor som saknar lämplig slackvariabel.max fs.t.= −2x1− 3x23x1+ 2x2+ a1= 142x1− 4x2− x3+ a2= 24x1+ 3x2+ x4= 19x1,x2,x3,x4,a1,a2≥ 0Nu kan simplex metoden användas med a 1 , a 2 och x 4 som basvariabler. I denförsta fasen söks en möjlig baslösning som inte innehåller de artificiellavariablerna. För att kunna uppnå en sådan ersätter vi objektfunktionen med,min ∑a iimed vilken de artificiella variablerna drivs mot noll. Om nollvärden inte kanuppnås för samtliga artificiella variabler innebär det att utgångsproblemetsaknar lösning. Då en lösning uppnåtts är detta en möjlig baslösning till detursprungliga problemet, men detta är inte den optimala lösningen tillproblemet. Efter att de artificiella variablerna eliminerats från systemet kanman fortsätta med den andra fasen där den optimala lösningen identifieras medhjälp av simplex metoden.26
<strong>Optimering</strong>3.4 Övningsuppgifter1. Lös problemet i kapitel 3.1 med både Excel lösaren och Lp_solveprogrammet.2. Ett ångkraftverk består av en turbin som tar 15000 kg/h ånga och driveren generator enligt figuren nedan. Kraftverket kan antingen säljaelektricitet för 0.15 €/kWh eller mellantappningsånga tillprocessindustrin för 7€/1000kg om det är högtrycksånga (x 1 ) och5€/1000kg om det är lågtrycksånga (x 2 ). Vi betecknar ångan (kg/h) somgenomströmmar sektionerna A, B och C med r A , r B och r C .Elektriciteten som produceras (P A , P B och P C ) i kWh ges enligt följandeuttryck, P A =3r A , P B =4r B och P C =5r C .15000 kg/hABCGLågtrycksångaHögtrycksångaFör att undvika överhettning av lågtrycksdelen i turbinen måste minst2000 kg/h ånga passera genom sektion C. För att uppnå en jämnbelastning av turbinaxeln, måste tappningen planeras så att ifall x 1 =0,får x 2 vara så hög som 10000 kg/h men för varje kg uttagen x 1 måste dethögsta tillåtna värdet för x 2 reduceras med 0.5 kg. Behovet av låg- ochhögtrycks-ånga är i förhållandet 3:4 och den högsta mängden ånga somkan säljas är 10000 kg. Hur skall vi driva vårt kraftverk för attmaximera vinsten?3. Driftsplanering av ett stålverkVi bör utarbeta en strategi för körningen av ett stålverk som omfattarkoksverk, tre masugnar, en LD konverter, en ljusbågsugn samt enSiemens Martin konverter enligt skissen nedan. Masugnarna matas medsinter och eventuellt med pellets. Råjärnet från masugnarna behandlasvidare i LD konvertern och eventuell även i Siemens Martinkonvertern. Skrot används i både LD konvertern och Siemens Martinkonvertern. Ljusbågsugnen kan chargeras med skrot eller pellets.27
<strong>Optimering</strong>Kol AKol BSinterPelletKoksverkMasugnar 1 2 3SkrotMixerSiemens MartinkonverterLDkonverterLjusbågsugnVårt problem är att för givna råvaru- samt produktionskostnader,bestämma den strategi som bör användas för att minimeratotalkostnaderna för en given produktionsnivå av stål.Vi känner till följande utgångsdata för problemet.KoksverketMax kokskapacitet vid 100 % matning av kol av typ ”A” 2.5 M ton/aMax kokskapacitet vid matning av kol av typ ”B” 2.0 M ton/aKokskostnad för kol ”A”26 €/ton producerad koksKokskostnad för kol ”B”21 €/ton producerad koksFasta kostnader5 M €/aMasugn no 1Med 1.4 ton sinter kan 1 ton råjärn produceras. Alternativt kan 1.1 tonpellet + 0.3 ton koks användas för produktion av 1 ton råjärn.Max mängd pellet som kan användas i masugnen är 0.3 M ton/a.Koksförbrukning för tre olika produktionshastigheter (optimal, hög,låg):För 1.2 M ton/a råjärnsproduktion krävs 0.4 M ton koks/ton råjärn28
<strong>Optimering</strong>För 1.5 M ton/a råjärnsproduktion krävs 0.45 M ton koks/ton råjärnFör 0.9 M ton/a råjärnsproduktion krävs 0.45 M ton koks/ton råjärnFasta kostnader7.2 M €/aMasugn no 2Med 1.4 ton sinter produceras 1 ton råjärn alternativt kan 1.1 ton pellet+ 0.3 ton koks användas.Max mängd pellet som kan användas är 0.2 M ton/a.Koksförbrukning:För 1.2 M ton/a råjärnsproduktion krävs 0.45 ton koks/ton råjärnFör 0.7 M ton/a råjärnsproduktion krävs 0.55 ton koks/ton råjärnFör 1.3 M ton/a råjärnsproduktion krävs 0.55 ton koks/ton råjärnFasta kostnader5.0 M €/aMasugn no 3Med 1.4 ton sinter produceras 1 ton råjärn och alternativt kan 1.1 tonpellet + 0.3 ton koks ge samma mängd råjärn.Max mängd pellet som kan användas är 0.4 M ton/a.Koksförbrukning:För 2 M ton/a råjärnsproduktion krävs 0.35 ton koks/ton råjärnFör 2.3 M ton/a råjärnsproduktion krävs 0.4 ton koks/ton råjärnFör 1.7 M ton/a råjärnsproduktion krävs 0.4 ton koks/ton råjärnFasta kostnader11.6 M €/aLD konverterMaximum produktionskapacitet råstål 5 M ton/a.Utbytet är 90 % för råjärn, 90 % för skrot och 85 % för pellets.Mängden råjärn som används måste vara större än 4*(skrotmängd + 1.5*pellets).Fasta kostnader 10.5 M €/aProduktionskostnad (exklusive fasta kostnader och råmaterialskostnader) = 17 €/ton råstål.Ljusbågs ugnMaximum kapacitet 1.0 M ton/a chargerat material.Utbytet är 95 % för skrot och 85 % för pellets.Fasta kostnader 3 M €/aProduktionskostnader (exklusive fasta kostnader och råmaterialskostnader) = 23 €/ton råstål.29
<strong>Optimering</strong>Siemens Martin konverterKapacitet vid 100 % matning med råjärn 3.0 M ton/aKapacitet vid 100 % matning med skrot2.0 M ton/aUtbytet är 90 % för både skrot och råjärnFasta kostnader 3.0 M €/aProduktionskostnader (exklusive fasta kostnader och råmaterialskostnader) = 24 €/ton råstål.Råmaterial kostnader:Sinter kostnadPellets kostnadSkrot kostnad21 €/ton30 €/ton35 €/tona) Hur skall vi använda anläggningen för att få minsta möjligakostnad då vi bör uppnå en årsproduktion på 7.5 M ton?b) Vid vilken årsproduktion är enhetspriset på råstålet det lägstamöjliga?30
<strong>Optimering</strong>3.5 ReferenserAvriel M. and B. Golany. Mathematical programming for industrial engineers.Marcel Dekker, New York, 1996.Dantzig G.B. Linear programming and extensions. Princeton UP, 1974.Danø S. Linear programming in industry. Springer-Verlag, Wien-New York,1974.Linnhoff B. A user guide on process integration for the efficient use of energy.Institution of Chemical Engineers, 1994.Nash S.G. and A. Sofer. Linear and nonlinear programming. McGraw-Hill,1996.Rao, S.S. Optimization theory and applications. Wiley, New Delhi, 1979.31