要求节点0作为路径的起点和终点,现有3,4,5这三个节点,排列组合后会产生6条路径0-3-4-5-0、0-3-5-4-0、0-4-3-5-0、0-4-5-3-0、0-5-3-4-0、0-5-4-3-0. 但是后三条路径与前三条路径是对称的。现在想如何直接生成前三条路径,而不是在生成6条路径用条件后删除后三条路径。
多谢大神们解答。
例如以下代码中的Chrom01中包含对称路径,导致矩阵元素过多。
for i=5
T=1:9;
Chrom1=nchoosek(T,i);%从1到9中随机选取4个数进行不同组合
k1=size(Chrom1,1);
Chrom1=Chrom1+1;
%% 对i个节点进行“排列”得到Chrom01(Chorm01中存在对称路径)
Chrom01=[];
for ii=1:k1
q=perms(Chrom1(ii,:));
Chrom01=[Chrom01;q];
end
end