Date post: | 05-Jan-2016 |
Category: |
Documents |
Upload: | terence-mason |
View: | 213 times |
Download: | 1 times |
Weight and Cube, Frequency
Extend Network Flows to Multicommodity
More than one product Different products share conveyance
capacityDelivery Schedules or Frequency
Separate Network Flows
Move two products through the network
E.g., CPU’s and MonitorsHow does this affect our
Transshipment Model?
With 2 Products
3 plants2 distribution centers2 customersMinimize shipping costs
Direct from plant to customer
Via DC
A Transshipment Model
The Sets The Plants set PLANTS; The Distribution Centers set DCS; The Customers set CUSTS; The Products set PRODS;
Transshipment Model
The Set of Edges We assume all Plant-DC, Plant-Customer,
DC-Customer edges are possible. Convenient to define a set of Edgesset EDGES := (PLANTS cross DCS) union (PLANTS cross CUSTS) union (DCS cross CUSTS);
A Transshipment Model
The Parameters The Supply at each plant of each product
param Supply{PLANTS, PRODS};
The Demand at each Customer for each productparam Demand{CUSTS, PRODS};
The Cost on each edge - cost of the truckparam Cost{EDGES};
A Transshipment Model
The Variables The volume shipped on each edge of each
product var Ship{EDGES, PRODS} >= 0;
The ConstraintsCombine ideas of Shortest paths (flow
conservation) with Transportation (meet supply and demand) for each Product
A Transshipment ModelFor each Plants.t. RespectSupply {plant in PLANTS,
prod in PRODS}: sum{(plant, t) in EDGES} Ship[plant,t, prod]<= Supply[plant, prod];
A Transshipment ModelFor each Customers.t. MeetDemand {cust in CUSTS, prod in PRODS}: sum{(f, cust) in EDGES} Ship[f, cust, prod]>= Demand[cust, prod];
A Transshipment ModelFor each DC: Conserve flows.t. ConserveFlow {dc in DCS, prod in PRODS}: sum{(f, dc) in EDGES} Ship[f,dc,prod] = sum{(dc, t) in EDGES} Ship[dc,t, prod];Flow into the DC = Flow out of the DC for each
product
Modeling Trucks
The cost per conveyance param Cost {EDGES};The number of conveyances
var Conveyances{EDGES} integer >= 0;Freight Cost in the Objective
minimize FreightCost: sum {(f,t) in EDGES} Cost[f,t]*Conveyances[f,t];
How many Conveyances?
Different commodities sharing a vehicle
Easy to figure vehicle capacity for single commodity
How to figure vehicle capacity for mixed loads?
Typical Approach
10 items
20 items
40% 60%
4 items12 items
Formulation
Blue Vol/10 + Red Vol/20 1To calculate the number of vehicles
required to carry the given volumesConveyances =
Blue Vol/10 + Red Vol/20
Several Capacities
Weight LimitSpace or CubeEnsure loads meet each limitVehicles Blue Vol/10 + Red
Vol/20
Vehicles Blue Vol/8 + Red Vol/25
Number that reaches the weight limit
Number that fills the cube
Counting Conveyances
Weight of each productparam Weight{PRODS};Cube of each productparam Cube{PRODS};Weight Limitparam WeightLimit;Cubic capacityparam CubicCap;
Counting Conveyances
Conveyances required by weights.t. ConveyByWeight{(f,t) in EDGES}: Conveyances[f,t] >= sum{prod in PRODS} Ship[f,t,prod]*Weight[prod]/WeightLimit;Conveyances required by cubes.t. ConveyByCube{(f,t) in EDGES}: Conveyances[f,t] >= sum{prod in PRODS} Ship[f,t,prod]*Cube[prod]/CubicCap;
FrequencySometimes conveyances depart on a
schedule even if they are not full Time definite delivery
LTL carriersParcel carriers
Lean Manufacturing Auto industry
Scheduled ServiceOcean carriersAir carriers“Pool operators”
Impacts
Number of conveyances required Equipment Utilization
Time product waits for carriage Service Inventory...
Number of Conveyances
One way to handleGiven number of departures in the
period modeledparam Frequency{EDGES};var Conveyances{(f,t) in EDGES} integer >= Frequency[f,t];
Writing these as bounds is better than adding separate constraints.
Inventory
So far, just FreightInventory ComponentWe focus on moving and waiting
inventoryCapture moving inventory as we did
in Total Cost
Moving Inventory
Holding Cost * Product Value * Daily Volume * Days of Transit = Pipeline inventory cost on edge
param HoldingCost;param Value{PRODS};param TransitDays{EDGES};Assuming Ship[f,t,prod] is daily
volume shipped from f to t of prod...
Pipeline Inventory
Sum{(f,t) in EDGES, prod in PRODS} HoldingCost*Value[prod]*Ship[f,t,prod]* TransitDays[f,t];
This is the annual cost to finance the value of products that are always on the road.
Waiting Inventory
Just looks at waiting for transportIgnores waiting for production and
consumption. Assumes smooth or uniform operationsIf carrier departs once every 5 days,
some parts arrive just after last departure some parts arrive just before next departure on average parts wait about 2.5 days add this to the transit time
Adding Waiting Time
If Frequency is given in departures per day (e.g., Frequency of 0.2 = 1 every 5 days)
1/Frequency = Days between departures
0.5/Frequency = Average days product waits for transport
Pipeline and Waiting Inventory
Sum{(f,t) in EDGES, prod in PRODS} HoldingCost*Value[prod]*Ship[f,t,prod]* (TransitDays[f,t]+0.5/Frequency[f,t]);
This assumes the system operates like a subway and pays inventory on riders from the time they put their token in at the first station till they exit the last station.
Add this to the objective to minimize freight and inventory costs