遗传算法求解TSP问题

该博客探讨了旅行商问题(TSP)的定义和解法,重点介绍了使用遗传算法来解决这一NP完全问题。文章详细阐述了遗传算法的基本原理、实现方法,并提供了一个实例分析,包括案例描述、模型设定、算法流程。最后展示了遗传算法求解TSP的最短距离和时间,以及MATLAB代码示例。
摘要由CSDN通过智能技术生成

1、TSP问题

1.1 TSP问题定义

旅行商问题(Traveling Salesman Problem,TSP)称之为货担郎问题,TSP问题是一个经典组合优化的NP完全问题,组合优化问题是对存在组合排序或者搭配优化问题的一个概括,也是现实诸多领域相似问题的简化形式。

1.2 TSP问题解法

传统精确算法:穷举法,动态规划
近似处理算法:贪心算法,改良圈算法,双生成树算法
智能算法:模拟退火,粒子群算法,蚁群算法,遗传算法等

2、遗传算法

2.1 遗传算法简介

遗传算法的实质是通过群体搜索技术,根据适者生存的原则逐代进化,最终得到最优解或准最优解。它必须做以下操作:初始群体的产生、求每一个体的适应度、根据适者生存的原则选择优良个体、被选出的优良个体两两配对,通过随机交叉其染色体的基因并随机变异某些染色体的基因生成下一代群体,按此方法使群体逐代进化,直到满足进化终止条件。

2.2 实现方法

  1. 根据具体问题确定可行解域,确定一种编码方法,能用数值串或字符串表示可行解域的每一解。
  2. 对每一解应有一个度量好坏的依据,它用一函数表示,叫做适应度函数,一般由目标函数构成。
  3. 确定进化参数群体规模、交叉概率、变异概率、进化终止条件。

3、实例分析

3.1 案例导入

我方有一个基地,经度和纬度为(70,40)。假设我方飞机的速度为1000km/h。我方派一架飞机从基地出发,侦察完所有目标,再返回原来的基地。在每一目标点的侦察时间不计,求该架飞机所花费的时间(假设我方飞机巡航时间可以充分长)。已知100个目标的经度、纬度如下表所列。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解:
在这里插入图片描述

在这里插入图片描述

3.2 模型及算法

求解的遗传算法的参数设定如下:
种群大小M=50;最大代数G=100;
交叉率pc=1,交叉概率为1能保证种群的充分进化;
变异概率pm=0.1,一般而言,变异发生的可能性较小。

  1. 编码策略在这里插入图片描述

  2. 初始种群
    在这里插入图片描述

  3. 目标函数
    在这里插入图片描述

  4. 交叉操作
    在这里插入图片描述

  5. 变异操作在这里插入图片描述

  6. 选择
    在这里插入图片描述

3.3 算法流程图

在这里插入图片描述

4、效果及代码展示

4.1 结果:

最短距离:3.9365e+04 km 最短时间:39.4h
巡航路径:
在这里插入图片描述

4.2代码(MATLAB语言)

clc,clear
sj0=load('sj.txt');       %加载100个目标的数据
x=sj0(:,1:2:8);
x=x(:);
y=sj0(:,2:2:8); 
y=y(:);
sj=[x y]; 
d1=[70,40]; 
sj=[d1;sj;d1];  %102个点,己方基地编号为1,中间为100个目标,第102个为己方基地
sj2=sj;
sj=sj*pi/180;  %单位化成弧度
d=zeros(102)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值