决策树的遗传算法

问题描述 投票:0回答:0

我在 pygame 中制作了一个自然选择模拟器,其中有十个角色,每个角色接受传感器输入,这些传感器输入被馈送到决策树(具有随机初始化的节点)并告诉他们向左移动、向右移动或跳跃。他们的适应度是根据他们能够吃的食物量减去他们不吃的最大时间计算的(由 pythons time.time() 函数计算)。每次其中一个角色吃一个食物时,食物就会在随机位置产生。一代结束后,我的程序选择具有最高适应度分数的角色并将它们放入下一代,而不进行任何突变。然后我从上一代中随机选择另外 9 个角色,他们有 15% 的机会发生突变。在这种情况下,突变意味着字符决策树将随机节点中的值随机分配一个新值。这似乎是一个标准的遗传算法,但是当我运行它超过一千代时,似乎没有任何改进,甚至适应度略有下降。我不知道出了什么问题。

我查阅了关于如何为二元决策树做遗传算法的文章并遵循了他们的算法。

python simulation decision-tree genetic-algorithm
© www.soinside.com 2019 - 2024. All rights reserved.