什么是遗传算法?
遗传算法最早是由美国的John holland于20世纪70年代提出,该算法是根据大自然中生物体进化规律而设计提出的。是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
该算法通过数学的方式,利用计算机仿真运算,将问题的求解过程转换成类似生物进化中的染色基因的交叉、变异等过程。
延伸阅读
简述遗传算法优化问题的基本流程?
遗传算法的基本流程如下:
(1)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。
(2)个体评价:计算群体P(t)中各个个体的适应度。
(3)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。
(4)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。
(5)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。
(6)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
遗传算法有哪些利弊?
遗传算法的优点:
1. 与问题领域?关切快速随机的搜索能?。
2. 搜索从群体出发,具有潜在的并?性,可以进?多个个体的同时?较,robust.
3. 搜索使?评价函数启发,过程简单
4. 使?概率机制进?迭代,具有随机性。
5. 具有可扩展性,容易与其他算法结合。
遗传算法的缺点:
1、遗传算法的编程实现?较复杂,?先需要对问题进?编码,找到最优解之后还需要对问题进?解码,
2、另外三个算?的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,??前这些参数的选择?部分是依靠经验.
3、没有能够及时利??络的反馈信息,故算法的搜索速度?较慢,要得要较精确的解需要较多的训练时间。
4、算法对初始种群的选择有?定的依赖性,能够结合?些启发算法进?改进。
5、算法的并?机制的潜在能?没有得到充分的利?,这也是当前遗传算法的?个研究热点?向。
什么叫遗传算法,遗传算法有什么用?希望通俗一点儿?
首先有个很神奇的现象:人类以及动物的进化都是朝着好的方向发展,虽然有的往坏的方向发展了,但是总体肯定是往好的方向发展。
这看似不奇怪,但是我们知道,人类的基因组合是随机的,没有上帝约束。这种随机过程的结果却是一致的!!!!!我们的遗传算法就是从这里得到启发!比如我要求y=x1+x2的最大值,两个变量,我不用传统的数学方法,就用幼儿园的方法,把所有可能取值带进去算,然后找出最大的就行了!但是,有时候取值是连续的,没关系!使其离散化,就像把模拟信号化成数字信号一样!还有个问题,如果取值太多咋办?这就是遗传算法的精髓! 首先,我不用取所有可能取值,我只取几十个或者几百个(自己定),然后进行处理,怎样处理呢?让我们回到刚开始的人类进化问题,虽然没有上帝的帮忙,但是我们知道,自然界遵循优胜劣汰的发贼,遵循交叉变异的法则,虽然不能数字化,但是这是个趋势!我们就是把这种法则数学化!所取的几十个值我要剩下哪些?要抛弃哪些?要处理哪些?这都要我们自己选择,肯定是选择最合适的取值留下,经过一系列的处理,就生成了新的群体,然后再处理,自己约定处理到第几次就可以了,取出现过的最大值 不用担心取到的是不是最大值,因为数学上已经有了证明,这种方法是收敛的,概率是1,所以尽管放心的做,具体的做法要参考相关书籍,不难的。遗传算法的最大用处就是解决数学理论不能解决的问题!比如路径规划,调度问题……
遗传算法可以说明什么?
遗传算法可以说明优胜劣汰。遗传算法主要思想就是利用达尔文优胜劣汰的原则,选择好的保留,不好的淘汰,最终目的找到最优的。遗传算法已被人们广泛地应用于组合优化,机器学习,信号处理,自适应控制和人工生命等领域造福人类进步向前。
遗传算法的特点?
遗传算法特点:
(1)遗传算法从问题解的串集开始搜索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。
(2)遗传算法同时处理群体中的多个个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本身易于实现并行化。
(3)遗传算法基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作。适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用范围大大扩展。
(4)遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导他的搜索方向。
(5)具有自组织、自适应和自学习性。遗传算法利用进化过程获得的信息自行组织搜索时,适应度大的个体具有较高的生存概率,并获得更适应环境的基因结构。
(6)此外,算法本身也可以采用动态自适应技术,在进化过程中自动调整算法控制参数和编码精度,比如使用模糊自适应法。
遗传算法的原理详解?
遗传算法将“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按所选择的适应度函数并通过遗传中的复制、交叉及变异对个体进行筛选,使适应度高的个体被保留下来,组成新的群体
新的群体既继承了上一代的信息,又优于上一代这样周而复始,群体中个体适应度不断提高,直到满足一定的条件遗传算法的算法简单,可并行处理,并能得到全局最优解。
遗传算法的基本操作有三种:
1 复制(Reproduction Operator)
从一个旧种群中选择生命力强的个体产生新种群的过程
具有高适应度的个体更有可能在下一代中产生一个或多个子孙
模拟无性繁殖
2 交叉(Crossover Operator)
复制操作能从旧种群中选择出优秀者,但不能创造新的染色体
交叉模拟了生物进化过程中的有性繁殖现象,通过染色体的交换组合,产生新的优良品种
交叉的过程:在匹配池中任选两个染色体,随机选择一点或多点交换点位置;交换双亲染色体交换点右边的部分,即可得到两个新的染色体数字串
3 变异(Mutation Operator)
模拟生物在自然的遗传环境中由于各种偶然因素引起的基因突变
以很小的概率随机地改变遗传基因(表示染色体的符号串的某一位)的值
在染色体以二进制编码的系统中,它随机地将染色体的某一个基因由1变为0,或由0变为1