540 likes | 702 Views
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.
E N D
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 Optimization Models Solvers 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] b + + - row =resource system input of resource activity i consumes resource j byaij 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 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 Fixed Cost Variable Cost consume produce product activity product require resource
Resource • Every entity of limited availabilityOur 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+] ...
0 1 2 3 4 Interval interval 1 3 => {②,③} [1,3) 0 1 2 3 4 ① ② ③ ④ range execute interval 1 3 execute interval 3 4 parallel 2
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 }
0 1 2 3 4 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
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 activity temporal activity state modes require require nonrenewable resource
Scheduling model (example) 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 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
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 parent product of q q resource
BOM representation using SCML activity consume product activity produce activity resource child parent resource
Lot-sizing model (example) 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 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 ...
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 plantout customer plantin juice juice source2 line2 apple juice ship ×2 bottle bottle
LND model (SCML example) 1 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 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
LND model (SCML example) 2 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 arc 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
LND model (SCML example) 3 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 activity 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 ...
Vehicle routing model • activity, resource, node, arc, piecewise start piecewise completion piecewise “move” activity depot or origin a customer or destination vehicle resource weight resource volume 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