1/33 team ncku lead by i-lin wang informs ras 2014 problem solving competition team ncku (national...

36
1/33 Team NCKU lead by I-Lin Wang INFORMS RAS 2014 Problem Solving Competition Team NCKU (National Cheng Kung University @Taiwan ) I-Lin Wang (Associate Professor) Ping-Cheng Lin (student) Tsai-Ti Huang (student)

Upload: gerald-malone

Post on 24-Dec-2015

223 views

Category:

Documents


1 download

TRANSCRIPT

1/33

Team NCKU lead by I-Lin Wang

INFORMS RAS 2014Problem Solving Competition

Team NCKU (National Cheng Kung University @Taiwan)

I-Lin Wang (Associate Professor) Ping-Cheng Lin (student) Tsai-Ti Huang (student)

2/33

Railroad Yard

Team NCKU lead by I-Lin Wang

2 Hump Engines 3 Pullback Engines

Two-stage Flow Shop Scheduling

Inbound Trains Hump Engine Pullback EnginesSorted Cars OutboundTrains

Stage-1 machineStage-1 Jobs WIP Stage-2 machine Products

3/33

Hump Sequencing

2 Hump Engines 3 Pullback Engines

Inbound trains∞ tracks

58,50,42 tracks; diff. length

Outbound trains∞ tracks

Stage 1: job inbound train release time arrival time machine hump engine processed job blocks in a c-track (WIP Inventory)

4/33

Stage 1: Still on-going at the same time

Pullout Sequencing

2 Hump Engines 3 Pullback Engines

Inbound trains∞ tracks

58,50,42 tracks; diff. length

Outbound trains∞ tracks

Stage 2: job (i.e. WIP) cars in c-tracks release time time when cars on c-tracks machine pullout engine product departure train finish time departure time

5/33

Team NCKU lead by I-Lin Wang

Two Subproblems Hump Sequencing

Which hump engine to disassemble which inbound train in what way (single or multi? into which tracks), and at what time?

Pullout Sequencing Which pullout engine to assemble which lines of

railcars from which tracks to construct which departure train, and at what time?

6/33

Team NCKU lead by I-Lin Wang

Problem Description Given data

Inbound trains (702 trains) Schedule & configuration of each inbound train Length and type of railcars

Classification tracks (3 scenarios: 58, 50, 42 tracks) Length (different to each other)

Outbound trains (16 trains/day) Schedule & configuration of each outbound train

2 hump engines, 3 pullback (pullout) engines Objective

optimal hump & pullout sequencing that satisfy constraints with minimized total dwell time

7/33

Team NCKU lead by I-Lin Wang

Difficulties in this Competition

Any delay will change the scheduling decisionIP-based method is NOT suitableMay require different heuristics for delayed cases

Different configurations of railcars Each railcar has its own length

Different configurations of classification tracks 3 scenarios of classification tracks(58, 50, and 42 )

Different configurations of outbound trains Each outbound train has its own railcars of specific

types and orders Possibility of delaying outbound trains

Each outbound train may have its own best delay time in each day, yet it is difficult to predict that

Decisions for each carToo many variables in an IP

Classification tracks have different lengthsDecisions for each car in each trackToo many variables in an IPMay require different heuristics for each scenario

Decisions for each carToo many variables in an IP

8/33

Solution Methods Integer Programming (IP)

Too many variables Nonlinear objective function (to consider delay)

Meta-Heuristics Genetic Algorithm Tabu Search,….etc.

Greedy Heuristics FIFO? SPT? EDD?

Simulation-based solution with greedy heuristics Provide good solutions efficiently, with the flexibility to

adjust control parameters for different key operations

Team NCKU lead by I-Lin Wang

Rely on case-dependent parameter setting adjustments, NOT intuitive

try out blind combinations?

Should NOT work

9/33

Important Insights from Data Each type of railcar can only be shipped by a

unique outbound train in specific order a good Timing for processing an inbound or an

outbound train?

Sequential processing is sufficient by hump & pullback engines cannot save operational time by parallel operations We may assign an inbound or outbound train a specific

engine, since their schedules are sufficiently separated

(e.g. for pullout operations, 1-2-3-1-2-3-….-1-2-3…)

Team NCKU lead by I-Lin Wang

10/33

Intuitions for Decisions (1/2) Decisions to start humping

To hump an inbound train only when it contains blocks that are shippable in the near future

PULL strategy rather than PUSH strategy Decisions to assign Block to Track

Single-type track Simpler & time effective: carry more blocks at a time Need to start pulling out earlier, for trains of many types

Multi-type track Useful for cases of limited classification area Difficult to arrange beforehand

Team NCKU lead by I-Lin Wang

Single-type track is good enough here!

11/33

Intuitions for Decisions (2/2) Decisions to assign Block to Track (continued)

Which classification track to assign blocks Assign “popular” blocks to longer tracks

Sort the classification tracks by length Sort the railcar types by total quantities Map each railcar type to a classification

track as an initial checking point

Decisions to start pulling out operation Better to start late pullout operations (PULL strategy)

More cars can be shipped in the order Order of car types has to be satisfied single type track is better (tractable start time)

Team NCKU lead by I-Lin Wang

12/33

Hump Operations: In-Train Selection How to select an inbound train to hump 3 strategies: h1, h2, h3

Team NCKU lead by I-Lin Wang

Best h2

13/33

Hump Operations: C-Track Selection Setting of proposed key:

Team NCKU lead by I-Lin Wang

Which C-trackto be selectedto receive cars?

3 strategies: c1, c2, c3

Best c2

14/33

Pullout Operations: when to start? How to select an inbound train to hump 3 strategies: p1, p2, p3

Team NCKU lead by I-Lin Wang

Best p2

15/33

To Delay an Outbound Train Delaying an outbound train has no penalty

Better to ALWAYS delay (but cannot depart earlier)

Delay time should be different each day Caused by different inbound trains each day but for how long?

Intuitively, more “just missed” cars would be worth delaying Give a mathematical model to determine the timing and

amount of cars to delay (but not used here) Give a simple rule for checking whether it pays off to delay

an outbound train that originally carried n cars for ∆t time.

Team NCKU lead by I-Lin Wang

16/33

A Mathematical Model (1/2) Let inbound train arrives at time with cars of type Let outbound train :the set of outbound trains to carry any block of train

Team NCKU lead by I-Lin Wang

17/33

A Mathematical Model (2/2) Objective:

Min

Team NCKU lead by I-Lin Wang

( ( ) ( 1440 ))i ij

k kjij j i ij i

i I j J k K

x t t y t t

Total dwell time for #cars shipped by the earliest outbound trainTotal dwell time for #cars shipped by the same outbound train of the next day

, ,k kij ij jx y t

Flow balance

 

(1)

,max{ }ji ij j jt t t t t

, ii I j J (3)

 

( )i

k k ki ij ij

j J

b x y

, iji I k K (2)s.t.

Did NOT use this model

18/33

A simple formula for delay (1/2) Simple rule for checking whether it pays off to delay

an outbound train that originally carried n cars for

time. : #shippable but just missed cars at minutes

later than departure time Pull out takes 20 min, so we can pull at most

If ,suggest to delay.

Team NCKU lead by I-Lin Wang

t( )g t t

( 20)g t

( 20)(1440 )g t t n t Total saved time Total wasted time

�́� 𝑗time: n#cars:

𝑡 𝑗time: #cars: ( 20)g t

𝛥𝑡

19/33

A simple formula for delay (2/2) Whereas if n =0,wait until outbound train can catch

1 needed car. Let is the time from catching one car to real departure time

If , suggest to delay

Let denote the threshold value on #shippable but just missed cars

Check to decide delaying or not

Team NCKU lead by I-Lin Wang

( ) / (1440 )f t n t t

( 20) ( )g t f t

t

�́� 𝑗time:

#cars: 0

𝑡 𝑗time: #cars: ( 20)g t

𝛥𝑡

#cars: 1

( 20) 1 (1440 )g t t t

20/33

An illustrative example (1/3)

Team NCKU lead by I-Lin Wang

𝛥𝑡�́� 𝑗time: 𝑡 𝑗 �́� 𝑗+1440

#cars: n ( 20)g t

𝛥𝑡�́� 𝑗time: 𝑡 𝑗 �́� 𝑗+1440

#cars: nWasted time

saved time

( 20)g t

Wasted time saved time

Worth delaying!

Original #cars to be shipped

Extra #cars caught by delay

21/33

An illustrative example (2/3)

Team NCKU lead by I-Lin Wang

wasted5

0

20

1440200

saved

20200 < 5(1440-200) DelayNet saving time: 2200

500

8wasted

0

20

1440200

saved

20500 > 8(1440-500) NO delay

0

20

1440200

5

500

3

600

9

800

3

time:

#cars:

22/33

An illustrative example (3/3)

Team NCKU lead by I-Lin Wang

500

17wasted

0

20

1440200

saved

20600 < 17(1440-600) DelayNet saving time: 2280

600

0

20

1440200

5

500

3

600

9

800

3#cars:

time:

500

20wasted

0

20

1440200

saved

20800 < 20(1440-800) NO delay

600 800

Best delay!

23/33

Delay time example

Team NCKU lead by I-Lin Wang

Best delay time

24/33

Algorithm Step1:

The outbound train with scheduledd time t run a simulation until time = t+1439(at most one day), record inventory status for each minute

Step2: According to , record , and #occupied tracks for each

minute Step3:

Find the max , and its #occupied tracks, real departure time =

scheduled departure time + + #occupied tracks20

Team NCKU lead by I-Lin Wang

Delay time pullback time

25/33

Computational Results (No delay) TDavg: average Dwell time Vage: average volume %Ot: average occupied classification track

(%tracks/min)

Team NCKU lead by I-Lin Wang

No Delay

%Utk: avg full rate occupied classification

Lavg: #line/min

*: unlimited situation

26/33

Computational Results (Delay<2hr) TDavg: average Dwell time Vage: average volume %Ot: average occupied classification track

(%tracks/min)

Team NCKU lead by I-Lin Wang

%Utk: avg full rate occupied classification

Lavg: #line/min

*: unlimited situationDelay(<2hr)

27/33

Computational Results (Delay<1D) TDavg: average Dwell time Vage: average volume %Ot: average occupied classification track

(%tracks/min)

Team NCKU lead by I-Lin Wang

%Utk: avg full rate occupied classification

Lavg: #line/min

*: unlimited situation

No Delay Delay(<2hr) Delay(<1D)

28/33

Visualization Tool Take day1_train14 for example scheduled departure time for train14:1410

Team NCKU lead by I-Lin Wang

#cars can be shipped

29/33

Visualization Tool When time is 1750, we can find more shippable cars in

classification tracks

Team NCKU lead by I-Lin Wang

30/33

Visualization Tool Delay 419min, real departure time:1829

Team NCKU lead by I-Lin Wang

#cars can be shipped

31/33

Visualization Tool

Team NCKU lead by I-Lin Wang

No delay delay

Delay dwell time:864547No Delay dwell time:910460 ¿ Better to delay

32/33

Conclusion Solution Methods: simulation-based solution

Good scheduling solutions efficiently Good flexibility to adjust control parameters for different

key operations Each key operation contains heuristics composed by

simple rules sound mathematical reasoning and analysis

Proposed strategies: h2,c2(or c1) and p2

Our visualization tool can be used to validate or check how other strategy works, based on the requested input/output csv file.

Team NCKU lead by I-Lin Wang

33/33

Team NCKU lead by I-Lin Wang

Thank you !Q & A

Contact:I-Lin Wang (王逸琳 )Associate ProfessorDept of Industrial & Information ManagementNational Cheng Kung University

34/33

day1

Computational experiments

Team NCKU lead by I-Lin Wang

Delay time

Delay time

30 449 1164

�́� 𝑗time:

#cars: 0

𝑡 𝑗time:

#cars: ( 20)g t

𝛥𝑡

#cars: 1

35/33

Computational experiments day2

Team NCKU lead by I-Lin Wang

Delay time

Delay time

36/33

Visualization Tool Take day1_train14 for example, scheduledd departure time

for train14:1410 #cars can be pulled back

Team NCKU lead by I-Lin Wang