爱玩科技网
您的当前位置:首页微粒群算法的可视化平台开发研究

微粒群算法的可视化平台开发研究

来源:爱玩科技网
第30卷第1期 2 0 1 1年3月 计算技术与 自 动化 Vo1.30.No.1 Mar.2 O 1 1 Computing Technology and Automation 文章编号:10o3—6199【2011)Ol一0008--04 微粒群算法的可视化平台开发研究 陈国平 ,赵文杰 ,江 维 (1.武汉工程大学电气信息学院,湖北武汉430074I 2.湖北工业大学商贸学院电信系,湖北武汉430079) 摘 要:微粒群算法是近年来兴起的一种智能优化算法,微粒群算法的研究如果仅仅只停留在枯燥的 公式和乏味的理论推导分析上的话,常常会使研究人员和用户不能正确的理解微粒群算法,基于此本文提 出微粒群算法的可视化实现问题,即开发友好可视化的前台界面,通过前台上的控件和后台程序中参数之 间的数据交换来解决优化问题,这样可大大缩短了算法的开发周期。 关键词:微粒群算法;可视化平台;开发周期 中图分类号:TP3O1 文献标识码:A The Research of PSO Visualization Platform Development CHEN Guo—ping ,ZHAO Wen-jie ,JIANG Wei。 (1.SchooI of Electronic and information Engineering,Wuhan Institute of Technology,Wuhan,430074,China; 2.Telecommunications department business college of HBUT,Wuhan,430079,China) Abstract:In recent years,particle swarm optimization is a kind of intelligent optimization algorithms,The research of PSO is boring and tedious if it stays only in formula and theoretical derivation researchers and users often can not make a proper understanding of particle swarm algorithm,Based on the above the paper proposed the visualization issues of PSO, namely.the prospects of development-friendly visua1 interface的control the front and back--stage process of data exchange between the parameters tO solve the optimization problem,SO the algorithm can greatly shorten the development cycle. Key words:Particle Swarm Optimization(PSO);visualization platform;development cycle 1 引 言 微粒群算法(Particle Swarm Optimization简称 避免重新设置参数需要打开PSO算法的源代码的 不便,总之就是开发友好可视化的前台界面,而将复 杂的代码放到后台,通过前台上的控件和后台程序 中参数之间的数据交换,这样可大大缩短了算法的 PSO)是由美国社会心理学家Kennedy和电气工程 学家Eberhart等受鸟群觅食的启发于1995年提出 的一种进化技术[1]。PSO算法的研究如果仅仅只停 留在枯燥的公式和乏味的理论推导分析上的话,常 常会使研究人员和用户不能正确的理解PSO算法, 开发周期,这些就是PSO算法可视化实现研究的内 容。因此微粒群算法的可视化开发平台研究是非常 有必要和有意义的。 甚至对该算法产生厌烦的情绪,从而在一定程度上 了PSO算法的应用。基于此本文提出了PsO 算法的可视化实现问题,如果研究人员和用户看到 的是一个友好的可视化界面而不是复杂的公式、代 2微粒群算法的基本原理 微粒群算法将每个个体看作是在N维搜索空 间中的一个没有重量和体积的微粒,并在搜索空间 中以一定的速度飞行,该飞行速度由个体的飞行经 验和群体的飞行经验进行动态调整,其调整方程[2] 为(1)(2)两式,直到达到最优为止。 码,用户只需在界面上设置或输入相关参数,点击确 定按钮就可以得到优化结果和收敛曲线,从而可以 收稿日期:2010—12--27 作者简介:陈国平(1958一),男,江苏无锡人,副教授,研究方向:先进控制技术及工业应用(E—mail:jiangweiwit@126.com)l赵文杰 (1985一),男,湖北仙桃人,硕士研究生,研究方向t控制理论与控制工程。 ● 第3O卷第1期 陈国平等:微粒群算法的可视化平台开发研究 V (£+1)=∞ (£)+clrl(t)(pij(t)一 X ( ))+c2r2( )( gJ(£)一X ( )) (1) X (£+1)=X (£)+ (£+1) (2) 从而可以进一步提高算法程序实现的效率。 4微粒群算法的可视化实现问题 所谓PSO算法的可视化实现就是指在图形用 户界面GUI(Graphic User Interface)平台下利用 其中:下标“ ”表示微粒的第.『维,“ ”表示微 粒 ,t表示第t代。P 为微粒i所经历的最好位 置,p 为群体中所有微粒所经历过的最好位置,∞ 为惯性权重,c1,c2为加速常数通常在0~2之间 取值,rl~U(O,1),r2~ (O,1)为两个相互 的随机函数。 PSO算法来解决优化问题。其本质是将复杂的 PSO算法程序放在后台,而通过前台友好可视化 界面上的控件实现用户和后台程序的交互连接,来 解决复杂的优化问题。虽然PSO算法理论上是可 3微粒群算法的程序实现问题 以由MATLAB程序实现的,但对于较复杂的优化 问题以及一些对优化性能要求较高的场合,算法程 PSO算法的程序实现问题主要可分为两个环 序实现是很复杂和困难的。人工神经网络和遗传 节,第一环节为PSO算法的程序实现即主程序的 算法也是如此,存在类似的一些缺点,为此MAT— 实现,为了便于识别在MATLAB中一般可保存为 LAB软件针对这些问题自带有神经网络工具 main.m文件,第二环节为优化对象的程序实现或 (NNTOOL)即神经网络GUI开发平台,对于 者叫适应度函数,在MATLAB中一般可保存为 MATLAB7.0以上版本也都自带有遗传算法工具 fitness.m文件,将main.m、fitness.m保存在同一 箱(GATOOL),它们提供图形化用户界面,用户只 文件夹里面,当运行main.m文件时MATLAB会 需要在MATLAB命令窗口输入NNTOOL和 自动调用fitness.m文件,这里也类似于C语言的 GATOOL命令或通过其它方式就都可以打开工 调用,当需要改变优化对象时只需要对fitness.m 具箱,用户只需要在图形用户界面对话框上进行相 文件进行修改,而保持main.m文件不变,当用户 关操作比在编辑框中输人参数,在组合框中选择算 对PSO算法对于优化对象的优化结果不满意时, 法种类等,并结合M程序和命令窗口一共三个方 可保持fitness.m文件不变,对main.m文件进行 面就可以比较方便和简洁的解决一些较复杂的优 修改主要包括初始化参数的修改,如果在修改初始 化问题,从而可以避免繁琐的编程。然而对于 化参数仍然不能达到设定的优化性能的情况下可 PSO算法MATLAB不提供图形用户界面,要解 考虑进行算法的改进,这样就变的越来越复杂了。 决这个问题只有通过上面两个工具箱的启示,模仿 将PSO算法的程序实现分为主程序和适应度程序 神经网络和遗传算法工具箱,自己编写一个PSO 两个部分,各部分在整个优化过程中起不同的作 算法适用的可视化开发工具。当前主流的可视化 用,在修改程序时可以根据要求的不同分开进行, 开发工具有Visual C++、Visual Basic等,“非主 图1基于MFC的PSO算法可视化开发平台界面 计算技术与自动化 2011年3月 流”的可视化开发工具有MATLAB、Delphi6.0、 选择被优化函数和所使用的算法,点击确定就可以 得到优化结果和收敛曲线,这样大大减小了编程带 来的麻烦,提高了工程项目开发的效率。 LABVIEW7.2等本章将用主流和非主流的方法 对PSO可视化开发问题做了一些初步探讨。图1 即为在Visual C++6.0环境下所设计的一个简 为进一步完善PSO算法的可视化平台使其在 适用范围和优化性能等方面更趋合理和实用,本文 在VC++6.0环境下设计了微粒群算法性能测试 平台包括主界面和子界面如图2和图3所示。 易PSO算法开发平台的主界面,其右侧为设置参 数和优化对象区域,算法可供选择、优化函数也可 以选择,左侧空白区域用于绘制PSO算法在求解 优化问题时的收敛曲线。用户只需设置参数的值, 图2 微粒群算法可视化开发平台主界面 图3微粒群算法可视化开发平台计算模块 此外在MATLAB环境下如果PSO算法和适应 度函数已通过M语言实现,那么此时就已经完成了 常规的优化仿真,在PSO算法可视化平台开发时,只 需要将这段M程序添加到确定按钮的回调函数[3] (CALLBACK)里面,此时算法参数不再是以定值的形 取的,仿真完成后结果送编辑框显示出来并绘制收敛 曲线就完成了一个简单的 0可视化平台如图4所 示,用户可以通过在编辑框中输入相关参数,点击开 始仿真按钮就可以得到优化结果和收敛曲线,从而避 免了重新设置参数需要打开PSO算法的源代码,大 大缩短了算法的工程开发周期。 式固化后台界面后台,而是可以通过编辑框的输入获 第30卷第1期 陈国平等:微粒群算法的可视化平台开发研究 5 几种微粒群算法可视化平台开发方案 是用于优化的,而M灯LAB具有强大的数学处理能 的比较 力适合处理各类优化问题,对比MATLAB代码和C 语言代码MATLAB代码效率更高,并且M舡LAB 综上所述除了Visual C++6.0 MFC环境 GLⅡ编程产生的 图片文件和M程序文件通过一 外,VB6.0、Delphi6.0、MATLAB、LABVIEW7.2 些整合和处理还是可以转变为一个后缀名为EXE的 等软件也可以进行可视化编程。通过实验可知在 可执行程序的[4],只是MATLAB不能直接产生这个 Visual C++6.0、VB6.0、Delphi6.0、LAB— 可执行的程序而已,这样一来也可以弥补M灯 VIEWA7.2等几种开发环境下其绘图功能和数据 界面编程移植性能不好的一个缺点,综上对比选择 处理能力上远远不如MATLAB软件强大,因此利 MATLAB界面编程,或者采取MATI AB、VC++混 用MATLAB GUIDE(GUI Builder)来开发PSO 合编程充分发挥二者的优势开发PSO算法的可视化 算法的可视化平台也有其独到的优势,直接在命令 开发平台更加优越。 窗口输入GUIDE命令即可打开MATLAB GUI 设计窗口,在这上面操作简单快捷。 6结论及展望 利用Delphi6.0、VB6.0、VCA.0编程或MAT- 本文所设计的PSO算法可视化平台取得了较 7.0 G1Ⅲ)E界面编程等都可以用来设计PSO算 好的优化效果,然而对于PSO算法可视化开发平 法的可视化开发平台,但在设计过程中各自还是都存 台的研究还需进一步的完善,比如优化函数只能选 在一些优缺点。比如Visual C++6.0编程编译最终 取有限的几种,算法的选择也很有限,此外微粒的 产生是一个后缀名为EXE的可执行程序,将这个 维数在图4中可视化工具开发时就已限定为2,因 EXE的可执行程序复制或转移到装有VC的PC机的 此在应用上PSO可视化开发平台还是会受到很大 任意地方都可以直接双击该应用程序直接使用,可移 的。今后可视化平台的研究重点应该是如何 植性强,这是MFC编程的一个最大的优势。而 增加改进算法的种类,如何自己定义优化函数,如 M觚AB7.0 GUI编程最终编译运行产生并不是一 何使参数的设置变得更加灵活化,让可视化开发平 个可执行的文件,而必须运行编译通过后缀为 g的 台更具一般性即实用性更强等方面。 图片文件或对应的M程序文件才可以得到所开发的 可视化界面,即通过MAT 开发的可视化界面不 参考文献 具备良好移植性能,要使用可视化平台首先必须打开 开发软件MATLAB,而通过MFC开发的可视化平台 [1]蔡自兴.人工智能及其应用[M3.北京t清华大学出版社.2006. 在使用时不需要打开VC,它脱离开发环境,这样就显 [2]曾建潮,介婧,崔志华.微粒群算法[M].北京:科学出版社, 2004. 得非常方便。但是众所周知MATLAB具有强大的绘 [3]罗华飞.MATLAB GUI设计学习手记[M].北京 北京航空 航天大学出版社,2009. 图功能,且操作简单,这些都会给实际工程开发提供 [4]王素立,高洁,孙新德.MATLAB混合编程与工程应用[M]. 北京t清华大学出版社,2008. 很大方便并节约工程开发时间,且PSO算法本来就 

因篇幅问题不能全部显示,请点此查看更多更全内容