我使用遗传算法创建了一个俄罗斯方块播放器,并面临一些问题。我已经阅读了很多相关的作品,但他们没有给我足够的关于 GA 的细节。
问题是我的代理似乎很快就卡住了……我使用评估函数涵盖了 4 个特征:高度、覆盖的孔、平整度和清除的行数。我读了一些使用相同评估的论文,并且能够执行数千行。
在 600 代之后,拥有 100 名智能体,最好的智能体平均只能做 260 行,这是蹩脚的。所有代理都在演奏相同的乐曲序列。
我的 GA 的详细信息:
世代:600 人口:100
基因:4 个浮点值的数组,介于 0 和 1 之间。
均匀交叉以一定的概率发生,并以一定的概率在两个父母之间交换基因。
突变以一定的概率发生,在这里我尝试了 3 种不同的方法:交换基因,用随机值替换基因,或向基因添加一些噪声值。
我有 50% 的精英率,并注意到一些优秀的特工被选中并生出更差的特工,污染了人口。
选择是轮盘赌...
如果有人能给我关于交叉和变异的最佳方法的详细信息,我很感激!
谢谢,很抱歉这么长的帖子!