利用基于向量估计的图分割的计算装置的数据流编程的制作方法

文档序号:12801525阅读:199来源:国知局
利用基于向量估计的图分割的计算装置的数据流编程的制作方法

本公开涉及数据处理领域,特别地,涉及与计算装置的数据流编程关联的装置、方法和存储媒体,包括自动分割与用于编程计算装置的程序关联的大数据流图。



背景技术:

本文提供的背景描述用于总体上呈现该公开的上下文的目的。除非本文另行表示,在该部分描述的材料不是本申请权利要求的现有技术并且不因包括于该部分而承认为现有技术。

在数据流编程范例,自动过程可描述为数据流图的形式。为进行数据流程序的性能分析,相关数据流图可被分割为更小的、独立的子图,这些子图可单独分析。该分割可能是所需要的,因为图的不同部分可能具有不同的性能特性并且因此可受益于不同性能解决方案。然而,确定最佳图分割典型地是阻碍有效计算的复杂过程,尤其是随着图尺寸的增加。多个典型图分割过程对于尺寸较大的图缩放并不理想。

附图说明

实施例将通过如下详细描述结合附图而容易理解。为便于该描述,相同参考数字指代相同结构元素。在附图的图中,实施例以示例的形式而非以限制的形式说明。

图1说明了根据多种实施例的包括谱图分割器的图分割系统的示例组件和信息流。

图2说明了根据多种实施例的用于分割图的图分割系统的示例过程。

图3说明了根据多种实施例的用于执行图的谱分割的谱图分割器的示例过程。

图4说明了根据多种实施例的用于估计图的本征向量的示例过程。

图5说明了根据多种实施例适用于实现本公开的多种方面的示例计算环境。

图6说明了根据多种实施例的具有配置为使装置能够实现本公开的多种方面的指令的示例存储介质。

具体实施方式

在如下详细描述中,参考形成其一部分的附图,图中相同数字始终指代相同部件,并且图中以可被实现的说明实施例的形式示出。应当理解,可利用其他实施例并且可改变其结构或逻辑而不偏离本公开的范围。因此,如下详细描述不应视为限制意义,而且实施例的范围由所附权利要求及其等同物定义。

多种操作可以按最有助于理解要求保护的主题的方式描述为多个有顺序的离散动作或操作。然而,描述的顺序不应被解释为暗示这些操作一定是依赖顺序的。特别地,这些操作可不按呈现的顺序执行。描述的操作可以与所描述实施例不同的顺序执行。在附加的实施例中,多种附加的操作可被执行和/或描述的操作可被省略。

对于本公开的目的,词语“a和/或b”表示(a)、(b)或(a和b)。对于本公开的目的,词语“a、b和/或c”表示(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。

描述可使用词语“在一实施例”或“在实施例中”,其每一个可指代一个或多个相同的或不同的实施例。此外,术语“包含”、“包括”、“具有”等,如结合本公开的实施例所使用的,是同义词。

如本文所使用的,术语“逻辑”和“模块”可指代、作为其一部分或包括专用集成电路(asic)、电子电路、处理器(共享、专用或组)和/或执行一个或多个软件或固件程序的存储器(共享、专用或组)、组合逻辑电路、和/或提供所描述功能的其他合适的组件。如本文所描述的,术语“逻辑”和“模块”可指代、作为其一部分或包括片上系统,如下文所述。

在多种实施例中,图分割系统(“gps”)的谱图分割器(“sp”)可配置为执行与用于编程计算装置的程序关联的数据流图的基于估计的分割,从而分割为多个子图。子图可用于执行程序的分析或调试。在执行程序分析或调试之后,程序可用于编程计算装置以执行任务。操作sp的计算装置和被编程的计算装置可为相同或不同的计算装置。计算装置可为本领域已知的任何计算装置,包括但不限于,计算平板、膝上型电脑、桌面电脑或服务器。任务可为从系统服务任务到应用任务的本领域已知的任何任务。

sp可配置为估计一个或多个向量以用于将数据流图(下文简称为“图”)分割为节点的多个群集,从而形成对应子图。sp可配置为生成用于表示图的拉普拉斯矩阵的估计的本征向量。sp可配置为通过所描述的函数的最小化来将估计的本征向量生成为向量v。在多种实施例中,sp可配置为在函数f的最小化期间将向量v的随机坐标设置为0。在估计本征向量之后,设置为0的坐标可重新设置为邻居坐标的均值。

在多种实施例中,sp可配置为生成多个估计的本征向量,以便在将图的节点聚类为多个群集时使用,因此将图分割为多个子图。sp可配置为利用由估计的本征向量所描述的多维空间中的k均值聚类来执行聚类。在多种实施例中,sp还可配置为通过重复生成估计本征向量来细化聚类以描述更高维空间,其中可以进一步执行聚类。sp还可配置为确定群集的质量度量并基于质量度量停止聚类的细化。在多种实施例中,gps还可配置为在利用由sp生成的分割或利用用于分割的一个或多个其他分割器之间选择。例如,gps可利用边缘中心化分割器,用于报告图的一个或多个分割,而非sp。gps可基于多种因素在sp和另一分割器之间选择,诸如由sp确定的用于由sp生成的一个或多个聚类的图的尺寸或质量度量。

现参见图1,示出了根据多种实施例的包括sp150的gps100的组件和信息流。应当注意,尽管说明的是特定组件,但在多种实施例中,gps100和/或sp150可包括其他组件和/或可省略图1说明的一个或多个组件。在多种实施例中,说明的组件可实现为硬件和/或软件,并且可配置为操作于多种形状因子的计算设备,诸如如下描述的计算设备。

在多种实施例中,gps100可接收与用于编程计算装置的程序关联的图(诸如说明的示例图105),以分析且分割为多个子图(在图1中说明为子图195和196),从而便于程序的分析和/或调试。应当注意,尽管图105说明为被分割成两个子图,其用于说明的目的而进行;但在多种实施例中,分割可包括多个数量的子图。

在多种实施例中,图105可包括一个或多个顶点或节点,在图1中说明为多个节点ni。图105还可包括连接节点的一个或多个边,在图1中说明为边ei。在多种实施例中,gps100和sp150特别地可配置为将图105的节点聚类为多个群集,以使连接群集的边的数量被减少,如果不被最小化。在多种实施例中,图105可以多种形式被提供至gps100,如可理解那样。并且,尽管说明的图105仅包含8个节点和11个边,但应当认识到,在多种实施例中,图105可更大,包含数百或数千的节点和/或边,远超出人类的用以有效地人工分割该图的能力。总体上,对于人类而言,具有多于一百个节点和/或边的图难以有效地人工分割。

在多种实施例中,sp150可包括多种组件以对图105执行谱分割。例如,sp150可包括向量估计器110(“ve110”),其可配置为生成一个或多个估计向量,诸如估计本征向量,该向量可帮助图105的分割。在多种实施例中,估计本征向量可为用于描述图105的拉普拉斯矩阵的估计本征向量,如可以理解那样。可在以下发现本征向量和拉普拉斯矩阵的特定描述。在多种实施例中,ve110可配置为通过向量的确定执行本征向量估计,该向量的值基于向量而最小化估计函数。在多种实施例中,ve110可配置为生成多个估计本征向量以用于聚类。ve110还可配置为生成附加的估计本征向量以将聚类细化为更大数量的子图,诸如如下描述的那样。

在多种实施例中,sp150还可包括群集确定器120(“cd120”)。在多种实施例中,cd120可配置为基于由ve110生成的估计本征向量而将图105的节点聚类为多个群集。在多种实施例中,cd120可配置为将图105的节点表示为由生成估计本征向量所描述的多维空间的点。在多种实施例中,cd120可配置为执行k均值聚类,以在多维空间中聚类图105的节点,如能够理解的那样。在其它实施例中,cd120可执行其他过程,用于聚类图的节点,如能够理解的那样。

在多种实施例中,sp150可包括质量度量确定器130(“qm130”),其可配置为确定一个或多个质量度量,用于由cd120确定聚类。如本文所描述的,在多种实施例中,质量度量可包括模块化度量和/或群集路径长度度量。在多种实施例中,其他质量度量可由qm130确定。在多种实施例中,sp150可包括细化控制器140(“rc140”),其可配置为控制sp150以重复通过ve110的估计的本征向量估计以及通过cd120的群集确定,用于更大数量的估计本征向量和/或更高数量的群集,以确定更高质量的分割。在多种实施例中,rc140可配置为将向量估计和群集确定的控制基于由qm130确定的质量度量。例如,rc140可配置为在质量度量继续增加时增加向量和群集数量。一旦质量度量停止增加(或未能增加超过一个或多个阈值),rc140可通过sp150及其构成组件停止进一步分割。

在多种实施例中,gps100可包括组件,其可用于分割的控制以及分割的报告。在多种实施例中,gps100可包括分割器选择器160(“ps160”),其可配置为在使用sp150进行的分割或利用一个或多个其他分割组件(诸如边缘中心化分割器180(“ecp180”))分割之间选择。在多种实施例中,ps160可配置为基于图105的一个或多个质量(诸如图的尺寸或复杂度)而在分割器之间选择。在其它实施例中,ps160可配置为选择查看用于由sp150提供的聚类的质量度量,并确定聚类具有的质量是否足以报告为来自gps100的结果。如果聚类不具有足够的质量,ps160可利用ecp180或其他图分割器,以执行图105的分割。

在多种实施例中,ecp180可执行一个或多个边缘中心化分割过程。在多种实施例中,边缘中心化图分割过程可计算边缘中心化并删除具有较大中心化值的边。该过程可继续直到图105变得断开连接并且群集质量度量可被计算以查看最近删除的边是否导致更好的群集质量度量。如果质量改进,则该过程可继续直到已经进行足够的分割。如果质量恶化,则删除的边可增加回到图。在多种实施例中,由ecp180执行的技术可提供高质量度量至sp150。然而,在多种实施例中,与sp150相比,ecp180可对给定尺寸的图更慢地执行其分割;该效率差值可随输入图尺寸的增长而快速增长。

gps100还可包括报告器190,其可配置为报告由sp150或其他分割器执行的分割结果,用于分析或调试程序。在多种实施例中,报告器190可配置为以多种形式提供结果,例如,子图195和196描述的节点的标识。在多种实施例中,报告器可配置为直接报告分割至数据结构的存储设备,用于分析器或调试器(未示出)的后续访问,和/或报告至用户,诸如经由文本报告(未示出)。用于报告子图195和196的其他技术可被理解。

现参见图2,说明根据多种实施例的用于gps100以分割图的示例过程200。尽管图2说明了特定顺序的特定操作,但在多种实施例中,操作可被合并、划分为部分、和/或省略。在多种实施例中,gps100可执行图2的过程,以选择哪个分割器用于分割输入的图,以及执行分割本身。

过程可开始于决定操作210,其中gps100可接收用于分割的图105。在多种实施例中,图105可包括一个或多个节点以及连接节点的一个或多个边的表示或记录。在多种实施例中,图105可为有向或无向图,并且可包括或不包括边缘权重。在多种实施例中,gps100可配置为将有向图转换为无向图。接下来,在决定操作215,ps160可确定图的尺寸是否足够小,以使诸如由ecp180执行的非估计分割技术可被执行而不产生不希望的处理时间。例如,如果图的尺寸少于100个节点,则ps160可选择ecp180用于分割。在多种实施例中,如果图足够小,则过程然后可进入操作250,其中ecp180可执行边缘中心化过程,用于将图105分割为子图(例如,子图195和196)。过程然后可进入操作260,其中子图可由gps100报告。应当注意,在其它实施例中,ps160可配置为分析图105的其他质量,诸如图的连通性或其他图度量,而不是分析图的尺寸或不仅仅分析图的尺寸。

然而,如果在决定操作215,ps160确定图105对于非估计分割过大(或估计分割出于某些其他原因是可用的),则在操作220,sp150可对图105执行估计谱分割以确定图105的节点的一个或多个聚类。操作220的过程的特定实施例可参考图3的过程300在下文描述。

接下来,在操作230,qm130可确定聚类的质量度量。在某些实施例中,质量度量可在sp150分割图105的过程中由qm130确定。在其它实施例中,质量度量可在sp150分割图105之后,确定,用于由sp150生成的一个或多个分割。在多种实施例中,gps100可包括除qm130外的质量度量确定器,用于该确定。

在多种实施例中,质量度量可包括表示图105中的当前聚类的特性的多种度量,诸如连通性、紧密度或其他特性。例如,在多种实施例中,在操作230,qm130可计算用于聚类的模块化度量q。qm130可利用如下示出的公式(1)计算模块化度量q。为计算q,qm130可构造k×k矩阵e,其中k为图105中发现的群集或分割的数量。e的每个元素eij可为图105中链接群集i中的节点与群集j中的顶点的所有边的片段。矩阵e的值可基于原始图105确定。行总和ai可定义为ai=∑jeij,并且表示连接至群集i中的节点的边的片段。如公式(1)所示,模块化测量q可等于矩阵e的迹减去矩阵e2的元素之和。值q接近零可表示群集内的边的数量不好于顶点之间的随机连接的期望值,并且因此可表示较差的聚类。q值接近1,即最大值,可表示较好的聚类。

在某些实施例中,在操作230,qm130可计算修改的群集路径长度度量,用于聚类。由qm130计算的修改的群集路径度量可在合理的群集中最大化大图的数量和尺寸和相对于模块化度量q的用于相似聚类的峰值。类似于模块化度量q,修改的群集长度的更高值可表示更好的聚类。如公式(2)所示,修改的群集路径长度m可等于加分量m+减去四倍的减分量m-

m=m+-4m-(2)

加分量m+可计算为公式(3)所示。公式3的项ni可表示群集i内的节点的数量,而项n表示图105中的节点的数量。因此,加分量m+可等于图105中比每个群集中的节点之间的平均距离大的节点之间的平均距离之和,由每个群集中的节点的相对数量加权。

减分量m-可计算为公式(4)所示。正如所示,减分量m-可包括边缘密度,其可计算为公式(5)所示。边缘密度可表示图105中的边的数量相对于可包括于图105中的边的最大可能数量的比率。减分量m-中包括边缘密度可防止稀疏图105的过度聚类。

接下来,在决定操作245,sp150可查看确定的质量度量,以确定聚类质量是否足够。在多种实施例中,sp150可比较确定的质量度量与一个或多个阈值,以执行决定操作245的确定。在多种实施例中,如果q的值大于.3,和/或如果m的值为大的正整数,sp150可确定聚类质量足够高。在决定操作245,如果sp150确定聚类质量不够高,则在操作250,ecp180可执行边缘中心化过程,用于将图105分割为子图(例如,子图195和196)。无论如何,在操作260,由sp150或ecp190确定的子图可由gps100报告。

现参见图3,根据多种实施例来说明执行图105的谱分割的sp150的示例过程300。在多种实施例中,过程300可全部或部分被执行以实现图2的过程200的操作220。尽管图3说明了按特定顺序的特定操作,在多种实施例中,操作可被合并、划分为部分、和/或省略。过程可开始于操作310,其中ve110可近似图105的本征向量的初始集。操作310的过程的特定实施例可在如下参考图4的过程400描述。在多种实施例中,操作310可被重复以形成图105的五个估计的本征向量的初始集。然而,在其它实施例中,可利用其他尺寸的初始集。

现参见图4,根据多种实施例来说明用于估计图的本征向量的示例过程400的示例过程。在多种实施例中,可执行过程400以实现图3的过程300的操作310的全部或部分。尽管图4说明了特定顺序的特定操作,但在多种实施例操作可被合并、划分为部分、和/或省略。过程可开始于操作410,其中ve110可生成图105的拉普拉斯矩阵。在多种实施例中,图105的拉普拉斯矩阵可包括根据图105的节点和边的通过如下定义(6)而定义的矩阵:

在多种实施例中,操作420-460可参考以下公式(7)执行。在多种实施例中,ve110可配置为在操作420-460进行期间设置并最小化公式(7)的函数:

其中n为图105中节点的数量,vi为v的第i个坐标,c为常量,而总和通过所有坐标vi和vj得到,其中节点i和j由图的边连接(表示为i~j)。在多种实施例中,通过最小化公式(7)中f的值,可获取向量v,其可用于提供操作410的拉普拉斯矩阵的估计本征向量。应当注意,在多种实施例中,公式(7)的最后一项,例如(n-||v||2),可被平方以迫使v的量级的平方接近n(其中,增加1/n因数用于正则化)。接下来,在操作420,ve110可选择常量c用于公式(7)。在某些实施例中,在操作420,c可被选择为约等于图105中的度的倒数的值。

接下来,在操作430,ve110可选择v的随机坐标并设置坐标为0。在多种实施例中,ve110可设置坐标为0,以避免估计过程导致较小的本征向量。接下来,在操作440,ve110可将v的剩余坐标设置为随机值。在操作450,ve110然后可对公式(7)的函数执行梯度下降以最小化f。在多种实施例中,可理解用于执行梯度下降的技术。在其它实施例中,可利用用于最小化函数f的其他技术。在操作450之后,在操作460,ve110然后可将在操作430设置为0的坐标替换为新的值。在多种实施例中,设置为0的坐标可设置为其邻居的均值。例如,如果v的第i个坐标vi在操作430设置为0,则vi可设置为vi-1和vi+1的均值。在完成操作460之后,v可用作图105的拉普拉斯矩阵的估计本征向量。然后过程可结束。

现在回到图3,在操作320,cd120可表示在操作310由ve110生成的估计的本征向量所描述的n维空间中的图的节点。例如,如果,在操作310,估计了5个本征向量,然后在操作320,图可在由这些本征向量所描述的5维空间中表示。在多种实施例中,表示n维空间中节点的技术为已知。接下来,在操作330,可执行k均值聚类以将图的表示的节点分割为k个群集,以使节点被标识为具有最近均值的群集,如能够理解那样。在多种实施例中,在操作330,该聚类产生首次发生时,k可设置为2,以确定两个群集。然而,在其它实施例中,可确定不同数量的群集。

接下来,在操作340,可记录在操作330获取的聚类,并且在操作350,可由qm130确定聚类的质量度量。在多种实施例中,qm130可确定q和/或m度量,如上所述。接下来,在决定操作355,rc140可确定操作350确定的质量度量相对于先前确定的度量是否仍然充分地增加。在多种实施例中,在决定操作355,一个或多个质量度量(如果存在)的增加量可与阈值比较,以确定增加量是否足以进行进一步细化。

如果质量度量充分增加,则可确定从进一步细化可改进聚类并且过程可进入操作370,其中可由ve110估计附加的本征向量。类似于操作310,操作370的过程的特定实施例可在如下参考图4过程400描述。接下来,在操作380,cd120可将k值增加1以使cd120在下一迭代将图105分割为较大数量的群集。然后过程可返回操作320,用于为新的k值确定的新的聚类。然而,如果在决定操作355确定质量度量增加不足,则在操作360,cd120可报告具有已被记录质量度量之外的更高质量度量的一个或多个群集,作为最终分割。然后过程可结束。

现在参见图5,根据多种实施例说明了示例计算机,其适用于实现本公开的多种方面,包括图2-4的过程。正如所示,计算机500可包括一个或多个处理器或处理器核502、和系统存储器504。对于包括权利要求的本申请的目的,术语“处理器”和“处理器核”可考虑为同义词,除非上下文明确存在其他需要。附加地,计算机500可包括大容量存储设备506(诸如磁盘、硬盘驱动、压缩盘只读存储器(cd-rom)等)、输入/输出设备508(诸如显示器、键盘、光标控制、远程控制、游戏控制器、图像捕获设备等)和通信接口510(诸如网络接口卡、调制解调器、红外接收器、无线电收发器(例如,蓝牙、wi-fi、近场通信、射频标签等)。元素可经由系统总线512相互耦合,其可表示一个或多个总线。在多个总线的情况下,其可由一个或多个总线桥(未示出)桥接。

这些元素均可执行其本领域已知的传统功能。特别地,系统存储器504和大容量存储设备506可用于存储编程指令的工作副本和永久副本,所述编程指令实现与参考图2-4描述的分割技术关联的一个或多个操作,诸如sp150、ps160、ecp180和/或报告器190,统称为计算逻辑522。多个元素可由处理器502支持的汇编指令或可编译为该指令的高级语言,诸如c语言实现。在多种实施例中,系统存储器504或大容量存储506可包括多种存储器实现,包括集成闪速存储器,诸如片上系统、usb闪速驱动、sd卡、satassd等。

编程指令的永久副本可在工厂或现场,通过例如分发介质(未示出)(诸如压缩盘(cd))或通过通信接口510(来自分布式服务器(未示出))而放置于永久存储设备506。在实施例中,编程指令可存储于一个或多个计算机可读非暂时存储媒体。在其它实施例中,编程指令可编码在暂时存储媒体,诸如信号。

元素510-512的数量、性能和/或容量可以变化。其组成均以其他方式被公知,并且因此将不再进一步描述。

图6说明了示例的至少一个计算机可读存储介质602,其具有指令,该指令配置为实现与根据多种实施例的较早描述的技术关联的操作的全部或选定操作。如所说明的,至少一个计算机可读存储介质602可包括多个编程指令604。编程指令604可配置为使设备例如计算机500能够响应于编程指令的执行,而执行例如上述图的过程的多种操作,例如但不限于,多种操作被执行以实现本文描述的分割技术。在备选实施例中,编程指令604还可设置于多个计算机可读存储媒体602的至少一个。

回到图5,对于一个实施例,至少一个处理器502可与具有配置为实现图2-4的过程的各方面的计算逻辑522的存储器封装在一起。对于一个实施例,至少一个处理器502可与具有配置为实现图2-4的过程的各方面的计算逻辑522的存储器封装在一起,以形成封装系统(sip)。对于一个实施例,至少一个处理器502可与具有配置为实现图2-4的过程的各方面的计算逻辑522的存储器集成于同一晶片上。对于一个实施例,处理器502的至少一个可与具有配置为实现图2-4的过程的各方面的计算逻辑522的存储器封装在一起以形成片上系统(soc)。对于至少一个实施例,soc可利用于,例如但不限于,计算平板,(例如,wi-fi、蓝牙、低功率蓝牙、近场通信、射频标签(rfid)等)以及满足系统的功能和非功能需求所必需的其他组件。

用于执行上述技术的计算机可读媒体(包括至少一个计算机可读媒体)、方法、装置、系统和设备是本文公开的实施例的说明性示例。附加地,上述交互的其他设备可配置为执行多种公开技术。本文描述的实施例的特定示例包括但不限于以下:

示例1可包括一种计算装置,配备为支持数据流编程。该计算装置可包括一个或多个计算处理器和用于操作于该一个或多个计算处理器的谱图分割器,以将与程序关联的数据流图分割为多个子图。该谱图分割器可包括向量估计器,用于生成一个或多个估计向量以将该图分割为多个子图。该谱图分割器还可包括群集确定器以基于多个估计向量定义多维空间并且聚类该图的节点以形成该多维空间中的多个子图。该多个子图可用于分析或调试该程序并且该程序可用于编程该计算装置或另一计算装置以执行任务。

示例2可包括示例1的计算装置,其中该向量估计器可通过生成描述该图的拉普拉斯矩阵的本征向量而生成该一个或多个估计向量。

示例3可包括示例2的计算装置,其中该向量估计器可通过所描述的函数的最小化而将本征向量生成为向量v,其中n为该图中的顶点数量并且c为常量。

示例4可包括示例3的计算装置,其中该函数的最小化可包括对该函数f执行梯度下降。

示例5可包括示例3的计算装置,其中该常量c的值可至少部分地基于并且为该图的度的倒数。

示例6可包括示例3的计算装置,其中生成本征向量可包括在最小化该函数f之前将该向量v的一个坐标设置为0。

示例7可包括示例6的计算装置,其中生成本征向量可包括在最小化该函数f之后,将已被设置为0的坐标设置为其坐标邻居的均值。

示例8可包括示例1-7的任一个的计算装置,其中该群集确定器可通过k均值聚类过程的执行而将该图的节点聚类,以形成该多个子图。

示例9可包括示例1-8的任一个的计算装置,其中该谱图分割器进一步可包括质量度量确定器,以对该图的节点的给定聚类确定用于该节点的聚类的一个或多个质量度量。

示例10可包括示例9的计算装置,其中该质量度量确定器可确定用于该节点的聚类的模块化度量。

示例11可包括示例9的计算装置,其中该质量度量确定器可确定用于该节点的聚类的群集路径长度度量。

示例12可包括示例9的计算装置,其中该谱图分割器进一步可包括细化控制器以至少部分地基于该一个或多个质量度量来重复估计向量的生成和该图的节点的聚类。

示例13可包括示例12的计算装置,其中该细化控制器可使图的节点聚类为由于可生成附加的估计向量而增加的数量的集群。

示例14可包括示例1-13的任一个的计算装置,并且可进一步包括分割器选择器,以在利用该谱图分割器或该装置的一个或多个其他图分割器之间选择。

示例15可包括示例14的装置,其中该分割器选择器可至少部分地基于该图的尺寸而进行选择。

示例16可包括示例14的装置,其中该分割器选择器可至少部分地基于为由该谱分割器生成的一个或多个聚类确定的一个或多个质量度量而被选择。

示例17可包括示例14的装置,其中该分割器选择器可在该谱分割器和边缘中心化分割器之间选择。

示例18可包括用于支持数据流编程的计算机实现的方法。该方法可包括通过计算系统接收与程序关联的数据流图;由该计算系统生成一个或多个估计向量以将该图分割为多个子图;基于该多个估计向量由该计算系统定义多维空间;并且由该计算系统聚类该图的节点以在该多维空间形成该多个子图。该多个子图可用于分析或调试该程序并且该程序可用于编程该计算系统或另一计算系统以执行任务。

示例19可包括示例18的方法,其中生成该一个或多个估计向量可包括生成描述该图的拉普拉斯矩阵的本征向量。

示例20可包括示例19的方法,其中生成本征向量可包括通过最小化由所描述的函数而将本征向量生成为向量v,其中n为该图中的顶点数量并且c为常量。

示例21可包括示例20的方法,其中最小化该函数可包括对该函数f执行梯度下降。

示例22可包括示例20的方法,并且可进一步包括利用该计算系统,该计算系统至少部分地基于并且为该图的度的倒数的常量c的值。

示例23可包括示例20的方法,其中生成本征向量可包括在最小化该函数f之前将该向量v的一个坐标设置为0。

示例24可包括示例23的方法,其中生成本征向量可包括在最小化该函数f之后,将已被设置为0的坐标设置为其坐标邻居的均值。

示例25可包括示例18-24的任一个的方法,其中聚类该图的节点以形成该多个子图可包括执行k均值聚类过程。

示例26可包括示例18-25的任一个的方法,并且可进一步包括:对给定该图的节点的聚类,由该计算系统确定用于该节点的聚类的一个或多个质量度量。

示例27可包括示例26的方法,其中确定一个或多个质量度量可包括确定用于该节点的聚类的模块化度量。

示例28可包括示例26的方法,其中确定一个或多个质量度量可包括确定用于该节点的聚类的群集路径长度度量。

示例29可包括示例26的方法,并且可进一步包括至少部分地基于该一个或多个质量度量使得通过该计算系统进行重复估计向量的生成以及该图的节点的聚类。

示例30可包括示例29的方法,并且可进一步包括使得通过该计算系统进行将该图的节点聚类为由于可生成附加的估计向量而增加的数量的群集。

示例31可包括示例18-30的任一个的方法,并且可进一步包括由该计算系统在利用该谱图分割器或该装置的一个或多个其他图分割器之间选择。

示例32可包括示例31的方法,其中选择可包括至少部分地基于该图的尺寸而选择。

示例33可包括示例31的方法,其中选择可包括至少部分地基于为由该谱分割器生成的一个或多个聚类确定的一个或多个质量度量而选择。

示例34可包括示例31的方法,其中选择可包括在谱分割过程和边缘中心化分割过程之间选择。

示例35可包括一个或多个计算机可读媒体,包含写入其上的指令,其响应于在计算系统上执行,使计算系统支持数据流编程。该指令可使计算系统:接收与程序关联的数据流图,生成一个或多个估计向量以将该图分割为多个子图,基于该多个估计向量定义多维空间,以及聚类该图的节点以形成该多维空间中的多个子图。该多个子图可用于分析或调试该程序并且该程序可用于编程该计算系统或另一计算系统以执行任务。

示例36可包括示例35的计算机可读媒体,其中生成一个或多个估计向量可包括生成描述该图的拉普拉斯矩阵的本征向量。

示例37可包括示例36的计算机可读媒体,其中生成本征向量可包括通过最小化所描述的函数而将本征向量生成为向量v,其中n为该图中的顶点的数量并且c为常量。

示例38可包括示例37的计算机可读媒体,其中最小化该函数可包括对该函数f执行梯度下降。

示例39可包括示例37的计算机可读媒体,其中该指令可进一步使计算系统利用至少部分地基于并且为该图的度的倒数的常量c的值。

示例40可包括示例37的计算机可读媒体,其中生成本征向量可包括在最小化该函数f之前将该向量v的一个坐标设置为0。

示例41可包括示例40的计算机可读媒体,其中生成本征向量可包括:在最小化该函数f之后将已被设置为0的坐标设置为其坐标邻居的均值。

示例42可包括示例35-41的任一个的计算机可读媒体,其中聚类该图的节点以形成该多个子图可包括执行k均值聚类过程。

示例43可包括示例35-42的任一个的计算机可读媒体,其中该指令可进一步使计算系统对给定该图的节点的聚类确定用于该节点的聚类的一个或多个质量度量。

示例44可包括示例43的计算机可读媒体,其中确定一个或多个质量度量可包括确定用于该节点的聚类的模块化度量。

示例45可包括示例43的计算机可读媒体,其中确定一个或多个质量度量可包括确定用于该节点的聚类的群集路径长度度量。

示例46可包括示例43的计算机可读媒体,其中该指令可进一步使计算系统至少部分地基于该一个或多个质量度量而重复估计向量的生成以及该图的节点的聚类。

示例47可包括示例46的计算机可读媒体,其中该指令可进一步使计算系统将该图的节点聚类为由于可生成附加的估计向量而增加的数量的群集。

示例48可包括示例35-47的任一个的计算机可读媒体,其中该指令可进一步使计算系统在利用该谱图分割器或该装置的一个或多个其他图分割器之间选择。

示例49可包括示例48的计算机可读媒体,其中选择可包括至少部分地基于该图的尺寸而选择。

示例50可包括示例48的计算机可读媒体,其中选择可包括至少部分地基于为用于由该谱分割器生成的一个或多个聚类确定的一个或多个质量度量而选择。

示例51可包括示例48的计算机可读媒体,其中选择可包括在谱分割过程和边缘中心化分割过程之间选择。

示例52可包括用于支持数据流编程的计算装置。该装置可包括:用于接收与程序关联的数据流图的部件;用于生成一个或多个估计向量以将该图分割为多个子图的部件;用于基于该多个估计向量定义多维空间的部件;以及用于聚类该图的节点以形成该多维空间中的多个子图的部件。该多个子图可用于分析或调试程序并且该程序可用于编程该计算装置或另一计算装置以执行任务。

示例53可包括示例52的计算装置,其中用于生成该一个或多个估计向量的部件可包括用于生成描述该图的拉普拉斯矩阵的本征向量的部件。

示例54可包括示例53的计算装置,其中用于生成本征向量的部件可包括用于通过最小化所描述的函数而将本征向量生成为向量v的部件,其中n为该图中的顶点的数量并且c为常量。

示例55可包括示例54的计算装置,其中用于最小化该函数的部件可包括用于对该函数f执行梯度下降的部件。

示例56可包括示例54的计算装置,其中用于最小化该函数的部件利用常量c的值,其至少部分地基于并且为该图的度的倒数。

示例57可包括示例54的计算装置,其中用于生成本征向量的部件可包括用于在最小化该函数f之前将向量v的一个坐标设置为0的部件。

示例58可包括示例57的计算装置,其中用于生成本征向量的部件可包括用于在最小化该函数f之后将已被设置为0的坐标设置为其坐标邻居的均值的部件。

示例59可包括示例52-58的任一个的计算装置,其中用于将该图的节点聚类以形成该多个子图的部件可包括用于执行k均值聚类过程的部件。

示例60可包括示例52-59的任一个的计算装置,并且可进一步包括用于对给定该图的节点的聚类确定用于该节点的聚类的一个或多个质量度量的部件。

示例61可包括示例60的计算装置,其中用于确定一个或多个质量度量的部件可包括用于确定用于该节点的聚类的模块化度量的部件。

示例62可包括示例60的计算装置,其中用于确定一个或多个质量度量的部件可包括用于确定用于该节点的聚类的群集路径长度度量部件。

示例63可包括示例60的计算装置,并且可进一步包括用于至少部分地基于该一个或多个质量度量而重复估计向量的生成和该图的节点的聚类的部件。

示例64可包括示例63的计算装置,并且可进一步包括用于使该图的节点聚类为由于可生成附加的估计向量而增加的数量的群集的部件。

示例65可包括示例52-64的任一个的计算装置,并且可进一步包括用于在利用该谱图分割器或该装置的一个或多个其他图分割器之间选择的部件。

示例66可包括示例65的计算装置,其中用于选择的部件可包括用于至少部分地基于该图的尺寸而选择的部件。

示例67可包括示例65的计算装置,其中用于选择的部件可包括用于至少部分地基于为由该谱分割器生成的一个或多个聚类确定的一个或多个质量度量而选择的部件。

示例68可包括示例65的计算装置,其中用于选择的部件可包括用于在谱分割过程和边缘中心化分割过程之间选择的部件。

尽管出于描述的目的,在本文说明和描述某些实施例,但计算以实现相同的目的的多种可选和/或等价的实施例或实现可替换示出和描述的实施例而不偏离本公开的范围。本申请意图覆盖本文讨论的实施例的任何修改或变型。因此,明确的意图在于,本文描述的实施例仅由权利要求限定。

在公开陈述“一个”或“第一”元素或其等同概念时,该公开包括一个或多个该元素,不需要也不排除两个或更多这样的元素。进一步,使用了用于标识的元素的序数标示符(例如,第一、第二或第三),以在元素之间区分,而不表示或暗示对这样的元素的数量的要求或限制,或者它们不表示这样的元素的特定位置或顺序,除非另有专门说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1