使用遗传算法寻找函数的最小值
Finding minima of a function using genetic algorithm
我在做遗传算法项目。我需要使用基本遗传算法找出 Rastrigin 函数或 Easom 函数(对于 y=0)的 maxima/minima 的代码。
好,我们看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,因此无法开始搜索。 Minor fitness 是启发式的,目的是为搜索提供一种方法。您定义了一些函数,例如 x 的平均值。所以 individual1 的 minor fitness 是 -0.63,individual2 是 1。所以 individual2 是 "better" 他将有更高的选择概率等
轻微健身只为您的搜索提供一条途径。
这样会错吗?是的,这是启发式的。
重要的次要功能目的是为具有相同主要功能的个人创造偏好。当主要适应度不同时,我们使用主要适应度作为方向值。
示例:
Individual1 健身:主要:-0.1|未成年人:3
Individual2 健身:专业:0|未成年人:8
第一个更好,因为主要健身。
我在做遗传算法项目。我需要使用基本遗传算法找出 Rastrigin 函数或 Easom 函数(对于 y=0)的 maxima/minima 的代码。
好,我们看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,因此无法开始搜索。 Minor fitness 是启发式的,目的是为搜索提供一种方法。您定义了一些函数,例如 x 的平均值。所以 individual1 的 minor fitness 是 -0.63,individual2 是 1。所以 individual2 是 "better" 他将有更高的选择概率等
轻微健身只为您的搜索提供一条途径。
这样会错吗?是的,这是启发式的。
重要的次要功能目的是为具有相同主要功能的个人创造偏好。当主要适应度不同时,我们使用主要适应度作为方向值。
示例:
Individual1 健身:主要:-0.1|未成年人:3
Individual2 健身:专业:0|未成年人:8
第一个更好,因为主要健身。