www.pudn.com > segment_ga.rar > select1.m


function s1=select1(X1,adapt_value1) 
     
    %选择算子 
     
    population=10; 
     
    total_adapt_value1=0; 
    for i=1:population 
        total_adapt_value1=total_adapt_value1+adapt_value1(i); 
    end 
    adapt_value1_new=adapt_value1/total_adapt_value1; 
     
    max_adapt_value1=max(adapt_value1);                               % 10%精英策略 
    s1(1)=round(mean(X1(find(adapt_value1==max_adapt_value1)))); 
         
    r=rand(1,population-1); 
     
    for i=2:population                                                % 90%轮盘赌法 
        temp=0; 
        for j=1:population 
            temp=temp+adapt_value1_new(j); 
            if temp>=r(i-1) 
                s1(i)=X1(j); 
                break; 
            end 
        end 
    end