猜你喜欢
遗传算法的特点,遗传算法的特点包括
遗传算法适应度计算?
适应度计算是评价个体适应环境的能力,在进行选择操作时经常用到,它的选取是否恰当直接影响到遗传算法的性能,所以就形成了很多计算适应度的函数,改进这些适应度函数是为了使适应度能更好的反映个体的优劣,使得适应度低的个体被淘汰,适应度高的个体被保留。自适应的适应度函数可以随着种群代数的增加自适应的调整。
在算法的开始阶段,适应度差别较大,为了防止一些适应度较差的个体在一开始就丢失,可以通过改变适应度函数使得它们得以保留下来,另外,当种群趋于收敛时,适应度差别很小,这时为了加快收敛的速度,应对适应度进行调整,使得个体适应度差别增大,从而更快的收敛到全局最优解。常用的适应度变换方法有:线性变换、幂函数变换和指数变换。
遗传算法有哪些利弊?
遗传算法的优点:
1. 与问题领域⽆关切快速随机的搜索能⼒。
2. 搜索从群体出发,具有潜在的并⾏性,可以进⾏多个个体的同时⽐较,robust.
3. 搜索使⽤评价函数启发,过程简单
4. 使⽤概率机制进⾏迭代,具有随机性。
5. 具有可扩展性,容易与其他算法结合。
遗传算法的缺点:
1、遗传算法的编程实现⽐较复杂,⾸先需要对问题进⾏编码,找到最优解之后还需要对问题进⾏解码,
2、另外三个算⼦的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,⽽⽬前这些参数的选择⼤部分是依靠经验.
3、没有能够及时利⽤⽹络的反馈信息,故算法的搜索速度⽐较慢,要得要较精确的解需要较多的训练时间。
4、算法对初始种群的选择有⼀定的依赖性,能够结合⼀些启发算法进⾏改进。
5、算法的并⾏机制的潜在能⼒没有得到充分的利⽤,这也是当前遗传算法的⼀个研究热点⽅向。
遗传算法中的适应度函数是什么?
适应度用于评价个体的优劣程度,适应度越大个体越好,反之适应度越小则个体越差;根据适应度的大小对个体进行选择,以保证适应性能好的个体有更多的机会繁殖后代,使优良特性得以遗传。
因此,遗传算法要求适应度函数值必须是非负数,而在许多实际问题中,求解的目标通常是费用最小,而不是效益最大,因此需要将求最小的目标根据适应度函数非负原则转换为求最大目标的形式。
遗传算法的原理详解?
遗传算法将“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按所选择的适应度函数并通过遗传中的复制、交叉及变异对个体进行筛选,使适应度高的个体被保留下来,组成新的群体
新的群体既继承了上一代的信息,又优于上一代这样周而复始,群体中个体适应度不断提高,直到满足一定的条件遗传算法的算法简单,可并行处理,并能得到全局最优解。
遗传算法的基本操作有三种:
1 复制(Reproduction Operator)
从一个旧种群中选择生命力强的个体产生新种群的过程
具有高适应度的个体更有可能在下一代中产生一个或多个子孙
模拟无性繁殖
2 交叉(Crossover Operator)
复制操作能从旧种群中选择出优秀者,但不能创造新的染色体
交叉模拟了生物进化过程中的有性繁殖现象,通过染色体的交换组合,产生新的优良品种
交叉的过程:在匹配池中任选两个染色体,随机选择一点或多点交换点位置;交换双亲染色体交换点右边的部分,即可得到两个新的染色体数字串
3 变异(Mutation Operator)
模拟生物在自然的遗传环境中由于各种偶然因素引起的基因突变
以很小的概率随机地改变遗传基因(表示染色体的符号串的某一位)的值
在染色体以二进制编码的系统中,它随机地将染色体的某一个基因由1变为0,或由0变为1
什么叫遗传算法,遗传算法有什么用?希望通俗一点儿?
首先有个很神奇的现象:人类以及动物的进化都是朝着好的方向发展,虽然有的往坏的方向发展了,但是总体肯定是往好的方向发展。
这看似不奇怪,但是我们知道,人类的基因组合是随机的,没有上帝约束。这种随机过程的结果却是一致的!!!!!我们的遗传算法就是从这里得到启发!比如我要求y=x1+x2的最大值,两个变量,我不用传统的数学方法,就用幼儿园的方法,把所有可能取值带进去算,然后找出最大的就行了!但是,有时候取值是连续的,没关系!使其离散化,就像把模拟信号化成数字信号一样!还有个问题,如果取值太多咋办?这就是遗传算法的精髓! 首先,我不用取所有可能取值,我只取几十个或者几百个(自己定),然后进行处理,怎样处理呢?让我们回到刚开始的人类进化问题,虽然没有上帝的帮忙,但是我们知道,自然界遵循优胜劣汰的发贼,遵循交叉变异的法则,虽然不能数字化,但是这是个趋势!我们就是把这种法则数学化!所取的几十个值我要剩下哪些?要抛弃哪些?要处理哪些?这都要我们自己选择,肯定是选择最合适的取值留下,经过一系列的处理,就生成了新的群体,然后再处理,自己约定处理到第几次就可以了,取出现过的最大值 不用担心取到的是不是最大值,因为数学上已经有了证明,这种方法是收敛的,概率是1,所以尽管放心的做,具体的做法要参考相关书籍,不难的。遗传算法的最大用处就是解决数学理论不能解决的问题!比如路径规划,调度问题……