3

我有一个问题,我想根据一些适应度函数使用遗传算法搜索 3D 空间中的最佳位置。因为我正在寻找一个位置,所以我的染色体由 3 个浮点数表示。目前,交叉是通过从一个父级获取 1 或 2 个数字并从另一个父级获取剩余的数字来完成的。

当像这样交叉时,下一代将仅包含与起始种群中的染色体具有相似 X、Y 或 Z 坐标的位置。因此,不可能有太大的变化。我的问题是,是否最好通过对我的染色体使用另一种表示(例如位)来解决这个问题,以便可能有更多的交叉点(也在浮点数内),或者是将突变率设置得更高并让突变添加的更好解决方案下一代的变化更多?

4

1 回答 1

3

假设 3D 空间中的点与适应度函数的值之间存在空间相关性,那么您的交叉方法听起来不像preserves是导致良好表型的父母的属性。随机组合一些轴坐标很可能会导致一个点远离双亲,因此它与随机突变步骤一样值得。

我会做以下事情:

  1. 孤雌生殖:允许单亲以概率p产生一个孩子,该孩子位于以父母为中心的射线r的 3D球体内的随机位置。对局部调整有用

  2. crossover:孩子位于连接两个父母的直线上,处于随机百分比位置。

    • 根据您的操作,以小概率p'允许负值和 >100% 的百分比值可能会很有用
    • 在这种情况下,您也可以在父母双方的起始位置或孩子的最终位置上应用相同的球体原理,这将解释一些随机性
  3. 组合:以概率p''孩子遵循您当前的交叉规则而不是我的交叉定义

  4. 随机突变:以概率p''',孩子是随机完全改变父母的一个或多个值的结果

    • 替代方案:在搜索中的随机位置引入新点,以将多样性保持在某个最小值附近

在一些实际应用中,我宁愿不摆脱当前种群中最好的1%,只是为了将迄今为止最好的基因型保留在基因库中。

于 2016-03-30T09:48:52.957 回答