这个并非一般的最短路径问题,而是旅行商问题(Traveling Saleman Problem,TSP)。旅行商问题属于NP完全问题,如果问题规模比较大,至今没有太有效的算法。
这里提供一个蚁群算法的程序,参考:
根据你的问题做了少量改动,具体代码如下:function TSP
% TSP旅行商问题
% 设置初始参数如下:
m=10;Alpha=1;Beta=5;Rho=0.1;NC_max=200;Q=100;
% 生成随机点,第一个点视为固定点
C = [0.5 0.5];
C(2:10,:) = rand(9,2);
% 调用蚁群算法求解
[R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_max,m,Alpha,Beta,Rho,Q);
function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_max,m,Alpha,Beta,Rho,Q)
%%=========================================================================
%% ACATSP.m
%% Ant Colony Algorithm for Traveling Salesman Problem
%% ChengAihua,PLA Information Engineering University,ZhengZhou,China
%% Email:aihuacheng@gmail.com
%% All rights reserved
%%---------------------------------------