起源(启发):达尔文进化论 遗传 突变 杂交 自然选择(优胜劣汰),跟 神经网络算法一样属于智能优化算法,不是基于专家意见的。

基本流程

所以,遗传算法基本步骤是:

1 初始化 t←0进化代数计数器;T是最大进化代数;随机生成M个个体作为初始群体,记为Pt);

2 个体评价 计算Pt)中各个个体的适应度值;判断是否提前结束迭代

3 选择运算 将选择算子作用于群体;

4 交叉运算 将交叉算子作用于群体;

5 变异运算 将变异算子作用于群体,并通过以上运算得到下一代群体Pt + 1;

6 终止条件判断 t≦Tt← t+1 转到步骤2

t>T:终止 输出解。

 

举个糖炒栗子

基于遗传算法的矩形检测:

  1. 传统的基于边缘检测的角度计算的矩形检测,抗干扰性能差
  2. 基于遗传检测可搜索全局最优,鲁棒性能好

     

    基本步骤

  3. 边缘检测 获取边缘空间
  4. 个体表达,选择库生成 基因是轴上的坐标,顺时针个体表达{(x1, y1), (x2, y2), (x3, y3), (x4,     y4)}
  5. 适应度函数

    假设l1l2l3l4为组成个体I的四条边。对每条边l,检测其M个等距点    的存在。每条边的存在性由下面函数定量给出:

    其中dk是线段中实际接近边的点和预测的边缘点之间的距离,可以是欧式距    离,也可以是曼哈顿距离。假设∠1、∠2、∠3、∠4为组成个体I的四个夹    角,其接近90°的程度由其正弦值给出,正弦值的求得可以通过向量夹角的    余弦值计算获得。由此,定义适应度函数为:

    如果边l切实存在时,则R(l)=1;如果∠α是90°,则sin(∠α)=1。所以,    理想个体的适应度1

     

  6. 选择操作

    从群体中选择优胜个体,淘汰劣质个体的操作叫作选择操作

    交叉操作

    是把父代个体的部分基因加以替换重组生成新个体的操作,新生个体是否属    于样本空间,换成距离最近的样本点,判断是否满足四边形

    变异操作

    根据突变概率,随机从选择库中选择一个个体,然后随机选择该个体上的一    个基因(x, y)。随机生成一个突变向量(δx,δy),则新基因为(x+δx, y+δy)

     

    5. 重复选择、交叉(产生新个体放进样本空间就计算适应度)和变异操作(产生新个体就计算适应度)指定次数,选取优秀个体作为最终解