gpt4 book ai didi

c++ - 使用遗传算法收敛到 2 变量函数的全局最小值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:54:57 25 4
gpt4 key购买 nike

我正在使用 Visual Studio C++ 作为平台来尝试收敛到全局最小值。

假设该函数是一个黑盒函数,如果我输入 (x,y),我会得到 z。

而且所使用的算法是一种实值遗传算法,我没有将样本转换为二进制代码,而是转换为 float 。

https://karczmarczuk.users.greyc.fr/TEACH/IAD/GenDoc/carrGenet.pdf

我使用了附录 B 中提到的算法。用于查找 2 变量函数的最小值。

f(x,y) = z

我进行了网格值搜索以获取问题的图表。我附上了图表。

f(x,y) = z

从图中可以看出,图中的最小值仅在 (0.6, 1.3) 的一个点

如果我使用 0.1 的倍数的 (x,y) 的离散值,算法会收敛。例如。 0.8,0.9,2.2,5.6 等。否则不收敛。

无论如何我可以修改图形以适应算法,或者我是否可以修改算法以最小化函数?

最佳答案

这里的全局最优值非常尖锐。你需要很多运气才能掉进去(即很多随机的人实际上很少有机会找到它)。

如果你设法让一个人站在斜坡上,GA 将收敛到最优值。所以我建议获得更平滑的最佳值或尝试更多随机值。

关于c++ - 使用遗传算法收敛到 2 变量函数的全局最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39790777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com