Supply Chain Modeling Language (SCML) Project
Mikio KUBO
Tokyo University of Marine Science of Technology
http://kubomikio.com
Koji Nonobe @ Hosei University
Mutsunori Yagiura @Nagoya University
J. Pedro Pedroso @ Porto University
Hideki Hashimoto @Nagoya University
What is the SCML?
SCML
Supply Chain Optimization Models
Combinatorial Optimization Problems
Solvers
AMPL Model Files
Supply chain optimization models
• resource constrained scheduling (RCS),
• lot-sizing (LS)
• logistics network design (LND)
• safety stock allocation (SSA)
• economic order quantity (EOQ)
• inventory policy optimization (IPO)
• vehicle routing (VR)
Combinatorial optimization problems
• generalized assignment problem (GAP)
• set covering problem (SCP)
• rectangular packing problem (RPP)
• multi-dimensional knapsack problem (MKP)
• facility location problem (FLP)
Related work
• SCOR (supply chain operations reference) model
• SCML (same name!) : supply chain modeling language for simulation
• Algebraic modeling languages
SCOR model
proposed by Supply Chain Council
A reference model designed for effective communication among SC partners
SC= {(plan, source, make deliver, return) ...}
Another SCML
Chatfield et al. (2009)
XML-based document format for simulationBasic entities are:• node and arc (network is essential)• component ( product + resource) ≒• action ( activity)≒• policy (for doing simulation)
Algebraic modeling languages
• AMPL, MOSEL, OPL, GAMS, etc.
• solvers (general purpose)– Mixed integer programming, constrained
programming, other nonlinear programming
• using set, parameter, variable, objective function, constraints, etc. (also general purpose)
Previous work
• Activity based view of linear programming Resource constrained scheduling model
• Lot-sizing models
• State-task network representation for batch process
• Logistics network design model
• Algebraic modeling languages
Activity based view of linear programmingDantzig-Wolfe (1963)
brow =resource
matrix A=[aij]
column =activity (amount: Xj)
++
-
system inputof resource
activity i consumes
resource j by aij
Resource constrained scheduling model
activity
resource
require
activity
precedence relation
Lot-sizing models
resource
resource
BOM (bill of material)
product
State-task network representation
state = product
resource
task =activity
Kandili-Pantelides-Sargent (1993)
Logistics network design model
resource
require
node node
product
assemble
disassemble
transport
Key entities
• activity• resource• product• node• arc• horizon• mode • state, temporal, piecewise, solver …
Activity
• Every action that requires the resources, consumes and/or produces the product, and derives the cost
activity
resource
product productconsume produce
require
Fixed CostVariable Cost
Resource
• Every entity of limited availability
Our focus is on the physical, human, and financial resources.
• Categorized into:– Renewable– Nonrenewable
Product , node, arc
• A product is an item or commodity through the network
• Network is defined by the set of nodes and arcs
node node
product product
arc
Relation among entities
activity
resource
product productconsume produce
require
node nodearc
Activities and resources can be defined on arcs.(They are called “local.” Otherwise called “global.”)
Products are defined on nodes.
Notations
• inf : ∞• integer+: a non-negative integer or +∞• integer: an integer or +∞ or -∞• real+: a non-negative real number or +∞ • real: a real number or +∞ or -∞• range: a pair of two integers (a,b) such that a b≦• ... : allow any number of repetitions• [ ] : optional • { } : select one within the braces
Horizon
horizon declaration:
horizon integer+
0 1 2 3 4horizon 4
set the planning horizon to 4
Activity attributes [autoselect] mode-name ...
mode [mode-attributes]
duedate integer+
weight integer+
start { integer+, range, piecewise-name }
completion { integer+, range, piecewise-name }
selected { mode-name, resource-name}
execute interval range [parallel integer+] ...
Interval
①②③④0 1 2 3 4
interval 1 3 => { , }② ③ [1,3)
execute interval 1 3execute interval 3 4 parallel 2
0 1 2 3 4
range
Mode attributesduration integer+
resource-name [max] [ interval range] requirement integer+ cost { integer, piecewise-name } ...
break interval range [max] integer+ ...
parallel interval range [max] integer+ ...
state-name from state-value to state-value
amount interval range real+ (LS, LND)
consume product-name unit real+ ...
produce product-name unit real+ ...
variablecost [interval range] real ...
fixedcost [interval range] real ...
cycletime [interval range] { integer+, range }
leadtime [ interval range] { integer+, range }
Resource attributes
[interval range] capacity integer+...
location node-name time integer+
cost real
interval 0 1 capacity 1 interval 1 3 capacity 2interval 3 4 capacity 1
0 1 2 3 4
Temporal constraintstemporal declaration:
temporal activity-name activity-name [attributes]
attribute:
type { SS, SC, CS, CC }
delay integer
A B
Completion Start
delay
States
state declaration:
state state-name time integer+ value integer+ ...
Piecewise linear function attributes
piecewise example default inf interval 0 1 init 1 slope 1 interval 1 3 init 1 slope 0
Must be lower semicontinous
interval range init real slope real ...
default real
Product attributessupply [interval range] {real+, range, randvar } ...
demand [interval range] {real+, range, randvar } ...
holdingcost [interval range] real+ ...
backordercost [interval range] real+ ...
inventory [interval range] real+ ...
capacity [interval range] real+ ...
variability real+
safetyratio real+
reorderpoint real+
basestocklevel real+
Nodes
node declaration:
node node-name [attributes]
attribute:
location latitude longitude
weight real+
product-name [product-attributes] ...
Arcs
arc arc-name node-name node-name [attributes]
attribute: cost real time { real+, piecewise-name } distance real+ activity-name [activity-attributes] ... resource-name [resource-attributes] ...
Solvers
solver declaration:
solver { RCS, LS, LND, SSA, EOQ, IPO, VR, SCP, GAP, RPP, MKP, FLP} [attributes]
attribute:
option option-name option-value ...
Hierarchies
activity (resource, product) attributes :
children activity (resource, product)-name ...
[type { and, or } ]
Modes: children of an activity with type “or”
Vehicle capacities (weight, volume,...) : children of a resource (vehicle) with type “and”
Scheduling model• [horizon], activity, mode, resource,
nonrenewable, temporal, state
activity
resource
require
activitytemporal
modes require
nonrenewable
state
Scheduling model (example)
resource writer
interval 0 3 capacity 1
interval 4 6 capacity 1
interval 7 10 capacity 1
interval 11 inf capacity 1
activity A duedate 5 weight 20
mode duration 1
writer interval 0 1 requirement 1
activity B duedate 9 weight 5
mode duration 2
writer interval 0 2 requirement 1
break interval 0 2 max 1
...
solver RCS
option time 100
Lot-sizing model
• horizon, activity, mode, resource, product
product
resource
activity
consume
produce
product
BOM• BOM (bill of materials) : G=(N,A)
p
q
product
resource
φpq: the units of product p to produce one unit of product q.
child product of q parent product of q
φpq
BOM representation using SCML
product
resourcechild parent
activity
activity
activity
resource
consume
produce
Lot-sizing model (example)horizon 5
product prod1
holdingcost 0 inf 5
demand interval 0 1 5
demand interval 1 2 7
demand interval 2 3 3
demand interval 3 4 6
demand interval 4 5 4
product parts1
holdingcost 0 inf 1
...
resource res1
interval 0 inf capacity 25
activity act1
mode duration 1
variablecost interval 0 inf 1
fixedcost interval 0 inf 53 #setup cost
leadtime interval 0 inf 3 #setup time
res1 interval 0 inf requirement 1
consume parts1 unit 1
consume parts2 unit 2
generate prod1 unit 1
solver LS
Logistics network design (LND) model
• horizon, activity, resource, product, node, arc
activity
resource
product productconsume produce
require
node node
An example of LND model source1
source2
apple
bottle
plantin plantout customer
juice juice
vehicle
ship
line2
line1 vehicle
apple
bottle
juice×2
LND model (SCML example) 1horizon 2
product apple
holdingcost 5 inf 5
product bottle
holdingcost 1 inf 5
product juice
variability 1
safetyratio 1.65
node source1
apple
supply interval 0 inf 100
node source2
bottle
supply interval 0 inf 100
node plantin
node plantout
juice
holdingcost 10
node customer
juice
demand interval 0 inf 10
holdingcost 30
LND model (SCML example) 2arc source1 plantin
trans_apple #activity
vehicle cost 10 #resource
arc source2 plantin
trans_bottle #activity
ship cost 30 #resource
arc plantin plantout
prod_juice_online1
prod_juice_online2
line1 cost 50
line2 cost 100
arc plantout customer
trans_juice
vehicle cost 20
activity trans_apple
mode duration 1
variablecost 0 inf 1
cycletime 0 inf 1
vehicle requirement 1
consume apple unit 1
produce apple unit 1
activity trans_bottle
mode duration 1
variablecost 0 inf 1
cycletime 0 inf 1
ship requirement 1
consume bottle unit 1
produce bottle unit 1
LND model (SCML example) 3activity prod_juice_online1
mode duration 1
variablecost 0 inf 10
cycletime 0 inf 5
line1 requirement 1
consume apple unit 2
consume bottle unit 1
produce juice unit 1
...
resource line1
interval 0 inf capacity 100
cost 70
resource line2
interval 0 inf capacity 100
cost 20
resource vehicle
interval 0 inf capacity 2
resource ship
interval 0 inf capacity 10
solver LND
Vehicle routing model• activity, resource, node, arc, piecewise
depotor origin
a customeror destination
“move” activity
vehicle resource
weightresource
volumeresource
completion piecewise
start piecewise
Inventory models
• horizon, product, activity, resource
• (network type) economic ordering quantity model (EOQ)
• safety stock allocation model (SSA)
• inventory policy optimization model (IPO)
Inventory models and BOM
product
resource
activity
capacity (IPO)
demand, holdingcostbasestocklevel, backordercost (IPO)
fixedcost, cycletime (range) (EOQ) leadtime (range), cycletime (integer+), duration (SSA) leadtime (integer+), cycletime (integer+) (IPO)
Set covering problemCostCost 5646335 5646335
row row 1 10011011 1001101row row 2 11010002 1101000row row 3 11000113 1100011row row 4 01100104 0110010row row 5 00111005 0011100
・・・・・・
columns
Rows => Resources
Columns => Activities
Generalized assignment problem
agents=>resources
jobs=> activities
bi=>capacity
aij =>requirement
cij =>cost
Rectangular packing problem
rectangle=>activity withmultiple modes
width=>resource
height=>resource
cost => piecewise
Multi-dimensional knapsack problem
constraints=>resources
items=> activities
bi=>capacity
aij =>requirement
profit pj => -cost
Other problems
• facility location problem– defined on nodes: (x, y coordinates and weight)
• traveling salesman problem– defined on nodes: (x,y coordinates) ; Euclidian TSP – defined on nodes and arcs (cost); general TSP
• bin packing problem– defined on activities (items) and a resource (bin
size)