Supply Chain Modeling Language for Optimization Implementation in

  • Slides: 28
Download presentation
Supply Chain Modeling Language for Optimization -Implementation in Python. Mikio KUBO Tokyo University of

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

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

What is the SCML? Supply Chain Optimization Models proposed in 2009 by M. K.

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

Supply chain optimization models • • resource constrained scheduling (RCS) lot-sizing (LS) logistics network

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)

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)

Previous SCO models Flow models Scheduling models (LND, FL) (RCS, LS, VR) Constrained optimization

Previous SCO models Flow models Scheduling models (LND, FL) (RCS, LS, VR) Constrained optimization models Multi-echelon inventory models (Algebraic modeling languages) (IPO, SSA, EOQ, LS)

Previous SCO models Network=(Node, Arc), Product Activity, Resource Flow models Scheduling models (LND, FL)

Previous SCO models Network=(Node, Arc), Product Activity, Resource Flow models Scheduling models (LND, FL) (RCS, LS, VR) Constrained optimization models Multi-echelon inventory models (Algebraic modeling languages) (IPO, SSA, EOQ, LS) Variable, Constraint Product (BOM)

Activity based view of linear programming Dantzig-Wolfe (1963) row (constraint) =resource matrix A=[aij] +

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

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

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

Entities of the SCML • • • activity resource product node arc Basic entities

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

Activity • Every action that requires the resources, consumes and/or produces the product, and

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 product

Resource • Every entity of limited availability required and/or consumed by activities Our focus

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

Product • • Products are consumed and/or produced by activities Products are items or

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

Product • • Products are consumed and/or produced by activities Products are items or

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

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

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

Declaration and attributes • • • activity resource product node arc activity declaration activity-name

Declaration and attributes • • • activity resource product node arc activity declaration activity-name [attributes] attribute: duedate integer+ weight integer+ consume product-name unit real+. . . produce product-name unit real+. . .

Key concepts for implementing the SCML in Python • Inheritance / Composition • Hierarchy

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

Inheritance

Inheritance

Entity class Entity has a name and attributes (defined by arguments as a dictionary)

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 act 1=Activity("act 1", variablecost=1, fixedcost=53, , leadtime=3, resources={"res 1":

An activity object for LS act 1=Activity("act 1", variablecost=1, fixedcost=53, , leadtime=3, resources={"res 1": 1}, consume={"parts 1": 1, "parts 2": 2}, produce={"prod 1": 1}) consume Class Activity(Entity): parts 1 parts 2 prod 1 activity produce resource

Composition

Composition

Hierarchy • Hierarchy can be defined on every entity using attribute “children” • Every

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

Example: an activity object for RP item 1=Activity("item 1”, cost=10, children= “mode 1": {resources:

Example: an activity object for RP item 1=Activity("item 1”, cost=10, children= “mode 1": {resources: {"width": 3, "height": 2}} , “mode 2”: {resources={"width": 2, "height": 3}, cost=5}) mode 1 (cost=10) mode 2 (cost=5)

Global / Local • Local products can be defined on nodes • Local activities

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 produce consume product activity require resource product

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

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

Example for solving LS in python (1) from SCML import * #import everything from

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

Example for solving LS in python (2) #generate the activity class object act 1=Activity("act

Example for solving LS in python (2) #generate the activity class object act 1=Activity("act 1", variablecost=1, fixedcost=53, resources={"res 1": 1}, consume={"parts 1": 1, "parts 2": 2}, generate={"prod 1": 1}) #add the generated objects into the problem class sample. add. Activity(act 1) sample. add. Products(prod 1, parts 2) sample. add. Resource(res 1) sample. solve(“LS”) #solve by the lot-sizing solver

Future plans • Applications (hybrid models) – Lot-sizing + Inventory policy optimization – Logistics

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)