trainer.py 文件源码

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

项目:2048 作者: vhalis 项目源码 文件源码
def breed_new_generation(self, weights, scores=None):
        # Weights is a list of lists of numpy.ndarrays
        # Breed generation in a 'seed' competition format
        seeds = len(weights)
        partner_offset = -1 if self.polygamous else 0
        polygamy_offset = 0 if not self.polygamous else 1
        next_gen = [None for _ in xrange(self.generation_size)]
        for offspring_num in xrange(self.generation_size):
            idx = offspring_num % seeds
            if idx == 0:
                partner_offset += polygamy_offset
            pair_idx = (seeds - offspring_num - partner_offset) % seeds
            if pair_idx == idx:
                # Don't breed with self - use highest seed instead
                pair_idx = 0 if idx != 0 else 1
            if scores:
                next_gen[offspring_num] = self.breed_organisms(
                    weights[idx], weights[pair_idx],
                    scores[idx], scores[pair_idx]
                    )
            else:
                next_gen[offspring_num] = self.breed_organisms(
                    weights[idx], weights[pair_idx],
                    )
        return next_gen
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号