MATLAB实战系列(九)-遗传算法(GA)求解旅行商问题(TSP)思路解析

tech2025-05-30  3

本次博文所编写的代码使用如下进化操作:

1、二元锦标赛选择操作;

2、OX交叉操作;

3、交换、逆转和插入相结合的变异操作。

 

一 | 旅行商(TSP)问题

假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。

 

二 | 算法设计

01 | 编码

编码采用常规的整数编码,如果城市数目为N,那么解就可以表达为1~N的随机排列,用MATLAB中的randperm(N)进行表示。

02 | 种群初始化

设种群数目为NIND,则初始化种群为NIND个1~N的随机排列。

03 | 目标函数值

一个个体的目标函数值就是该个体的总距离,比如说一个个体为213,那么这个个体的总距离=21之间的距离+13之间的距离+32之间的距离(从3出发还需要返回起始点2)。

04 | 适应度值

一个个体的适应度值是其目标函数值的倒数。因为总距离越小说

最新回复(0)