遗传算法找到2个变量的函数的最小值

时间:2015-08-03 13:12:44

标签: mathematical-optimization genetic-algorithm

我正在研究GA,我想实现它以找到f(x,y)的最小值 恩。 Z = sin3x + cos4y 现在,我的问题是我应该如何治疗染色体x和y。他们应该是2个独立的人口吗?它们应该编码在同一条染色体上吗?

1 个答案:

答案 0 :(得分:0)

首先 - 你的功能是可分的。这意味着您可以单独优化每个维度(x和y) - 例如,您可以修复y到0并且您只关注x并找到最小值。然后你修复x并在y中找到最小值。然后你就完成了。如果你的功能不可分离,你就无法做到。不可分离函数的最简单示例是f(x,y)= xy。

对GA来说 - 这取决于GA的意思。如果你真的意味着经典的GA演化二进制字符串而不是实值优化中的坏方法。更好的方法是使用实​​值GA(或EA更精确)。在那一个中​​,基因型由实数本身组成,即x和y(因为它们都是解决方案,而不仅仅是其中之一)。您当然需要使用不同的变异和交叉运算符。看看我博客上的post,我写的就是那个(你可以安全地跳到" Real-valued Evolution"部分)。