8

我正在尝试建立一个由神经网络控制的代理的简单进化模拟。在当前版本中,每个代理都有一个带有一个隐藏层的前馈神经网络。环境包含固定数量的食物,用红点表示。当智能体移动时,他会失去能量,当他靠近食物时,他会获得能量。能量为 0 的特工死亡。神经网络的输入是智能体的当前角度和到最近食物的向量。每个时间步长,每个智能体的运动角度都会根据其神经网络的输出而改变。目的当然是观察一段时间后觅食行为的演变。然而,什么也没有发生。

不知道问题是神经网络的结构(太简单了?)还是繁殖机制:为了防止种群爆炸,初始种群大约是 20 个智能体,随着种群接近 50,繁殖机会接近零。当复制确实发生时,通过从头到尾遍历代理列表来选择父节点,并检查每个代理的 0 到 1 之间的随机数是否小于该代理的能量与总和之间的比率。所有代理的能量。如果是这样,则搜索结束并且该代理成为父代理,因为我们向环境中添加该代理的副本,该代理在其神经网络中的一个或多个权重中具有一定的突变概率。

提前致谢!

4

2 回答 2

6

如果环境足够温和(例如,很容易找到食物),那么随机移动可能是一个完全可行的策略,并且繁殖成功可能比其他任何因素都更受运气的影响。还要考虑意想不到的后果:例如,如果后代与其父代同居,那么两者都会立即在当地相互竞争,从长远来看,这可能是不利的,足以导致两者的死亡。

要测试您的系统,请引入一个具有“预制”神经网络的个体,该神经网络设置为将个体直接引导至最近的食物(您的模型使得这样的东西存在并且很容易写下来,对吧?如果没有,那就是期望它发展是不合理的!)。将那个人引入你在愚蠢的群众中的模拟。如果个人没有迅速占据主导地位,则表明您的模拟没有设置为强化这种行为。但是,如果个体享有繁殖成功并且它和它的后代接管了,那么你的模拟正在做一些正确的事情,你需要寻找其他地方,因为这种行为没有进化。

更新以回应评论:

在我看来,这种角度和向量的混合是可疑的。个人是否可以进化为“直接向最近的食物移动”行为必须取决于您的网络可以如何近似 atan 函数(我持怀疑态度)。同样,这表明需要进行更多测试:

  • 抛开所有的生态模拟,只测试扰动你的随机网络风格的人群,看看它们是否可以朝着预期的功能发展。
  • (更简单,更好)让网络输出一个向量(而不是一个角度):个人应该移动的方向(当然这意味着有 2 个输出节点而不是一个)。显然,“直接向食物移动”策略只是“向食物方向”向量分量的直接传递,然后有趣的是看看你的随机网络是否朝着这个简单的“恒等函数”进化(也应该允许引入如上所述的现成优化个体)。

我也怀疑“固定数量的食物”。(我假设您的意思是一旦消耗了一个红点,就会引入另一个红点)。一个更“现实”的模型可能是以恒定的速度引入食物,而不是强加任何人为的人口限制:人口限制是由食物供应的限制决定的。例如,如果您每分钟引入 100 个单位的食物,而个人每分钟需要 1 个单位的食物才能生存,那么您的模拟应该会发现它趋向于 100 个人的长期平均人口,而无需任何钳位来避免“人口爆炸” ”(尽管繁荣与萧条,盛宴或饥荒的动态实际上可能会根据细节出现)。

于 2013-02-21T19:59:59.303 回答
4

这听起来像是强化学习的一个问题,也有一本很好的在线教科书

于 2013-02-21T18:55:39.967 回答