1

我無法弄清楚遺傳編程的A.I.可以確定最終方程中何時應該有一個常數。如果我取公式F(m)= ma; F(m)= m9.8,A.I.知道實際數字9.8究竟是什麼?我明白,不是把最後的數字放在二叉樹中,而是實際上可以放一個描述常量的符號,然後以某種方式計算或猜測它的價值。遺傳編程中的實數(常量)

謝謝

回答

2

給定一組預定義的常量(終端集的一部分),他們會結合形成新的常量(使用樹型表示,任何子樹只用數字常量如葉可本身被認爲是一個新的數字常量)。

即使具有單個恆定(c)系統將創建:

  • 1.0常數(常數由本身分爲:c/c);
  • 2.0常數(1.0 + 1.0c/c + c/c);
  • 0.5常數(1.0/2.0c/c/(c/c + c/c));
  • 許多常量將以這種方式創建(如果你幸運的話...... 9.8)。

有時會使用名爲「短暫隨機常數」(Koza)的特殊終端。對於初始羣體中的每個短暫事件,都會生成一個指定範圍內的隨機數。然後,這些隨機常量被移動併合並。無論如何,即使使用短暫的隨機常量,GP也可能難以生成正確的常量(Koza說「數字常量的發現是GP壁櫥中的骨架」)。因此其他技術可以在演化期間/之後使用,例如,數字突變,爬山......

這些混合系統通常在成功率方面有顯着的改進(至少對於迴歸問題)。