W第七章高级搜索

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2, 1, 4, 3), (2, 3, 1, 4), (2, 4, 3, 1)}
例:旅行商问题
• 用一个城市的序列表示一个可能的解。 • 通过交换两个城市的位置获取S的邻居 • 例:简单交换方法
设S = (x1, x2, …xi-1, xi, xi+1, …, xj-1, xj, xj+1, …, xn) 则通过交换xi和xj两个城市的位置可以得到S的一
P=N(xb); 2,如果不满足结束条件,则 3,Begin 4, 选择P的一个子集P',xn为P'中的最优解 5, 如果f(xn) < f(xb),则xb = xn,P = N(xb),
转2;f(x)为指标函数。 6, 否则P = P – P',转2。 7,End 8,输出计算结果 9,结束
例:5城市旅行商问题
O(log n), O(n), O(n log n), O(n2 ), O(2n ), O(nlog n ), O(n!), O(nn )
时间复杂性函数比较(10亿次/秒)
输入量n
复杂性函数
n
10 10ns
20 20ns
30 30ns
40 40ns
100 100ns
nlogn n2 2n n!
10ns 26.0ns 44.3ns
第三次循环
从P中选择一个元素, 假设xn = (a, e, c, d, b), f(xn) = 44, f(xn) > f(xb), P = P – {xn}
= {(a, b, d, c, e), (a, b, e, d, c), (a, b, c, e, d)}
设:S = (x1, x2, …xi-1, xi, xi+1, …, xj-1, xj, xj+1, …, xn)
则:S' = (x1, x2, …xi-1, xi, xj-1, x j-2…, xi+1, xj, xj+1, …, xn)
xi-1 xi
xi+1
xi-1 xi
xi+1
x2 x1 xn
• 如四皇后问题的一个解:S=(2, 4, 1, 3)
Q Q
Q Q
• 定义映射N为棋盘上任意两个皇后的所在 行或列进行交换,即S中任意两个元素交 换位置。
• 例:当S = (2, 4, 1, 3)时,其邻域为: • N(S) = {(4, 2, 1, 3), (1, 4, 2, 3), (3, 4, 1, 2),
xj-1 xj xj+1
x2 x1 xn
xj-1 xj xj+1
7.2 局部搜索算法
• 基本思想:在搜索过程中,始终向着离 目标最接近的方向搜索。
• 目标可以是最大值,也可以是最小值。 • 在后面的介绍中,如果没有特殊说明,
均假定是最小值。
局部搜索算法(Local Search) 1,随机的选择一个初始的可能解x0∈D,xb=x0,
个邻居: S' = (x1, x2, …xi-1, xj, xi+1, …, xj-1, xi, xj+1, …, xn)
xi-1 xi
xi+1
xi-1 xi
xi+1
x2 x1 xn
xj-1 xj xj+1
x2 x1 xn
xj-1 xj xj+1
• 例:逆序交换方法
设xi、xj是选取的两个城市,所谓的逆序交 换方式是指,通过逆转xi、xj两个城市之 间的城市次序来得到S的邻居。
第二次循环
从P中选择一个元素, 假设xn = (a, d, c, b, e), f(xn) = 45, f(xn) > f(xb), P = P – {xn}
= {(a, e, c, d, b), (a, b, d, c, e), (a, b, e, d, c), (a, b, c, e, d)}
邻域的概念
• 邻域,简单的说就是一个点附近的其他 点的集合。
• 在距离空间,邻域就是以某一点为中心 的圆。
• 组合优化问题的定义: • 设D是问题的定义域,若存在一个映射N,
使得:
N :S D N(S) 2D
则称N(S)为S的邻域。
பைடு நூலகம்
例:皇后问题
• S={Si}表示一个可能解,其中Si表示在第 i行,第Si列有一个皇后。
第七章 高级搜索
主要内容
• 局部搜索方法 • 模拟退火算法 • 遗传算法
7.1 基本概念
优化与组合优化问题
• 很多问题属于优化问题,或者可以转化 为优化问题
• 如TSP问题,皇后问题
优化问题的描述
• 设x是决策变量,D是x的定义域,f(x)是 指标函数,g(x)是约束条件集合。则优化 问题可以表示为,求解满足g(x)的f(x)最 小值问题。
64.1ns
200ns
100ns 400ns 900ns
1.6us
10us
1.0us 1.0ms
1.1s
3.6ms
77.1年
8.4×1013 世纪
18.3min
2.6×1029 世纪
4.0世纪
3.0×10139 世纪
一些难的组合优化问题
• 旅行商问题 • 背包问题 • 装箱问题 • ...
• 寻求在可以接受的时间内得到满意解的 方法
min f (x) | g(x)
xD
• 如果在定义域D上,满足条件g(x)的解是 有限的,则优化问题称为组合优化问题。
算法的时间复杂度
• 对于组合优化问题,由于其可能的解是 有限的,当问题的规模比较小时,总可 以通过枚举的方法获得问题的最优解, 但当问题的规模比较大时,就难于求解 了。
• 常用的算法复杂度函数
7 A●
B ●
7 10
6● C5
10
10
13 9
● D
●E 6
设初始的可能解:x0 = (a, b, c, d, e) f(xb) = f(x0) = 38
通过交换两个城市获得领域
P = {(a, c, b, d, e), (a, d, c, b, e), (a, e, c, d, b), (a, b, d, c, e), (a, b, e, d, c), (a, b, c, e, d)}
设每次随机从P中选择一个邻居。
第一次循环
从P中选择一个元素, 假设xn = (a, c, b, d, e), f(xn) = 42, f(xn) > f(xb), P = P – {xn}
= {(a, d, c, b, e), (a, e, c, d, b), (a, b, d, c, e), (a, b, e, d, c), (a, b, c, e, d)}
相关文档
最新文档