当前位置:首页 » 操作系统 » 遗传算法基础

遗传算法基础

发布时间: 2023-05-05 09:53:37

‘壹’ 遗传算法的基本框架

遗传算法不能直接处理问题空间的参数,必须把它们转换成遗传空间的由基因按一定结构组成的染色体或个体。这一转换操作就叫做编码,也可以称作(问题的)表示(representation)。
评估编码策略常采用以下3个规范:
a)完备性(completeness):问题空间中的所有点(候选解)都能作为GA空间中的点(染色体)表现。
b)健全性(soundness): GA空间中的染色体能对应所有问题空间中的候选解。
c)非冗余性(nonrendancy):染色体和候选解一一对应。
目前的几种常用的编码技术有二进制编码,浮点数编码,字符编码,变成编码等。
而二进制编码是目前遗传算法中最常用的编码方法。即是由二进制字符集{0,1}产生通常的0,1字符串来表示问题空间的候选解。它具有以下特点:
a)简单易行
b)符合最小字符集编码原则
c)便于用模式定理进行分析,因为模式定理就是以基础的。 进化论中的适应度,是表示某一个体对环境的适应能力,也表示该个体繁殖后代的能力。遗传算法的适应度函数也叫评价函数,是用来判断群体中的个体的优劣程度的指标,它是根据所求问题的目标函数来进行评估的。
遗传算法在搜索进化过程中一般不需要其他外部信息,仅用评估函数来评估个体或解的优劣,并作为以后遗传操作的依据。由于遗传算法中,适应度函数要比较排序并在此基础上计算选择概率,所以适应度函数的值要取正值。由此可见,在不少场合,将目标函数映射成求最大值形式且函数值非负的适应度函数是必要的。
适应度函数的设计主要满足以下条件:
a)单值、连续、非负、最大化
b) 合理、一致性
c)计算量小
d)通用性强。
在具体应用中,适应度函数的设计要结合求解问题本身的要求而定。适应度函数设计直接影响到遗传算法的性能。 遗传算法中初始群体中的个体是随机产生的。一般来讲,初始群体的设定可采取如下的策略:
a)根据问题固有知识,设法把握最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体。
b)先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数达到了预先确定的规模。

‘贰’ 遗传算法的核心是什么!

遗传操作的交叉算子。

在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。同样,遗传算法中起核心作用的是遗传操作的交叉算子。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提高。

交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合,期望将有益基因组合在一起。

(2)遗传算法基础扩展阅读

评估编码策略常采用以下3个规范:

a)完备性(completeness):问题空间中的所有点(候选解)都能作为GA空间中的点(染色体)表现。

b)健全性(soundness): GA空间中的染色体能对应所有问题空间中的候选解。

c)非冗余性(nonrendancy):染色体和候选解一一对应。

目前的几种常用的编码技术有二进制编码,浮点数编码,字符编码,变成编码等。

而二进制编码是目前遗传算法中最常用的编码方法。即是由二进制字符集{0,1}产生通常的0,1字符串来表示问题空间的候选解。

‘叁’ 基本的遗传算法

在许多实际应用领域,无论是工程技术科学还是社会经济科学中,都会遇到全局最优化问题[53,56~59,61],这一类问题大多数可以形式化为一个对(S,f)的寻优问题,其中 S⊂R n 是 R n 中的有界集,f∶S→R是 n 维实值函数。所要求解的问题就是要找到一点 x best∈S,使得 f(xbest)是 S 上的全局最优解,可以是极大值或极小值。以极小值为例,即求一点 x min∈S,满足

含水层参数识别方法

尽管人们对这类问题进行了大量的研究,但得到的成绩仍不能令人满意,目前只能解决一些简单的问题。对于更复杂的全局最优化问题,通常是利用数值解法,但许多数值解法都不能找到最优解,只是返回一个接近于全局最优的值。

全局最优化数值方法可以分为两大类:确定性算法和随机算法。在随机算法中,最优化步骤在一定程度上依赖于概率事件,它排除了确定性算法中的一个最大障碍——预先详细说明一个问题的全部特征并针对问题的特征决定算法应采用的对策。与常规的优化算法相比,遗传算法有可能在更大的范围内探寻问题潜在的解。确定性算法没有用到概率信息。只有当对S上进行穷举搜索及对f规定附加的假设条件下,算法才能找到全局最优解。实行穷举搜索在很多情况下(如实数解)是不可能的,因此多采用对f规定附加的假设条件,这必然影响到最终解的可靠性。在这些算法中,搜索速度越快的算法往往意味着需要对f做更多的假设,或者不能保证搜索成功。与此相对照,许多随机算法都可以证明在概率意义下渐近收敛到全局最优解,即这些算法保证以概率1渐近收敛,而且随机算法的计算结果一般要优于那些确定性算法的结果。遗传算法就是其中具有代表性的随机算法。

常用的遗传算法操作有选择(Selection)、交叉(Crossover)、变异(Mutation)。复制是直接将个体的代码进行拷贝形成新个体。下面就选择、交叉与变异操作做一介绍。

7.3.1 选择过程

选择过程是以旋转赌轮Pop-Size次(种群规模,即群体中个体的总个数)为基础,每次旋转都为新的种群选择一个染色体。首先计算出个体i被选择的概率Pi,优秀的染色体其选择概率大,然后根据选择概率的大小将一个圆盘分为Pop-Size个扇形,每个扇形的中心角的大小为2πPi

每次进行选择时,先选择赌轮边界旁一个不动的参考点,赌轮随机地转动,若不动点停留在扇形j内,则选择个体j。个体的适应值越大,被选择的概率越大,从而其染色体被遗传到下一代的概率越大。

赌轮式选择的特点是对于种群内的所有个体,无论其适应值大小,都有被选择的机会。适应值大的个体被选择的概率大,适应值小的个体被选择的概率小。经过选择后适应值大的个体在种群中的数目会增加。这正体现了适者生存的原则。

7.3.2 交叉操作

交叉操作是个有组织的、随机的字符串间的信息交换过程。假设群体G(t)是模式库。历史信息以每个模式实例数目的形式存储于G(t)中。交叉作用产生模式库中已有模式的新的实例,同时也产生新的模式。简单的交叉操作分为三步:

(1)从当前群体G(t)中选择两个个体结构:A=a1a2…an,B=b1b2…bn

(2)以交叉概率 Pc 随机选择一个整数 x∈{1,2,…,n};

(3)交换A和B中位置x右边的元素,产生两个新的个体结构:a1a2…axbx+1…bn和b1b2…bxax+1…an

7.3.3 变异操作

对于群体G(t)中的每个个体A=a1a2…an,简单的变异操作过程如下:

1)每个位置的字符变量都有一个变异概率Pm,各位置互相独立,通过随机过程选择发生变异的位置x1,x2,…,xn

2)产生一个新个体结构 B=a1 a2……an ,其中是从对应位置x 1 的字符变量的值域中随机选择的一个取值。类似地,,…,可以同样得到。

如果每个位置的变异概率等于Pm,那么模式H(阶为o(H))发生一次或多次变异的概率是

含水层参数识别方法

遗传操作除了有选择、交叉、变异等算子外,还有染色体内部复制(Intrachromo-somal plication)、删除、易位(Translocation)、分异(Segregation)等。

‘肆’ 遗传算法的基本原理

自然界是一个自适应的大系统[53,56~60],自然系统中的大多数生物体通过自然选择和有性生殖这两种基本过程进行自身的演化,使自己逐步达到完美来适应大自然。遗传算法受生物进化与遗传的启发,形成一种独特的优化方式,遗传算法的运算原理常常与生物进化及遗传学说相吻合,而且其术语也常仿照生物学的术语。遗传算法的运算基础是字符串,先将搜索对象编码为字符串形式;字符串就相当于生物学中的染色体,由一系列字符组成;每个字符都有特定的含义,反映所解决问题的某个特征,这就相当于基因,亦即染色体DNA的片段。每个字符串结构被称为个体,每个个体都可以通过问题本身所具有的适应值度量来计算反映其适应性好坏的适应值,然后对一组字符串结构(被称为一个群体)进行循环操作。每次循环操作被称作一代,其中的操作包括:保存字符串组中适应性较好的那些字符串到下一代(对应于遗传学中的复制),使上一代中的优良个体得以生存下去,这类似于生物进化论中的自然选择。通过有组织的然而是随机的字符串间的信息交换来重新结合那些适应性好的字符串(对应于遗传学中的交叉),在每一代中利用上一代字符串结构中适应性好的位和段来生成一个新的字符串的群体;作为额外增添,偶尔也要在字符串结构中尝试用新的位和段来替代原来的部分(对应于遗传学中的变异),等等。遗传算法中这些操作只涉及字符串的某些片段,这就类似于遗传过程只涉及某些基因而不是整个染色体。遗传算法是一类随机算法,但它不是简单的随机走动,它可以有效地利用已有的信息来搜寻那些有希望改善解质量的字符串。类似于自然进化,遗传算法通过作用于染色体上的基因,寻找好的染色体来求解问题。与自然界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应值来选择染色体,使适应性好的染色体有更多的繁殖机会。

‘伍’ 遗传算法的基本原理

遗传算法本质上是对染色体模式所进行的一系列运算,即通过选择算子将当前种群中的优良模式遗传到下一代种群中,利用交叉算子进行模式重组,利用变异算子进行模式突变。

热点内容
cs16制作脚本 发布:2025-05-16 18:44:25 浏览:443
分油算法 发布:2025-05-16 18:36:19 浏览:690
吃鸡低配置手机如何开极致画质 发布:2025-05-16 18:15:20 浏览:191
空密码访问 发布:2025-05-16 18:08:51 浏览:892
腾讯云服务器安全规则设置 发布:2025-05-16 17:51:33 浏览:650
k3服务器不可用怎么办 发布:2025-05-16 17:51:30 浏览:537
编辑html源码 发布:2025-05-16 17:45:45 浏览:65
边的存储方法 发布:2025-05-16 17:33:16 浏览:927
海量服务器怎么拆 发布:2025-05-16 17:31:07 浏览:211
运行与编译的区别 发布:2025-05-16 17:25:02 浏览:825