【发布时间】:2014-12-15 09:59:30
【问题描述】:
如何使用遗传算法最大化低于多项式F(X) = X3 -97X2 +2700X+200
当X为非负整数且小于等于31时
【问题讨论】:
-
你要什么?您需要知道什么是遗传算法或它是如何工作的吗?或者如何实施?还是别的什么?
-
不,只有我需要上面的解决方案。如果你可以,请在 java/cpp 中提供代码。
如何使用遗传算法最大化低于多项式F(X) = X3 -97X2 +2700X+200
当X为非负整数且小于等于31时
【问题讨论】:
对于这样的多项式,最好计算F(x) 的导数,即F',并使用F' 计算F 的单调区域(即F(x) 所在的区域)单调递增或递减`。
然后您可以选择最接近单调区域边界的整数,并将您的搜索限制在这少数。
在这里使用遗传算法不太可能有效,因为基因只是一个数字。如果你对基因进行突变,你基本上是在进行局部搜索和切换数字,这可能比查看斜率/梯度效果要差得多。
【讨论】:
X 的可能值,看看哪个值最大。