© J. Christopher Beck 20081 Lecture 17: Tabu Search.

40
© J. Christopher Beck 2008 1 Lecture 17: Tabu Search

Transcript of © J. Christopher Beck 20081 Lecture 17: Tabu Search.

Page 1: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 1

Lecture 17: Tabu Search

Page 2: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 2

Outline Review:

Local Search & Crystal Maze Tabu Search Tabu & 1-machine JSP

Example C.5.4 Tabu & JSP

N1 neighborhood

Page 3: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 3

Readings

P Ch C.5

Page 4: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 4

Core Ideas of Local Search

Start with some (random?) assignment of variables

Look in “neighborhood” formed by making a small change to the assignment

Choose best neighbor Repeat

Page 5: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 5

Crystal Maze Place the numbers 1 through 8 in the

nodes such that: Each number appears exactly once

?

?

?

?

?

?

??

– No connected nodes have consecutive numbers

Page 6: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 6

Random Initial Solution

?

?

?

?

?

?

??1

4

3

2 5

6

7

8

Page 7: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 7

Random Initial Solution

?

?

?

?

?

?

??1

4

3

2 5

6

7

8

“Broken” constraint

Cost = # of broken constraints

Page 8: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 8

What Should We Do Now?

Move: Swap two numbers

Which two numbers? Randomly pick a pair The pair that will lead to the biggest

decrease in cost Cost: number of broken constraints

Page 9: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 9

What Should We Do Now?

Move: Swap two numbers

Which two numbers? Randomly pick a pair The pair that will lead to the biggest

decrease in cost Cost: number of broken constraints

Page 10: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 10

Random Initial Solution

?

?

?

?

?

?

??1

4

3

2 5

6

7

8

Page 11: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 11

Cost Difference Table1 2 3 4 5 6 7 8

1 0 0 0 -1 0 -2 -3 -2

2 0 -1 1 -1 -2 -1 -3

3 0 0 0 0 -1 0

4 0 0 0 -1 0

5 0 0 1 -1

6 0 -1 0

7 0 0

8 0

Page 12: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 12

Cost Difference Table1 2 3 4 5 6 7 8

1 0 0 0 -1 0 -2 -3 -2

2 0 -1 1 -1 -2 -1 -3

3 0 0 0 0 -1 0

4 0 0 0 -1 0

5 0 0 1 -1

6 0 -1 0

7 0 0

8 0

Page 13: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 13

Current State

?

?

?

?

?

?

??1

4

3

2 5

6

7

8

Page 14: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 14

Swap 1 & 7: Cost 3

?

?

?

?

?

?

??7

4

3

2 5

6

1

8

Page 15: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 15

New Cost Difference Table1 2 3 4 5 6 7 8

1 0 0 0 0 2 0 3 0

2 0 0 2 0 1 1 1

3 0 0 0 1 1 -1

4 0 0 1 1 1

5 0 1 2 0

6 0 0 0

7 0 1

8 0

Page 16: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 16

Current State

?

?

?

?

?

?

??7

4

3

2 5

6

1

8

Page 17: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 17

Swap 3 & 8: Cost 2

?

?

?

?

?

?

??7

4

8

2 5

6

1

3

Page 18: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 18

Swap 6 & 7: Cost 1

?

?

?

?

?

?

??6

4

8

2 5

7

1

3

Page 19: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 19

Moves

Initial State: Cost 6 Swap 1 & 7: Cost 3 Swap 3 & 8: Cost 2 Swap 6 & 7: Cost 1

Page 20: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 20

Cost Difference Table1 2 3 4 5 6 7 8

1 0 1 1 1 2 2 1 1

2 0 1 2 2 1 3 1

3 0 1 1 4 1 2

4 0 2 1 3 1

5 0 2 1 2

6 0 1 1

7 0 1

8 0

Page 21: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 21

Now what?

There are no improving moves to make!

So far, we have been “hill-climbing”

moves

cost

Page 22: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 22

Tabu Search Idea

Local search but: Keep a small list of the moves that

are “tabu”: you can’t (un)do them List has a limited length and the

oldest entries “fall off” when the list is full

Page 23: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 23

Tabu Search

Start with some (maybe random) initial state

Look at the moves in the “neighborhood” and take the best one

Remember the last k moves (“tabu list”) so you don’t undo them

Page 24: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 24

Tabu Search & 1-Machine

Example C.5.4, min wjTj

Tabu List Size = 2

Jobs 1 2 3 4

pj 10 10 13 4

dj 4 2 1 12

wj 14 12 1 12

Jj, pj, dj, wj

J1, 10, 4, 14

Page 25: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 25

TS Step 1: Find Initial Solution

Arbitrarily choose (2, 1, 4, 3)

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12

50013612121416128 jjTw

10 20 24 37

Jj, pj, dj, wj

Page 26: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 26

TS Step 2: Evaluate Neighborhood & Select Move

Neighborhood: swap Adjacent pairwise

interchange

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12

wjTj = 480

J4, 4, 12, 12

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12 wjTj = 436

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12

wjTj = 652

Choose (1,4)

Page 27: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 27

TS Step 3: Add Moveto Tabu List

J4, 4, 12, 12

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

wjTj = 436

Tabu: ((1, 4))Best so far:(2, 4, 1, 3): 436

Page 28: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 28

TS Step 2: Evaluate Neighborhood & Select Move

J4, 4, 12, 12

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12

wjTj = 460

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12 wjTj = 500

J3, 13, 1, 1 J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12

wjTj = 608

Choose (4,2)

J4, 4, 12, 12

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

wjTj = 436

Tabu: ((1, 4))

Page 29: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 29

TS Step 3: Add Move to Tabu List

Tabu: ((2,4) (1, 4))

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12wjTj = 460

Best so far:(2, 4, 1, 3): 436

Page 30: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 30

TS Step 2: Evaluate Neighborhood & Select Move

J4, 4, 12, 12

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12

wjTj = 436

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12 wjTj = 440

J3, 13, 1, 1 J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12

wjTj = 632

Choose (1,2)

Tabu: ((2,4) (1, 4))

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12wjTj = 460

Page 31: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 31

TS Step 3: Add Move to Tabu List

Tabu: ((1,2), (2,4))

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12wjTj = 440

Best so far:(2, 4, 1, 3): 436

Page 32: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 32

TS Step 2: Evaluate Neighborhood & Select Move

J4, 4, 12, 12

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12

wjTj = 460

J3, 13, 1, 1J1, 10, 4, 14 J2, 10, 2, 12 wjTj = 408

J3, 13, 1, 1J1, 10, 4, 14 J2, 10, 2, 12

J4, 4, 12, 12

wjTj = 586

Choose (1,4)

Tabu: ((1,2), (2,4))

J3, 13, 1, 1J1, 10, 4, 14J2, 10, 2, 12

J4, 4, 12, 12wjTj = 440

Page 33: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 33

TS Step 3: Add Move to Tabu List

Tabu: ((1,4), (1,2))

wjTj = 408

Best so far:(1,4,2,3): 408

J4, 4, 12, 12

J3, 13, 1, 1J1, 10, 4, 14 J2, 10, 2, 12

And so on until a bound on the number of iterations (actually 408 is optimal, but TS has no way of

knowing)

Page 34: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 34

Tabu Search Framework

Find initial solution (something quick)

Until N moves are done Evaluate neighborhood Choose best non-tabu neighbor Update tabu list

Return best solution found

Page 35: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 35

Tabu Search Framework

To completely define a TS algorithm, you must define How the initial solution is found Format and length of tabu list How to generate a neighborhood from

a given state

Page 36: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 36

TS & JSPJ0

J1

J2

J0

J0

J0

J1

J1

J1J2

J2

J2

Page 37: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 37

TS & JSP

How might you find a first solution?

What could your tabu list format be?

Can you define a neighborhood?

Page 38: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 38

The N1 Neighborhood for JSP

J0

J0

J0

J1

J1

J1J2

J2

J2

Page 39: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 39

The N1 Neighborhood for JSP

J0

J0

J0

J1

J1

J1J2

J2

J2

Pick a critical path Neighborhood: all swaps on the

chosen CP

Page 40: © J. Christopher Beck 20081 Lecture 17: Tabu Search.

© J. Christopher Beck 2008 40

Tabu Example JSP

Run Tabu on JSP from previous lectures

Jobs Processing times

0 J0R0[15] J0R1[50] J0R2[60]

1 J1R1[50] J1R0[50] J1R2[15]

2 J2R0[30] J2R1[15] J2R2[20]