360 likes | 558 Views
サプライ・チェイン最適化 のための統一言語 とソルバー群. 久保 幹雄 東京海洋大学 http://kubomikio.com. 概要. SCML (Supply Chain Modeling Language) とは Python による実装 応用. What is the SCML?. proposed in 2009 by M. K. (international scheduling symposium). Supply Chain Optimization Models. Solvers (metaheuristics
E N D
サプライ・チェイン最適化のための統一言語とソルバー群サプライ・チェイン最適化のための統一言語とソルバー群 久保 幹雄 東京海洋大学 http://kubomikio.com
概要 • SCML (Supply Chain Modeling Language) とは • Pythonによる実装 • 応用
What is the SCML? proposed in 2009 by M. K. (international scheduling symposium) Supply Chain Optimization Models Solvers (metaheuristics and/or MIP/CP) SCML Combinatorial Optimization Models
What is the SCML.py ? Supply Chain Optimization Models Solvers (metaheuristics and/or MIP/CP) SCML.py SCML Combinatorial Optimization Models サプライ・チェイン最適化の現在-統一言語 SCMLによるアプローチ-(朝倉書店;2010出版予定)
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 • set covering problem (SC) • generalized assignment problem (GA) • rectangular packing problem (RP) • facility location problem (FL) • etc. , ...
Previous SCO models Flow models (LND, FL) Scheduling models (RCS, LS, VR) Constrained optimization models (Algebraic modeling languages) Multi-echelon inventory models (IPO, SSA, EOQ, LS)
Previous SCO models Network=(Node, Arc) Product, Resource Activity, Resource Flow models (LND, FL) Scheduling models (RCS, LS, VR) Constrained optimization models (Algebraic modeling languages) Multi-echelon inventory models (IPO, SSA, EOQ, LS) Product (BOM) Variable, Constraint
Entities of the SCML • temporal • piecewise • horizon • state • solver • etc., ... • activity • resource • product • node • arc Basic entities
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 required and/or consumed by activitiesOur focus is on the physical, human, and financial resources.
Product • Products are consumed and/or produced by activities • Products are items or commodities through the network arc node node product product
Node and arc • Network is defined by the set of nodes and arcs arc node node
Declaration and attributes activity declaration activity activity-name[attributes] • activity • resource • product • node • arc attribute: duedate integer+ weight integer+ consume product-name unit real+ ... produce product-name unit real+ ... ...
Key concepts for implementing the SCML • Inheritance / Composition • Hierarchy • Global / Local
Entity class Entity has a name and attributes (defined by arguments as a dictionary)class Entity(): def __init__(self, name="",**args): self.name=name self.attributes=copy.deepcopy(args)
An activity object for LS act1=Activity("act1",variablecost=1,fixedcost=53, leadtime=3, resources={“mach1":1},consume={"parts1":1,"parts2":2},produce={"prod1":1}) consume prod1 parts1 Activity “act1” parts2 produce Resource “mach1”
Hierarchy • Hierarchy can be defined on every entity using attribute “children” • Every attribute of a parent is copied to its children (same as inheritance) activity children Mode Mode Mode
Example: an activity object for RP item1=Activity("item1”, cost=10, children=“mode1": {resources:{"width":3,"height":2}} ,“mode2”: {resources={"width":2,"height":3}, cost=5}) mode2 (cost=5) mode1 (cost=10)
Global / Local • Local products can be defined on nodes • Local activities and resources can be defined on arcs, i.e., arcs can own activities and resources • Otherwise, entities are global. arc node node consume produce product activity product require resource
Example: a node object for LND source=Node("source",products={"apple":{"holdingcost":10,"supply":100}, "melon":{"holdingcost":10,"supply":50}}) node "source" apple melon
Lot-sizing (LS) model horizon, activity, resource, product variablecost fixedcost consume product demand holdingcost leadtime activity produce resource product capacity
Example for solving LS in python from SCML import * SCMLモジュールを読み込む sample=SCML() SCMLオブジェクトを生成 sample.setHorizon(5) 計画期間を5に設定 製品の情報入力 prod1=Product("prod1",demand=[5,5,6,7,8],holdingcost=5,leadtime=3) parts1=Product("parts1",holdingcost=1,leadtime=3) parts2=Product("parts2",holdingcost=1,leadtime=1) res1=Resource(“res1”,capacity={(0,“inf”):25}) 資源の情報入力 活動の情報入力 act1=Activity("act1",variablecost=1,fixedcost=53,resources={"res1":1},consume={"parts1":1,"parts2":2},generate={"prod1":1}) sample.addActivity(act1) sample.addProducts(prod1,parts1,parts2) sample.addResource(res1) sample.solve(“LS”) LSソルバーで求解
Resource constrained scheduling (RCS) model activity, resource, temporal, state min-max type temporal constraints with delay duedate, weight, parallel, break activity activity state time-dependent resource requirement children activities (=modes) resource time-dependent UB
Logistics network design (LND) model horizon, activity, resource, product, node, arc arc activities resources fixedcost node node products variablecost cycletime consume produce holdingcost supply demand product activity product require resource capacity Activity-based multi-period LND model
Vehicle routing (VR) model activity, resource, node, arc, piecewise time windows= duedatepiecewise node “move” activity a customer depot “vehicle” resource arc time piecewise cost piecewise capacity location depot time 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 fixedcost (EOQ) activity product demand, holdingcost (common) leadtime, basestocklevel, backordercost (IPO)servicetime, processingtime (SSA) cycletime (EOQ) resource capacity (IPO)
Set covering (SC) cost 5646335 row 1 1001101 row 2 1101000 row 3 1100011 row 4 0110010 row 5 0011100 ・・・ columns Rows (constraints) => resources Columns (variables) => activities
Generalized assignment (GA) aij (requirement) bi =>capacity cij (cost) agents =>resources jobs => activities activity resources: resource-name (aij, cij)
Rectangular packing (RP) height =>resource activity, resource, piecewise rectangle =>activity with children (modes) width =>resource resource (width or height) capacity, piecewise
Facility location (FL) problem • Multi-source Weber problemGiven n nodes (customers) on a plane, find k locations of facilities • nodes: (attributes: x, y coordinates and weight) Example n=1000 k=30
Applications • Resource constrained scheduling:used in some large plants • Logistics network design: used as a consulting tool in three consulting firms • Vehicle routing: used as a core solver in some major companies • Hybrid models • Lot-sizing + Inventory policy optimization • Logistics network design + Resource constrained scheduling +Lot-sizing