1、第六章 模拟进化算法的新近发展,模拟进化算法实际上是一种非常宏观意义下的仿生计算技术,它模拟的是一切生命与智能生成与进化过程。这种技术不仅仅包含到目前为止我们所讨论的遗传算法等。本章目的在于向大家简单介绍国内外新近发展起来,并正在受到广泛关注的几类新模拟进化算法。,1 蚁群算法,蚁群算法是由Colorni和Dorigo等人提出的一类模拟自然界蚁群行为的模拟进化算法。 这类算法主要基于以下的观察:像蚂蚁这类群居昆虫,虽然没有视觉且单个行为极其简单,但由这些简单个体所组成的群体却常常表现出令人称奇的行为能够在复杂的环境下最终找到从蚁穴到食物源的最短路径。,蚂蚁在运动过程中能够在它所经过的路径上留下
2、信息素,而且在运动过程中感知这种信息素的存在及其强度,并以此指导自己的运动方向。蚂蚁倾向于朝着信息素强度高的方向前进,因此,由大量蚂蚁组成的蚁群的行为便表现出一种信息的正反馈现象:某一路径上走过的蚂蚁越多,则后者选择该路径的概率就越大。蚁群就是通过个体之间这种信息交换机制来彼此协作达到搜索食物的目的。,蚁群彼此协作所表现出的“智能”行为还显现在它们对环境的自适应性上:当在运动过程中突遇障碍时,它们能够躲过障碍而很快找到满足约束条件的最优路径。 蚁群通过信息交换与相互协作找到从蚁穴到食物源最短路径的机制,可以数学化来求解图上各种与最优路径相关的组合优化问题。我们可以将“跨越障碍”对应为所求问题的
3、某种启发式信息(指明满足约束的可能选择),而将信息素对应为所选择路段对整体最优解的贡献程度。,例:考虑n个城市的TSP问题( 分别表示城市编号 )。下面 说明用蚁群行为来搜索通过这n个城市各一次且最后回到出发地的最短路径。 假定:m是蚁群的数量, 表示城市 与 间的距离(假定 ,考虑对称TSP问题), 表示t时刻位于城市 的蚂蚁数量。 表示问题在t时刻所能提供的某种启发式信息,而 表示t时刻蚁群在 连线上所放置的信息素。初始时刻,蚁群中的蚂蚁可随机放置,此时设各路径上的信息素恒等(如 为某一预设常数)。,蚂蚁 在运动过程中将根据各条路径上的信息量(信息素含量)与启发式信息(即环境因素)来决定其
4、转移概率。例如,设 表示t时刻蚂蚁 由位置 移到位置 的概率,则可令这里, 为参数,表示蚂蚁 下一步允许选择的城市,而 是蚂蚁 到目前为止已走过的城市(与实际不同,人工蚂蚁要求具有一定的记忆功能)。,每一只蚂蚁都按照上式的概率来决定它的位置转移。当蚂蚁完成一次循环(即完成一个闭合路径,或产生一个完整可能路径),各路径上的信息量将依据一定的规则调整,以体现整个蚁群在该路径上所留下的信息素。如以 表示其消失程度,则整个蚁群完成一次循环后,各路径上的信息量可依下式调整: 其中 表示第 只蚂蚁在本次循环中留在路径 上的信息量。如可取,其中 表示第 只蚂蚁所走路径长度。 启发式信息 常在这种应用情形反映
5、人们对从城市 转移到城市 的期望程度,可根据某种启发式算法具体确定。为理论上的方便我们可取 在对各参数 合适选择之后,上述模拟蚁群寻食过程便自然形成一个求解TSP问题的仿生算法。,求解一般图上组合优化问题的蚁群算法可描述如下: 蚁群算法 步骤1 (初始化) 指定蚁群规模 ,父代种群规模 ;输入初始信息素 及启发式信息 ;随机生成初始蚁群 其中 ;置 。,步骤2(模拟演化)执行以下操作: (1)选择 从 中依其目标函数值选择出n只蚂蚁(例如可择优选择)组成第 代父代蚁群。 (2)重组 1)设信息量 ,其中这里 是反映 作为问题解质量的评价,如 , 是蚂蚁 所产生解的路径长度。,2)令 3)以适当
6、方式获得启发式信息 。 4)独立、重复地以概率 随机产生蚂蚁 ,由此组成第 代蚁群,步骤3(终止检验)如解已达到精度要求,或已达到预设进化时限,则停机,输出 中最好的个体为问题近似解;否则,对于 转步骤2。 近年来,蚁群算法无论是理论分析还是算法推广及应用研究等方面都受到了国内外广泛关注。,2 粒子群优化,粒子群优化(particle swarm optimization,简称PSO)是由Kennedy和Eberhart(1995)等人提出的一类模拟群体智能行为的优化算法。 算法的仿生基点是:群集动物(如蚂蚁、鸟、鱼等)通过群聚而有效的觅食和逃避追捕。在这类群集动物中,每个个体的行为是建立在群
7、体行为的基础之上的,,即在整个群体中信息是共享的,而且在个体之间存在着信息的交换与协作。如在蚁群中,当每个个体发现食物之后,它将通过接触或者化学信号来招募同伴,使整个群落找到食源;在鸟群的飞行中,每只鸟在初始状态下处于随机位置,且朝各个方向随机飞行,但随着时间的推移,这些初始处于随机状态的鸟通过相互学习(相互跟踪)自组织地聚集成一个个小的群落,并以相同的速度朝着相同的方向飞行,最终整个群落聚集到同一位置食源。,这些群集动物所表现出的智能常称为“群集智能”,它可表述为:一组相互之间可以进行直接通讯或间接通讯(通过改变局部环境)的主体,能够通过合作对问题进行分布求解。换言之,一组无智能的主体通过合
8、作能表现出智能的行为特征。 PSO以模拟鸟的群集智能为特征,以求解连续变量优化问题为背景。在PSO中,每只鸟被称之为一个粒子(particle),每个粒子以其几何位置与速度向量表示。在求解中,每个粒子参考自己的既定方向、所经历的最优方向和整个鸟群所公认的最优方向来决定自己的飞行。,每个粒子X可标识为 PSO以下述形式来求解问题。 PSO算法 步骤1 (初始步)随机产生N个粒子 构成初始粒子群 置 。,步骤2(种群演化) (1)选择 1)假定以概率1选择 中的每一个体; 2)求出每个粒子 到目前为止所找到的最优(如记为 ); 3)求出当前种群 到目前为止所找到的最优(如记为 )。 (2)繁殖 对
9、每个粒子 ,令,由此形成第 代粒子群 步骤3(终止检验)如 已产生满足精度的近似解,或已达到进化时限的要求,则停机并输出 的最佳个体为近似解;否则对于 转步骤2。,在上述的PSO算法中, 常称为步长因子,可参考无条件约束优化方法中的搜索步长选取方式选取; 表示 中的随机数; 分别是惯性系数、社会学习系数和认知系数,它们分别表示相信自己的程度,相信经验的程度和相信周围个体的程度。 PSO算法的突出特点是:简单、有效,但仍缺乏严格的收敛性理论分析。虽然PSO最早是对连续优化问题所提出,但目前已被推广到各种离散优化问题。,3 人口迁移算法,人口迁移算法(population migration al
10、-ogrithm,简称PMA)是我国学者周允华、毛宗源等人近期所提出的一类模拟人口迁移机理的全局优化算法。 算法的模拟基点在于:对人口移动规律的整体认识。人口作为有生命的群体,为了生存和发展,它必然会产生不断地移动。,人口移动通常泛指人口在空间或地域上的一切移动,包括人口流动与人口迁移。人口流动是人们在居留地相对局部的环境中的移动,是带有某种自发性质但移居规律相对较差的人口行为。人口迁移则是人们跨越特定的地域界限改变常住地的移动,通常是带有选择性质的人口行为。 人口迁移的主要动因是什么呢?常用于解释这一问题的是Ravenstein的推-拉理论。该理论认为一些人迁移是他们被推出原籍,而另一些人则
11、因为他们被拉到别处。“邪恶的或压制的法律、沉重的税务、,恶劣的气候、格格不入的社会环境甚至强迫,所有这些都曾经引起过而且仍在引起迁移流,但这样的迁移流没有一个能在量上与多数人内心希望他们在物质方面会更好一点所引起的迁移流相比”。Ravenstein的观点表明:物质方面的因素或经济因素是主要的对人口迁移起作用的因素,人口重心随经济重心而转移是人口迁移的基本规则(换言之,人们一般总是迁往经济发展水平高、就业机会多的优惠地区)。,人口迁移的另一表现形式是人口扩散:当优惠地区相对过剩人口不断增多,人口压力增大,密度增加,就业困难时,经济发展水平高的地区便会发生人口向外扩散,部分人口会移居到人口密度相对
12、低、谋生相对容易或未开发地区。人口扩散呈现人的开拓性:放弃眼前的良好环境而追求更高的物质利益。,概括地说,人口移动可主要分为人口流动,人口迁移与人口扩散三种基本形式。人口流动是在常居地周围自发而无确定整体规则的移动;人口迁移是跨越较大范围的选择性移动,基本规则是趋上性(即“人往高处走,人往富处流,随经济中心而转移”);人口扩散是从优惠地区向非优惠地区的选择性移动,基本规律是开拓性(随人口压力的增加而扩散,反映人的开拓进取精神)。,PMA中,优化变量 对应为人口常居地,目标函数 对应人口常居地的吸引力,问题的最优解(局部最优解)对应为最具吸引力地区,算法的“上升”式“爬山”对应迁往优惠地区,算法
13、逃离局部最优对应因人口压力而导致迁出优惠地区;人口流动对应作算法的局部随机搜索;人口迁移对应为算法以“人往高处走,人往富处流”的方式选择近似解;人口扩散对应为算法以“从发达地区迁往不发达地区”的整体搜索与逃离局部最优策略。,人口迁移算法可描述如下: 人口迁移算法 步骤1(初始化)输入人口规模N,初始区域半径 ,人口压力警戒参数 ,流动人口规模 ;随机产生N个个体 形成初始人口居住区域(其中 表示以 为中心,以 为 半径的球,以下同)记 并置 。,步骤2(演化步) (1)预备 令 。 (2)人口流动 在每一 内随机产生 个个体,由此在 内产生 个个体组成的种群 。 (3)人口迁移 1)从 中选择
14、出N个最佳个体,组成中间种群 2)形成N个优惠区域 。,3)在每一优惠区域作人口流动,即在 中随机产生 个个体,然后从中找出最个体 。 依与 的适应值成比例的方式确定。 4)收缩优惠区域,令 5)如果 (即未超过人口压力警戒),则继续人口流动,即对于 转步3),否则转6)。 6)报告最好的N个个体,(4)人口扩散 1)保留 中最好的个体(如设为 )。 2)将 中的 个个体用 中随机抽取的 个新个体代替,如设新随机产生的 个体为 。这里 表示 在可行域中的余集。 3)定义新一代种群 步骤3(终止性检验)如果 中已包含符合条件的近似解,则停机并输出 中的最优解,否则以适当的方式缩小 ,并置 转步骤2。,有各种不同的途径来实现上述算法中在给定区域上的人口流动,如可采取高斯变异,或使用某个局部搜索算法;在执行人口 扩散过程中,也有不同的技巧可用在 上产生新的 个新个体,如在历史上已经搜索过的区域上以很小的概率,而在未搜索过的区域上以较大的概率随机抽样。另外,缩小区域半径 和人口压力警戒参数 的方式也可多种多样。,