NSGA-2源代码分析(8)rancon.h

 

 

找出当前Pareto级别的前沿,代码修改如下:

if ( * err_ptr1  <   1.0e-6   &&   * err_ptr2  >   1.0e-6  )
{
    pop_ptr
-> ind[j].flag  =   0 ;
}
else   if ( * err_ptr1  >   1.0e-6   &&   * err_ptr2  <   1.0e-6  )
{
    pop_ptr
-> ind[i].flag  =   0 ;
    
break ;
}
else
{
    
if ( * err_ptr1  <   * err_ptr2)
    {
        pop_ptr
-> ind[j].flag  =   0 ;
    }
    
else   if ( * err_ptr1  >   * err_ptr2)
    {
        pop_ptr
-> ind[i].flag  =   0 ;
        
break ;
    }
    
else
    {
        val 
=  indcmp3(ptr1,ptr2);
        
if ( val  ==   2  )
        {
            pop_ptr
-> ind[i].flag  =   0 ;
            
break ;
        }
        
else   if ( val  ==   1  )
        {
            pop_ptr
-> ind[j].flag  =   0 ;
        }
        
else   if ( val  ==   3  )
        {
            
++ nondom;
            
if ( pop_ptr -> ind[j].flag  !=   0  )
            {
                pop_ptr
-> ind[j].flag  =   3 ;
            }
        }
    }
}

 

你可能感兴趣的:(代码分析)