www.gusucode.com > 个集合遗传算法,蚁群算法,粒子群算法的混合算法解决TSP问题的MATLAB程序 > aco-ga-pso-tsp/cross_tsp_a.m

    %cross_tsp_a.m
%交叉策略A
function cnew=cross_tsp_a(c1,c2,n)
j1=ceil(n*rand)%ceil为向上取整函数
j2=ceil(n*rand)
j3=min(j1,j2)
j4=max(j1,j2)
for j=j3:j4
    i=find(c1==c2(j));
    for k=i:n-1
        c1(k)=c1(k+1);
    end
end
mm=n-(j4-j3+1)+1
j5=ceil(mm*rand)
cnew(1:j5-1)=c1(1:j5-1);
cnew(j5:j5+j4-j3)=c2(j3:j4);
cnew(j5+j4-j3+1:n)=c1(j5:mm-1);
%应该是策略C,在第二个串中随机选择一个交叉区域,加到第一个串的随机的位置。
%删除第一个串中交叉区中出现过的城市。