遗传,模拟退火,蚁群三个算法求解TSP的对比

合集下载

几种M-TSP问题的解法

几种M-TSP问题的解法

之差越小(定义为级差)。但是,仅仅考虑级差是不够的,因为级差的大小与各巡视组所走
路程总和(所用总时间)有关,在考虑均衡系数时,应该考虑到各巡视组所走路程总和(所
-2-

用总时间)这一因素,总路程(总时间)越大所允许的级差应该可以大一些,于是在均衡系
数的分母中引入了总路程(总时间)的均值来平衡级差与总路程的关系。可见,均衡系数越
分组 第1组 第2组 第3组
表 1 遗传—蚁群算法得到的最佳巡视路线
巡视路线
乡镇数
村数
O-1-B-34-35-32-31-33-A-R-29-Q-30-2
4
12
8-27-24-23-21-25-M-O
O-2-5-6-7-E-9-F-10-12-H-14-13-G-11-
5
11
8-4-D-3-2-O
O-P-26-N-23-22-K-17-16-I-15-18-J-19-
-4-

基于以上分析,选择个体各个TSP回路路程中的最大值作为返回值,根据其中返回值大 小分配适应度值,返回值小的适应度大。
3.遗传操作 (1)选择 选择时以个体的适应度决定选择那个个体,以转轮法选择,对于适应度大的个 体被选中的可能性也越大。 (2)交叉 按照给定的交叉率,进行交叉操作。交叉时对从种群中选择的2个个体作为母 体进行交叉操作。 (3)变异 为了保持群体的多样性,避免遗传寻优陷人局部最优,可以对种群中的个体以 给定的变异率进行变异操作。变异操作就是对选中的母体上的某个基因的值进行随机改变, 这意味着被改变的基因对应的顶点被划人到另外一个回路中,而原来回路中不再包含该顶 点。设置变异率为0.007。 上面的遗传操作将产生新的个体,为保持每一代种群中个体的规模,在完成一代操作时, 要根据适应度的大小去掉适应度小的个体。这体现了遗传算法的适者生存的思想。 在以上算法的基础上,遗传代数设为 200 代,利用 Matlab 编程实现,得到了总路程尽 可能最短且各组尽可能均衡的巡视路线如表 1 所示。在最优的个体中,寻找最佳巡视路线的 蚁群算法的寻优过程如图 2 所示

TSP的几种求解方法及其优缺点

TSP的几种求解方法及其优缺点

TSP的几种求解方法及其优缺点一、什么是TSP问题旅行商问题,简称TSP,即给定n个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路线。

其图论描述为:给定图G=(V,A),其中V为顶点集,A 为各顶点相互连接组成的边集,设D=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,要求确定一条长度最短的Hamilton回路,即遍历所有顶点当且仅当一次的最短距离。

旅行商问题可分为如下两类:1)对称旅行商问题(dij=dji,Πi,j=1,2,3,⋯,n);2)非对称旅行商问题(dij≠dji,ϖi,j=1,2,3,⋯,n)。

非对称旅行商问题较难求解,我们一般是探讨对称旅行商问题的求解。

若对于城市V={v1,v2,v3,⋯,v n}的一个访问顺序为T={t1,t2,t3,⋯,t i,⋯,t n},其中t i∈V(i=1,2,3,⋯,n),且记t n+1=t1,则旅行商问题的数学模型为:minL=。

TSP是一个典型的组合优化问题,并且是一个NP完全难题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准。

因此,快速、有效地解决TSP有着重要的理论价值和极高的实际应用价值。

二、主要求解方法基于TSP的问题特性,构造型算法成为最先开发的求解算法,如最近邻点、最近合并、最近插入、最远插入、最近添加、贪婪插入等。

但是,由于构造型算法优化质量较差,迄今为止已开发了许多性能较好的改进型搜索算法,主要有:1)模拟退火算法2)禁忌搜索算法3)Hopfield神经网络优化算法4)蚁群算法5)遗传算法6)混合优化策略2.1模拟退火算法方法1)编码选择:采用描述TSP解的最常用的一种策略——路径编码。

2)SA状态产生函数的设计:对于基于路径编码的SA状态产生函数操作,可将其设计为:①互换操作(SWAP);②逆序操作(INV);③插入操作(INS)。

3)SA状态接受函数的设计:min{1,exp(-△/t)}>random[0,1]准则是作为接受新状态的条件最常用的方案,其中△为新旧状态的目标值差,t为”温度”。

用蚁群算法解决TSP问题

用蚁群算法解决TSP问题

用蚁群算法解决TSP 问题一、引言蚁群算法是一种受自然界生物行为启发而产生的“自然”算法,产生于对蚂蚁行为的研究。

蚁群中的蚂蚁以“信息素”为媒介,间接异步的相互联系。

蚂蚁在行动中,会在他们经过的地方留下一些化学物质,称为“信息素”。

这些物质能被同一种群众后来的蚂蚁感受到,并作为一种信号影响后者的行动,具体表现在后到的蚂蚁选择有这些物质的路径的可能性比选择没有这些物质的路径的可能性大的多。

后者留下的信息素会对原有的信息素进行加强,并循环下去。

这样,经过蚂蚁多的路径,后到蚂蚁选择这条路径的可能性就越来越大。

由于在一定的时间内,越短的路径会被越多的蚂蚁访问,因而积累的信息素就越多,在下一个时间内被其他的蚂蚁选中的可能性也越大。

这个过程会持续到所有的蚂蚁都走到最短的那一条路径为止。

二、关键技术(1) 解的表达形式在应用蚁群优化算法时,只需要建立一个虚拟的始终点,相当于蚁群的巢穴和食物所在地,这样一个所经过城市的路径的排列就构成了一个解;(2) 信息素的记忆和更新在算法开始时,由于从来没有蚂蚁去寻找过路径,因此可以认为是没有任何先验信息,即每条路上的信息相等。

客观地将,信息素应该都为0,但是由于在蚁群算法中,信息素决定了蚂蚁选择这条路径的概率,因此可以认为初始信息素矩阵为:1/(*(1))0ij N N p -⎧=⎨⎩i j i j ≠=其中N 为城市数 当算法运行过程中,每次放出m 支蚂蚁,每只蚂蚁按照信息素选择路径,将其中路径最短的记录下来,对这条最短路进行信息素的加强;而对于其他路径,因为信息素的挥发,信息素浓度将会降低,更新后的信息素矩阵为: 11(1)//(1)/k ij k ij k ij p N p p ρρρ--⎧-+⎪=⎨-⎪⎩i j i j →→经过路径不经过路径其中N 为城市数,ρ为挥发系数 (3) 蚁群的规模在一般应用中,蚁群中蚂蚁的个数m 是固定数,不超过TSP 图的节点数。

三、算法实现步骤1 设定蚁群规模m ,计算次数n ,挥发系数ρ,初始化信息素矩阵,设定变量best =+∞记录全局最优解;步骤2 若n =0,推出并输出结果;否则n=n-1,分别放出m 只蚂蚁,按照信息素概率选择路径,并找出m 条路径中的当代最优路径cubest ; 步骤3 根据当代最有路径更新信息素;步骤4 如果cubest<best ,best=cubest ,执行步骤2;否则直接执行步骤2;四、结果及分析通过五个城市节点的TSP 问题的求解,其城市间的距离矩阵为:01015621008139158020156132005291550⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭蚁群算法找到的最优路径为A C B D E →→→→,总路程为43;通过试验结果发现,对于小规模的TSP问题,蚁群算法和禁忌搜索、模拟退火算法的计算结果相似,而且耗时很短,因此该算法是合理的。

TSP问题的几种解法对比

TSP问题的几种解法对比

城市旅行问题之路程短摘要城市旅行问题即旅行商(TSP)问题,要从图G的所有周游路线中求取最小成本的周游路线,而从初始点出发的周游路线一共有(n-1)!条,即等于除初始结点外的n-1个结点的排列数,因此旅行商问题是一个排列问题。

排列问题比子集合的选择问题通常要难于求解得多,这是因为n个物体有n!种排列,只有子集合(n!>O( n2))。

通过枚举(n-1)!条周游路线,从中找出一条具有最小成本的周游路线的算法,其计算时间显然为O(n!)。

这种枚举法运算量相当庞大,随着城市数量呈指数增长。

为此,我们对比应用随机探索的模拟退火算法,线性规划和蚁群算法三种方法:模拟退火算法,利用物理退火达到平衡态时的统计思想,建立数学模型,编写该算法的MATLAB程序,进行求解,得出最短旅行的最短距离为422.13;对TSP的约束条件和目标函数编写LINGO程序,经过多次迭代,得出最短旅行的最短距离也为422.13;蚁群算法:基于自然界蚂蚁觅食的最短路径原理,建立模型,通过MATLAB程序,得出最短旅行距离为427.8971。

关键词模拟退火算法线性规划蚁群算法一.问题重述一个人要到30个不同的城市游玩,每两个城市i和j之间的距离为d ij,如何选择一条路径使得此人走遍所有城市后又回到起点,要求所走路径最短。

二.符号说明三.问题分析与处理便于我们说明和解决问题,先将题中给出的城市编号:表一30座城市的坐标3.1模拟退火方法这是一个典型的TSP组合优化问题[1],并且是一个N-P难问题。

传统的解决此类问题的方法包括:分枝定界法、线性规划法和动态规划法等等。

随着人工智能的发展,一些智能优化的算法逐渐产生,这其中模拟退火算法因具有高效、稳定、通用、灵活的优点备受专家和学者的青睐。

将模拟退火算法引入STP问题求解,可以有效的避免在求解过程中陷入局部最优。

下面就是我们用模拟退火算法具体解决这个问题。

算法设计步骤:(1)问题的解空间和初始值城市旅行问题的解空间S 是遍访36个城市恰好一次的所有回路,是所有城市排列的集合。

求解TSP问题的几种算法比较

求解TSP问题的几种算法比较

求解TSP问题的几种算法比较侯淑静【摘要】The traveling salesman problem (TSP) is an important problem for the classical discrete optimization, which is very important to study the solving algorithm. After the introduction of the greedy algorithm, taboo search algorithm, simulated annealing algorithm, genetic algorithm, the author put forward the corresponding algorithm. Aiming at the four typical examples in the test base, we realized implementation of these algorithms with procedures, and the running time and the results of these algorithms are compared. The results show that the greedy algorithm can draw the solution in a short time, the taboo search algorithm and genetic algorithm have the same effect, and the results of simulated annealing algorithm is better than those of genetic algorithm.%旅行售货商问题(简称TSP )是离散优化的一个经典的重要问题,对求解算法的研究非常重要。

物流网络优化中的遗传算法与模拟退火算法性能比较分析

物流网络优化中的遗传算法与模拟退火算法性能比较分析

物流网络优化中的遗传算法与模拟退火算法性能比较分析物流网络优化是当今物流行业中关键的问题之一。

如何通过优化物流网络,提高货物的运输效率和降低成本,一直是物流行业从业者努力解决的难题。

而在物流网络优化中,遗传算法和模拟退火算法被广泛应用于解决复杂的物流网络优化问题。

本文将对这两种算法的性能进行比较分析,以评估它们在物流网络优化中的适用性和优劣。

首先,我们来了解一下遗传算法和模拟退火算法的基本原理。

遗传算法是受到自然进化原理启发的一种优化算法。

它通过模拟生物进化的过程,使用遗传操作(如选择、交叉和变异)来搜索最优解。

而模拟退火算法则是模拟金属热退火过程推导而来的全局优化算法,通过模拟随机的粒子运动来寻找全局最优解。

在物流网络优化中,遗传算法通常用于解决TSP(旅行商问题)和VRP(车辆路径问题)等NP-hard问题。

遗传算法通过建立一个基因编码方案,并运用适应度函数来评估解的质量。

接着,通过选择、交叉和变异操作,生成新的解,并用新解替换旧的解。

这个过程将不断迭代,直到满足停止条件。

相对而言,模拟退火算法适用于连续优化问题,比如最小化总运输时间、最小化总运输成本等。

模拟退火算法通过引入一个控制参数,控制粒子跳出局部最优解的概率,以便更好地搜索全局最优解。

在搜索过程中,模拟退火算法接受任何比当前解更好的解,并且还以一定的概率接受比当前解更差的解,以避免陷入局部最优解。

接下来,我们将对遗传算法和模拟退火算法在物流网络优化中的性能进行比较分析。

首先是算法的搜索能力。

遗传算法通过基因编码和遗传操作,能够搜索到较好的解,尤其是在解空间较大且多峰值的问题中。

而模拟退火算法作为一种全局搜索算法,能够在搜索过程中接受一定概率的劣解,从而有机会跳出局部最优解,但相对于遗传算法,其搜索能力稍弱一些。

其次是算法的收敛速度。

遗传算法需要进行多次迭代和大量的选择、交叉和变异操作,因此收敛速度相对较慢。

而模拟退火算法通过不断调整控制参数,根据一定的概率接受劣解,能够更快地朝着全局最优解方向收敛。

TSP的几种求解方法及其优缺点

TSP的几种求解方法及其优缺点

v1.0 可编辑可修改TSP的几种求解方法及其优缺点一、什么是TSP问题旅行商问题,简称TSP,即给定n个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路线。

其图论描述为:给定图G=(V,A),其中V为顶点集,A为各顶点相互连接组成的边集,设D=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,要求确定一条长度最短的Hamilton回路,即遍历所有顶点当且仅当一次的最短距离。

旅行商问题可分为如下两类:1)对称旅行商问题(dij=dji,Πi,j=1,2,3,⋯,n);2)非对称旅行商问题(dij≠dji,ϖi,j=1,2,3,⋯,n)。

非对称旅行商问题较难求解,我们一般是探讨对称旅行商问题的求解。

若对于城市V={v1,v2,v3,⋯,v n}的一个访问顺序为T={t1,t2,t3,⋯,t i,⋯,t n},其中t i∈V(i=1,2,3,⋯,n),且记t n+1=t1,则旅行商问题的数学模型为:minL=。

TSP是一个典型的组合优化问题,并且是一个NP完全难题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准。

因此,快速、有效地解决TSP有着重要的理论价值和极高的实际应用价值。

二、主要求解方法基于TSP的问题特性,构造型算法成为最先开发的求解算法,如最近邻点、最近合并、最近插入、最远插入、最近添加、贪婪插入等。

但是,由于构造型算法优化质量较差,迄今为止已开发了许多性能较好的改进型搜索算法,主要有:1)模拟退火算法2)禁忌搜索算法3)Hopfield神经网络优化算法4)蚁群算法5)遗传算法6)混合优化策略模拟退火算法方法1)编码选择:采用描述TSP解的最常用的一种策略——路径编码。

2)SA状态产生函数的设计:对于基于路径编码的SA状态产生函数操作,可将其设计为:①互换操作(SWAP);②逆序操作(INV);③插入操作(INS)。

TSP的几种求解方法及其优缺点

TSP的几种求解方法及其优缺点

TSP的几种求解方法及其优缺点一、什么是TSP问题旅行商问题,简称TSP,即给定n个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路线。

其图论描述为:给定图G=(V,A),其中V为顶点集,A为各顶点相互连接组成的边集,设D=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,要求确定一条长度最短的Hamilton回路,即遍历所有顶点当且仅当一次的最短距离。

旅行商问题可分为如下两类:1)对称旅行商问题(dij=dji,Πi,j=1,2,3,?,n);2)非对称旅行商问题(dij≠dji,?i,j=1,2,3,?,n)。

非对称旅行商问题较难求解,我们一般是探讨对称旅行商问题的求解。

若对于城市V={v1,v2,v3,?,v n}的一个访问顺序为T={t1,t2,t3,?,t i,?,t n},其中t i∈V(i=1,2,3,?,n),且记t n+1=t1,则旅行商问题的数学模型为:minL=。

TSP是一个典型的组合优化问题,并且是一个NP完全难题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准。

因此,快速、有效地解决TSP有着重要的理论价值和极高的实际应用价值。

二、主要求解方法基于TSP的问题特性,构造型算法成为最先开发的求解算法,如最近邻点、最近合并、最近插入、最远插入、最近添加、贪婪插入等。

但是,由于构造型算法优化质量较差,迄今为止已开发了许多性能较好的改进型搜索算法,主要有:1)模拟退火算法2)禁忌搜索算法3)Hopfield神经网络优化算法4)蚁群算法5)遗传算法6)混合优化策略模拟退火算法方法1)编码选择:采用描述TSP解的最常用的一种策略——路径编码。

2)SA状态产生函数的设计:对于基于路径编码的SA状态产生函数操作,可将其设计为:①互换操作(SWAP);②逆序操作(INV);③插入操作(INS)。

3)SA状态接受函数的设计:min{1,exp(-△/t)}>random[0,1]准则是作为接受新状态的条件最常用的方案,其中△为新旧状态的目标值差,t为”温度”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学与统计学院智能计算及应用课程设计设计题目:智能计算解决旅行商问题摘要本文以遗传算法、模拟退火、蚁群算法三个算法解决旅行商问题,将三个算法进行比较分析。

目前这三个算法广泛应用于各个领域中,本文以31个城市为例,运用遗传算法、模拟退火、蚁群算法分别进行了计算,将他们的计算结果进行了比较分析。

关键词: 遗传算法模拟退火蚁群算法旅行商问题背景:遗传算法:20世纪60年代初,美国Michigan大学的John Holland 教授开始研究自然和人工系统的自适应行为,在从事如何建立能学习的机器的研究过程中,受达尔文进化论的启发,逐渐意识到为获得一个好的算法仅靠单个策略建立和改进是不够的,还要依赖于一个包含许多候选策略的群体的繁殖,从而提出了遗传算法的基本思想。

20世纪60年代中期,基于语言智能和逻辑数学智能的传统人工智能十分兴盛,而基于自然进化思想的模拟进化算法则遭到怀疑与反对,但Holland及其指导的博士仍坚持这一领域的研究。

Bagley发表了第一篇有关遗传算法应用的论文,并首先提出“遗传算法”这一术语,在其博士论文中采用双倍体编码,发展了复制、交叉、变异、显性、倒位等基因操作算子,并敏锐地察觉到防止早熟的机理,发展了自组织遗传算法的概念。

与此同时,Rosenberg在其博士论文中进行了单细胞生物群体的计算机仿真研究,对以后函数优化颇有启发,并发展了自适应交换策略,在遗传操作方面提出了许多独特的设想。

Hollistien在其1971年发表的《计算机控制系统的人工遗传自适应方法》论文中首次将遗传算法应用于函数优化,并对优势基因控制、交叉、变异以及编码技术进行了深入的研究。

人们经过长期的研究,在20世纪}o年代初形成了遗传算法的基本框架。

1975年Holland出版了经典著作“Adaptation in Nature and Artificial System",该书详细阐述了遗传算法的基本理论和方法,提出了著名的模式理论,为遗传算法奠定了数学基础。

同年,DeJong 发表了重要论文“An Analysis of the Behav-nor of a Class of Genetie Adaptive System",在论文中,他将Holland的模式理论与计算实验结合起来,并通过函数优化的应用深人研究,将选择、交叉、变异操作进一步完善和系统化,并提出了代沟等新的操作技术,所得出的许多结论至今仍具有普遍的指导意义。

进入20世纪80年代末期,随着计算机技术的发展,遗传算法的研究再次兴起。

遗传算法以其较强的解决问题的能力和广泛的适应性,深受众多领域研究人员的重视,遗传算法的理论研究和应用研究已成为十分热门的课题。

自1985年起,遗传算法及其应用的国际会议每两年召开一次,并且在相关的人工智能会议和刊物上大多设有遗传算法的专题。

模拟退火:模拟退火算法来源于固体退火原理,是一种基于概率的算法,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。

模拟退火算法(Simulated Annealing,SA)最早的思想是由N. Metropolis[1] 等人于1953年提出。

1983 年,S. Kirkpatrick 等成功地将退火思想引入到组合优化领域。

它是基于Monte-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。

模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。

模拟退火算法是一种通用的优化算法,理论上算法具有概率的全局优化性能,目前已在工程中得到了广泛应用,诸如VLSI、生产调度、控制工程、机器学习、神经网络、信号处理等领域。

模拟退火算法是通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法。

蚁群算法:蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。

它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。

蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质。

针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进行了比较,数值仿真结果表明,蚁群算法具有一种新的模拟进化优化方法的有效性和应用价值。

算法原理:遗传算法:遗传操作是模拟生物基因遗传的做法。

在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是对群体的个体按照它们对环境适应度(适应度评估)施加一定的操作,从而实现优胜劣汰的进化过程。

从优化搜索的角度而言,遗传操作可使问题遗传过程的解,一代又一代地优化,并逼近最优解。

遗传操作包括以下三个基本遗传算子(genetic operator):选择(selection);交叉(crossover);变异(mutation)。

这三个遗传算子有如下特点:个体遗传算子的操作都是在随机扰动情况下进行的。

因此,群体中个体向最优解迁移的规则是随机的。

需要强调的是,这种随机化操作和传统的随机搜索方法是有区别的。

遗传操作进行的高效有向的搜索而不是如一般随机搜索方法所进行的无向搜索。

遗传操作的效果和上述三个遗传算子所取的操作概率,编码方法,群体大小,初始群体以及适应度函数的设定密切相关。

从群体中选择优胜的个体,淘汰劣质个体的操作叫选择。

选择算子有时又称为再生算子(reproduction operator)。

选择的目的是把优化的个体(或解)直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。

选择操作是建立在群体中个体的适应度评估基础上的,目前常用的选择算子有以下几种:适应度比例方法、随机遍历抽样法、局部选择法。

其中轮盘赌选择法(roulette wheel selection)是最简单也是最常用的选择方法。

在该方法中,各个个体的选择概率和其适应度值成比例。

设群体大小为n,其中个体i的适应度为,则i 被选择的概率,为遗传算法显然,概率反映了个体i的适应度在整个群体的个体适应度总和中所占的比例。

个体适应度越大。

其被选择的概率就越高、反之亦然。

计算出群体中各个个体的选择概率后,为了选择交配个体,需要进行多轮选择。

每一轮产生一个[0,1]之间均匀随机数,将该随机数作为选择指针来确定被选个体。

个体被选后,可随机地组成交配对,以供后面的交叉操作。

在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。

同样,遗传算法中起核心作用的是遗传操作的交叉算子。

所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。

通过交叉,遗传算法的搜索能力得以飞跃提高。

交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合,期望将有益基因组合在一起。

根据编码表示方法的不同,可以有以下的算法:实值重组(离散重组,中间重组,线性重组,扩展线性重组)。

二进制交叉(单点交叉,多点交叉,均匀交叉,洗牌交叉,缩小代理交叉)。

最常用的交叉算子为单点交叉。

具体操作是:在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新个体。

下面给出了单点交叉的一个例子:个体A:1 0 0 1 ↑1 1 1 → 1 0 0 1 0 0 0 新个体个体B:0 0 1 1 ↑0 0 0 → 0 0 1 1 1 1 1 新个体变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。

依据个体编码表示方法的不同,可以有以下的算法:a)实值变异b)二进制变异。

一般来说,变异算子操作的基本步骤如下:a)对群中所有个体以事先设定的变异概率判断是否进行变异b)对进行变异的个体随机选择变异位进行变异。

遗传算法引入变异的目的有两个:一是使遗传算法具有局部的随机搜索能力。

当遗传算法通过交叉算子已接近最优解邻域时,利用变异算子的这种局部随机搜索能力可以加速向最优解收敛。

显然,此种情况下的变异概率应取较小值,否则接近最优解的积木块会因变异而遭到破坏。

二是使遗传算法可维持群体多样性,以防止出现未成熟收敛现象。

此时收敛概率应取较大值。

遗传算法中,交叉算子因其全局搜索能力而作为主要算子,变异算子因其局部搜索能力而作为辅助算子。

遗传算法通过交叉和变异这对相互配合又相互竞争的操作而使其具备兼顾全局和局部的均衡搜索能力。

所谓相互配合.是指当群体在进化中陷于搜索空间中某个超平面而仅靠交叉不能摆脱时,通过变异操作可有助于这种摆脱。

所谓相互竞争,是指当通过交叉已形成所期望的积木块时,变异操作有可能破坏这些积木块。

如何有效地配合使用交叉和变异操作,是目前遗传算法的一个重要研究内容。

模拟退火:模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。

根据Metropolis准则,粒子在温度T时趋于平衡的概率为e(-ΔE/(kT)),其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann 常数。

用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。

退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子Δt、每个t值时的迭代次数L和停止条件S。

模拟退火算法可以分解为解空间、目标函数和初始解三部分。

模拟退火的基本思想:(1) 初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点),每个T值的迭代次数L(2) 对k=1,……,L做第(3)至第6步:(3) 产生新解S′(4) 计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数,(5) 若Δt′<0则接受S′作为新的当前解,否则以概率exp(-Δt′/T)接受S′作为新的当前解.,(6) 如果满足终止条件则输出当前解作为最优解,结束程序。

终止条件通常取为连续若干个新解都没有被接受时终止算法。

(7) T逐渐减少,且T->0,然后转第2步。

模拟退火算法新解的产生和接受可分为如下四个步骤:第一步是由一个产生函数从当前解产生一个位于解空间的新解;为便于后续的计算和接受,减少算法耗时,通常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等,注意到产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的选取有一定的影响。

相关文档
最新文档