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

时间:2016-03-30 09:17:47

标签: search optimization genetic-algorithm mutation crossover

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

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

1 个答案:

答案 0 :(得分:1)

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

我想做以下事情:

  1. parthegenesis :允许单亲以概率 p 生成位于3D 球体内的随机位置的儿童ray r 以父级为中心。适用于本地调整

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

    • 取决于您的操作,允许以低概率 p'
    • 的负值和> 100%百分比值可能很有用
    • 你也可以在这种情况下应用相同的球体原则,无论是在父母的起始位置还是在孩子的最终位置,这都会导致一些随机性
  3. 组合:概率 p'' ,孩子会遵循您当前的交叉规则,而不是交叉定义

  4. 随机突变:概率 p'' 完全 >随机更改父级的一个或多个值

    • 替代方案:在搜索的随机位置引入新点,以保持多样性在某个最小值附近
  5. 在一些实际应用中,我倾向于不去除目前人群中最好的 1%,只是为了在基因库中保持最佳的基因型。