离散实验TSP问题2017

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设G=<V,E,W>,为一个n阶完全带权图Kn,各边的权非负, 且有的边的权可能为∞。求G中一条最短的哈密顿回路,这就 是货郎担问题的数学模型。

梦想不会辜负每一个努力的人
例 下图为4阶完全带权图K4。求出它的不同的哈密顿 回路,并指出最短的哈密顿回路。
2
带权图的说明
梦想不会辜负每一个努力的人
适应度(fitness):借鉴生物个体对环境的适应程度, 而对 所求解问题中的对象设计的一种表征优劣的测度。
适应度函数(fitness function):问题中的全体对象与其 适应度之间的一个对应关系, 即对象集合到适应度集合的一个 映射。 它一般是定义在论域空间上的一个实数值函数。
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
a 55
5b
e5
9
c9 d
c9 d
T中奇度点集V’={a,c,d,e},最小权匹配 M={cd,ae}。
从a出发:E回:aeadcba 得H圈:aedcba(36最优) b出发E回: baeadcb 得H圈:baedcb(36最优11)
TSP相关算法
梦想不会辜负每一个努力的人
3. 对所有i∈S,令w(i,k)=min(w(i,k),w(i,j)),转b
13
便宜算法
梦想不会辜负每一个努力的人
定理 设G中各边权值满足三角不等式,d0是最短H回 路,d是由便宜算法求出的回路,则d< 2d0。
14
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
遗传算法基本概念
1. 适应度与适应度函数
——变异率(mutation rate)是指发生变异的基因位数所占
全体染色体的基因总位数的比例,记为Pm,取值范围一般为
0.0001~0.1。由于在生物的繁衍进化过程中, 变异也是按一 定的概率发生的, 而且发生概率一般很小, 因此变异率也就 是变异概率。
基于遗传算法的随机优化搜索 基本遗传算法:
i
qi P(x j ) j 1
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
一个染色体xi被选中的次数, 也可以用下面的期望值e(xi)来
确定。
e(xi ) P(xi ) N
f (xi )
N
N
f (xj)
N
f (xi ) f (xi )
f (xj)/ N
f
(4-2)
j 1
j 1
点之前,一旦出现重复的顶点就跳过它走到下一个顶点(抄近 路法),直到访问完所有顶点为止,得H回路。作为近似解
5a5
12 b
8
e5
7 9
16 8
c9 d
7
TSP相关算法
5 12
b 7
9
梦想不会辜负每一个努力的人
a 5
8
e
5
16
8
c
9
d
从b出发:E回:bcbaeadab 得H圈:bcaedb(41) E回: baeadabcb 得H圈:baedcb(36最优)
——最大换代数就是算法中种群更新换代的上限, 它也是 算法终止的一个条件。
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
——交叉率[WTBZ](crossover rate)就是参加交叉运算的
染色体个数占全体染色体总数的比例,记为Pc,取值范围一般
为0.4~0.99。由于生物繁殖时染色体的交叉是按一定的概率 发生的, 因此参加交叉操作的染色体也有一定的比例, 而交 叉率也就是交叉概率。
最邻近法(P216)
1. 以v1为起点,形成初始路径P1=v1. 2. 若已访问了k个顶点,形成路径pk=v1v2…vk,下一步访问Pk之
外离vk最近的顶点。 3. 当访问完G中所有顶点后,回到v1得H回路。
5a5
12 b
8
e5
7 9
16 8
c9源自文库d
TSP问题
12 b 9
梦想不会辜负每一个努力的人
梦想不会辜负每一个努力的人
旅行商问题(货郎担问题P201)
给定图G=<V,E>,设W:E→R(R为实数集),对G中任意 的边e=(vi,vj),设W(e)=wij,称实数wij为边e上的权,称G 为带权图。G中各边的权之和称为G的权。
设有n个城市,城市之间均有道路,道路的长度均大于或等 于0,可能是∞(对应关联的城市之间无交通线)。一个旅 行商从某个城市出发,要经过每个城市一次且仅一次,最后 回到出发的城市,问他如何走才能使他走的路线最短? 这就是著名的旅行商问题或货郎担问题。(TSP问题) (Travelling Salesman Problem)
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
4. 遗传操作
关于染色体的运算: 选择-复制、交叉和变异,这三种运算被 称为遗传操作或遗传算子(genetic operator)。
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
选择-复制:模拟生物界优胜劣汰的自然选择法则的一种 染运算, 从种群中选择适应度较高的染色体进行复制,以生成下 一代种群。
3. 求G*中以某点v出发的欧拉回路E。
4. 从v出发沿E访问G*中各顶点,其原则是:在未访问完所有顶
点之前,一旦出现重复的顶点就跳过它走到下一个顶点(抄近 路法),直到访问完所有顶点为止,得H回路。作为近似解。
5a5
12 b
8
e5
7 9
16 8
c9 d
TSP相关算法
a
55
12 b
8
e
7 16
9
8
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
在算法中赌轮选择法可用下面的子过程来模拟:
① 在[0, 1]区间内产生一个均匀分布的伪随机数r。
② 若r≤q1,则染色体x1被选中。
③ 若qk-1<r≤qk(2≤k≤N), 则染色体xk被选中。
其中的qi称为染色体xi(i=1, 2, …, n)的积累概率, 其计算公式 为
5. 按选择概率P(xi)所决定的选中机会,每次从S中随机选定1 个染色体并将其复制,共做N次,然后将复制所得的N个染 色体组成群体S1;
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
6. 按交叉率Pc所决定的参加交叉的染色体数c,从S1中随机 确定c个染色体,配对进行交叉操作,并用产生的新染色 体代替原染色体,得群体S2;
其中f为种群S中全体染色体的平均适应度。
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
交叉 交叉 (crossover)亦称交换、交配或杂交,就是互
换两个染色体某些位上的基因。例如,设染色体s1=01001011, s2=10010101, 交换其后4位基因, 即
则得新串s1′=01000101,s2′=10011011。s1′和s2′可以看做是原染 色体s1和s2的子代染色体。
a
5
5
8
e
5
7
16
8
c
9
d
例14.12 abdeca (48,最坏情况) aedbca(41) baedcb (36,最好情况)
TSP相关算法
例:
00
梦想不会辜负每一个努力的人
TSP相关算法
梦想不会辜负每一个努力的人
最小生成树法(P218) 1. 求G的一棵最小生成树T。 2. 将T中各边均添加一条权值相同的平行边,得图G* 3. 求G*中以某点v出发的欧拉回路E。 4. 从v出发沿E访问G*中各顶点,其原则是:在未访问完所有顶
梦想不会辜负每一个努力的人
1. 在论域空间U上定义一个适应度函数f(x),给定种群规模N, 交叉率Pc和变异率Pm,代数T;
2. 随机产生U中的N个染色体s1, s2, …, sN,组成初始种群S={s1, s2, …, sN},置代数计数器t=1;
3. 计算S中每个染色体的适应度f ;
4. 若终止条件满足,则取S中适应度最大的染色体作为所求 结果,算法结束。
7. 按变异率Pm所决定的变异次数m,从S2中随机确定m个染 色体,分别进行变异操作,并用产生的新染色体代替原染 色体,得群体S3;
8. 将群体S3作为新一代种群,即用S3代替S,t=t+1,转步3;
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
例4.2 用遗传算法求解TSP。
可将一个合法的城市序列s=(c1, c2, …, cn, cn+1)(cn+1就是 c1)作为一个个体。这个序列中相邻两城之间的距离之和的倒 数就可作为相应个体s的适应度,适应度函数:
n阶完全带权图中共存在(n-1)!/2种不同的哈密顿 回路,经过比较,可找出最短哈密顿回路。
n=4时, 有3种不同哈密顿回路。 n=5时, 有12种, n=6时, 有60种, n=7时, 有360种,…, n=10时,有5×9!=1 814 400种,…。
3
TSP相关算法
梦想不会辜负每一个努力的人
8
TSP相关算法
梦想不会辜负每一个努力的人
定理14.16 设G中各边权值满足三角不等式,d0是最短H 回路,d是由最小生成树法求出的回路,则d< 2d0。
9
TSP相关算法
梦想不会辜负每一个努力的人
最小权匹配法(P219)
1. 求G的一棵最小生成树T。
2. 设T中奇度点集合为V’,求G[V’]的最小完美匹配M,令G*= T∪M
通常做法是, 对于一个规模为N的种群S,按每个染色体xi∈S 的选择概率P(xi)所决定的选中机会, 分N次从S中随机选定N个 染色体, 并进行复制。 这里的选择概率P(xi)的计算公式为
P(xi )
f (xi )
N
f (xj)
j 1
(4-1)
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
变异 变异(mutation)亦称突变,就是改变染色体某个(些)位 上的基因。例如,把染色体s=11001101的第三位上的0变为1, 则 得到新染色体s′=11101101。
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
4.2 基本遗传算法
遗传算法就是对种群中的染色体反复做三种遗传操作, 使 其朝着适应度增高的方向不断更新换代, 直至出现了适应度满 足目标条件的染色体为止。
定理14.17 设G中各边权值满足三角不等式,d0是最短H 回路,d是由最小生成树法求出的回路,则d< 1.5d0。
12
便宜算法
梦想不会辜负每一个努力的人
便宜算法:设顶点为1,2,…,n 1. 令S={2,3,…,n};w(1,1)=0;k=1;T=(1,1)
2. 令w(j,t)=min{w(i,k)|i∈S,k∈T} 对T中边(t,t1),(t,t2),若 w(j,t1)-w(t,t1)≤ w(j,t2)-w(t,t2) 则将j插到t,t1之间,否则插到t,t2之间,S=S-j,若S=,结束。
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
生成初始染色体种群 1
计算个体的适应度
否 是否最优解?
是 输出
选择与复制 交换 变异 1
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
在算法的具体步骤中, 还需给出若干控制参数, 如种群 规模、最大换代数、交叉率和变异率等等。
——种群规模就是种群的大小, 用染色体的个数表示。
f (s) n 1
d (ci , ci1)
i 1
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
编码需要保证城市序列合法。例如,对于5个城市的TSP, 我们用符号A、B、C、D、E代表相应的城市,用这5个符号 的序列表示可能解即染色体。
对染色体: s1=(A, C, B, E, D, A),s2=(A, E, D,C, B, A) 交换后三位,得
其中,f为适应度函数,f(xi)为xi的适应度。 适应度越高的染色体被随机选定的概率就越大, 被选中的次数 也就越多, 从而被复制的次数也就越多。
图 4-1 赌轮选择示例
基于遗传算法的随机优化搜索
梦想不会辜负每一个努力的人
上述按概率选择的方法可用一种称为赌轮的原理来实现。 即做一个单位圆, 然后按各个染色体的选择概率将圆面划分 为相应的扇形区域(如图4-1所示)。这样, 每次选择时先转动 轮盘, 当轮盘静止时,上方的指针所正对着的扇区即为选中的 扇区,从而相应的染色体即为所选定的染色体。 例如, 假设种 群S中有4个染色体: s1,s2, s3, s4,其选择概率依次为: 0.11, 0.45, 0.29, 0.15, 则它们在轮盘上所占的份额如图4-1中的各扇形 区域所示。
梦想不会辜负每一个努力的人
2. 染色体及其编码 染色体:问题中的个体对象。由若干基因组成的位串。 遗传算法中染色体一般用字符串表示, 而基因也就是字符串 中的一个个字符。 例如,假设数字9是某问题中的个体对象, 则我们就可以用它 的二进制数串1001作为它的染色体编码。
3. 种群
种群(population):模拟生物种群而由若干个染色体组成的 群体。
相关文档
最新文档