test
This commit is contained in:
24
calculateTourDistance.m
Normal file
24
calculateTourDistance.m
Normal file
@@ -0,0 +1,24 @@
|
||||
function [route, totalDistance] = calculateTourDistance(adjacencyMatrix, startCity)
|
||||
% 计算从指定城市出发,遍历所有城市一次后返回起点的路径距离
|
||||
% 输入:adjacencyMatrix - 城市间距离的邻接矩阵
|
||||
% startCity - 起始城市的编号
|
||||
% 输出:route - 遍历路径
|
||||
% totalDistance - 总路径长度
|
||||
|
||||
numCities = size(adjacencyMatrix, 1);
|
||||
|
||||
% 创建除起始城市外的城市列表
|
||||
otherCities = setdiff(1:numCities, startCity);
|
||||
|
||||
% 随机排列其他城市(这里不要求最优路径)
|
||||
otherCities = otherCities(randperm(length(otherCities)));
|
||||
|
||||
% 创建完整路径
|
||||
route = [startCity, otherCities, startCity];
|
||||
|
||||
% 计算总路径距离
|
||||
totalDistance = 0;
|
||||
for i = 1:length(route)-1
|
||||
totalDistance = totalDistance + adjacencyMatrix(route(i), route(i+1));
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user