随机搜索算法之遗传算法简介

遗传算法

遗传算法GA(Genetic Algorithm)
模拟达尔文生物进化论的自然选择和遗传学机理生物进化过程计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小选择(selection)个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。
遗传算法说白了,就是模拟物种进化的原则(物竞天择,适者生存)个体与个体之间竞争,保留优秀的,继续进化的一种随机搜索算法

遗传算法一般步骤:

(1)个体编码
(2)初始化种群(随机)
(3)*适应性评估(具体情况具体分析)( 物竞天择,适者生存)
(4)选择运算 (或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代。
(5)交叉运算: 交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某两个个体之间的部分染色体。
(6)变异运算:变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进行改变,它也是产生新个体的一种操作方法。
(7)终止条件判断: 若t=T(T:最大进化次数),则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。提前终止:当进化一定多次后,最优解一直保持不变,可认为但前即为最优解,再进化不出更优的可提前终止。

这里写图片描述

GA算法求解过程

这里写图片描述

我们有必要先澄清几个以后将常常会碰到的概念:

极 大值最大值局部最优解、全局最优解。学过高中数学的人都知道极大值在一个小邻域里面左边的函数值递增,右边的函数值递减,在下图里面的表现就是一 个“山峰”。当然,在图上有很多个“山峰”,所以这个函数有很多个极大值。而对于一个函数来说,最大值就是在所有极大值当中,最大的那个。所以极大值具有局部性,而最大值则具有全局性。
这里写图片描述

下面举个经典的遗传算法用于解决问题的例子:

TSP问题(旅行商问题)

旅行商问题是指旅行家要旅行n个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走的路程最短.假设现在有四个城市,0,1,2,3,他们之间的代价如图一,可以存成二维表的形式:现在要从城市0出发,最后又回到0,期间1,2,3都必须并且只能经过一次,使代价最小.这就是旅行者问题.可以利用回溯法,分值界限等方法解决!

下面付代码:

/*************************************************************************
  > File Name: tsp_GA.cpp
  > Author: dulun
  > Mail: [email protected]
  > Created Time: 2016年06月20日 星期一 12时42分29秒
 ************************************************************************/

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值