#include "optimizer/geqo.h"

Go to the source code of this file.
Functions | |
| void | geqo_selection (PlannerInfo *root, Chromosome *momma, Chromosome *daddy, Pool *pool, double bias) |
| void geqo_selection | ( | PlannerInfo * | root, | |
| Chromosome * | momma, | |||
| Chromosome * | daddy, | |||
| Pool * | pool, | |||
| double | bias | |||
| ) |
Definition at line 54 of file geqo_selection.c.
References Pool::data, geqo_copy(), linear_rand(), Pool::size, and Pool::string_length.
Referenced by geqo().
{
int first,
second;
first = linear_rand(root, pool->size, bias);
second = linear_rand(root, pool->size, bias);
/*
* Ensure we have selected different genes, except if pool size is only
* one, when we can't.
*
* This code was observed to hang up in an infinite loop when the
* platform's implementation of erand48() was broken. We now always use
* our own version.
*/
if (pool->size > 1)
{
while (first == second)
second = linear_rand(root, pool->size, bias);
}
geqo_copy(root, momma, &pool->data[first], pool->string_length);
geqo_copy(root, daddy, &pool->data[second], pool->string_length);
}
1.7.1