共同研究者 - LOG OPT HOME

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?
Solvers
Supply Chain
Optimization Models
Combinatorial
Optimization Problems
SCML
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 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
-
activity i consumes
resource j by aij
column =activity (amount: Xj)
system input
of resource
Resource constrained scheduling
model
activity
activity
require
resource
precedence relation
Lot-sizing models
BOM (bill of material)
resource
resource
product
State-task network representation
Kandili-Pantelides-Sargent (1993)
task =activity
resource
state = product
Logistics network design model
node
resource
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
consume
product
Fixed Cost
Variable Cost
activity
require
resource
produce
product
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
product
arc
node
product
Relation among entities
arc
node
node
consume
product
produce
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
0
1
2
interval 1 3 => {②,③}
[1,3)
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
resource
require
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
mode duration 1
writer interval 0 1 requirement 1
...
solver RCS
option time 100
Lot-sizing model
• horizon, activity, mode, resource, product
consume
activity
resource
product
product
produce
BOM
• BOM (bill of materials) : G=(N,A)
φpq:
the units of product p to produce one unit of product q.
p
φpq
child product of q
product
q
resource
parent product of q
BOM representation using SCML
consume
product
activity
activity
produce
activity
resource
child
parent
resource
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
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
res1 interval 0 inf requirement 1
consume parts1 unit 1
product parts1
holdingcost 0 inf 1
...
#setup time
consume parts2 unit 2
generate prod1 unit 1
solver LS
Logistics network design (LND) model
• horizon, activity, resource, product, node, arc
node
node
consume
product
produce
activity
require
resource
product
An example of LND model
source1
vehicle
line1
vehicle
apple
plantout
plantin
juice
source2
line2
ship
customer
juice
apple
×2
bottle
bottle
juice
LND model (SCML example) 1
horizon 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) 2
arc source1 plantin
trans_apple
#activity
vehicle cost 10 #resource
arc source2 plantin
activity trans_apple
mode duration 1
variablecost 0 inf 1
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
produce juice unit 1
...
resource vehicle
interval 0 inf capacity 2
resource ship
interval 0 inf capacity 10
solver LND
Vehicle routing model
• activity, resource, node, arc, piecewise
start
piecewise
completion
piecewise
“move” activity
depot
or origin
vehicle resource
weight
resource
volume
resource
a customer
or destination
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
resource
product
demand, holdingcost
basestocklevel, backordercost (IPO)
capacity (IPO)
Set covering problem
Cost
5646335
row
row
row
row
row
1001101
1101000
1100011 ・・・
0110010
0011100
1
2
3
4
5
columns
Rows => Resources
Columns => Activities
Generalized assignment problem
aij =>requirement
bi
=>capacity
cij =>cost
jobs
=> activities
agents
=>resources
Rectangular packing problem
height
=>resource
rectangle
=>activity with
multiple modes
cost => piecewise
width
=>resource
Multi-dimensional knapsack problem
aij =>requirement
bi
profit pj
=> -cost
items
=> activities
=>capacity
constraints
=>resources
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)