遗传算法的基本理论

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

F [ f ( x)]
3、选择操作
1 f ( x)
选择操作从旧群体中以一定概率选择优良个体组成新的种群, 以繁殖得到下一代个体。 分 体被选中的概率适应度值有关,个体适应度越高,被选中的概率越大。遗传算法选择操作有 轮盘赌法、锦标赛法等多种方法,本题选择轮盘赌法,即基于适应度比例的选择策略,个体 i 被选中的概率为
akj akj (1 b) alj b alj alj (1 b) akj b
其中,b 为[0,1]区间的随机数。 5、变异操作 变异操作的主要目的是维持种群多样性。 变异操作从种群中随机选取一个个体, 选择个体 的一点进行变异以产生更优秀的个体。第 i 个个体的第 j 个基因 aij 进行变异的操作方法为
pi
Fi
F
j 1
N
j
其中, Fi 为个体 i 的适应度值;N 为种群个体数目。 4、交叉操作 交叉操作是指从种群中随机选择两个个体, 通过两个染色体的交换组合, 把父串的优秀特 征遗传给子串,从而产生新的优秀个体。由于个体采用实数编码,所以交叉操作采用实数交 叉法,第 k 个染色体 ak 和第 l 个染色体 al 在 j 位的交叉操作方法为
(decoding),可以作为问题近似最优解。 3、遗传算法的基本步骤 第 l 步 随机产生初始种群,个体数目一定,每个个体表示为染色体的基因编码; 第 2 步 计其个体的适应度,并判断是否符合优化准则,若符合,输出最佳个体及其代表 的最优解,并结束计算;否则转向第 3 步; 第 3 步 依据适应度选择再生个体, 适应度高的个体被选中的概率高, 适应度低的个体可 能被淘汰; 第 4 步 按照一定的交叉概率和交叉方法,生成新的个体; 第 5 步 按照一定的变异概率和变异方法,生成新的个体; 第 6 步 由交叉和变异产生新一代的种群,返回到第 2 步 c 注:遗传算法中的优化准则,一般依据问题的不同有不同的确定方式。例如,可以采用以 下的准则之—,作为判断条件: ①种群中个体的最大适应度超过预先设定值; ②种群中个体的平均适应度超过预先设定值; ③世代数超过预先设定值。 四、实例: 例 1、采用遗传算法与非线性规划的方法求解如下函数的极小值:
( / 2, / 2, / 2, / 2, / 2) 。
解:a、算法流程 非线性规划遗传算法的算法流程如下图所示:
N 种群初始化 适应度值计算 选择 交叉 变异
结束
Y
满足终 止 条 件?
非线性
Y
进化次数 是 N 的倍 数?
N
其中, 种群初始化模块根据求解问题初始化种群, 适应度值计算模块根据适应度函数计算 种群中染色体的适应度值,选择、交叉和变异为遗传算法的搜索算子,N 为固定值,当进化
次数为 N 的倍数时,则采用非线性寻优的方法加快进化,非线性寻优利用当前染色体值采用 函数 fmincon 寻找问题的局部最优值。 b、遗传算法实现 1、种群初始化 由于遗传算法不是直接处理问题空间的参数, 因此必须通过编码把要求问题的可行解表示 成遗传空间的染色体或者个体。常用的编码方法有位串编码、Grey 编码、实数编码(浮点法 编码) 、多级参数编码、有序串编码、结构式编码等。 实数编码不必进行数值交换, 可以直接在解的表现型上进行遗传算法操作。 因此本题采用 该方法编码,每个染色体为一个实数向量。 2、适应度函数 适应度函数是用来区分群体中个体好坏的标准, 是进行自然选择的唯一依据, 一般是由目 标函数加以变换得到。本题是求函数的最小值,把函数值的倒数作为个体的适应度值。函数 值越小的个体,适应度值越大,个体越优。适应度计算函数为
2
Leabharlann Baidu
一个随机数,g 是当前迭代次数, Gmax 是最大进化次数,r 为[0,1]区间的随机数。 6、非线性寻优 遗传算法每进化一定代数后,以所得到的结果为初始值,采用 MATLAB 优化工具箱中 线性规划函数 fmincon 进行局部寻优, 并把寻找到的局部最优值作为新个体染色体继续进化。 c、MATLAB 程序实现 %%遗传算法参数 maxgen=200; %进化代数,即迭代次数 sizepop=20; %种群规模 pcross=0.6; %交叉概率选择,0 和 1 之间 pmutation=0.01; %变异概率选择,0 和 1 之间 lenchrom=[1 1 1 1 1]; %每个变量的字串长度,如果是浮点变量,则长度都为 1 bound=[0 0.9*pi;0 0.9*pi;0 0.9*pi;0 0.9*pi;0 0.9*pi]; %%个体初始化 individuals=struct('fitness',zeros(1,sizepop),'chrom',[]); %种群结构体 %初始化种群 for i=1:sizepop %随机产生一个群体 individuals.chrom(i,:)=unifrnd(0,0.9*pi,[1 sum(lenchrom)]);% 随机产生染色 体 x=individuals.chrom(i,:); individuals.fitness(i)=fun(x); %染色体的适应度 end %找最好的染色体 [bestfitness bestindex]=min(individuals.fitness); bestchrom=individuals.chrom(bestindex,:); %最好的染色体 avgfitness=sum(individuals.fitness)/sizepop; %染色体的平均适应度 %记录每一代进化中最好的适应度和平均适应度 trace=[]; %%进化开始 for i=1:maxgen %选择 individuals=select(individuals,sizepop); avgfitness=sum(individuals.fitness)/sizepop; %交叉 individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);
1987 Goldberg、Segrest 复制和交叉的有限马尔可夫链 1987 Goldberg、Smith 双倍染色体遗传算法应用于非稳定函数优化 1987 Oliver、Smith、Holland 排列重组算于的模拟和分析 1987 Schaffer、Morishima 串编码自适应交叉试验 1987 Whitley 子孙测试应用于遗传算法的选择操作 之后,遗传算法发展的趋势是遗传算法的改进(如自适应遗传算法、分层遗传算法、并 行遗传算法、基于小生境技术的遗传算法等)和基于遗传算法与其他算法相结合的混合智能 优化算法(如量子遗传算法、协同遗传算法、免疫遗传算法等) 。 三、基本原理: 1、生物进化论与遗传学的相关原理 达尔文进化论主要有四个学说:一般进化论、共同祖先学说、渐变论和自然选择学说。其 中自然选择学说的主要内容为:自然选择来自繁殖过剩和生存斗争。由于弱肉强食的生存斗 争不断地进行,其结果是适者生存,具有适应性变异的个体被保留下来,不只有适应性变异 的个体被淘汰,通过一代代的生存环境的选择作用,物种变异被定向着一个方向积累,于是 性状逐渐和原先的祖先种不同,演变为新的物种。这种自然选择过程是一个长期的、缓慢的、 连续的过程。关于达尔文的进化论有很多的争议,可以参考文献[1]。 孟德尔遗传定律:分离规律和自由组合定律。 种群遗传学: 这是一种以种群为单位而不是以个体为单位的遗传学, 是研究种群中基因的 组成及其变化的生物学。在一定地域中,一个物种的全体成员构成一个种群(population),种 群的主要特征是种群内的雌雄个体能够通过有性生殖实现基因的交流。生物的进化实际上是 种群的进化,个体总是要消亡,但种群则是继续保留,每一代个体基因型的改变会影响种群 基因库(gene pool)的组成。而种群基因库组成的变化就是这一种群的进化,没有所谓的生存 斗争问题、单是个体繁殖机会的差异也能造成后代遗传组成的改变,自然选择也能够进行。 综合进化论对达尔文式的进化给予了新的更加精确的解释。 至于基本概念的定义详见参考文献[2] 中的“遗传算法扼要” 。 2、遗传算法的基本思想 遗传算法模拟的是怎样的生物进化模型呢?假设对相当于自然界中的一群人的一个种群进 行操作,第一步的选择是以现实世界中的优胜劣汰现象为背景的;第二步的重组交叉则相当 于人类的结婚和生育;第三步的变异则与自然界中偶然发生的变异是一致的。 我们用专业术语来更好地描述遗传算法的基本思想。遗传算法是从代表问题可能潜在解 集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码(coding)的一定数目的 个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为 遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定 了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定 的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工 作很复杂,我们往往进行简化,如二进制编码。初代种群产生之后,按照适者生存和优胜劣 汰的原理,逐代(generation)演化产生出越来越好的近似解。在每一代,根据问题域中个体的 适应度(fitness)大小挑选(selection)个体,并借助于自然遗传学的遗传算子(genetic operators)进 行组合交叉(crossover)和变异(mutation).产生出代表新的解集的种群。这个过程将导致种群 像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码
遗传算法的基本理论
一、起源: 早在 20 世纪 50 年代和 60 年代,就有少数人几个计算机科学家独立地进行了所谓的“人 工进化系统”研究,其出发点是进化的思想可以发展成为许多工程问题的优化工具。早期的 研究形成了遗传算法的雏形,如大多数系统都遵循“适者生存”的仿自然法则,有些系统采 用了基于群体(population)的设计方案,并且加入了自然选择与变异操作,还有一些系统 对生物染色体编码进行了抽象处理,应用二进制编码。由于缺乏一种通用的编码方案,人们 只能依赖变异而非交叉来产生新的基因结构,早期的算法收敛甚微。20 世纪 60 年代中期, 美国 Michigan 大学的 John Holland 在 A.S.Fraser 和 H.J.Bremermann 等人工作的基础上提 出了位串编码技术。这种编码既适用于变异操作,又适用于交叉(即杂交)操作。并且强调 将交叉作为主要的遗传操作。随后,Holland 将该算法用于自然和人工系统的自适应行为的 研究中,并于 1975 年出版了其开创性著作“Adaption in Natural and Artificial System” 。 以后,Holland 等人将该算法加以推广,应用到优化及机器学习等问题中,并正式定名为遗 传算法。遗传算法的通用编码技术和简单有效的遗传操作作为其广泛、成功地应用奠定了基 础。Holland 早期有关遗传算法的许多概念一直沿用至今,可见 Holland 对遗传算法的贡献 之大。他认为遗传算法本质上是适应算法,应用最多的是系统最优化的研究。 二、发展: 年份 1962 1968 1971 1972 1972 1973 1973 1975 1975 1981 1981 1983 1983 1984 1985 1985 1985 1985 1985 1986 1986 1987 1987 1987 贡献者 Holland Holland Hollstein Bosworth、Foo、Zeigler Frantz Holland Martin De Jong Holland Bethke Brindle Pettit、Swigger Wetzel Mauldin Baker Booker Goldberg、Lingle Grefenstette、Fitzpattrick Schaffer Goldberg Grefenstette Baker Goldberg Goldberg、Richardson 内容 程序漫游元胞计算机自适应系统框架 模式定理的建立 具有交配和选择规则的二维函数优化 提出具有复杂变异、类似于遗传算法的基因操作 位置非线性和倒位操作研究 遗传算法中试验的最优配置和双臂强盗问题 类似遗传真法的概率算法理论 用于 5 个测试函数的研究基本遗传算法基准参数 出版了开创性著作《Adaptation in Natural and Artificial System》 应用 Walsh 函数分析模式 研究遗传算法中的选择和支配问题 遗传算法应用于非稳定问题的粗略研究 用遗传算法解决旅行商问题(TSP) 基本遗传算法小用启发知识维持遗传多样性 试验基于排序的选择方法 建议采用部分匹配计分、分享操作和交配限制法 TSP 问题个采用部分匹配交叉 对含噪声的函数进行测试 多种群遗传算法解决多目标优化问题 最优种群大小估计 元级遗传算法控制的遗传算法 选择中随机误差的减少方法 复制和交叉时最小欺骗问题(MDP) 借助分享函数的小生境和物种归纳法
aij (aij amax )* f ( g ), r 0.5
aij
aij (amin aij )* f ( g ), r 0.5
其中, amax 是基因 aij 的上界; amin 是基因 aij 的下界; f ( g ) r2 (1 g / Gmax ) , r2 是
f ( x) 5sin x1 sin x2 sin x3 sin x4 sin x5 sin 5x1 sin 5x2 sin 5x3 sin 5x4 sin 5x5 8
其 中 , x1 , x2 , x3 , x4 , x5是 0~0.9 之 间 的 实 数 。 该 实 数 的 最 小 值 为 -2 , 最 小 值 位 置 为
相关文档
最新文档