A. 一篇关于“论现代物流中心选址”的论文
一、物流配送中心选址的影响因素 (一)货物分布和数量。这是配送中心配送的对象,如货物来源和去向的分布情况、历史和现在以及将来的预测和发展等。配送中心应该尽可能地与生产地和配送区域形成短距离优化。货物数量是随配送规模的增长而不断增长的。货物增长率越高,越是要求配送中心选址的合理性,从而减少输送过程中不必要的浪费。 (二)运输条件。物流配送中心的选址应接近交通运输枢纽,使配送中心形成物流过程中的一个恰当的结点。在有条件的情况下,配送中心应尽可能靠近铁路货运站、港口及公路。 (三)用地条件。物流配送中心的占地问题在土地日益昂贵的今天显得越来越重要。是利用现有的土地,还是重新征地?地价如何?是否符合政府规划要求等等,在建设配送中心时都要进行综合考虑。 (四)商品流动。企业生产的消费品随着人口的转移而变化,应据此更好地为企业的配送系统定位。同时,工业产品市场也会转移变化,为了确定原材料和半成品等商品的流动变化情况,在进行物流配送中心的选址时,应考虑有关商品流动的具体情况。 (五)其他因素。如劳动力、运输与服务的方便程度、投资额的限制等。 二、物流配送中心选址方法 (一)定性分析法。定性分析法主要是根据选址影响因素和选址原则,依靠专家或管理人员丰富的经验、知识及其综合分析能力,确定配送中心的具体选址。主要有专家打分法、德尔菲法。定性方法的优点是注重历史经验,简单易行。其缺点是容易犯经验主义和主观主义的错误,并且当可选地点较多时,不易做出理想的决策,导致决策的可靠性不高。 (二)定量分析法。定量的方法主要包括重心法、鲍莫尔-沃尔夫法、运输规划法、Cluster法、CFLP法、混合0-1整数规划法、双层规划法、遗传算法等。定量方法选址的优点是能求出比较准确可信的解。其中,重心法是研究单个物流配送中心选址的常用方法,这种方法将物流系统中的需求点和资源点看成是分布在某一平面范围内的物流系统,各点的需求量和资源量分别看成是物体的重量,物体系统的重心作为物流网点的最佳设置点。
B. pso的理论分析
当前对微粒群算法开展的理论研究主要集中在微粒群算法的原理方面,即微粒之间是如何相互作用的,为什么微粒群算法对于很多优化问题是有效的,而对于有些问题则效果不是很明显。具体来说,这个问题的研究又分为三个方面,其一是单个微粒的运动轨迹;其二是收敛性问题;其三是整个微粒系统随时间的演化和分布。
对简化微粒行为的第一个分析由Kennedy给出,通过仿真给出了一系列设计选择的情况下不同的微粒轨迹。对简化微粒群算法的第一个理论分析由Ozcan给出,作者在文中指出,在一个简化的一维PSO系统中,微粒沿着一条由正弦波定义的路径前进,随机确定其幅度和频率。但是,他们的分析仅限于没有惯性权重的简单PSO模型,并且假定Pid和Pgd保持不变。事实上,Pid和Pgd会频繁变化,于是微粒轨迹由很多不同幅度和频率的正弦波合成,整个轨迹看起来仍然是无序的。这使得他们的结论的有效性大打折扣。
对算法稳定性质的第一个形式化分析由Clerc给出,但是该分析需要将随机系数视作常数,从而将标准随机PSO算法简化为一个确定型动态系统。这样得到的系统是一个二阶线性动态系统,其稳定性依赖于系统的极点或状态矩阵的特征根。van den Bergh对基于确定型版本的PSO算法进行了类似的分析,并确定了在参数空间中保证稳定性的区域。在文献[5]和[42]中也提出了关于收敛性和参数选择的内容,但是作者承认他们并没有考虑算法的随机特性,因此其结果有局限性。类似的还有对连续时间版本的PSO算法所作的分析。
Blackwell针对球形对称局部邻域的函数,对PSO算法中多样性缺失的速度进行了理论分析和实验验证。Kennedy系统地研究了速度对PSO算法的影响,有助于理解速度对算法性能的贡献。
Kadirkamanathan等采用李雅普诺夫稳定性分析和被动系统(Passive System)的概念,对微粒动力学的稳定性进行了分析。该分析中没有假定所有参数均为非随机的限制,得出了稳定的充分条件,并给出示例。仿真结果验证了理论的预期,微粒动力学的稳定需要在惯性权重减小时,增大随机参数的最大值。该分析是基于随机微粒动力学的,将微粒动力学表达为一个非线性反馈控制系统。该系统有一个确定型线性部分和一个非线性部分,以及/或在反馈路径上的时变增益。该文虽然考虑了随机分量的影响,但是其稳定性分析是针对最优位置所进行的(群体最优和个体最优相同),其结论不能直接应用到非最优的微粒。
Clerc研究了处于停滞阶段的微粒群算法的迭代过程,对迭代过程中的各随机系数进行了详细的研究,给出了各随机系数的概率密度函数。
Jiang将微粒群算法中每一演化步骤时的微粒位置量视作一个随机向量,考查了微粒群算法中惯性权重ω和学习因子c1、c2等参数对算法收敛性的影响,并采用随机过程理论分析了标准微粒群算法的随机收敛性。
原始PSO算法即使能够收敛,也只能收敛到群体所搜索到的最好解,而不能保证该收敛解是最优解,甚至不能保证它是局部最优解。van den Bergh提出一种保证收敛的PSO算法,其策略是对全局最优微粒采用一个新的更新方程,使其在全局最好位置附近产生一个随机搜索,而其他微粒仍用原方程更新。该算法能够保证微粒群算法收敛到局部最优解,其代价为收敛速度加快,在多模问题中性能不如标准PSO算法。
C. pso的离散算法
很多优化问题涉及到离散或二值的变量,典型的例子包括调度问题或路由问题。而PSO算法的更新公式和过程是面向连续空间并为其设计的,因此需要做一些修改使之适应离散空间的情况。编码的修改可能很简单,难点在于定义速度的意义和确定轨迹的变化。
Kennedy定义了第一个离散二进制版本的PSO算法。微粒使用二进制字符串进行编码。通过使用sigmoid函数,速度被限制在[0, 1]区间之内,并被解释为“概率的变化”。Yang对该方法在量子空间进行了扩展。
Mohan提出了几种二进制方法(直接方法、量子方法、正则方法、偏差向量方法以及混合方法),但是从有限的实验中没有得出什么结论。Clerc对一些专用于某些约束优化问题如TSP问题的PSO算法变种进行了试验,结果显示该方法比较有前途。Pang使用模糊矩阵来表示微粒的位置和速度,对PSO算法的算符进行了重定义,并将其应用到TSP问题的求解。Pampara将PSO算法与信号处理中的角调制技术结合起来,将高维二进制问题降维为一个在连续空间中定义的四维问题,并通过求解该四维问题来获得原问题的解。Afshinmanesh重新定义了离散PSO算法中的加法与乘法,并使用人工免疫系统中的阴性选择来实现速度限制Vmax。
Hu提出了一种改进PSO算法来处理排列问题。微粒被定义为一组特定值的排列,速度基于两个微粒的相似度重新定义,微粒根据由它们的速度所定义的随机率来变换到一个新的排列。引入了一个变异因子来防止当前的pBest陷入局部最小。在n皇后问题上的初步研究显示改进的PSO算法在解决约束满意问题方面很有前途。
Migliore对原始的二进制PSO算法进行了一些改进,提出了可变行为二进制微粒群算法(VB-BPSO)和可变动态特性二进制微粒群算法(VD-BPSO)。VB-BPSO算法按照连续PSO算法的速度更新公式的思想设计了一个新的速度更新公式,用来确定微粒位置向量每一位为1的概率。而VD-BPSO算法则是根据一定规则在两组不同参数确定的VB-BPSO算法之间切换。Migliore应用该算法设计出一种简单鲁棒的自适应无源天线。
Parsopoulos以标准函数为例测试微粒群优化算法解决整数规划问题的能力。Salman将任务分配问题抽象为整数规划模型并提出基于微粒群优化算法的解决方法。两者对迭代产生的连续解均进行舍尾取整后评价其质量。但是PSO算法生成的连续解与整数规划问题的目标函数评价值之间存在多对一的映射,以整型变量表示的目标函数不能准确反映算法中连续解的质量,而由此导致的冗余解空间与相应的冗余搜索降低了算法的收敛效率。
高尚采用交叉策略和变异策略,将PSO算法用来解决集合划分问题。赵传信重新定义了微粒群位置和速度的加法与乘法操作,并将PSO算法应用到0/1背包问题求解中。EL-Gallad在PSO算法中引入探索和勘探两个算子,用于求解排序问题。Firpi提出了BPSO算法的一种保证收敛的版本(但是并未证明其保证收敛性),并将其应用到特征选择问题。
上述离散PSO算法都是间接的优化策略,根据概率而非算法本身确定二进制变量,未能充分利用PSO算法的性能。在处理整数变量时,PSO算法有时候很容易陷入局部最小。原始PSO算法的思想是从个体和同伴的经验进行学习,离散PSO算法也应该借鉴该思想。高海兵基于传统算法的速度—位移更新操作,在分析微粒群优化机理的基础上提出了广义微粒群优化模型(GPSO),使其适用于解决离散及组合优化问题。GPSO 模型本质仍然符合微粒群优化机理,但是其微粒更新策略既可根据优化问题的特点设计,也可实现与已有方法的融合。基于类似的想法,Goldbarg将局部搜索和路径重连过程定义为速度算子,来求解TSP问题。
D. pso的多目标优化
在多目标优化问题中,每个目标函数可以分别独立进行优化,然后为每个目标找到最优值。但是,很少能找到对所有目标都是最优的完美解,因为目标之间经常是互相冲突的,只能找到Pareto最优解。
PSO算法中的信息共享机制与其他基于种群的优化工具有很大的不同。在遗传算法(GA)中,染色体通过交叉互相交换信息,是一种双向信息共享机制。但是在PSO算法中,只有gBest(或nBest)给其他微粒提供信息,是一种单向信息共享机制。由于点吸引特性,传统的PSO算法不能同时定位构成Pareto前锋的多个最优点。虽然通过对所有目标函数赋予不同的权重将其组合起来并进行多次运行,可以获得多个最优解,但是还是希望有方法能够一次同时找到一组Pareto最优解。
在PSO算法中,一个微粒是一个独立的智能体,基于其自身和同伴的经验来搜索问题空间。前者为微粒更新公式中的认知部分,后者为社会部分,这二者在引导微粒的搜索方面都有关键的作用。因此,选择适当的社会和认知引导者(gBest和pBest)就是MO-PSO算法的关键点。认知引导者的选择和传统PSO算法应遵循相同的规则,唯一的区别在于引导者应按照Pareto支配性来确定。社会引导者的选择包括两个步骤。第一步是建立一个从中选取引导者的候选池。在传统PSO算法中,引导者从邻居的pBest之中选取。而在MO-PSO算法中更常用的方法是使用一个外部池来存储更多的Pareto最优解。第二步就是选择引导者。gBest的选择应满足如下两个标准:首先,它应该能为微粒提供有效的引导来获得更好的收敛速度;第二,它还需要沿Pareo前锋来提供平衡的搜索,以维持种群的多样性。文献中通常使用两种典型的方法:(1)轮盘选择模式,该方式按照某种标准进行随机选择,其目的是维持种群的多样性;(2)数量标准:按照某种不涉及随机选择的过程来确定社会引导者。
Moore最早研究了PSO算法在多目标优化中的应用,强调了个体和群体搜索二者的重要性,但是没有采用任何维持多样性的方法。Coello在非劣最优概念的基础上应用了一个外部“容器”来记录已找到的非支配向量,并用这些解来指导其它微粒的飞行。Fieldsend采用一种称为支配树的数据结构来对最优微粒进行排序。Parsopoulos应用了权重聚合的方法。Hu应用了动态邻域,并在此基础上利用扩展记忆,按词典顺序依次优化各个目标。Ray使用聚集机制来维持多样性,并用一个多水平筛来处理约束。Lu使用了动态种群策略。Bartz-Beielstein采用归档技术来提高算法性能。Li在PSO算法中采用NSGA-II算法中的主要机制,在局部最优微粒及其后代微粒之间确定局部最优微粒;并此基础上又提出一种新的算法,在适应值函数中使用最大最小策略来确定Pareto支配性。张利彪使用多个目标函数下各最优位置的均值来指导微粒飞行。Pulido使用多个子种群并采用聚类技术来求解多目标规划问题。Mahfouf采用加权聚合方法来计算微粒的适应值,并据此确定引导微粒的搜索。Salazar-Lechuga使用适应值共享技术来引导微粒的搜索。Gong提出微粒角度的概念,并使用最小微粒角度和微粒密度来确定局部最优和全局最优微粒。基于AER模型,Zhang提出一种新的智能PSO模型,来将种群驱向Pareto最优解集。Ho提出一种新的适应值分配机制,并使用寿命(Age)变量来保存和选择最优历史记录。Huang将CLPSO算法应用到多目标规划中。Ho提出另一种基于Pareto的与尺度无关的适应值函数,并使用一种基于正交试验设计的智能运动机制(IMM)来确定微粒的下一步运动。Branke系统研究了多种个体最优微粒的选择方法对MOPSO算法性能的影响。张勇考虑储备集更新策略在多目标PSO算法中的关键作用,提出一种两阶段储备集更新策略。
原萍提出一种分布式PSO算法—分割域多目标PSO算法(DRMPSO),并将其应用到基站优化问题。向量评价PSO算法(VEPSO)是一种受向量评价遗传算法(VEGA)的启发提出的一种算法,在VEPSO算法中,每个种群仅使用多个目标函数之一来进行评价,同时各种群之间互相交互经验。将每个种群分配到一台网络PC上,即可直接使VEPSO算法并行化,以加速收敛。Vlachogiannis应用并行VEPSO算法来确定发电机对输电系统的贡献。熊盛武利用PSO算法的信息传递机制,在PSO算法中引入多目标演化算法常用的归档技术,并采用环境选择和配对选择策略,使得整个群体在保持适当的选择压力的情况下收敛于Pareto最优解集。
由于适应值的计算非常消耗计算资源,为了减少计算量,需要减少适应值评价的次数。Reyes-Sierra采用适应值继承和估计技术来实现该目标,并比较了十五种适应值继承技术和四种估计技术应用于多目标PSO算法时的效果。
保持MOPSO中的多样性的方法主要有两种:sigma方法和ε-支配方法。Villalobos-Arias在目标函数空间中引入条块划分来形成聚类,从而保持多样性。
E. PSO算法解决带约束条件的优化问题
约束条件:
a11x1+a12x2+…+a1nxn≤b1
a21x1+a22x2+…+a2nxn≤b2
…………………………
am1x1+am2x2+…+amnxn≤bm
x1,x2,…,xn≥0 式中x1,x2,…,xn为企业生产的各种产品;b1,b2,…,bm为可供使用的各种投入要素的数量;
aij(i=1,2…m;j=1,2,… n)为第j种产品每生产1个单位所需要的第i种投入要素的数量;最后,非负值约束条件表示各种产品的产量必须是正值,负值是没有意义的。
F. 数学建模选址与物流问题
摘要(很长): 有一本书叫《物流配送中心选址问题的理论方法与实践》 还不错 内容提要 本书从物流配送中心选址出发,通过建立相应的数学模型来研究问题的求解方法或算法。共分四篇十二章,第一篇描述了物流、配送及配送中心的概念;第二篇对配送中心选址的基本理论和建模基础做了详细的阐述;第三篇比较全面地介绍了现有配送中心选址模型,并对其进行总结、归纳、分析比较其优缺点;第四篇作者在总结分析现有选址模型的基础上,从不同角度,结合不同的应用,引入了几种配送中心选址模型和算法。 希望对楼主有所帮助 赞同0| 评论
B题一 洁具流水时间设计
我国是个淡水资源相当贫乏的国家,人均可利用淡水量不到世界平均数的四分之一。特别是近几年来,由于环境污染导致降水量减少,不少省市出现大面积的干旱。许多城市为了节能,纷纷采取提高水价、电价的方式来抑制能源消费。而另一方面,据有关资料报道,我国目前生产的各类洁具消耗的能源(主要是指用水量)比其它发达国家的同类产品要高出60%以上。
某洁具生产厂家打算开发一种男性用的全自动洁具,它的单位时间内流水量为常数v,为达到节能的目的,现有以下两个控制放水时间的设计方案供采用。
方案一:使用者开始使用洁具时,受感应洁具以均匀水流开始放水,持续时间为T,然后自动停止放水。若使用时间不超过T-5秒,则只放水一次,否则,为保持清洁,在使用者离开后再放水一次,持续时间为10秒。
方案二:使用者开始使用洁具时,受感应洁具以均匀水流开始放水,持续时间为T,然后自动停止放水。若使用时间不超过T-5秒,则只放水一次,否则,为保持清洁,到2T时刻再开始第二次放水,持续时间也为T。但若使用时间超过2T-5秒,则到4T时刻再开始第三次放水,持续时间也是T……在设计时,为了使洁具的寿命尽可能延长,一般希望对每位使用者放水次数不超过2次。
该厂家随机调查了100人次男性从开始使用到离开洁具为止的时间(单位:秒)见下表:
时间(秒) 12 13 14 15 16 17 18
人次 1 5 12 60 13 6 3
(1)请你根据以上数据,比较这两种设计方案从节约能源的角度来看,哪一种更好?并为该厂家提供设计参数T(秒)的最优值,使这种洁具在相应设计方案下能达到最大限度节约水、电的目的;
(2)从既能保持清洁又能节约能源出发,你是否能提出更好的设计方案,请通过建立数学模型与前面的方案进行比较。
其实,家庭中的其他生活用水一样可以用来冲洗马桶,比方说经过最后一次漂洗,衣服洗干净了,从洗衣机排出的水看上去还比较干净,直接流进下水管还真有点可惜。还有像洗完脸、洗过菜的水,如果能再次利用就好了。业余发明家吴汉平研制了一套生活用水回用装置,获得了国家专利。他将厨房的洗涤槽、卫生间的面盆和坐便器水箱连接到一个储水箱上。洗涤槽、面盆流出来的比较干净的水进入储水箱,供冲厕使用。
现在我来教你省水小秘方1.要用省水形马桶,般审型马桶加装2段式冲水配件。2.水箱底下浮饼拆下 即成无段式控制出水。
3.小便池自动冲水器冲水时间调短。 4.用米水、洗衣水、洗碗水及洗澡水等清水来浇花、洗车,及擦洗地板。5.清理地毯法由湿式或蒸汽式改成干燥粉沫式。6.将除湿机收集的水,及纯水机、蒸馏水机等净水设备的废水回收再利用。
现在我说完了6项省水秘方,你是否想到比我更好的省水方法呢?你是否在省水呢?我想你应该在省水吧!
长期以来,人们普遍认为水是“取之不尽,用之不竭”的,不知道爱惜,而浪费挥霍。事实上,水资源日益紧缺,而我市的城市供水工作更是在严重缺水的边缘艰难度日,自来水来之不易。
人不可一日无水,水是生命之源,珍惜水就是珍惜自己的生命!在此,我们介绍一些日常生活中的节水常识:
刷牙
浪费:不间断放水,30秒,用水约6升。
节水:口杯接水,3口杯,用水0.6升。三口之家每日两次,每月可节水486升。
洗衣
浪费:洗衣机不间断地边注水边冲洗、排水的洗衣方式,每次需用水约165升。
节水:洗衣机采用洗涤—脱水—注水—脱水—注水—脱水方式洗涤,每次用水110升,每次可节水55升,每月洗4次,可节水220升。
另外,衣物集中洗涤,可减少洗衣次数;小件、少量衣物提倡手洗,可节约大量水;洗涤剂过量投放将浪费大量水。
洗浴
浪费:过长时间不间断放水冲淋,会浪费大量水。
盆浴时放水过多,以至溢出,或盆浴时一边打开水塞,一边注水,浪费将十分惊人。
节水:间断放水淋浴(比如脚踏式、感应式等)。搓洗时应及时关水。避免过长时间冲淋。
盆浴后的水可用于洗衣、洗车、冲洗厕所、拖地等。
炊事
浪费:水龙头大开,长时间冲洗。烧开水时间过长,水蒸汽大量蒸发。用自来水冲淋蔬菜、水果。
节水:炊具食具上的油污,先用纸擦除,再洗涤,可节水。
控制水龙头流量,改不间断冲洗为间断冲洗。
洗车
浪费:用水管冲洗,20分钟,用水约240升。
节水:用水桶盛水洗车,需3桶水,用水约30升。使用洗涤水、洗衣水洗车。使用节水喷雾水枪冲洗。利用机械自动洗车,洗车水处理循环使用。
节水小方法:
节约用水,利在当代,功在千秋,这是经过讨论同学们一起研究出一些生活节水小方法:
一、淘米水洗菜,再用清水清洗,不仅节约了水,还有效地清除了蔬菜上的残存农药;
二、洗衣水洗拖帕、帚地板、再冲厕所。第二道清洗衣物的洗衣水擦门窗及家具、洗鞋袜等;
三、大、小便后冲洗厕所,尽量不开大水管冲洗,而充分利用使用过的“脏水”;
四、夏天给室内外地面洒水降温,尽量不用清水,而用洗衣之后的洗衣水;
五、自行车、家用小轿车清洁时,不用水冲,改用湿布擦,太脏的地方,也宜用洗衣物过后的余水冲洗;
六、冲厕所:如果您使用节水型设备,每次可节水4一5kg;
七、家庭浇花,宜用淘米水、茶水、洗衣水等;
八、家庭洗涤手巾、小对象、瓜果等少量用水。宜用盆子盛水而不宜开水龙头放水冲洗;
九、洗地板:用拖把擦洗,可比用水龙头冲洗每次每户可节水200kg以上;
十、水龙头使用时间长有漏水现象,可用装青霉素的小药瓶的橡胶盖剪一个与原来一样的垫圈放进去,可以保证滴水不漏;
十一、将卫生间里水箱的浮球向下调整2厘米,每次冲洗可节省水近3kg;按家庭每天使用四次算,一年可节药水4380kg。
十二、洗菜:一盆一盆地洗,不要开着水龙头冲,一餐饭可节省50kg;
十三、淋浴:如果您关掉龙头擦香皂,洗一次澡可节水60kg;
十四、手洗衣服:如果用洗衣盆洗、清衣服则每次洗、清衣比开着水龙头节省水200kg;
十五、用洗衣机洗衣服:建议您满桶再洗,若分开两次洗,则多耗水120kg;
十六、洗车:用抹布擦洗比用水龙头冲洗,至少每次可节水400kg;
G. 关于遗传算法的应用--物流中心选址问题
你想问什么问题?能再具体点吗?
我研究过遗传算法解决选址问题的。
msl1121说的不对,选址问题不是TSP问题。
编码可以采用二进制编码,即[0,1,1,0,0,0,1,1,1,0……],长度为n,其中1的个数为P。
具体可联系:[email protected]
H. pso的算法结构
对微粒群算法结构的改进方案有很多种,对其可分类为:采用多个子种群;改进微粒学习对象的选取策略;修改微粒更新迭代公式;修改速度更新策略;修改速度限制方法、位置限制方法和动态确定搜索空间;与其他搜索技术相结合;以及针对多模问题所作的改进。
第一类方案是采用多个子种群。柯晶考虑优化问题对收敛速度和寻优精度的双重要求并借鉴多群体进化算法的思想,将寻优微粒分成两组,一组微粒采用压缩因子的局部模式PSO算法,另一组微粒采用惯性权重的全局模式PSO算法,两组微粒之间采用环形拓扑结构。对于高维优化问题,PSO算法需要的微粒个数很多,导致计算复杂度常常很高,并且很难得到好的解。因此,出现了一种协作微粒群算法(Cooperative ParticleSwarm Optimizer, CPSO-H),将输入向量拆分成多个子向量,并对每个子向量使用一个微粒群来进行优化。虽然CPSO-H算法使用一维群体来分别搜索每一维,但是这些搜索结果被一个全局群体集成起来之后,在多模问题上的性能与原始PSO算法相比有很大的改进。Chow使用多个互相交互的子群,并引入相邻群参考速度。冯奇峰提出将搜索区域分区,使用多个子群并通过微粒间的距离来保持多样性。陈国初将微粒分成飞行方向不同的两个分群,其中一分群朝最优微粒飞行,另一分群微粒朝相反方向飞行;飞行时,每一微粒不仅受到微粒本身飞行经验和本分群最优微粒的影响,还受到全群最优微粒的影响。Niu在PSO算法中引入主—从子群模式,提出一种多种群协作PSO算法。Seo提出一种多组PSO算法(Multigrouped PSO),使用N组微粒来同时搜索多模问题的N个峰。Selleri使用多个独立的子群,在微粒速度的更新方程中添加了一些新项,分别使得微粒向子群历史最优位置运动,或者远离其他子群的重心。王俊年借鉴递阶编码的思想,构造出一种多种群协同进化PSO算法。高鹰借鉴生态学中环境和种群竞争的关系,提出一种基于种群密度的多种群PSO算法。
第二类方案是改进微粒学习对象的选取策略。Al-kazemi提出多阶段PSO算法,将微粒按不同阶段的临时搜索目标分组,这些临时目标允许微粒向着或背着它自己或全局最好位置移动。Ting对每个微粒的pBest进行操作,每一维从其他随机确定的维度学习,之后如果新的pBest更好则替换原pBest;该文还比较了多种不同学习方式对应的PSO算法的性能。Liang提出一种新颖的学习策略CLPSO,利用所有其他微粒的历史最优信息来更新微粒的速度;每个微粒可以向不同的微粒学习,并且微粒的每一维可以向不同的微粒学习。该策略能够保持群体的多样性,防止早熟收敛,可以提高PSO算法在多模问题上的性能;通过实验将该算法与其它几种PSO算法的变种进行比较,实验结果表明该算法在解决多模复杂问题时效果很好。Zhao在PSO算法中使用适应值最好的n个值来代替速度更新公式中的gBest。Abdelbar提出一种模糊度量,从而使得每个邻域中有多个适应值最好的微粒可以影响其它微粒。Wang也采用多个适应值最好的微粒信息来更新微粒速度,并提出一种模糊规则来自适应地确定参数。崔志华提出一种动态调整的改进PSO算法,在运行过程中动态调整极限位置,使得每个微粒的极限位置在其所经历的最好位置与整体最好位置所形成的动态圆中分布。与原始PSO算法相反,有一类方法是远离最差位置而非飞向最优位置。Yang提出在算法中记录最差位置而非最优位置,所有微粒都远离这些最差位置。与此类似,Leontitsis在微粒群算法中引入排斥子的概念,在使用个体最优位置和群体最优位置信息的同时,在算法中记录当前的个体最差位置和群体最差位置,并利用它们将微粒排斥到最优位置,从而让微粒群更快地到达最优位置。孟建良提出一种改进的PSO算法,在进化的初期,微粒以较大的概率向种群中其他微粒的个体最优学习;在进化后期,微粒以较大的概率向当前全局最优个体学习。Yang在PSO算法中引入轮盘选择技术来确定gBest,使得所有个体在进化早期都有机会引领搜索方向,从而避免早熟。
第三类方案是修改微粒更新公式。Hendtlass在速度更新方程中给每个微粒添加了记忆能力。He在速度更新方程中引入被动聚集机制。曾建潮通过对PSO算法的速度进化迭代方程进行修正,提出一种保证全局收敛的随机PSO算法。Zeng在PSO算法中引入加速度项,使得PSO算法从一个二阶随机系统变为一个三阶随机系统,并使用PID控制器来控制算法的演化。为了改进PSO算法的全局搜索能力,Ho提出一种新的微粒速度和位置更新公式,并引入寿命(Age)变量。
第四类方案是修改速度更新策略。Liu认为过于频繁的速度更新会弱化微粒的局部开采能力并减慢收敛,因此提出一种松弛速度更新(RVU)策略,仅当微粒使用原速度不能进一步提高适应值时才更新速度,并通过试验证明该策略可以大大减小计算量并加速收敛。罗建宏对同步模式和异步模式的PSO算法进行了对比研究,试验结果表明异步模式收敛速度显着提高,同时寻优效果更好。Yang在微粒的更新规则中引入感情心理模型。Liu采用一个最小速度阈值来控制微粒的速度,并使用一个模糊逻辑控制器来自适应地调节该最小速度阈值。张利彪提出了对PSO算法增加更新概率,对一定比例的微粒并不按照原更新公式更新,而是再次随机初始化。Dioan利用遗传算法(GA)来演化PSO算法的结构,即微粒群中各微粒更新的顺序和频率。
第五类方案是修改速度限制方法、位置限制方法和动态确定搜索空间。Stacey提出一种重新随机化速度的速度限制和一种重新随机化位置的位置限制。Liu在[76]的基础上,在PSO算法中引入动量因子,来将微粒位置限制在可行范围内。陈炳瑞提出一种根据微粒群的最佳适应值动态压缩微粒群的搜索空间与微粒群飞行速度范围的改进PSO算法。
第六类方案是通过将PSO算法与一些其他的搜索技术进行结合来提高PSO算法的性能,主要目的有二,其一是提高种群多样性,避免早熟;其二是提高算法局部搜索能力。这些混合算法包括将各种遗传算子如选择、交叉、变异引入PSO算法,来增加种群的多样性并提高逃离局部最小的能力。Krink通过解决微粒间的冲突和聚集来增强种群多样性,提出一种空间扩展PSO算法(Spatial ExtensionPSO,SEPSO);但是SEPSO算法的参数比较难以调节,为此Monson提出一种自适应调节参数的方法。用以提高种群多样性的其他方法或模型还包括“吸引—排斥”、捕食—被捕食模型、耗散模型、自组织模型、生命周期模型(LifeCycle model)、贝叶斯优化模型、避免冲突机制、拥挤回避(Crowd Avoidance)、层次化公平竞争(HFC)、外部记忆、梯度下降技术、线性搜索、单纯形法算子、爬山法、劳动分工、主成分分析技术、卡尔曼滤波、遗传算法、随机搜索算法、模拟退火、禁忌搜索、蚁群算法(ACO)、人工免疫算法、混沌算法、微分演化、遗传规划等。还有人将PSO算法在量子空间进行了扩展。Zhao将多主体系统(MAS)与PSO算法集成起来,提出MAPSO算法。Medasani借鉴概率C均值和概率论中的思想对PSO算法进行扩展,提出一种概率PSO算法,让算法分勘探和开发两个阶段运行。
第七类方案专门针对多模问题,希望能够找到多个较优解。为了能使PSO算法一次获得待优化问题的多个较优解,Parsopoulos使用了偏转(Deflection)、拉伸(Stretching)和排斥(Repulsion)等技术,通过防止微粒运动到之前已经发现的最小区域,来找到尽可能多的最小点。但是这种方法会在检测到的局部最优点两端产生一些新的局部最优点,可能会导致优化算法陷入这些局部最小点。为此,Jin提出一种新的函数变换形式,可以避免该缺点。基于类似思想,熊勇提出一种旋转曲面变换方法。
保持种群多样性最简单的方法,是在多样性过小的时候,重置某些微粒或整个微粒群。Lvbjerg在PSO算法中采用自组织临界性作为一种度量,来描述微粒群中微粒相互之间的接近程度,来确定是否需要重新初始化微粒的位置。Clerc提出了一种“Re-Hope”方法,当搜索空间变得相当小但是仍未找到解时(No-Hope),重置微粒群。Fu提出一种带C-Pg变异的PSO算法,微粒按照一定概率飞向扰动点而非Pg。赫然提出了一种自适应逃逸微粒群算法,限制微粒在搜索空间内的飞行速度并给出速度的自适应策略。
另一种变种是小生境PSO算法,同时使用多个子种群来定位和跟踪多个最优解。Brits还研究了一种通过调整适应值计算方式的方法来同时找到多个最优解。Li在PSO算法中引入适应值共享技术来求解多模问题。Zhang在PSO算法中采用顺序生境(SequentialNiching)技术。在小生境PSO算法的基础上,还可以使用向量点积运算来确定各个小生境中的候选解及其边界,并使该过程并行化,以获得更好的结果。但是,各种小生境PSO算法存在一个共同的问题,即需要确定一个小生境半径,且算法性能对该参数很敏感。为解决该问题,Bird提出一种自适应确定niching参数的方法。
Hendtlass在PSO算法中引入短程力的概念,并基于此提出一种WoSP算法,可以同时确定多个最优点。刘宇提出一种多模态PSO算法,用聚类算法对微粒进行聚类,动态地将种群划分成几个类,并且使用微粒所属类的最优微粒而非整个种群的最好微粒来更新微粒的速度,从而可以同时得到多个近似最优解。Li在PSO算法中引入物种的概念,但是由于其使用的物种间距是固定的,该方法只适用于均匀分布的多模问题;为此,Yuan对该算法进行扩展,采用多尺度搜索方法对物种间距加以自适应的调整。
此外,也有研究者将PSO算法的思想引入其他算法中,如将PSO算法中微粒的运动规则嵌入到进化规划中,用PSO算法中的运动规则来替代演化算法中交叉算子的功能。
I. pso的优化求解
PSO算法被广泛应用于各种优化问题,并且已经成为优化领域中的一个有效算法。除了普通函数优化之外,还包括如下方面。
混合整数非线性规划
很多求解整数规划的算法是在采用实数域的算法进行优化后,再将结果取整作为整数规划的近似解。这种做法常常导致不满足约束或远离最优解。谭瑛提出一种在整数空间中直接进行进化计算的PSO算法。刘钊针对混合整数非线性规划中可行解产生代价较高的问题,建立了保证都是合法解的备用微粒库,并提出微粒迁移策略,帮助微粒跳出局部最优。
噪声和动态环境
动态系统的状态会经常改变,甚至可能会连续变化。许多实际系统都会涉及到动态环境。例如,由于顾客的优先级、意外的设备维护等导致的变化,调度系统中大多数计算时间都被用来进行重新调度。在实际应用中,这些系统状态的变化就需要经常进行重新优化。
最初使用微粒群算法跟踪动态系统的工作由Carlisle提出,通过周期性地重置所有微粒的记忆来跟踪动态系统。Eberhart也采用类似想法;之后Hu提出一种自适应PSO算法,能够自动跟踪动态系统中的不同变化,并在抛物线benchmark函数上对不同的环境检测和响应技术进行了实验,其中使用的检测方法是监控种群中最优微粒的行为。后来Carlisle使用搜索空间中的一个随机点来确定环境是否发生变化,但是这需要集中控制,与PSO算法的分布式处理模型不符。为此Cui提出TDPSO算法,让最优历史位置的适应值随着时间减小,从而不再需要集中控制。Blackwell在微粒的更新公式中添加了一项惩罚项,来保持微粒处于一个扩展的群中,以应对快速变化的动态环境,该方法中不需要检测最优点是否发生变化。
Parsopoulos等的试验表明,基本PSO算法就可以有效而稳定地在噪声环境中工作,且在很多情况下,噪声的存在还可以帮助PSO算法避免陷入局部最优。Parsopoulos还通过试验研究了UPSO算法在动态环境中的性能。Pugh提出一种抗噪声的PSO算法。Pan将假设检验和最优计算预算分配(OCBA)技术引入微粒群算法,提出PSOOHT算法,来解决噪声环境下的函数优化问题。
上述工作的研究对象都是简单的动态系统,所采用的实验函数是简单的单模函数,并且所涉及的变化都是简单环境下的均匀变化(即固定步长)。而事实上,实际的动态系统经常是非线性的,并在复杂的多模搜索空间中非均匀变化。Li采用四个PSO模型,对一系列不同的动态环境进行了对比研究。
上述方法均是针对仅跟踪单个最优点的情况,
J. pso的并行算法
与大多数随机优化算法相似,当适应值评价函数的计算量比较大时,PSO算法的计算量会很大。为了解决该问题,研究者提出了并行PSO算法。与并行遗传算法类似,并行PSO算法也可以有三种并行群体模型:主从并行模型、岛屿群体模型和邻接模型。
Schutte采用同步实现方式,在计算完一代中所有点的适应值之后才进入下一代。这种并行方法虽然实现简单,但常常会导致并行效率很差。故而有人提出异步方式的并行算法,可以在对数值精度影响不大的条件下提高PSO算法的并行性能。这两种方式采用的都是主从并行模型,其中异步方式在求解上耦合性更高,更容易产生通信瓶颈。
Baskar提出一种两个子种群并行演化的并发PSO算法,其中一个子种群采用原始的PSO算法,另一个子种群采用基于适应值距离比的PSO算法(FDR-PSO);两个子种群之间频繁地进行信息交换。而El-Abd研究了在子种群中采用局部邻域版本的协作PSO算法,并研究了多种信息交换的方式及其对算法性能的影响。黄芳提出一种基于岛屿群体模型的并行PSO算法,并引入一种集中式迁移策略,提高了求解效率,同时改善了早收敛现象。
Li提出延迟交换信息的并行算法属于邻接模型,该算法可以提高速度,但可能使得解的质量变差。