找出当前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 ;
}
}
}
}
{
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 ;
}
}
}
}