精华内容
下载资源
问答
  • 旅行商问题matlab程序

    2018-09-11 21:12:19
    使用matlab编程实现的遗传算法,解决旅行商问题。。。。
  • 旅行商问题matlab实现

    2020-04-27 16:05:40
    旅行商问题matlab实现
  • 遗传算法解决5种多旅行商问题(mtsp)的matlab程序 分别为以下5中情况: 1.从不同起点出发回到起点(固定旅行商数量) 2.从不同起点出发回到起点(旅行商数量根据计算可变) 3.从同一起点出发回到起点 4.从同一起点...
  • 本代码实现了蚁群算法并且很好的解决了旅行商问题,对比了多个城市的结果,给出了最优路径图。
  • MATLAB源码集锦-基于连续Hopfield神经网络的旅行商问题优化计算程序
  • 禁忌搜索(TS)是基于本地搜索的元启发式方法,由Fred W. Glover于1986年提出。在本文中,我们将提供禁忌搜索(TS)算法求解旅行商问题(TSP)的matlab源代码
  • 实现旅行商问题,采用matlab元工具箱自带工具包分析编程
  • 遗传算法解决5种多旅行商问题(mtsp)的matlab程序 分别为以下5中情况: 1.从不同起点出发回到起点(固定旅行商数量) 2.从不同起点出发回到起点(旅行商数量根据计算可变) 3.从同一起点出发回到起点 4.从同一起点...
  • matlab解决旅行商问题

    2017-09-24 16:00:08
    MATLAB语言编写tsp问题程序并仿真求解遍历34座城市最短路径。 1模拟退火首先从某个初始候选解开始,当温度大于0时执行循环。 2.在循环中通过随机扰动产生一个新的解,然后求得新解和原解之间的能量差,如果差小于0...
  • 本算法可以求得从一个城市出发的多路旅行商问题,而且通过参数设定,可使各路均衡,望对大家有所帮助。 本算法可以求得从一个城市出发的多路旅行商问题,而且通过参数设定,可使各路均衡,望对大家有所帮助。
  • 遗传算法解决5种多旅行商问题(mtsp)的matlab程序 从不同起点出发回到起点(固定旅行商数量) 从不同起点出发回到起点(旅行商数量根据计算可变) 从同一起点出发回到起点 从同一起点出发不会到起点
  • 5种多旅行商问题的MATLAB实现方法 1.从不同起点出发回到起点(固定旅行商数量) 2.从同一起点出发回到起点 3.从同一起点出发回到同一终点(与起点不同) 4.从同一起点出发不回到起点 5.从不同起点出发回到起点...
  • 数学建模中旅行商问题的遗传算法MATLAB程序,规划出合适的路径并展示出图形。
  • Matlab旅行商实验.zip

    2021-05-06 13:19:14
    遗传算法解决5种多旅行商问题(mtsp)的matlab程序 分别为以下5中情况: 1.从不同起点出发回到起点(固定旅行商数量) 2.从不同起点出发回到起点(旅行商数量根据计算可变) 3.从同一起点出发回到起点 4.从同一起点...
  • 旅行商问题动态规划matlab代码这是解决经典TSP的三种不同方法,即。 所有代码都在MATLAB 2019b上进行了测试。 算法是 遗传算法(边缘表示和2-opt) 动态编程 群算法(蚂蚁系统算法) 怎么跑 在遗传算法和群算法中,...
  • 程序为经典的蚁群算法解决旅行商问题,蚁群算法包括信息素更新,蚂蚁数目,最大迭代次数等
  • 旅行商问题(动态规划方法,超级详细的) 在这就不细说了 直接看代码: 完整代码: function [circle,dis]=minCycle_dp(adjMat,pntSet,startPnt) %该函数使用动态规划法求解旅行商问题,点数不宜过多 %变量 类型 ...

    具体实现方法可以参考这一篇呀:
    旅行商问题(动态规划方法,超级详细的)
    在这就不细说了

    直接看代码:
    完整代码:

    function [circle,dis]=minCycle_dp(adjMat,pntSet,startPnt)
    
    %该函数使用动态规划法求解旅行商问题,点数不宜过多
    %变量        类型     释义
    %======================================================
    %adjMat   |  矩阵  |  临接矩阵(Adjacency matrix)
    %pntSet  |  向量  |  各个点编号集合,无输入默认为1:N
    %startPnt |  数值  |  圈起始点,无输入默认编号集的第一个
    %------------------------------------------------------
    %circle  |  向量  |  路径最小圈
    %dis      |  数值  |  最短路程
    
    %实例:
    %adjMat=[0   3  inf  8   9;
    %        3   0   3  10   5;
    %       inf  3   0   4   3;
    %        8  10   4   0  20;
    %        9   5   3  20   0];
    %
    %                       邻接矩阵 编号
    %                          ↓     ↓
    %[circle,dis]=minCycle_dp(adjMat,(0:4))
    %--------------------------
    %实例运行结果:
    %circle =
    %    0  1  4  2  3  0
    %dis =
    %    23
    
    
    
    %输入变量的初步处理、缺省参数赋值==========================================
    N=size(adjMat,1);
    switch 1
        case nargin==1,pntSet=1:N;startPnt=1;
        case nargin==2,startPnt=pntSet(1);
    end
    pntSet=pntSet(:);
    
    
    %动态规划法程序主要部分:dp数组表格计算====================================
    dpSheet=inf.*ones(N,2^(N-1));
    for m=1:N
        dpSheet(m,1)=adjMat(m,1);
    end
    for m=1:2^(N-1)
        for n=1:N
            binNum=dec2bin(m-1);
            binNum=binNum(length(binNum):-1:1);
            comSet=find(binNum=='1');
            for k=1:length(comSet)
                subSet=comSet;
                subSet(subSet==comSet(k))=[];
                decNum=sum(2.^(subSet-1))+1;
                if dpSheet(n,m)>adjMat(n,comSet(k)+1)+dpSheet(comSet(k)+1,decNum)
                    dpSheet(n,m)=adjMat(n,comSet(k)+1)+dpSheet(comSet(k)+1,decNum);
                end
            end
        end
    end
    
    %通过dp数组表格还原路径====================================================
    circlePath=1;
    comSet=2:N;
    while ~isempty(comSet)
        tempNum=1;
        tempD=inf;
        for m=1:length(comSet)
            subSet=comSet;
            subSet(subSet==comSet(m))=[];
            decNum=sum(2.^(subSet-2))+1;
            if tempD>adjMat(circlePath(end),comSet(m))+dpSheet(comSet(m),decNum)
                tempD=adjMat(circlePath(end),comSet(m))+dpSheet(comSet(m),decNum);
                tempNum=comSet(m);
            end
        end
        circlePath=[circlePath,tempNum];
        comSet(comSet==tempNum)=[];
    end
    
    %为圈中节点赋予编号,改变圈起点,计算圈总长================================
    circle=pntSet(circlePath)';
    startPntPos=find(circle==startPnt);
    circle=[circle(startPntPos:end),circle(1:startPntPos)];
    dis=sum(adjMat((circlePath-1)*N+circlePath([end 1:(end-1)])));
    
    end
    

    .
    使用实例:

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 201801最近邻法与模拟退火算法求解TSP旅行商问题Matlab程序.pdf
  • 本资源用matlab实现了粒子群算法,并解决了旅行商问题。其中给出了TSP问题最优解的路径图以及收敛次数等信息。
  • 连续Hopfield神经网络的优化—旅行商问题优化计算
  • 遗传算法解决5种多旅行商问题(mtsp)的matlab程序 分别为以下5中情况: 1.从不同起点出发回到起点(固定旅行商数量) 2.从不同起点出发回到起点(旅行商数量根据计算可变) 3.从同一起点出发回到起点 4.从同一起点...
  • 旅行商matlab实验源码

    热门讨论 2012-05-05 20:58:28
    旅行商matlab实验源码实现了三种多旅行商问题 % MTSPOF_GA Fixed Open Multiple Traveling Salesmen Problem (M-TSP) Genetic Algorithm (GA) % Finds a (near) optimal solution to a variation of the "open" M...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,065
精华内容 426
关键字:

旅行商matlab程序

matlab 订阅