2014-10-20 82 views
-4

最大化多項式如何使用遺傳算法
F(X) = X3 -97X2 +2700X+200X爲非負整數且小於或等於31要使用遺傳算法

+0

你在問什麼?你需要知道遺傳算法是什麼或它是如何工作的?或者如何實現它?或者是其他東西? – zegkljan 2014-10-20 12:45:26

+0

不,只是我需要上述的解決方案。如果您可以請求我在java/cpp中提供代碼。 – 2014-10-20 12:47:28

回答

0

對於這樣一個多項式,它可能是最大化以下多項式更好計算的F(x)的衍生物,即F'並使用F'弄清楚的F單調區域(即區,其中F(x)要麼單調增加或decreasing`。

然後,您可以選取距離單調區域邊界最近的整數,並將搜索範圍限制爲少數。

使用遺傳算法在這裏不太可能有效,因爲基因只是一個數字。如果你突變基因,你基本上是在做局部搜索和切換數字,這可能比看斜坡/梯度效果差得多。

+0

有了這樣一個小的搜索空間(32個數字),我甚至都懶得實施衍生工具。只需循環遍歷'X'的可能值並查看哪個值最大。 – Degustaf 2014-10-20 13:00:36

+0

@Degustaf。你是對的。對於這樣一個小的搜索空間,蠻力搜索可以解決任何優化問題。 – tinlyx 2014-10-20 13:19:59