Lisp 轮盘赌轮选择示例说明

Lisp 轮盘赌轮选择示例说明,lisp,genetic-algorithm,Lisp,Genetic Algorithm,我有一个关于轮盘赌轮盘选择的lisp程序,我试图理解它背后的理论,但我什么都不懂。 如何计算所选strng的适合度? 例如,如果我有一个字符串01101,它们是如何得到适合度值169的 是01101的二进制编码计算为13,所以我将值平方,得到的结果是169吗 这听起来很蹩脚,但不知何故,我通过这样做得到了正确的答案。因此,你的健身功能是F=X^2 轮盘赌轮盘计算个体(字符串)所占整体的比例(根据其适合度),然后用于为下一代随机选择一组字符串 建议您多读几遍。给定问题的“适应度函数”是任意选择的(

我有一个关于轮盘赌轮盘选择的lisp程序,我试图理解它背后的理论,但我什么都不懂。
如何计算所选strng的适合度?
例如,如果我有一个字符串01101,它们是如何得到适合度值169的

是01101的二进制编码计算为13,所以我将值平方,得到的结果是169吗


这听起来很蹩脚,但不知何故,我通过这样做得到了正确的答案。

因此,你的健身功能是
F=X^2

轮盘赌轮盘计算个体(字符串)所占整体的比例(根据其适合度),然后用于为下一代随机选择一组字符串

建议您多读几遍。

给定问题的“适应度函数”是任意选择的(通常),请记住,随着“适应度”指标的提高,解决方案应接近最优。例如,对于目标是最小化正值的问题,
F(x)
的自然选择是
1/x

对于手头的问题,似乎给出了适应度函数为
F(x)=val(x)*val(x)
,尽管不能仅从(x,F(x))的单个值对中确定

轮盘赌轮选择是一种常用的基于适应度的伪随机选择方法。如果你曾经玩过轮盘赌或看过《命运之轮》,这很容易理解

让我们考虑最简单的情况,其中<代码> f(x)=Valx(x),

假设我们有四个值,
1,2,3和4

这意味着这些“个体”分别具有适合性
1、2、3和4
。现在,单个“x1”的选择概率计算为
F(x1)/(所有F(x)的总和)
。也就是说,由于拟合的总和为
10
,因此选择的概率分别为
0.1,0.2,0.3和0.4

现在,如果我们从累积的角度考虑这些概率,X的值将被映射到下列概率范围:

1 ---> (0.0, 0.1]
2 ---> (0.1, (0.1 + 0.2)] ---> (0.1, 0.3]
3 ---> (0.3, (0.1 + 0.2 + 0.3)] ---> (0.3, 0.6]
4 ---> (0.6, (0.1 + 0.2 + 0.3 + 0.4)] ---> (0.6, 1.0]
也就是说,生成的均匀分布随机变量的实例,例如位于标准化区间内的
R
(0,1]
,位于
4
对应区间内的可能性是
1
对应区间内的四倍

换言之,假设您旋转一个轮盘式结构,每个
x
分配一个扇区,扇区面积与其各自的
F(x)
值成比例,则指示器在任何给定扇区停止的概率与
F(x)值成正比
对于该
x