我试图建立一个问题,提到如何从阿拉德到布加勒斯特旅行
你可以在这里看到罗马尼亚的地图:
romania's map
我的代码:
clc;clear
goal='bucharest';
list=cell(20,5);
n=cell(20,5);
'city';
n{1,1}='arad';
n{1,2}='zerind';
n{1,3}='sibiu';
n{1,4}='timisoara';
'city';
n{2,1}='zerind';
n{2,2}='arad';
n{2,3}='oradea';
'city';
n{3,1}='sibiu';
n{3,2}='arad';
n{3,3}='oradea';
n{3,4}='fagaras';
n{3,5}='rimnicu vilcea';
'city';
n{4,1}='timisoara';
n{4,2}='arad';
n{4,3}='lugoj';
'city';
n{5,1}='oradea';
n{5,2}='zerind';
n{5,3}='sibiu';
'city';
n{6,1}='fagaras';
n{6,2}='sibiu';
n{6,3}='bucharest';
'city';
n{7,1}='rimnicu vilcea';
n{7,2}='sibiu';
n{7,3}='pitesti';
n{7,4}='craiova';
'city';
n{8,1}='lugoj';
n{8,2}='timisoara';
n{8,3}='mehadia';
'city';
n{9,1}='bucharest';
n{9,2}='fagaras';
n{9,3}='pitesti';
n{9,4}='giurgiu';
n{9,5}='urziceni';
'city';
n{10,1}='pitesti'
n{10,2}='bucharest'
n{10,3}='rimnicu vilcea'
n{10,4}='craiova'
'city'
n{11,1}='craiova';
n{11,2}='pitesti';
n{11,3}='rimnicu vilcea';
'city'
n{12,1}='mehadia';
n{12,2}='lugoj';
n{12,3}='dobreta';
'city'
n{13,1}='giurgiu';
n{13,2}='bucharest';
'city';
n{14,1}='urziceni';
n{14,2}='bucharest';
n{14,3}='hirsova';
n{14,4}='varsui';
'city';
n{15,1}='dobreta'
n{15,2}='mehadia'
n{15,3}='craiova'
'city';
n{16,1}='hirsova';
n{16,2}='urziceni';
n{16,3}='eforie';
'city';
n{17,1}='varsui';
n{17,2}='iasi';
n{17,3}='urziceni';
'city';
n{18,1}='eforie';
n{18,2}='hirsova';
'city';
n{19,1}='iasi';
n{19,2}='neamt';
n{19,3}='vaslui';
'city';
n{20,1}='neamt';
n{20,2}='iasi';
city=n{1,1};
for i=1:20
for j=1:5
if strcmp(n{i,j},goal)
list{i,j}=[goal ' *GOAL*'];
break;
else
list{i,j}=n{i,j};
end
end
end
list{i,j}=n{i,j}
但它并没有向我显示以前的城市,我希望它向我展示从Arad到Buhcarest的所有方式,例如: 阿拉德 - >乌 - >弗格拉什 - >布加勒斯特 arad - > timisoara - > lugoj - > mehadia - > dobreta - > craiova - > rimnicu vilcea - > sibiu - > fagaras - >布加勒斯特 我不想要最短的路,我想要从阿拉德到布加勒斯特的所有方式
答案 0 :(得分:0)
有一些很棒的网络分析方法可用于此类事情:
你可以通过构建adjacency matrix网络并利用矩阵的力量来找到1跳,2跳,3跳旅程等来实现这一目标......
近似matrix exponential将为您提供从地图上任意城市到任何其他城市的总旅行次数。