遗传算法和俄罗斯方块

Fer*_*ndo 10 algorithm genetic tetris

我正在使用遗传算法创建一个俄罗斯方块播放器,并面临一些问题.我已经阅读了很多相关的作品,但他们没有给我足够的GA细节.

问题是我的代理似乎很快被卡住了...我使用评估功能采取了4个功能:高度,覆盖的孔,平整度和清除行数.我读了一些使用相同评估的论文,并且能够完成数千行.

经过600代,拥有100个代理商,最好的代理商平均只能做260行,这是蹩脚的.所有代理都在播放相同的片段.

我的GA详情:

世代:600人口:100

基因:4个浮点值的数组,介于0和1之间.

均匀交叉以一定的概率发生,并且以一定的概率在两个父母之间交换基因.

突变发生在一定的概率,这里我尝试了3种不同的方法:交换基因,用随机值替换基因,或者为基因添加一些噪音值.

我有50%的精英率,并注意到一些好的特工正在被选中并生下更糟糕的特工,污染了人口.

选择是轮盘赌...

如果有人能给我详细介绍交叉和变异的最佳方式,我很感激!

谢谢,对不起这篇长篇文章感到抱歉!

RBa*_*ung 3

评价函数似乎存在一些差异。您描述了四个功能:

\n\n
    \n
  1. 高度,
  2. \n
  3. 覆盖孔,
  4. \n
  5. 平整度和
  6. \n
  7. 清除的行数
  8. \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\n

因此,您似乎缺少评估函数和基因构成中的“井”功能。

\n