非对称网络中的路由方法

文档序号:7737878阅读:209来源:国知局
专利名称:非对称网络中的路由方法
技术领域
本发明涉及联网,并且更具体而言,涉及使用群智能来确定通过非对称网络的路
背景技术
现有技术中已知使用群智能来建立通过网络的路由。对于包括可以为动态的网络的非对称网络,已经采用了群智能,如美国专利6,940,832 (Saadawi等于2005年9月6日发布的“Routing Method for Mobile Infrastructureless Network”)。在奥斯陆大学学 @的 Per Juvhaugen ψ 2006 ^4^ 3 H W "Routing Protocols for Mobile Ad Hoc Networks using Swarm Intelligence,A Survey”中给出了群智能应用的概述。对于对称的非动态网络,Dijkstra的算法通常被认为是用于识别通过网络的优选路由的最优算法。

发明内容
本发明的第一实施方式提供了具有包括源节点和目的节点的互连节点的网络。每个节点不必连接到每个其他节点,或者每个节点在不必须经过介于中间的节点的情况下不必从每个其他节点是可达的。为了从源节点向目的节点发送数据包或其他对象,必须建立一条路径。为此,经由一个或更多个中间节点从源节点向目的节点发送多个下游数据代理,并且经由一个或更多个中间节点从目的节点向源节点发送多个上游数据代理。每个数据代理通过从各节点确定哪个节点应当是其下一到达节点来独立地进行导航,直到它完成旅程。在优选实施方式中,每个节点存储下游路由表和上游路由表,下游路由表存储关于每个下游节点的信息,以供向目的节点行进的代理使用,上游路由表存储关于每个上游节点的信息,以供向源节点向上游行进的代理使用。到达一节点并向下游进行导航的数据代理将从下游邻居的集合中选择其下一目的地,并将部分基于下游路由表中对该数据代理可用的信息来作出其的决定。类似地,到达一节点并向上游进行导航的数据代理将从上游邻居的集合中选择其下一目的地,并且该选择将部分地基于在该节点处对该数据代理可用的信息(包括上游路由表中的数据)来作出。为了加强其路径,向下游行进的数据代理将修改其拜访的各节点处的上游路由表,使得到达该节点的上游数据代理将更可能选择所述下游数据代理从其到达的上游节点作为其下一目的地。类似地,向上游行进的数据代理将修改其拜访的各节点处的下游路由表,从而到达该节点的下游数据代理将更可能选择所述上游数据代理从其到达的下游节点作为其下一目的地。数据代理在节点处执行的修改量是代理在到达该节点之前行进过的路径的质量的函数。以这种方式,在反方向独立导航的代理加强了源节点和目的节点之间的路径。最终,从源节点到目的节点的优选路径可以被确定为由具有最大加强的节点所限定的路径。


通过参考以下结合附图进行的详细描述,本发明的以上特征将更加容易理解,在附图中图1示意性地示出了非对称网络。图2A和图2B示意性地示出了现有技术的确定通过非对称网络的路由的方法。图2C包括示例性的路由表。图3A和图;3B示意性地示出了本发明的一个实施方式。图4A示出了本发明的实施方式。图4B示出了本发明的实施方式。
具体实施例方式在示例性实施方式中,网络的每个节点存储关于相邻节点的信息,并且从源节点到目的节点而经过网络的第一类代理使用存储的信息的子集来导航到目的地。第二类代理以相反的方向——从目的节点到源节点——经过网络,并且也使用存储的信息的子集来导航到源目的地。每个代理更新其拜访的每个节点处的信息的子集,以提高该代理在到达该节点之前所经过的路径的质量。特别地,一类代理会更新其他类代理所使用的信息。以这种方式,各类代理对由其他类代理不断更新的数据进行操作。在一些实施方式中,专门的蚂蚁(ant)可以回溯之前蚂蚁所采取的路径,以额外增加对合意的路径的改善。在一些实施方式中,可以将路径定义为端到端(例如源节点到目的节点),或从端到中间节点(例如源节点到中间节点,或中间节点到目的节点),或中间节点到中间节点 (例如,源节点和目的节点之间的路径上的任何两个节点)。网络具有多个节点。节点可以例如是城市、工厂或计算机(例如服务器)。链路将网络的节点进行互连。网络的示例包括通过道路互连的城市、通过铁路线路互连的工厂,或者通过通信线路互连的通信系统中的计算机。一般而言,网络中的每个节点不必直接连接到每个其他节点(即,网络的定义并不要求每个节点从所有其他节点在无须经过中介节点的情况下是可到达的)。在一些实施方式中,每个链路是单向的,这意味着对象仅可以在一个方向上沿该链路从一个节点移动到另一个节点。通过经由节点之间的一条链路而从一个节点行进到另一个节点可以被称为一“跳”。例如,在图1中,节点102处的车辆可以通过经由节点102和节点101之间的链路120直接移动到节点101 ( 一跳)。如果两个节点未由一条链路链接, 则对象通过首先行进到一个或更多个中间节点而仍能够从一个节点行进到其他节点。例如,还是在图1中,节点102处的车辆可以通过首先使用链路120行进到节点101,然后通过经由链路1 行进到节点103而行进到节点103(两跳)。另选地,车辆可以通过首先经由节点105和104行进到节点103,来从节点102行进到节点103(三跳)。如果期望两个节点之间的双向行进,则一对互补的单向链路可以连接这两个节点以有效地创建双向链路。每条链路具有施加于经过它的对象的相关代价。例如,如果图1中的链路121是节点105处的城市和节点107处的城市之间的道路,则经过该道路121的车辆的代价可以通过任意数量的因素来测量,所述因素例如有经过该段道路的距离所花费的时间或者要支付的通行费用、道路上的交通运输量,或者该旅程所需的燃料量。作为另一示例,如果链路121是节点105处的计算机和节点107处的另一计算机之间的通信信道,则通过链路121 发送数据包的代价可以通过诸如信道中的带宽、信噪比或安全性(或者缺少安全性)等因素来测量。类似地,从一个节点到另一个节点的路径的代价是该路径中各链路的代价之和。 其中,路径的质量可以例如基于其代价来判断。对代价的评估允许将一条链路或路径与另一条链路或路径进行比较。网络中的每个节点具有相邻节点。对于给定节点,其邻居包括经由单条链路连接到该给定节点的所有节点的集合。给定节点的相邻节点的集合可以进一步细分成两类下游节点和上游节点。“下游”节点是可以通过链路不经过另外的节点而从给定节点到达的节点。这需要将在适当方向(即从给定节点到相邻节点)上携带通信量的链路或路径。相反,“上游”节点是这样的节点,其具有直接到给定节点的链路,使得通信量可以从上游节点行进到给定节点,而不经过另外节点。例如,在图1中的网络100内,节点105的邻居为节点102、104、106和107。其中,下游节点是节点104、106和107,上游节点是节点102,104 和106。注意,节点被分类为“上游”或“下游”是基于它们与其他节点的链路关系,而非基于它们是否位于任何两个节点之间的路径上(例如,给定节点可以相对于其相邻节点被分类为“下游”,即便是该给定节点未处于在源节点和目的节点之间向下游行进的代理的路径上)。对称网络是从第一节点到第二节点的每条链路都具有从第二节点到第一节点的相对链路的网络。如果从第一节点行进到第二节点的代价与从第二节点行进到第一节点的代价不相同,或者如果在一个方向上的链路根本就不存在,则网络是非对称的。在图1中示出了非对称网络100。网络100是非对称的,至少因为一些节点对之间的链路仅允许一个方向上的行进。例如,在节点105和节点107之间,仅有从节点105行进到节点107的一条链路 (121)。没有从节点107到节点105的链路。网络100将用于本文中的各个示例性的实施方式,但是本发明及其应用并不限于网络100。在一些实施方式中,非对称网络可以包含对称链路甚至是对称子网络,但仍被视为非对称网络。如果链路和代价没有变化,则网络是静态网络。相反,动态网络是其中链路或路径可能随时间而改变的网络。例如,给定路径的代价可能上升,由此使得包含该链路的路径不那么合意,例如道路正在修建而使交通变慢并增加了燃料使用。另选地,给定路径可能变得完全不可用,例如道路阻塞或者桥梁故障。在相同情况下,动态网络中的节点可以改变在网络中位置,这要求断开旧链路并建立新链路。当对象从一个节点行进到另一个节点时,必须确定路径。如果一条链路连接两个节点,则对象可以通过经由该链路从一个节点行进到另一个节点。然而,如果两个节点未由一条链路连接,或者如果它们之间的现有链路是不合意(例如代价太高)的,则对象可以通过经过一个或更多个中间节点来到达其目的地。例如,节点105处的消息包可以通过路径 123直接行进到节点106,或者通过路径121与路径122的组合经由中间节点107间接地到达节点106。在确定最优路径时,可以考虑每条可用路径的代价。针对运输车辆的示例,如果时间是重要因素,则可以选择最快路由,即使其耗费更多的燃料。另选地,如果节省燃料是重要的,则可以选择最短路由,即使其不是最快的。一般而言,当发展路径时,具有较低代价的链路相对于具有较高代价的链路是更合意的。一种识别最优路径的途径可以是使网络分析员评估所有可能路径,并基于对于分析员而言重要的因素来确定优选路径。然而,该途径是繁复、缓慢的并且对于大型网络是过分昂贵的。寻找经过对称的静态网络的高效路径的方法是公知的,并且Dijkstra的算法被公认为是最优的途径。然而,在非对称网络中,已经开发出了其他途径。一些途径基于群智能(其可以称为“蚂蚁论”(ant theory)),如同在例如由奥斯陆大学学院的Per Juvhaugen于2006年 4 月 3 日发表的标题为"Routing Protocols for Mobile Ad Hoc Networks using Swarm Intelligence, A Survey”的出版物中所描述的。在图2A和图2B中示意性示出了现有技术的使用群智能寻找经过网络100的从源节点101到目的节点109的路径的方法。该方法类似于蚂蚁通过使用信息素找到、建立和加强其他蚂蚁的行进路径的方式,与蚂蚁和信息素的类比有助于理解现有技术的方法。在该方法中,代理(其可以称为“蚂蚁”)从源节点被释放以行进到目的节点(并因此可以更明确地称为“前向蚂蚁”)。在现有技术中,向下游行进的蚂蚁通过从一个节点跳到下一节点,直到到达其目的地来导航网络。该蚂蚁通过在每一个节点处确定其接下来应该行进到什么样的下游节点来进行独立导航。换言之,该蚂蚁不会遵循预定的路径。特别地,在到达一个节点后,该蚂蚁使用导航等式评估其在该节点处可用的数据,该述导航等式是使用可用信息来确定蚂蚁旅程中的下一节点的算法。在每个节点处可以有蚂蚁可用的数种类型的信息。可以被称为“本地可见性启发法(local visibility heuristic) ”的一些信息可以仅包含关于至下游邻居的链路的信息,例如可用性、带宽或时间延迟。取决于导航等式,蚂蚁的决定可以是仅一个此类因素的函数,或者是一起加权的数种因素的函数。导航等式还包括随机概率因素。结果,最低代价的链路可能并非总是被选择,尽管其相对于其他链路而言更可能被选择(并且在统计上因此更加经常地被选择)。例如,蚂蚁在百分之九十的时间可能采取最低代价的链路,而在剩余时间采用一个或更多个其他链路。每个节点还可以包括供蚂蚁使用的其他信息。特别地,每个节点可以具有针对每个可能的目的节点的路由表。每个路由表包含加权因子,该加权因子影响任何给定下游节点被蚂蚁选择的概率。加权因子类似于一些蚂蚁在足迹上的某些点留下的信息素,使得之后的前向蚂蚁可以通过评估在多个点沉积的信息素的强度来跟随所述足迹。加权因子可以传达关于从节点可用的链路的信息(例如经过每条链路的代价)。另选地或者附加地,加权因子可以传达关于邻接节点的信息。例如,从一个节点到第二节点可能存在低代价的链路,但是如果第二节点具有不希望有的特性(例如在该节点处计算机中的低电池电量),则可以通过升高该节点的代价而降低到该节点的链路的合意性,来反映该信息。以这种方式, 路由表中的加权数据不仅可以包含关于链路的质量的信息,还可以包含关于该链路的另一端的节点的质量的信息。在示例性实施方式中(下文讨论),所有此类信息将作为关于链路本身的信息的一部分来简单地加以讨论,但是各个实施方式并不限于此。当蚂蚁从源节点到达其目的地时,该蚂蚁所采取的路径的代价被评估,并且与从该同一源节点到达该目的地的其他蚂蚁所采取的路径的代价进行比较。如果该蚂蚁采取的路径比其他路径更有利(例如,如果该路径比其他路径具有更小代价),则可以通过从目的节点向源节点发送后向蚂蚁来加强该路径。后向蚂蚁完全地遵循第一只蚂蚁的路径,但方向相反。沿着该路线,后向蚂蚁更新每个节点处的路由表(例如信息素数据),以加强第一只蚂蚁所采取的路径。总而言之,在现有技术中,代理通过从节点跳到节点来从源节点到目的节点向下游导航。在每个节点处,代理使用导航等式来确定什么样的下游节点是其旅程的下一节点。 导航等式基于对当前节点处可用信息的评估来选择下游节点,所述可用信息包括关于可用下游节点和链路的信息、随机机会的要素,以及影响随机机会的要素的加权因子。当优选路径被识别时,通过沿该路径后向发送另一代理加强其经过的路径来加强该路径。作为现有技术的示例,在图2A中,两个下游蚂蚁201和202从节点101处的源被释放。蚂蚁201到达了节点103,而蚂蚁202到达了节点105。两只蚂蚁201和202独立导航来寻找目的节点109。在图2A中,节点105处的蚂蚁202必须决定哪个节点将是其下一目的地。下游节点104、106和108是可获用的选项。节点102在该示例中不是下游节点并因此不是蚂蚁 202的选项,这是因为没有链路将允许从节点105直接跳到节点102。在作出该决定时,蚂蚁202可以考虑本地可见性启发法。如果前代蚂蚁已经经过了该网络,使得后向蚂蚁已经在本地路由表中留下了信息素痕迹,则蚂蚁202还可以访问存储在与蚂蚁的目的地相关联的路由表中的信息素数据。例如,如果蚂蚁202在节点105处并且其最终目的地是节点108,则蚂蚁202访问与节点108相关联的路由表。如果找到具有最少链路的路由是重要的,则该路由表例如将包含使得节点106成为蚂蚁的最有吸引力的选项的信息素(因为节点106离最终目的节点 108仅有一跳)。另选地,如果蚂蚁的最终目的地是节点109,则蚂蚁访问与节点109相关联的路由表。该路由表例如将包含使得节点107成为蚂蚁的最有吸引力的选项的信息素(因为节点 107离最终目的节点109仅有一跳)。这种路由表的示例在图2C中示出。因此,节点105 处的蚂蚁可以根据其最终目的地从可用的下游节点当中作出不同的决定。当作出了对下一节点的选择时,蚂蚁202将经由链路去往所选择的节点。如果节点109是最终目的地,则通过重复该过程,蚂蚁202将最终找到其去往目的节点109的路线。当蚂蚁到达目的节点109时,目的节点109将评估哪个蚂蚁采取了从源节点101 到目的节点109的最佳(例如最小代价的)路径。优选路径可以由取决于要优化的代价 (例如,最快运输或运输中使用最少燃料)的任何期望的一组标准来确定。采取了最佳路径的蚂蚁可以称为“冠军”蚂蚁。一旦确定了最佳路径,从目的节点109释放另一只蚂蚁(其可以称为“后向”蚂蚁) 以向上游行进到源节点101。与前向蚂蚁相反,后向蚂蚁不独立地进行导航。而是,后向蚂蚁回溯冠军前向蚂蚁所采取的路由。在每个节点处,后向蚂蚁修改与目的节点相关联的路由表中的信息素数据,以由向该目的节点行进的后代前向蚂蚁使用。特别地,该路径上的每个节点处的信息素数据被加强以支持下游节点(后向蚂蚁刚从该下游节点到达)。以这种方式,任何以其路线向着目标节点到达一节点的蚂蚁(无论该蚂蚁的最终源在何处)将受到影响,从而遵循已经被识别为优选的路径。例如,如果图2A中的蚂蚁202在经过路径101-102-105-107-109之后被确定为冠军蚂蚁,则后向蚂蚁210经由以下路径从目的节点109被发送到源节点101 109-107-105-102-101,如图2B中所示。在节点107处,后向蚂蚁210修改与节点109相关联的路由表,以增加到达节点107的前向蚂蚁接下来将选择节点109而非节点106的机会。 后向蚂蚁210修改该路径中每个其他节点的路由表,以支持路径中的下一下游节点。通过(以相反的顺序逐节点地)经过所公认的冠军蚂蚁的路径并增加每个节点处的加权因子,后向蚂蚁加强了该路径。由此,冠军蚂蚁的路径被加强,并因此更有可能被后续蚂蚁遵循。相反,其他节点(即不在该路径上的节点)变得对于后续蚂蚁具有更少的吸引力,并且经过这些节点的路径由此相对较弱。通过可以包括一次或更多次重复的该过程, 可以呈现最佳路径并且该最佳路径可以被识别为由具有最多信息素的节点组成的路径。出于此原因,识别路径的该途径可以称为“呈展现象”。此时,数个观察可能是有帮助的。第一,后向蚂蚁将在链路上以相反方向行进。这在修改下游路径(现在为预定义的下游路径)中的路由表的服务中是可允许的。第二,前向蚂蚁不修改路由表。而是,前向蚂蚁仅遵循“信息素”痕迹,而信息素痕迹是由忠实地且刻板地经过下游路径(现在为预定义的)的后向蚂蚁创建并加强的。第三,后向蚂蚁不独立地进行导航(因为它们刻板地经过前述下游路径),因此对于向上游行进(例如从目的节点109到源节点101)的蚂蚁没有路由表。最后,不可能沿真实网络发送后向蚂蚁(例如,不可能在单向街道的相反路线发送车辆,或者在单向数据链路上的相反方向进行数据传输)。 因此,这些过程可以在例如通过运行于计算机硬件上的建模软件在目标网络的模型上最佳地实现。与现有技术相反,本发明的一些实施方式可以使用从目的节点到源节点向上游行进并独立地进行导航的蚂蚁(其可以称为“上游蚂蚁”),并且可以允许向下游行进的蚂蚁在它们自主地导航网络时修改上游路由表。本发明的一个实施方式在图3A和图;3B中示出。在图3A中,一个或更多个下游蚂蚁(在该示例中,仅有两个下游蚂蚁301和30 被从源节点101释放,以独立导航到目的节点109。该导航类似于图2A和图2B的示例,因为下游蚂蚁301和302独立地进行导航。在优选实施方式中,网络100中的每个节点具有针对每个可能的目的地节点的下游路由表。图;3B示出了一组上游蚂蚁311和312,它们从目的节点109离开,并且独立地导航到源节点101。注意,这些上游蚂蚁311和312与现有技术的后向蚂蚁不同,至少因为上游蚂蚁311和312独立地导航到源节点101,而不是刻板地反向经过预定义的下游路径。使用上游蚂蚁311和312的结果是网络100中的每个节点将优选地具有针对每个可能的源节点的上游路由表。在本发明的一个实施方式中,上游蚂蚁和下游蚂蚁都经过源节点和目的节点之间的网络。在优选实施方式中,每个节点包含针对网络中每个其他节点的下游路由表(以供向下游行进到每个此类其他节点的蚂蚁使用)和针对网络中每个其他节点的上游路由表 (以供向上游行进到每个此类其他节点的蚂蚁使用)。与现有技术不同,在本发明的一些实施方式中,下游蚂蚁和上游蚂蚁都修改它们经过的每个节点处的路由表。特别地,下游蚂蚁修改上游路由表中的数据,而上游蚂蚁修改下游路由表中的数据。蚂蚁修改路由表的量(或者在生物类比中,蚂蚁留下的信息素的量)取决于该蚂蚁在到达该节点之前经过的路径的质量。每个节点可以评估到达蚂蚁的路径的代价,并且将该代价与从同一源节点行进到该节点而到达该节点的其他蚂蚁进行比较(注意,可以与各个蚂蚁的目的节点无关地进行该评估)。用于该比较的蚂蚁池可以由系统操作者指定。 另选地,用于该比较的蚂蚁池可以简单地为在定义的时间段期间到达该节点的所有蚂蚁的集合,或者可以定义为整数个前述的蚂蚁。已经行进了最佳路径的蚂蚁最大量地修改路由表,并因此对后续到达该节点的蚂蚁具有最大影响。例如,对从源节点行进之后到达该节点的下游蚂蚁所遵循的路径的代价进行评估。该代价然后与已经从相同源节点到达的其他此类蚂蚁采取的路径的代价进行比较。如果该蚂蚁遵循的路径是优选路径(例如最低代价),则该蚂蚁相对于经由较不合意的(例如更高代价的)路径到达的其他下游蚂蚁更大量地更新上游路由表。以这种方式,向源节点行进的蚂蚁比它们原本时更有可能遵循下游蚂蚁绘制的路线。以类似方式,在目的节点处起始的上游蚂蚁加强了行进到该目的节点的另外的下游蚂蚁的路径。上述过程的数个优点是很明显的。第一,初始代的蚂蚁不需要像现有技术那样完全随机地导航到它们的目的节点。在现有技术中,第一代前向蚂蚁仅以可用于通知导航等式的本地可见性启发数据来随机搜索目的节点。相反,本发明的一些实施方式允许上游蚂蚁开始填充第一代中的下游路由表。结果,第一代下游蚂蚁在它们在网络中行进时甚至在第一只蚂蚁到达目的地之前找到在下游路由表中的数据。这可以促进路径寻找的更快收敛。蚂蚁还可以更新不同于与源节点和/或目的节点相关联的路由表的路由表。例如,到达给定节点的蚂蚁可以更新针对该蚂蚁在旅程中拜访过的各其他节点的路由表。以这种方式,到达该节点的另一蚂蚁可以(例如)在针对其目的节点的路由表中找到有用的数据,即使没有蚂蚁从该节点释放或发送到该节点。另外,如果网络以消除现有路径或者使现有路径为不那么合意的方式进行改变, 则一些实施方式使得路由方法快速并有效地适应新的网络配置。例如,如果一个节点改变位置,则蚂蚁难以通过采取完全随机经过网络的旅程来找到处于新位置的该节点。然而, 在一些实施方式中,来自被移动的节点的上游蚂蚁将快速地开始传播关于通向节点的新位置的路径的信息。对于从源节点处起始的蚂蚁,偶然发现包含关于目的节点新位置的信息 (例如,从目的节点离开的上游蚂蚁所留下的信息素)的节点比偶然发现目的节点本身要容易得多。图3A示意性地示出了下游蚂蚁302从节点102到达节点105的示例性实施方式。 节点105包含下游路由表和上游路由表二者。下游蚂蚁302修改节点105处的上游路由表以增加随后到达节点105(在其去往源节点101的路线上)的上游蚂蚁选择节点102作为该上游蚂蚁去往源节点101的旅程中的下一节点的机会。蚂蚁301以类似方式导航,并且还在行进时更新路由表。有可能蚂蚁301和蚂蚁302都将最终经过节点107 (例如,如果蚂蚁302直接从节点105跳到节点107,并且如果蚂蚁301从节点103跳到节点104,然后跳到节点105并再跳到节点107)。节点107将评估蚂蚁301采取的路径和蚂蚁302采取的路径。如果使路径中的跳数最小化是重要标准,则节点107可以确定蚂蚁302采取的路径是优选路径,因为蚂蚁302从节点101到达节点107仅采取了三跳,而蚂蚁301从节点101到达节点107采取了四跳。当蚂蚁301到达节点107时,蚂蚁301对路由表的修改将不会和蚂蚁302 —样多,因为蚂蚁301采取的路径是高代价的并因此是比较不合意的路径。以这种方式,路径 101-102-105-107 被加强,而使路径 101-103-104-105-107 相对较弱。类似地,在图;3B中,上游蚂蚁312从节点108到达节点106。注意,上游蚂蚁312 已经在后向方向上(即与定义的链路313的流相反的方向;换言之单向街道的相反路线) 经过了节点106和节点108之间的链路313。上游蚂蚁必须经过每条链路上的相反路线,这是因为上游蚂蚁最终有助于定义下游路径,并且如果上游蚂蚁经过链路上的“正确方向”, 则对应下游路径就不能使用该链路(即,该路径对于尝试使用该链路的下游蚂蚁而言是错误的方向)。上游蚂蚁312修改节点106处的下游路由表,以增加随后到达节点106的下游蚂蚁将节点108选择为下游蚂蚁去往目的节点109的旅程中的下一节点的机会。类似地,上游蚂蚁311从节点107到达节点105,并修改节点105处的下游路由表, 以增加随后到达节点105的下游蚂蚁将节点107选择为下游蚂蚁去往目的节点109的旅程中的下一节点的机会。可以采用各种类的不止一只蚂蚁,或不止一个蚁群。例如,第一代蚂蚁可以被释放到网络中,并且当第一代蚂蚁完成了其工作时,一个或更多个后续代的蚂蚁可以被释放到网络中。每代蚂蚁受益于之前的蚂蚁所完成的工作。通过重复地应用下游蚂蚁和上游蚂蚁, 呈展出一模式。该模式由在它们各自路由表中具有提升的“信息素”级别的节点组成。从该模式中得到从源节点到目的节点的一条或更多条路径的集合。得到路径的一种方式是在源节点处开始,并通过始终选择在下游路由表中具有最大信息素的下游邻居 (作为下一节点)来一次一个节点地建立路径。继续该过程,直到定义了从源节点到目的节点的节点路径为止。另一路径(可能不同)可以这样得到在目标节点处开始,并通过始终选择在上游路由表中具有最大信息素的下一节点作为上游邻居来一次一个节点地建立路径。继续该过程,直到定义了从源节点到目的节点的节点路径为止。该路径或路径集合表示在现有网络上从源节点行进到目的节点的最优路由。该最优的一条或更多条路径可以用于将信息或对象(例如数据包或运输车辆)从源路由到目的地。在另一示例性实施方式中,可以通过发送后向蚂蚁以回溯路径来加强该路径。在一个实施方式中,如图4A中所示,当下游蚂蚁(未示出)从源节点101到达目的节点109 时,其路径可以与从源节点101到达节点109的其他下游蚂蚁采取的路径进行比较。如果该路径被认为值得加强(例如,因为其是此时找到的最低代价的路径),则后向下游蚂蚁410 从目的节点109被释放,以沿与成功的下游蚂蚁采取的路径完全相同的路径向上游行进到源节点101。在沿该路线的每个节点处,后向下游蚂蚁410加强与源节点101相关联的上游路由表。换言之,后向下游蚂蚁410加强与该后向下游蚂蚁410所基于的成功的下游蚂蚁相同的路由表。这不同于现有技术的后向蚂蚁,至少因为现有技术的后向蚂蚁向上游行进并修改每个节点处的下游路由表,而后向下游蚂蚁410修改每个节点处的上游路由表。在另一实施方式中,如图4B中所示,当上游蚂蚁(未示出)从目的节点109到达源节点101时,其路径可以与从目的节点109到达的其他上游蚂蚁所采取的路径进行比较。 如果该路径被认为值得加强,则后向上游蚂蚁411从源节点101被释放,以沿与成功的上游蚂蚁采取的路径完全相同的路径向下游行进到目的节点109。在沿该路线的每个节点处,后向上游蚂蚁411加强与目的节点109相关联的下游路由表。换言之,后向上游蚂蚁411加强与该后向上游蚂蚁411所基于的成功的上游蚂蚁相同的路由表。可以看出,本发明的各个实施方式不仅促进了蚂蚁当中的种类间通信(例如,下游蚂蚁通过上游路由表与上游蚂蚁进行通信,而上游蚂蚁通过下游路由表与下游蚂蚁进行通信),还促进了代间通信(例如,每代蚂蚁可以通过路由表与后代进行通信)。这类通信的效果是实现了找到并维护经过网络的优选路径的快速并有效的方法。使用这些方法识别的一条或更多条路径然后可以用于经由网络发送数据或其他对象。本发明的各个实施方式可以至少部分地用常规计算机编程语言来实现。例如,一些实施方式可以用过程型编程语言(例如“C”)来实现,或者用面向对象的编程语言(例如 “C++”)来实现。本发明的其他实施方式可以实现为预编程的硬件部件(例如,专用集成电路、FPGA和数字信号处理器)或其他相关组件。在另选的实施方式中,所公开的装置和方法可以实现为与计算机系统一起使用的计算机程序产品。此类实现可以包括位于诸如计算机可读介质(例如磁盘、⑶_R0M、R0M或硬盘)的有形介质上的计算机指令序列。该计算机指令序列可以包含本文之前针对系统描述的所有或部分功能。本领域技术人员应当理解到,这些计算机指令可以用各种编程语言来编写,以与许多计算机架构或操作系统一起使用。此外,这些指令可以存储在任何存储设备中,例如半导体的、磁的、光的或其他的存储设备,并且可以使用诸如光的、红外的、微波的或其他的传输技术的任何通信技术来进行传输。除了别的方式以外,此类计算机程序产品可以作为可移动介质与所附打印的或电子文档(例如,收缩塑料包装的软件)一起被分发,用计算机系统(例如在系统ROM或硬盘上)预加载,或者通过网络(例如因特网或万维网)从服务器或电子布告板分发。当然,本发明的一些实施方式可以实现为软件(例如计算机程序产品)和硬件二者的组合。本发明的另一些其他实施方式被实现为完全是硬件或完全是软件。上述本发明的实施方式仅意在是示例性的;许多变型和修改对于本领域技术人员将是显而易见的。所有此类变型和修改意在包涵如任何所附权利要求所限定的本发明的范围内。
权利要求
1.一种建立经过包括多个互连节点的非对称网络的从源终端节点到目的终端节点的路径的方法,其中穿过所述网络行进的代理经过将一个节点连接到下一节点的链路,直到该代理到达所述目的终端节点,所述方法包括以下步骤在第三节点处从第四节点接收第一代理,其中所述第一代理在所述源终端节点处发起,并且通过所述网络向着所述目的终端节点进行导航;基于关于所述第一代理先前行进过的路径的信息来修改所述第三节点处的第一导航数据表,其中所述第一导航数据表中的数据与所述源终端节点相关联;基于第二导航数据表中的数据来确定所述路径上的下一节点,其中所述第二导航数据表中的数据与所述目的终端节点相关联;以及将所述第一代理指弓I到所述下一节点。
2.如权利要求1所述的方法,其中,所述第一导航数据表中的数据包括关于一个或更多个上游节点的信息。
3.如权利要求2所述的方法,其中,所述第一导航数据表中的数据还包括第一加权因子。
4.如权利要求1所述的方法,其中,所述关于所述第一代理先前行进过的路径的信息包括关于所述第四节点的信息。
5.如权利要求4所述的方法,其中,所述关于所述第四节点的信息包括属于所述第四节点的工作特性的信息。
6.如权利要求4所述的方法,其中,所述关于所述第四节点的信息包括关于将所述第四节点连接到所述第三节点的链路的信息。
7.如权利要求1所述的方法,其中,修改所述第一导航数据表包括改变至少一个加权因子以加强所述第一代理先前行进过的路径。
8.如权利要求1所述的方法,其中,所述第二导航数据表包括关于一个或更多个下游节点的信息。
9.如权利要求8所述的方法,其中,所述第二导航数据表包括第二加权因子。
10.如权利要求9所述的方法,其中,确定动作包括通过将关于一个或更多个下游节点的信息与来自所述第二导航数据表的数据进行组合来评估所述关于一个或更多个下游节点的信息。
11.如权利要求1所述的方法,所述方法还包括从所述目的终端节点向所述源终端节点发送第二代理,所述第二代理经过所述第一代理先前遵循的路径,所述第二代理修改至少一个中间节点处的导航数据以加强所述第一代理先前遵循的路径。
12.如权利要求11所述的方法,其中,修改导航数据包括修改所述第一导航数据表中的数据。
13.如权利要求12所述的方法,其中,修改导航数据包括改变至少一个加权因子。
14.一种建立经过包括多个互连节点的非对称网络的从源终端节点到目的终端节点的路径的方法,其中穿过所述网络的行进的代理经过将一个节点连接到下一节点的链路,直到该代理到达所述源终端节点,所述方法包括以下步骤在第三节点处从第四节点接收第一代理,其中所述第一代理在所述目的终端节点处发起,并且通过所述网络向着所述源终端节点进行导航;基于关于所述第一代理先前行进过的路径的信息来修改所述第三节点处的第一导航数据表,其中所述第一导航数据表中的数据与所述目的终端节点相关联;基于第二导航数据表中的数据来确定所述路径上的下一节点,其中所述第二导航数据表中的数据与所述源终端节点相关联;以及将所述第一代理指弓I到所述下一节点。
15.如权利要求14所述的方法,其中,所述第一导航数据表中的数据包括关于一个或更多个下游节点的信息。
16.如权利要求15所述的方法,其中,所述第一导航数据表中的数据还包括第一加权因子。
17.如权利要求14所述的方法,其中,所述关于所述第一代理先前行进过的路径的信息包括关于所述第四节点的信息。
18.如权利要求17所述的方法,其中,所述关于所述第四节点的信息包括属于所述第四节点的工作特性的信息。
19.如权利要求17所述的方法,其中,所述关于所述第四节点的信息包括关于将所述第三节点连接到所述第四节点的链路的信息。
20.如权利要求14所述的方法,其中,修改所述第一导航数据表包括改变至少一个加权因子以加强所述第一代理先前行进过的路径。
21.如权利要求14所述的方法,其中,所述第二导航数据表包括关于一个或更多个上游节点的信息。
22.如权利要求21所述的方法,其中,所述第二导航数据表至少包括第二加权因子。
23.如权利要求21所述的方法,其中,确定动作包括通过将关于一个或更多个上游节点的信息与来自所述第二导航数据表的数据进行组合来评估所述关于一个或更多个上游节点的信息。
24.如权利要求14所述的方法,所述方法还包括从所述源终端节点向所述目的终端节点发送第二代理,所述第二代理经过所述第一代理先前遵循的路径,所述第二代理修改至少一个中间节点处的导航数据以加强所述第一代理先前遵循的路径。
25.如权利要求M所述的方法,其中,修改导航数据包括修改所述第二导航数据表中的数据。
26.如权利要求25所述的方法,其中,修改导航数据包括改变至少一个加权因子。
27.一种识别经过具有链路互连节点的非对称网络的路径的方法,所述网络包括第一节点、第二节点和多个其他节点,所述方法包括以下步骤经由第三节点从所述第一节点向所述第二节点发送第一代理,其中,所述第一代理基于所述第三节点处的第一导航数据表中的数据来确定所述路径中的下一节点,其中所述第一导航数据表中的数据与所述第二节点相关联;所述第一代理修改所述第三节点处的第二导航数据表中的数据,其中所述第二导航数据表中的数据与所述第一节点相关联。
28.如权利要求27所述的方法,所述方法还包括经由中间节点从所述第二节点向所述第一节点发送第二代理,其中所述第二代理基于所述中间节点处的第三导航数据表中的数据来确定其路径中的下一节点,其中所述第三导航数据表中的数据与所述第一节点相关联;以及所述第二代理修改所述中间节点处的第四导航数据表中的数据,其中所述第四导航数据表中的数据与所述第二节点相关联。
29.如权利要求27所述的方法,所述方法还包括通过选择从所述第一节点到达所述第二节点的一个或更多个代理所遵循的路径来识别从所述第一节点到所述第二节点的优选路径。
30.如权利要求观所述的方法,所述方法还包括通过选择从所述第二节点到达所述第一节点的一个或更多个代理所遵循的路径来识别从所述第一节点到所述第二节点的优选路径。
31.一种具有链路互连节点的非对称网络,所述非对称网络包括第一终端节点、第二终端节点以及多个其他节点,其中所述多个其他节点中的至少一个包含用于存储与所述第一终端节点相关联的导航数据的第一数据储存库,以及与所述第二终端节点相关联的第二数据储存库。
32.如权利要求31所述的网络,所述网络还包括其中所述第一数据储存库中的导航数据能够由从所述第一终端节点向所述第二终端节点行进的代理进行修改。
33.如权利要求31所述的网络,所述网络还包括其中所述第二数据储存库中的导航数据能够由从所述第二终端节点向所述第一终端节点行进的代理进行修改。
34.如权利要求31所述的网络,所述网络还包括其中所述第一数据储存库中的导航数据能够由从所述第二终端节点到所述第一终端节点经过预定路径的代理进行修改。
35.如权利要求31所述的网络,所述网络还包括其中所述第二数据储存库中的导航数据能够由从所述第一终端节点到所述第二终端节点经过预定路径的代理进行修改。
36.一种用于识别经过具有多个节点的非对称网络的路径的计算机程序产品,所述计算机程序产品包括具有计算机可读代码的有形存储介质,所述计算机可读程序代码包括用于维护导航信息的第一路由表的程序代码;用于维护导航信息的第二路由表的程序代码;用于经由第三节点从第一节点向第二节点发送第一代理的程序代码,其中所述第一代理通过基于所述第一路由表中的导航信息确定其下一位置节点来独立地从所述第三节点导航到所述下一位置节点;以及用于将所述第二路由表中的导航信息修改为所述第一代理在到达所述第三节点之前经过的路径的函数的程序代码。
37.如权利要求36所述的计算机程序产品,其中,所述第一表的导航信息与所述第二节点相关联。
38.如权利要求36所述的计算机程序产品,其中,所述第二表的导航信息与所述第一节点相关联。
39.如权利要求36所述的计算机程序产品,其中,所述第一路由表中的信息包括关于至少一个下游节点的信息。
40.如权利要求39所述的计算机程序产品,其中,所述第一路由表中的信息包括至少一个加权因子。
41.如权利要求36所述的计算机程序产品,其中,所述第二路由表中的信息包括关于至少一个上游节点的信息。
42.如权利要求41所述的计算机程序产品,其中,所述第二路由表中的信息包括至少一个加权因子。
全文摘要
一种用于建立或加强经过具有互连节点的非对称网络的路径的方法包括以下步骤存储一个或更多个节点处的导航数据,以供代理在从该节点行进到后续节点时使用,所述代理最终从第一终端节点(例如源节点)行进到第二终端节点(例如目的节点)。当所述代理经由中间节点从第一终端节点行进到第二终端节点时,所述代理修改所述导航数据,以供经由所述中间节点从所述第二终端节点行进到所述第一终端节点的代理使用。行进了互补路由的代理加强了每条其他路径,以允许路径被确定和加强。
文档编号H04W40/02GK102246467SQ200980150213
公开日2011年11月16日 申请日期2009年12月10日 优先权日2008年12月15日
发明者P·拉斯科沃斯基 申请人:图形科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1