www.pudn.com > anttsp.rar > as_cand_next_tour.m, change:2008-04-20,size:772b


function next_city=as_cand_next_tour(cand_list,cand_length,city_num,pres_city,choice_info,tempant) 
%使用最近邻候选列表和随机比例规则构建路径 
sum_prob=0; 
for j=1:cand_length 
    if tempant.visited(cand_list(pres_city,j))==1 
        selc_prob(j)=0; 
    else 
        selc_prob(j)=choice_info(pres_city,cand_list(pres_city,j)); 
        sum_prob=sum_prob+selc_prob(j); 
    end 
end 
if sum_prob==0                    %候选列表城市都已访问时不使用候选列表 
    next_city=acs_next_tour(pres_city,city_num,choice_info,tempant); 
else                              %轮盘赌 
    k=rand*sum_prob;                                  
    n=1; 
    p=selc_prob(n); 
    while(p<k) 
        n = n +1; 
        p=p+selc_prob(n); 
    end 
    next_city=cand_list(pres_city,n); 
end