|
1
|
| codymanix · 技术社区 · 7 年前 |
|
|
1
3
从我的观点来看,系统的图灵完全性不是这里的主要问题。当使用遗传算法进化某种策略应用于某个游戏环境时,该算法的一个特点——这将是有益的——是——我相信——解决方案的“基因组”中的微小变化会导致行为中相当小的变化。如果这不是真的,那么每一个变异或交叉都会产生一个行为完全不同的实体,在这种情况下,遗传算法要达到某种最优可能会有问题——因为适应度函数的范围不够连续。 话虽如此,我还是有理由尝试在基因组中编码一种形式的决策树,并对其进行进化。然而,根据我的经验,AI游戏中的遗传算法在用于“计算”某些特定行为的某些参数的最优值,然后“进化”行为本身时效果最好。 |
|
|
2
1
抽象语法树(AST)相当于用领域特定语言表示的程序流。如果语言由可能的命令组成:up、left、down、right,那么可能的AST是:up、up、up、left。遗传编程试图做的是进化AST,这意味着找出解决游戏的许多不同程序流。更好的方法不是只进化AST,而是进化语法。这意味着,要修改用于制定AST的领域特定语言。例如,通过添加一个附加命令,如gocenter。新语言现在包含5种可能的行为:gocenter、up、left、down、right,并且有可能测试出新的人群。为了系统地发展语法,需要通过互动学习语法。这意味着,我们从一个空语法开始,小心地添加新的可能的动作命令。在文献中,这被描述为语法归纳法,是指从人类互动中获取输入流并从头生成新语言。有了这种语法,就有可能发展出可能的AST。
|