遗传算法的基本原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
遗传算法的基本原理
LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】
第二章 遗传算法的基本原理
遗传算法的基本描述
2.1.1 全局优化问题
全局优化问题的定义:给定非空集合S 作为搜索空间,f :S —>R 为目标函数,全局优化问题作为任务)(max x f S
x ∈给出,即在搜索空间中找到至少一个使目标函数最大化的点。 全局最大值(点)的定义:函数值+∞<=)(**x f f 称为一个全局最大值,当且仅当)()(*x f x f S x ≤⇒∈∀成立时,S x ∈*被称为一个全局最大值点(全局最大解)。
局部极大值与局部极大值点(解)的定义:
假设在S 上给定了某个距离度量ρ,如果对S x ∈',0>∃ε,使得对S x ∈∀,
)()(),(''x f x f x x ≤⇒<ερ,则称x ’为一个局部极大值点,f (x ’)为一个局部极大值。当目标函数有多个局部极大点时,被称为多峰或多模态函数(multi-modality function )。 主要考虑两类搜索空间:
伪布尔优化问题:当S 为离散空间B L ={0,1}L ,即所有长度为L 且取值为0或1的二进制位串的集合时,相应的优化问题在进化计算领域称为伪布尔优化问题。
连续参数优化问题:当取S 伪n 维实数空间R n 中的有界集合],[1i i n i b a S =∏=,其中i i b a <,i = 1, 2, … , n 时,相应的具有连续变量的优化问题称为连续参数优化问题。
对S 为B L ={0,1}L ,常采用的度量时海明距离,当],[1i i n i b a S =∏=时,常采用的度量就是欧氏距离。
2.1.2 遗传算法的基本流程
遗传算法的基本步骤如下:
1)选择编码策略,把参数集合X 和域转换为位串结构空间S ;
2)定义适应度函数f(X);
3)确定遗传策略,包括群体规模,选择、交叉、变异算子及其概率。
4)生成初始种群P ;
5)计算群体中各个体的适应度值;
6)按照遗传策略,将遗传算子作用于种群,产生下一代种群;
7)迭代终止判定。
遗传算法涉及六大要素:参数编码,初始群体的设定,适应度函数的设计,遗传操作的设计,控制参数的设定,迭代终止条件。
2.1.3 遗传编码
由于GA 计算过程的鲁棒性,它对编码的要求并不苛刻。原则上任何形式的编码都可以,只要存在合适的对其进行操作的遗传算子,使得它满足模式定理和积木块假设。
由于编码形式决定了交叉算子的操作方式,编码问题往往称作编码-交叉问题。
对于给定的优化问题,由GA 个体的表现型集合做组成的空间称为问题(参数)空间,由GA 基因型个体所组成的空间称为GA 编码空间。遗传算子在GA 编码空间中对位串个体进行操作。
定义:由问题空间向GA 编码空间的映射称为编码,而有编码空间向问题空间的映射成为译码。
问题编码一般应满足以下三个原则:
1)完备性(completeness ):问题空间中的所有点都能能成为GA 编码空间中的点的表现
型。即编码应能覆盖整个问题空间。
2)健全性(soundness ):GA 编码空间中的染色体位串必须对应问题空间中的某一潜在
解。即每个编码必须是有意义的。
3)非冗余性(non-redundancy ):染色体和潜在解必须一一对应。
在某些情况下,为了提高GA 的运行效率,允许生成包含致死基因的编码位串,它们对应于优化问题的非可行解。虽然会导致冗余或无效的搜索,但可能有助于生成全局最优解所对应的个体,所需的总计算量可能反而减少。
根据模式定理,De Jong 进一步提出了较为客观明确的编码评估准则,称之为编码原理。具体可以概括为两条规则:
1)有意义积木块编码规则:编码应易于生成与所求问题相关的短距和低阶的积木块。
2)最小字符集编码规则:编码应采用最小字符集,以使问题得到自然、简单的表示和描
述。
1.二进制编码
1)连续实函数的二进制编码
设一维连续实函数],[),(v u x x f ∈采用长度维L 的二进制字符串进行定长编码,建立位串空间:
{}K L a a a S ,,,21 =,),,,(21kL k k k a a a a =,{}1,0∈kl a
k =1,2,…,K; l =1,2,…,L; K=2L
其中,个体的向量表示为),,,(21kL k k k a a a a =,其字符串形式为kL k k k a a a s 21=,s k 称为个体a k 对应的位串。表示精度为)12/()(--=∆L u v x 。
将个体又位串空间转换到问题空间的译码函数],[}1,0{:v u L →Γ的公式定义为:
对于n 维连续函数),,2,1](,[),,,,(),(21n i v u x x x x x x f i i i n =∈=,各维变量的二进制编码位串的长度为l i ,那么x 的编码从左到右依次构成总长度为∑==n
i i l L 1的二进制编码位串。相
应的GA 编码空间为:
},,,{21K L a a a S =,K=2L
该空间上的个体位串结构为
对于给定的二进制编码位串s k ,位段译码函数的形式为
)2(12),,,(121∑=---+=Γ=i i i i
l j j l i kj l i i i i kl i k i k i i a u v u a a a x , i = 1,2,…,n 采用二进制编码的GA 进行数值优化时,可以通过改变编码长度,协调搜索精度和搜索效率之间的关系。
2) 组合问题的二进制编码