genetic-programming - 基因编程的代表人物

标签 genetic-programming exponent

我想要终端变量具有实值指数(不仅仅是整数)。 例如,假设我想演化一个函数 y = x^3.5 + x^2.2 + 6。我应该如何进行?我还没有看到任何 GP 实现可以做到这一点。 我尝试使用幂函数,但有时初始解决方案具有如此多的指数,以至于评估值超过“双”界限! 任何建议将不胜感激。提前致谢。

最佳答案

DEAP (在 Python 中)实现它。事实上有一个example为了那个原因。通过在原始集中添加来自 Python 的 math.pow,您可以实现您想要的。

pset.addPrimitive(math.pow, 2)

但是使用 pow 运算符,您可能会得到类似 x^(x^(x^(x))) 的结果,这可能是不需要的。您应该添加一个限制(通过某种方式,我不确定),在您的树中允许使用 pow 的位置(就在叶子或类似的东西之前)。

OpenBeagle (在 C++ 中)也允许这样做,但您需要使用 <math.h> 中的 pow 开发自己的原语,您可以使用 Sin 或 Cos 原语作为示例。

关于genetic-programming - 基因编程的代表人物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10183352/

相关文章:

java - 我们如何优化 CPU 密集型 Java 应用程序?

Java pow BigInteger 实现

c - 反转长 double 的指数给了我一个疯狂的结果

algorithm - 当你只有一大组输入/输出对时,你如何找到函数的定义?

genetic-algorithm - 在遗传算法中我们应该产生多少个后代?

genetic-programming - 基因表达编程与笛卡尔遗传编程的区别

python - 为什么 NumPy.exp 显示的结果与 C 中的 exp 不同

c - 当 b 可能为负数或小数时,如何编写一个函数来计算 a^b?

function - 返回列表的立方体函数的 CLISP 递归幂

python - 编码细菌 : evolving mathematical behavior