java基于蚁群算法路由选择可视化动态模拟(论文+开题报告+翻译+任务书+外文翻译)

次浏览 分类:JAVA

马上定制毕业设计: 淘宝旺旺咨询 QQ咨询

    java基于蚁群算法路由选择可视化动态模拟(论文+开题报告+翻译+任务书+外文翻译)

    路由选择是一种基于网络层的协议,而所有流行的网络层路由选择协议都是基于以下两种典型的分布式算法之一:距离向量路由算法和链路状态路由算法。组合优化问题是人们在工程技术、科学研究和经济管理等众多领域经常遇到的问题,其中许多问题如旅行商问题、0-1背包问题、图着色问题、装箱问题等,都被证明为NP-困难问题。用确定性的优化算法求NP完全问题的最优解,其计算时间使人难以忍受或因问题的高难度而使其计算时间随问题规模的增加以指数速度延长。用近似算法如启发式算法求解得到的近似解不能保证其可行性和最优性,甚至无法知道所得解同最优解的近似程度。因而在求解大规模组合优化问题时,传统的优化算法就显得无能为力了。在过去的10多年,蚁群算法(ACO)的研究和应用取得了很大的进展,大量结果证明了算法的有效性和在某些领域的优势。蚁群算法是一种新型的模拟进化算法, 研究表明该算法具有并行性, 鲁棒性等优良性质。本文阐述了蚁群算法的原理,详细的说明了蚂蚁算法中各个功能模块,并介绍了该算法在理论和实际问题中的应用, 并对其前景进行了展望。

    关键词: 蚁群算法  信息素   仿真

    蚁群算法是一种新生的算法,具有很强的通用性。从提出到现在,仅短短10余年的时间,但是在离散型组合优化问题中。表现很突出,所以一起人们的关注。目前蚁群算法的研究者主要集中在比利时、意大利、德国等国家,美国和日本在近几年也开始了对蚁群算法的研究。国内的研究开始于1998年末。主要在上海、北京、东北少数几个学校和研究所开展了此项工作,主要围绕TSP及相关问题的实验仿真,少数涉及通信网络的路由选择、负载平衡、电力系统的故障检测以及蚁群算法在连续系统应用,如函数逼近等方面应用的尝试。在国外,蚁群算法已经在集成电路布线、网络路由选择、机器人线路规划等方面得到了应用。自1998年,第一届蚂蚁优化国际研讨会召开以来,已经是第三届了,大大推动了蚁群算法的发展。蚁群算法已经引起越来越多的关注,尽管还缺乏完善的理论分析,对它的有效性也没有出严格的数学解释,但是回顾模糊控制的发展历史,理论的不完善并不妨碍应用,有时应用是超前于理论的,并推动理论的研究。我们相信蚁群算法必将得到广泛的应用。

    路由(Route) 的概念出现于本世纪70 年代,当时的网络结构较简单,因此直至80 年代中期出现了大规模的网络结构后,路由技术才得到了广泛的应用。在ISO/ OSI 体系结构中,路由技术是第三层(网络层) 的功能,路由选择(Routing)是分组交换系统中的一个重要概念,是指在互联网络中选择将信包(Package) 从信源机(Source Host) 传往信宿机(Destination Host) 的传输路径的过程。实际的网络协议(如IP协议) ,其本身并不涉及具体的路由选择细节,它只说明路由选择的一般原理和规则,具体的路由选择是指路由表的建立与刷新机制,由一组独立的路由选择协议(RoutingProtocol) 描述。路由选择的过程是由路由算法来完成的,路由算法可以运行在网络主机上,也可运行在专用的路由设备上,如路由器是一种网络互联设备,其主要功能就是进行路由选择。

    路由算法往往具有下列一种或多种目标: 最佳性、简单性、稳定性、快速收敛性及适应性等目标。

    (1) 最佳性目标 要求算法具有寻找最佳路径的能力,最佳路径依赖于算法所采用的衡量标准。通常路由选择协议严格定义了计算时所采用的衡量标准。

    (2) 简单性目标 要求算法尽可能简单,即用尽可能小的软件开销提供有效的功能。当算法运行在低档设备上时效率尤为重要。

    (3) 稳定性目标 算法必须是稳定可靠的。在遇到特殊情况(如硬件故障、过载、误操作等) 时,算法能够稳定地运行。由于路由器位于互联网络的连接点上, 有着相当重要的地位, 若算法不稳定将造成严重的后果。优秀的路由算法经得起时间的检验并且在任何情况下都能稳定地工作。

    (4) 快速收敛性目标 路由算法要求能够快速收敛。这里所指的收敛是指最佳路径能迅速被网上所有路由器所接受。若发生网络故障导致线路断开或恢复, 相应路由器向网络发出路由刷新报文,促使其它路由器重新计算最佳路径,更新路由表,同时又向网络发送刷新报文,直至所有路由器都相互认可这些最佳路径。收敛慢的算法将导致路由环问题及网络损耗。   

    (5) 适应性目标 路由算法必须具有较强的适应能力,即能够迅速准确地适应各种网络环境的变化。例如,如果发现某一网段出现故障,能迅速为所有经过该网段的路径选择另一条最佳路径。另外,还必须能适应网络带宽、路由器队列大小、网络延迟或其它变化。

    路由算法的分类 

    (1) 静态或动态路由算法 静态路由是由管理员在路由使用前建立的,只有管理员才能对路由表进行修改。静态路由算法的设计简单,在可预知网络的通信量且网络结构简单的情况下使用静态路由算法。静态路由算法不能适应网络情况的变化,因此不适用于目前的大规模及变化频繁的网络结构, 90 年代占主导地位的路由算法是动态路由算法。动态路由算法通过分析路由刷新报文,能够进行实时调整以适应网络的变化。当网络发生变化时,根据路由刷新信息, 路由软件重新计算最佳路径并将变化信息向网络上发送。这些信息在网络上使得网络上的其它路由器也相应运行路由算法刷新其路由表。

    (2) 单重路径或多重路径算法 单重路径算法对同一信宿机提供一条最佳路径,多重路径算法对同一信宿机提供多条路径以供选择,允许在复杂的线路上进行多重通信。多重路径算法不仅提高了通信量而且提高了通信的可靠性。

    (3) 单层或多层结构算法 单层结构中,网络上所有的路由器是对等的,而在多层结构中,存在主干路由器与分支路由器。信包从分支路由器转发至主干路由器,再传送至信宿机所在区域的主干路由器,再从这一位置通过一个或多个分支路由器最终到达信宿机。 路由系统将一组逻辑节点称为域或自治系统。在层次结构中,有些路由器只能在自治系统内相互通信,位于自治系统顶层的路由器可与其它自治系统的顶层路由器进行通信。层次结构的主要优点在于模仿了公司的组织结构,因为网络的大部分通信量存在于分公司内部(自治系统) ,自治系统内的路由器只需清楚系统内其它路由器的情况。因此系统内的路由算法可进行简化,相应减少了路由刷新时产生的通信量。

    (4) 向量- 距离算法或链接- 状态算法 这两种算法是两类基本的自动路径广播算法,在此基础上相应有多种协议,典型的有GGP 和SPF 协议。

    路由算法衡量的标准

    路由信息表中包含了交换所需的如何确定最佳路径的要求, 即确定最佳路径的标准, 路由算法根据这些标准进行计算。复杂的算法往往综合多种标准,常用的衡量标准有:

    (1) 路径长度 路径长度是使用最普遍的标准,一些协议许可网络管理员对网络的线路赋予一定的代价值,在此类情况下,最佳路径就是所经过的每条线路的代价总和。有些协议定义驿站数量为标准,即路径上所经过的网络设备(如路由器) 的数量。

    (2) 可靠性 在路由算法中, 可靠性是指每个网络连接的可靠性, 通常用每位的错误率表示。有些网络连接可能经常发生故障,而发生故障时,有些网络连接能很快或很容易恢复。可靠性可通过对网络连接赋予相应的数值来确定。

    (3) 延迟 延迟是指将信包从信源机发送到信宿机所经过的时间,延迟受很多因素影响, 例如: 网络带宽、路由器端口队列数量、网络负荷以及实际传输的距离等。

    (4) 带宽 带宽是指网络连接的通信能力,虽然带宽代表了网络连接所能达到的最高的通信速率,但往往宽带连接意味着网络更繁忙, 传送一个信包所需要实际时间可能更长, 因此宽带连接并不一定能提供更好的路由能力。

    (5) 负载 负载是指网络设备(如路由器) 的繁忙程度。负载有多种计算方式, 如CPU利用率、每秒处理的信包数量等, 对这些参数的监控过程本身也是网络的一种负载。

    蚂蚁算法的产生

    蚂蚁是自然界中常见的一种生物,人们对蚂蚁的关注大都是因为“蚂蚁搬家,天要下雨”之类的民谚。然而随着近代仿生学的发展,这种似乎微不足道的小东西越来越多地受到学者们的关注。1991年M•Dorigo等人首先提出了蚁群算法(Ant Colony Algorithms)。人们开始了对蚁群的研究:相对弱小,功能并不强大的个体是如何完成复杂的工作的(如寻找到食物的最佳路径并返回等)。在此基础上一种很好的优化算法逐渐发展起来。

    蚂蚁算法的算法思想

    蚁群算法是受到对真实的蚁群行为的研究的启发而提出的.为了说明人工蚁群系统的原理,先从蚁群搜索食物的过程谈起.象蚂蚁、蜜蜂、飞蛾等群居昆虫,虽然单个昆虫的行为极其简单,但由单个简单的个体所组成的群体却表现出极其复杂的行为,原因是什么呢?仿生学家经过大量细致观察研究发现,蚂蚁个体之间是通过一种称之为外激素(pheromone)的物质进行信息传递的.蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且蚂蚁在运动过程中能够感知这种物质,并以此指导自己的运动方向,因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大.蚂蚁个体之间就是通过这种信息的交流达到搜索食物的目的。蚂蚁个体之间的信息交换是一个正反馈过程。 说了这么多,蚂蚁究竟是怎么找到食物的呢?    

    在没有蚂蚁找到食物的时候,环境没有有用的信息素,那么蚂蚁为什么会相对有效的找到食物呢?这要归功于蚂蚁的移动规则,尤其是在没有信息素时候的移动规则。首先,它要能尽量保持某种惯性,这样使得蚂蚁尽量向前方移动(开始,这个前方是随机固定的一个方向),而不是原地无谓的打转或者震动;其次,蚂蚁要有一定的随机性,虽然有了固定的方向,但它也不能像粒子一样直线运动下去,而是有一个随机的干扰。这样就使得蚂蚁运动起来具有了一定的目的性,尽量保持原来的方向,但又有新的试探,尤其当碰到障碍物的时候它会立即改变方向,这可以看成一种选择的过程,也就是环境的障碍物让蚂蚁的某个方向正确,而其他方向则不对。这就解释了为什么单个蚂蚁在复杂的诸如迷宫的地图中仍然能找到隐蔽得很好的食物。    

    当然,在有一只蚂蚁找到了食物的时候,其他蚂蚁会沿着信息素很快找到食物的。    

    蚂蚁如何找到最短路径的?这一是要归功于信息素,另外要归功于环境,具体说是计算机时钟。信息素多的地方显然经过这里的蚂蚁会多,因而会有更多的蚂蚁聚集过来。假设有两条路从窝通向食物,开始的时候,走这两条路的蚂蚁数量同样多(或者较长的路上蚂蚁多,这也无关紧要)。当蚂蚁沿着一条路到达终点以后会马上返回来,这样,短的路蚂蚁来回一次的时间就短,这也意味着重复的频率就快,因而在单位时间里走过的蚂蚁数目就多,洒下的信息素自然也会多,自然会有更多的蚂蚁被吸引过来,从而洒下更多的信息素……;而长的路正相反,因此,越来越多地蚂蚁聚集到较短的路径上来,最短的路径就近似找到了。也许有人会问局部最短路径和全局最短路的问题,实际上蚂蚁逐渐接近全局最短路的,为什么呢?这源于蚂蚁会犯错误,也就是它会按照一定的概率不往信息素高的地方走而另辟蹊径,这可以理解为一种创新,这种创新如果能缩短路途,那么根据刚才叙述的原理,更多的蚂蚁会被吸引过来。

    蚁群算法原理

    蚁群算法是一种由于受自然界生物的行为启发而产生的“自然”算法。它是从对蚁群行为的研究中产生的。正如M•Dorigo等人在关于蚁群算法的第1 篇文章中指出的:蚁群中的蚂蚁以“外激素”(Stigmergy)为媒介的间接的异步的联系方式是蚁群算法的最大的特点。蚂蚁在行动(寻找食物或者寻找回巢的路径)中,会在它们经过的地方留下一些化学物质(我们称之为“外激素”)。这些物质能被同一蚁群中后来的蚂蚁感受到,并作为一种信号影响后到者的行动(具体表现在后到的蚂蚁选择有这些物质的路径的可能性,比选择没有这些物质的路径的可能性大得多),而后到者留下的外激素会对原有的外激素进行加强,并如此循环下去。这样,经过蚂蚁越多的路径,在后到蚂蚁的选择中被选中的可能性就越大(因为残留的外激素浓度较大的缘故)。由于在一定的时间内,越短的路径会被越多的蚂蚁访问,因而积累的外激素也就越多,在下一个时间内被其他的蚂蚁选中的可能性也就越大。这个过程会一直持续到所有的蚂蚁都走最短的那一条路径为止。


马上定做毕业设计

附件下载 (若有下载链接失效,请联系网站管理员!)

相关毕设下载

  • java图形图象处理(论文+系统)

    java图形图象处理(论文+系统) Java语言实现图像处理 图像增强技术:数字图像的增强是图像处理中的一个重要研究内容之一,是图像处理的一项基本技术。图像增强是指按特定的需要突出一幅图像的某些信息,同时,削弱或除去某些不需要的信息的处理方法。 图像增强在人眼对…

    2015/11/20 12:12:45
  • java论坛管理系统设计(源代码+论文)

    java论坛管理系统设计(源代码+论文) 目标与任务 目标: 通过需求分析,充分了解用户需求,明确系统的业务流程和系统的功能,完成数据流图和数据字典等内容,为以后整个系统设计提供依据。 任务: 处理对象: 用户信息:(用户名,密码,邮箱,用户等级,发帖数,…

    2015/11/19 13:10:44
  • JAVA局域网监听软件的设计与开发(源代码+论文)

    JAVA局域网监听软件的设计与开发(源代码+论文) 网络监听软件是提供给网络安全管理人员进行安全管理的工具,可以用来监视网络的状态、数据流动情况以及网络上传输的信息,以获取有用信息。作为黑客来说,通过网络监听可以获取其所需信息(比如密码等);对黑客活动和其他网络…

    2015/11/16 21:06:38
  • JAVA局域网飞鸽传书软件设计与实现(源代码+论文)

    JAVA局域网飞鸽传书软件设计与实现(源代码+论文) 网络通讯在当今已经不算新鲜事物,但大多数网络通讯都需要借助Internet上的服务器,这就给那些具有大规模内部网络的用户造成了许多问题,如浪费网络资源、遭遇到网络攻击、传播的病毒、破坏防御系统等等。由于互连网上的网络…

    2015/11/16 20:06:07

客户对我们的评价