selection.py 文件源码

python
阅读 17 收藏 0 点赞 0 评论 0

项目:CA-NEAT 作者: mathiasose 项目源码 文件源码
def tournament(population: List[Genome], group_size: int, epsilon: float, **kwargs) -> Iterator[PAIR_T]:
    def get_one(group: Sequence[Genome]) -> Genome:
        r = random()

        if r < epsilon:
            return choice(group)

        return max(group, key=attrgetter('fitness'))

    try:
        assert len(population) > 1
    except AssertionError:
        raise TooFewIndividuals

    while True:
        pool = list(population)  # make a shallow copy

        group_a = sample(pool, group_size)
        a = get_one(group_a)
        pool.remove(a)

        group_b = sample(pool, group_size)
        b = get_one(group_b)

        yield (a, b)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号