基本遗传算法

合集下载

基本遗传算法的几个基本概念 -回复

基本遗传算法的几个基本概念 -回复

基本遗传算法的几个基本概念-回复基本遗传算法是一种启发式搜索算法,它基于生物进化过程中的自然选择和遗传机制。

这种算法模仿了生物进化中的基本原理,通过随机生成的初始个体群体,通过选择、交叉和变异等操作,逐代地优化并进化个体,最终找到适应度最高的解。

在理解基本遗传算法之前,我们需要了解几个基本概念:1. 个体(Individual):个体是基本遗传算法中的搜索空间中的一个解,可以是具体的问题的一个可行解,也可以是一个参数向量等。

2. 群体(Population):群体是由一组个体组成的搜索空间,一般由固定数量的个体构成。

群体的初始个体是通过随机生成来的。

3. 适应度函数(Fitness Function):适应度函数是用来评估个体的优劣程度的函数。

适应度函数根据实际问题的特性来定义,一般是一个数值,用来衡量个体对问题解的适应程度。

4. 选择(Selection):选择是基于个体的适应度来确定下一代个体的过程。

通常,适应度越高的个体更有可能被选择到下一代,从而使整个种群逐渐进化。

5. 交叉(Crossover):交叉是将两个个体的基因组合并生成新个体的过程。

通过交叉操作,可以将两个个体的优良特征进行组合,产生新的个体。

6. 变异(Mutation):变异是在个体基因中引入随机扰动的过程。

变异操作有助于增加种群的多样性,并保持种群在搜索空间中的广泛探索能力。

基本遗传算法的具体步骤如下:1. 初始化群体:随机生成初始的个体群体,并给每个个体赋予适应度。

2. 选择操作:根据个体的适应度选择一部分个体作为父代。

3. 交叉操作:从父代中选取两个个体进行交叉,生成新的子代。

交叉操作可以采用单点交叉、多点交叉、均匀交叉等方式。

4. 变异操作:对新生成的子代个体进行变异操作,引入一定概率的随机扰动。

变异操作有助于增加种群的多样性。

5. 更新群体:根据适应度函数重新评估新个体的适应度,并根据选择策略确定下一代的个体。

6. 终止条件:通过迭代运行上述步骤,直到满足终止条件,例如达到最大迭代次数或找到满足要求的解。

基本遗传算法的步骤

基本遗传算法的步骤

基本遗传算法的步骤随着计算机科学的发展,遗传算法作为一种模拟生物进化过程的优化算法被广泛应用于各个领域。

基本遗传算法是一种简单而有效的遗传算法,它由一系列的步骤组成,用于解决优化问题。

下面将详细介绍基本遗传算法的步骤。

1. 初始化种群在基本遗传算法中,首先需要初始化一个种群。

种群由一定数量的个体组成,每个个体代表一个可能的解。

个体通常用二进制编码表示。

种群的大小和编码方式将直接影响算法的性能。

2. 评估适应度在遗传算法中,适应度用于衡量个体的优劣程度。

通过适应度函数,可以将每个个体映射到一个适应度值。

适应度函数的设计应该与问题的特点相匹配,以确保算法能够找到最优解。

3. 选择个体选择是基本遗传算法中的一个重要步骤,它决定了哪些个体将被保留下来用于繁殖下一代。

选择的依据是个体的适应度值,适应度越高的个体被选择的概率越大。

常见的选择方法包括轮盘赌选择、锦标赛选择等。

4. 交叉操作交叉操作是基本遗传算法中的一个关键步骤,它模拟了生物进化中的基因交换过程。

通过将两个个体的染色体进行交叉,产生新的个体。

交叉的位置和方式可以根据问题的特点进行设计。

5. 变异操作变异操作是基本遗传算法中的另一个重要步骤,它模拟了生物进化中的基因突变现象。

通过对个体的染色体进行随机的变异,引入新的基因。

变异的概率通常很低,以避免算法陷入局部最优解。

6. 替换个体替换操作用于更新种群,使新一代个体取代旧一代个体。

常见的替换策略包括保留最优个体、保留一部分较优个体等。

替换操作的设计应该考虑到种群的多样性和收敛速度。

7. 终止条件终止条件是基本遗传算法中的最后一个步骤,用于确定算法何时停止。

常见的终止条件包括达到最大迭代次数、找到满足要求的解等。

终止条件的选择应该根据问题的复杂度和计算资源的限制来确定。

基本遗传算法的步骤简单而清晰,通过初始化种群、评估适应度、选择个体、交叉操作、变异操作和替换个体等步骤,不断迭代优化种群,最终找到问题的最优解。

遗传算法基本理论与方法

遗传算法基本理论与方法

摘要:基本遗传算法的操作是以个体为对象,只使用选择、交叉和变异遗传算子,遗传进化操作过程的简单框架。

模式定理和积木块假设是解释遗传算法有效性的理论基础,理论分析与实际应用都表明基本的遗传算法不能处处收敛于全局最优解,因此基本遗传算法有待进一步改进。

关键词:遗传算法;遗传算法的改进1.标准遗传算法基本遗传算法包括选择、交叉和变异这些基本遗传算子。

其数学模型可表示为:sag=(c,e,p0,n,φ,г,ψ,t)其中c为个体的编码方法;e为个体适应度评价函数;p0为初始种群;n为种群大小;φ为选择算子;г为交叉算子;ψ为变异算子;t为遗传运算终止条件;2 遗传算法基本方法及其改进2.1编码方式编码方式决定了个体的染色体排列形式,其好坏直接影响遗传算法中的选择算子、交叉算子和变异算子的运算,也决定了解码方式。

二进制编码二进制编码使用的字符号{0,1}作为编码符号,即用一个{0,1}所组成的二进制符号串构成的个体基因型。

二进制编码方法应用于遗传算法中有如下优点:1)遗传算法中的遗传操作如交叉、变异很容易实现,且容易用生物遗传理论来解释;2)算法可处理的模式多,增强了全局搜索能力;3)便于编码、解码操作;4)符合最小字符集编码原则;5)并行处理能力较强。

二进制编码在存着连续函数离散化的映射误差,不能直接反应出所求问题的本身结构特征,不便于开发专门针对某类问题的遗传运算算子。

2.2初始种群的设定基本遗传算法是按随机方法在可能解空间内产生一个一定规模的初始群体,然后从这个初始群体开始遗传操作,搜索最优解。

初始种群的设定一般服从下列准则:1)根据优化问题,把握最优解所占空间在整个问题空间的分布范围,然后,在此分布范围内设定合适的初始群体。

2)先随机生成一定数目的个体,然后从中挑出最好的个体加入到初始群体中。

该过程不断迭代,直到初始群体中个体数目达到了预先确定的种群大小。

2.3选择算子的分析选择算子的作用是选择优良基因参与遗传运算,目的是防止有用的遗传信息丢失,从而提高全局收敛效率。

遗传算法简介

遗传算法简介

做交叉运算,让s1’与s2’,s3’与s4’ 分别交换后三位基因,得
s1’’ =11100(28), s2’’ = 01001(9) s3’’ =11000(24), s4’’ = 10011(19) 这一轮仍然不会发生变异。
于是,得第三代种群S3:
s1=11100(28), s2=01001(9) s3=11000(24), s4=10011(19)
基本遗传算法
步1 在搜索空间U上定义一个适应度函数f(x),给 定种群规模N,交叉率Pc和变异率Pm,代数T; 步2 随机产生U中的N个个体s1, s2, …, sN,组成初始 种群S={s1, s2, …, sN},置代数计数器t=1; 步3 计算S中每个个体的适应度f(x) ; 步4 若终止条件满足,则取S中适应度最大的个体 作为所求结果,算法结束。
Your company slogan
步5 按选择概率P(xi)所决定的选中机会,每次从S中随机选定1 个个体并将其染色体复制,共做N次,然后将复制所得的N个染色 体组成群体S1;
步6 按交叉率Pc所决定的参加交叉的染色体数c,从S1中随机 确定c个染色体,配对进行交叉操作,并用产生的新染色体代替原 染色体,得群体S2; 步7 按变异率Pm所决定的变异次数m,从S2中随机确定m个染 色体,分别进行变异操作,并用产生的新染色体代替原染色体, 得群体S3; 步8 将群体S3作为新一代种群,即用S3代替S,t = t+1,转步3;
Your company slogan
解 (1) 设定种群规模,编码染色体,产生初始种群。 将种群规模设定为4;用5位二进制数编码染色体; 取下列个体组成初始种群S1: s1= 13 (01101), s2= 24 (11000)

基本遗传算法及的应用举例

基本遗传算法及的应用举例

基本遗传算法及应用举例遗传算法(Genetic Algorithms)是一种借鉴生物界自然选择和自然遗传机制的随机、高度并行、自适应搜索算法。

遗传算法是多学科相互结合与渗透的产物。

目前它已发展成一种自组织、自适应的多学科技术。

针对各种不同类型的问题,借鉴自然界中生物遗传与进化的机理,学者们设计了不同的编码方法来表示问题的可行解,开发出了许多不同环境下的生物遗传特征。

这样由不同的编码方法和不同的遗传操作方法就构成了各种不同的遗传算法。

但这些遗传算法有共同的特点,即通过对生物的遗传和进化过程中的选择、交叉、变异机理的模仿来完成对最优解的自适应搜索过程。

基于此共同点,人们总结出了最基本的遗传算法——基本遗传算法。

基本遗传算法只使用选择、交叉、变异三种基本遗传操作。

遗传操作的过程也比较简单、容易理解。

同时,基本遗传算法也是其他一些遗传算法的基础与雏形。

1.1.1 编码方法用遗传算法求解问题时,不是对所求解问题的实际决策变量直接进行操作,而是对表示可行解的个体编码的操作,不断搜索出适应度较高的个体,并在群体中增加其数量,最终寻找到问题的最优解或近似最优解。

因此,必须建立问题的可行解的实际表示和遗传算法的染色体位串结构之间的联系。

在遗传算法中,把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称之为编码。

反之,个体从搜索空间的基因型变换到解空间的表现型的方法称之为解码方法。

编码是应用遗传算法是需要解决的首要问题,也是一个关键步骤。

迄今为止人们已经设计出了许多种不同的编码方法。

基本遗传算法使用的是二进制符号0和1所组成的二进制符号集{0,1},也就是说,把问题空间的参数表示为基于字符集{0,1}构成的染色体位串。

每个个体的染色体中所包含的数字的个数L 称为染色体的长度或称为符号串的长度。

一般染色体的长度L 为一固定的数,如X=10011100100011010100表示一个个体,该个体的染色体长度L=20。

遗传算法

遗传算法

2. 遗传算法在电磁优化中的应用
在电磁场工程中,许多电磁优化问题的目标 函数往往是高度非线性的、多极值的、不可 微分的和多参数的。同时,这些目标函数的 计算成本往往很高。在这些复杂电磁问题的 优化设计中,高效的优化算法对于实现高性 价比的设计具有举足轻重的作用。
例 用GPS/铱星系统的圆极化弯钩天线。 全球定位系统(GPS)的工作频率有两个,一个是 1575.4MHz,另一个是1227.6MHz,信号采用圆极化 方式传输。铱星系统也采用圆极化方式传输,其工 作频带1225~1630MHz。 为了使天线同时接收GPS/铱星两个系统的信号,天 线的工作频带应该为1225~1630MHz,采用圆极化 工作方式,在相对于水平面大于5°的准半球空间 具有均匀的辐射方向图。下图为一个弯钩天线,它 有7段直导线串联而成,整个天线被限定在边长为 0.5λmax 的立方体空间内。通过遗传算法,调节7个 连接点的坐标,可以得到满足设计要求的最佳弯钩 天线结构。在优化过程中,价值函数取为
2 杂交策略 在自然界生物进化过程中,起核心作用的是生物遗传基因的 重组(加上变异)。 同样,遗传算法中起核心作用的是遗传操作的杂交算子。对于 占主流地位的二值编码而言,各种杂交算子都包括两个基本 内容:①从由选择操作形成的配对库中,对个体两两配对, 按预先设定的杂交概率来决定每对是否需要进行杂交操作; ②设定配对个体的杂交点,并对这些点前后的配对个体的部 分结构进行相互交换。 就配对的方式来看,可分为随机配对和确定式配对。 3 变异策略 变异算子的基本内容是对群体中个体串的某些基因座上的基 因值作变动。就二值码串而言,变异操作就是把某些基因座 上的基因值取反,即1→0或0→1.
5.杂交操作:遗传算子(有性重组)可以产 生新的个体,从而检测搜索空间的新点。简 单的杂交可分2步进行:随机配对,交换杂交 点后的基因信息。

基本遗传算法(讲的很好很透彻_学习亲测)


[说明] 这4个运行参数对遗传算法的求解结果和求解效率都有一定的影响,但目前
尚无合理选择它们的理论依据。在遗传算法的实际应用中,往往需要经过多次试 算后才能确定出这些参数合理的取值大小或取值范围。
1.2 基本遗传算法的形式化定义
基本遗传算法可定义为一个7元组:
GA= (M, F, s, c, m, pc, pm )
基本遗传算法(GA)
1 基本遗传算法描述
遗传算法在自然与社会现象模拟、工程计算等方面得到了广泛应用。在各个 不同的应用领域,为了取得更好的结果,人们对GA进行了大量改进,为了不至 于混淆,我们把Holland提出的算法称为基本遗传算法,简称 GA、SGA (Simple Genetic Algorithm )、CGA(Canonical Genetic Algorithm),将其它 的“GA类”算法称为GAs(Genetic Algorithms),可以把GA看作是GAs的一种特 例。
00000000…00000000=0 00000000…00000001=1 00000000…00000010=2
……
umin umin + umin + 2
11111111…11111111=2l–1
umax
其中, 为二进制编码的编码精度,其公式为:
= Umax umin 2l 1
(2) 解码
end
2 基本遗传算法的实现
根据上面对基本遗传算法构成要素的分析和算法描述,我们可以很方便地用计 算机语言来实现这个基本遗传算法。
现对具体实现过程中的问题作以下说明:
2.1 编码与解码
(1) 编码
假设某一参数的取值范围是[umin , umax],用长度为l的二进制编码符号串来表

遗传算法基础


比例选择法(轮盘赌)
• 基本思想
各个个体被选中的概率与其适应度大小成正比。 设群体大小为 M,个体 i 的适应度大小为F ( xi ) ,则 个体 i 被选中的概率为
Pi =
F ( xi )
∑ F (x )
i =1 i
M
比例选择法(轮盘赌)
• 具体步骤 1)计算各基因适应度值和选择概率 Pi 2)累计所有基因选择概率值,记录中间累 加值S - mid 和最后累加值 sum = ∑ Pi 3)产生一个随机数 N,0〈 N 〈 1 4)选择对应中间累加值S - mid 的基因进 入交换集 5)重复(3)和(4),直到获得足够的基 因。
t i
t i i
n
模式定理
• 选择算子的作用
f (H , t) m( H , t + 1) = m( H , t ) f (t )
若 若
f (H , t) >1,m(H,t)增加 f (t ) f ( H , t ) <1,m(H,t)减少 f (t )
在选择算子的作用下,对于平均适用度高于群体平 在选择算子的作用下, 均适应度的模式,其样本数将增长, 均适应度的模式,其样本数将增长,对于平均适用 度低于群体平均适应度的模式, 度低于群体平均适应度的模式,其样本数将减少
f ( x) f ( x) f ( x) f ( x) f ( x) f ( x)
F(x)
F(x)
F(x)
F(x)=f(x)+C
遗传算法基本要素与实现技术
• 选择算子 • 适应度较高的个体被遗传到下一代群体中 的概率较大,适应度较低的个体被遗传到 下一代群体中的概率较小。 • 选择方法 比例选择法(轮盘赌) 锦标赛选择法

2遗传算法介绍


对控制参数的改进
Srinvivas等人提出自适应遗传算法,即PC和Pm 能够随适应度自动改变,当种群的各个个体适应度 趋于一致或趋于局部最优时,使二者增加,而当种 群适应度比较分散时,使二者减小,同时对适应值 高于群体平均适应值的个体,采用较低的PC和Pm, 使性能优良的个体进入下一代,而低于平均适应值 的个体,采用较高的PC和Pm,使性能较差的个体被 淘汰。
对遗传算子的改进
排序选择 均匀交叉 逆序变异
(1) 随机产生一个与个体编码长度 相同的二进制屏蔽字P = W1W2„Wn ; (2) 按下列规则从A、B两个父代个 体中产生两个新个体X、Y:若Wi = 0, 则X的第i个基因继承A的对应基因,Y 的第i个基因继承B的对应基因;若Wi = 1,则A、B的第i个基因相互交换,从 而生成X、Y的第i个基因。
模式阶用来反映不同模式间确定性的 差异,模式阶数越高,模式的确定性就越高,
所匹配的样本数就越少。在遗传操作中,即
使阶数相同的模式,也会有不同的性质,而
模式的定义距就反映了这种性质的差异。
模式定理
模式定理:具有低阶、短定义距以及平 均适应度高于种群平均适应度的模式在子代
中呈指数增长。
模式定理保证了较优的模式(遗传算法
的质量越好。适应度函数是遗传算法进化过
程的驱动力,也是进行自然选择的唯一标准,
它的设计应结合求解问题本身的要求而定。
选择算子
遗传算法使用选择运算来实现对群体中的个体 进行优胜劣汰操作:适应度高的个体被遗传到下一
代群体中的概率大;适应度低的个体,被遗传到下
一代群体中的概率小。选择操作的任务就是按某种 方法从父代群体中选取一些个体,遗传到下一代群
遗传算法应用于组合优化

遗传算法的基本遗传操作及操作原理

遗传算法的基本遗传操作及操作原理
遗传算法是一种模拟自然界进化的优化算法,利用遗传学中的基本遗传操作模拟自然界的进化过程,通过模拟种群的遗传变异、选择和交叉等操作,在优化问题的搜索空间中寻找最优解。

遗传算法包含四个基本遗传操作:选择、交叉、变异和复制。

1. 选择(Selection):选择是从种群中选出具有适应性较高的个体,将其遗传给下一代的过程。

选择过程的目标是从种群中选择最优解,即适应度最高的个体。

2. 交叉(Crossover):交叉是将两个个体的染色体部分互相交换,产生新的个体。

交叉的目的是产生新的个体,在新个体中保留原有个体的优点,避免遗传过程中的收敛现象。

3. 变异(Mutation):变异是对某一个个体的染色体进行随机改变,以增加种群的多样性。

变异的目的是为了使种群不断进化,避免陷入局部最优解。

4. 复制(Elitism):复制是指将适应度最高的个体直接复制到下一代,确保种群中的优良基因不被遗传变异所破坏。

遗传算法的基本原理是利用自然进化规律进行搜索,通过不断的遗传操作,逐步优化种群中的染色体,直到找到最优解。

在遗传算法的优化过程中,种群的初始
状态、适应度函数的选择以及遗传操作的选择都对算法的性能有着重要影响。

遗传算法具有适应于不同问题的优点,并且可以在大规模问题中有效地进行搜索。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基本遗传算法Holland创建的遗传算法是一种概率搜索算法,它利用某种编码技术作用于称为染色体的数串,其基本思想是模拟由这些串组成的个体进化过程。

该算法通过有组织的、然而是随机的信息交换,重新组合那些适应性好的串。

在每一代中,利用上一代串结构中适应性好的位和段来生成一个新的串的群体;作为额外增添,偶尔也要在串结构中尝试用新的位和段来替代原来的部分。

遗传算法是一类随机优化算法,它可以有效地利用已有的信息处理来搜索那些有希望改善解质量的串。

类似于自然进化,遗传算法通过作用于染色体上的基因,寻找好的染色体来求解问题。

与自然界相似,遗传算法对待求解问题本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应度值来改变染色体,使适应性好的染色体比适应性差的染色体有更多的繁殖机会。

第一章遗传算法的运行过程遗传算法模拟了自然选择和遗传中发生的复制、交叉和变异等现象,从任一初始种群(Population)出发,通过随机选择、交叉和变异操作,产生一群更适应环境的个体,使群体进化到搜索空间中越来越好的区域,这样一代一代地不断繁衍进化,最后收敛到一群最适应环境的个体(Individual),求得问题的最优解。

一.完整的遗传算法运算流程完整的遗传算法运算流程可以用图1来描述。

由图1可以看出,使用上述三种遗传算子(选择算子、交叉算子和变异算子)的遗传算法的主要运算过程如下:(1)编码:解空间中的解数据x,作为遗传算法的表现形式。

从表现型到基因型的映射称为编码。

遗传算法在进行搜索之前先将解空间的解数据表示成遗传空间的基因型串结构数据,这些串结构数据的不同组合就构成了不同的点。

(2)初始群体的生成:随机产生N个初始串结构数据,每个串结构数据称为一个个体,N个个体构成了一个群体。

遗传算法以这N个串结构作为初始点开始迭代。

设置进化代数计数器t←0;设置最大进化代数T;随机生成M个个体作为初始群体P(0)。

(3)适应度值评价检测:适应度函数表明个体或解的优劣性。

对于不同的问题,适应度函数的定义方式不同。

根据具体问题,计算群体P(t)中各个个体的适应度。

(4)选择:将选择算子作用于群体。

(5)交叉:将交叉算子作用于群体。

(6)变异:将变异算子作用于群体。

群体P(t)经过选择、交叉、变异运算后得到下一代群体P(t+1)。

(7)终止条件判断:若t≤T,则t←t+1,转到步骤(2);若t>T,则以进化过程中所得到的具有最大适应度的个体作为最优解输出,终止运算。

从遗传算法运算流程可以看出,进化操作过程简单,容易理解,它给其他各种遗传算法提供了一个基本框架。

图1 遗传算法运算流程一个简单的遗传算法被Goldberg用来进行轮廓描述并用来举例说明遗传算法的基本组成。

t代种群用变量P(t)表示,初始种群P(0)是随机设计的,简单遗传算法的伪代码描述如下:produre GAbegint=0;initialize P(t);evaluate P(t);while not finished dobegint=t+1;select P(t) from P(t-1);reproduce pairs in P(t);evaluate P(t);endend二.遗传算法的基本操作遗传算法有三个基本操作:选择(Selection)、交叉(Crossover)和变异(Mutation)。

(1)选择。

选择的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代为下一代繁殖子孙。

根据各个个体的适应度值,按照一定的规则或方法从上一代群体中选择出一些优良的个体遗传到下一代群体中。

遗传算法通过选择运算体现这一思想,进行选择的原则是适应性强的个体为下一代贡献一个或多个后代的概率大。

这样就体现了达尔文的适者生存原则。

(2)交叉。

交叉操作是遗传算法中最主要的遗传操作。

通过交叉操作可以得到新一代个体,新个体组合了父辈个体的特性。

将群体内的各个个体随机搭配成对,对每一个个体,以某个概率(称为交叉概率,Crossover Rate)交换它们之间的部分染色体。

交叉体现了信息交换的思想。

(3)变异。

变异操作首先在群体中随机选择一个个体,对于选中的个体以一定的概率随机改变串结构数据中某个串的值,即对群体中的每一个个体,以某一概率(称为变异概率,Mutation Rate)改变某一个或某一些基因座上的基因值为其他的等位基因。

同生物界一样遗传算法中变异发生的概率很低。

变异为新个体的产生提供了机会。

三.基本遗传算法的数学模型基本遗传算法可表示为SGA=(C,E,P,M,Φ,Γ,ψ,T)式中:C——个体的编码方法;E——个体适应度评价函数;P——初始种群;M——种群大小;Φ——选择算子;Γ——交叉算子;ψ——变异算子;T——遗传算法终止条件。

四.基本遗传算法的步骤1.染色体编码(Chromosome Coding)与解码(Decode)基本遗传算法使用固定长度的二进制符号串来表示群体中的个体,其等位基因由二值{0,1}所组成。

初始群体中各个个体的基因可用均匀分布的随机数来生成。

例如:x=100111001000101101就可表示一个个体,该个体的染色体长度是n=18。

(1)编码:变量x作为实数,可以视为遗传算法的表现型形式。

从表现型到基因型的映射称为编码。

设某一参数的取值范围为[U1,U2],我们用长度为k的二进制编码符号来表示该参数,则它总共产生2k种不同的编码,可使参数编码时的对应关系为:000000…0000=0→U1000000…0001=1→U1+δ000000…0010=2→U1+2δ…111111…1111=2k -1→U 2其中,δ=1212--k UU 。

(2)解码:假设某一个体的编码为b k b k-1b k-2…b 2b 1,则对应的解码公式为12)2(12111--**+=∑=-k ki i i U U b U X ① 例如:设有参数X ∈[2,4],现用5位二进制编码对X 进行编码,得25=32个二进制串(染色体):00000,00001,00010,00011,00100,00101,00110,00111 01000,01001,01010,01011,01100,01101,01110,01111 10000,10001,10010,10011,10100,10101,10110,10111 11000,11001,11010,11011,11100,11101,11110,11111对于任一个二进制串,只要代入公式①,就可得到相应的解码,如X 22=10101,它对应的十进制为1512-=⋅∑i i i b =1+0*2+1*22+0*23+1*24=21,则对应参数X 的值为2+21*(4-2)/(25-1)=3.3548。

2. 个体适应度的检测评估基本遗传算法按与个体适应度成正比的概率来决定当前群体中各个个体遗传到下一代群体中的机会多少。

为了正确估计这个概率,要求所有个体的适应度必须为非负数。

所以,根据不同种类的问题,需要预先确定好由目标函数值到个体适应度之间的转换规律,特别是要预先确定好当目标函数值为负数时的处理方法。

例如,可选取一个适当大的正数C ,使个体的适应度为目标函数值加上正数C 。

3. 遗传算子基本遗传算法使用下列三种遗传算子:(1)选择运算使用比例选择算子。

比例选择因子是利用比例于各个个体适应度的概率决定其子孙的遗传可能性。

若设种群数为M ,个体i 的适应度为f i ,则个体i 被选取的概率为∑==Mk k i i f f P 1/当个体选择的概率给定后,产生[0,1]之间的均匀随机数来决定哪个个体参加交配。

若个体的选择概率大,则能被多次选中,它的遗传基因就会在种群中扩大;若个体的选择概率小,则被淘汰。

我们经常采用的是轮盘赌的原理,个体的选择概率是基于它们的性能进行的一些计算。

实值范围——总和是所有个体期望的选择概率的总和或当前种群中所有个体原始适应度值的总和。

个体采用一对一方式映像到范围[0,sum]的一连续区间,每一个体区间的大小与对应个体的适应度值相匹配。

如图1所示,轮盘赌轮的周长是6个个体适应度值的总和,个体5是最大适应度个体,它占有最大的区间。

选择一个个体,用在[0,sum]间产生随机数,看此随机数在哪个个体的区间上,则此个体被选中。

重复此过程,直到所需数量个体被选中为止。

(2)交叉运算使用单点交叉算子。

只有一个交叉点位置,任意挑选经过选择操作后种群中两个个体作为交叉对象,随机产生一个交叉点位置,两个个体在交叉点位置互换部分基因码,形成两个子个体,如图2所示。

(3)变异运算使用基本位变异算子或均匀变异算子。

为了避免问题 过早收敛,对于二进制的基因码组成的个体种群,实现基因码的小概率翻转,即0变为1,而1变为0,如图3所示。

4.基本遗传算法的运行参数基本遗传算法有下列4个运行参数需要预先设定,即M,T,P c ,P m 。

M 为群体大小,即群体中所含个体的数量,一般取为20~100; T 为遗传算法的终止进化代数,一般取为100~500; P c 为交叉概率,一般取为0.4~0.99; P m 为变异概率,一般取为0.0001~0.1。

五. 遗传算法的具体例证下面通过具体的例子介绍遗传算法的实际工作过程。

假设目标函数为8.51.4,1.120.3)20sin()4sin(5.21),(max 21221121≤≤≤≤-++=x x x x x x x x f ππ ②该函数有多个局部极值点。

下面介绍求解该优化问题的遗传算法的构造过程。

第一步,确定决策变量和约束条件。

式②给出,决策变量为x 1,x 2,约束条件为-3.0≤x 1≤12.1,4.1≤x 2≤5.8. 第二步,建立优化模型。

式②已给出了问题的数学模型。

第三步,确定编码方法。

要进行编码工作,即将变量转换成二进制串。

串的长度取决于所要求的精度。

例如,变量x j 的区间是[a j ,b j ],要求的精度是小数点后4位,也就意味着每个变量应该被分成至少(b j -a j )*104个部分。

对一个变量的二进制串位数(用m j 表示),用以下公式计算:1210*)(241-≤--jj m j j m a b变异图3 变异操作示意图110 11 011 00父个体1 父个体2单点交叉子个体1 子个体2图2 单点交叉示意图第四步,确定解码方法。

从二进制串返回一个实际的值可用下面的公式来实现: 12*)(--+=jm j j j j j a b substring decimal a x其中,)(j subing decimal 代表变量j x 的十进制值。

不妨设要求的精度为小数点后4位,则目标函数的两个变量x 1和x 2可以转换为下面的串:(12.1-(-3.0))*10000=151000 217<151000≤218, m 1=18 (5.8-4.1)*10000=17000214<17000≤215, m 2=15 m=m 1+m 2=18+15=33这样,一个染色体串是33位,如图4所示。

相关文档
最新文档