算法简介
- 遗传算法(Genetic Algorithm)源于自然界“自然选择”和“优胜劣汰”的进化规律,是进化计算的一个分支,是一种模拟自然界生物进化过程的随机搜索算法
- 简单易懂、通用、鲁棒性强、适合并行处理,可用于解决各种复杂优化问题
相关概念
- 染色体:携带基因信息的数据结构,不同染色体组合表征不同的问题解
- 个体 (individual) : 不同染色体组合就代表一个个体
- 种群 (population) : 个体的集合,该集合内个体数称为种群的大小
- 进化 (evolution) : 种群的不断迭代使其品质不断改良
- 适应度 (fitness) : 个体适应环境性能的评价指标 (目标函数)
遗传过程的术语
- 选择 (selection) : 指以一定的概率从种群中选择若干个体进行交配的操作
- 交叉 (crossover) : 在两个染色体的某一相同位置处DNA被切断,其前后两串分别交叉组合形成两个新的染色体,又称基因重组,俗称“杂交”
- 变异 (mutation) : 种群在迭代过程中,基因会产生突变,也即是染色体发生变异,这些新的染色体表现出新的性状
遗传算法在三维空间进行路径规划的具体思路
- 将遗传算法的染色体视为三维空间的控制点,即一个染色体对应着一个控制点,显然染色体个数越多,控制点越多,最终生成的三维路径越有可能接近理论最优解
- 交叉操作可以考虑将某两个个体的染色体 (控制点的 x/y/z 坐标序列) 进行两两交换
- 变异操作可以考虑将某个个体的某一个染色体 (控制点) 的 x/y/z 坐标用另一个随机数代替
步骤
- 随机产生一组初始个体构成初始种群,并评价每一个个体的适应度
- 判断算法收敛准则是否满足。若满足则输出搜索结果,否则执行以下步骤
- 根据适应度大小以一定概率按照轮盘赌法执行选择操作
- 按交叉概率执行交叉操作
- 返回第2步