使用遗传算法寻找函数的最小值

时间:2017-01-15 19:00:25

标签: math genetic-algorithm evolutionary-algorithm genetic-programming genetic

我正在研究遗传算法项目。我需要使用基本遗传算法找到Rastrigin函数或Easom函数(对于y = 0)的最大值/最小值的代码。

1 个答案:

答案 0 :(得分:2)

好的,我们看一下Easom的功能。

问题陈述

在:

找到最低要求

f(x)= -cos(x1)cos(x2)exp( - (x1-phi)^ 2 - (x2-phi)^ 2)

代表选择

例如实数的向量。每个元素的值的间隔是<-5; 5个

<强>健身

GA的主要问题。例如,我们有两个人:

个人1: [-1 | 2.7 | -0.68 | 3.78 || -2.14 | 1.63 | -1.75 | -3.8]

个人2: [1 | 1 | 1 | 1 || -0.5 | -0.5 | -0.5 | -0.5]

第一个人被解码为4.8和-6.06。他的健身功能是-9.23073 ...×10 ^ -40。

第二个人被解码为4和-2。他的健康状况是 -4.30104456071396041116767479151655914468678005731098 ...×10 ^ -13

现在问题。健身是如此之低,所以我们可以将两者都考虑为0.你有两种选择。等待戈多(也许在某一代出生的占卜个体具有全球最小值)。或者你可以使用启发式。启发式是基于对两个值,主要适应度和次要适应度的适应度进行划分。主要适应度是函数中x的值。此值始终为0,因此start无法搜索。轻微的健身是启发式的,目的是为搜索提供一种方式。您定义了一些函数,例如x的平均值。因此,对于个体1的轻微适应性为-0.63且个体2为1.因此,个体2“更好”并且他将具有更高的选择概率等。

轻微的健身只会让你的搜索方式 这可能是错的吗?是的,它是启发式的。 重要的是,次要功能目的是为具有相同主要功能的个人创建偏好。当主要适应性不同时,我们使用主要适应度作为定位的价值。

示例:

Individual1健身:专业:-0.1 |轻微:3

Individual2健身:专业:0 |轻微:8

第一个因为主要健身而更好。