matlab求解tsp_TSP问题、MTSP问题建模及求解(MATLAB)

点击蓝字

关注我们

TSP

问题

PART 01

问题提出

8366d281005c96f93ecc76f6aa2e9ca8.png

图1|坐标分布图

数据中心为某辆充电小车的出发点,坐标1~坐标29为29个充电点,充电小车需从数据中心出发并且依次经过29个充电点,最后回到数据中心。为使路线总路径最短,需确定充电小车每一步该怎么走,这就是典型的TSP问题。

模型建立

053f5c7e59728f5f6964a8fb749e9dac.png

TSP求解算法对比

76a721b88c7d4b44ad5fbbbb046212c7.png

蚁群算法求解TSP问题

0bf7a71d6f1b9ae6c2b99c7dfdb00830.png

求解结果

80d9457b713516d29a1a62ee0e4c3a19.png

图2|移动小车充电路线图

MTSP

问题

PART 02

问题提出

        当数据中心含有4辆小车时,4辆小车需要合作完成充电任务,即每辆小车负责一部分充电点的充电,并且使总路程最短,该问题为典型的多旅行社问题,即MTSP问题。

模型建立

bbedee02c7ecdd6bfcbee4e877322748.png

遗传求解MTSP问题

a191a22b9ee2abc84d36c6577d346a14.png

求解结果

0154830af22438d86c4e3f79059c9a0f.png

图3|多移动小车充电路线图

MATLAB源代码

蚁群算法求解TSP问题

clc;clf;clear;data1 = xlsread('附件1.xlsx');x = data1(:,1);y = data1(:,2);X = data1(:,1:2);[N,n]=size(X);      % N =测试样本数;n =测试样本的属性数;K = 4;              % K = 组数; R = 100;            % R = 蚂蚁数; t_max = 1000;       % t_max =最大迭代次数;                 % 初始化c = 10^-2;tau = ones(N,K) * c;    %信息素矩阵,初始值为0.01的N*K矩阵(样本数*聚类数)q = 0.9;                % 阈值qrho = 0.1;              % 蒸发率best_solution_function_value = inf; % 最佳路径度量值(初值为无穷大,该值越小聚类效果越好)tict = 1; % while ((t<=t_max))                             %达到最大迭代次数而终止% while ((best_solution_function_value>=19727))  %达到一定的聚类效果而终止while ((best_solution_function_value>=19727))        %路径标识字符:标识每只蚂蚁的路径    solution_string = zeros(R,N+1);         for i = 1 : R                       %以信息素为依据确定蚂蚁的路径        r = rand(1,N);    %随机产生值为0-1随机数的1*51的数组        for g = 1 : N            if r(g) < q     %如果r(g)小于阈值                tau_max =
  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值