一种新的求解动态连续优化的分层粒子群算法
粒子群优化算法 程序

粒子群优化算法程序粒子群优化算法(Particle Swarm Optimization, PSO)是一种基于群体智能的优化算法,它模拟了鸟群或鱼群等生物群体的行为,用于解决各种优化问题。
下面我将从程序实现的角度来介绍粒子群优化算法。
首先,粒子群优化算法的程序实现需要考虑以下几个关键步骤:1. 初始化粒子群,定义粒子的数量、搜索空间的范围、每个粒子的初始位置和速度等参数。
2. 计算适应度,根据问题的特定适应度函数,计算每个粒子的适应度值,以确定其在搜索空间中的位置。
3. 更新粒子的速度和位置,根据粒子的当前位置和速度,以及粒子群的最优位置,更新每个粒子的速度和位置。
4. 更新全局最优位置,根据所有粒子的适应度值,更新全局最优位置。
5. 终止条件,设置终止条件,如最大迭代次数或达到特定的适应度阈值。
基于以上步骤,可以编写粒子群优化算法的程序。
下面是一个简单的伪代码示例:python.# 初始化粒子群。
def initialize_particles(num_particles, search_space):particles = []for _ in range(num_particles):particle = {。
'position':generate_random_position(search_space),。
'velocity':generate_random_velocity(search_space),。
'best_position': None,。
'fitness': None.}。
particles.append(particle)。
return particles.# 计算适应度。
def calculate_fitness(particle):# 根据特定问题的适应度函数计算适应度值。
particle['fitness'] =evaluate_fitness(particle['position'])。
粒子群优化算法概述[1]
![粒子群优化算法概述[1]](https://img.taocdn.com/s3/m/020552f8c1c708a1284a4497.png)
计算机辅助工艺课程作业学生:赵华琳学号: s时间:09年6月粒子群优化算法概述0.前言优化是科学研究、工程技术和经济管理等领域的重要研究工具。
它所研究的问题是讨论在众多的方案中寻找最优方案。
例如,工程设计中怎样选择设计参数,使设计方案既满足设计要求又能降低成本;资源分配中,怎样分配有限资源,使分配方案既能满足各方面的基本要求,又能获得好的经济效益。
在人类活动的各个领域中,诸如此类,不胜枚举。
优化这一技术,正是为这些问题的解决,提供理论基础和求解方法,它是一门应用广泛、实用性很强的科学。
近十余年来,粒子群优化算法作为群体智能算法的一个重要分支得到了广泛深入的研究,在路径规划等许多领域都有应用。
本文主要结合现阶段的研究概况对粒子群优化算法进行初步介绍。
1.粒子群优化算法的基本原理1.1 粒子群优化算法的起源粒子群优化(PSO)算法是由Kennedy和Eberhart于1995年用计算机模拟鸟群觅食这一简单的社会行为时,受到启发,简化之后而提出的[1][2]。
设想这样一个场景:一群鸟随机的分布在一个区域中,在这个区域里只有一块食物。
所有的鸟都不知道食物在哪里。
但是他们知道当前的位置离食物还有多远。
那么找到食物的最优策略是什么呢。
最简单有效的方法就是追寻自己视野中目前离食物最近的鸟。
如果把食物当作最优点,而把鸟离食物的距离当作函数的适应度,那么鸟寻觅食物的过程就可以当作一个函数寻优的过程。
鱼群和鸟群的社会行为一直引起科学家的兴趣。
他们以特殊的方式移动、同步,不会相互碰撞,整体行为看上去非常优美。
生物学家CargiReynolds提出了一个非常有影响的鸟群聚集模型。
在他的模拟模型boids中,每一个个体遵循:避免与邻域个体相冲撞、匹配邻域个体的速度、试图飞向感知到的鸟群中心这三条规则形成简单的非集中控制算法驱动鸟群的聚集,在一系列模拟实验中突现出了非常接近现实鸟群聚集行为的现象。
该结果显示了在空中回旋的鸟组成轮廓清晰的群体,以及遇到障碍物时鸟群的分裂和再度汇合过程。
基于粒子群算法求解多目标优化问题

基于粒子群算法求解多目标优化问题一、本文概述随着科技的快速发展和问题的日益复杂化,多目标优化问题在多个领域,如工程设计、经济管理、环境保护等,都显得愈发重要。
传统的优化方法在处理这类问题时,往往难以兼顾多个目标之间的冲突和矛盾,难以求得全局最优解。
因此,寻找一种能够高效处理多目标优化问题的方法,已成为当前研究的热点和难点。
粒子群算法(Particle Swarm Optimization, PSO)作为一种群体智能优化算法,具有收敛速度快、全局搜索能力强等优点,已经在多个领域得到了广泛应用。
近年来,粒子群算法在多目标优化问题上的应用也取得了显著的成果。
本文旨在探讨基于粒子群算法求解多目标优化问题的原理、方法及其应用,为相关领域的研究提供参考和借鉴。
本文首先介绍多目标优化问题的基本概念和特性,分析传统优化方法在处理这类问题时的局限性。
然后,详细阐述粒子群算法的基本原理和流程,以及如何将粒子群算法应用于多目标优化问题。
接着,通过实例分析和实验验证,展示基于粒子群算法的多目标优化方法在实际问题中的应用效果,并分析其优缺点。
对基于粒子群算法的多目标优化方法的发展趋势和前景进行展望,为未来的研究提供方向和建议。
二、多目标优化问题概述多目标优化问题(Multi-Objective Optimization Problem, MOP)是一类广泛存在于工程实践、科学研究以及社会经济等各个领域中的复杂问题。
与单目标优化问题只寻求一个最优解不同,多目标优化问题涉及多个相互冲突的目标,这些目标通常难以同时达到最优。
因此,多目标优化问题的解不再是单一的最优解,而是一组在各个目标之间达到某种平衡的最优解的集合,称为Pareto最优解集。
多目标优化问题的数学模型通常可以描述为:在给定的决策空间内,寻找一组决策变量,使得多个目标函数同时达到最优。
这些目标函数可能是相互矛盾的,例如,在产品设计中,可能同时追求成本最低、性能最优和可靠性最高等多个目标,而这些目标往往难以同时达到最优。
粒子群算法以及应用原理

粒子群算法介绍优化问题是工业设计中经常遇到的问题,许多问题最后都可以归结为优化问题. 为了解决各种各样的优化问题,人们提出了许多优化算法,比较著名的有爬山法、遗传算法等.优化问题有两个主要问题:一是要求寻找全局最小点,二是要求有较高的收敛速度. 爬山法精度较高,但是易于陷入局部极小. 遗传算法属于进化算法( Evolutionary Algorithms) 的一种,它通过模仿自然界的选择与遗传的机理来寻找最优解. 遗传算法有三个基本算子:选择、交叉和变异. 但是遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最优解之后还需要对问题进行解码,另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验.1995 年Eberhart 博士和kennedy 博士提出了一种新的算法;粒子群优化(Partical Swarm Optimization -PSO) 算法 . 这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性.粒子群优化(Partical Swarm Optimization - PSO) 算法是近年来发展起来的一种新的进化算法( Evolu2tionary Algorithm - EA) .PSO 算法属于进化算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质. 但是它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作. 它通过追随当前搜索到的最优值来寻找全局最优 .粒子群算法1. 引言粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),有Eberhart博士和kennedy博士发明。
源于对鸟群捕食的行为研究PSO同遗传算法类似,是一种基于叠代的优化工具。
求解动态优化问题的多种群骨干粒子群算法

求解动态优化问题的多种群骨干粒子群算法陈健;申元霞;纪滨【摘要】To solve the challenges of outdated memory and diversity loss in Dynamic Optimization Problem(DOP), this paper proposes an improved Multi-swarms Bare Bones Particle Swarm Optimization(MBBPSO). First of all, the particles of environment survey are set to detect timely the change of environment in MBBPSO, which avoids incorrect information guiding the direction of swarms'evolution. After the change of environment, MBBPSO reinitialize all swarms by using the information which every swarm explores in last environment which enhances fast tracking ability of the excellent solution to the current environment. When the swarm falls into a standstill, MBBPSO designs newly methods to enhanceparticles'activation and use the multi-swarms measure to maintain the whole swarm's diversity. The simulation experi-ment results show that MBBPSO has stronger competitiveness in dynamic environment.%针对动态优化问题(Dynamic Optimization Problem,DOP)中所面临的过时记忆和多样性丧失的挑战,提出了一种改进的多种群骨干粒子群优化算法(Multi-swarms Bare Bones Particle Swarm Optimization,MBBPSO).通过设置环境勘探粒子及时检测环境的变化,避免了错误信息误导种群的进化方向;环境改变后,利用上一个环境搜索的信息初始化新的种群,提高MBBPSO快速追踪到当前环境的优秀解的能力;当种群陷入停滞时,采用新的进化方程以加强粒子的活性和多种群策略维持群体的多样性.仿真实验表明,MBBPSO在解决动态环境问题中具有较强的竞争力.【期刊名称】《计算机工程与应用》【年(卷),期】2017(053)019【总页数】7页(P45-50,108)【关键词】动态优化问题;骨干粒子群算法;过时记忆;多样性丧失;多种群【作者】陈健;申元霞;纪滨【作者单位】安徽工业大学计算机科学与技术学院,安徽马鞍山 243032;安徽工业大学计算机科学与技术学院,安徽马鞍山 243032;安徽工业大学计算机科学与技术学院,安徽马鞍山 243032【正文语种】中文【中图分类】TP301.6粒子群优化算法(Particle Swarms Optimization,PSO)是美国社会心理学学家Kennedy和电气工程师Eberhart于1995首先提出的[1]。
粒子群算法多维度应用实例

粒子群算法多维度应用实例全文共四篇示例,供读者参考第一篇示例:粒子群算法(Particle Swarm Optimization,PSO)是一种启发式优化算法,模拟了鸟群、鱼群等群体协作的行为,通过不断调整粒子的位置和速度来搜索最优解。
近年来,粒子群算法在多个领域中得到了广泛应用,特别是在多维度应用方面,展现出了强大的优化性能和较好的收敛速度。
本文将介绍粒子群算法在多维度应用中的实例,并探讨其优势和局限性。
一、多维度优化问题概述二、粒子群算法原理及优化过程粒子群算法是由Kennedy和Eberhart于1995年提出的,其基本思想是模拟鸟群或鱼群等群体在搜索空间中寻找目标的行为。
在粒子群算法中,每个粒子表示一个潜在的解,其位置和速度都会根据其个体最优解和全局最优解而不断更新。
粒子群算法的优化过程如下:(1)初始化粒子群:随机生成一定数量的粒子,并为每个粒子设定初始位置和速度。
(2)评估粒子适应度:计算每个粒子的适应度值,即目标函数的值。
(3)更新粒子速度和位置:根据粒子历史最优解和全局最优解来更新粒子的速度和位置。
(4)重复步骤(2)和(3)直到满足停止条件:当满足一定停止条件时,算法停止,并输出全局最优解。
三、粒子群算法在多维度应用中的实例1. 工程设计优化在工程设计中,往往需要优化多个设计参数以满足多个性能指标。
飞机机翼的设计中需要考虑多个参数,如翼展、翼型、翼厚等。
通过粒子群算法可以有效地搜索这些参数的最优组合,从而使飞机性能达到最佳。
2. 机器学习参数优化在机器学习中,通常需要调整多个超参数(如学习率、正则化系数等)以优化模型的性能。
粒子群算法可以应用于优化这些超参数,从而提高机器学习模型的泛化能力和准确度。
3. 经济模型参数拟合在经济模型中,经常需要通过拟合参数来分析经济现象和预测未来走势。
粒子群算法可以用来调整模型参数,从而使模型更好地拟合实际数据,提高预测准确度。
1. 全局搜索能力强:粒子群算法具有很强的全局搜索能力,能够在高维度空间中搜索到全局最优解。
粒子群算法论文

VS
详细描述
组合优化问题是指在一组离散的元素中寻 找最优解的问题,如旅行商问题、背包问 题等。粒子群算法通过模拟群体行为进行 寻优,能够有效地求解这类问题。例如, 在旅行商问题中,粒子群算法可以用来寻 找最短路径;在背包问题中,粒子群算法 可以用来寻找最大化的物品价值。
粒子群算法在组合优化问题中的应用
粒子群算法论文
目录
CONTENTS
• 粒子群算法概述 • 粒子群算法的理论基础 • 粒子群算法的改进与优化 • 粒子群算法的实际应用 • 粒子群算法的未来展望
01 粒子群算法概述
粒子群算法的基本原理
粒子群算法是一种基于群体智能的优化算法,通过模拟鸟群、鱼群等生物群体的行 为规律,利用粒子间的信息共享和协作机制,寻找最优解。
高模型的决策能力和性能。
05 粒子群算法的未来展望
粒子群算法与其他智能算法的融合研究
融合遗传算法
通过引入遗传算法的变异、交叉和选 择机制,增强粒子群算法的搜索能力 和全局寻优能力。
混合粒子群优化
结合其他优化算法,如模拟退火、蚁 群算法等,形成混合优化策略,以处 理多目标、约束和大规模优化问题。
粒子群算法的理论基础深入研究
通过对粒子群算法的收敛性进行分析, 可以发现算法在迭代过程中粒子的分 布规律以及最优解的稳定性,有助于 优化算法参数和提高算法性能。
粒子群算法的参数优化
参数优化是提高粒子群算法性能 的关键步骤之一,主要涉及粒子 数量、惯性权重、学习因子等参
数的调整。
通过对参数进行优化,可以改善 粒子的搜索能力和全局寻优能力,
总结词
粒子群算法在机器学习中可以用于特征选择、模型选择 和超参数调整等方面。
详细描述
机器学习是人工智能领域的一个重要分支,旨在通过训 练数据自动地学习和提取有用的特征和规律。粒子群算 法可以应用于机器学习的不同方面,如特征选择、模型 选择和超参数调整等。通过模拟群体行为进行寻优,粒 子群算法可以帮助机器学习模型找到最优的特征组合、 模型参数和超参数配置,从而提高模型的性能和泛化能 力。
粒子群算法基本流程

粒子群算法基本流程粒子群算法(Particle Swarm Optimization, PSO)是一种基于自然界群体智能现象的优化算法,常用于解决各种优化问题,如函数优化、组合优化、机器学习等。
本文将详细介绍粒子群算法的基本流程,包括初始化、适应度评价、移动、更新等环节,希望能对读者理解该算法提供一定的帮助。
一、算法介绍粒子群算法最初由Kennedy和Eberhart于1995年提出 [1],其基本思想来源于鸟群觅食行为。
在野外觅食时,鸟群中的鸟会根据所找到的食物数量来确定自己下一步的移动方向。
PSO算法中的“粒子”类似于鸟群中的鸟,它们以个体和群体为导向,通过速度和位置的调整来进行优化搜索。
PSO算法的目标是寻找最优解,通常是最小化或最大化一个函数的值,可表示为:f(x)=\sum_{i=1}^n{f_i(x)}x 是 n 维实数向量,f_i(x) 表示第 i 个函数。
寻找最优解的目标就是在 x 的搜索空间中寻找函数 f(x) 的全局最优解或局部最优解。
二、基本流程粒子群算法的基本流程如下:1. 初始化:随机生成一群粒子,每个粒子的位置和速度都是随机的。
2. 适应度评价:计算每个粒子的适应度值,也就是函数 f(x) 所对应的值,用来表示该粒子所处的位置的优劣程度。
3. 移动:根据当前位置和速度,移动粒子到新的位置。
4. 更新:根据历史上最好的粒子位置和当前最好的粒子位置,更新每个粒子的历史最好位置和当前最好位置,并更新全局最优位置。
5. 终止:当满足一定的终止条件时,停止迭代,并输出最终的粒子位置和最优解。
下文将分别对各环节进行详细介绍。
三、初始化在PSO算法中,粒子的位置和速度都是随机的。
对于每个粒子,需要随机生成一个 n 维实数向量表示其位置,一个同维度的实数向量表示其速度。
可以采用如下方法进行初始化:1. 对于每一个维度,随机生成一个实数范围内的数值,表示该维度上的位置和速度。
2. 在满足约束条件的前提下,生成一个可行解,作为初始化的位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第28卷第10期V ol.28No.10控制与决策Control and Decision2013年10月Oct.2013一种新的求解动态连续优化的分层粒子群算法文章编号:1001-0920(2013)10-1573-05朱庆保1,徐晓晴1,朱世娟2(1.南京师范大学a.计算机科学与技术学院,b.江苏省信息安全保密技术工程中心,南京210097;2.安庆师范学院计算机信息学院,安徽安庆246001)摘要:为了高效求解动态连续优化问题,提出一种分层粒子群优化算法.该算法将动态函数定义域分成Q个子空间,每个空间用一个粒子群作为第一层进行独立搜索,Q个子空间的最优粒子再组成一个全局粒子群进行全局搜索,以达到全局牵引的作用,同时提出探测环境和响应环境的策略.利用经典的动态函数对算法进行测试,结果表明所提出算法能够迅速适应环境变化和跟踪最优解的变化,效果令人满意.关键词:粒子群算法;动态优化;连续优化;分层中图分类号:TP301.6文献标志码:AA new hierarchical PSO algorithm for solving dynamic and continuous optimization problemsZHU Qing-bao1,XU Xiao-qing1,ZHU Shi-juan2(1a.School of Computer Science and Technology,1b.Jiangsu Research Center of Information Security&Privacy Technology,Nanjing Normal University,Nanjing210097,China;2.School of Computer Information,Anqing Normal University,Anqing246001,China.Correspondent:ZHU Qing-bao,E-mail:zhuqingbao@) Abstract:In order to efficiently solve the dynamic and continuous optimization problems,a hierarchical PSO algorithm is proposed.The solution space of a dynamic optimization problem is divided into Q subspaces.One particle swarm is assigned to each subspace to search independently as thefirst layer.Then the best particles in the Q particle swarms as the second layer search the global domain so as to guide the other particles in each subspace.Moreover,an environment detection and response strategy is proposed.Numerical experiments on the classical dynamic function demonstrate that the algorithm can adapt dynamic environment and track a changing optimum quickly.Key words:particle swarm optimization;dynamic optimization;continuous;layering0引言优化问题的目标函数、约束条件和解随时间发生变化称为动态优化,其难点在于最优解的位置是动态变化的,算法需要跟踪变化的极值.基于群体协作的粒子群算法(PSO)具有简单易实现、全局搜索能力强等优点,是解决这类问题的首选算法[1].然而,PSO 算法在运行到后期时,对环境的变化失去适应能力,不能跟踪变化了的极值,所以很多学者针对动态优化问题对PSO算法进行了改进,其基本思想均是提高算法的多样性,使算法适应环境的变化.如:Blackwell 等[2]提出了一种带电粒子PSO(CPSO),通过增加加速因子模拟带电粒子对其他带电粒子的排斥效果,以此保持系统的多样性,应对环境的动态变化;文献[3]提出了一种自适应惯性权重并以辅群提高搜索多样性的方法;AutomicSwarm方法[4]在种群中设定一部分个体作为带电粒子,当两个粒子的距离在一定范围内时,粒子之间存在着互相排斥的力,这样,便保持了群体的多样性,使算法具有较好的全局探测能力; IPSO方法[4]是一种改进的PSO方法.为了提高算法的搜索多样性,一些学者还提出了其他算法,如连续多蚁群算法[5]、带电粒子群算法[6]、树形结构的PSO 算法(H-PSO)[7]、引入量子微粒的算法[8]、基于种群多样性的微粒群算法[9]、复合粒子群算法[10]、对偶遗传算法[11]、自适应免疫算法[12]等.上述算法增加多样性的方式具有随机性,需要的计算量和时间消耗较大.另一方面,这些算法方法收稿日期:2012-06-08;修回日期:2012-09-06.基金项目:国家自然科学基金项目(60673102,61073118);江苏省高校自然科学基金项目(10KJD520004).作者简介:朱庆保(1955−),男,教授,博士生导师,从事人工智能、机器人技术等研究;徐晓晴(1988−),女,硕士生,从事智能技术及应用的研究.1574控制与决策第28卷比较单一,虽然在一定程度上改进了环境的适应能力,但对提高收敛速度并没有帮助甚至起相反的作用.鉴于此,本文提出了一种基于分层的动态PSO算法(LDPSO),该算法由若干分区分组粒子群实施基层的分区局部搜索,由每组最优粒子组成全局搜索粒子群实施全局搜索,使各子群在并行独立搜索的同时又能相互交流学习,从而高效地跟踪变化的极值点;同时,提出了一种环境检测和环境响应方法,以增加算法搜索的多样性.1PSO算法及在动态连续优化中的局限性标准PSO算法及其参数见文献[9],粒子j在i维上按下式更新速度和位置:v ji(t)=ωv ji(t)+c1r1i(t)(p ji(t)−x ji(t))+c2r2i(t)(p gi(t)−x ji(t)),(1) x ji(t+1)=x ji(t)+v ji(t+1),(2)其中P g和P j分别为全局极值和个体极值.动态优化问题需要尽可能地跟踪最优解的变化轨迹,但PSO算法存在如下局限性:1)每个粒子通过跟踪P j和P g逐渐逼近更优解,但动态优化问题中的P j和P g会随时间发生变化,此时粒子陷入对先前环境的寻优,难以有效逼近动态变化的最优位置;2)动态优化问题变量的状态是时变的,但PSO算法在进化后期会出现收敛的状态,失去对环境的适应能力.2LDPSO算法的基本策略2.1问题描述和相关定义一般动态环境下非约束的最优化问题描述为min f(X t,t),X t∈S t⊆R D;min i⩽x i⩽max i,i=1,2,⋅⋅⋅,D.(3)其中:X t=(x1,x2,⋅⋅⋅,x D,t);S t⊆R D为随时间变化的解空间,D为维数;f(X t,t)为目标函数,也是关于时间t的函数.定义1对于最小值动态优化问题(式(3)),若存在X∗t∈S t,使得对于∀X t∈S t均有f(X∗t,t)⩽f(X t,t)(4)成立,则称X∗t为f(X t,t)在S t上第t代的全局最优解.将式(4)中的不等号反向,即可得到关于求最大值最优解的定义.本文算法以求解最小值为例.2.2分层粒子群算法策略2.2.1解空间的划分和分组方法首先将优化问题的解空间按定义域划分为Q个子空间,划分方法为ℎi s=(max i−min i)/Q,i=1,2,⋅⋅⋅,D,s=1,2,⋅⋅⋅,Q.(5)其中:ℎi s为第s个子空间i维上的搜索长度,[min i, max i]为第i维的定义区间.任意子空间任意维上的搜索区间可以表示为[min i+(s−1)ℎi s,min i+sℎi s].(6)每个子空间分配一组粒子,每组均为N个,各组粒子在分配的子空间内进行独立的搜索.2.2.2粒子位置的混沌初始化利用混沌序列产生初始种群的初始位置,为后续搜索多样性奠定基础,步骤如下.Step1:产生N×Q个D维的混沌粒子位置.利用下式产生D个混沌变量:l i+1s,j=μl i s,j(1−l s,j).(7)其中:μ=3.99,i=0,1,⋅⋅⋅,D−1,j=1,2,⋅⋅⋅,N,s =1,2,⋅⋅⋅,Q,i为混沌变量的序列号.令i=0,l0s,j= rand(),j=1,2,⋅⋅⋅,N,l0s,j为第j个粒子在第s个子空间混沌向量的初值,rand()∈[0,1]为[0,1]间的随机值.利用式(7)得到第1个子空间第1个粒子的D维混沌向量(l11,1,l21,1,⋅⋅⋅,l D1,1),同理,产生另外N(Q−1)个混沌向量,由这NQ个混沌向量组成初始混沌种群.Step2:产生N×Q个D维的粒子位置.利用下式完成从混沌变量到粒子位置的映射:x i s,j=min i+(s−1)ℎi s+ℎi s l i s,j.(8)其中:x i s,j为第j个粒子在第s个子区间内第i维的分量,l i t,j为第j个粒子在第s个子区间内对应的第i维的混沌分量.2.2.3对粒子位置进行评价对N个粒子的初始位置利用下式进行评价:y j s=f(x1s,j,x2s,j,⋅⋅⋅,x D s,j).(9)其中:y j s为第s个子空间第j个粒子的适应值,f(⋅)为根据求解问题构造的适应值函数.由式(9)可得到y mins=min(y1s,y2s,⋅⋅⋅,y N s),s=1,2,⋅⋅⋅,Q,(10)其中y mins为本代第s个子空间内的最好解.每组粒子在各子空间分别搜索MAX代后,利用下式得到全局最优解:y min=min(y min l1,y min l2,⋅⋅⋅,y min lQ),(11)y min ls为第s个子空间内得到的最优解.2.2.4分层策略设任意一组粒子得到的最优解为(X min ls,y min ls), s=1,2,⋅⋅⋅,Q,则组成第2层的精英粒子为{(X min l1,y min l1),(X min l2,y min l2),⋅⋅⋅,(X min lQ,y min lQ)},记为(X min ls2,y min ls2).该精英粒子群在全局范围内根据式(1)和(2)进行全局搜索,得到个体极值为p min ls2,全局极值为p min lg2.第10期朱庆保等:一种新的求解动态连续优化的分层粒子群算法15752.2.5环境变化的检测为了检测解空间中的环境是否发生变化,对每个组的最优解利用下式进行检测:C (t )=∣f (X min l s (t ))−f (X min ls (t −1))∣.(12)其中:t 为迭代次数,f (X min ls (t −1))为t −1代第s 组粒子得到的最优解值,X min ls 为最优解在解空间的位置;f (X min ls (t ))为解空间同一位置到第t 代时的适应值.σ的值通过实验确定,如果C (t )⩽σ,则视为环境没有发生变化或变化不大.2.2.6环境变化的响应假设探测到环境已发生变化,如果此时粒子分布过密,则调整粒子位置.设该组内最优粒子与其他粒子的平均距离为Diver s (t ),粒子分布的平均距离为Δs (t ),利用下式判断粒子分布情况:Diver s (t )=1NN ∑j =1,j =i⎷D ∑i =1(x min l s,i −x i s,j)2,(13)Δs (t )=1N ×DD ∑i =1ℎi s .(14)当Diver s (t )<Δs (t )时,多样性较差,需要利用下式更新当前组的粒子位置:x i s,j (t +1)=x i s,j (t )+η(x i s,j (k )−x min l s,i )+ξ(x i s,j (t )−P ig ).(15)其中:η=rand()H [s ][i ]/2,ξ=rand()H [s ][i ]/2.2.3算法步骤分层粒子群算法步骤如下.Step 1:分组初始化.Step 1.1:设置总的最大迭代次数为MAX,代数计数器t =0,各组每次的迭代次数为A ,计数器m =0,按式(5)划分定义域,每个子空间分配一组粒子,分组数为Q ,每组种群大小为N ,ω初值设为0.9,c 1=c 2=2,各组的全局最优解y min l s =∞;Step 1.2:初始化各粒子的速度和位置x i j ;Step 1.3:利用f (⋅)得到各粒子的适应值y j =f (X ),则有y min =min(y 1,y 2,⋅⋅⋅,y N ).令当前全局最优解P g =f −1(y min ),每个个体的极值P j =X j .Step 2:粒子按式(1)和(2)更新速度和位置.惯性权重满足线性递减,即ω=0.9−0.5(MAX −t )/MAX ,其中t 为当前已迭代次数.同时按下式进行边界检查并转换:x i j =⎧⎨ ⎩min i +sℎi s −Δx,x i j >min i+sℎi s ;min i+(s −1)ℎi s +Δx,x i j <min i+(s −1)ℎi s .j =1,2,⋅⋅⋅,N,i =1,2,⋅⋅⋅,D,s =1,2,⋅⋅⋅,Q.(16)其中:Δx =rand(0,ℎi s ),rand(0,ℎi s )产生(0,ℎis )间的随机数.Step 3:利用式(9)分别对各分区粒子位置X j 进行评价.由式(10)得到各区的本代最好解y min s .若y min s <y min l s ,则令y min l s =y min s ,得到各区最优粒子位置X min l s (t )=f −1(y min l s ).同时,更新P g =f −1(y min )和每个粒子的当前最好解,即若y j s <P j ,则令P j =f −1(y j s ).Step 4:令m =m +1,如果m <A ,则转至Step 2.Step 5:将X min ls(t )(s =1,2,⋅⋅⋅,Q )作为第2层PSO 搜索的个体,记为X min l s 2=X min ls (t ).个体极值为P min l s 2=X min l s (t ),全局极值为P min l s 2=f −1(y min ).Step 6:第2层个体按式(1)和(2)进行二次搜索,并利用上述同样算法对各粒子位置进行评价,同时对各区的最优粒子进行更新,如果y min l s 2<y min l s ,则X min l s =X min l s 2,y min ls =y min l s 2.Step 7:以一定条件更新目标函数f (t ),本实验中,每经历Δg 代,令函数以偏移量offset 发生一次动态变化.Step 8:设置η为常数,利用式(12)计算各区的C (t ),如果C (t )⩽η,则转至Step 10.Step 9:响应环境变化.Step 9.1:利用式(13)和(14)计算各区的种群多样性Diver t (t )和Δs (t );Step 9.2:若Diver t (t )>Δs (t ),则s 区粒子较为分散,无需重新定位粒子的位置,转至Step 10;Step 9.3:若Diver t (t )<Δs (t ),则利用式(15)将该区粒子向组内最优粒子周围扩散,并按式(16)进行边界检查并转换,直到满足Diver t (t )>Δs (t ),同时更新X s,j (t )对应的f (X s,j (t )).Step 10:部分组的极值更新.Step 10.1:重新计算上一代中该组各个体最优位置P s,j (t −1)在当前环境中的适应值f (P s,j (t −1)),将较优者作为当前环境的个体极值,记为P s,j (t );Step 10.2:比较组内所有个体极值P s,j (t ),选择最好的作为该组全局极值,记为P g s (t ).Step 11:令t =t +1,如果t >MAX 或算法得到的最优值与理论最优值之差Δy min 满足精度要求Δy min <1e −5,则转至Step 12,否则转至Step 2.Step 12:利用式(11)计算全局最优解y min 并输出.3计算机数值仿真实验和算法比较为了验证算法的有效性,本文进行了大量的数值仿真实验,实验设备为一般PC 机,Intel(R)赛扬CPU 2.66GHz,256内存,仿真软件VC++6.0.1576控制与决策第28卷表1分层优化效果测试分组参数分组分层优化结果分组不分层优化结果环境变化维数m g m p before after before afteroffset=0.01Δg=1030310186.0547.3210.2390.2offset=0.1Δg=503031289.2589.25230.9170.2offset=1Δg=10030410187.6474.35238.5141.3表23种算法的比较结果参数设置本文算法(LDPSO)DGCMPSO Diversity-PSO offset before afterm g m p无检测有检测无检测有检测before after before after1e-5310129.25128.31100220.360.37163.301e-3310134.37132.1700222.5915.98169.0501e-1310130.52126.7953.6251.2219.17115.18166.657.951.0310142.31112.4495.4189.16220.25186.74168.3112.6表35种算法平均误差方法实验1实验2实验3实验4实验5实验6PSO0.4570.9390.7070.7560.4880.853AutomicSwarm0.1080.2060.2320.2890.2610.249PSOwDOW0.0180.0860.0670.0790.0450.094IPSO0.0370.0710.0510.1010.0960.06LSPSO 4.686e-05 5.1854e-05 5.1484e-05 6.5005e-05 2.3994e-05 3.7669e-053.1动态测试函数介绍由于抛物线的动态变化易于控制,这一领域的很多文献均利用下式作为测试函数:f(X)=D∑i=1(X i−offset)2,(17)其中offset用于控制抛物线的动态变化,每经历Δg 代,函数发生一次动态变化.为了便于与文献[9,13]作比较,本文也用该函数对算法进行测试.3.2对算法的综合测试表1为算法的综合测试结果,是独立运行100次的平均值.其中:before和after分别为环境变化前后收敛到最优解所需的平均代数;m g和m p分别为分组数和每组粒子数;offset=0.01,1.0,10,对应的变化间隔为Δg=10,50,100;最优解控制精度Δy min<1e−5.可见,分层后效果优越,在30维上,新环境里寻找最优的效率几乎是不分层的2倍.3.3与其他算法的比较将本文算法与Diversity-PSO算法[9]和DGCMPSO 算法[13]进行对比.DGCMPSO算法通过混沌变异加强种群多样性;Diversity-PSO算法通过检测某一粒子的前后变化判断环境变化,然后采取多样性检测,如果较差,则不断进行逃逸运动;本文算法只有当个别组出现粒子集中情况时才进行有方向的扩散运动.表2给出了这3种算法收敛速度的比较,参数设置与文献[9,13]完全相同.本文算法各组内循环2次,分层循环一次才完成一次大循环迭代,为了公平比较,在表2中,这样一次大循环被累计为3次迭代.表2中的“无检测”指取消算法中的环境检测和响应.由表2可见,此时各算法每次迭代的算法复杂度基本相同,但本文算法明显优于其他两种算法,环境变化越大,环境检测效果越明显.为了进一步比较算法的先进性,利用下式[4]:f(X,Y)=maxi=1,2,⋅⋅⋅,N[H i−R i√(X−X i)2+(Y−Y i)2](18)对算法进行测试,并与相关文献进行比较.其中:f(X, Y)为在(X,Y)位置的适应值,N为环境中锥体的个数,(X i,Y i)为第i个锥体的顶点,H为第i个锥体的高度,R为第i个锥体的斜度.文献[4]对多种动态优化算法进行比较的结果和本文LSPSO算法的实验结果均列于表3,具体实验参数和方法与文献[4]完全相同,且实验过程去掉了环境检测和环境响应.由表3可见,LSPSO算法的优化误差远小于其他方法.4结论针对利用粒子群算法进行连续动态优化时易出现多样性丢失、不易及时快速地跟踪动态变化极值的问题,本文提出了一种分层的粒子群优化算法,同时提出了动态环境检测策略和响应策略.在分组基础上第10期朱庆保等:一种新的求解动态连续优化的分层粒子群算法1577的分层策略使得各组的最优粒子有相互学习的机会,从而能更好地指导各组粒子寻找解空间中潜在的解,极大地提高了种群在环境发生变化之前收敛的可能性.另一方面,环境发生变化后,结合各组最优粒子密度的多样性检测,有选择地对趋于集中的粒子进行有方向的扩散移动,从而增强了种群的多样性,以适应环境的变化.仿真实验表明,利用本文算法求解动态环境优化问题,能够及时快速地对变化的环境作出合理响应,效果令人满意.参考文献(References)[1]Angeline P J.Tracking extrema in dynamicenvironments[C].Proc of the6th Int Conf on Evolutionary Programming.Indianapolis:Springer,1997,1213:336-345.[2]Blackwell T M,Peter J B.Dynamic search withcharged swarms[C].Proc of the Genetic and Evolutionary Computation Conference.San Francisco:Morgan Kaufmann Publishers,2002:19-26.[3]Iman Rezazadeh,Mohmmad Reza Meybodi.Particleswarm optimization algorithm in dynamic environments: Adapting inertia weight and clustering particles[C].UKSim5th European Symposium on Computer Modeling and Simulation.2011:76-82.[4]段晓东,徐平,王存睿,等.动态环境下粒子分群与种群多样性的关系研究[J].计算机科学,2009,36(3):161-162.(Duan X D,Xu P,Wang C R,et al.Relations between particle division and population diversity under dynamic environment[J].Computer Science,2009,36(3):161-162.)[5]Pu Li-ming,Yu Huan-jun,Chen De-zhao.Continuousmulti ant-colony optimization and its application in dynamic optimization problems of chemical processes[J].J of Chemical Engineering of Chinese Universities,2008, 22(5):871-876.[6]Blackwell T M,Bentley P.Don’t push me!Collision-avoiding swarms[C].Proc of the IEEE Congress on Evolutionary Computation.Honolulu,2002:1691-1696.[7]Janson S,Middendorf M.A hierachical particleswarm optimizer for dynamic optimization problems[C].Applications of Evolutionary Computing.Springer,2004: 513-524.[8]Blackwell T M,Branke J.Multi-swarms,exclusion andanti-convergence in dynamic environments[J].IEEE Trans on Evolutionary Computation,2006,10(4):459-472. [9]胡静,曾建潮,谭瑛.动态环境下基于种群多样性的微粒群算法[J].系统仿真学报,2007,19(21):4932-4935.(Hu J,Zeng J C,Tan Y.Particle swarm optimizer based on diversity of particle in dynamic environments[J].J of System Simulation,2007,19(21):4932-4935.)[10]Liu Li-li,Yang Sheng-xiang.Particle swarm optimizationwith composite particles in dynamic environments[J].IEEE Trans on Systems,Man and Cybernetics,Part B: Cybernetics,2010,40(6):1634-1648.[11]Yang S.Non-stationary problem optimization using theprimal-dual genetic algorithm[C].Proc of the2003 Congress on Evolutionary Computation.Leicester,2003: 836-844.[12]Zhang Zhu-hong,Qian Shu-qu.Adaptive immunealgorithm and its track to dynamic function optimization[J].Pattern Recognition and Artificial Intelligence,2007,20(1):85-94.[13]Dong Dian-min,Jie Jing,Zeng Jian-chao,et al.Chaos-mutation-based particle swarm optimizer for dynamic environment[C].Proc of Int Conf on Intelligent System and Knowledge Engineering.2008:1032-1037.下期要目多智能体系统编队控制相关问题研究综述⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅王祥科,等基于累积前景理论的动态风险灰靶决策方法⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅闫书丽,等机会式频谱接入问题基于事件的优化方法⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅黄永皓,陈曦基于信息散度的多无源传感器数据关联⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅鹿传国,等基于CVaR准则具有预算约束和损失约束的报童决策⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅许民利,李展基于安全多方计算的产能约束供应商协同供货研究⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅李毅鹏,马士华一种基于输出反馈的显式实时优化控制方法⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅叶凌箭,等热轧板坯出库问题的树搜索算法⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅张瑞友,等。