关于使用遗传算法解决TSP商旅问题的实例——MATLAB下的模型创建

本文详细介绍了使用遗传算法解决旅行商问题(TSP)的方法,包括遗传算法的基本概念、具体流程、适应值评价、选择、交配、变异算子等,并通过MATLAB实现TSP问题的模型创建,分析了不同参数设置对结果的影响,展示了迭代过程和最终的最短路径。

1 遗传算法基本概念

借鉴自然进化的理念,问题优化的过程可以看成类似于生物进化的过程,通过模拟自然界的生物进化,研究者提出了一种解决优化问题的创造性方法———GA遗传算法。

1.1基本算法原理

GA算法最开始为一种随机自适应的全局搜索算法。
遗传算法正是通过模拟自然界中生物的遗传进化过程,对优化问题的最优解进行搜索。算法维护一个代表问题潜在解的群体,对于群体的优化,算法引入了类似自然进化中选择、交配、以及变异算子。遗传算法搜索全局最优解的过程是一个不断迭代的过程,每一次迭代相当于生物进化中的一次循环,直到满足算法的终止条件为止。

在遗传算法中,问题的每个有效解被称为一个“染色体”,在有些书籍中也称为“串”,相对于群体中每个生物个体,染色体的具体形式是一个使用特定编码方式生成的串,编码串中的每一个编码单元称为基因。

1.2 比较对应

在这里插入图片描述

1.3理论支持

①模式定理

对于遗传算法,Holland给出了著名的模式定理,为遗传算法提供了理论支持。

模式: 是指群体中编码的某些位置具有相似结构的染色体集合。这边可用0或1组成的二进制符号序列作为染色体的编码。其中如:
模式01 x x x 0 则表示以01开头且0结尾的编码串对应的染色体的集合。

阶: 模式中具有确定取值的基因个数,如0 1 x x x 0 的阶为3。

模式定义长度: 是指模式中第一个具有确定取指的基因到最后一个具有确定取值的基因的距离,上例为5。 而x 1 x x x x 定义长度为0.

该定理指出,遗传算法的实质是通过选择、交配、变异算子对模式进行搜索,缔结定义长度较小且平均适应高于群体平均适应值的模式在群体中方的比例将呈现指数级增长,即随着精华的不断进行,教优染色体个数将快速增加。模式定理证明了遗传算法寻求全局最优解的可能性,但是不能抱枕算法一定能找到全局最优解,Goldberg提出的积木块假设,能对该定理做出补充,说明遗传算法具有能找到全局最优解的能力。

2 具体算法流程

遗传算法的实现主要包含以下七个重要问题:

  1. 染色体的编码;
  2. 躯体的初始化;
  3. 适应值评价;
  4. 选择种族;
  5. 种族交配;
  6. 群体变异;
  7. 算法流程;

2.1 染色体的编码

目前用于染色体编码的方式有格雷码编码,字母编码,多参数交叉编码。这里我们采用两种较为简单的编码:二进制编码和浮点数(实数)编码。其中二进制编码较为简单,但是在编码精度方面较差,史书编码方式适合于表示取值范围比较大的数值,用于多维函数优化问题,效果较为突出,对降低采用遗传算法对染色体进行处理的复杂性起到了很好的作用。

2.2 群体初始化

遗传算法在一个给定的初始进化群体进行迭代搜索,一般情况下遗传算法在躯体初始化阶段采用的是随机数初始方法的。

2.3 适应值评价

评估函数用于评估各个染色体的适应值,进而区分优劣。具体问题时,可以套用问题定义的函数表达式。例如求解某个函数的最小值可以对问题定义的目标函数F(x)进行以下变化得到算法的评估函数Eval(C)。

                         Eval(c)= -f(x)
                其中x表示一个有效解,c表示x对应的染色体

适应值会出现两种情况,一种时极小情形即院十适应值越小个体性能越好,另一种反之。
遗传算法中某些

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值