
216
Chapter 12
else { // Right interval larger, so split it
try = sqrt ( mid * right ) ; // Split ratio in half
try_score = evaluate ( nvars , npops , ntrain , tsets , model, try ,
outputs ) ;
if ((try_score > mid_score) ||
((try_score == mid_score) && (left_score < right_score))) {
left = mid ;
left_score = mid_score ;
mid = try ;
mid_score = try_score ;
}
else {
right = try ;
right_score = try_score ;
}
}
if ((left_score == mid_score) && (right_score == mid_score))
break ; // Totally flat, so quit trying
}
DONE:
*sigma = mid ;
return mid_score ;
}
evaluate - Local routine to evaluate performance for a given sigma
*/
static int evaluate ( ...