180 likes | 312 Views
Transport fra lager til kunder. LOG530 Distribusjonsplanlegging. Kunde 1. Lager 1. Kunde 2. Lager 2. Kunde 3. Lager 3. Kunde 4. Nettverk. Et nettverk består av noder og greiner. Nodene angis med sirkler og representerer ofte ressurser og behov.
E N D
Transport fra lager til kunder LOG530 Distribusjonsplanlegging
Kunde 1 Lager 1 Kunde 2 Lager 2 Kunde 3 Lager 3 Kunde 4 Nettverk • Et nettverk består av noder og greiner. • Nodene angis med sirkler og representerer ofte ressurser og behov. • Greiene angir mulige koblinger mellom nodene. • Nettverket er en prinsippskisse, og angir for eksempel ikke geografiske proporsjoner. LOG530 Distribusjonsplanlegging
data • Vi har 3 lager som skal dekke behovet hos 4 kunder. • Transportkostnadene varierer med avstanden mellom lagrene og kundene. • Lagrene har ulik kapasitet/tilbud. • Kundene har ulik etterspørsel. HVOR MYE SKAL SENDES FRA DE ULIKE LAGRENE TIL DE FORSKJELLIGE KUNDENE? LOG530 Distribusjonsplanlegging
Problem • La Xft angi mengde transportert fra lager f til kunde t. • Vi ønsker å finne disse mengdene Xft slik at kundene får dekt sitt behov til lavest mulig kostnad, og uten å overskride kapasiteten som lagrene har. Kundenodene er her nummerert fortløpende etter lagrene LOG530 Distribusjonsplanlegging
symboler Parametere: Beslutningsvariabler: LOG530 Distribusjonsplanlegging
Kapasitet Lager Ni Transportkostnader pr enhet cft Behov Kunder dj 4 1 N1350 c14 =150 d4150 c15 =250 c16 =300 c17 =275 5 2 c24 =200 d5230 N2300 c25 =175 c26 =350 c27 =150 c34 =250 6 3 c35 =300 d6160 N3300 c36 =400 c37 =260 7 d7220 L Nodemengde lager L = {1,2,3} K Nodemengde kunder K = {4,5,6,7} Prinsippskisse med data LOG530 Distribusjonsplanlegging
Matematisk formulering Målfunksjon: Alternativ formulering: LOG530 Distribusjonsplanlegging
Matematisk formulering Restriksjoner: Alternativ formulering: LOG530 Distribusjonsplanlegging
MATEMATISK FORMULERING Restriksjoner: Alternativ formulering: Ikke-negativitetsbetingelsene: Xft ≥ 0 for alle (f,t)G LOG530 Distribusjonsplanlegging
LP-formulering på tabellform • Multipliser koeffisientene i en linje med variabelnavnene øverst i tabellen: • Første linje gir deg målfunksjonen (objective) • Linje 1-3 gir deg restriksjonene for node 1-3 (lagrene) • Linje 4-7 gir det restriksjonene for node 4-7 (kundene) • VI KAN LAGE ET REGNEARK ORGANISERT ETTER LP-FORMULERINGEN LOG530 Distribusjonsplanlegging
Regneark organisert som lp-modell Samme formel kopieres til alle restriksjonene I Solver angir vi beslutningsvariablene, målfunksjonen og restriksjonene. LOG530 Distribusjonsplanlegging
Regneark organisert rundt dataene Her er tabellen med data kopiert for å gi plass til beslutningsvariablene, restriksjonene, og målfunksjonen. LOG530 Distribusjonsplanlegging
Kjennetegn ved nettverk • Om vi ser på vår figur, kan vi oppsummere følgende: • Vi har en beslutningsvariabel for hver grein (Xft) • Vi har en restriksjon for hver node; • kapasitetsrestriksjoner for alle lagernoder • behovsrestriksjoner for alle kundenoder • En effektiv måte å organisere regnearket er derfor å lage to tabeller: • En tabell for beslutningsvariablene (greinene) • En tabell for restriksjonene (nodene) LOG530 Distribusjonsplanlegging
Regneark organisert som nettverk En tabell for nodene (restriksjonene) En tabell for greinene (beslutningsvariablene) LOG530 Distribusjonsplanlegging
AMPL modell - Ex_1.mod # DEFINERE INDEKSER/DIMENSJON set I; # mengdenavn for lager set J; # mengdenavn for kunder set G=(I cross J); # mengdenavn for greiner # DEFINERE PARAMETRE param C{G}>=0; # C - transportkostnad langs greinene param D{J}>=0; # D - behov hos kunde J param N{I}>=0; # N - lagerkapasitet hos lager I # DEFINERE VARIABLER var x{G}>=0; # x - transportkvanta langs greinene # DEFINERE MÅLFUNKSJONEN minimize Kost: sum {(a,b) in G} C[a,b] * x[a,b]; # Sum kostnader langs alle greinene # DEFINERE RESTRIKSJONENE subject to Kbehv {j in J}: # For alle kunder j: sum {i in I} x[i,j] = D[j]; # Sum mottatt fra alle lager i = behovet subject to Lkap {i in I}: # For alle lager i: sum {j in J} x[i,j]<= N[i]; # Sum levert til alle kunder j <= kapasiteten LOG530 Distribusjonsplanlegging
Ampl data - Ex_1.dat set I := L1 L2 L3; # 3 lager set J := K1 K2 K3 K4; # 4 kunder param D:= # etterspørsel/behovK1 150 K2 230K3 160K4 220; param N:= # lagerkapasitet L1 350L2 300L3 300; param C: # transportkostnader K1 K2 K3 K4 :=L1 150 250 300 275L2 200 175 350 150L3 250 300 400 260; LOG530 Distribusjonsplanlegging
Ampl kjørefil - Ex_1.run model C:\Bruker\AMPL\Lo530Ex1_1.mod; data C:\Bruker\AMPL\Lo530Ex1_1.dat; option solver cplex; solve; option omit_zero_rows 1; display Kost > C:\Bruker\AMPL\Lo530Ex1_1.sol; display {(a,b) in G} x[a,b] > C:\Bruker\AMPL\Lo530Ex1_1.sol; exit; LOG530 Distribusjonsplanlegging
Ampl – modell og data atskilt AMPL Kjøring Ex1_1.run Modell Ex1_1.mod Data Ex1_1.dat Resultat Ex1_1.sol LOG530 Distribusjonsplanlegging