起源(启发):达尔文进化论 遗传 突变 杂交 自然选择(优胜劣汰),跟 神经网络算法一样属于智能优化算法,不是基于专家意见的。
基本流程:
所以,遗传算法基本步骤是:
1) 初始化 t←0进化代数计数器;T是最大进化代数;随机生成M个个体作为初始群体,记为P(t);
2) 个体评价 计算P(t)中各个个体的适应度值;判断是否提前结束迭代
3) 选择运算 将选择算子作用于群体;
4) 交叉运算 将交叉算子作用于群体;
5) 变异运算 将变异算子作用于群体,并通过以上运算得到下一代群体P(t + 1);
6) 终止条件判断 t≦T:t← t+1 转到步骤2;
t>T:终止 输出解。
举个糖炒栗子:
基于遗传算法的矩形检测:
- 传统的基于边缘检测的角度计算的矩形检测,抗干扰性能差
- 基于遗传检测可搜索全局最优,鲁棒性能好
基本步骤
- 边缘检测 获取边缘空间
- 个体表达,选择库生成 基因是轴上的坐标,顺时针个体表达{(x1, y1), (x2, y2), (x3, y3), (x4, y4)}
- 适应度函数
假设l1、l2、l3、l4为组成个体I的四条边。对每条边l,检测其M个等距点 的存在。每条边的存在性由下面函数定量给出:
其中dk是线段中实际接近边的点和预测的边缘点之间的距离,可以是欧式距 离,也可以是曼哈顿距离。假设∠1、∠2、∠3、∠4为组成个体I的四个夹 角,其接近90°的程度由其正弦值给出,正弦值的求得可以通过向量夹角的 余弦值计算获得。由此,定义适应度函数为:
如果边l切实存在时,则R(l)=1;如果∠α是90°,则sin(∠α)=1。所以, 理想个体的适应度为1。
- 选择操作
从群体中选择优胜个体,淘汰劣质个体的操作叫作选择操作
交叉操作
是把父代个体的部分基因加以替换重组生成新个体的操作,新生个体是否属 于样本空间,换成距离最近的样本点,判断是否满足四边形
变异操作
根据突变概率,随机从选择库中选择一个个体,然后随机选择该个体上的一 个基因(x, y)。随机生成一个突变向量(δx,δy),则新基因为(x+δx, y+δy)。
5. 重复选择、交叉(产生新个体放进样本空间就计算适应度)和变异操作(产生新个体就计算适应度)指定次数,选取优秀个体作为最终解。