computational intelligence and software engineering lecture ...simulated annealing 14 simulated...
TRANSCRIPT
![Page 1: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/1.jpg)
CO3091 - Computational Intelligence and Software Engineering
Leandro L. Minku
Simulated Annealing
Lecture 03
Imag
e fro
m: h
ttp://
ww
w.tu
ringfi
nanc
e.co
m/w
p-co
nten
t/upl
oads
/201
5/05
/Ann
ealin
g.jp
g
![Page 2: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/2.jpg)
Overview• Motivation for Simulated Annealing
• Simulated Annealing
• Examples of Applications
2
![Page 3: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/3.jpg)
Motivation
3
Objective Function
(to be maximised)
Global Optimum Local
Optimum
Hill-climbing may get trapped in a local
optimum.
Search Space
Heuristic = informed guess
![Page 4: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/4.jpg)
Motivation
4
If we could sometimes accept a downward
move, we would have some chance to move to
another hill.
Search Space
Objective Function
(to be maximised)
![Page 5: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/5.jpg)
Hill-Climbing
5
Hill-Climbing (assuming maximisation)
1. current_solution = generate initial solution randomly
2. Repeat: 2.1 generate neighbour solutions (differ from current solution by a
single element) 2.2 best_neighbour = get highest quality neighbour of
current_solution 2.3 If quality(best_neighbour) <= quality(current_solution)
2.3.1 Return current_solution 2.4 current_solution = best_neighbour
In simulated annealing, instead of taking the best neighbour, we pick a random neighbour.
![Page 6: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/6.jpg)
Hill-Climbing
6
Simulated annealing will give some chance to accept a bad neighbour.
Hill-Climbing (assuming maximisation)
1. current_solution = generate initial solution randomly
2. Repeat: 2.1 generate neighbour solutions (differ from current solution by a
single element) 2.2 best_neighbour = get highest quality neighbour of
current_solution 2.3 If quality(best_neighbour) <= quality(current_solution)
2.3.1 Return current_solution 2.4 current_solution = best_neighbour
![Page 7: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/7.jpg)
Simulated Annealing
7
Simulated Annealing (assuming maximisation)
1. current_solution = generate initial solution randomly
2. Repeat: 2.1 generate neighbour solutions (differ from current solution by a
single element)
2.2 rand_neighbour = get random neighbour of current_solution 2.3 If quality(rand_neighbour) <= quality(current_solution)
2.3.1 With some probability, current_solution = rand_neighbour
Else current_solution = rand_neighbour
![Page 8: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/8.jpg)
Simulated Annealing
8
Simulated Annealing (assuming maximisation)
1. current_solution = generate initial solution randomly
2. Repeat: 2.1 generate neighbour solutions (differ from current solution by a
single element)
2.2 rand_neighbour = get random neighbour of current_solution 2.3 If quality(rand_neighbour) <= quality(current_solution)
2.3.1 With some probability, current_solution = rand_neighbour
Else current_solution = rand_neighbour
![Page 9: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/9.jpg)
How Should the Probability be Set?
• Probability to accept solutions with much worse quality should be lower. • We don’t want to be dislodged from the optimum.
• High probability in the beginning. • More similar effect to random search. • Allows us to explore the search space.
• Lower probability as time goes by. • More similar effect to hill-climbing. • Allows us to exploit a hill.
9
![Page 10: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/10.jpg)
How to Decrease the Probability?
10
If you decrease the probability slowly, you start to form basis of
attraction, but you can still walk over small hills
initially.
• We would like to decrease the probability slowly.
![Page 11: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/11.jpg)
How to Decrease the Probability?
• We would like to decrease the probability slowly.
11
As the probability decreases further, the small hills start to form basis of attraction too.
But if you do so slowly enough, you give time to
wander to the higher value hills before starting
to exploit.
So, you can find the global optimum!
![Page 12: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/12.jpg)
How to Decrease the Probability?
• We would like to decrease the probability slowly.
12
If you decrease too quickly, you can get
trapped in local optima.
![Page 13: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/13.jpg)
13
[By Kingpin13 - Own work, CC0, https://commons.wikimedia.org/w/index.php?curid=25010763]
![Page 14: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/14.jpg)
Simulated Annealing
14
Simulated Annealing (assuming maximisation)
1. current_solution = generate initial solution randomly
2. Repeat: 2.1 generate neighbour solutions (differ from current solution by a
single element)
2.2 rand_neighbour = get random neighbour of current_solution 2.3 If quality(rand_neighbour) <= quality(current_solution)
2.3.1 With some probability, current_solution = rand_neighbour
Else current_solution = rand_neighbour 2.4 Reduce probability
![Page 15: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/15.jpg)
Metallurgy Annealing• A blacksmith heats the metal to a
very high temperature.
• When heated, the steel’s atoms can move fast and randomly.
15
Image from: http://www.stormthecastle.com/indeximages/sting-steel-thumb.jpg
Image from: http://www.stormthecastle.com/indeximages/sting-steel-thumb.jpg
Image from: http://2.bp.blogspot.com/--kOlrodykkg/UbfVZ0_l5HI/AAAAAAAAAJ4/0rQ98g6tDDA/s1600/annealingAtoms.png
• The blacksmith then lets it cool down slowly.
• If cooled down at the right speed, the atoms will settle in nicely.
• This makes the sword stronger than the untreated steel.
![Page 16: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/16.jpg)
16
![Page 17: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/17.jpg)
Probability FunctionProbability of accepting a solution of equal or worse quality,
inspired by thermodynamics:
17
ΔΕ = quality(rand_neighbour) - quality(current_solution)
Assuming maximisation…
eΔΕ/Τ
T = temperature(>0)
(<=0)
![Page 18: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/18.jpg)
Exponential Function
18
eΔΕ/Τ
ΔΕ/ΤImage form: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Exp.svg/800px-Exp.svg.png
![Page 19: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/19.jpg)
Exponential Function
19
eΔΕ/Τ
ΔΕ/ΤImage form: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Exp.svg/800px-Exp.svg.png
eΔΕ/Τ
![Page 20: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/20.jpg)
Exponential Function
20
eΔΕ/Τ
ΔΕ/ΤImage form: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Exp.svg/800px-Exp.svg.png
But never reaches
zero
eΔΕ/Τ
![Page 21: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/21.jpg)
How Does ΔΕ Affect the Probability?
Probability of accepting a solution of equal or worse quality:
21
eΔΕ/Τ
Assuming maximisation…
The worse the neighbour is in comparison to the current solution, the less likely to accept it.
(<=0)ΔΕ = quality(rand_neighbour) - quality(current_solution)
T = temperature(>0)
![Page 22: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/22.jpg)
How Does ΔΕ Affect the Probability?
Probability of accepting a solution of equal or worse quality:
22
eΔΕ/Τ
Assuming maximisation…(<=0)ΔΕ = quality(rand_neighbour) - quality(current_solution)
T = temperature(>0)
But never reaches zero
We always have some probability to accept a bad neighbour, no matter how bad it is.
![Page 23: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/23.jpg)
23
Assuming maximisation…
The better the neighbour is, the more likely to accept it.
(<=0)ΔΕ = quality(rand_neighbour) - quality(current_solution)
T = temperature(>0)
eΔΕ/Τ
Probability of accepting a solution of equal or worse quality:
How Does ΔΕ Affect the Probability?
![Page 24: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/24.jpg)
How Should the Probability be Set?
24Im
age
from
: http
://st
atic
.com
icvi
ne.c
om/u
ploa
ds/o
rigin
al/1
3/13
0470
/293
1473
-151
295.
jpg
• Probability to accept solutions with much worse quality should be lower.• We don’t want to be dislodged from the optimum.
• High probability in the beginning. • More similar effect to random search. • Allows us to explore the search space.
• Lower probability as time goes by. • More similar effect to hill-climbing. • Allows us to exploit a hill.
![Page 25: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/25.jpg)
How Does T Affect the Probability?
25
Assuming maximisation…(<=0)ΔΕ = quality(rand_neighbour) - quality(current_solution)
T = temperature(>0)
eΔΕ/Τ
Probability of accepting a solution of equal or worse quality:<=0
![Page 26: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/26.jpg)
Probability of accepting a solution of equal or worse quality:
26
Assuming maximisation…
<=0
If T is higher, the probability of accepting the neighbour is higher.
(<=0)ΔΕ = quality(rand_neighbour) - quality(current_solution)
T = temperature(>0)
eΔΕ/Τ
How Does T Affect the Probability?
![Page 27: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/27.jpg)
27
Assuming maximisation…
<=0
If T is lower, the probability of accepting the neighbour is lower.
(<=0)ΔΕ = quality(rand_neighbour) - quality(current_solution)
T = temperature(>0)
eΔΕ/Τ
Probability of accepting a solution of equal or worse quality:
How Does T Affect the Probability?
![Page 28: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/28.jpg)
28
Assuming maximisation…
<=0
So, reducing the temperature over time would reduce the probability of accepting the neighbour.
(<=0)ΔΕ = quality(rand_neighbour) - quality(current_solution)
T = temperature(>0)
eΔΕ/Τ
Probability of accepting a solution of equal or worse quality:
How Does T Affect the Probability?
![Page 29: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/29.jpg)
How Should the Temperature be Set?
29
Imag
e fro
m: h
ttp://
stat
ic.c
omic
vine
.com
/upl
oads
/orig
inal
/13/
1304
70/2
9314
73-1
5129
5.jp
g
• High probability in the beginning. • More similar effect to
random search. • Allows us to explore the
search space.
• Lower probability as time goes by. • More similar effect to
hill-climbing. • Allows us to exploit a
hill.
![Page 30: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/30.jpg)
How to Set and Reduce T?• T starts with an initially high pre-defined value (parameter of
the algorithm).
• There are different update rules (schedules)…
• Update rule: • T = αT,
30
α is close to, but smaller than, 1 e.g., α = 0.95
![Page 31: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/31.jpg)
Simulated Annealing
31
Simulated Annealing (assuming maximisation)
Input: initial temperature Ti
1. current_solution = generate initial solution randomly
2. T = Ti
3. Repeat: 3.1 generate neighbour solutions (differ from current solution by a
single element) 3.2 rand_neighbour = get random neighbour of current_solution 3.3 If quality(rand_neighbour) <= quality(current_solution)
3.3.1 With probability eΔΕ/Τ, current_solution = rand_neighbour
Else current_solution = rand_neighbour 3.4 T = schedule(T)
![Page 32: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/32.jpg)
Simulated Annealing
32
Simulated Annealing (assuming maximisation)
Input: initial temperature Ti, minimum temperature Tf
1. current_solution = generate initial solution randomly
2. T = Ti
3. Repeat until a minimum temperature Tf is reached or until the current solution “stops changing”:
3.1 generate neighbour solutions (differ from current solution by a single element)
3.2 rand_neighbour = get random neighbour of current_solution 3.3 If quality(rand_neighbour) <= quality(current_solution)
3.3.1 With probability eΔΕ/Τ, current_solution = rand_neighbour
Else current_solution = rand_neighbour 3.4 T = schedule(T)
![Page 33: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/33.jpg)
Local Search• Simulated annealing can also be considered as a local
search, as it allows to move only to neighbour solutions.
• However, it has mechanisms to try and escape from local optima.
33Im
age
from
: http
://st
atic
.com
icvi
ne.c
om/u
ploa
ds/o
rigin
al/1
3/13
0470
/293
1473
-151
295.
jpg
![Page 34: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/34.jpg)
Examples of Applications• Several engineering problems,
e.g.: VLSI (Very-Large-Scale Integration). • Process of creating an
integrated circuit by combining thousands of transistors into a single chip.
• Decide placement of transistors. • Objectives: reduce area, wiring
and congestion.
34
Image from: https://upload.wikimedia.org/wikipedia/commons/9/94/VLSI_Chip.jpg
• Software engineering problems: • Component selection and prioritisation for the next release problem. • Software quality prediction.
![Page 35: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/35.jpg)
Where Are We?So far…
• Optimisation problems • Brute force • Hill climbing • Simulated annealing
Next class: surgery.
Please revise the lectures before the surgery!
35
![Page 36: Computational Intelligence and Software Engineering Lecture ...Simulated Annealing 14 Simulated Annealing (assuming maximisation) 1. current_solution = generate initial solution randomly](https://reader035.vdocuments.net/reader035/viewer/2022062508/602223a0ec13fb09001481dc/html5/thumbnails/36.jpg)
Further Reading
Stuart J. Russell, Peter Norvig, John F. Canny Artificial intelligence: a modern approach Section 4.1: Local Search Algorithms and Optimization Problems - Simulated Annealing Pearson Education 2014
36
http://readinglists.le.ac.uk/lists/D888DC7C-0042-C4A3-5673-2DF8E4DFE225.html