基于计算机机群的并行人工蜂群算法求解复杂函数最值的方法

文档序号:6614867阅读:185来源:国知局
专利名称:基于计算机机群的并行人工蜂群算法求解复杂函数最值的方法
技术领域
本发明涉及一种基于计算机机群的并行人工蜂群算法求解复杂函数最值的方法, 属于计算机并行计算技术领域。
背景技术
随着我国经济实力的增强和信息技术的迅猛发展,计算机已经走入了千家万户。 由于我国人口众多,各个文化层次水平的人员参差不齐,对于千千万万的普通老百姓,基本上只是使用计算机上网,玩游戏,多媒体等等的基本功能,而使大量的计算机资源被闲置。 然而,与此同时,在高校,科研院所,企业等等产品研发基地和科研机构,却面临着巨大地计算资源短缺的情况。如何平衡这些计算资源的分配不均,成了摆在科学家和工程师们亟待解决的问题。为了解决这类的问题,提出了一种并行计算的方法。并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程。为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个与网络相连的计算机专有编号,或者两者结合使用。并行计算的主要目的是快速解决大型且复杂的计算问题。此外还包括利用非本地资源,节约成本,使用多个“廉价”计算资源取代大型计算机,同时克服单个计算机上存在的存储器限制。为了使并行计算技术成为现实,一个由美国Argonne国家实验室开发完成的MPICH软件由1994年出现,并成为了现在实现并行计算的代表性技术。Linux 是一个以网络为核心的支持多用户、多任务、多线程、多CPU的操作系统,是目前科学研究和大型企业普遍使用的操作系统之一。其在稳定性和可靠性方面的突出表现,使其被选做服务器的操作系统。基于以上的概念和软件,可以在Linux操作系统上实现多个普通计算机的并行计算,完成了对于计算机闲置资源的最大利用。人工蜂群算法Artificial Bee Colony Algorithm (ABCA)是一种群体智能模型算法,它由土耳其学者Karaboga在2005年提出,该算法是一种模拟蜜蜂群体寻找优良蜜源的仿生智能计算方法。算法模型具有很多优良的性能,如算法复杂度低,鲁棒性强,每次迭代都进行全局和局部搜索,从而在较大程度上避免了局部最优。基于其卓越的性能,常常被用来解决复杂的优化问题,当然也包括复杂函数最值的求解。正如 Department of Computer Science and Engineering, College of Engineering, Guindy, Anna University 的 Harikri shna Narasimhan,在论文ParalIel Artificial Bee ColonyAlgorithm (Nature&BiologicalIy Inspired Computing, 2009. NaBIC 2009. WorldCongress on, Page (s) :306-311)中,使用一台共用存储器结构的多核计算机,利用openMP软件实现了并行人工蜂群算法求解复杂函数最值的问题。但是在该问题中存在两个个严重的问题,第一是他们使用的这种多核计算机是一种比一般计算机更为先进和性能优秀的计算机设备,这中方法并不能够解决之前提到的那种利用普通用户闲置的计算机资源求解问题的效果,而是花费更大量的资金购买新的设备;第二,在设计并行的算法时,采用的共用存储器结构,这种结构就限定了算法只能在同一个计算机,共用同一个存储器的时候才能够进行,不能将计算资源分配到不同的计算机上。基于上面存在的两个问5题,我们设计提出了使用MPI这种消息传递方式进行并行人工蜂群算法求解函数最优解问题的方法,有效地解决了上面存在的两个问题,并且在实质上提高了算法求解复杂函数最值的效率和精确度。发明内容
为了克服现有技术的缺陷和不足,以解决普通串行算法在求解复杂最优化问题时,计算时间太长、计算精度不高的问题,本发明提出了一种基于并行人工蜂群算法求解复杂函数最值的方法。
本发明的技术方案是采用如下方式来实现的。
一种基于并行人工蜂群算法求解复杂函数最值的方法,包括多台参与计算的计算机,每台计算机上安装Linux操作系统和相关的MPICH软件,将每根网线的一端插入计算机的网口,另一端接入同一个局域网的路由器上中,并配置Linux的SSH使各个计算机相互之间能够不需要密码的访问,并选择其中一台计算机为主控计算机,负责数据和任务的收集与分发、计算结果的显示这些辅助工作,同时它也作为一个计算节点参与计算,其余的计算机均只负责计算功能;通过上述完成了并行计算的硬件连接和软件的配置;在设计人工蜂群算法时,将计算的参数均匀的分配到每个参与计算的计算机上,并根据MPI软件包提供的通信接口函数在程序运行的适当时间进行必要参数的通信与交流,该方法步骤如下
I)人工蜂群初始化在主控计算机上中,对所需要的参数,包括算法中的种群数量、迭代次数、算法中的采蜜蜂机制在同一位置的最大搜索次数、不同计算机之间在运算过程中需要通信的次数进行设置,对要求解的函数问题进行数学公式的描述;
2 ) MPI并行计算环境的初始化;调用MPI配置并行环境的函数,包括MPI_ Init, MPI_Comm_size, MPI_Comm_rank, MPI_Get_processor_name, MPI_Finalize 进行并行环境的设置和计算机名,计算机编号,计算机总数这些必要参数的读取;
3)主控计算机根据上述配置的情况,计算每个作为计算节点的计算机的参数,包括每个节点计算机上的种群数量,迭代次数,何时进行通信,并将这些参数通过MPI的广播函数MPI_Bcast广播到每个节点计算机,必要的计算方法和公式表示如下
权利要求
1.一种基于并行人工蜂群算法求解复杂函数最值的方法,包括多台参与计算的计算机,每台计算机上安装Linux操作系统和相关的MPICH软件,将每根网线的一端插入计算机的网口,另一端接入同一个局域网的路由器上中,并配置Linux的SSH使各个计算机相互之间能够不需要密码的访问,并选择其中一台计算机为主控计算机,负责数据和任务的收集与分发、计算结果的显示这些辅助工作,同时它也作为一个计算节点参与计算,其余的计算机均只负责计算功能;通过上述完成了并行计算的硬件连接和软件的配置;在设计人工蜂群算法时,将计算的参数均匀的分配到每个参与计算的计算机上,并根据MPI软件包提供的通信接口函数在程序运行的适当时间进行必要参数的通信与交流,该方法步骤如下 O人工蜂群初始化在主控计算机上中,对所需要的参数,包括算法中的种群数量、迭代次数、算法中的采蜜蜂机制在同一位置的最大搜索次数、不同计算机之间在运算过程中需要通信的次数进行设置,对要求解的函数问题进行数学公式的描述; 2)MPI并行计算环境的初始化;调用MPI配置并行环境的函数,包括MPI_Init, MPI_Comm_size, MPI_Comm_rank, MPI_Get_processor_name, MPI_Finalize 进行并行环境的设置和计算机名,计算机编号,计算机总数这些必要参数的读取; 3)主控计算机根据上述配置的情况,计算每个作为计算节点的计算机的参数,包括每个节点计算机上的种群数量,迭代次数,何时进行通信,并将这些参数通过MPI的广播函数MPI_Bcast广播到每个节点计算机,必要的计算方法和公式表示如下 、"/_,S7V=~^~[I]_ /min ,ioial iteraiion sub _ Ueraiion --=--2 ~coimini _ hum 其中公式I中sub_SN表示每个计算机分配到的种群数量,SN表示在主控计算机上设置的种群总数,num是参与计算的计算机的总数;由此可以看出,对每个计算机种群的分配是采用的平均分配的原则;公式2表示每台计算机上完成每次通信前算法要进行的迭代次数,在完成了这个指定次数的迭代后,各个计算机之间进行通信,交流信息,其中sub-iteration表示每个计算机的迭代次数,total_iteration表示在主控计算机上设置的迭代次数,Comuni_num主控计算机设置的不同计算机之间在运算过程中需要通信的次数;由此可以看出,每个计算机是在每次完成了固定迭代次数后进行通信; 4)每个计算机接收主控计算机分配的数据并保存; 5)每个计算机在各自的机器上,根据所要生成的可行性解的范围初始化自己的随机解,计算其适应度函数,找出适应度函数的最大值、最小值及其在人工蜂群算法记录可行性解的这个矩阵变量中对应的位置,同时将适应度函数最大的可行性解更新到每个计算机自己的种群用来记录全局最优解的变量中,其中最优解是指使某个待求解的数学问题达到最优值即最大值或最小值时的任一可行解,全局最优解记录的是从这个计算机程序运行开始,到目前为止得到的适应度函数最大的可行解;以计算函数最小值为例,给出计算适应度函数的表达式描述如下 \ valuevalue < O fiincss - <! ]r Qi-,value >=0ν λyalue^X其中value表示的是函数值,fitness表示的是适应度函数值,由此可以保证函数值越小,适应度函数越大; 6)每个计算机独自进行人工蜂群算法的采蜜蜂模式,采蜜蜂模式是指一个采蜜蜂,根据其现在的可行解在限定的邻域内进行搜索并产生新的可行解,测试新产生的可行解的适应度函数值,它的数学表达由下式给出, V/=X^+A(Xf-Xi)4
上式中P表示的是新的可行解,I/表示的是现有的可行解,i第i个可行解,j表示第i个可行解的第j个参数,λ是一个随机数,并有λ e [_1,1],1^表示第1^个可行解,并且有k# i,由此看出,采蜜蜂所采用的在限定的邻域内进行搜索,是对这个可行解中随机选出的一个参数,根据与别的可行解中的数据进行运算得到的;如果新的可行解的适应度函数比其现有的适应度函数高,则由贪婪准则,用新的可行解值覆盖现有的可行解,并将步骤O中提到的记录算法中的采蜜蜂机制在同一位置的最大搜索次数这个变量设置为O,如果新的可行解的适应度函数的值小于等于现有的适应度函数的值,那么步骤I)中提到的记录算法中的采蜜蜂机制在同一位置的最大搜索次数这个变量加1,现有的可行解不变; 7)每个计算机进行人工蜂群算法的概率计算模式,选用的概率选择数学模型由下式给出,
全文摘要
基于计算机机群的并行人工蜂群算法求解复杂函数最值的方法,属于计算机并行计算技术领域。该方法在Linux操作系统下,结合MPI软件包,实现了在多台计算机上通过并行人工蜂群算法求解复杂函数最值的问题,实验结果表明,在求解复杂函数的最值时,并行人工蜂群算法可以比普通的串行算法具有更高的准确性和更快的速度,极大地提高了计算函数最值的效率。
文档编号G06F9/38GK102982008SQ20121043199
公开日2013年3月20日 申请日期2012年11月1日 优先权日2012年11月1日
发明者江铭炎, 徐昆, 袁东风, 贲晛烨 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1