智能优化算法综述(共29页).doc





《智能优化算法综述(共29页).doc》由会员分享,可在线阅读,更多相关《智能优化算法综述(共29页).doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上智能优化算法的统一框架指导老师:叶晓东教授姓名:李进阳学号:班级:电磁场与微波技术5班 2011年6月20日目录4模拟退火算法15 1概述 近年来,随着人工智能应用领域的不断拓广,传统的基于符号处理机制的人工智能方法在知识表示、处理模式信息及解决组合爆炸等方面所碰到的问题已变得越来越突出,这些困难甚至使某些学者对强人工智能提出了强烈批判,对人工智能的可能性提出了质疑。众所周知,在人工智能领域中,有不少问题需要在复杂而庞大的搜索空间中寻找最优解或准优解。像货朗担问题和规划问题等组合优化问题就是典型的例子。在求解此类问题时,若不能利用问题的固有知识来缩小搜索空间则会产生搜
2、索的组合爆炸。因此,研究能在搜索过程中自动获得和积累有关搜索空间的知识,并能自适应地控制搜索过程,从而得到最优解或准有解的通用搜索算法一直是令人瞩目的课题。智能优化算法就是在这种背景下产生并经实践证明特别有效的算法。2群体智能优化算法 自然界中群体生活的昆虫、动物,大都表现出惊人的完成复杂行为的能力。人们从中得到启发,参考群体生活的昆虫、 动物的社会行为,提出了模拟生物系统中群体生活习性的群体智能优化算法。在群体智能优化算法中每一个个体都是具有经验和智慧的智能体 (Agent) ,个体之间存在互相作用机制,通过相互作用形成强大的群体智慧来解决复杂的问题。自 20世纪 90年代模拟蚂蚁行为的蚁群
3、算法(ACO)提出以来,又产生了模拟鸟类行为的微粒群算法 ( PSO)、 模拟鱼类生存习性的人工鱼群算法、 模拟青蛙觅食的混合蛙跳算法 ( SFLA)等。这些群体智能优化算法的出现,使原来一些复杂的、难于用常规的优化算法进行处理的问题可以得到解决,大大增强了人们解决和处理优化问题的能力,这些算法不断地用于解决工程实际中的问题,使得人们投入更大的精力对其理论和实际应用进行研究。群体智能优化算法本质上是一种概率搜索,它不需要问题的梯度信息具有以下不同于传统优化算法的特点: 群体中相互作用的个体是分布式的,不存在直接的中心控制,不会因为个别个体出现故障而影响群体对问题的求解,具有较强的鲁棒性; 每个
4、个体只能感知局部信息,个体的能力或遵循规则非常简单,所以群体智能的实现简单、 方便; 系统用于通信的开销较少,易于扩充; 自组织性,即群体表现出来的复杂行为是通过简单个体的交互表现出高度的智能。 本文部分内容,在群体智能优化算法范围内分别详细讨论了人工鱼群算法、蚁群算法、混合蛙跳算法等三种智能优化方法。2.1人工鱼群算法 在一片水域中生活的鱼类一般都能找到食物丰富的地方并聚集成群。在这种群体活动中,没有统一的协调者,而是通过鱼类每个个体的自适应行为而达到目的。模拟鱼类生活觅食的特性,李晓磊等人于2002年提出人工鱼群算法 (AFSA)。在此算法中,人工鱼的活动被描述为三种典型行为: 觅食行为:
5、这是鱼的基本行为,当发现附近有食物时,会向该方向游动; 追尾行为:当某条鱼发现该处食物丰富时,其它鱼会快速尾随而至: 聚群行为:它们往往能形成非常庞大的群。 人工鱼所处的状态可以用矢量描述: X = ( x1 ,x2 , , xn ) , xi( i = 1, 2, , n) 是所要优化问题的变量。Y = f (X) 为人工鱼的食物密度,表示所要优化的目标函数。di , j= Xi- Xj为两条人工鱼之间的距离,人工鱼的感知距离定义为 V isua l距离。在人工鱼群算法中定义拥挤因子表示人工鱼所处环境的拥挤程度,人工鱼在食物较多而又不拥挤的环境下捕食,当环境过分拥挤时它就会离开这个环境,游往
6、别处。 人工鱼群算法觅食行为如下:Step1:设置最大尝试次数;Step2:人工鱼从一个状态转移到另一个状态:Xj= Xi+ Random (V isua l) ;Step3:如果适应值 Yi Yj,则 Xi| nex t= Xi+Random ( S tep)Xj- XiXj- Xi; 否则, Xi| nex t= Xi+Random ( S tep) ;Step4:检查终止条件,如果条件满足结束迭带,否则转 Step2。 对于人工鱼的追尾行为:由状态 Xi转移到状态Xj能获得更好的适应值 Yj,人工鱼就向状态 Xj移动一步。否则,就转入觅食行为。人工鱼的聚群行为,当人工鱼探测到所感知的范围
7、内具有较多食物又不拥挤时,人工鱼就向伙伴的中心移动,否则,转向觅食行为。在人工鱼群算法中设置一个公告板,用于记录最优人工鱼个体的状态,当人工鱼自身状态优于最优状态就替代之。算法具有良好的求取全局极值能力,并具有对初值、参数选择不敏感、鲁棒性强、简单易实现等诸多优点,但是当问题规模过大时求解困难并且求解初期收敛较快,后期较慢。 人工鱼群算法的改进研究,如在算法中增加鱼群的协调行为,将人工鱼群算法与模拟退火算法相融和的混合智能算法等。人工鱼群算法目前已用于组合优化、 参数估计、PI D控制器的参数整定、神经网络优化等。2.2蚁群算法 蚁群算法(ant colony optimization, AC
8、O),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质.针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进行了比较,数值仿真结果表明,蚁群算法具有一种新的模拟进化优化方法的有效性和应用价值。蚂蚁是一类社会性很强的生物,它们群体生活、共同觅食。在觅食过程中每只蚂蚁单独行动,蚂蚁之间通过信息素的释放来对觅食的轨迹进行“记忆” ,一旦某一条轨迹发现了食物,那么其它蚂蚁就会向这条道路进行聚集,这
9、条道路上的信息素的量就会增多。如果在觅食的过程中,蚂蚁发现不同路径的距离有远、 近的区别,则蚂蚁就会选择最近的路径进行觅食,并把这一情况通过路径上信息素量的大小通知给其它蚂蚁。受到蚂蚁觅食现象的启发,Colorni、 Dorigo等于 1991年首次提出了蚁群算法,并用这一算法解决了一系列组合优化问题。 基本蚁群算法的求解过程:Step1:设置参数,初始化信息素轨迹;Step2:生成 m个可行解 (蚂蚁) ;Step3:对每一个蚂蚁个体,计算其适应度;Step4:确定每一只蚂蚁的最优位置 (最优解) ;Step5:确定全局的最优位置 (最优解) ;Step6:更新信息素轨迹;Step7:判断终
10、止条件是否满足,若满足则终止迭代,否则返回 Step3。 在蚁群算法中,蚂蚁通过行走在不同的地点 (状态)之间转移, t时刻蚂蚁 k在点 i向点 j的转移概率Pkij( t) 为: 式中:ij 边 ( i, j ) 的能见度,反映由点 i转移到点 j的启发程度,这个量在蚂蚁系统的运行中不改变;ij 边 ( i , j) 上的信息素轨迹强度; Pkij 蚂蚁 k 的 转 移 概 率, j 是 尚 未 访 问 的 点;a llowedk 蚂蚁 k下一步允许选择的点, a llowed= 0, 1, , n - 1 ;r 蚂蚁可以到达的位置。由式 (1)可知,转移概率 Pij( t) 与ij ij成
11、正比。和为两个参数,分别反映了蚂蚁在运动过程中所积累的信息和启发信息在蚂蚁选择路径中的相对重要性。经过 n时刻,蚂蚁完成一次循环,各路径上信息素量根据下式调整:式中: ij( t, t +1) 第 k只蚂蚁在时刻 ( t, t +1)留在路径 ( i ,j) 上的信息素量,其值大小视蚂蚁表现的优劣而定。路径越短信息素释放就越多; ij( t , t + 1) 本次循环中路径 ( i, j ) 的信息素的增量; 信息素挥发系数,通常设置 1来避免路径上轨迹量的无限累加。通过上面的原理叙述和实际操作,我们不难发现蚂蚁之所以具有智能行为,完全归功于它的简单行为规则,而这些规则综合起来具有下面两个方面
12、的特点: 1、多样性 2、正反馈 多样性保证了蚂蚁在觅食的时候不置走进死胡同而无限循环,正反馈机制则保证了相对优良的信息能够被保存下来。我们可以把多样性看成是一种创造能力,而正反馈是一种学习强化能力。正反馈的力量也可以比喻成权威的意见,而多样性是打破权威体现的创造性,正是这两点小心翼翼的巧妙结合才使得智能行为涌现出来了。 引申来讲,大自然的进化,社会的进步、人类的创新实际上都离不开这两样东西,多样性保证了系统的创新能力,正反馈保证了优良特性能够得到强化,两者要恰到好处的结合。如果多样性过剩,也就是系统过于活跃,这相当于蚂蚁会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够,正反馈机制过强
13、,那么系统就好比一潭死水。这在蚁群中来讲就表现为,蚂蚁的行为过于僵硬,当环境变化了,蚂蚁群仍然不能适当的调整。 既然复杂性、智能行为是根据底层规则涌现的,既然底层规则具有多样性和正反馈特点,那么也许你会问这些规则是哪里来的?多样性和正反馈又是哪里来的?我本人的意见:规则来源于大自然的进化。而大自然的进化根据刚才讲的也体现为多样性和正反馈的巧妙结合。而这样的巧妙结合又是为什么呢?为什么在你眼前呈现的世界是如此栩栩如生呢?答案在于环境造就了这一切,之所以你看到栩栩如生的世界,是因为那些不能够适应环境的多样性与正反馈的结合都已经死掉了,被环境淘汰了!蚁群算法的实现下面的程序开始运行之后,蚂蚁们开始从
14、窝里出动了,寻找食物;他们会顺着屏幕爬满整个画面,直到找到食物再返回窝。 其中,F点表示食物,H表示窝,白色块表示障碍物,+就是蚂蚁了。下面给出了一段求最优路径的蚁群算法的C+程序用vc+6.0来运行,地点之间的距离用矩阵来输入。#includeusing namespace std;const int MAX=100; /最多结点数const int MAX_LENGTH=10000; /最大长度struct closedgeint adjvex;int lowcost;bool visited;class Graphprivate:int arcsMAXMAX;char nodeMAX;i
15、nt count;public:void init_graph();void dijkstra();void Graph:init_graph()int i;coutcount;cout请依次输入各结点名称:;for( i=0;inodei;cout请输入邻接矩阵:endl;for( i=0;icount;i+)for(int j=0;jarcsij;void Graph:dijkstra()int temp_index;int min;int sor; /起始结点序号int des; /终点序号coutsordes蚁群算法中参加觅食的每一只蚂蚁都是一个单独计算的单元,由于大量的蚂蚁参与了运算
16、,算法具有很强的并行性。蚂蚁之间通过信息素进行合作,而不是直接通信,因此随着个体的增加系统的通信开销增加的也较小。因此,蚁群算法是一种结合了分布式计算、 正反馈机制和贪婪式搜索的算法,具有很强的搜索较优解的能力。但是蚁群算法也有搜索速度慢、陷入局部最优及搜索停滞等缺点。针对这些问题,人们对蚁群算法的机理进行了深入研究并提出许多改进措施。2.3混合蛙跳算法在一片湿地中生活着一群青蛙,湿地内离散地分布着许多石头,青蛙通过寻找不同的石头进行跳跃去找到食物较多的地方。每个青蛙通过寻找不同的石头提高自己寻找食物的能力,而青蛙个体之间通过思想的交流实现信息的交换。模拟群体青蛙的觅食特性,文献于2003年提
17、出混合蛙跳算法( SFLA)。每只青蛙都具有自己的文化,为了达到自己的目标努力,并被定义为问题的一个解。湿地的整个青蛙群体被分为不同的子群体,每个子群体有着自己文化,执行局部搜索策略。在子群体中的每个个体有着自己的文化,并且影响着其它个体,并随着子群体的进化而进化。当子群体进化到一定阶段以后,各个子群体之间再进行思想的交流实现子群体间的混合运算,一直到所设置的条件满足为止。 对于 D维函数优化问题,第 i只青蛙可表示为U ( i) = (U1i, U2i, , UDi) ,根据每只青蛙适应值 (位置)的大小按下降顺序排列。这样,整个青蛙群体被分为 m个子群体,每个子群体包含 n只青蛙,即池塘中
18、的青蛙数目为 F = mn。在进化计算过程中,第一只青蛙进入第一个子群体,第二只青蛙进入第二个子群体,一直分配下去,直到第 m 只青蛙进入到第 m个子群体。然后,第 m + 1只青蛙又进入到第一个子群体,第 m + 2只青蛙进入到第二个子群体等,这样循环分配下去,直到所有青蛙分配完毕。在每一个子群体中,适应值最好的个体和最差的个体记为 Ub和 Uw ,整个青蛙群体的最优值记为 Ug 。在每次循环中,只提高最差个体的适应值。 混合蛙跳中最差适应值 (位置 )青蛙的计算过程为:蛙跳步长更新: 位置更新为: Smax Si- Smax ,其中 rand ( ) 0, 1 ( k =1, 2, , n
19、) , Smax是最大步长。如果计算后新的解较优,则用其替代最差个体。并且通过式 ( 6)、( 7)求全局最优解 Ug 。如果得到的解没有改进,那么随机生成新解取代所求个体的解,算法继续迭代直至迭代次数完毕。 混合蛙跳算法的算法流程如下:Step1:针对 F只青蛙 (解) ,随机产生种群;Step2:对每只青蛙个体,计算其适应值;Step3:将 F只青蛙按适应值降序排列分为 m个子群体;Step4:对每一个子群体中的青蛙个体找出其中的最优个体和最差个体,在指定迭代次数内提高最差个体的适应值;Step5:针对各个子群体,按适应值降序排列个体,进行重新分配和混合运算;Step6:终止条件是否满足?
20、 如果满足,结束迭代,否则转向 Step2。混合蛙跳算法具有全局优化与局部细致搜索的优点,可以用来优化连续问题和离散问题,并且具有较强的鲁棒性,可用于地下水管网优化设计、非线性函数优化、旅行商问题、下料问题、齿轮问题等。3神经网络算法3.1神经网络知识点概述神经网络是新技术领域中的一个时尚词汇。很多人听过这个词,但很少人真正明白它是什么。本文的目的是介绍所有关于神经网络的基本包括它的功能、一般结构、相关术语、类型及其应用。“神经网络”这个词实际是来自于生物学,而我们所指的神经网络正确的名称应该是“人工神经网络(ANNs)”。在本文,我会同时使用这两个互换的术语。一个真正的神经网络是由数个至数十
21、亿个被称为神经元的细胞(组成我们大脑的微小细胞)所组成,它们以不同方式连接而型成网络。人工神经网络就是尝试模拟这种生物学上的体系结构及其操作。在这里有一个难题:我们对生物学上的神经网络知道的不多!因此,不同类型之间的神经网络体系结构有很大的不同,我们所知道的只是神经元基本的结构。虽然已经确认在我们的大脑中有大约50至500种不同的神经元,但它们大部份都是基于基本神经元的特别细胞。基本神经元包含有synapses、soma、axon及dendrites。Synapses负责神经元之间的连接,它们不是直接物理上连接的,而是它们之间有一个很小的空隙允许电子讯号从一个神经元跳到另一个神经元。然后这些电
22、子讯号会交给soma处理及以其内部电子讯号将处理结果传递给axon。而axon会将这些讯号分发给dendrites。最后,dendrites带着这些讯号再交给其它的synapses,再继续下一个循环。如同生物学上的基本神经元,人工的神经网络也有基本的神经元。每个神经元有特定数量的输入,也会为每个神经元设定权重(weight)。权重是对所输入的资料的重要性的一个指标。然后,神经元会计算出权重合计值(net value),而权重合计值就是将所有输入乘以它们的权重的合计。每个神经元都有它们各自的临界值(threshold),而当权重合计值大于临界值时,神经元会输出1。相反,则输出0。最后,输出会被传
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 优化 算法 综述 29

限制150内