@VisibleForTesting
UniformCrossover(final RandomGenerator rng, final double p) {
this(new Function<Integer, Iterable<Integer>>() {
@Override
public Iterable<Integer> apply(final Integer bitStringLength) {
if (bitStringLength * p < 0.01) {
return Samplings.random(rng).withoutReplacement().sample(
ContiguousSet.create(Range.closedOpen(0, bitStringLength), DiscreteDomain.integers()),
new BinomialDistribution(rng, bitStringLength, p).sample()
);
} else {
return Iterables.filter(
ContiguousSet.create(Range.closedOpen(0, bitStringLength), DiscreteDomain.integers()),
new Predicate<Integer>() {
@Override
public boolean apply(@Nullable final Integer input) {
return p > rng.nextFloat();
}
});
}
}
});
}
Recombinations.java 文件源码
java
阅读 30
收藏 0
点赞 0
评论 0
项目:greyfish
作者:
评论列表
文章目录