使用遗传算法搜索 3D 位置

Searching 3D locations with genetic algorithms

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

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

假设3D-space中的点和适应度函数的值之间有spatial-correlation,那么你的cross-over 方法听起来不像 preserves 导致良好表型的 parent 的属性。随机组合一些轴坐标可能会导致一个点远离两个 parents,因此它与随机突变步骤一样有价值。

我会做以下事情:

  1. 孤雌生殖 : 允许single-parent以p的概率产生位于child在以 parent 为中心的射线 r 的 3D sphere 中的随机位置。对局部调整有用

  2. crossover : child 位于连接两个 parent 的直线上,以随机百分比 %值位置。

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

  4. 随机突变:概率p''' child是[的结果=25=]完全随机改变parent的一个或多个值

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

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