perspective of supply chain optimization

106
Perspective of supply chain optimization Tokyo University of Marin e Science and Technology Mikio Kubo

Upload: sal

Post on 13-Feb-2016

60 views

Category:

Documents


3 download

DESCRIPTION

Perspective of supply chain optimization. Tokyo University of Marine Science and Technology Mikio Kubo. Agenda. Supply Chain and Analytic IT Mathematical Programming Solver Gurobi with Python language Constrained Programming Solver SCOP Scheduling Solver OptSeq. What’s the Supply Chain?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Perspective of supply chain optimization

Perspective of supply chain optimization

Tokyo University of Marine Science and Technology

Mikio Kubo

Page 2: Perspective of supply chain optimization

Agenda

• Supply Chain and Analytic IT• Mathematical Programming Solver Gurobi

with Python language• Constrained Programming Solver SCOP• Scheduling Solver OptSeq

Page 3: Perspective of supply chain optimization

What’s the Supply Chain?

IT(Information Technology)+ Logistics = Supply Chain

Page 4: Perspective of supply chain optimization

配送計画

スケジューリングロットサイズ決定

安全在庫配置在庫方策

ロジスティクス・ネットワーク設計

需要予測収益管理

Logistics Network Design

Safety Stock Allocation

Vehicle Routing/Scheduling

ForecastingRevenue Management

Lot-SizingScheduling

Page 5: Perspective of supply chain optimization

Logistic System, Transactional IT, Analytic IT

実 シ ス テ ム

IT処 理 的

IT解 析 的

Logistic System=Truck, Ship, Plant, Product, Machine, …

Transactional ITPOS, ERP, MRP, DRP…Automatic Information Flow

Analytic ITModel + Algorithm=Decision Support System

brain

muscle

nerve

Page 6: Perspective of supply chain optimization

Levels of Decision Making

Strategic LevelStrategic Level

Tactical LevelTactical Level

Operational LevelOperational Level

A year to several years; long-term decision making

A week to several months; mid-term decision making

Real time to several days; short-term decision making

Transactional IT

Analytic IT

Page 7: Perspective of supply chain optimization

Models in Analytic IT

Logistics Network Design

Inventory

Safety stock allocationInventory policy

optimization

Production

Lot-sizingScheduling

TransportationDelivery

Vehicle Routing

Multi-period Logistics Network Design

Strategic

Tactical

Operational

Plant DCSupplier Retailer

Page 8: Perspective of supply chain optimization

How to Solve Real SC Optimization Problems Quickly

• Mixed Integer Programming (MIP) SolverGurobi =>Logistics Network Design, Lot-Sizing

• Constraint Programming (CP) Solver SCOP =>Lot-Sizing, Staff Scheduling

• Scheduling Solver OptSeq =>Scheduling• Vehicle Routing Solver • Inventory Policy Optimization Solver

... using Python Language

Page 9: Perspective of supply chain optimization

Why Python?

• We can do anything by importing some modules

• Optimization import gurobipy (MIP)import SCOP (CP)

• Draw graphsimport networkX

• Also fly! import antigravity ?

http://xkcd.com/353/

Page 10: Perspective of supply chain optimization

What’s Gurobi?MIP solver Developed by: Zonghao Gu, Edward Rothberg , Robert Bixby

Free academic license

Page 11: Perspective of supply chain optimization

Introduction to Gurobi (1)

• Create a model objectmodel = Model("Wine Blending")

Page 12: Perspective of supply chain optimization

• Add variable objectsx1 = model.addVar(name="x1")x2 = model.addVar(name="x2")x3 = model.addVar(name="x3")

• Model update (needed before adding constraints; lazy update!)model.update()

Introduction to Gurobi (2)

Page 13: Perspective of supply chain optimization

Introduction to Gurobi (3)• Set the objective

model.setObjective(15*x1 + 18*x2 + 30*x3, GRB.MAXIMIZE)

• Add constraints model.addConstr(2*x1 + x2 + x3 <= 60)model.addConstr(x1 + 2*x2 + x3 <= 60)model.addConstr(x3 <= 30)

• Optimizemodel.optimize()

Page 14: Perspective of supply chain optimization

Mr. Python is too lazy. His room is always mess.He asked to the God of Python.“How can I tide up my toys?”

Page 15: Perspective of supply chain optimization

The God replied from the heaven.“Use the list. The charm is “Abracadabra [ ].”Mr. Python said “L=[ ].”What a miracle! Some boxes were fallen from the heaven.The God said. “Tide up the toys using these boxes.”

Page 16: Perspective of supply chain optimization

OK. Everything is packed into the list.To pick up “Teddy”, just say “L[3].”

Page 17: Perspective of supply chain optimization

To sort the toys in alphabetical order, just say “L.sort().”

Note that L is a list object and sort() is a function definedin the object called “method.”

Page 18: Perspective of supply chain optimization

Modeling with Lists

• Add variable objects into list x=[] for i in range(3): var=model.addVar(name=“x[%s]”%i) x.append(var)

• Add constraint “x1 + x2 + x3 <= 2”model.addConstr( sum(x) <= 2 ) or model.addConstr( quicksum(x) <= 2 )

Page 19: Perspective of supply chain optimization

Mr. Python is impatient, too. He complained to the God. “I’d like to pick my toys immediately.” The God replied from the heaven again. “Use the dictionary. The charm is “Abracadabra {}.”

Page 20: Perspective of supply chain optimization

Using lists and dictionaries, Mr. Python could manage his toysefficiently and lived happily ever after.

Page 21: Perspective of supply chain optimization

Modeling with Dictionaries

• Dictionary that maps keys (“Dry”, “Medium”, “Sweet”) to variable objects x={} x[“Dry”]= model.addVar(name=“Dry”) x[“Medium”]= model.addVar(name=“Medium”) x[“Sweet”]= model.addVar(name=“Sweet”)

• Add constraintmodel.addConstr( 2*x[“Dry”]+ x[“Medium”] +x[“Sweet”] <=30 )

Page 22: Perspective of supply chain optimization

Wine Blending with Dictionaries (1)

Blends, Profit = multidictmultidict({"Dry":15, "Medium":18, "Sweet":30})

=> Blends=["Dry", "Medium“, "Sweet“] List of Keys Profit[“Dry”]=15, Profit[“Medium”]=18, ...

Grapes, Inventory = multidict({"Alfrocheiro":60, "Baga":60, "Castelao":30})

Use = { ("Alfrocheiro","Dry"):2, ("Alfrocheiro","Medium"):1, ("Alfrocheiro","Sweet"):1, ("Baga","Dry"):1, .... }

Page 23: Perspective of supply chain optimization

Wine Blending with Dictionaries (2)

x = {}for j in Blends: x[j] = model.addVar(vtype="C", name="x[%s]"%j)model.update()

model.setObjective(quicksum(Profit[j]*x[j] for j in Blends), GRB.MAXIMIZE)

for i in Grapes: model.addConstr(quicksum(Use[i,j]*x[j] for j in Blends)

<= Inventory[i], name="use[%s]"%i)

model.optimize()

Page 24: Perspective of supply chain optimization

k-median problem• A facility location problem with min-sum

object• Number of customers n=200, number of

facilities selected from customer sites k=20• Euclidian distance , coordinates are

random

Page 26: Perspective of supply chain optimization

Python Code ( 1 )from gurobipy import *

model = Model("k-median")

x, y = {}, {} # empty dictionaries

Key“Hanako”,

(1,2)

Value“127cm”

Variable ObjectMapping

Dictionary Data Structure

Page 27: Perspective of supply chain optimization

I=range(n)J=range(n)for j in J:

y[j] = model.addVar(vtype="B", name="y[%s]"%j)

for i in I:

x[i,j] = model.addVar( vtype="B",name="x[%s,%s]"%(i,j))

model.update()

Python Code (2)

model.setObjective(quicksum(c[i,j]*x[i,j] for i in I for j in J))

Add variable objects“B” means binary variable or GRB.BINARY

Set the objective

Page 28: Perspective of supply chain optimization

Python Code (3) for i in I:

model.addConstr(quicksum(x[i,j] for j in J) = = 1, "Assign[%s]"%i)

for j in J:

model.addConstr(x[i,j] <= y[j], "Strong[%s,%s]"%(i,j))

model.addConstr(quicksum(y[j] for j in J) = = k, "k_median")

Page 29: Perspective of supply chain optimization

Optimize a model with 401 Rows, 40200 Columns and 80400 NonZeros

Explored 1445 nodes (63581 simplex iterations) in 67.08 seconds

Thread count was 2 (of 2 available processors)

Optimal solution found (tolerance 1.00e-04)

Best objective 1.0180195861e+01, best bound 1.0179189780e+01, gap 0.0099%

Opt.value= 10.1801958607

Weak formulation (result)n=200,k=20

Page 30: Perspective of supply chain optimization

Upper and lower bounds (Weak Formulation)

0

2

4

6

8

10

12

14

16

18

0 10 20 30 40 50 60 70

CPU

Obj. F

unc.

Value

Page 31: Perspective of supply chain optimization

Optimize a model with 40401 Rows, 40200 Columns and 160400 NonZeros

Explored 0 nodes (1697 simplex iterations) in 3.33 seconds(No branching !)

Thread count was 2 (of 2 available processors)

Optimal solution found (tolerance 1.00e-04)

Best objective 1.0180195861e+01, best bound 1.0180195861e+01, gap 0.0%

Opt.value= 10.1801958607

Strong formulation (result)

Page 32: Perspective of supply chain optimization

k-center problem

• A facility location problem with min-max object

• 100 customers , 10 facilities

k-center (n=30,k=3) k-median (n=30,k=3)

Page 34: Perspective of supply chain optimization

Upper and lower bounds

(n=100,k=10)

0

0.2

0.4

0.6

0.8

1

1.2

0 50 100 150 200 250 300 350 400

CPU Time

Obj. F

un. V

alue

Page 36: Perspective of supply chain optimization

k-Covering+Binary Search

Upper and Lower Bounds UB , LB while UB – LB >ε:

θ= (UB+LB)/2 if opt. val. of k-covering is 0 then

UB = θ else LB = θ

Page 37: Perspective of supply chain optimization

Computational Experiments

Page 38: Perspective of supply chain optimization

Traveling salesman problem• Find a minimum cost (distance) Hamiltonian

circuit • World record 85,900 nodes (symmetric

instance) -> We try to solve asymmetric ones.

Page 39: Perspective of supply chain optimization

Miller-Tucker-Zemlin formulation

Page 40: Perspective of supply chain optimization

Upper and lower bounds( 80 nodes , Euclid TSP )

0

5

10

15

20

25

30

35

40

45

0 50 100 150 200 250 300 350 400

CPU

Obj. F

unc.

Value

Non-lifted MTZ constraints-> Out of memoryafter running 1 day

Page 41: Perspective of supply chain optimization

ResultOptimize a model with 6480 Rows, 6400 Columns and 37762 NonZeros

Cutting planes:

Gomory: 62

Implied bound: 470

MIR: 299

Zero half: 34

Explored 125799 nodes (2799697 simplex iterations) in 359.01 seconds

Optimal solution found (tolerance 1.00e-04)

Best objective 7.4532855108e+00, best bound 7.4525704995e+00, gap 0.0096%

Opt.value= 7.45328551084

Page 42: Perspective of supply chain optimization

Graph coloring problem

• An example that has symmetric structure of solutions

• Number of nodes n=40 , maximum number of colors Kmax=10

• Random graph G(n,p=0.5)

Page 43: Perspective of supply chain optimization

Formulation

Weak formulation

Page 44: Perspective of supply chain optimization

n=40 , Kmax=10

0

2

4

6

8

10

12

0 200 400 600 800 1000 1200 1400

CPU Time

Obj. F

unc.

Value

Optimize a model with 3820 Rows, 410 Columns and 11740 NonZeros

Explored 17149 nodes (3425130 simplex iterations) in 1321.63 seconds

Page 46: Perspective of supply chain optimization

Avoid symmetric variables

0

2

4

6

8

10

12

0 50 100 150 200 250 300 350 400 450

CPU

Obj. F

unc.

Value

Optimize a model with 3829 Rows, 410 Columns and 11758 NonZeros

Explored 4399 nodes (1013290 simplex iterations) in 384.53 seconds

MIPFocus=2 ( priority=proving the optimality) 67secMIPFocus=3 (priority=lower bound) 70 sec.

Page 47: Perspective of supply chain optimization

+SOS constraints

Optimize a model with 3829 Rows, 410 Columns and 11758 NonZerosExplored 109 nodes (58792 simplex iterations) in 22.02 seconds

MIPFocus=2 65 sec. , MIPFocus=3 126 sec.

0

2

4

6

8

10

12

0 5 10 15 20 25

CPU

Obj. F

unc.

Val.

Page 48: Perspective of supply chain optimization

Fixed-K approach

If the end vertices of an edge have the same color, the edge is called bad, and the corresponding variable z is equal to 1

Number of “bad” edges

Page 49: Perspective of supply chain optimization

Fixed-K Approach +Binary Search

UB, LB := Upper and lower bounds of Kwhile UB – LB >1:

K= [ (UB+LB)/2 ] [ ] : Gauss notation if obj. fun. of Fixd-K model = 0 then UB = K

else LB = K

Page 50: Perspective of supply chain optimization

Fixed-K Approach +Binary Search

Improved Formulation

Page 51: Perspective of supply chain optimization

SCOP  Solver for COnstraint Programming

Log Opt Co., Ltd.

Page 52: Perspective of supply chain optimization

Agenda

• Introduction • SCOP Interfaces• Demonstration• Benchmark• Case Study

Page 53: Perspective of supply chain optimization

What’s Constraint ProgrammingConstraint Programming is a paradigm to solve

combinatorial problems efficiently

• Constraint Satisfaction Problem (CSP) – seeks an assignment of values to variables

such that all the given constraints are satisfied

Page 54: Perspective of supply chain optimization

Constraint Satisfaction ProblemConstraint satisfaction problem consists of:

• variable: variable chooses a value from its domain.

• domain: a finite set of values for each variable.

• constraint: a logical relation among several variables.

Page 55: Perspective of supply chain optimization

Weighted Constraint Satisfaction Problem (WCSP)

• WCSP is an enhanced framework of CSP • Not just seeks an assignment that satisfies all of the

constraints but to minimize the weighted sum of infeasibility of constraints (called penalties): – Hard Constraint

weight is infinity, i.e., constraint must be satisfied– Soft Constraint

weight is a positive integer, i.e., constraint may be violated by paying penalty

• The goal is to minimize the total penalties =>optimization model.

Page 56: Perspective of supply chain optimization

What’s SCOP

• Based on Metaheuristics by Ibaraki (Kyotyo-University), Nonobe (Hosey-University)

• Trial version (15 variables available ) http://www.logopt.com/scop.htm

• 1. Simple modeling language (text file) • 2. Python interface• 3. Library ( C++, .Visual Basic, C# )

Solver to solve a large combinatorial problems effectively

SCOP is a solver for solving WCSP

Page 57: Perspective of supply chain optimization

SCOP Model

• variable   • domain• constraint:

–weight = positive integer ( soft constraint )      inf ( hard constraint )

– type = linear , alldiff, quadratic

Page 58: Perspective of supply chain optimization

Assignment Problem• Assign 5 workers A,B,C,D,E to 3 jobs 0,1,2• Each job (0,1,2) needs at least (1,2,2) workers• Worker A and worker C have to assign to different

jobs• Assignment cost = 0 1 2

A 15 20 30

B 7 15 12

C 25 10 13

D 15 18 3

E 5 12 17

The object is to minimize sum of the

assignment cost

Page 59: Perspective of supply chain optimization

variable A in {0, 1, 2}variable B in {0, 1, 2}variable C in {0, 1, 2}variable D in {0, 1, 2}variable E in {0, 1, 2}

Variable and domain• Variables are workers A,B,C,D,E• Domain for each variables is set of jobs {0,1,2}

variable var-name in { domain }

domain = value1, value2, value3, ...

Page 60: Perspective of supply chain optimization

constraint0: weight=inf type=linear        1(A,0) 1(B,0) 1(C,0) 1(D,0) 1(E,0) >=1constraint1: weight=inf type=linear          1(A,1) 1(B,1) 1(C,1) 1(D,1) 1(E,1) >=2constraint2: weight=inf type=linear       1(A,2) 1(B,2) 1(C,2) 1(D,2) 1(E,2) >=2

Linear constraint ( 1 )• Each job (0,1,2) needs at least (1,2,2) workers

0 1 2

A 15 20 30

B 7 15 12

C 25 10 13

D 15 18 3

E 5 12 17

Con-name : weight= integer or inf   type= linear

coeff1(var-name1,value1) coeff2(var-name2,value2).... <= (>=, =) right hand side

hard constraint

Page 61: Perspective of supply chain optimization

obj: weight=1 type=linear    15 (A, 0) 20(A, 1) 30(A, 2) 7 (B, 0) 15(B, 1) 12(B, 2)    25 (C, 0) 10(C, 1) 13(C, 2) 15 (D, 0) 18(D, 1) 3(D, 2)    5 (E, 0) 12(E, 1) 17(E, 2)   <=0

Linear constraint ( 2 )Wright objective function as linear constraint( object value = sum of the penalty cost ) 0 1 2

A 15 20 30

B 7 15 12

C 25 10 13

D 15 18 3

E 5 12 17

hard constraintSum of the assignment cost <=0

Page 62: Perspective of supply chain optimization

quad: weight=100 type=quadratic 1 (A,0) (C,0) 1 (A,1) (C,1) 1 (A,2) (C,2) <=0

Quadratic constraint

Con-name : weight= integer or inf   type= quadraticcoeff1(var-name1,value1) (var-name2,value2) coeff2(var-name3,value3) (var-name4,value4) ....

Worker A and worker C have to assign to different jobs

larger than the weitht in objective function

Page 63: Perspective of supply chain optimization

AllDiff: weight= 100 type=alldiff A C ;

Alldifferent constraint

Con-name : weight= integer or inf   type= alldiffvar-name1 var-name2 var-name3 .... ;

Worker A and worker C have to assign to different jobs

Page 64: Perspective of supply chain optimization

How to use SCOP solver

• Start with Command Poompt (or Colsole)

• scop < file name

• scop - ( option ) <file name

• scop -help (display all of the SCOP options)

Page 65: Perspective of supply chain optimization

SCOP options-noadjust deactivate weight adjustment mechanism-display # set log display level-iteration # set iteration limit-interval # set log display interval-noimprovement # set iteration limit for no improvement-seed # set random seed-target # set target-time #.# set CPU time limit in second

Page 66: Perspective of supply chain optimization

Result (solved by SCOP)scop <ex3-scop.dat# reading data ... done: 0.00(s)

penalty = 1/52 (hard/soft), time = 0.00(s), iteration = 0# improving the initial solution greedilypenalty = 0/157 (hard/soft), time = 0.00(s), iteration =

0# start tabu searchpenalty = 0/60 (hard/soft), time = 0.01(s), iteration = 2penalty = 0/52 (hard/soft), time = 0.01(s), iteration = 8# penalty = 0/52 (hard/soft)# cpu time = 0.01/0.03(s)# iteration = 8/100[best solution]A: 0B: 2C: 1D: 2E: 1

penalty: 0/52 (hard/soft)[Violated constraints]obj: 52

Obj : 52 =15+12+10+3+12

0 1 2A 15 20 30

B 7 15 12C 25 10 13

D 15 18 3E 5 12 17

Page 67: Perspective of supply chain optimization

Summary 1. variable & domain

variable var-name in { value1, value2, ... }

2. target ( sum of the penalty ) target = target-value

3. constraintscon-name: weight = interger / inftype = linear / quadratic / alldiff

cnstraint

Steps 1 and 2 have to declare before Step 3 !

Page 68: Perspective of supply chain optimization

Graph Coloring

Have to assign to different color class!

・・・

Page 69: Perspective of supply chain optimization

Graph Coloring

Page 70: Perspective of supply chain optimization

Graph Coloring Programs

SCOP Gurobi

Page 71: Perspective of supply chain optimization

Test results (Graph Coloring)• Fixed the number of color

*(1)   16 constraint violation after 828 seconds  

# of nodes # of edges # of colors SCOP (seconds)

Gurobi (seconds)

30 0.5 7 0.01 0.0750 0.5 9 0.16 29100 0.5 15 0.66 - *(1)

500 0.5 54 50.9 -800 0.5 80 74.45 -

Page 72: Perspective of supply chain optimization

Quadratic Assignment Problem

The number of times who meets each other in one week

3

1 2

- -

Distances between two houses

2km5km

1km

Page 73: Perspective of supply chain optimization

Quadratic Assignment Problem

3

1 2

- -

2km5km

1km

2×2+ 5×1+ 1×3= 12km

- -

Page 74: Perspective of supply chain optimization

Test result (QAP)nodes Gurobi (seconds) SCOP

(seconds)Gaps % (Gurobi/SCOP)

5 0.03 0.01 08 12.84 0.23 010 1589 1.76 020 140 138.2 4.925 300 298.2 3.530 540 534.4 1.5

Page 75: Perspective of supply chain optimization

Application of SCOP• Staff scheduling problem• Time tabling problem• Graph partition problem• Maximum stable set problem• Graph coloring problem  • Quadric assignment problem  • Travelling sails man problem• Multiple knapsack problem• Process Scheduling in Chemical Plants

Page 76: Perspective of supply chain optimization

Scheduling optimization systemOptSeq

http://www.logopt.com/OptSeq/OptSeq.htm

Log Opt Co., Ltd.

Page 77: Perspective of supply chain optimization

What is the scheduling?

• Allocation of activities (jobs, tasks) over time – Resource constraints. For example, machines,

workers, raw material, etc. may be scare resources.  

– Precedence (or temporal) relation between activities. For example., some activities cannot start unless other activities finish.

Page 78: Perspective of supply chain optimization

Take off the airplane a.s.a.p. !

You’re a consultant of an airline company. Your job is to find a schedule that takes off the airplane as soon as possible. We need several activities before taking off the airplane. Firstly let the passengers get off and unload their baggage; secondly clean up the cabin; finally let new passengers get on and load their baggage. What is the best (shortest) schedule for taking off the airplane?

Page 79: Perspective of supply chain optimization

PERT• PERT: Program Evaluation and Review Technique that was used to

get a schedule during World War II

22分25分

13分 15分 27分

1作 業

2作 業

3作 業 4作 業

5作 業

ダ ミ ー 作 業

Temporal relation

Activity1 : Get off passengers (13 min.)Activity2 : Unload baggage (25 min.)Activity3 : Clean up the cabin (15 min.)Activity4 : Get on passengers (27 min.)Activity5 : Load baggage (22 min.)

Completion time (make-span) is minimized

Dummy activity(take-off)

Act 1

Act 2

Act 3 Act 4

Act 5

Act sink

Page 80: Perspective of supply chain optimization

Modeling with OptSeq (1)Activity

activity act1 mode duration 13

activity Activity-Name duedate Integer+ mode duration Integer+

Description ofActivity

E.g., to add an activity named act1 with duration (processing time) 13 :

Activity must have at least one mode (the way to execute the activity)

Duedate is optional

Page 81: Perspective of supply chain optimization

Modeling with OptSeq ( 2 )Temporal Constraint

temporal act1 act3

temporal Predecessor Successor Description ofTemporal Constraint

E.g., to define that activity act3 must start after finishing activity act1:

Page 82: Perspective of supply chain optimization

Modeling with OptSeq ( 3 )Objective

activity sink duedate 0

Objective Minimize the latest completion time (makespan)

sink: the dummy activity that must be executed after all activitiesWe minimize the delay time of sink:

activity Activity-Name duedate Integer+Description ofActivity

Page 83: Perspective of supply chain optimization

Optimization and Result

optseq -time 3 < Input-file-nameTime Limit is 3 sec.

--- best solution --- source ---: 0 0 dummy source starts and finishes at time 0 sink ---: 55 55 dummy sink starts and finished at time 55 activity[1] ---: 0 0--13 13activity[2] ---: 0 0--25 25activity[3] ---: 13 13--28 28activity[4] ---: 28 28--55 55activity[5] ---: 25 25--47 47

objective value = 55 latest completion time (makespan) is 55cpu time = 0.00/3.00(s) computational time is 0 sec.iteration = 1/62605 number of iteration of tabu search is 1

Result

Page 84: Perspective of supply chain optimization

PERT with Resource Constraint

resource Resource-Name interval Time1 Time2 capacity Integer+ ...

Description ofResource

Period

Time

“Interval 1 3” means period 1, 2

Page 85: Perspective of supply chain optimization

Modeling Resources with OptSeq

resource worker interval 0 inf capacity 1Resource “worker”can be used from 0 to infinity ( inf )with capacity 1

activity Activity-Name Resource-Name interval Time1 Time2 requirement Integer+     ...

Activity requiresresource

activity act1 mode duration 13 worker interval 0 13 requirement 1

Activity “act1”requires resource“worker” by 1 unit

Page 86: Perspective of supply chain optimization

Optimization and Result

source ---: 0 0sink ---: 102 102activity[1] ---: 47 47--60 60activity[2] ---: 0 0--25 25activity[3] ---: 60 60--75 75activity[4] ---: 75 75--102 102activity[5] ---: 25 25--47 47

objective value = 102cpu time = 0.00/3.00(s)iteration = 0/64983

Result

Page 87: Perspective of supply chain optimization

Optimal solution ( Gantt’s chart )

13分

1作 業15分

3作 業27分

4作 業

25分

2作 業22分

5作 業

時 間0 55

Resource constrained schedule (unit resource upper bound)

15分 3作 業

27分 4作 業

13分 1作 業

25分 2作 業

22分 5作 業

時 間0 102

Page 88: Perspective of supply chain optimization

Example 2Minimize the Pit-in time!

You’re a staff of F1 race. There are three pit staffs who have to do some tasks for your F1 car. Find the best schedule that minimizes the pit-in time.

Page 89: Perspective of supply chain optimization

Temporal (Precedence) relation and the processing time

gas

4

4

4

4

2

3

2

2

2

11作業1

作業2

作業3

作業4

作業5

作業6

作業7

作業8

作業9

作業10

3 staffs(resource constraint)

3 sec.

Task

Task

Task

TaskTask

Task Task

Task

Task

Task

11 sec.

2 sec.

2 sec.

2 sec.

2 sec.

4 sec.

4 sec.

4 sec.

4 sec.

Page 90: Perspective of supply chain optimization

Modeling with OptSeq -using a resource with capacity 3-

resource worker interval 0 inf capacity 3

activity prepare mode duration 3 worker interval 0 3 requirement 1...

temporal prepare oiltemporal jackup tire1...

activity sink duedate 0

Define a resource“worker” with capacity 3

Temporal constraints

Minimize themakespan

Page 91: Perspective of supply chain optimization

Optimization by OptSeqand Gantt’s chart

source ---: 0 0sink ---: 14 14prepare ---: 0 0--3 3water ---: 0 0--2 2front ---: 0 0--2 2jackup ---: 2 2--4 4tire1 ---: 8 8--12 12tire2 ---: 4 4--8 8tire3 ---: 8 8--12 12tire4 ---: 4 4--8 8oil ---: 3 3--14 14jackdown ---: 12 12--14 14

objective value = 14cpu time = 0.00/3.00(s)iteration = 0/37644

Page 92: Perspective of supply chain optimization

Another Model - using multiple modes -

1. Convenience Store Mode : Duration (Processing Time) 20 min. requires Money Resource 110 yen and human resource 1

2. Vending Machine Mode : Duration 20 min. requires Money 120 yen and human resource 13. Supermarket Mode: Duration 20 min.

requires Money 120 yen, human resource 1 and car resource 1

Mode : The way for processing an activity

Example : Activity “Buy a juice”

Page 93: Perspective of supply chain optimization

Mode (1)

mode Mode-Name duration Processing-Time Resource-Name interval Time1 Time2 requirement Integer+    ...

Description of Mode

activity Activity-Name Mode-Name1 Mode-Name2 ....

Add modesto activity

Page 94: Perspective of supply chain optimization

Mode (2)

mode m1 duration 3 worker interval 0 3 requirement 1

mode m2 duration 2 worker interval 0 2 requirement 2

mode m3 duration 1 worker interval 0 1 requirement 3

E.g., an activity has 3 difference modes; m1, m2 and m3 :

activity prepare m1 m2 m3

Add 3 modes to activity “prepare”

Mode Resource

single worker mode

double worker mode

triple worker mode

Page 95: Perspective of supply chain optimization

Result and Gantt’s chart

--- best solution ---source ---: 0 0sink ---: 13 13prepare m3: 0 0--1 1water ---: 1 1--3 3front ---: 11 11--13 13jackup ---: 1 1--3 3tire1 ---: 7 7--11 11tire2 ---: 3 3--7 7tire3 ---: 7 7--11 11tire4 ---: 3 3--7 7oil ---: 1 1--12 12jackdown ---: 11 11--13 13

objective value = 13cpu time = 0.00/3.00(s)iteration = 7/23318

activity “prepare” was done by mode m3, i.e., execute by 3 worker with duration 1

Page 96: Perspective of supply chain optimization

Resource Constrained Project Scheduling

土 台

1 階

内 装

屋 根

完 成 !

時 間 ( 日 )

資 源 量 ( 人 )

30

2

1 worker rests onthe 3rd day

Duration : 2 days 1 worker on the 1st dat 2 workers on the 2nd day

BasementFirst Floor Ceiling

Interior

Workers

Completion!

Page 97: Perspective of supply chain optimization

Modeling with OptSeq (1)

resource worker interval 0 2 capacity 2 interval 2 3 capacity 1 interval 3 inf capacity 2

Time Dependent Resource Capacity

0        2   3

Resource Capacity

Page 98: Perspective of supply chain optimization

Modeling with OptSeq (2)

Time DependentResource Usage ofActivity

activity first mode duration 3 worker interval 0 1 requirement 2 worker interval 1 3 requirement 1

Page 99: Perspective of supply chain optimization

Optimal Solution

時 間 ( 日 )

資 源 量 ( 人 )

Resource Constrained Project Scheduling (RCPSP) is a generic model ( job shop and flow shop scheduling problems are special cases.)

Resource Capacity

Page 100: Perspective of supply chain optimization

Critical Path Method (CPM)

Consider “Take off the airplane” again! However, each activity has an emergency modeActivity1 : Get off passengers (13min.) => Emergency mode (10 min. ) requires 10000 yenActivity2 : Unload baggage (25min.) => Emergency mode (20 min. ) requires 10000 yenActivity3 : Clean up the cabin (15min.) => Emergency mode (10 min. ) requires 10000 yenActivity4 : Get on passengers (27 min.) => Emergency mode (25 min. ) requires 10000 yenActivity5 : Load baggage (22 min.) => Emergency mode (20 min. ) requires 10000 yen

Page 101: Perspective of supply chain optimization

Renewable Resources andNon-renewable Resources

• Renewable resourcescan be used again after the completion of activities; for example, machines and/or workers are renewable

• Non-renewable resourcesare not renewed after the completion of activities; for example, money and/or ingredients are non-renewable

CPM can be modeled using a non-renewable resource

Page 102: Perspective of supply chain optimization

mode m[1][1] duration 13 mode m[1][2] duration 10

activity activity[1] m[1][1] m[1][2]

Modeling with OptSeq (1)

Activity 1 “Get off passengers” takes:13 minutes (normal mode) m[1][1] or10 minutes (emergency mode) m[1][2]

Page 103: Perspective of supply chain optimization

nonrenewable +1 (activity[1],m[1][2]) +1 (activity[2],m[2][2]) +1 (activity[3],m[3][2]) +1 (activity[4],m[4][2]) +1 (activity[5],m[5][2]) <= 4

Modeling with OptSeq (2)

Declaration ofnon-renewableresource

nonrenewable Amount1 (Activity-Name1,Mode-Name1) Amount2 (Activity-Name2,Mode-Name2) ... <= Upper-Bound (or Capacity)

Budget (Capacity of money resource) is 40000 yen.

Note that Amounts and Capacity may be 0 or negative integer.

Page 104: Perspective of supply chain optimization

Results10分

1作業

13分

1作業

10分

3作業

10分

3作業

25分

4作業

27分

4作業

20分

2作業

25分

2作業

22分

5作業

22分

5作業

時間

時間

45

13分

1作業15分

3作業27分

4作業

25分

2作業22分

5作業

時間0 55

52

4万円

1万円

0万円

Budget is40000 yen.

Budget is10000 yen.

Budget is 0 yen.

Emergency mode

Page 105: Perspective of supply chain optimization

Type of precedence relation

– =1: Finish ->Start– =2: Finish ->Finish– =3: Start ->Start– =4: Start ->Finish

Predecessor

Successor

Set-up time lower boundSet-up time upper bound

Finish Start

Page 106: Perspective of supply chain optimization

OptSeq Capability

• OptSeq is a solver for Resource Constrained Project Scheduling Problem with:– Time-Dependent Resource Usage and Capacity– Non-renewable Resource Constraints– Generic Temporal Constraintsalso it is possible to:– declare activities are breakable and/or processed in parallel – add “states” to represents the generic states of the system