Supply Chain Modeling Language (SCML) Project
Document Sample


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
Hideki Hashimoto @Nagoya University
J. Pedro Pedroso @ Porto University
What is the SCML?
Supply Chain Solvers
Optimization Models
SCML
AMPL Model Files
Combinatorial
Optimization Problems
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 simulation
Basic 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
programming
Dantzig-Wolfe (1963)
matrix A=[aij]
+
row +
=resource b system input
of resource
-
activity i consumes
resource j by aij column =activity (amount: Xj)
Resource constrained scheduling
model
activity
precedence relation
activity
require
resource
Lot-sizing models
BOM (bill of material)
resource
resource
product
State-task network representation
Kandili-Pantelides-Sargent (1993)
state = product
task =activity
resource
Logistics network design model
resource
node node
require
assemble
disassemble
product
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
Fixed Cost
Variable Cost
consume produce
product activity product
require
resource
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
arc
node node
product product
Relation among entities
arc
node node
consume produce
product activity product
require
resource
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+
horizon 4
0 1 2 3 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 interval 1 3 => {②,③}
[1,3)
0 1 2 3 4
①②③④
range
execute interval 1 3
execute interval 3 4 parallel 2
0 1 2 3 4
Mode attributes
duration 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 2
interval 3 4 capacity 1
0 1 2 3 4
Temporal constraints
temporal declaration:
temporal activity-name activity-name [attributes]
attribute:
type { SS, SC, CS, CC }
delay integer
Completion Start
delay
A B
States
state declaration:
state state-name
time integer+ value integer+ ...
Piecewise linear function attributes
interval range init real slope real ...
default real
piecewise example
default inf
interval 0 1 init 1 slope 1
interval 1 3 init 1 slope 0
Must be lower semicontinous
Product attributes
supply [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
temporal activity
activity
state
require modes require
resource nonrenewable
Scheduling model (example)
resource writer activity B duedate 9 weight 5
interval 0 3 capacity 1 mode duration 2
interval 4 6 capacity 1 writer interval 0 2 requirement 1
interval 7 10 capacity 1 break interval 0 2 max 1
interval 11 inf capacity 1 ...
activity A duedate 5 weight 20 solver RCS
mode duration 1 option time 100
writer interval 0 1 requirement 1
Lot-sizing model
• horizon, activity, mode, resource, product
consume
product
activity
produce
resource
product
BOM
• BOM (bill of materials) : G=(N,A)
φpq: the units of product p to produce one unit of product q.
p φpq
product
child product of q q parent product of q
resource
BOM representation using SCML
consume
product activity
activity
produce
activity
resource
child parent
resource
Lot-sizing model (example)
resource res1
horizon 5
interval 0 inf capacity 25
product prod1
activity act1
holdingcost 0 inf 5
mode duration 1
demand interval 0 1 5
variablecost interval 0 inf 1
demand interval 1 2 7
fixedcost interval 0 inf 53 #setup cost
demand interval 2 3 3
leadtime interval 0 inf 3 #setup time
demand interval 3 4 6
res1 interval 0 inf requirement 1
demand interval 4 5 4
consume parts1 unit 1
consume parts2 unit 2
product parts1
generate prod1 unit 1
holdingcost 0 inf 1
solver LS
...
Logistics network design (LND) model
• horizon, activity, resource, product, node, arc
node node
consume produce
product activity product
require
resource
An example of LND model
source1 vehicle
line1 vehicle
apple
plantin plantout customer
juice juice
source2 line2
apple
juice
ship ×2
bottle
bottle
LND model (SCML example) 1
horizon 2 node source2
product apple bottle
holdingcost 5 inf 5 supply interval 0 inf 100
product bottle node plantin
holdingcost 1 inf 5 node plantout
product juice juice
variability 1 holdingcost 10
safetyratio 1.65 node customer
node source1 juice
apple demand interval 0 inf 10
supply interval 0 inf 100 holdingcost 30
LND model (SCML example) 2
arc source1 plantin activity trans_apple
trans_apple #activity mode duration 1
vehicle cost 10 #resource variablecost 0 inf 1
arc source2 plantin cycletime 0 inf 1
trans_bottle #activity vehicle requirement 1
ship cost 30 #resource consume apple unit 1
arc plantin plantout produce apple unit 1
prod_juice_online1 activity trans_bottle
prod_juice_online2 mode duration 1
line1 cost 50 variablecost 0 inf 1
line2 cost 100 cycletime 0 inf 1
arc plantout customer ship requirement 1
trans_juice consume bottle unit 1
vehicle cost 20 produce bottle unit 1
LND model (SCML example) 3
activity prod_juice_online1 resource line1
mode duration 1 interval 0 inf capacity 100
variablecost 0 inf 10 cost 70
cycletime 0 inf 5 resource line2
line1 requirement 1 interval 0 inf capacity 100
consume apple unit 2 cost 20
consume bottle unit 1 resource vehicle
produce juice unit 1 interval 0 inf capacity 2
... resource ship
interval 0 inf capacity 10
solver LND
Vehicle routing model
• activity, resource, node, arc, piecewise
start completion
piecewise piecewise
“move” activity
depot a customer
or origin vehicle resource or destination
weight volume
resource resource
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
fixedcost, cycletime (range) (EOQ)
leadtime (range), cycletime (integer+), duration (SSA)
leadtime (integer+), cycletime (integer+) (IPO)
activity product
demand, holdingcost
basestocklevel, backordercost (IPO)
resource
capacity (IPO)
Set covering problem
Cost 5646335
row 1 1001101
row 2 1101000
row 3 1100011 ・・・
row 4 0110010
row 5 0011100
columns
Rows => Resources
Columns => Activities
Generalized assignment problem
aij =>requirement
bi
=>capacity
cij =>cost agents
=>resources
jobs
=> activities
Rectangular packing problem
height
=>resource
rectangle
=>activity with
multiple modes
cost => piecewise width
=>resource
Multi-dimensional knapsack problem
aij =>requirement
bi
=>capacity
profit pj
=> -cost
constraints
=>resources
items
=> activities
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)
Related docs
Get documents about "