Document

advertisement
ShipSmartTM:
The Model and the Computer Science
Jonathan Sheffi
University of Maryland
College Park
April 17, 2000
Outline
The EOQ Model
 Reliability and Safety Stock
 Internal Structure of
ShipSmart
 ShipSmart™ Example
 Object-Oriented
Programming

Lot Size Inventory
Tradeoff: Production Batch vs. Inventory
similar to
Tradeoff: Shipment Size vs. Inventory
• Production setup costs vs. Inventory carrying
costs
• Transportation costs vs. Inventory carrying
costs
Economic Order Quantity Model
A simple business:
• Order fixed quantity of goods at fixed intervals
• Sell at constant rate
In Stock
Time
Inventory costs = quantity x time
A Single Receiving Cycle
Stock (#
of items)
Time (days)
A Single Receiving Cycle
Stock (#
of items)
1
2
3
4
5
6
7
8
9
10 11 12 13
Time (days)
A Single Receiving Cycle
Stock (#
of items)
X
1
2
3
4
5
6
7
8
9
10 11 12 13
Time (days)
A Single Receiving Cycle
Stock (#
of items)
X
1
2
3
4
5
6
7
8
9
10 11 12 13
Time (days)
A Single Receiving Cycle
Stock (#
of items)
X
Y
1
2
3
4
5
6
7
8
9
10 11 12 13
Time (days)
Smaller (and more frequent) shipments imply lower
inventory carrying costs
Tradeoffs:
Smaller shipments
• low inventory costs
• high transportation costs
Large shipments
• high inventory costs
• low transportation costs
In addition:
Inventory cost-in transit
Inventory Costs
Inventory
Carrying
Costs/Unit
In-Transit
Inventory
Shipment Size
Transportation Costs
14
LTL Rate
12
10
8
Formula rate curve
6
4
Actual rate curve
2
0
0
2
4
6
Shipment Size
8
10
Basic Tradeoffs
16
COSTS
14
($/item)
12
10
8
6
4
2
0
Shipment Size
0
1
2
3
4
Logistics Cost Components as a
Function of Shipment Size
(items/shipment)
5
6
Basic Tradeoffs
16
COSTS
14
($/item)
12
10
8
6
4
Transportation
costs
2
0
Shipment Size
0
1
2
3
4
Logistics Cost Components as a
Function of Shipment Size
(items/shipment)
5
6
Basic Tradeoffs
16
COSTS
14
($/item)
12
10
Cycle
inventory
costs
8
6
4
Transportation
costs
2
0
Shipment Size
0
1
2
3
4
Logistics Cost Components as a
Function of Shipment Size
(items/shipment)
5
6
Basic Tradeoffs
16
COSTS
14
($/item)
12
10
Cycle
inventory
costs
8
6
4
Transportation
costs
2
In-Transit
Inventory
0
Shipment Size
0
1
2
3
4
Logistics Cost Components as a
Function of Shipment Size
(items/shipment)
5
6
Basic Tradeoffs
16
COSTS
14
($/item)
12
10
Cycle
inventory
costs
8
6
Total
inventory
costs
4
Transportation
costs
2
In-Transit
Inventory
0
Shipment Size
0
1
2
3
4
Logistics Cost Components as a
Function of Shipment Size
(items/shipment)
5
6
Basic Tradeoffs
16
COSTS
14
($/item)
12
10
Total logistics
costs
Cycle
inventory
costs
8
6
Total
inventory
costs
4
Transportation
costs
2
In-Transit
Inventory
0
Shipment Size
0
1
2
3
4
Logistics Cost Components as a
Function of Shipment Size
(items/shipment)
5
6
Basic Tradeoffs
16
COSTS
14
($/item)
12
10
Total logistics
costs
Cycle
inventory
costs
8
6
Total
inventory
costs
4
Transportation
costs
2
In-Transit
Inventory
0
Opt. size
0
1
2
3
Shipment Size
4
Logistics Cost Components as a
Function of Shipment Size
(items/shipment)
5
6
Basic Tradeoffs
16
COSTS
14
($/item)
12
10
Total logistics
costs
Cycle
inventory
costs
8 cost
Least
6
Total
inventory
costs
4
Transportation
costs
2
In-Transit
Inventory
0
Opt. size
0
1
2
3
Shipment Size
4
Logistics Cost Components as a
Function of Shipment Size
(items/shipment)
5
6
Elements of Total Logistics Costs
Transportation Costs
Cycle Inventory Costs
In Transit Inventory Costs
Safety Stock Costs
Other Costs
Total Logistics Cost
Analytical Expressions
Optimal
Shipment
Size
Total
Logistics
Costs
=
=
2 * (Transportation costs) (Demand rate)
(Cycle Inventory Costs)
2 * (Cycle Inventory Costs) (Transportation Costs)
(Demand Rate)
In-transit
Inventory
Costs
Safety
Stock
Costs
Other
Costs
Transit Times
Transit delivery times vary
in random fashion.
Each mode and carrier is
characterized by a distribution
of delivery times.
Effect of Shipment Delay
Inventory
Time
Regular on-time delivery
Effect of Shipment Delay
Inventory
Time
Delay
One delivery delayed
Effect of Shipment Delay
Inventory
Time
Delay
Delivery pattern with a single delay
Effect of Shipment Delay
Inventory
Time
Delay
Erratic delivery pattern
Effect of Safety Stock
Inventory
Time
Safety stock level
Effect of Safety Stock
Inventory
Time
Avoiding stock-out
Transit Time Density Function
Probability
Transit Time
Transit Time Density Function
Probability
Transit Time
Average Time
Transit Time Density Function
Probability
Transit Time
Average Time
95 Percentile
Transit Time Density Function
Probability
Safety Time
Transit Time
Average Time
95 Percentile
Transit Time Density Function
Probability
Safety Time
Transit Time
Average Time
95 Percentile
Safety Stock for 95% Fill Rate =
(Safety Time) x (Sales Rate)
The Internal Structure
Calculations are performed for each
option separately
 In case there is one segment:

– Optimal shipment size is calculated using
the EOQ formula
– Takes into account minimum frequency
and storage capacity
– Calculates all other output values
The Internal Structure

For multiple segments:
– Rank vehicle capacities
– Find how many vehicles are needed for
each segment
– Loop over the second largest, third largest,
etc.
– Use optimal solution to calculate all output
values (including the segment solutions)
ShipSmart Example
Tactics for the Rail Operator
Reduce shipment price
 Tighten delivery time
 Tighten reliability
 Compete for lower valued commodities
 Compete for commodities which ship in
high volume

Procedural vs. OOP

Procedural programming:
– Organize system around procedures that operate on data
(do-something <data> <arg> ...)
(do-another-thing <data>)

Object-oriented programming:
– Organize system around objects that receive messages
(<object> 'do-something <arg>)
(<object> 'do-another-thing)
– An object encapsulates data and operations
Advantages of OOP
•
Simplicity: software objects model real world objects, so the
complexity is reduced and the program structure is very clear
•
Modularity: each object forms a separate entity whose internal
workings are decoupled from other parts of the system
•
Modifiability: it is easy to make minor changes in the data
representation or the procedures in an OO program. Changes in
the behavior of an object do not affect any other part of a
program, since the only public interface that the external world
has to an object is through messages
•
Extensibility: adding new features or responding to changing
operating environments can be solved by introducing a few
new objects and modifying some existing ones
•
Maintainability: objects can be maintained separately, making
locating and fixing problems easier
•
Reusability: objects can be reused in different programs
Elements of OOP

Class:
– specifies the common behavior of entities

Instance:
– A particular object or entity of a given class
Space War Class Diagram
SHIP
position:
velocity:
num-torps:
TORPEDO
position:
velocity:
target:
proximity-fuse:
TORPEDO?
POSITION
VELOCITY
MOVE
DISPLAY
CLOCK-TICK
POSITION
VELOCITY
MOVE
SHIP?
ATTACK
DISPLAY
CLOCK-TICK
EXPLODE
PLANET
position:
POSITION
PLANET?
DISPLAY
CLOCK-TICK
Space War Class Diagram
SHIP
position:
velocity:
num-torps:
TORPEDO
position:
velocity:
target:
proximity-fuse:
TORPEDO?
POSITION
VELOCITY
MOVE
DISPLAY
CLOCK-TICK
POSITION
VELOCITY
MOVE
SHIP?
ATTACK
DISPLAY
CLOCK-TICK
EXPLODE
PLANET
position:
POSITION
PLANET?
DISPLAY
CLOCK-TICK
• Ships and torpedoes have some behavior that is the same –
is there are way to capture this commonality?
Space war game with Inheritance
MOBILE-THING

position:
velocity:
MOBILE-THING?
POSITION
VELOCITY
MOVE
MOBILE-THING

is-a
is-a
TORPEDO
target:
proximity-fuse:
TORPEDO?
DISPLAY
CLOCK-TICK
SHIP class is a specialization or subclass of the MOBILE-THING class
– SHIP is-a MOBILE-THING
– SHIP inherits the state and behavior of
MOBILE-THING class is a super-class
of the SHIP and TORPEDO classes
SHIP
has-a
target
PLANET
num-torps:
position:
SHIP?
ATTACK
DISPLAY
CLOCK-TICK
EXPLODE
POSITION
PLANET?
DISPLAY
CLOCK-TICK
Any Questions?
Jon Sheffi
jsheffi@mit.edu
?
? ??
?
?
Download