第四章模拟退火

60
1 第第第 第第第第

description

第四章模拟退火. 第四章 模拟退火. 一 . 前言 二 . 基本算法框架 三 . 算法举例 四 . 算法收敛性 分析. 一 . 前言. 算法 的提出 原始算法是由 Metropolis 等 (1953) 提出,但未引起反响; 1982 年 Kirkpatrick 等将其应用于组合优化,才得到广泛的应用 目的是为了克服优化过程中陷入局优和初值依赖等弊端 基本思想是模拟热力学中的退火过程. 一 . 前言. 金属退火过程 什么是退火 退火 是指将固体加热到足够高的温度,使分子呈随机排列状态,然后逐步降温使之冷却,最后分子以低能状态排列,固体达到某种稳定状态。. - PowerPoint PPT Presentation

Transcript of 第四章模拟退火

Page 1: 第四章模拟退火

1

第四章 模拟退火

Page 2: 第四章模拟退火

2

第四章 模拟退火

一 . 前言二 . 基本算法框架三 . 算法举例四 . 算法收敛性分析

Page 3: 第四章模拟退火

3

1. 算法的提出 原始算法是由 Metropolis 等 (1953) 提出,但未

引起反响; 1982 年 Kirkpatrick 等将其应用于组合优化,才得到广泛的应用

目的是为了克服优化过程中陷入局优和初值依赖等弊端

基本思想是模拟热力学中的退火过程

一 . 前言

Page 4: 第四章模拟退火

4

2. 金属退火过程 什么是退火 退火是指将固体加热到足够高的温度,使分子呈

随机排列状态,然后逐步降温使之冷却,最后分子以低能状态排列,固体达到某种稳定状态。

一 . 前言

Page 5: 第四章模拟退火

5

2. 金属退火过程 什么是退火 加温过程——增强粒子的热运动,消除系统原先

可能存在的非均匀态 等温过程——对于与环境换热而温度不变的封闭

系统,系统状态的自发变化总是朝自由能减少的方向进行,当自由能达到最小时,系统达到平衡态

冷却过程——使粒子热运动减弱并渐趋有序,系统能量逐渐下降,从而得到低能的晶体结构

一 . 导言

Page 6: 第四章模拟退火

6

2. 金属退火过程 什么是退火 退火

淬火

一 . 前言

高温 低温缓慢下降

高能状态 低能状态

高温 低温快速下降

高能状态 高能状态

Page 7: 第四章模拟退火

7

2. 金属退火过程 数学描述 设热力学系统 S 中有 n 个状态(有限且离散的),

其中状态 i 的能量为 Ei ,在温度 Tk 下,经一段时间达到热平衡,此时处在状态 i 的概率为:

则有如下关系: Ei↓→ Pi ↑ , Tk↓→ Pi ↓

一 . 前言

exp ii k k

k

EP T C T

如何确定 Ck?

Page 8: 第四章模拟退火

8

2. 金属退火过程 数学描述

一 . 前言

1 1

1

1

( ) 1 exp 1

1exp 1

exp

n nj

j k kkj j

nj

k k nk jj

kj

EP T C T

EC CT E

T

Page 9: 第四章模拟退火

9

2. 金属退火过程 数学描述 通过求 Ck ,获得 Bolzman 方程:

一 . 前言

1

exp

exp

i

ki k n

j

kj

ET

P TE

T

Page 10: 第四章模拟退火

10

2. 金属退火过程 Bolzman 方程① 同一温度下, S 处在能量小的状态要比处在

能量大的状态概率大

若存在 E1<E2 ,则在同一温度 Tk 下,有

故 P1(Tk)>P2(Tk)

一 . 前言

1

1 2 1

22

expexp( ) 1

exp

kkk

k kk

k

EC TP T E EEP T TC T

Page 11: 第四章模拟退火

11

2. 金属退火过程 Bolzman 方程② 若 i* 表示 S 中唯一的最低能量的状态, 是

关于温度 Tk 单调递减

对 Pi(Tk) 求对温度的导数,则

一 . 前言

* ( )kiP T

2

12

1

exp( )

( ) exp( )

exp( )

in

ji k ki j

n jk kjk

j k

EEP T T

E ET TE

TT

Page 12: 第四章模拟退火

12

2. 金属退火过程 Bolzman 方程

由于

且存在当 时,

一 . 前言

*

0ki

k

P T

T

2

2

1

exp( ) 0, exp( ) 0,exp( ) 0n

j jik

jk k k

E EET

T T T

*j i * 0jiE E

Page 13: 第四章模拟退火

13

2. 金属退火过程 Bolzman 方程③ 当 时,

同理,当 时,

一 . 前言

0kT * ( ) 1kiP T

*

*

*

1 1

exp1( )

exp exp

i

k

k ni nj j i

kj j k

ET

P TE E E

T T

0kT *( )k iE T E

Page 14: 第四章模拟退火

14

2. 金属退火过程 温度 Tk 对 的影响① 当 Tk 很大时,

② 当 时,

一 . 前言

( )i kP T 1

i kP T n0i kE T

各状态的概率几乎相等

0kT i kE T

与 的小差别带来 和 的巨大差别iE jE ( )i kP T ( )j kP T

Page 15: 第四章模拟退火

15

2. 金属退火过程 温度 Tk 对 的影响例:

当 时

一 . 前言

( )i kP T90iE 100jE

100kT

90

100

100

100

0.406 0.4061

0.367 0.367i k k k

j k kk

P T C e C

P T CC e

Page 16: 第四章模拟退火

16

2. 金属退火过程 温度 Tk 对 的影响例:

当 时

此时

一 . 前言

( )i kP T90iE 100jE

1kT

40

44

8.194 1020000

3.72 10i k k

j k k

P T C

P T C

i k j k i kP T P T P T

温度趋于 0 时,以概率 1 趋于最小能量状态

Page 17: 第四章模拟退火

17

能量越低越稳定!!! —— 自然界的普遍规律

Page 18: 第四章模拟退火

18

3. 组合优化与退火 Metropolis 准则—以概率接受新状态 若在温度 Tk ,当前状态 i → 新状态 j 若 Ej<Ei ,则接受 j 为当前状态 否则,若概率 p=exp[-(Ej-Ei)/ Tk ] 大于 [0,1) 区

间的随机数,则仍接受状态 j 为当前状态;若不成立则保留状态 i 为当前状态

一 . 前言

在高温下,可接受与当前状态能量差较大的新状态在低温下,只接受与当前状态能量差较小的新状态

Page 19: 第四章模拟退火

19

3. 组合优化与退火

一 . 前言

组合优化问题 物理退火解 状态

目标函数 能量函数

最优解 最低能量状态

设定初始高温 加温过程

基于 Metropolis 准则的搜索 等温过程

温度参数的下降 冷却过程

Page 20: 第四章模拟退火

20

1. 构成要素 解的表达与邻域移动方式同 TS

邻域解的产生在当前解的邻域结构内以一定概率方式(均匀分布、正态分布、指数分布等)产生

选择策略一般采用 min[1,exp(-∆f/t)]

二 . 基本算法框架

Page 21: 第四章模拟退火

21

1. 构成要素 初始温度① 均匀抽样一组状态,以各状态目标值的方差

为初温② 随机产生一组状态,确定两两状态间的最大

目标值差,根据差值,利用一定的函数确定初温

③ 利用经验公式

二 . 基本算法框架

实验表明:初温越大,获得高质量解的机率越大,但花费较多的计算时间

Page 22: 第四章模拟退火

22

1. 构成要素 降温函数① ,其中

二 . 基本算法框架

优点:简单易行,很美丽的方法1k kT T r (0.95 0.99)r

1k kT T T

Page 23: 第四章模拟退火

23

1. 构成要素 热平衡条件Metropolis抽样稳定准则① 设置内循环迭代次数② 检验目标函数的均值是否稳定③ 连续若干步的目标值变化较小

停止准则① 设置外循环迭代次数② 设置终止温度的阈值③ 算法搜索到的最优值连续若干步保持不变

二 . 基本算法框架

Page 24: 第四章模拟退火

24

2. 算法流程Step 1

选一个初始点 i( ) ,给定初始温度 ,终止温度 ,令迭代指标 , ;

Step 2

随机产生一个邻域解 ,计算目标值增量 ;

二 . 基本算法框架

i S

注:选择 时,要足够高,使

0TfT 0k 0kT T

0T 0i kE T

( )j N i f f j f i

Page 25: 第四章模拟退火

25

2. 算法流程Step 3

若 ,令 i=j ; (j 比 i好,无条件转移 )

否则产生 ,若 ,则令 i=j ; (i 比 j好,有条件转移 )

Step 4

若达到热平衡(内循环停止准则),转 Step 5 ;否则,转 Step 2 ;

二 . 基本算法框架

0f (0,1)U exp( )kf T

注: 高时,广域搜索; 低时,局域搜索kT kT

Page 26: 第四章模拟退火

26

2. 算法流程Step 5

若 k=k+1 ,更新 ,若 (外循环停止准则),则停止;否则,转 Step 2 。

二 . 基本算法框架

kT k fT T

Page 27: 第四章模拟退火

27

3. 算法伪码图

二 . 基本算法框架

Generate an initial solution s;

Initialize the temperature T;

while the stop condition is not met do

repeat

Select s’ ∈N(s) randomly;

if f(s’)<=f(s) then

s←s’;

else

s←s’ with a probability p(T,f(s’),f(s));

endif

until the “thermodynamic equilibrium” condition is met

Decrease T;

endwhile

Page 28: 第四章模拟退火

28

4. SA 的两种变型

二 . 基本算法框架

Generate an initial solution s;

Initialize the threshold T;

repeat

repeat

Select s’ ∈N(s) randomly;

Calculate ⊿E=f(s’)-f(s);

if ⊿E<Ec then

s←s’;

Ec←Ec-⊿E;

endif

until the “thermodynamic equilibrium” condition is met

Decrease Ec;

untile the stop condition is met

MA:Microcanonic annealing

Page 29: 第四章模拟退火

29

4. SA 的两种变型

二 . 基本算法框架

Generate an initial solution s;

Initialize the kinetric energy Ec;

repeat

repeat

Select s’ ∈N(s) randomly;

Calculate ⊿f=f(s’)-f(s);

if ⊿f<T then

s←s’;

endif

until the “thermodynamic equilibrium” condition is met

Decrease T;

untile the stop condition is met

TA:Threshold accepting method

Page 30: 第四章模拟退火

30

作 业

分析 SA与 MA和 TA的异同点。

Page 31: 第四章模拟退火

31

1. 问题提出单机极小化总流水时间的排序问题四个工作:

求使 的最优顺序

三 . 算法举例

1 2 3 48, 18, 5, 15P P P P

4

1

min ii

F

Page 32: 第四章模拟退火

32

1. 问题提出

预备知识:按 SPT 准则,最优顺序为 3-1-4-2

三 . 算法举例

1 1

2 1 2

3 1 2 3

4 1 2 3 4

F P

F P P

F P P P

F P P P P

1 2 3 4

1 2 3 4

4

3

2

1

4 3 2 1

4 5 3 8 2 15 1 18

92

F P P P P

P P P P

Page 33: 第四章模拟退火

33

2. 算法设计 编码方式:顺序编码 初始解的产生:随机产生,如 1-4-2-3 邻域移动方式: 2-OPT ,即两两交换 初始温度 终止温度 降温函数 内循环次数

三 . 算法举例

0 100T 60fT

1k kT T T 20T ( ) 3kn T

Page 34: 第四章模拟退火

34

初始解: i=1-4-2-3

(1)

① j=1-3-2-4

② j=4-3-2-1

③ j=4-2-3-1注释:1. ①无条件转移;2. ②③为有条件转移;3. 在②③中,虽然目标值变坏,但搜索范围变大;4. 是随机产生的

三 . 算法举例

118f i

98 20 f j f i j

119 0.8106 0.7414 k

fTf j e i j

132 0.8781 0.3991 k

fTf j e i j

100kT

Page 35: 第四章模拟退火

35

(2)

① j=4-2-1-3

② j=4-3-1-2

③ j=4-2-3-1注释:1. ①有条件转移;2. ②为无条件转移;3. 在③中,停在 4-3-1-2 状态,目标值仍为 109

三 . 算法举例

80kT

135 0.9632 0.3413 k

fTf j e i j

109 26 f j f i j

119 0.8825 0.9286 k

fTf j e i i

Page 36: 第四章模拟退火

36

(3)

③注释:1. ① ②无条件转移;2. 在③中,停在 3-1-4-2 状态,目标值仍为 92 ;

三 . 算法举例

60

1 3 4 2 95 24

3 1 4 2 92 3

2 1 4 3 131 0.5220 0.7105 k

k

fT

T

j f j f i j

j f j f i j

j f j e i i

SA没有历史最优,不会终止在最优解,故算法一定要保持历史最优

Page 37: 第四章模拟退火

37

1. Markov 过程的基本概念例:青蛙在 3块石头上随机跳动,行动的特点是无记忆性

四 . 算法收敛性分析

1/3

1/4

1/3 1/31/4

1/21/4

1/4

1/2

Page 38: 第四章模拟退火

38

1. Markov 过程的基本概念 状态:处于系统中的一种特定状况的表达

状态转移概率:从状态 i 转移到状态 j 的可能性

无后效性:到一个状态后,决策只与本状态有关,与以前的历史状态无关

四 . 算法收敛性分析

Page 39: 第四章模拟退火

39

1. Markov 过程的基本概念 以青蛙跳动为例说明状态转移概率用石头唯一的表达青蛙所处的状态,假设青蛙跳动具有无后效应的特点。

四 . 算法收敛性分析

1 1 13 3 3

1 1 12 4 4

1 1 14 2 4

P

青蛙跳动图示

状态转移概率矩阵1/3

1/4

1/3 1/31/4

1/21/4

1/4

1/2

Page 40: 第四章模拟退火

40

1. Markov 过程的基本概念 以青蛙跳动为例说明状态转移概率 表示 t 时刻青蛙处在各状态的概率分布向量, 是行向量,在 t+1 时刻有:

若 ,则

四 . 算法收敛性分析

1 2, , , nt t t t t

1t t P

0 [1,0,0]

1 1 11 0 [ , , ]

3 3 3P

2 1 ...P

Page 41: 第四章模拟退火

41

1. Markov 过程的基本概念 以青蛙跳动为例说明状态转移概率假设系统在 t+1 时达到稳态,则

故 存在唯一解

四 . 算法收敛性分析

lim 1 limt t

t t

1t t P P

1

1n

ii

1 2 1 2

1 2

[ , , , ] [ , , , ]

1n n

n

P

Page 42: 第四章模拟退火

42

1. Markov 过程的基本概念 以青蛙跳动为例说明状态转移概率在上面的小例子中解方程组:

可得结果

可见系统达到稳态时,青蛙是在第三块石头上的机会多一些

四 . 算法收敛性分析

1

1n

ii

t t P

1657

2057

2157

Page 43: 第四章模拟退火

43

2. SA 的 Markov 描述 问题 , ,S 是有限集,设 (集 S 中元素个数为 N) ,将状态按照目标值进行升序编号,记

四 . 算法收敛性分析

min f x x S | |S N

1 2 nf x f x f x

Page 44: 第四章模拟退火

44

2. SA 的 Markov 描述 状态转移概率设 为 i 选 j 为邻域点时, 的转移概率

无条件转移 有条件转移

四 . 算法收敛性分析

ija i j

1 ,

0 1 ij k

ij k

a T f j f ii j

a Ti j

,,,,

Page 45: 第四章模拟退火

45

2. SA 的 Markov 描述 状态转移概率设 是系统处于状态 i 时选择 j 为邻域移动点的概率, 为状态 i 的邻域点的个数,有则状态 i 到状态 j 的转移概率为

四 . 算法收敛性分析

ijg

ijN 1

ijgN i

,

1 ,ij k ij

ij kik k ik

k i

a T g i jp T a T g i j

Page 46: 第四章模拟退火

46

2. SA 的 Markov 描述 状态转移概率状态转移矩阵为:

分两种情况讨论:

四 . 算法收敛性分析

12 13 1

21 23 2

1 2 3

1

1( )

1

N

Nk

N N N

p p p

p p pP T

p p p

Page 47: 第四章模拟退火

47

2. SA 的 Markov 描述 状态转移概率I. 当 时若 i<j ,则

若 i>j ,则

四 . 算法收敛性分析

kT ( ) ( )

lim lim exp( ) 1k k

ijT T

k

f j f ia

T

1ija

1

1ijgN

1,

11 0,

ij k ij

ij k

ik k ikk i

a T g i jNp Ti ja T g

Page 48: 第四章模拟退火

48

2. SA 的 Markov 描述 状态转移概率

四 . 算法收敛性分析

10

10

lim ( )

10

1

kk

T

N

P T

N

Page 49: 第四章模拟退火

49

2. SA 的 Markov 描述 状态转移概率II. 当 时若 i<j ,则

若 i>j ,则

四 . 算法收敛性分析

0kT

0 0

( ) ( )lim lim exp( ) 0k k

ijT Tk

f j f ia

T

1ija

1

1

1 ,

0 0,

1 1 ,

ij k ij ij ij

ij k ij k ij ij

i

ik k ik ikk i k

a T g g g i j

p T a T g g i j

a T g g i j

Page 50: 第四章模拟退火

50

2. SA 的 Markov 描述 状态转移概率

四 . 算法收敛性分析

21

31 320

1 2 3

1 0

1

lim ( ) 1

1

kkT

N N N

g

P T g g

g g g

状态 1 是 “捕捉的”(任何状态到 1 状态后都无法转出)即青蛙跳到石头 1上无法跳出

Page 51: 第四章模拟退火

51

3. SA 的收敛性证明 引理当 时,系统达到稳态时的状态概率分布向量

证明:当系统达到稳态时,存在

四 . 算法收敛性分析

0kT

1 0 0 0

1 2 1 2N N P

Page 52: 第四章模拟退火

52

3. SA 的收敛性证明 引理证明:

四 . 算法收敛性分析

21

31 320

1 2 3

1 0

1

lim ( ) 1

1

kkT

N N N

g

P T g g

g g g

Page 53: 第四章模拟退火

53

3. SA 的收敛性证明 引理证明:

四 . 算法收敛性分析

1 2 1 2

21

31 32

1 2 3

1 0

1

1

1

N N

N N N

g

g g

g g g

Page 54: 第四章模拟退火

54

3. SA 的收敛性证明 引理证明:

又 ,故当 时,当 时, 得证。

四 . 算法收敛性分析

1 1 2 21 1

1 1 12

12

0

N N

N

i ii

N

i ii

g g

g

g

0i 1 0ig 2, ,i N 1 0 0i ig

1i 1 1

Page 55: 第四章模拟退火

55

3. SA 的收敛性证明 定理定理: G 对称,当达到热平衡时,对所有 有:

注释: 表示状态概率分布向量 表示系统处在状态 1 的概率 表示表示从 1移向状态 i 的概率

四 . 算法收敛性分析

0kT

1 12 13 1 1, , , ,k k k k N kT T a T a T a T

kT 1 kT 1i ka T

Page 56: 第四章模拟退火

56

3. SA 的收敛性证明 定理证明:在温度 Tk 下达到热平衡时,有

当 i=1 时,

又故

四 . 算法收敛性分析

( ) ( )i k ij k j k ji kT p T T p T

1 1 1( ) ( )k j k j k j kT p T T p T

1 1 1 1 1( ) ( ) ( ) ( )k j k j k j k j k j kT g T a T T g T a T

1 1( ) ( )j k j kg T g T 1( ) 1j ka T

1 1 ( )j k k j kT T a T

Page 57: 第四章模拟退火

57

3. SA 的收敛性证明 定理证明:因此,对于所有 ,当达到热平衡时

得证。

四 . 算法收敛性分析

0kT

1 2

1 1 12 1 1

1 12 1

[ , , , ]

[ , ( ), , ( )]

[1, ( ), , ( )]

k k k N k

k k k k N k

k k N k

T T T T

T T a T T a T

T a T a T

Page 58: 第四章模拟退火

58

3. SA 的收敛性证明

四 . 算法收敛性分析

由以上定理可知,当 Tk 趋近于 0 时,对于所有状态

i>1 ,有 趋近于 0 , 趋近于 1 ,即 SA 对应

的 Markov 过程将以概率 1 收敛于状态 1 。

1 ( )i ka T 1( )kT

Page 59: 第四章模拟退火

59

4. SA实现全局收敛的条件

状态可达

初值鲁棒

极限分布的存在

四 . 算法收敛性分析

Page 60: 第四章模拟退火

60

实 验工作指派问题

n个工作可以由 n个工人分别完成。工人 i完成工作 j的时间为dij ,问如何安排可是总的工作时间达到最小。试按 SA思想设计一个该问题的求解算法,并利用计算机语言实现设计的算法。