我无法弄清楚遗传编程的A.I.可以确定最终方程中何时应该有一个常数。如果我采用公式F(m)= ma; F(m)= m9.8,A.I。怎么样知道9.8实际是什么数字?我理解,不是将最终数字放在二叉树中,而是实际上可以放置一个描述常量的符号,然后以某种方式计算或猜测它的值是什么。
谢谢
答案 0 :(得分:2)
给定一组预定义的常量(终端集的一部分),它们将被组合形成新的常量(使用树形表示,任何只有数字常量的子树,因为叶子本身可以被认为是一个新的数字常数)。
即使使用单个常量(c
),系统也会创建:
c / c
); 1.0 + 1.0
即c / c + c / c
); 1.0 / 2.0
即c / c / (c / c + c / c)
); 9.8
)。有时会使用名为“短暂随机常数”(Koza)的特殊终端。对于初始总体中的每个短暂,生成指定范围内的随机数。然后将这些随机常数移动并合并。
无论如何,即使使用短暂的随机常数,GP也很难产生正常的常数(Koza说“数字常数的发现是GP壁橱中的骨架”)。
因此,在进化过程中/之后可以使用其他技术,例如:数字突变,爬山......
这些混合系统通常在成功率方面有显着改善(至少对于回归问题)。