Matlab的图论工具箱 3——渡河问题。
<p>%渡河问题!%时间:2015-6-20
clc,
clear
close all
a=[1 1 1 1;1 1 1 0;1 1 0 1;1 0 1 1;1 0 1 0
0 1 0 1;0 1 0 0;0 0 1 0;0 0 0 1; 0 0 0 0]; %每一行是一个可行状态
b=; %每一行是一个转移状态
w=zeros(10); %邻接矩阵初始化
for i=1:9
for j=i+1:10
for k=1:4
if findstr(mod(a(i,:)+b(k,:),2),a(j,:))
w(i,j)=1;
end
end
end
end
w=w'; %变成下三角矩阵
=find(w); %找非零元素
c=sparse(i,j,v,10,10) %构造稀疏矩阵
=graphshortestpath(c,1,10,'Directed',false) % 该图是无向图
%------------------------可以套用----------------------------------------
h = view(biograph(c,[],'ShowArrows','off','ShowWeights','off'));</p><p>set( h.Nodes(path),'Color', )
fowEdges=getedgesbynodeid( h, get( h.Nodes(path),'ID' ) );
revEdges=getedgesbynodeid( h, get( h.Nodes(fliplr(path)),'ID' ) );
edges=;
set(edges,'LineColor',); %为了将来打印清楚,边画成黑色
set(edges,'LineWidth',1.5); %线型宽度设置为1.5</p><p><p><p><p><p><p>
</p>
页:
[1]