第一章 遗传算法概述

第一章 遗传算法概述
第一章 遗传算法概述

第一章遗传算法概述

遗传算法(Genetic Algorithm,简称GA)起源于对生物系统所进行的计算机模拟研究。美国Michigan大学的Holland教授及其学生受到生物模拟技术的启发,创造出了一种基于生物遗传和进化机制的适合于复杂系统优化的自适应概率优化技术——遗传算法。1967年,Holland的学生Bagley在其博士论文中首次提出了“遗传算法”一词,他发展了复制、交叉、变异、显性、倒位等遗传算子,在个体编码上使用双倍体的编码方法。Holland教授用遗传算法的思想对自然和人工自适应系统进行了研究,提出了遗传算法的基本定理——模式定理(Schema Theorem),并于1975年出版了第一本系统论述遗传算法和人工自适应系统的专著《Adaptation in Natural Land Artificial Systems》。80年代,Holland教授实现了第一个基于遗传算法的机器学习系统,开创了遗传算法的机器学习的新概念。1975年,De Jong 基于遗传算法的思想在计算机上进行了大量的纯数值函数优化计算实验,树立了遗传算法的工作框架,得到了一些重要且具有指导意义的结论。1989年,Goldberg出版了《Genetic Algorithm in Search,Optimization and Machine Learning》一书,系统地总结了遗传算法的主要研究成果,全面完整地论述了遗传算法的基本原理及其应用。1991年,Davis出版了《Handbook of Genetic Algorithms》一书,介绍了遗传算法在科学计算、工程技术和社会经济中的大量实例。1992年,Koza将遗传算法应用于计算机程序的优化设计及自动生成,提出了遗传编程(Genetic Programming,简称GP)的概念。遗传算法被众多的使用者证明在控制系统的离线设计方面是有效的策略。例如,Krishnakumar和Goldberg 以及Bramlette和Cusin已证明使用遗传优化方法在太空应用中导出优异的控制器结构比使用传统方法如LQR和Powell(鲍威尔) 的增音机设计所用的时间要少(功能评估)。Porter和Mohamed展示了使用本质结构分派任务的多变量飞行控制系统的遗传设计方案。与此同时,另一些人证明了遗传算法怎么能在控制器结构的选择中使用。

从遗传算法的整个发展过程来看,70年代是兴起阶段,80年代是发展阶段,90年代是高潮阶段。遗传算法作为一种实用、高效、鲁棒性强的优化技术,发展极为迅速,已引起国内外学者的高度重视。

1.1 遗传算法概念

生物的进化(Evolution)过程主要是通过染色体之间的交叉和变异来完成的。基于对自然界中生物遗传与进化机理的模仿,针对不同的问题,很多学者设计了许多不同的编码方法来表示问题的可行解,开发出了许多种不同的编码方式来模仿不同环境下的生物遗传特性。这样,由不同的编码(Coding)方法和不同的遗传算子就构成了各种不同的遗传算法。

什么是遗传算法?

遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优解。遗传算法操作使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近似最优的方案。在遗传算法的每一代,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新的近似解。这个过程导致种群中个体的进化,得到的新个体比原个体更能适应环境,就像自然界中的改造一样。

个体或当前近似解被编码为由字母组成的串,即染色体(Chromosome),使基因(Gene,染色体值) 能在(表现) 域决策变量上被惟一地描述。尽管可以使用二进制、整数、实数等,

但是在遗传算法表现型上最常用的是二进制字符串。例如,一个问题具有两个变量X1和X2,它们的染色体结构能用图1.1所示的方法描述。

图1.1个体的染色体结构

X1被编码为10位,X2被编码为15位。位数的多少能够反应精确度水平或个体决策变量的范围,是一个不含人们试图解决问题的信息的染色体串。这只是表现值的染色体编码,任何意义均可应用于表现型。无论如何,就像下面的描述,搜索过程将在决策变量的编码中而不是它们自身中操作,当然除了在实值基因被使用的情况。

在决策变量域的染色体表现型已被编码,就可以估计种群的个体成员的特性或适应度。通过特征目标函数来估计个体在问题域中的特性。在自然世界中,这就是个体在现行环境中的生存能力。因此,目标函数建立的基础是在整个繁殖过程中选择成对的个体进行交配。

在再生(复制) 期间,每个个体均被计算适应度值,它来自没有加工的原始特性度量,由目标函数给出。这个值用来在选择中偏向更加适合的个体。相对整个种群,适应度高的个体具有高的选中参加交配的概率,而适应度低的个体具有相对低的选中概率。

一旦个体计算了适应度值,个体能根据它们的相对适应度从种群中被选中并重组,产生下一代。遗传算子直接操作染色体的特征(基因),使用一般情况下个体的基因代码,产生更适合的个体。重组算子是运用在一对个体或一大组个体中交换基因信息。最简单的重组算子是单点交叉。

考虑两个二进制父代串:

A=1 0 0 1 0 1 1 0 和B=1 0 1 1 1 0 0 0

如果一个整数位置I是随机地在1到串长L减1[1,L-1]之间选择,在这点后,两个个体间的基因进行交换,随后两个子代串产生。例如,当交叉点I=5时,两个子代串产生如下:A'= 1 0 0 1 0 0 0 0和B'= 1 0 1 1 1 1 1 0。

交叉算子并不是必须在种群的所有串中执行。当一对个体被选中培育下一代时,代替的是应用一个概率P x。进一步的遗传算法称为变异,再次使用一个概率P m应用到新染色体上。变异能根据一些概率准则引起个体基因表现型发生变化,在二进制表现型中,变异引起单个位的状态变化,即0变1,或者1变0。

例如,在A'中变异第四位,1变0,产生新串为 1 0 0 0 0 0 0 0。

变异通常被认为是一后台算子,以确保研究问题空间的特殊子空间的概率永不为零。变异具有阻止局部最优收敛的作用。

在重组和变异后,如果需要,这些个体串随后被解码,目标函数评估,计算每个个体的适应度值,个体根据适应度被选择参加交配,并且这个过程继续直到产生子代。在这种方法中,种群中个体的平均性能希望是提高的,好的个体被保存并且相互产生下一代,而适应度低的个体则消失。当一些判定条件满足后,遗传算法则终止,例如,一定的遗传代数、种群的均差或当遇到搜索空间的特殊点。

1.2 遗传算法的特点

遗传算法是一种借鉴生物界自然选择(Natural Selection)和自然遗传机制的随机搜索算法(Random searching algorithms)。它与传统的算法不同,大多数古典的优化算法是基于一个单一的度量函数(评估函数)的梯度或较高次统计,以产生一个确定性的试验解序列;遗传算法不

依赖于梯度信息,而是通过模拟自然进化过程来搜索最优解(Optimal Solution),它利用某种编码技术,作用于称为染色体的数字串,模拟由这些串组成的群体的进化过程。遗传算法通过有组织地、随机地信息交换来重新组合那些适应性好的串,生成新的串的群体。

1.2.1 遗传算法的特点

遗传算法具有如下特点:

(1)对可行解表示的广泛性。遗传算法的处理对象不是参数本身,而是针对那些通过参数集进行编码得到的基因个体。此编码操作使得遗传算法可以直接对结构对象进行操作。所谓结构对象,泛指集合、序列、矩阵、树、图、链和表等各种一维或二维甚至多维结构形式的对象。这一特点使得遗传算法具有广泛的应用领域。比如:

①通过对连接矩阵的操作,遗传算法可用来对神经网络或自动机的结构或参数加以优化。

②通过对集合的操作,遗传算法可实现对规则集合和知识库的精炼而达到高质量的机器学习目的。

③通过对树结构的操作,用遗传算法可得到用于分类的最佳决策树。

④通过对任务序列的操作,遗传算法可用于任务规划,而通过对操作序列的处理,可自动构造顺序控制系统。

(2)群体搜索特性。许多传统的搜索方法都是单点搜索,这种点对点的搜索方法,对于多峰分布的搜索空间常常会陷于局部的某个单峰的极值点。相反,遗传算法是采用同时处理群体中多个个体的方法,即同时对搜索空间中的多个解进行评估。这一特点使遗传算法具有较好的全局搜索性能,也使得遗传算法本身易于并行化。

(3)不需要辅助信息。遗传算法只适应度函数的数值来评估基因个体,并在此基础上进行遗传操作。更重要的是,遗传算法的适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。对适应度函数的惟一要求是,编码必须与可行解空间对应,不能有死码。由于限制条件的缩小,使得遗传算法的应用范围大大扩展。

(4)内在启发式随机搜索特性。遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导它的搜索方向。概率仅仅是作为一种工具来引导其搜索过程朝着搜索空间的更优化的解区域移动。虽然看起来它是一种盲目搜索方法,实际上它有明确的搜索方向,具有内在的并行搜索机制。

(5)遗传算法在搜索过程中不容易陷入局部最优,即使在所定义的适应度函数是不连续的、非规则的或有噪声的情况下,也能以很大的概率找到全局最优解。

(6)遗传算法采用自然进化机制来表现复杂的现象,能够快速可靠地解决非常困难的问题。

(7)遗传算法具有固有的并行性和并行计算的能力。

(8)遗传算法具有可扩展性,易于同别的技术混合。

重点注意的是,遗传算法对给定问题给出大量可能的解答并挑选最终的解答给用户。要是一个特定问题并没有单个的解,例如Pareto最优解系列中,就像多目标优化和日程安排的案例中,遗传算法将尽可能地用于识别可同时替换的解。

1.2.2 遗传算法的不足之处

遗传算法作为一种优化方法,它存在自身的局限性:

(1)编码不规范及编码存在表示的不准确性。

(2)单一的遗传算法编码不能全面地将优化问题的约束表示出来。考虑约束的一个方法就是对不可行解采用阈值,这样,计算的时间必然增加。

(3)遗传算法通常的效率比其它传统的优化方法低。

(4)遗传算法容易出现过早收敛。

(5)遗传算法对算法的精度、可信度、计算复杂性等方面,还没有有效的定量分析方法。

1.3遗传算法与传统方法的比较

对于一个求函数最大值的优化问题(求函数最小值也类似) ,一般可描述为带约束条件的数学规划模型:

??????∈U R R X t s X f .

.)(max (1.1)

式中,t n x x x X ],,,[21Λ=为决策变量,)(X f 为目标函数,U 为基本空间,R 是U 的一个

子集。满足约束条件的解称为可行解(Feasible Solution),集合R 表示由所有满足约束条件的解所组成的一个集合,称为可行解集合。它们之间的关系如图1.2所示。

图1.2 最优化问题的可行解及可行解集合

对于上述最优化问题,目标函数和约束条件种类繁多,有的是线性的,有的是非线性的;有的是连续的,有的是离散的;有的是单峰值的,有的是多峰值的。随着研究的深入,人们逐渐认识到在很多复杂情况下要想完全精确地求出其最优解是不可能的,也是不现实的,因而求出其近似最优解或满意解是人们主要研究的问题之一。

对于类似上述最优化问题,求最优解或近似最优解的传统方法主要有解析法、随机法和穷举法。解析法中,主要包括爬山法和间接法。随机法中,主要包括导向随机方法和盲目随机方法。而穷举法中,包括完全穷举法、回溯法、动态规划法和限界剪枝法。

此类问题可以利用遗传算法求解。而对于求解此类问题,遗传算法与一般传统方法有着本质的区别。图1.3为传统算法和遗传算法对比示意图。

图1.3 传统算法和遗传算法对比

1.3.1 遗传算法与启发式算法的比较

启发式算法是指通过寻求一种能产生可行解的启发式规则,找到问题的一个最优解或近似最优解。该方法求解问题的效率较高,但是它对每一个所求的问题必须找出其特有的启发式规则,这个启发式规则一般无通用性,不适合于其他问题。但遗传算法采用的不是确定性规则,而是强调利用概率转换规则来引导搜索过程。

1.3.2 遗传算法与爬山法的比较

爬山法是直接法、梯度法和Hessian法的通称。爬山法首先在最优解可能存在的地方选择一个初始点,然后通过分析目标函数的特性,由初始点移到一个新的点,然后再继续这个过程。爬山法的搜索过程是确定的,通过产生一系列的点收敛到最优解(有时是局部最优解),而遗传算法的搜索过程是随机的,它产生一系列随机种群序列。二者的主要差异可以归纳为如下两点:

(1)爬山法的初始点仅有一个,由决策者给出;遗传算法的初始点有多个,是随机产生的。

(2)通过分析目标函数的特性可知,爬山法由上一点产生一个新的点;遗传算法通过遗传操作,在当前的种群中经过交叉、变异和选择产生下一代种群。对同一优化问题,遗传算法所使用的机时比爬山法所花费的机时要多。但遗传算法可以处理一些爬山法所不能解决的复杂的优化问题。

1.3.3 遗传算法与穷举法的比较

穷举法就是对解空间内的所有可行解进行搜索,但是通常的穷举法并不是完全穷举法,即不是对所有解进行尝试,而是有选择地尝试,如动态规划法、限界剪枝法。对于特定的问题,穷举法有时也表现出很好的性能。但一般情况下,对于完全穷举法,方法简单易行,但求解效率太低;对于动态规划法、限界剪枝法,则鲁棒性不强。相比较而言,遗传算法具有较高的搜索能力和极强的鲁棒性。

1.3.4 遗传算法与盲目随机法的比较

与上述的搜索方法相比,盲目随机搜索法有所改进,但它的搜索效率仍然不高。一般而言,只有解在搜索空间中形成紧致分布时,它的搜索才有效。而遗传算法作为导向随机搜索方法,是对一个被编码的参数空间进行高效搜索。

经过上面的探讨,能看到遗传算法与更多的传统优化方法在本质上有着不同之处。主要有四点不同:

(1)遗传算法搜索种群中的点是并行的,而不是单点。

(2)遗传算法并不需要辅助信息或辅助知识,只需要影响搜索方向的目标函数和相对应的适应度。

(3)遗传算法使用概率变换规则,而不是确定的变换规则。

(4)遗传算法工作使用编码参数集,而不是自身的参数集(除了在实值个体中使用) 。

1.4 遗传算法的基础用语

由于遗传算法是自然遗传学和计算机科学相互结合渗透而成的新的计算方法,因此遗传算法中经常使用自然进化中有关的一些基本用语。了解这些用语对于讨论和应用遗传算法是十分必要的。

生物的遗传物质的主要载体是染色体,DNA是其中最主要的遗传物质,而基因(Gene)又是控制生物性状的遗传物质的功能单位和结合单位。复数个基因组成染色体,染色体中基因的位置称为基因座(Locus),而基因所取的值叫做等位基因(Allele)。基因和基因座决定了染色体的特征,也就决定了生物个体的性质状态。染色体有两种相应的表示模式,即基因型和表现型。所谓表现型,是指生物个体所表现出来的性质状态,而基因型是指与表现型密切相关的基因组成。同一种基因型的生物个体在不同的环境条件下可以有不同的表现型,因此表现型是基因型与环境条件相互作用的结果。在遗传算法中,染色体对应的是数据或数组,在标准的遗传算法中,通常是由一维的串结构数据表现的。串上各个位置对应上述的基因座,而各位置上所取的值对应上述的等位基因。遗传算法处理的是染色体,或者叫基因型个体。一定数量的个体组成了群体,也叫集团。群体中个体的数目称为群体的大小,也叫群体规模。而各个体对环境的适应程度叫适应度。执行遗传算法时包含两个必要的数据转换操作,一个是表现型到基因型的转换,它把搜索空间中的参数或解转换成遗传空间中的染色体或个体,此过程称为编码操作;另一个是基因型到表现型的转换,它是前者的一个相反操作,称为译码操作。表1.1为自然遗传学和人工遗传算法中所使用的基础用语的对应关系。

表1.1 遗传学和遗传算法中基础用语对照表

1.5 遗传算法的研究方向

遗传算法是多学科结合与渗透的产物,它已经发展成一种自组织、自适应的综合技术,其研究方向主要有下面几个方面。

⒈基础理论

遗传算法的数学理论并不完善,张铃等对遗传算法的“模式定理”和“隐性并行性”进行分析研究,指出其不足并指出遗传算法本质上是一个具有定向制导的随机搜索技术。在遗传算法中,群体规模和遗传算子的控制参数的选取非常困难,但它们又是必不可少的实验参数,在

这方面,已有一些具有指导性的实验结果。遗传算法还有一个过早收敛的问题,如何阻止过早收敛也是人们正在研究的问题之一。

⒉分布并行遗传算法

遗传算法在操作上具有高度的并行性,许多研究人员都在探索在并行机和分布式系统上高效执行遗传算法的策略。对分布遗传算法的研究表明,只要通过保持多个群体和恰当控制群体间的相互作用来模拟并发执行过程,即使不使用并行计算机,也能提高算法的执行效率。遗传算法的并行性主要从三个方面考虑,即个体适应度评价的并行性、整个群体各个个体适应度评价的并行性及子代群体产生过程的并行性。

⒊分类系统

分类系统属于基于遗传算法的机器学习中的一类,包括一个简单的基于串规则的并行生成子系统、规则评价子系统和遗传算法子系统。分类系统被人们越来越多地应用在科学、工程和经济领域中,是目前遗传算法研究中一个十分活跃的方向。

⒋遗传神经网络

遗传神经网络包括连接级、网络结构和学习规则的进化。遗传算法与神经网络相结合,成功地用于从时间序列分析来进行财政预算。在这些系统中,训练信号是模糊的,数据是有噪声的,一般很难正确给出每个执行的定量评价,如果采用遗传算法学习,就能克服这些困难,显著提高系统性能。Muhlenbein分析了多层感知网络的局限性,并猜想下一代神经网络将是遗传神经网络。

⒌进化算法

模拟自然进化过程可以产生鲁捧的计算机算法——进化算法。遗传算法是其三种典型的算法之一,其余两种算法是进化规划和进化策略,这三种算法是独立发展起来的。

⒍人工生命与遗传算法

近几年来,通过计算机模拟,再现种种生命现象以达到对生命更深刻理解的人工生命的研究正在兴起。已有不少学者对生态系统的演变、食物链的维持以及免疫系统的进化等用遗传算法作了生动的模拟。但是实现人工生命的手段很多,遗传算法在实现人工生命中的基本地位和能力究竟如何,这是值得研究的课题。

1.6 基于遗传算法的应用

遗传算法提供了一种求解复杂系统优化问题的通用框架,它不依赖于问题具体的领域,对问题的种类有很强的鲁棒性,所以广泛应用于许多学科。近十年来,遗传算法得到了迅速发展,其主要表现在众多的应用领域。目前,遗传算法在生物技术和生物学、化学和化学工程、计算机辅助设计、物理学和数据分析、动态处理、建模与模拟、医学与医学工程、微电子学、模式识别、人工智能、生产调度、机器人学、开矿工程、电信学、售货服务系统等领域都得到应用,成为求解全局优化问题的有力工具之一。下面给出遗传算法一些主要的应用领域。

⒈函数优化

函数优化(Function Optimization)是遗传算法的经典应用领域,也是对遗传算法进行性能评价的常用算例。可以用各种各样的函数来验证遗传算法的性能。对一些非线性、多模型、多目标的函数优化问题,使用遗传算法可得到较好的结果。

⒉组合优化

随着问题规模的增大,组合优化问题的搜索空间也急剧扩大,有时在目前的计算机上用枚举法很难甚至不能求出问题的最优解,对这类问题,人们已意识到应把主要精力放在寻求其满意解上,而遗传算法是寻求这种满意解的最佳工具之一。实践证明,遗传算法对于组合优化中的NP完全问题非常有效。

⒊生产调度问题

采用遗传算法能够解决复杂的生产调度问题。在单件生产车间调度、流水线生产车间调度、生产规划、任务分配等方面,遗传算法都得到了有效的应用。

⒋自动控制

在自动控制领域中有很多与优化相关的问题需要求解,遗传算法已在其中得到了初步应用,并显示出了良好的效果。例如,基于遗传算法的模糊控制器优化设计,用遗传算法进行航空控制系统的优化,使用遗传算法设计空间交会控制器等。

⒌机器人学

机器人是一类复杂的难以精确建模的人工系统,而遗传算法的起源来自于对人工自适应系统的研究,所以机器人学理所当然地成为遗传算法的一个重要领域。例如,遗传算法已经在移动机器人路径规划、机器人逆运动学求解等方面得到很好的应用。

⒍图像处理

图像处理是计算机视觉中的一个重要领域,在图像处理过程中,如扫描、特征提取、图像分割等不可避免地会存在一些误差,这些误差会影响图像处理的效果,如何使这些误差最小是使计算机视觉达到实用化的重要要求,遗传算法在这些图像处理的优化计算方面找到了用武之地。

⒎遗传编程

Koza发展了遗传程序设计的概念,他使用了以LISP语言所表示的编码方法,算法基于对一种树型结构所进行的遗传操作来自动生成计算机程序。

⒏机器学习

基于遗传算法的机器学习,特别是分类器系统,在很多领域中都得到了应用。例如,遗传算法被用于学习模糊控制规则,利用遗传算法来学习隶属函数等。基于遗传算法的机器学习可用于调整人工神经网络的连接权,也可用于神经网络结构的优化设计。分类器系统在多机器人路径规划系统中得到了成功的应用。

⒐数据挖掘

数据挖掘(Data Mining)是指从大型数据库或数据仓库中提取隐含的、未知的、非平凡的及有潜在应用价值的信息或模式,它是数据库研究中的一个很有应用价值的新领域,由于遗传算法的特点,遗传算法可用于数据挖掘中的规则开采。

⒑信息战

遗传算法在信息战领域得到了初步应用。使用遗传算法能够进行雷达目标识别、数据挖掘、作战仿真、雷达辐射源识别、雷达天线优化设计、雷达目标跟踪、盲信号处理、空间谱估计、天线设计、网络入侵检测、情报分析中的数据挖掘和数据融合、信息战系统仿真、作战效能评估、作战辅助决策等。

表1.2列出了遗传算法的主要应用领域及问题举例。

表1.2 遗传算法的主要应用领域

遗传算法综述

遗传算法综述 摘要:遗传算法(genetic algorithms,GA)是一类借鉴生物界自然选择和自然遗传机制的随机搜索算法,适用于处理传统搜索方法难以解决的复杂和非线性优化问题。遗传算法可广泛应用于组合优化、机器学习、自适应控制、设计和人工生命等领域,是21世纪有关智能计算中的重要技术之一。 本文通过对相关论文的查阅和整理,对遗传算法的研究现状和发展趋势进行了综述并谈论了一些自己的看法。 关键词:遗传算法研究现状发展趋势 引言:遗传算法是模拟遗传选择和自然淘汰的生物进化过程的计算模型,由美国Michigan大学的Holland教授于1969年提出,后经DeJong、Goldberg 等人归纳总结,形成一种新的全局优化搜索算法[1]。遗传算法以其简单通用、鲁棒性强、适于并行处理以及高效、实用等显著特点,在各个领域得到了广泛应用,取得了良好效果,并逐渐成为重要的智能算法之一。 1、遗传算法的基本原理 与传统搜索算法不同, 遗传算法从一组随机产生的初始解,称为群体, 开始搜索过程。群体中的每个个体是问题的一个解,称为染色体。这些染色体在后续迭代中不断进化, 称为遗传。遗传算法主要通过交叉、变异、选择运算实现。交叉或变异运算生成下一代染色体, 称为后代。染色体的好坏用适应度来衡量。根据适应度的大小从上一代和后代中选择

一定数量的个体, 作为下一代群体, 再继续进化, 这样经过若干代之后, 算法收敛于最好的染色体, 它很可能就是问题的最优解或次优解。“遗传算法中使用适应度这个概念来度量群体中的各个个体的在优化计算中有可能到达最优解的优良程度。度量个体适应度的函数称为适应度函数。适应度函数的定义一般与具体求解问题有关”[2]。 遗传算法包含两个数据转换操作,一个是从表现型到基因型的转换,将搜索空间的参数或解转换成遗传空间中的染色体或个体,这个过程称为编码(coding)。另一个是从基因型到表现型的转换,即将个体转化成搜索空间中的参数,这个过程称为译码(decode)。 图1展示了遗传算法的运行过程。 图1 遗传算法的运行过程示意图 2、遗传算法的研究现状 2.1 遗传算法研究方向[3] 在遗传算法的研究中,目前主要有三类研究方向: ⑴研究遗传算法本身的理论基础。 ⑵用遗传算法作为工具解决工程问题。主要是进行优化,关心的是能

自适应遗传算法讲解学习

自适应遗传算法

自适应遗传算法 一.主要流程: 1. 参数的初始化。设定遗传种群规模N ,阵元数M ,信源数P 等。 2. 编码。采用十进制编码方法。 3. 初始种群的产生。随机数生成。 4. 适应度函数的评价。选取 ()() R P ΘA )tr f = (1) 其中, H 1H )(A A A A P A -= (2) P A 是A 的投影矩阵,A 是阵列流型。 ∑==L i L 1 H 1XX R ) (3) R )是数据协方差矩阵的最大似然估计。 5. 选择。比例选择方法与精英选择方法结合使用,在当代种群中选择优良个体遗传到下一代。既保证了种群的多样性,也使最优个体得以保留。 1)比例选择方法(赌轮盘法):每个个体被选中的概率与它的适应度函数值大小成正比,即适应度函数越高的个体被选中的概率也就越高。 2)精英选择方法:让种群中适应度函数值最高的个体不进行配对交叉,直接复制到下一代中。但是容易陷入局部最优解,全局搜索能力差。 6. 交叉。按照概率P c 对种群中个体两两配对,进行交叉操作。本文中选取算数交叉的方式。 算数交叉:是由两个个体的线性组合来产生新的个体,假设第t 代的两个个体为A (t)、B (t),则算数交叉后产生的新个体是

()()()()t t t A B A αα-+=+11 (4) ()()()()t t t B A B αα-+=+11 (5) 其中,α选取(0,1)之间的随机数。 交叉概率:使交叉概率随着遗传代数的增长,逐渐减小,目的是进化前期注重交叉运算,全局搜索能力强。 2.02cos *4.0+?? ? ??*=πK T P c (6) 其中,T 是进化代数,K 是总进化次数。 7. 变异。按照概率P m 对种群个体进行变异。本文中选取均匀变异的方式。 均匀变异:如某基因座上的基因值为X k ,其取值范围为[Umin,Umax],对其进行变异后的值为 )U -r(U +U =X min max min k (7) 其中,r 选取[0,1]之间的随机数。 变异概率:使变异概率随着遗传代数的增长,逐渐增加,目的是进化后期注重变异运算,局部搜索能力强。 005.02sin *045.0+?? ? ??*=πK T P m (8) 其中,T 是进化代数,K 是总进化次数。 8. 终止条件判断。若已达到设定的最大遗传代数,则迭代终止,输出最优解;若不满足终止条件,则返回第4步,进行迭代寻优过程。

遗传算法参数调整实验报告(精)

遗传算法参数调整实验报告 算法设计: 编码方案:遍历序列 适应度函数:遍历路程 遗传算子设计: 选择算子:精英保留+轮盘赌 交叉算子:Pxover ,顺序交叉、双亲双子, 变异算子:Pmutation ,随机选择序列中一个染色体(城市)与其相邻染色体交换 首先,我们改编了我们的程序,将主函数嵌套在多层迭代之内,从外到内依此为: 过程中,我们的程序将记录每一次运行时种群逐代进化(收敛)的情况,并另外记录总体测试结果。 测试环境: AMD Athlon64 3000+ (Overclock to 2.4GHz)

目标:寻求最优Px 、Pm 组合 方式:popsize = 50 maxgen = 500 \ 10000 \ 15000 Px = 0.1~0.9(0.05) Pm = 0.01~0.1(0.01) count = 50 测试情况:运行近2万次,时间约30小时,产生数据文件总共5.8GB 测试结果:Px, Pm 对收敛结果的影响,用灰度表示结果适应度,黑色为适应度最低 结论:Px = 0.1 ,Pm = 0.01为最优,并刷新最优结果19912(之前以为是20310),但20000次测试中最优解只出现4次,程序需要改进。 Maxgen = 5000 Pm=0.01 Px = 0.1 Maxgen = 10000 0.1 0.9 Px = 0.1 0.9 0.1

目标:改进程序,再寻求最优参数 方式:1、改进变异函数,只保留积极变异; 2、扩大测试范围,增大参数步进 popsize = 100 \ 200 \ 400 \ 800 maxgen = 10000 Px = 0.1 \ 0.5 \ 0.9 Pm = 0.01 \ 0.04 \ 0.07 \ 0.1 count = 30 测试情况:运行1200次,时间8小时,产生数据文件600MB 测试结果: 结论:Px = 0.1,Pm = 0.01仍为最优,收敛情况大有改善,10000代基本收敛到22000附近,并多次达到最优解19912。变异函数的修改加快了整体收敛速度。 但是收敛情况对Pm并不敏感。另外,单个种群在遗传过程中收敛速度的统计,将是下一步的目标。

冲击地压预测与控制体系

冲击地压预测与控制体系Orga nize en terprise safety man ageme nt pla nning, guida nee, in spect ion and decisi on-mak ing, en sure the safety status, and unify the overall pla n objectives

编制:____________________ 审核:____________________ 时间:____________________

冲击地压预测与控制体系 简介:该安全管理资料适用于安全管理工作中组织实施企业安全管理规划、指导、检查和决策等事项,保证生产中的人、物、环境因素处于最佳安全状态,从而使整体计划目标统一,行动协调,过程有条不紊。文档可直接下载或修改,使用时请详细阅读内容。 冲击地压是采动诱发高强度的煤(岩)弹性能瞬时释放,在相应采动空间引起强烈围岩震动和挤出的现象。是我国煤矿常见的重大事故灾害。冲击地压引起人员伤亡和设备损坏,不仅发生在推进的工作面现场,而且可能波及弹性释放范围的巷道、峒室,特别是存在应力集中的空间部位。迄今为止,冲击地压的控制处在统计管理与条理决策阶段,没有形成冲击地压的防治理论、监测方法及控制决策的一体化体系。本文基于对冲击地压发生的机理,对冲击地压事故进行了分类,提出了冲击地压事故预测与控制动力信息基础,形成了实用的冲击地压预测控制的体系。 1冲击地压发生的原因及实现的条件 具有冲击倾向的煤(岩)层,受构造运动和采场推进影 响而形成的高度应力集中和高能级的弹性变形能的储存,是

冲击地压预防措施

冲击地压预防措施 冲击地压是聚集在矿井巷道和采场周围岩体的能量突然释放。在井巷中发生的爆炸事故。动 力将煤岩抛向巷道,同时发出强烈声响,造成煤岩体振动和煤岩体破坏、支架与设备、人员 伤亡,部分巷道跨落破坏等。冲击地压具有突发性、发生条件复杂性的特点。随着矿井开采 深度的增加,矿山压力显现日趋明显,为做好矿井冲击地压预测和预防工作,防止冲击地压 危害,确保179综采队安全生产,依据《煤矿安全规程》和有关规定及法律法规,制定相应 的防范措施: 一、管理机构 建立以队长为组长,生产、安全、机电等副副长为副组长。相关的负责人为成员的冲击地压 管理机构。 二、抢险准备工作 1、全队各工种人员,必须熟知矿井冲击地压灾害基本知识,掌握冲击地压发生的机理、预兆、影响因素及危害,以便及时采取相应的救援措施。 2、根据矿井冲击地压事故的特点,必须提前准备好各类技术装备,以便抢险救灾工作的需要。(液压起重器、大绳、矿工斧、镐、刀锯、两用锹检测仪器等) 3、生产科负责编制并贯彻落实施工措施,确保抢险施工安全进行。 4、机电科负责抢险期间机电设备及供电系统的安装使用,并在事故发生第一时间,停止矿 井生产电源。 5、地测科负责了解事故现场情况,分析判断事故严重程度、波及范围及存在的威胁。 6、安监科负责现场监督抢险过程的安全情况,杜绝二次事故的发生。 7、供应科负责准备抢险期间需要的所有工具并保证其安全质量。 8、运输区负责各类材料、工具、空重车皮的运输,确保各类材料、工具车皮及时达到作业 地点。 9、通风区负责通风系统的巡查、调风、风机安设等工作,确保井下无串联风、微风、无风 等现象。 10、调度室负责联系组织各单位抢险工作,并在事故发生的第一时间,通知矿井所有人员进 入新鲜风流中躲避。 三、技术管理 1、要对各开采煤层进行煤层冲击倾向性鉴定,并认真做好待采区段冲击地压危险性评价。 2、编制防治冲击地压专门设计。评价为有冲击地压危险性的区段,采区设计和掘进、采煤 作业规程必须编制防治冲击地压的专门设计。 3、采用正确的开采方式和采掘生产工艺,必须要采用长壁后退式开采方法和全部跨落式顶 板管理方法。 4、科学安排开采顺序,应避免人为形成孤岛、半孤岛高应力集中区。 5、优化巷道布置 1)、巷道应避免布置在支撑压力峰值位置或构造应力影响带内。 2)、采场巷道应布置在无冲击或弱冲击的煤层中或岩层中。 3)、采场之间应尽量采用无煤柱开采、沿空留巷或沿空送巷。确实不具备无煤柱开采条件的,应采取窄煤柱布置,与采空区留3—7m煤柱,尽量不布置在煤体边缘10—40m的范围内。

遗传算法的流程图

一需求分析 1.本程序演示的是用简单遗传算法随机一个种群,然后根据所给的交叉率,变异率,世代数计算最大适应度所在的代数 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的命令;相应的输入数据和运算结果显示在其后。3.测试数据 输入初始变量后用y=100*(x1*x1-x2)*(x1*x2-x2)+(1-x1)*(1-x1)其中-2.048<=x1,x2<=2.048作适应度函数求最大适应度即为函数的最大值 二概要设计 1.程序流程图 2.类型定义 int popsize; //种群大小 int maxgeneration; //最大世代数 double pc; //交叉率 double pm; //变异率 struct individual

{ char chrom[chromlength+1]; double value; double fitness; //适应度 }; int generation; //世代数 int best_index; int worst_index; struct individual bestindividual; //最佳个体 struct individual worstindividual; //最差个体 struct individual currentbest; struct individual population[POPSIZE]; 3.函数声明 void generateinitialpopulation(); void generatenextpopulation(); void evaluatepopulation(); long decodechromosome(char *,int,int); void calculateobjectvalue(); void calculatefitnessvalue(); void findbestandworstindividual(); void performevolution(); void selectoperator(); void crossoveroperator(); void mutationoperator(); void input(); void outputtextreport(); 4.程序的各函数的简单算法说明如下: (1).void generateinitialpopulation ()和void input ()初始化种群和遗传算法参数。 input() 函数输入种群大小,染色体长度,最大世代数,交叉率,变异率等参数。 (2)void calculateobjectvalue();计算适应度函数值。 根据给定的变量用适应度函数计算然后返回适度值。 (3)选择函数selectoperator() 在函数selectoperator()中首先用rand ()函数产生0~1间的选择算子,当适度累计值不为零时,比较各个体所占总的适应度百分比的累计和与选择算子,直到达到选择算子的值那个个体就被选出,即适应度为fi的个体以fi/∑fk的概率继续存在; 显然,个体适应度愈高,被选中的概率愈大。但是,适应度小的个体也有可能被选中,以便增加下一代群体的多样性。 (4)染色体交叉函数crossoveroperator() 这是遗传算法中的最重要的函数之一,它是对个体两个变量所合成的染色体进行交叉,而不是变量染色体的交叉,这要搞清楚。首先用rand ()函数产生随机概率,若小于交叉概率,则进行染色体交叉,同时交叉次数加1。这时又要用rand()函数随机产生一位交叉位,把染色

浅谈国内外冲击地压预测与防治

浅谈国内外冲击地压预测与防治 冲击地压是一种特殊的矿山压力现象,也是煤矿井下复杂动力现象之一。当应力超过极限状态时,会造成瞬间大量弹性能的突然释放,,不仅会对设备造成损坏,严重时可造成人员伤亡。本文主要针对冲击地压发生的现状,阐述目前国内外对冲击地压预测和防治的情况,对现有主要的预测技术进行了分析说明。 标签:冲击地压;威胁;预测;防治 前言 随着我国能源对煤炭的需求,煤炭开采量随之增加,开采深度已接近千米。因此冲击地压灾害将日益严重,短期内还不能像发达国家一样将冲击地压矿井一并予以关闭。从而,我们必须对冲击地压这种自然灾害进行更深的研究。本文对冲击地压预测与防治方法进行了综合论述,希望对冲击地压预测与防治有所帮助。 1 冲击地压预测 1.1 围岩变形监测法 采掘活动在煤层和顶底板中将引起各种形式的矿山压力显现,其中支承压力有着特殊的意义。支承压力的大小、分布是多因素影响的结果。在发生冲击地压过程中,支承压力特别是动压显现起着重要作用。因此利用它的显现规律可以预测冲击地压。一般情况下,支承压力的动压显现与工作面煤壁边缘区的稳定性有关。当边缘区未被压坏时,随着采煤工作面的推进,支承压力的大小和峰值也随之变化,其峰值愈靠近煤壁冲击危险性也愈大。 1.2 钻屑法 钻屑法是通过在煤体中钻小直径钻孔,根据钻孔时排出的煤粉量及其变化规律和有关动力现象。达到一系列探测目的施工方法;钻屑法能够估测煤岩体应力大小和分布,因而能够用于估测采掘工作面的支承压力大小和分布规律。支承压力的峰值大小,峰值位置至煤壁的距离,以及支承压力显著作用范围。它具有简单易行、直观、适应性强等优点,成为公认的一种预测冲击地压危险的主要方法。 1.3 地音微震监测 地音微震监测是实现冲击地压防治现代化的有效途径。在井下生产过程中,回采、掘进等生产过程都会引起围岩应力集中,造成采掘空间周围岩的震动、破裂和突然卸压出现一系列具有动力特征的声发射现象,通过上述动力现象是煤岩结构破坏和裂隙扩展或灾害性事故的前兆信号,观测和记录这些现象就可以预测冲击危险。

煤矿冲击地压预防和处理方法

浅谈煤矿冲击地压预防和处理方法 摘要:本文介绍了冲击地压的预防措施以及处理方法。清晰地阐述了冲击地压的发生原因,并对其实施预测预报,能够做到及时发现,及时补救处理。 关键词:冲击地压灾害预测灾害治理 冲击地压是采场周围煤岩体,在其力学平衡状态破坏时,由于弹性变形能的瞬间释放而产生一种以突然、急剧、猛烈破坏为特征的动力现象。冲击地压是一种特殊的矿山压力显现。其显现强度特征一般为弱冲击、强冲击、弹射、矿震、岩爆、煤炮、冲击波、弹性振动等,常伴有煤岩体抛出、巨响及气浪等现象;其发生突然剧烈,冲击波力量巨大,瞬间摧毁巷道、设备、人员。 一、冲击地压发生的原因 1)煤层具有冲击倾向性。冲击地压的发生与煤岩体物理力学性质有直接关系。煤炭科学研究总院北京开采研究所对桃山煤矿79#层煤冲击倾向性试验结果表明,桃山煤矿79#层煤具有强烈冲击倾向性,其直接顶具有中等冲击倾向性。 2)砾岩活动是发生冲击地压的主要力源。桃山煤矿79#层煤上方基本顶为70余米厚的砂岩层,随着工作面的推进周期性跨落;其上为40 余米厚的红土层。 3)层煤工作面采动集中应力对工作面影响较为明显。79# 层煤分层开采时上分层工作面周期来压强度最大达510kn/m2,来压较为强烈。据不完全统计,79#层煤冲击地压83%发生在顶板来压期间,且对工作面超前压力影响范围破坏最为严重。 4)工作面推采速度的影响。回采工作面推采过大后,工作面煤体集中应力得不到及时释放,容易造成应力集中,因此工作面推采速度也是影响冲击地压发生的因素之一。 5)放炮诱发。回采工作面放炮容易造成煤岩体能量释放,因此工作面放炮是诱发冲击地压的主要工序,据统计,桃山煤矿放炮诱发冲击地压占75%以上。 二、冲击地压灾害预测预报及治理 (一)冲击地压灾害预测方法 1)经验类比法。经验类比法是预测采区或工作面冲击危险程度和区域的常用方法。工作面开采或巷道掘进前,利用经验类比法对工作面进行冲击危险程度划分,采空区边缘、断层附近、煤柱区等均为冲击危险程度相对较高的部位,应优先进行防冲治理。 2)煤粉监测法。煤粉监测是操作方便、效果明显的一种冲击危险监测措施。监测方法:使用MSZ12 电煤钻、Φ42 套节麻花钎子配Φ42 钻头打眼,从孔口开始每米收集1次煤粉,并用弹簧秤称其重量记录在记录表上,每打完1个孔,必须立即将结果填入记录表,当监测煤粉量超过危险煤粉量时,预报有冲击危险。再利用电磁辐射法进行校核监测,当两种监测手段均有冲击危险时,应及时实施卸压爆破,炮后再打1~2个煤粉监测孔,校验卸压效果,如不能消除冲击危险,必须继续实施卸压爆破,直至消除冲击危险。 3)电磁辐射监测法。电磁辐射监测是近几年由中国矿业大学发展研究的一种新型冲击危险监测方法,利用KBD5型流动电磁辐射仪和KBD7电磁辐射监测系统对工作面进行电磁辐射监测。操作简便,实用性较强。 4)工作面矿压监测法。每班对上、下平巷超前支柱进行阻力监测,找出工作面超前支承压力影响范围及应力集中系数,确定超前支护距离及方式。根据阻力大小预报工作面顶板来压及应力集中区域。在工作面中部布置2个测区,测区

遗传算法综述

3D S可以方便灵活地实现对动画帧中的节点、平面、边界、颜色和轨迹的控制,同时对于物体变形测试,轴心点设置以及段信息的获取和设置也能方便准确地进行。而keyscri p t语言的优点体现在于其精确的数值计算,它可以对大量的复杂无序的动作进行随机计算,节省了制作时间。利用keyscri p t编辑器还能方便地进行语法检查并能直接执行无语法错误的keyscri p t程序。3 内存管理方式 3D S使用了独特的Pharlap的虚拟内存管理技术(VMM 386),该技术使3D—Studi o能使用比物理内存RAM更大的空间。这种内存管理方式与W indow2 s T M的内存管理方式不同,因此一般不在W indow s T M中使用3D S,若要在W indow s T M中使用,则必须在W in2 dow s T M的system1in i中的[386Enh]段加入device= Pharlap1386,使W indow s T M可以使用Pharlap的内存管理方式。这种内存管理方式也有一些不足,如内存一旦被3D S使用将不被释放。 4 硬件环境 使用3D—Studi o410的最低配制要求是386(带协处理器)的主机,至少8兆的内存,20兆以上的硬盘空间,DO S313以上的操作系统。由于3D S中的许多图形渲染时都必须使用256色,且观看3D S自带的一些图片也必须在256色的模式下进行,所以需要SV GA或TV GA的显示器。输入系统除了键盘外还必须配有鼠标,也可选配数字化仪。由于3D S在进行图形渲染需要大容量的内存,同时还需要CPU进行大量的浮点运算,因此当CPU为Pen tium T M、内存为16兆以上,并使用高性能的显示卡时,3D S的动画制作功能才能得到完美体现。由于ln tel公司生产的CPU兼容的Cyrix、AM D等公司生产的CPU浮点运算能力较差,因此CPU首选还是ln tel公司的产品。外设还可选配数字化仪等设备,对于需要直接输出到磁带上,并使用电视进行播发的动画,则可选用专业用户级以上的逐帧录向设备。 总之,3D S是一个庞大的图形工作平台,学会使用它的各种命令,发挥软件的强大功能绘制出优秀的动画和图象,还需要有很多技巧。随着人们对3D S认识加深,以它为平台开发的动画产品必将更加丰富多彩。 参考文献 1 [美]S1D1E lli o t,P1L1M iller,G1G1Pyro s著1黄心渊等译《3D—Studi o技术精粹》1北京:清华大学出版社。 19951 2 黄心渊 左正兴编著1《3D—Studi o(310—410)技术与应用》1北京:清华大学出版社,19961 收稿日期:1996年11月18日 遗传算法综述 艾丽蓉 何华灿 (西北工业大学计算机系 西安710072) 摘 要 本文从计算智能与进化计算谈起,论述了遗传算法产生的思想及背景,遗传算法的应用与研究现状,以及遗传算法研究的基本内容与问题,最后对GA与传统搜索算法做一比较,并概述了GA在并行处理应用中的潜在优势。 关键词 计算智能 进化计算 遗传算法(GA) 0 序言 长久以来,人们一谈到人工智能就马上想到逻辑、规则、推理,而一谈到计算就联想到矩阵运算、解微分方程,似乎智能和计算是两股道上跑的车。人工智能在走过几十年的曲折道路之后,人们经过认真反思,不断探索新的研究途径,于是一个新的研究方向——计算智能应运而生。 研究思维模拟主要的道路有四条:基于心理学的符号处理方法,基于社会学层次型的智能体方法,基于生物进化的进化计算与自适应方法,以及基于生理学的人工神经网络方法。目前聚集在计算智能大旗下的主要是后两个学派的学者(加上从事模糊计算和混沌计算等方面的学者)。实际上,只要在计算机上,模拟人类思想,不管用什么方法,其本质的基础还是二进制数字计算,在当前符号处理主宰人工智能的情况下,更应强调遗传算法等以数字计算为基础的方法对推动人工智能发展有着特殊的作用。 计算技术的飞速发展使大规模的现实模拟成为可能,而针对社会和生物现象的模拟,对人类认识自身及其环境具有重大意义,进化是其中最为诱人的领域之一。人的智能是从哪里来的?归根结底是从生物进化中得来的,反映在遗传基因中,脑的结构变化也是通过基

遗传算法经典MATLAB代码资料讲解

遗传算法经典学习Matlab代码 遗传算法实例: 也是自己找来的,原代码有少许错误,本人都已更正了,调试运行都通过了的。 对于初学者,尤其是还没有编程经验的非常有用的一个文件 遗传算法实例 % 下面举例说明遗传算法% % 求下列函数的最大值% % f(x)=10*sin(5x)+7*cos(4x) x∈[0,10]% % 将x 的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为(10-0)/(2^10-1)≈0.01。% % 将变量域[0,10] 离散化为二值域[0,1023], x=0+10*b/1023, 其 中 b 是[0,1023] 中的一个二值数。% % % %--------------------------------------------------------------------------------------------------------------% %--------------------------------------------------------------------------------------------------------------% % 编程 %----------------------------------------------- % 2.1初始化(编码) % initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度),

% 长度大小取决于变量的二进制编码的长度(在本例中取10位)。 %遗传算法子程序 %Name: initpop.m %初始化 function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)); % rand随机产生每个单元 为{0,1} 行数为popsize,列数为chromlength的矩阵, % roud对矩阵的每个单元进行圆整。这样产生的初始种群。 % 2.2 计算目标函数值 % 2.2.1 将二进制数转化为十进制数(1) %遗传算法子程序 %Name: decodebinary.m %产生[2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制 function pop2=decodebinary(pop) [px,py]=size(pop); %求pop行和列数 for i=1:py pop1(:,i)=2.^(py-i).*pop(:,i); end pop2=sum(pop1,2); %求pop1的每行之和 % 2.2.2 将二进制编码转化为十进制数(2) % decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置

遗传算法的参数整定报告

基于遗传算法的PID控制器参数整定报告 一、遗传算法。 遗传算法(GAs)是基于自然界生物进化机制的搜索寻优技术。用遗传算法来整定PID参数,可以提高优化性能,对控制系统有良好的控制精度、动态性能和鲁棒性。 一般的,Gas包括三个基本要素:复制、交叉和突变。 二、PID Optimal-Tuning PID控制:对偏差信号e(t)进行比例、积分和微分运算变换后形成的一种控制规律。 (1) 可调参数:比例度δ(P)、积分时间Ti(I)、微分时间Td(D)。 通常,PID控制准则可以写成下面传递函数的形式: ) 1( ) (s T T s K s G d i p + + =(2) Kp、Ti和Td分别是比例放大率、积分时间常量和微分时间常量。 1)比例控制(P):是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误 差(Steady state error),比例度减小,稳态误差减小; 2)积分(I)控制:在积分控制中,控制器的输出与输入误差信号的积分成正比关系。 3)微分(D)控制:在微分控制中,控制器的输出与输入误差信号()()()()? ? ? ? ? ? + + =?t e dt d T d e T t e K t u d t i p0 1 τ τ

的微分(即误差的变化率)成正比关系。 文中,性能指标是误差平方的时间加权积分,表示为: ),,1,0(,0 2n k dt e t J i t k ==? (3) 其中n 是非负整数,i t 是积分周期。此外,其他标准项如超调量、上升时间和稳定时间也被一个合成性能指标选择: ))(1(s s r r c t c t c os J ++= (4) s r os t t 、、分别代表超调量、上升时间和稳定时间。s r c 、c 两个系数有用户定义或决定。预期的性能指标的最下化可以认为是小的超调量、短的上升时间和稳定时间。 三个PID 参数的编码方式如下: 10101011:S 1010100011100111 p K i K d K p K 、i K 和d K 都是八位二进制字符格式。 自适应函数的选择关系到性能指标,如: 101)(J J F F == (5) 实际上,)(J F 可以是任何一个能切实表达F 和J 关系的非线性函数。 遗传操作是模拟生物基因遗传的操作,从优化搜索的角度而言,遗传操作可使问题的解一代一代地优化,并逼近最优解,主要包括三个遗传算子:选择、交叉和变异。关于他们的具体方法这里不在赘述。 三、 计算机实现 作者编程使用的事TURBO C 。程序包括两个部分:一个是仿真PID 控制系统的闭环阶跃响应;另一个是实施对一代所有成员的遗传算法的仿真,这里遗传算法将一代作为一个整体。在第一代生物的二进制代码随机产生之后,这个过程重复直至迭代次数达到预选的次数。 步长、PID 参数X 围、性能指标、自适应函数和方法得时间延迟都是从一个文件中读取。而遗传算法的的参数,诸如世代数、交叉概率、变异概率、选择概率等通过菜单选择。 整个闭环系统仿真的完成可以用四阶龙格库塔法或直接时域计算。在程序中,复制的实现是通过轮盘赌博法的线性搜索,面积加权于上一代成员的适应值。交叉发生在每一对复制产生的成员。 交叉操作是将一个随机产生的一个在0到1之间数与交叉概率比较决定是否需要交叉。如果需要交叉,则在1到47之间随机产生一个交叉位置代码。变异,对新一代所有成员都随机产生一个0到1之间的数与变异概率比较,然后再决定是否改变代码的一位。同理,反转也是这样判定和操作的。另一需要说明的事,两个反转位置代码是在1~48之间随机选择的。同样,

种函数优化问题的混合遗传算法

一种函数优化问题的混合遗传算法 彭伟卢锡城 摘要将传统的局部搜索算法和遗传算法相结合,可以较好地解决遗传算法在达到全局最优解前收敛慢的问题.文章给出一种结合可变多面体法和正交遗传算法的混合算法.实验表明,它通过对问题的解空间交替进行全局和局部搜索,能更有效地求解函数优化问题. 关键词遗传算法,可变多面体法,正交交叉,函数优化. 中图法分类号TP A Hybrid Genetic Algorithm for Function Optimization PENG Wei LU Xi-cheng (Department of Computer Changsha Institute of Technology Changsha 410073) Abstract To overcome the problem of slow convergence before the genetic algorithms (GAs) reach the global optima, it is an effective way to combine the conventional local search algorithms with GAs. A new hybrid algorithm that incorporates the flexible polyhedron method into the orthogonal genetic algorithm (OGA) is presented in this paper. The experiments showed that it can achieve better performance by performing global search and local search alternately. The new algorithm can be applied to solve the function optimization problems efficiently. Key words Genetic algorithm, flexible polyhedron, orthogonal crossover, function optimization. 遗传算法(genetic algorithms)通过模拟生物进化的途径来在问题的解域中定向搜索最优解,在组合优化、机器学习、自适应控制、多目标决策等领域中有许多应用.对于传统方法较难求解的一些NP问题,遗传算法往往能得到更好的结果.但对传统方法已能较好解决的问题(如一般的非线性优化问题),它并不显示较强的优势.原因在于,遗传算法对问题特定的知识(如梯度、Hessian阵、某些定理等)利用较少.它主要采用群体搜索技术,通过对解的不断组合、随机改变以及对候选解的评估和选择来完成求解过程.在达到全局最优解前,它尚存在收敛慢的问题.设计遗传算法时往往需要在其通用性与有效性之间折衷.设计针对问题的特定遗传算子,可以更有效地求解问题,但缺乏通用性.另一种途径是将遗传算法与问题领域中一些传统的寻优方法(如爬山法、模拟退火法、牛顿法等)结合起来,可在保持算法一定的通用性时提高算法的效率.这类混合算法的基本框架如图1所示.

冲击地压预测预报制度

编号:SY-AQ-06715 ( 安全管理) 单位:_____________________ 审批:_____________________ 日期:_____________________ WORD文档/ A4打印/ 可编辑 冲击地压预测预报制度 Rockburst prediction system

冲击地压预测预报制度 导语:进行安全管理的目的是预防、消灭事故,防止或消除事故伤害,保护劳动者的安全与健康。在安全管 理的四项主要内容中,虽然都是为了达到安全管理的目的,但是对生产因素状态的控制,与安全管理目的关 系更直接,显得更为突出。 为做好本矿井冲击地压预测预报工作,特制定本制度。 1.冲击地压预测预报由防冲办负责,防冲办负责微震、应力在线系统及钻屑法指标分析,采掘区队及防冲队按照分工要求及工作安排负责现场监测施工。检测有冲击地压危险时,预测结果和处理意见由矿冲击地压防治领导小组审核,监测数据要存档。 2.冲击地压危险采取区域预测、区域监测、局部检测的综合预测方法。 3.区域预测:防冲办根据矿井年度生产计划,结合生产实际情况,根据经验类比等方法预先划分出冲击地压危险区域,并确定危险程度,进行冲击地压的早期区域预测,分析采掘工作面是否具有冲击危险,并制定相关监测方案、措施,对于重点冲击隐患地点聘请科研院所防冲专家进行防冲专项评估,制定防治方案及措施。 4.区域监测:防冲办负责应用微震监测、应力实时在线监测等方法,

对矿井监测地点的冲击危险性进行区域监测,提出冲击危险预警。区域监测对预测的冲击危险程度应进行日分析汇报与中等及严重冲击危险及时汇报,并按规定要求安排相关区队进行冲击危险局部检测确定危险程度。 5.局部检测:采掘区队及防冲队按照措施规定采用钻屑法检测冲击地压危险地点的危险程度。 6.综合分析:防冲办结合矿压显现等情况综合采用以上方法预测冲击地压危险。 7.钻屑法施工情况必须及时汇报防冲办或工区,检测数据应当真实有效。当出现煤粉指标超过警戒值或发生动力效应等冲击地压危险征兆时应立即停产撤人。 8.当检测存在冲击地压危险时,施工单位负责人将冲击危险区域内所有人员撤出,并设置警戒,严禁任何人员进入冲击危险区,并汇报调度室、防冲办、工区。 9.当分析存在冲击地压危险时,必须实施解危措施,解危前,必须编制专门措施,由总工程师审批。

遗 传 算 法 详 解 ( 含 M A T L A B 代 码 )

GATBX遗传算法工具箱函数及实例讲解 基本原理: 遗传算法是一种典型的启发式算法,属于非数值算法范畴。它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。遗传算法的操作对象是一群二进制串(称为染色体、个体),即种群,每一个染色体都对应问题的一个解。从初始种群出发,采用基于适应度函数的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。如此模仿生命的进化进行不断演化,直到满足期望的终止条件。 运算流程: Step 1:对遗传算法的运行参数进行赋值。参数包括种群规模、变量个数、交叉概率、变异概 率以及遗传运算的终止进化代数。 Step 2:建立区域描述器。根据轨道交通与常规公交运营协调模型的求解变量的约束条件,设置变量的取值范围。 Step 3:在Step 2的变量取值范围内,随机产生初始群体,代入适应度函数计算其适应度值。 Step 4:执行比例选择算子进行选择操作。 Step 5:按交叉概率对交叉算子执行交叉操作。

Step 6:按变异概率执行离散变异操作。 Step 7:计算Step 6得到局部最优解中每个个体的适应值,并执行最优个体保存策略。 Step 8:判断是否满足遗传运算的终止进化代数,不满足则返回Step 4,满足则输出运算结果。 运用遗传算法工具箱: 运用基于Matlab的遗传算法工具箱非常方便,遗传算法工具箱里包括了我们需要的各种函数库。目前,基于Matlab的遗传算法工具箱也很多,比较流行的有英国设菲尔德大学开发的遗传算法工具箱GATBX、GAOT以及Math Works公司推出的GADS。实际上,GADS就是大家所看到的Matlab中自带的工具箱。我在网上看到有问为什么遗传算法函数不能调用的问题,其实,主要就是因为用的工具箱不同。因为,有些人用的是GATBX带有的函数,但MATLAB自带的遗传算法工具箱是GADS,GADS当然没有GATBX里的函数,因此运行程序时会报错,当你用MATLAB来编写遗传算法代码时,要根据你所安装的工具箱来编写代码。 以GATBX为例,运用GATBX时,要将GATBX解压到Matlab下的toolbox文件夹里,同时,set path将GATBX文件夹加入到路径当中。 这块内容主要包括两方面工作:1、将模型用程序写出来(.M文件),即目标函数,若目标函数非负,即可直接将目标函数作为适应度函数。2、设置遗传算法的运行参数。包括:种群规模、变量个数、区域描述器、交叉概率、变异概率以及遗传运算的终止进化代数等等。

最新最全的遗传算法工具箱及说明

最新最全的遗传算法工具箱Gaot_v5及说明 Gaot_v5下载地址:https://www.360docs.net/doc/7214556401.html,/mirage/GAToolBox/gaot/gaotv5.zip 添加遗传算法路径: 1、 matlab的file下面的set path把它加上,把路径加进去后在 2、 file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下,就OK了

遗传算法工具箱Gaot_v5包括许多实用的函数,各种算子函数,各种类型的选择方式,交叉、变异方式。这些函数按照功能可以分成以下几类:

主程序 ga.m提供了 GAOT 与外部的接口。它的函数格式如下: [x endPop bPop traceInfo]=ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps, selectFn,selectOps,xOverFNs,xOverOps,mutFNs,mutOps) 输出参数及其定义如表 1 所示。输入参数及其定义如表 2 所示。 表1 ga.m的输出参数 输出参数 定义 x 求得的最好的解,包括染色体和适应度 endPop 最后一代染色体(可选择的) bPop 最好染色体的轨迹(可选择的) traceInfo 每一代染色体中最好的个体和平均适应度(可选择的) 表2 ga.m的输入参数 表3 GAOT核心函数及其它函数

核心函数: (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数 【输出参数】 pop--生成的初始种群 【输入参数】 num--种群中的个体数目 bounds--代表变量的上下界的矩阵 eevalFN--适应度函数 eevalOps--传递给适应度函数的参数 options--选择编码形式(浮点编码或是二进制编码)[precision F_or_B],如 precision--变量进行二进制编码时指定的精度 F_or_B--为1时选择浮点编码,否则为二进制编码,由precision指定精度) (2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts,... termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)--遗传算法函数 【输出参数】 x--求得的最优解 endPop--最终得到的种群 bPop--最优种群的一个搜索轨迹 【输入参数】

混合遗传算法及其应用

混合遗传算法及其应用 辛海涛 (哈尔滨商业大学计算机与信息工程学院,黑龙江哈尔滨150028) 摘 要:给出一种结合梯度法和正交遗传算法的混合算法。实验表明,它通过对问题的解空间交替进行全局和局部 搜索,能更有效地求解函数优化问题。关键词:遗传算法;正交交叉;函数优化中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2010)05-0059-02 0引言 遗传算法是近年来发展起来的一种新型优化算法,是基于 自然选择和遗传学机理的迭代自适应概率性搜索方法。它通过模拟生物进化的途径问题的解域中定向搜索最优解,在组合优化、机器学习、自适应控制、多目标决策等领域中有许多应用。 遗传算法的实现涉及5个主要因素:参数编码、初始群体的设定、评估函数(即适应函数)的设计、遗传操作的设计和算法控制参数的设定。对于传统方法较难求解的一些NP 问题,遗传算法往往能得到更好的结果。但对传统方法已能较好解决的问题(如一般的非线性优化问题),它并没有较强的优势。遗传算法主要采用群体搜索技术,通过对解的不断组合、随机改变以及对候选解的评估和选择来完成求解过程。在达到全局最优解前,它尚存在收敛慢的问题。设计遗传算法时往往需要在其通用性与有效性之间折衷。设计针对问题的特定遗传算子,可以更有效地求解问题,但缺乏通用性。另一种途径是将遗传算法与问题领域中一些传统的寻优方法(如爬山法、模拟退火法、牛顿法等)结合起来,可在保持算法一定的通用性时提高算法的效率。 本文考虑一类非线性函数优化问题,即: minf (x )x ∈D 其中f (x )是n 元连续函数,D 是R n 的有界子集。本文探讨将梯度法与遗传算法相结合的算法,梯度法对初始解的构成具有较强的依赖性,算法执行过程中难于发现新的可能存在最优解的区域。通过将它与遗传算法相结合,一方面可以利用其局部搜索能力,另一方面可通过遗传算法来不断“发现”新的更有希望的搜索区域,并动态调整可变多面体法的搜索方向,从而使算法具有更好的灵活性,也使算法更易于并行化。实验表明,对于求解上述非线性优化问题,混合遗传算法具有比传统遗传 算法和梯度法都好的性能。 1 混合遗传算法 1.1 编码方式 编码的实质是在问题的解空间与算法的搜索空间之间建 立一个映射。传统遗传算法一般采用一种将实数空间离散化的二进制编码方式。这种方式存在编码长度影响求解精度、操作费时、不直观等缺点,因而提出了实数的直接编码方式并表明可以获得更好的性能。在实数编码方式下,每个个体用一个n 维的实向量来表示,这种方式具有直观、易操作的优点,且可以针对它设计非传统的交叉算子。本文采用此编码方式。 1.2交叉和选择操作 正交遗传算法在非线性优化问题及其他组合优化问题中 已显示出其有效性,我们的算法采用了正交交叉算子。由两个父本交叉操作产生一组个体,从新个体和两个父本中选择最优的进入下一代群体。由于采用局部选择而不是全局选择,在一定程度上保持了群体的多样性。 1.3变异操作 在实数编码方式下,变异操作对个体X 的每个分量X [i ] 作用一个随机偏差量,即: X′[i ]=X [i ]+δ,i=1,2,…,n 在进化规划和进化策略中,广泛采用了高斯变异算子,用正态分布的随机变量来作为变异操作中的偏差量。 1.4局部搜索 在本文中,我们采用梯度法进行局部搜索,梯度法步骤如下: (1)选定ε>0为终止限。选定初始点X (0),令k =0。(2)计算△f (X (k ))。如果‖△f (X (k ))‖<ε,迭代停止,取近试 最优解X *=X (k ),否则,令S (k )=-△f (X (k )),从X (k )出发沿S (k )作一 软件导刊 Software Guide 第9卷%第5期 2010年5月Vol.9No.5May.2010 作者简介:辛海涛(1970-),男,黑龙江鹤岗人,硕士,哈尔滨商业大学计算机与信息工程学院副教授,研究方向为算法分析。

相关文档
最新文档