Strategisk optimering av transporter och lokalisering Hur matematisk optimering kan användas för att lösa komplexa logistikproblem
Björn Samuelsson Teknologie Licentiat 1991 SSAB Hardtech 1995-98, distributionsutvecklare ABB Plast 1998-2000, marknadsutvecklare AGA/Linde Gas 2000-2012, senior logistikexpert LTU, 2013-, Undervisar, skriver doktorsavhandling (2015 Q4 )2
Vilket problem ska vi lösa? Hitta det mest kostnadseffektiva sättet att producera, lagra, transportera och distribuera produkter från källa till slutkund för olika produkter, med olika krav på kundservice
Ett exempel från verkligheten Produkt: Industriell och medicinsk gas i cylindrar Råvara: Luftseparationsanläggning (ASU) Fyllning av cylindrar: Fyllningsstation Transport och distribution: Till annan fyllningsstation, försäljningsställe eller kund
Complex real life set-up ASU CUSTOMER COMPETITOR Sales Partner Example Germany ASU: 22 Filling station: 16 Sales partners: 978 End customers: 50.000 Product groups: 130 FILLING STATION Possible combinations 102.232.732.160 Optimised real life set-up
Lösningsmetoder cost Manual Brute Force Heuristic rules Mathemathical Optimisation quality
Svårt så vi börjar med ett enklare problem
Problem Two different kind of propane cylinders are sold to customer: 15 kgs and 45 kgs The problem: The total weight per cylinder is 20 and 70 kg. The footprint is 0.1 and 0.15 sqm The 15 kgs cylinder can be loaded on top of each other The maximum weight that can be loaded is 6000 kg and maximum space is 14 sqm The revenue per sold cylinder is 90 (15 kgs) and 300 (45 kgs) We have confirmed orders for 10 45kgs and 40 15kgs cylinders All cylinders loaded on the truck will be sold Find the combination of cylinders that will maximise the total revenue
Problem definition We are looking to maximise total revenue based on: Number of 15 kgs cylinder Number of 45 kgs cylinder We have a number of given facts: Weight, footprint, revenue We have space and weight limitations, and confirmed orders per cylinder type
Example, graphic presentation Obvious we can t have less then 0 cylinders Weight limitations, max 6000 kg Only 45 kgs onboard => max 85.7 cyls Only 15 kgs onboard => max 300 cyls Space limitations, max 14 sqm Only 45 kgs onboard => max 93.3 cyls Only 15 kgs onboard => max 280 cyls Nbr of 45kgs Min number of 45 kgs = 10, min number of 15 kgs = 40
Example, solution Feasible region Solution must be inside feasible region We want to maximise revenue: Z= 300*45kgs+90*15kgs Set Z=9000 Set Z =18000 Find maximum value of Z Nbr of 45kgs Solution: 40 x 45kgs and 160 x 15kgs
Tillbaka till ursprungligt problem Vad vill vi optimera? Flödet av produkter från start till slutkund Vi har ett nätverk av möjliga noder (ASU, fyllningstationer, försäljningsplatser, kunder) med länkar däremellan Max eller min problem? Minimera kostnaden Vilka kostnader Transport- och distributionskostnader Produktion- och hanteringskostnader Fasta och rörliga kostnader
Optimera? Om vi nu vill minimera kostnaderna finns en lika uppenbar som felaktig lösning: Inget produceras, inget transporteras. Kostnad = 0 Vi måste införa restriktioner!
Restriktioner Kundernas behov måste tillfredsställas Måste finnas en balans i varje nod: allt som går ut från en plats måste antingen ha producerats där eller transporterats dit Produktion av en viss produkt får bara ske om kapacitet finns
Kostnader Vi måste sätta kostnader på transporter, distribution, produktion, hantering
Variabler Vi söker värden på dessa som ger oss optimalt slutresultat Antal enheter producerade var Antal enheter transporterade från/till Antal enheter distribuerade
Transport Transporter sker mellan Linde-platser Från A => B Kostnaden antages vara proportionell mot avståndet CT ij = kostnaden per km och enhet från i till j x ijk = beslutsvariabel, hur många enheter skickas från plats i till j Till vår totalkostnad får vi då termen x ijk CT ij
Distribution I detta fall sker distribution till slutkund på dynamiska rutter med flera stopp. Vidare gäller att en kund ska få alla produkter levererade från samma plats. För att beräkna kostnaden för distributionen måste vi ta hänsyn både till avståndet/tiden från levererande lager och förväntade avstånd/tid mellan kunder samt hur många stopp vi kan förvänta oss per rutt
Hur ska vi uppskatta distributionskostnaden? För att kunna uppskatta distributionskostnaden grupperar vi kunderna till kundkluster
För varje kombination av sådant kluster och levererande plats kan vi beräkna den förväntade kostnaden (per år) CD im = Distributionskostnad (per år) från plats i till kluster m y im = Beslutsvariabel, andel av efterfrågan i kluster m som levereras från plats i Till vår totalkostnad får vi då termen y im CD im NN En restriktion: ii=1 yy iiii = 1 (för alla kluster)
Produktion Produktion sker på olika platser, med olika kostnader. Produktionen får ej överstiga kapacitet Vi har en produktionskostnad per enhet CP ik = kostnad att producera en enhet av produkten k vid platsen i x iik = beslutsvariabel, hur mycket ska produceras av produkt k vid plats i Till vår totalkostnad får vi då termen x iik CP ik x iik T ik vad som tillverkas måste vara mindre än kapaciteten (T)
Om problemet innehåller frågan om platser ska finnas med eller inte, måste vi definiera den fasta kostnaden för platsen CF i = Fast kostnad om anläggning i används z i =Beslutsvariabel, ska plats i användas (0 eller 1) Till vår totalkostnad får vi då termen z i CF i x iik z i T ik modifierad kapacitetsrestriktion
Balanskrav För varje plats och produkt krävs att summan av vad som skickas till någon annan plats + vad som skickas till kunder måste vara lika med vad som kommer in från andra platser + vad som produceras på denna plats Balansrestriktion: NN NN MM xx iiiiii + xx jjjjjj xx iiiiii yy iiii DD mmmm = 0 jj=1 jj=1 mm=1
Vi kan nu sätta samman dessa kostnader och restriktioner i ett ekvationssystem: Vi ska minimera kostnaderna (produktion (fasta och rörliga), transport, distribution): NN MM NN NN KK NN KK NN yy iiii CCCC iiii + xx iiiiii CCCC iiii + xx iiiiii CCCC iiii zz ii CCCC ii ii=1 mm=1 ii=1 jj=1 kk=1 ii=1 kk=1 ii=1
Med hänsyn till restriktionerna Efterfrågan: NN yy iiii = 1 ii=1 (mm = 1,2, MM) Balans: NN NN MM xx iiiiii + xx jjjjjj xx iiiiii yy iiii DD mmmm = 0 jj=1 jj=1 mm=1 (ii = 1,2, NN, kk = 1,2, KK) Kapacitet: xx iiiiii TT iiii zz ii (ii = 1,2, NN, kk = 1,2, KK)
Problemet formulerat Återstår bara att lösa problemet Enkelt Hur??
Principles of Linear Programming (10,250) Z=25500 (40,160) Z=26400 Due to the fact that the restrictions and the objective function are linear combinations of the variables, the solution to the max/min problem is always in a corner The principal of linear programming (LP) is to search the corners for the optimal solution. Furthermore, due to the linear assumptions, if the objective function cannot be improved by moving from one corner to an adjacent one, the global optimum is found (74.3, 40) Z=25885 Nbr of 45kgs
Sammanfattning Om vi kan formulera problemet som en linjär kombination av våra beslutsvariabler (och tillåta oss att vissa är binära variabler) kan vi på ett mycket enkelt sätt lösa problemet Många problem i logistikvärlden passar in i detta Andra exempel: Ruttplanering Kapacitetsplanering Blandningsproblem
Om vi kan lösa ett problem exakt Gör det! Matematisk optimering (LP/MIP) är ett mycket effektivt verktyg för att lösa många komplexa problem inom logistikområdet