增强的图遍历的制作方法_2

文档序号:8436166阅读:来源:国知局
与节点N231相关或者相连;节点N234和N235分别通过边212和213来与节点N232相关或者相连;节点N236和N237分别通过边222和223来与节点N233相关或者相连;并且节点N231分别通过边214、215、224和225来与节点N234、N235、N236和N237相关或相连。如在图2中图示的,边211-215和221-225是双向的,但是在其它实现方式中,边可以是非有向、单向的、或者是双向、非有向和单向的组合。换言之,图200可以被称为无向图。
[0022]如上文讨论的,图的节点表示实体,而图的边表示那些实体之间的关系。图3是根据实现方式的由图2中图示的图所表示的环境的图示。在图3中图示的环境包括经由无线通信信道311-315和321-325与彼此通信的一组通信实体。通信实体CE231、CE232、CE233、CE234、CE235、CE236 和 CE237 在图 2 中分别通过节点 N231、N232、N233、N234、N235、N236和N237来表示。通信信道311-315和321-325在图2中分别通过边211-215和221-225来表示。
[0023]通信实体CE231、CE232、CE233、CE234、CE235、CE236 和 CE237 可以是例如包括网状网络内的无线通信接口的计算系统。在该示例中,通信实体CE234、CE235、CE236和CE237位于距通信实体CE231大于通信实体CE234和CE235位于距通信实体CE232以及通信实体CE236和CE237位于距通信实体CE233的距离的距离处。通信实体CE234、CE235、CE236和CE237可以在高功率状态(S卩,高功率传输状态)中分别经由通信信道314、315、324和325直接与通信实体CE231进行通信,并且可以在低功率状态(S卩,低功率传输状态)中分别经由通信信道312、313、322和323间接通过通信实体CE232和CE233来与通信实体CE231进行通信。因此,通信实体CE234、CE235、CE236和CE237均具有可通过其访问通信实体CE231的两个通信信道。因此,在图2中图示的图200表示在通信实体CE231、CE232、CE233、CE234、CE235、CE236和CE237之间的连接性(connectivity)。换言之,在图200的节点之间的关系(即,边 211-215 和 221-225)描述通信实体 CE231、CE232、CE233、CE234、CE235、CE236 和CE237之间的连接性。
[0024]参考图1,可以通过使用各种方法来标识图内的节点的数量。在块110,图分析模块可以例如通过执行图的穷尽搜索以考虑(或者跟随)图内的每条边从而对图内的每个节点进行计数来标识图内的节点的数量。作为另一个示例,可以通过从处理器可读介质中读取图的表示或者经由通信接口接收图的表示来标识图内的节点的数量。
[0025]作为又一个示例,图分析模块可以通过解析图的描述来标识图内的节点的数量。例如,可以使用诸如可扩展标记语言(XML)之类的标记语言在文档中描述图。作为具体示例,XML文档可以包括图元素,所述图元素包括节点元素。每个节点元素可以包括由该节点元素表示的实体的各种元素或者性质,其包括在图元素内标识与该节点元素有关的其它节点元素的一个或者多个参考元素(或者性质)。图分析模块可以解析XML文档(图的描述)以标识图内的节点数目。在又其它实现方式中,图内的节点的数量可以从去往增强的图遍历过程的输入(例如,图内的节点数量可以是去往增强的图遍历的输入)来标识,或者可以是与存储在处理器可读介质处的图有关的元数据。
[0026]在一些实现方式中,标识图内的节点数目可在存储器内构造图时发生。例如,图分析模块可以解析图的描述以基于主控图分析模块的计算系统的存储器内的描述来构造(或者实现或者实例化)图。为了标识图内的节点数目,图分析模块可以对存储器内构造的节点的数目进行计数。
[0027]在一些实现方式中,图分析模块响应于向图添加节点的请求来标识图内的节点数目。例如,节点计数器可以被初始化(例如,初始化为零或者图内节点的已知初始数量),并且在每次接收或者处理(或者操控)添加节点的请求时,节点计数器可以递增。可以通过在存储器内定义节点(例如,为该节点分配或者保留存储器内的存储器位置)以及经由添加将该节点连接到图内的另一节点的至少一条边而将该节点插入到图中来处理添加节点的请求。
[0028]作为具体示例,图可以表示包括经由通信链路与彼此通信的计算系统的网络环境。当每次计算系统被添加到网络环境中时,可以响应于添加该计算系统而生成添加节点的请求,并且节点计数器可以递增。而且,当每次计算系统从网络环境中移除时,可以响应于该计算系统的移除而生成移除表示该计算系统的节点的请求,并且节点计数器可以递减。因此,在一些实现方式中,块I1可以通过持续的、进行中的、或者连续的操作或者操作集来实现。
[0029]在块120,图被遍历。对图进行遍历意味着通过跟随(或者考虑)节点之间的边以特定方式或者序列来访问图内的节点。在一些实现方式中,对图进行遍历(或者图遍历)包括更新和/或标识存储在节点处的值(例如,表示由节点表示的实体的参数的值)。作为示例,图可以表示其中图的节点表示网络环境的通信实体的网络环境,并且图的遍历可以是用来确定从一个节点到另一个节点是否存在通信路径(由图的边或者一组边来表示)或者是否在图的所有节点之间存在通信路径的连接性(或连接度)遍历。
[0030]在一些实现方式中,图遍历可以用于拓扑排序(sort)。用于实现图(诸如有向无环图(DAG))的拓扑排序的遍历以与DAG中所编码(或者所表示)的优先约束的部分次序相一致的线性(总)次序来输出节点。也就是说,拓扑排序的输出可以被可视化为水平线上的图的节点的布置,以使得图中的所有有向边从左向右。拓扑排序(或者实施这样的拓扑排序的遍历)可以通过在图上执行例如深度优先搜索(DFS)来实现。这样的拓扑排序可以由本文讨论的系统和方法来增强。
[0031]作为具体示例,诸如有向无环图(DAG)之类的图可以被用来表示时间优先约束或者位置上的约束。例如,在这样的图中的每个节点可以表示任务,诸如将在计算设施(例如,数据中心或者分布式计算环境)内调度的任务。在这样的图中从第一节点到第二节点的有向边可以表示对应于第一节点的任务应该在对应于第二节点的任务之前执行。在另一个示例中,在这样的图中的节点可以表示实体(例如,对象),而图的边可以表示实体之间的物理关系。从第一节点到第二节点的边可以编码(或者表示)由第一节点所表示的物理实体位于由第二节点表示的实体的左侧,其中第一节点和第二节点两者都位于某个连续体(continuum)上。
[0032]计算基因组学是拓扑排序的示例应用。复杂有机体的基因组的实验室分析有时会产生关于特征(诸如染色体上的基因)位置的未完成(imperfect)或者不完整信息。在一些基因组学实现方式中,关于基因的相对位置的部分次序信息是可得到的。在这样示例中的部分次序信息可以是例如在染色体7上基因5位于基因6之前。这样的信息可以被编码在DAG内。例如,DAG可以包括表示基因5的第一节点、表示基因6的第二节点和从第一节点到第二节点的有向边。这样的图的拓扑排序输出了每个染色体上的基因的看似合理的总次序。也就是与由图的边编码的成对约束相一致的总次序。
[0033]作为另一个示例应用,本文讨论的系统和方法可以被应用到用于路径规划的拓扑排序中。这样的应用对于增强自主和半自主交通工具系统(诸如无人驾驶飞行器(UAV)和无人驾驶汽车)的路由或者路径选择过程的效率(例如,处理效率)可以是有用的。换言之,在这样的应用中,图的节点可以是沿着路径的路径点(waypoint),并且边表示路径点之间的路段。可以使用本文讨论的系统和方法来遍历图以标识特定路径,诸如在路径点对之间的最优路径。作为又一个示例应用,本文讨论的系统和方法可以被应用到用于软件应用的数据和/或程序流分析的拓扑排序中。例如,拓扑排序可以被用来分析软件源代码以确定软件应用内的程序和/或数据流以供最优化和/或安全性分析。
[0034]典型地,图遍历继续进行,直到图的所有边都被考虑以针对图的所有节点而对图穷尽地搜索为止。可替换地,一些图遍历在特定节点(例如,具有特定值的目标节点)
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1