遗传算法解决TSP问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
优解之后还需要对问题进行解码, 2、另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些
参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经 验. 3、没有能够及时利用网络的反馈信息,故算法的搜索速度比较慢,要 得要较精确的解需要较多的训练时间。 4、算法对初始种群的选择有一定的依赖性,能够结合一些启发算法进 行改进。 5、算法的并行机制的潜在能力没有得到充分的利用。
遗传算法流程图
遗传算法的编码方式有直接编码、参数编码、繁衍生长法。本程序 采用的是参数编码,参数编码为1—n的实数的随机排列,组成一个染色
体。初始化的参数种群的个数M,染色体的个数N,迭代次数C,交叉概 率Pc,变异概率Pm。
适应度函数计算:已知任意两个城市之间的距离,每个染色体可计 算出总距离,因此可以将一个随机全排列的总距离的倒数作为适应度函 数,即距离越短,适应度函数越好。
实验结果
20次实验随机结果
minlen=-806 路径为:12 8 10 11 13 3 2 7 5 14 9 15 1 6 4 minlen=-807 路径为:10 8 4 12 6 1 15 7 2 14 3 13 11 5 9 minlen=-811 路径为:13 14 9 3 15 1 6 4 12 8 10 2 5 11 7 minlen=-836 路径为:14 3 5 9 15 1 6 12 4 8 10 7 11 13 2 minlen=-814 路径为:9 5 3 13 14 11 7 10 12 4 8 6 1 15 2 minlen=-821 路径为:4 8 12 10 7 2 14 3 5 9 13 11 15 1 6 minlen=-815 路径为:4 8 6 1 15 14 3 9 5 11 2 13 7 10 12 minlen=-789 路径为:3 9 2 14 11 10 12 8 4 6 1 15 5 13 7 minlen=-810 路径为:15 10 11 2 14 3 5 9 13 7 8 4 12 6 1 minlen=-806 路径为:5 9 14 2 3 13 15 1 12 6 4 8 10 7 11 minlen=-807 路径为:10 13 2 7 11 9 5 3 14 15 1 6 8 4 12
平均值性能:8wk.baidu.com0 最佳性能:836 最差性能:789 方差:7.98
minlen=-805 路径为:14 5 9 3 7 13 11 2 15 1 6 4 8 12 10 minlen=-818 路径为:8 10 14 2 3 9 5 13 7 11 15 1 6 12 4 minlen=-803 路径为:5 3 14 10 4 8 12 6 1 15 7 2 11 13 9 minlen=-806 路径为:1 15 13 9 14 2 7 11 5 3 10 8 12 4 6 minlen=-795 路径为:3 9 5 13 11 7 2 10 12 4 6 8 1 15 14 minlen=-801 路径为:10 3 14 9 7 11 5 13 2 15 1 6 12 4 8 minlen=-815 路径为:4 8 6 1 15 14 3 9 5 11 2 13 7 10 12 minlen=-814 路径为:9 5 3 13 14 11 7 10 12 4 8 6 1 15 2 minlen=-821 路径为:4 8 12 10 7 2 14 3 5 9 13 11 15 1 6
遗传算法解决TSP问题
姓名: 学号: 专业:
问题描叙
TSP问题即路径最短路径问题,从任意起点出发(或者固定起 点),依次经过所有城市,一个城市只能进入和出去一次,所有城市必 须经过一次,经过终点再到起点,从中寻找距离最短的通路。
通过距离矩阵可以得到城市之间的相互距离,从距离矩阵中的到距 离最短路径,解决TSP问题的算法很多,如模拟退火算法,禁忌搜索算 法,遗传算法等等,每个算法都有自己的优缺点,遗传算法收敛性好, 计算时间少,但是得到的是次优解,得不到最有解。
选择操作:遗传算法的选择操作有轮盘赌法、锦标赛法等,本程序 采用基于适应度比例的选择策略,即适应度越好的个体被选择的概率越 大,同时在选择中保存适应度最高的个体。
交叉操作:随机选择两个个体,在对应的位置交换若干各基因片 段,同时保证每个个体依然是1—n的随机排列,防止进入局部收敛。
变异操作:随机选取个体,同时随机选取个体的两个基因进行交换 已实现变异操作。
0。 如新个体数达到M个,则已形成一个新群体,转向第三步;否则转向
第四步继续遗传操作。直到找到使适应值最大的个体或达到最大进化代 数为止。 由于选择概率是由适应值决定的,即适应值大的染色体入选概率也较 大,使选择起到"择优汰劣"的作用。交叉使染色体交换信息,结合选择 规则,使优秀信息得以保存,不良信息被遗弃。变异是基因中得某一位 发生突变,以达到产生确实有实质性差异的新品种。遗传算法虽是一种 随机算法,但它是有导向的,它所使用的"按概率随机选择"方法是在有 方向的搜索方法中的一种工具。正是这种独特的搜索方法,使遗传算法 自然地避开了其它最优化算法常遇到的局部最小陷阱。
算法设计
遗传算法属于进化算法的一种,它通过模仿自然界的选择与遗传的 机理来寻找最优解. 遗传算法有三个基本算子:选择、交叉和变异。
数值方法求解这一问题的主要手段是迭代运算。一般的迭代方法容 易陷入局部极小的陷阱而出现"死循环"现象,使迭代无法进行。遗传算 法很好地克服了这个缺点,是一种全局优化算法。
遗传算法的优点: 1. 与问题领域无关切快速随机的搜索能力。 2. 搜索从群体出发,具有潜在的并行性,可以进行多个个体的同时比 较,robust. 3. 搜索使用评价函数启发,过程简单 4. 使用概率机制进行迭代,具有随机性。 5. 具有可扩展性,容易与其他算法结合。
遗传算法的缺点: 1、遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最
生物在漫长的进化过程中,从低等生物一直发展到高等生物,可以说是 一个绝妙的优化过程。这是自然环境选择的结果。人们研究生物进化现 象,总结出进化过程包括复制、杂交、变异、竞争和选择。一些学者从 生物遗传、进化的过程得到启发,提出了遗传算法。算法中称遗传的生 物体为个体,个体对环境的适应程度用适应值(fitness)表示。适应值 取决于个体的染色体,在算法中染色体常用一串数字表示,数字串中的 一位对应一个基因。一定数量的个体组成一个群体。对所有个体进行选 择、交叉和变异等操作,生成新的群体,称为新一代遗传算法计算程序 的流程可以表示如下: 第一步 准备工作 (1)选择合适的编码方案,将变量(特征)转换为染色体(数字串, 串长为m)。通常用二进制编码。 (2)选择合适的参数,包括群体大小(个体数M)、交叉概率PC和变 异概率Pm。 (3)确定适应值函数f(x)。f(x)应为正值。 第二步 形成一个初始群体(含M个个体)。在边坡滑裂面搜索问题中, 取已分析的可能滑裂面组作为初始群体。 第三步 对每一染色体(串)计算其适应值fi,同时计算群体的总适应值 。 第四步 选择 计算每一串的选择概率Pi=fi/F及累计概率。选择一般通过模拟旋转滚花 轮(roulette,其上按Pi大小分成大小不等的扇形区)的算法进行。旋转 M次即可选出M个串来。在计算机上实现的步骤是:产生[0,1]间随机 数r,若r<q1,则第一串v1入选,否则选v2,使满足qi1<r<qi(2≤i≤m)。可见适应值大的入选概率大。 第五步 交叉 (1)对每串产生[0,1]间随机数,若r>pc,则该串参加交叉操作,如此 选出参加交叉的一组后,随机配对。 (2) 对每一对,产生[1,m]间的随机数以确定交叉的位置。 第六步 变异 如变异概率为Pm,则可能变异的位数的期望值为Pm ×m×M,每一位以 等概率变异。具体为对每一串中的每一位产生[0,1]间的随机数r,若 r<Pm,则该位发生反转,如对染色体二进制编码为数字0变为1,1变为
参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经 验. 3、没有能够及时利用网络的反馈信息,故算法的搜索速度比较慢,要 得要较精确的解需要较多的训练时间。 4、算法对初始种群的选择有一定的依赖性,能够结合一些启发算法进 行改进。 5、算法的并行机制的潜在能力没有得到充分的利用。
遗传算法流程图
遗传算法的编码方式有直接编码、参数编码、繁衍生长法。本程序 采用的是参数编码,参数编码为1—n的实数的随机排列,组成一个染色
体。初始化的参数种群的个数M,染色体的个数N,迭代次数C,交叉概 率Pc,变异概率Pm。
适应度函数计算:已知任意两个城市之间的距离,每个染色体可计 算出总距离,因此可以将一个随机全排列的总距离的倒数作为适应度函 数,即距离越短,适应度函数越好。
实验结果
20次实验随机结果
minlen=-806 路径为:12 8 10 11 13 3 2 7 5 14 9 15 1 6 4 minlen=-807 路径为:10 8 4 12 6 1 15 7 2 14 3 13 11 5 9 minlen=-811 路径为:13 14 9 3 15 1 6 4 12 8 10 2 5 11 7 minlen=-836 路径为:14 3 5 9 15 1 6 12 4 8 10 7 11 13 2 minlen=-814 路径为:9 5 3 13 14 11 7 10 12 4 8 6 1 15 2 minlen=-821 路径为:4 8 12 10 7 2 14 3 5 9 13 11 15 1 6 minlen=-815 路径为:4 8 6 1 15 14 3 9 5 11 2 13 7 10 12 minlen=-789 路径为:3 9 2 14 11 10 12 8 4 6 1 15 5 13 7 minlen=-810 路径为:15 10 11 2 14 3 5 9 13 7 8 4 12 6 1 minlen=-806 路径为:5 9 14 2 3 13 15 1 12 6 4 8 10 7 11 minlen=-807 路径为:10 13 2 7 11 9 5 3 14 15 1 6 8 4 12
平均值性能:8wk.baidu.com0 最佳性能:836 最差性能:789 方差:7.98
minlen=-805 路径为:14 5 9 3 7 13 11 2 15 1 6 4 8 12 10 minlen=-818 路径为:8 10 14 2 3 9 5 13 7 11 15 1 6 12 4 minlen=-803 路径为:5 3 14 10 4 8 12 6 1 15 7 2 11 13 9 minlen=-806 路径为:1 15 13 9 14 2 7 11 5 3 10 8 12 4 6 minlen=-795 路径为:3 9 5 13 11 7 2 10 12 4 6 8 1 15 14 minlen=-801 路径为:10 3 14 9 7 11 5 13 2 15 1 6 12 4 8 minlen=-815 路径为:4 8 6 1 15 14 3 9 5 11 2 13 7 10 12 minlen=-814 路径为:9 5 3 13 14 11 7 10 12 4 8 6 1 15 2 minlen=-821 路径为:4 8 12 10 7 2 14 3 5 9 13 11 15 1 6
遗传算法解决TSP问题
姓名: 学号: 专业:
问题描叙
TSP问题即路径最短路径问题,从任意起点出发(或者固定起 点),依次经过所有城市,一个城市只能进入和出去一次,所有城市必 须经过一次,经过终点再到起点,从中寻找距离最短的通路。
通过距离矩阵可以得到城市之间的相互距离,从距离矩阵中的到距 离最短路径,解决TSP问题的算法很多,如模拟退火算法,禁忌搜索算 法,遗传算法等等,每个算法都有自己的优缺点,遗传算法收敛性好, 计算时间少,但是得到的是次优解,得不到最有解。
选择操作:遗传算法的选择操作有轮盘赌法、锦标赛法等,本程序 采用基于适应度比例的选择策略,即适应度越好的个体被选择的概率越 大,同时在选择中保存适应度最高的个体。
交叉操作:随机选择两个个体,在对应的位置交换若干各基因片 段,同时保证每个个体依然是1—n的随机排列,防止进入局部收敛。
变异操作:随机选取个体,同时随机选取个体的两个基因进行交换 已实现变异操作。
0。 如新个体数达到M个,则已形成一个新群体,转向第三步;否则转向
第四步继续遗传操作。直到找到使适应值最大的个体或达到最大进化代 数为止。 由于选择概率是由适应值决定的,即适应值大的染色体入选概率也较 大,使选择起到"择优汰劣"的作用。交叉使染色体交换信息,结合选择 规则,使优秀信息得以保存,不良信息被遗弃。变异是基因中得某一位 发生突变,以达到产生确实有实质性差异的新品种。遗传算法虽是一种 随机算法,但它是有导向的,它所使用的"按概率随机选择"方法是在有 方向的搜索方法中的一种工具。正是这种独特的搜索方法,使遗传算法 自然地避开了其它最优化算法常遇到的局部最小陷阱。
算法设计
遗传算法属于进化算法的一种,它通过模仿自然界的选择与遗传的 机理来寻找最优解. 遗传算法有三个基本算子:选择、交叉和变异。
数值方法求解这一问题的主要手段是迭代运算。一般的迭代方法容 易陷入局部极小的陷阱而出现"死循环"现象,使迭代无法进行。遗传算 法很好地克服了这个缺点,是一种全局优化算法。
遗传算法的优点: 1. 与问题领域无关切快速随机的搜索能力。 2. 搜索从群体出发,具有潜在的并行性,可以进行多个个体的同时比 较,robust. 3. 搜索使用评价函数启发,过程简单 4. 使用概率机制进行迭代,具有随机性。 5. 具有可扩展性,容易与其他算法结合。
遗传算法的缺点: 1、遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最
生物在漫长的进化过程中,从低等生物一直发展到高等生物,可以说是 一个绝妙的优化过程。这是自然环境选择的结果。人们研究生物进化现 象,总结出进化过程包括复制、杂交、变异、竞争和选择。一些学者从 生物遗传、进化的过程得到启发,提出了遗传算法。算法中称遗传的生 物体为个体,个体对环境的适应程度用适应值(fitness)表示。适应值 取决于个体的染色体,在算法中染色体常用一串数字表示,数字串中的 一位对应一个基因。一定数量的个体组成一个群体。对所有个体进行选 择、交叉和变异等操作,生成新的群体,称为新一代遗传算法计算程序 的流程可以表示如下: 第一步 准备工作 (1)选择合适的编码方案,将变量(特征)转换为染色体(数字串, 串长为m)。通常用二进制编码。 (2)选择合适的参数,包括群体大小(个体数M)、交叉概率PC和变 异概率Pm。 (3)确定适应值函数f(x)。f(x)应为正值。 第二步 形成一个初始群体(含M个个体)。在边坡滑裂面搜索问题中, 取已分析的可能滑裂面组作为初始群体。 第三步 对每一染色体(串)计算其适应值fi,同时计算群体的总适应值 。 第四步 选择 计算每一串的选择概率Pi=fi/F及累计概率。选择一般通过模拟旋转滚花 轮(roulette,其上按Pi大小分成大小不等的扇形区)的算法进行。旋转 M次即可选出M个串来。在计算机上实现的步骤是:产生[0,1]间随机 数r,若r<q1,则第一串v1入选,否则选v2,使满足qi1<r<qi(2≤i≤m)。可见适应值大的入选概率大。 第五步 交叉 (1)对每串产生[0,1]间随机数,若r>pc,则该串参加交叉操作,如此 选出参加交叉的一组后,随机配对。 (2) 对每一对,产生[1,m]间的随机数以确定交叉的位置。 第六步 变异 如变异概率为Pm,则可能变异的位数的期望值为Pm ×m×M,每一位以 等概率变异。具体为对每一串中的每一位产生[0,1]间的随机数r,若 r<Pm,则该位发生反转,如对染色体二进制编码为数字0变为1,1变为