Supply Chain Modeling Language (SCML) Project by hsq14163

VIEWS: 35 PAGES: 53

									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                    Solvers
Optimization Models



                        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]
                            +
row                         +
=resource                                   b         system input
                                                      of resource
                            -
activity i consumes
resource j by aij     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
                   resource
            node                  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 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

                   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+] ...
 Interval                         interval 1 3 => {②,③}
                                                  [1,3)
            0        1        2       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       require

               resource       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          solver RCS

    mode duration 1                      option time 100

    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          q         parent product of q


                       resource
BOM representation using SCML

        consume
                          product    activity

              activity
                         produce
                                     activity
             resource
child                                           parent
                                    resource
      Lot-sizing model (example)
                          resource res1
horizon 5
                           interval 0 inf capacity 25
product prod1
                          activity act1
  holdingcost 0 inf 5
                           mode duration 1
  demand interval 0 1 5
                           variablecost interval 0 inf 1
  demand interval 1 2 7
                           fixedcost      interval 0 inf 53 #setup cost
  demand interval 2 3 3
                           leadtime       interval 0 inf 3   #setup time
  demand interval 3 4 6
                           res1 interval 0 inf requirement 1
  demand interval 4 5 4
                           consume parts1 unit 1
                           consume parts2 unit 2
product parts1
                           generate prod1 unit 1
  holdingcost 0 inf 1
                          solver LS
...
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
               plantin           plantout              customer


                                 juice                 juice
source2                  line2
                                 apple
                                                 juice
            ship                    ×2
  bottle

                                    bottle
  LND model (SCML example) 1
horizon 2                      node source2
product apple                   bottle
 holdingcost 5 inf 5              supply interval 0 inf 100
product bottle                 node plantin
 holdingcost 1 inf 5           node plantout
product juice                   juice
 variability 1                    holdingcost 10
 safetyratio 1.65              node customer
node source1                    juice
 apple                            demand interval 0 inf 10
   supply interval 0 inf 100      holdingcost 30
  LND model (SCML example) 2
arc source1 plantin          activity trans_apple
 trans_apple     #activity    mode duration 1
 vehicle cost 10 #resource    variablecost 0 inf 1
arc source2 plantin           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       resource vehicle
  produce juice unit 1         interval 0 inf capacity 2
...                           resource ship
                               interval 0 inf capacity 10


                              solver LND
Vehicle routing model
• activity, resource, node, arc, piecewise
             start          completion
              piecewise      piecewise

                   “move” activity

     depot                                a customer
     or origin      vehicle resource      or destination


                  weight        volume
                 resource      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
   Rectangular packing problem
height
=>resource

               rectangle
             =>activity with
             multiple modes




               cost => piecewise   width
                                   =>resource
Multi-dimensional knapsack problem
        aij =>requirement
                                     bi
                                     =>capacity
     profit pj
     => -cost
                            constraints
                            =>resources

items
=> activities
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)

								
To top