我正在尝试使用DEAP构建类型化的遗传编程解决方案。
我从一张黑白三角形的照片和不同三角形的 3 个顶点开始程序。希望程序能够提出一个程序,将给定三角形的顶点移近照片中的那个。我为它提供随机常数、算术原语加、减等,if-then-else。并在给定坐标处测试 is_black 和 is_white。
我已经设置了所有的原语,但我一直遇到这个错误,这似乎是在告诉我添加更多提供或使用(不确定哪个?!)照片的原语。
我发现错误很困难,因为:
- 我有使用照片作为输入的原语。
- 我没有生成照片作为输出的图元。
- 我不想变形照片,只是消耗它。
我认为获胜的程序将是一长串命令,例如“如果(10,10)是黑色,将(3,2)添加到顶点1”,有些令人作呕。
但是对于 deap 的工作原理,我可能有一些不正确的理解。如何克服这样的错误消息?
File "/usr/local/Cellar/python3/3.4.1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/random.py", line 255, in choice
raise IndexError('Cannot choose from an empty sequence')
IndexError: The gp.generate function tried to add a primitive of type '<class 'triangles.Photo'>', but there is none available.
gp.gengrow
此错误通常在尝试生成起始人口时触发。
可能/可能不相关的是我没有太多的终端方式:我不清楚它们如何适用于我的问题。
我希望听到蟋蟀的声音,但如果有人真的对这个问题感兴趣并想查看代码,或者至少是原始集,我可以将其粘贴或粘贴在某个地方。认为它已经足够漫无边际了;虽然我专注于特定的错误消息,但我希望这更多的是我对 GP/DEAP 工作的一般(不)欣赏是错误的。