遗传算法综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
遗传算法综述
尘本是心
摘要:遗传算法是一种借鉴生物界自然选择和进化机制发展起来的高度有效的随机搜索算法。近年来,由于遗传算法求解复杂优化问题的巨大潜力及其在工业工程领域的成功应用,这种算法受到了国内外学者的广泛关注。本文介绍了遗传算法的基本原理和特点,以及在各个领域的应用情况。
关键词:遗传算法,综述,最优化。
A Review of Genetic Algorithms
Chen Benshixin
Abstract:Genetic algorithms are considered as a search used in computing to find exact or a approximate solution for optimization and search problems.This article has a review of the genetic algorithm basic principle and the characteristic and its applications.
Keywords:genetic algorithm,review,Optimization
0前言
在人工智能领域中,有不少问题需要在复杂而庞大的搜索空间中寻找最优解或准最优解。在计算此类问题时,若不能利用问题的固有知识来缩小搜索空间则会产生搜索的组合爆炸。因此,研究能在搜索过程中自动获取和积累有关搜索空间的知识并自适应地控制搜索过程从而得到最优解的通用搜索算法一直是令人瞩
目的课题。
遗传算是这类特别有效的算法之一,它(GeneticAlgorithm,GA)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机搜索算法。是由美国Michigan大学的J.Holland教授1975年首先提出,它尤其适用于处理传统搜索方法难以解决的复杂的和非线性的问题。如著名的TSP、背包问题、排课问题等
1遗传算法基本原理
遗传算法是建立在自然选择和群众遗传学机理基础上的,具有广泛适应性的搜索方法。遗传算法搜索结合了达尔文适者生存和随机信息交换的思想,适者生存消除了解中不适应因素,随机信息交换利用了原有解中已知的知识,从而有力地加快了搜索过程。
遗传算法是从代表问题可能潜在解集的一个种群开始的,一个种群由经过基因编码的一定数目的个体组成,初始种群产生之后,按照适者生存和优胜劣汰的原理,逐步演化产生出越来越好的近似解。在遗传算法的执行过程中,每一代有许多不同的种群个体(染色体)同时存在。这些染色体中哪个保留,哪个淘汰,是根据它们对环境的适应能力来决定的,适应度强的有更多的机会保留下来。适应度强弱是通过计算适应度函数的值来判别的,这个值称为适应值。适应度函数的构成与目标函数有密切关系,往往是目标函数的变种。
主要的遗传算子有以下几种:
(1)选择(Selection)算子:
又称复制(reproduction)、繁殖算子。是从种群中选择生命力强的染色体,产生新种群的过程。选择的依据是每个染色体的适应度大小,适应度越大,被选中的概率就越大,其子孙在下一代产生的个数就越多。选择操作的主要目的是为了避免基因缺失、提高全局收敛性和计算效率。选择的方法根据不同的问题,采用不同的方案。最常见的方法有随机遍历抽样、局部选择和截断选择等。
(2)交叉(Crossover)算子:
又称重组(recombination)、配对(breeding)算子。当许多染色体相同或后代的染色体与上一代没有多大差别时,可通过染色体重组来产生新一代染色体。染色体重组分两个步骤进行:首先,在新复制的群体中随机选取两个染色体,每个染色体由多个位(基因)组成;然后,沿着这两个染色体的基因随机取一个位置,二者互换从该位置起的末尾部分基因。
遗传算法的有效性主要来自选择和交叉操作,尤其是交叉,在遗传算法中起着核心作用,它决定了遗传算法的全局搜索能力。
(3)变异(Mutation)算子:
选择和交叉算子基本上完成了遗传算法的大部分搜索功能,而变异则增加了遗传算法找到接近最优解的能力,即决定了遗传算法的局部搜索能力。.变异就是以很小的概率,随机改变字符串某个位置上的值在二进制编码中,就是将0变成1,将1变成0,它本身是一种随机搜索,但与选择、交叉算子结合在一起,就能避免由复制和交叉算子引起的某些信息的永久性丢失,从而保证了遗传算法的有效性。
2遗传算法的主要特点及改进
随着问题种类的不同以及问题规模的扩大,要寻求一种能以有限的代价来解决搜索和优化的通用方法,遗传算法正是为我们提供的一个有效的途径,它不同于传统的搜索和优化方法。主要区别在于:(1)搜索过程不直接作用在变量上,而是作用于参数集进行了编码的个体上。此编码操作,使得遗传算法可直接对结构对象进行操作。
(2)搜索过程是从一组解迭代到另一组解,采用同时处理群体中多个个体的方法,降低了陷入局部最优解的可能性,并易于并行化。
(3)采用概率的变迁规则来指导搜索方向,不采用确定性搜索规则。
(4)对搜索空间没有任何特殊要求,只利用适应度信息,不需要其它辅助信息,适应范围更广。
(5)对给定问题,可以产生许多的潜在解,最终选择可以由使用者确定。
对全局信息有效利用和隐含并行性是遗传算法的两大特点,同时遗传算法对问题本身的限制较少,因而具有很强的通用优化能力。但遗传算法容易过早收敛,这样就会使其他个体中的有效基因不能得到有效复制,最终丢失;而且在进化后期染色体之间的差别极小,整个种群进化停滞不前,搜索效率较低,这样就会导致搜索到的结果不是全局最优解。
自从1975年J.H.Holland系统地提出遗传算法的完整结构和理论以来,众多学者一直致力于推动遗传算法的发展,对编码方式、控制参数的确定、选择方式和交叉机理等进行了深入的探究,其基本途径概括起来有以下几个方面:
(1)改变遗传算法的组成部分或使用技术;
(2)采用混合遗传算法;
(3)采用动态自适应技术,在进化过程中调整算法控制参数和编码粒度;
(4)采用非标准的遗传操作算子;
(5)采用并行遗传算法等。