问题标签 [es-hyperneat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Snake AI 不使用 NEAT 进化
我正在为蛇开发一个简单的 AI,它需要 24 个输入(8 个方向,3 个与墙壁、食物和自己身体的距离)和 4 个输出,顶部、底部、右侧、左侧,我正在使用整洁的 python 库整洁的算法。已使用多种配置,但均未成功。
配置前馈.txt
Snake_AI.py
编辑:仍然无法弄清楚,所以我放弃了这个项目。
algorithm - NEAT/HyperNEAT 算法中的重复和中间结果
我目前正在用 C 语言实现类似 HyperNEAT 的算法,但我面临着算法的两个关键方面,我无法正确实现。我一直在研究 NEAT 和 HyperNEAT 算法的原始源代码,但没有成功。由于内部反馈循环,这些问题与 NEAT/CPPN 重复有关。
首要问题
带有反馈回路的 NEAT/CPPN 中正确的计算顺序是什么?我在下图中提供了拓扑中的递归示例:
在最初的计算中,反馈链接不包含以前计算的任何结果。我应该使用空链接执行第一次计算吗?
第二期
想象一下,我想通过将像素坐标作为输入传递给 NEAT 来生成图像。据我所知,NEAT 模型每个像素应该接收一个输入样本。我应该保留拓扑的中间结果与以前的像素吗?如果 NEAT 是前馈的,则此问题没有影响,但如果它呈现反馈循环,则结果会发生变化。(当间接编码基板时,同样的问题适用于 HyperNEAT 中的 CPPN)。
我知道这些问题也与图论有关,但我想知道它们是如何在 NEAT 算法中执行的。
谢谢!
python - NEAT 的 TypeError
在尝试制作蛇 AI 时,我遇到了 NEAT 的 TypeError:
代码
另一个函数但同一个类中的代码
函数 getData 的样子
config-feedforward.txt 的部分代码
python - NEAT AI 没有动力去获取食物
我正在尝试使用 Python 中的 NEAT 库创建蛇 AI。但是由于某种原因,这条蛇不想得到食物。我已经将它作为数据传递给系统,并且我还引入了一个系统,如果蛇没有得到食物,它们会失去一个适应点,但是蛇要么什么都不做,要么它继续快速左右移动,所以它留在同一个地方并继续活着。
如何让蛇想要获取食物?
蛇运动代码:
为蛇添加适应度的代码:
为蛇获得“奖励”的功能:
获取蛇数据的函数:
对于数据,我传递了它的 x 和 y 位置,以及食物在屏幕上的位置。
蛇选择远离食物,不知道为什么?
我已经活了 50 代,但这条蛇仍然什么都不做,它几乎不会四处走动,也不会去觅食。我尝试重新加载文件大约 10 次,而蛇只吃过一次食物,这是偶然的。
我已经根据蛇与食物的距离(然后除以 500)添加了奖励,但这仍然没有改变任何东西。
我给了蛇它与食物的角度,它的距离,它仍然没有改变任何东西。蛇有时会四处走动,但出于某种原因,它们并没有瞄准食物。