Sunteți pe pagina 1din 35

Simulated Annealing and

Tabu Search

Outline

Local Search
Simulated Annealing
Apply SA to Vehicle Route Planning
Tabu Search

Local search method(1/5)

Elements of Local Search

Representation of the solution


Evaluation function;
Neighbourhood function: to define solutions which
can be considered close to a given solution.
Neighbourhood search strategy: random and
systematic search;
Acceptance criterion: first improvement, best
improvement, best of non-improving solutions,
random criteria;
3

Local search method(2/5)

Example of Local Search Algorithm : Hill Climbing

Local
optimum
Global optimum
Initial
solution

Neighbourhood of
solution

Local search method(3/5)

Hill Climbing - Algorithm

1. Pick a random point in the search space


2. Consider all the neighbors of the current state
3. Choose the neighbors with the best quality and move to that state
4. Repeat 2 thru 4 until all the neighboring states are of lower quality
5. Return the current state as the solution state
5

Local search method(4/5)

Hill Climbing Algorithm (pseudo code)

Function HILL-CLIMBING(Problem) returns a solution state


Inputs: Problem, problem
Local variables: Current, a node
Next, a node
Current = MAKE-NODE(INITIAL-STATE[Problem])
Loop do
Next = a highest-valued successor of Current
If VALUE[Next] < VALUE[Current] then return Current
Current = Next
End
6

Simulatedannealing:Theidea
Acceptingimprovingsolutionsonlymayendupwith
alocalminimum.

Allowingworsesolutionsmayhelpustoescapelocal
minimum.

Simulated annealing(1/9)

Motivated by the physical annealing process( : )


Material is heated and slowly cooled into a uniform
structure
Simulated annealing mimics this process
The first SA algorithm was developed in 1953 (Metropolis)

Kirkpatrick (1983) applied SA to optimization


problems

Kirkpatrick, S , Gelatt, C.D., Vecchi, M.P. 1983.


Optimization by Simulated Annealing. Science, vol 220,
No. 4598, pp 671-680
8

Simulated annealing(2/9)

Elements of SA

Representation of the solution (same as HC)


Evaluation function (same as HC)
Neighbourhood function (same as HC)
Neighbourhood search strategy (same as HC)
Acceptance criterion :
better moves are always accepted.
Worse moves are accepted by probability

Simulated annealing(3/9)

To accept or not to accept ?

: at temperature, t, the probability of an


increase in energy of magnitude, E, is given by

P(.) = exp(-E /kt)

Where k is a constant known as Boltzmanns constant


Boltzmann constant = 1.3806503 10-23 m2 kg s-2 K-1
f(X)

E(Current point)
E(Neighbour)

Neighbourhood
of solution

Current point
Neighbour
(

10

Simulated annealing(4/9)

To accept or not to accept - SA?

P = exp(-c/t) > r

Where

c is change in the evaluation function


t the current temperature
r is a random number between 0 and 1
11

12

Simulated annealing(5/9)

To accept or not to accept - SA?


The probability of accepting a worse state is a
function of both the temperature of the system and
the change in the cost function

As the temperature decreases, the probability of


accepting worse moves decreases

If t=0, no worse moves are accepted (i.e. hill


climbing)

13

Simulated annealing(6/9)

The most common way of implementing an SA

To implement hill climbing and modify the accept function for SA


Function SIMULATED-ANNEALING(Problem, Schedule) returns a solution state
Inputs: Problem, a problem
Schedule, a mapping from time to temperature
Local Variables : Current, a node
Next, a node
T, a temperature controlling the probability of downward steps
Current = MAKE-NODE(INITIAL-STATE[Problem])
For t = 1 to do
T = Schedule[t]
// Cooling Schedule
if T = 0 then return Current
Next = a randomly selected successor of Current
E = VALUE[Next] VALUE[Current]
if E > 0 then Current = Next
else Current = Next only with probability exp(-E/T)
End

14

Simulated annealing(7/9)

The cooling schedule is hidden in this algorithm, but it is


important
SA assumes that annealing will continue until temperature is
zero
SA Cooling Schedule

Starting Temperature
Final Temperature
Approach to zero : the system is frozen
Temperature Decrement
Iterations at each temperature

15

Simulated annealing(8/9)

Temperature Decrement

Linear

temp = temp - x

Geometric
temp = temp *
Experience has shown that should be between 0.8 and 0.99
the higher the value of , the longer the system will run.

Iterations at each temperature

A constant number of iterations at each temperature


only do one iteration at each temperature, but to decrease the
temperature very slowly(Lundy, 1986)
16

Simulated annealing(9/9)

Iterations at each temperature

The formula used by Lundy is


t = t/(1 + t)
where is a suitably small value
An alternative : dynamically change the number of
iterations

At lower temperatures ; a large number of iterations are done

so that the local optimum can be fully explored

At higher temperatures, the number of iterations can be less


17

SA Application

Apply SA to the Vehicle Route Planning

18

2000

89 11 17
19

:
1.
2.

20


:
:
1.
2.
3.
4.
5.

21

22

(by us)

VRP

23

2
1

7
9
3

13
12

10

11

24

25


-
8

1
7

2
6

Xnew

No h<exp(-E /T)
?

2,3,4,5,6,7

Xnew
5 4
Eold
Yes

8
2

6
7

3
4

Enew

E = Enew - Eold
E > 0

E 0

Xnew 26

VRP
1

D1

D12

D2

= path
max {D1, D2,,D12}
27

: (50,50)
: 220
: 1210
: 6
:

= 852.82

100
36

90

28

11

80
70

30
25

60

23
39

50

18

40

46

30

32

19

20
10
0

38
24

10

20

30

40
13

42
7
15
48 14
33

50
40

49

1 17

16

12

29

35

26

37

44

34

20
22

.
41

27

47

21

43

6
45

10

31

8
50

60

70

80

90

100

VS.
= 853.49

28

160

170

50

777

75

10

1364

140

151

100

1458

200

203

150

12

2235

200

207
29

585

574

532

5343

550

5242

535

5231

900

893

874

871

883

8571

8703

8642

886

869

8513

8513

8513

8331

8502

8513

1204

1185

10793

10642

1093 10141

1095

1089
30


1.

2.

1. VRP
2.
3.
1. Fuzzy Clustering

2. Fuzzy Clustering

31

Tabu search(1/4)

Tabu Search

Proposed independently by Glover(1986) and


Hansen(1986);
Tabu search is
"a meta-heuristic superimposed on another heuristic"
"The overall approach is to avoid entrapment in cycles by
forbidding or penalizing moves which take the solution, in the
next iteration, to points in the solution space previously visited
(hence tabu)."

32

Tabu search(2/4)

Tabu Search

Accepts non-improving solutions deterministically


in order to escape from local optima
by guiding a steepest descent local search (or steepest
ascent hill climbing ) algorithm;

Uses of memory to:


prevent the search from revisiting previously visited
solutions;
explore the unvisited areas of the solution space;

33

Tabu search(3/4)
Function TABU_SEARCH (Problem) returns a solution state
Inputs: Problem, a problem
Local Variables : Current, a state
Next, a state
BestSolutionSeen, a state
H, a history of visited states
Current = MAKE-NODE(INITIAL-STATE[Problem])
While not terminte
Next = a highest-valued successor of Current
if (not Move_Tabu(H, Next) or Aspiration(Next)) then
Current = Next
Update BestSolutionSeen
H = Recency(H + Current)
Endif
End-While
Return BestSolutionSeen

34

Tabu search(4/4)

Elements of Tabu Search

Tabu List (short term memory): to record a limited number of attributes of


solutions (moves, selections, assignments, etc) to be discouraged in order
to prevent revisiting a visited solution;
Tabu tenure: number of iterations a tabu move is considered to remain
tabu;
Aspiration criteria: accepting an improving solution even if generated by a
tabu move

Similar to SA in always accepting improving solutions, but accepting non-improving


ones when there is no improving solution in the neighbourhood;

Long term memory: to record attributes of elite solutions to be used in:

Intensification: giving priority to attributes of a set of elite solutions (usually in


weighted probability manner)
Diversification: Discouraging attributes of elite solutions in selection functions in
order to diversify the search to other areas of solution space;
35

S-ar putea să vă placă și