Fer*_*ndo 10 algorithm genetic tetris
我正在使用遗传算法创建一个俄罗斯方块播放器,并面临一些问题.我已经阅读了很多相关的作品,但他们没有给我足够的GA细节.
问题是我的代理似乎很快被卡住了...我使用评估功能采取了4个功能:高度,覆盖的孔,平整度和清除行数.我读了一些使用相同评估的论文,并且能够完成数千行.
经过600代,拥有100个代理商,最好的代理商平均只能做260行,这是蹩脚的.所有代理都在播放相同的片段.
我的GA详情:
世代:600人口:100
基因:4个浮点值的数组,介于0和1之间.
均匀交叉以一定的概率发生,并且以一定的概率在两个父母之间交换基因.
突变发生在一定的概率,这里我尝试了3种不同的方法:交换基因,用随机值替换基因,或者为基因添加一些噪音值.
我有50%的精英率,并注意到一些好的特工正在被选中并生下更糟糕的特工,污染了人口.
选择是轮盘赌...
如果有人能给我详细介绍交叉和变异的最佳方式,我很感激!
谢谢,对不起这篇长篇文章感到抱歉!
评价函数似乎存在一些差异。您描述了四个功能:
\n\n但是,您引用的论文描述了五个功能:
\n\n\n\n\n代理用来确定 board\xe2\x80\x99s 状态效用的函数是根据状态计算的数值特征的加权线性和。Colin Fahey\xe2\x80\x99s 代理使用了这些特征:桩高、封闭孔的数量和井的数量(Fahey 2003)。我们添加的特征是刚刚制作的行数,以及表示堆的 \xe2\x80\x9cbumpy\xe2\x80\x9d 数量的数字。
\n
(强调我的)
\n\n因此,您似乎缺少评估函数和基因构成中的“井”功能。
\n