我正在尝试使用DEAP在Python中编写一个遗传程序,并具有多个零参数函数作为终端。我希望能够使用例如if_then_else原语将它们组合在一起,但是该原语一直试图调用我的其他int类型的终端。我想使用强类型的pset来避免这种情况,但是DEAP不允许我在添加强类型的基元时使用None类型的参数,该怎么办?
这是定义到目前为止我拥有的pset的代码
disable
答案 0 :(得分:1)
您可以创建一个虚拟类来表示您的布尔类型,因为bool和int是“相同类型”。
DEAP的一位作者提出了这样的解决方案:
class Bool(object): pass
pset.addPrimitive(xxxx, [yyy, yyy], Bool)
您可以阅读discussion about that on github,也许会有所帮助。