人工蜂群算法分析与实现毕业论文.doc
《人工蜂群算法分析与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《人工蜂群算法分析与实现毕业论文.doc(21页珍藏版)》请在三一办公上搜索。
1、人工蜂群算法分析与实现 摘 要:在了解蜜蜂采蜜原理和蜂群优化算法的基础上,分析基本的人工蜂群算法,结合操作系统的相关知识,将求解智力题的过程转化为蜂群寻找最优蜜源的过程。针对智力题求解实例,用线程模拟不同角色的蜜蜂,模仿人工蜂群算法(ABCA)中各个蜜蜂并行地完成智力题求解。在VC+6.0环境中的仿真实验表明,该算法全局搜索能力强,运算效率比单线程的算法明显高出十余倍。关键词:人工蜂群算法;群体智能;组合优化1 绪论群集智能优化算法起源于研究者们对自然界的生物进化过程和觅食行为的模拟。它将搜索或者优化过程模拟为个体的觅食或者进化过程,使用搜索空间中的点模拟自然界中的个体;把求解问题的目标函数转
2、化成个体对环境的适应能力;将个体的优胜劣汰过程或觅食过程类比为在搜索和优化过程中用较好的可行解取代较差可行解的迭代过程,从而形成了一种以“生成+检验”特征的迭代搜索算法,是一种求解极值问题的仿生学自适应人工智能技术。1.1群体智能的产生针对自然界中一些社会性昆虫群体行为的不解,如蚂蚁和蜜蜂群体智能的来源,个体简单行为如何形成复杂的群体行为,成百上千的蜜蜂如何协调做出某个重要决定,是什么让一群鲱鱼在一瞬间改变行动方向,为什么蚂蚁数量会随着周围环境的变化而变化等群体行为,在过去的数十年里,研究人员有了一些有趣的发现。图1 蚂蚁群体斯坦福大学的生物学家黛博拉M戈登( Deborah M. Gordo
3、n)9博士在亚利桑那州沙漠对红蚁的观察和研究中发现,单个的蚂蚁并不聪明,聪明的是它们的群体。蚂蚁通过触觉和嗅觉互相交流信息,后再做出决策。对于下一步工作如何安排,则由整个蚁群决定,而不是某个特定的个体。这就是蚂蚁“群体智慧”的工作原理。它们遵循简单的经验法则,个体以局部信息为行动依据,没有一个蚂蚁能够通观全局,也没有一只蚂蚁知道其他蚂蚁在做什么。对于它们来说,复杂的行为是通过个体间简单的接触完成的,它们不需要带头者。就个体而言,蚂蚁微小得不堪一击,但是从群体来看,它们能够对不同的环境做出迅速而有效的反应,其“武器”就是群体智能。图2 蜜蜂群体康奈尔大学的生物学家托马斯西利( ThomasSee
4、ley) 9经过长期观察蜜蜂,发现在一个蜂房里的工蜂虽然多达50000之多,但它们依然能统一分歧,为蜂群谋得最大的利益。它们依据“集思广益”、“各抒己见”的法则做出决策,使用一种有效的机制使选择最小化。同时,西利把从蜜蜂身上学到的决策方法运用到一些会议上,模拟蜜蜂的决策,让与会者考虑所有的可能性,提出各自的想法或意见,然后通过投票决定。事实证明,几乎所有遵循蜜蜂法则的团体都能使自己变得更加聪明,例如股票市场的投资者们,从事研究的科学家们,甚至猜测罐中豆子数量的小孩们,如果他们是一个多样化的、有着各自独立见解的群体,并使用表决、求平均值之类的办法来获得决策,都可能成为聪明的群体。图3 鸽子群体克
5、雷格 雷诺兹( CraigReynolds)9对鸽子的群体行为研究,以及成功创建的计算机模拟程序,不仅展示了动物的自组织模式,同时也为机器人工程拓展了道路。一组能够协调工作的机器人就像鸟群一样,比单一的机器人聪明。如果机器人群体遭遇某些意外的情况,即使它们的智能化程度不是很高,也能较为迅速地做出反应并进行调整。如果群体中一个机器人出现故障,其他机器人会替代它的位置。而且群体机器人的控制权是分散的,不依赖某个特定的领袖。正如宾夕法尼亚大学机械工程学教授维嘉库马尔( Vijay Kumar)9 所说,在生物中有大批成员的群体极少有中心领导的情况。图4 鹿群由赫乌尔9对鹿群长达5个月的研究中可知,每
6、只驯鹿都知道其邻伴将要做什么,没有预见性,无因无果,一切就在瞬间发生了。尤其是鹿群遭遇狼时,就更显示出典型的群体智慧:驯鹿知道什么时候该跑,应该往哪个方向跑。整个过程中没有一头驯鹿去安排鹿群该往何处跑,它们仅仅遵循着数千年养成的简单的经验法则。华盛顿大学的生物学家丹尼尔格伦鲍姆(DanielGrnbaum)9对海洋中的鱼群研究,发现也有类似的行为。这就是动物群体智能的非凡魅力。不论是蚂蚁、蜜蜂、鸽子、驯鹿,还是鱼群,这些智能群体基于自身经验的简单法则,为人类提供了解决复杂问题的策略,群体智能也由此产生。因此,把群体智能(Swarm Intelligence)定义为:指由众多无智能的简单个体组成
7、群体,通过相互之间简单的合作,表现出智能行为的特性。自然界中的动物、昆虫,常以集体的力量进行觅食生存,单个个体所表现出的行为是缺乏智能的,但由个体组成的群体却表现出了一种有效的复杂的智能行为。群集智能可以在适当的进化机制引导下,通过个体间交互,以某种突现的形式发挥作用,这是个体以及可能的智能个体难以做到的。因此,可以将自然界中这些呈现群体行为特征的生物的行为,用简单的几条规则在计算机中建模,动物以群落形式生存觅食时一般遵循三个规则12:1) 分隔规则:尽量避免与临近的伙伴过于拥挤;2) 对准规则:尽量与临近的伙伴的平均方向保持一致,向目的地运动;3) 内聚规则:尽量地朝临近伙伴的中心移动。 以
8、上规则可归结为个体信息和群体信息两类,前者对应于分隔规则,也就是个体根据自身当前的状态进行决策;后者对应于对准规则和内聚规则,即个体根据群体的信息进行决策。另外,由于动物的行为一般具有适应性、盲目性、自治性和突现性以及并行性等特征,因此自组织性、突现性成为群集智能优化算法的两大基本特征。群居性的动物涌现出的群集智能正越来越受到人们的重视,一些启发于群居性生物的觅食、筑巢等行为而设计的优化算法吸引了大量的国内外学者的研究,成为解决传统结构优化问题的新方法。1.2 群体智能的现状丰富多彩而又纷繁复杂的自然界启迪了无数的科学发明,群体智能来源于科学家们对群体性生物的观察和研究。作为近年来发展迅速的人
9、工智能学科领域,利用群体智能解决各种问题的研究,越来越受到人们的重视。学者们通过研究分散的、自组织的动物群体和人类社会的智能行为,关注群居动物的社会习性,提出了许多迥异于传统思路的智能算法,例如:聚类算法、遗传算法、蚁群算法、粒子群算法以及鱼群算法等,很好地解决了不少原来非常棘手的复杂工程问题,在某些领域得到了广泛的运用。1.2.1主要的群体智能算法介绍(1)蚁群算法20世纪90年代初有意大利学者Dorigo ,Mahiezzo ,Colorni等人13受到人们对自然界中真实蚁群的群集智能行为的研究成果的启发提出来的一种新型的模拟进化算法,并称为蚁群系统(AS)。蚁群算法充分利用蚂蚁寻找食物的
10、过程与著名的旅行商问题(TSP)之间的相似性,通过模拟蚂蚁个体间的信息交流与相互协作,最终找到从蚁穴到食物源的最短路径来求解TSP问题。由于蚂蚁能适应环境的变化,诸如路上突然遇到障碍物,能快速重新找到最优路径;信息素不仅通过量反映路径被选择的概率,也随时间的推移逐渐挥发消失,因此,蚁群算法随后也在求解job-shop调度问题、指派问题等经典优化问题中取得了较好的效果,在求解离散优化问题中显示出优越性。然而,由于基本蚁群算法进化收敛速度慢,且易陷入局部最优或者出现停滞现象等缺陷,学者们也相继提出了各种改进的蚁群算法,具有代表性的主要有:1996 年Gambardella 和Dorig 提出了采用
11、伪随机选择机制对AS的蚂蚁选择策略进行改进的自适应蚁群算法(AAS);随后,Stutzle等人就信息素更新机制进行改进提出了最大最小蚁群算法(MMAS)。(2)鱼群算法由李晓磊、邵之江13等提出,算法中采用了自上而下的寻优模式魔法自然界的鱼群觅食行为,主要利用鱼的觅食、聚群和追尾行为,构造出了个体的底层行为;通过鱼群中各个体的局部寻优,实现全局最优值在群体中突现出来的目的。在基本的鱼群算法中引入鱼群的生存机制、竞争机制以及协调行为,能够提高算法的优化效率。李晓磊等据此采用分解协调的思想又构造了一种改进的人工鱼群算法,并以换热器系统为例,验证该算法,结果表明该算法具有较好的收敛性13。因此,人工
12、鱼群算法,是又一类基于群集智能的有效寻优模式。(3)粒子群算法受人工生命研究结果的启迪,粒子群算法( PSO) 的基本概念来源于对鸟群和鱼群捕食行为的简化社会模型的模拟,1995 年由Kenndy 和Eberhart 13等人提出。由于PSO 算法在函数优化等领域具有广泛的应用前景,因此PSO 算法自提出以来,引起了国际上相关领域众多学者的关注。目前国内外研究现状大致可分为三个方向:算法的改进、算法的分析和算法的应用13。在PSO 算法中,每个优化问题的解都是搜索空间中的一只鸟(粒子),解群相当于一个鸟群,鸟群从一地飞行到另一地相当于解群的进化,“好消息”相当于解群每代中的最优解,食物源相当于
13、全局最优解。PSO 算法中的每个粒子均视为解空间中的一个解。它根据自己的飞行经验与同伴的飞行经验来调整自己的飞行。每个粒子在飞行过程中所经过的最好位置,就是粒子本身找到的最优解,称为个体极值( Pbest);整个群体所经历过的最好位置,就是整个群体目前所找到的最优解,称为全局极值( Gbest)。每个粒子都是通过上述两个极值不断来更新自己,从而产生新一代的群体。在实际操作中,由优化问题所决定的适应度值(fitness),来评价粒子的“好坏”程度。每个粒子还有一个速度决定它们飞行的方向和距离,然后粒子就追随当前的最优粒子在解空间中搜索。群体智能算法经历了十多年的发展,逐渐凸现出其广泛的用途与强大
14、的生命力。它本身所固有的并行性特征,正是目前基于网络的海量信息的分布式处理所需要的有效解决方法。它的开放性使得各种优化方法可以互相补充、优化算法的性能,使算法在处理不同问题的时候具有较强的适应能力与灵活性,这些优点正是群体智能优化算法研究不断取得进步与发展的原因。作为一类新型的进化算法,群体智能算法的主要特点是利用群体搜索策略和群体之间的信息交换。这类算法对目标函数的形态没有特殊要求,特别适合用于传统方法解决不了的大规模复杂结构优化问题。1.2.2 存在的问题群体智能算法产生的灵感来源于自然界中生物群体的生活现象,没有成熟、严格的数学理论为指导,还有一些方面需要研究者去发展和完善13:算法模型
15、本身,算法的收敛性分析与证明以及如何提高解空间的搜索效率等算法的基本原理方面缺乏严格的数学理论基础;参数对算法性能影响太大,其选择和设置没有普遍适用的方法,往往依靠经验得出,这使得参数的设置对实际的问题依赖性过强;优化算法的思想来源于自然界,是模拟生物习性得到的计算方法。由于要解决的问题千差万别,在求解实际问题的时候已陷入固有的模拟框架,使得一些问题在采用这些算法时表现得无能为力。因此,群体智能优化算法的发展,首先要从生物群体的基本生命自然机理进行深入研究,结合严谨的数学推理,使得算法具有坚实可靠的理论基础,建立算法的一整套理论体系,使得算法在使用过程中有章可循。然后,突破传统的算法模型的束缚
16、,设计出新的更加智能化的算法模型。此外,还要深入研究群体智能优化算法之间以及群体智能优化算法与其它智能优化方法之间的互相结合,探讨一种或几种算法融和的统一机制,提高算法的性能,加深算法的应用研究,扩大其适用范围。综上所述,本文以“人工蜂群算法分析与实现”为题,将群体智能方法中的蜂群算法应用到智力题的求解中,采用多个线程模拟多只蜜蜂,多个线程并行运行,同时对不同的可能答案进行检测模拟多只采蜜蜂采蜜,并通过考虑所选智力题的特征和结合一些操作系统相关知识(进程、线程、信号量、互斥锁等)来设计算法模型,以提高程序的运行速度。在本文的算法中,通过在线程之间添加一些限制条件,使多个智能性不高的线程协作共同
17、完成了一项大任务。由此,可考虑把各个线程实现的功能分别转移到不同角色的机器人,让它们同时去做一些事情。比如:通过生命体征寻找地震受难者、通过面部特征识别追查逃案犯、根据化学特性查寻某些有毒的化学泄露处、通过红外检测救火、根据垃圾的某些特性实现机器人打扫卫生、垃圾分类等。因此,对蜂群算法应用的研究具有重要意义。1.3 本文工作本文在分析和掌握原有算法的基础上,结合操作系统方面的相关知识,将其应用到智力题的求解中,达到能够更加快速求解的目的。具体包括:(1)阅读文献,理清人工蜂群优化算法的基本原理和数学模型;(2)回顾操作系统中关于进程、线程、信号量、互斥锁方面的知识;(3)构造基于人工蜂群算法的
18、智力题求解模型,画出处理过程的基本流程图;(4)在VC+6.0环境中,实现算法,进行性能测试和比较。2人工蜂群算法蜂群算法(Bee Colony Algorithm)是建立在蜜蜂自组织模型和群体智能基础上提出的一种非数值优化计算方法.SeelyError! Reference source not found.于1995年第一个提出了蜂群的自组织模拟模型。在模型中,尽管每个社会阶层中的蜜蜂只完成单一任务,但蜜蜂相互间通过摇摆舞、气味等多种信息方式,使得整个蜂群能协同完成诸如构建蜂巢、收获花粉等多项任务。D.KarabogaError! Reference source not found.于2
19、005年成功地把蜂群算法应用在函数的数值优化问题上,提出了比较系统且新颖的群体智能优化算法ABCA算法(Artificial Bee Colony Algorithm,简称ABCA)Error! Reference source not found.,算法主要模拟了蜂群的智能采蜜行为,蜜蜂根据各自分工进行各自的采蜜活动,并且通过蜜源信息的共享和交流,从而找到问题的最优解。Basturk等人Error! Reference source not found.于2006年又进一步将人工蜂群算法理论应用到解决限制性数值优化的问题上,并取得了较好的测试效果。人工蜂群在寻优等方面具有收敛速度快、求解质量
20、高、鲁棒性好、通用性强等优点,但也可能有早熟收敛和后期容易陷入局部极值等不足。2.1 ABCA的描述在人工蜂群系统中,每一个备选解称之为食物源(food source),蜜蜂采蜜(寻找食物源)的过程即为搜寻最优解的过程。在算法中,食物源的价值由收益度(nectar amount)体现。蜜蜂的基本行为有:search(搜索食物源)、recruit(为食物源招募)和abandon(放弃食物源)。蜜蜂包含三种角色,即侦察蜂、引领蜂和采蜜蜂。采蜜蜂与正在采集的食物源相对应,食物源是采蜜蜂的引导目标。引领蜂与采蜜蜂分享信息,招募更多的采蜜蜂采集相应的食物源。信息的分享程度与食物源的收益度相关。侦察蜂随机
21、搜索蜂巢附近的新食物源,增强了算法跳出局部最优的能力。采蜜蜂由引领蜂处获得食物源的收益度信息。蜂群算法中的各种蜜蜂在舞蹈区交流信息,侦察蜂通过摇摆舞完成食物源信息的分享,引领蜂通过摇摆舞完成为食物源的招募工作。所有采蜜蜂都等候在舞蹈区,根据观察到的舞蹈选择相应的食物源采集。2.2 各种参数对算法结果的影响本小节重点分析摇摆舞算法和觅食算法中的参数,及其对ABCA的影响8。(1) 摇摆舞算法算例中的目标函数是最大完工期,令定义一个觅食蜂的收益率,计算公式为 (1)式(1)中,为觅食蜂对应调度的最大完工期。蜂群的平均收益率为 (2)式(2)中,为时刻摇尾舞的次数;为跳摇尾舞的觅食蜂 对应调度的最大
22、完工期。摇尾舞持续时间的计算公式为 (3)(2) 觅食算法觅食算法在蜂群中定义了一个觅食蜂群,这些觅食蜂迭代地构造出作业车间调度的解。觅食蜂在拓扑图中沿着节点之间的边行进,一次性地访遍图中从起点到终点所有的节点,由此得到的路径即代表了可行解。觅食蜂只能基于工序的优先权按照既定的可选节点清单选择下一节点,这样的移动准则表示为 (4)式(4)中,为路径从节点扩展至节点的概率;为节点和节点之间连边的等级数;为节点和节点之间的启发式距离。节点至节点之间有向边的等级数 (5)式(5)中,为偏好路径赋值,;为可选节点数;为偏好路径数,或0。由于首次觅食的觅食蜂的值等于0,则所有可选节点的赋值相同。3人工蜂
23、群算法的多线程并行实现技术在如今的信息社会,计算机需要处理的信息量越来越庞大,需要解决的问题越来越复杂,使得计算量暴增。通过提高单个处理器的计算速度和采用传统的“顺序(串行)”计算技术已难以胜任。因此,需要功能更加强大的计算机系统和高效计算技术来支撑,并行计算机和并行计算技术由此应运而生。加上第四代编程语言的出现,比如面向对象编程语言C+、JAVA等都提供了多线程技术,不仅可以使编程者在单处理机上模拟并行计算,还可以在多处理机上实现并行计算。3.1进程、线程与多线程进程、线程和多线程都是操作系统的概念。进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位,是应用程序的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工蜂群算法分析与实现 毕业论文 人工 蜂群 算法 分析 实现
链接地址:https://www.31ppt.com/p-3934590.html