1 / 28

Supply Chain Modeling Language for Optimization -Implementation in Python-

Supply Chain Modeling Language for Optimization -Implementation in Python-. Mikio KUBO Tokyo University of Marine Science of Technology. Agenda. What’s the SCML (Supply Chain Modeling Language) How to implement the SCML in Python (Applications). What is the SCML?.

delfina
Download Presentation

Supply Chain Modeling Language for Optimization -Implementation in Python-

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Supply Chain Modeling Language for Optimization-Implementation in Python- Mikio KUBO Tokyo University of Marine Science of Technology

  2. Agenda • What’s the SCML (Supply Chain Modeling Language) • How to implement the SCML in Python • (Applications)

  3. What is the SCML? proposed in 2009 by M. K. (international scheduling symposium) Supply Chain Optimization Models Solvers (using metaheuristics and/or MIP/CP solvers) SCML SCML.py Combinatorial Optimization Models

  4. 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)

  5. Combinatorial optimization problems • set covering problem (SC) • generalized assignment problem (GA) • rectangular packing problem (RP) • facility location problem (FL) • multi-constrained knapsack problem (MK) • graph coloring problem (GC) • graph partitioning problem (GP) • maximum stable set problem (MSS) • (constrained) bin packing problem (BP) • quadratic assignment problem (QA)

  6. 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)

  7. Previous SCO models Network=(Node, Arc), Product 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

  8. Activity based view of linear programming Dantzig-Wolfe (1963) matrix A=[aij] row (constraint) =resource b + + - system input of resource activity i consumes resource j byaij column (variable) =activity Xj

  9. Problem class Gurobi (MIP) GLPK (MIP/Free) SCOP (CP)

  10. Entities of the SCML • temporal • piecewise • horizon • state • solver • etc., ... • activity • resource • product • node • arc Basic entities

  11. 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

  12. Resource • Every entity of limited availability required and/or consumed by activitiesOur focus is on the physical, human, and financial resources.

  13. Product • Products are consumed and/or produced by activities • Products are items or commodities through the network consume produce product activity product

  14. Product • Products are consumed and/or produced by activities • Products are items or commodities through the network arc node node product product

  15. Node and arc • Network is defined by the set of nodes and arcs arc node node

  16. 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+ ... ...

  17. Key concepts for implementing the SCML in Python • Inheritance / Composition • Hierarchy • Global / Local

  18. Inheritance

  19. 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)

  20. An activity object for LS act1=Activity("act1",variablecost=1, fixedcost=53,,leadtime=3, resources={"res1":1},consume={"parts1":1,"parts2":2},produce={"prod1":1}) Class Activity(Entity): consume prod1 parts1 activity produce parts2 resource

  21. Composition

  22. 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

  23. 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)

  24. 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 called global. arc node node produce consume product activity product require resource

  25. Lot-sizing (LS) model • horizon, activity, resource, product consume product activity produce resource product

  26. Example for solving LS in python (1) from SCML import * #import everything from SCML module sample=SCML() #generate SCML class object sample.setHorizon(5) #set the planning horizon to 5 #generate the product class objects prod1=Product("prod1",demand=[5,5,6,7,8], holdingcost=5,leadtime=1) parts1=Product("parts1",holdingcost=1,leadtime=3) parts2=Product("parts2",holdingcost=1,leadtime=1) #generate the resource class object res1=Resource(“res1”,capacity={(0,“inf”):25})

  27. Example for solving LS in python (2) #generate the activity class object act1=Activity("act1",variablecost=1,fixedcost=53,resources={"res1":1},consume={"parts1":1,"parts2":2},generate={"prod1":1}) #add the generated objects into the problem class sample.addActivity(act1) sample.addProducts(prod1,parts1,parts2) sample.addResource(res1) sample.solve(“LS”) #solve by the lot-sizing solver

  28. Future plans • Applications (hybrid models) • Lot-sizing + Inventory policy optimization • Logistics network design + Resource constrained scheduling +Lot-sizing • Excel interface for beginners • A book on the SCML (will be published in 2010-11 from Asakura Publishers)

More Related