书签 分享 收藏 举报 版权申诉 / 18

从复杂网络中识别模块化结构的方法和工具.pdf

  • 上传人:1***
  • 文档编号:4058384
  • 上传时间:2018-08-13
  • 格式:PDF
  • 页数:18
  • 大小:4.98MB
  • 摘要
    申请专利号:

    CN201080051364.2

    申请日:

    2010.10.21

    公开号:

    CN102667710A

    公开日:

    2012.09.12

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 7/00申请日:20101021|||公开

    IPC分类号:

    G06F7/00

    主分类号:

    G06F7/00

    申请人:

    北京华金瑞清生物医药技术有限公司

    发明人:

    王瑞; 陈星原; 李化常

    地址:

    100085 北京市海淀区开拓路5号生物医药园A301室

    优先权:

    专利代理机构:

    代理人:

    PDF完整版下载: PDF下载
    内容摘要

    本发明涉及一种用于从复杂网络中鉴定模型结构的工具,其使用了一个具有一个CPU和一个并行处理设备的计算系统。该工具包括一个用于读取任务数据的数据读取工具;一个用于储存一套预设子模块的模块储存工具,这些子模块各自指示着一个特殊进程;一个用于确定任务模块的确定工具,从而根据任务数据从一套分别指示着一个特定进程的预设子模块中分配子任务进程,这些子任务进程将会分别由并行处理设备上的多重并行处理器中执行;一个用于接收由确定工具转换而来的任务模块的第一界面;一个用于根据多重并行处理器将任务数据分为多重数据子集的发报机工具;一个用于接收由发报机转换而来的任务数据的第二界面;一个用于接收由第一界面转换而来的任务模块的第一前端;一个用于接收由第一前端传递过来的任务模块,产生能被多重并行处理器从任务模块中读取的子任务进程,以及分配这些子任务进程到多重并行处理器的程序汇编工具;一个用于接收来自于第二界面的多重数据子集,并将这些多重数据子集分别传递给多重并行处理器的第二前端;用于分别平行执行子任务进程,这些子任务进程是由程序汇编工具根据数据子集分配形成的,并获得平行结果的多重并行处理器;以及一个用于处理平行结果,从复杂网络中获得模型结构

    权利要求书

    1: 一种从复杂网络中鉴定模型结构的方法, 其使用一个具有一个 CPU 和一个并行处理 设备的计算系统, 该方法的特征是, 通过 CPU 上的一个数据读取工具读取任务数据, 其中任务数据包括复杂网络中的节 点, 具有指示节点间关系数值的边缘, 以及复杂网络中任务被执行的任务参数。 通过 CPU 上的一个确定工具确定任务模块, 从而根据任务数据从一套分别指示着一个 特定进程的预设子模块中分配子任务进程, 这些子任务进程将会分别由并行处理设备上的 多重并行处理器中执行, 并将任务模块转换到 CPU 上的第一界面。 通过第一界面将任务模块转换到并行处理设备上的第一前端。 通过第一前端将任务模块传递给并行处理设备上的程序汇编工具。 由程序汇编工具产生子任务进程, 这些子任务进程能被多重并行处理器从任务模块中 读取, 并将这些子任务进程分配给多重并行处理器。 由 CPU 上的发报机工具根据多重并行处理器将任务数据分为多重数据子集。 由 CPU 上的第二界面将多重数据子集转换到并行处理设备上的第二前端。 由第二前端分别将多重数据子集传递给多重并行处理器。 由多重并行处理器分别平行执行子任务进程, 其中这些子任务进程是由程序汇编工具 根据数据子集分配的, 来获得平行结果。 以及由分类工具处理平行结果来获得复杂网络中的模型结构。
    2: 权利要求 1 所述的方法, 其中的并行处理设备是一个图表处理器, 其分布于局域网 或万维网。
    3: 权利要求 1 所述的方法, 其中的任务模块包括图表搜索子模块和中间值子模块的组 合, 或最短路径子模块和中间值子模块的组合。
    4: 权利要求 1 所述的方法, 其中的节点代表不同的基因或蛋白, 数值代表这些节点间 的特定相互作用。
    5: 权利要求 1 所述的方法, 其中的节点代表一个团体中的不同成员, 数值代表这些节 点间的特定关系。
    6: 权利要求 1 所述的方法, 其进一步的特征是, 由 CPU 上的网络数据工具提取复杂网络数据, 这些网络数据包括节点和有数值的边 缘。 以及由 CPU 上的数据储存工具将复杂网络数据作为任务数据的一部分进行储存。
    7: 权利要求 1 所述的方法, 其中的模型结构是由多重的团体组成, 这些团体各自分别 含有紧密相关的节点。
    8: 一套从复杂网络中鉴定模型结构的工具, 其使用的是一个具有一个 CPU 和一个并行 处理设备的计算系统, 该工具的特征是, 位于 CPU 上的数据读取工具, 用于读取任务数据, 这些任务数据包括复杂网络中的节 点, 具有指示节点间相互关系数值的边缘, 以及复杂网络中执行一个任务的任务参数。 位于 CPU 上的模块储存工具, 用于储存一套预设的子模块, 这些子模块各自指示着一 个特殊的进程。 位于 CPU 上的确定工具, 用于确定任务模块, 从而根据任务数据从一套分别指示着一 个特定进程的预设子模块中分配子任务进程, 这些子任务进程将会分别由并行处理设备上 2 的多重并行处理器中执行。 位于 CPU 上的第一界面, 用于接收由确定工具转换而来的任务模块。 位于 CPU 上的发报机工具, 用于根据多重并行处理器将任务数据分为多重数据子集。 位于 CPU 上的第二界面, 用于接收由发报机转换而来的任务数据。 位于并行处理设备上的第一前端, 其连接着第一界面, 用于接收由第一界面转换而来 的任务模块。 位于并行处理设备上的程序汇编工具, 用于接收由第一前端传递过来的任务模块, 产 生能被多重并行处理器从任务模块中读取的子任务进程, 以及分配这些子任务进程到多重 并行处理器。 位于并行处理设备上的第二前端, 其连接着第二界面, 用于接收来自于第二界面的多 重数据子集, 并将这些多重数据子集分别传递给多重并行处理器。 多重并行处理器, 用于分别平行执行子任务进程, 这些子任务进程是由程序汇编工具 根据数据子集分配形成的, 获得平行结果。 以及分类工具, 用于处理平行结果, 获得复杂网络中的模型结构。
    9: 权利要求 8 所述的工具, 其中的并行处理设备是一个图表处理器, 其分布于局域网 或万维网。
    10: 权利要求 8 所述的工具, 其中的任务模块包括图表搜索子模块和中间值子模块的 组合, 或最短路径子模块和中间值子模块的组合。
    11: 权利要求 8 所述的工具, 其中的节点代表不同的基因或蛋白, 数值代表这些节点间 的特定相互作用。
    12: 权利要求 8 所述的工具, 其中的节点代表一个团体中的不同成员, 数值代表这些节 点间的特定关系。
    13: 权利要求 8 所述的工具, 其进一步的特征是, 网络数据读取器, 用于提取图表, 这些图表代表了节点和有数值的边缘。 以及数据储存器, 用于将图片作为任务数据进行储存。
    14: 权利要求 8 所述的工具, 其中的模型结构是由多重的团体组成, 这些团体各自分别 含有紧密相关的节点。
    15: 一个用于从复杂网络中鉴定模型结构的系统, 其包括一个 CPU 和一个并行处理设 备, 其中, CPU 包括, 数据读取工具, 用于读取任务数据, 这些任务数据包括复杂网络中的节点, 具有指示节 点间相互关系数值的边缘, 以及复杂网络中执行一个任务的任务参数。 模块储存工具, 用于储存一套预设的子模块, 这些子模块各自指示着一个特殊的进程。 确定工具, 用于确定任务模块, 从而根据任务数据从一套分别指示着一个特定进程的 预设子模块中分配子任务进程, 这些子任务进程将会分别由并行处理设备上的多重并行处 理器中执行。 第一界面, 用于接收由确定工具转换而来的任务模块。 发报机工具, 用于根据多重并行处理器将任务数据分为多重数据子集。 以及第二界面, 用于接收由发报机转换而来的任务数据。 3 并行处理设备包括, 位于并行处理设备上的第一前端, 其连接着第一界面, 用于接收由第一界面转换而来 的任务模块。 位于并行处理设备上的程序汇编工具, 用于接收由第一前端传递过来的任务模块, 产 生能被多重并行处理器从任务模块中读取的子任务进程, 以及分配这些子任务进程到多重 并行处理器。 位于并行处理设备上的第二前端, 其连接着第二界面, 用于接收来自于第二界面的多 重数据子集, 并将这些多重数据子集分别传递给多重并行处理器。 多重并行处理器, 用于分别平行执行子任务进程, 这些子任务进程是由程序汇编工具 根据数据子集分配形成的, 获得平行结果。 以及分类工具, 用于处理平行结果, 获得复杂网络中的模型结构。

    说明书


    从复杂网络中识别模块化结构的方法和工具

        技术领域 本发明主要涉及模块化结构的识别, 特别是一种从复杂网络中识别模块化结构的 方法和工具, 以及一个计算系统。
         技术背景 复杂网络是指具有复杂拓扑特征的网络。复杂网络的研究因诸如生物技术网络 (细胞网络, 蛋白相互作用网络, 神经网络) , 互联网 / 万维网, 社交网络等真实网络的实证研 究而被激发。 这些真实网络最广泛的特征之一是存在模块化结构或群组, 例如, 如果用一个 图来代表一种复杂网络, 群组由顶点组织, 同一群组中含有许多边以及相对较少的边连接 不同群组的顶点。从复杂网络中识别模块化结构对理解图表描述的实际问题具有重要意 义, 例如, 追踪在线病毒, 社交网络服务中的社会行为分析, 检测重要基因功能等等。
         目前已经有一些方法可以利用串行计算设备, 即中央处理器 (CPUs) 来从复杂网 络中识别模块化结构。传统方法像分层聚类法, 划分聚类法, 谱聚类法等, 分割方法中的
         Girvan-Newman 算法以及模块化贪婪算法需要花费很长时间才能完成计算, 这归因于复杂 网络的巨大规模。例如, 社交网络领域的 Facebook 在 2010 年 2 月宣布有 4 亿用户。因此, 相应的图有上百万的边和顶点。现存真实复杂网络具有数据量大, 计算的时间和空间复杂 度高的特征 . 因此 , 利用串行计算设备从复杂网络中检测模块化结构的方法已经暴露出了 执行时间长, 用户交互低和能源效率低的缺陷。 另一方面, 虽然超级计算机工作站或高性能 计算集群能够在较短时间内完成计算, 但是花费较高, 对开发人员不友好, 阻碍了通用研究 和商业推广。
         因此, 需要寻找从复杂网络中鉴定模型结构的方法和工具, 或者一个具有 CPU 和 并行处理设备, 比如图形处理器 (GPU) 或者分布于网络中的处理单元的计算系统, 这个计算 系统能够在较短时间内完成计算, 同时节约成本。 发明摘要
         本发明提供一套工具, 一种方法和一个系统用于从复杂网络中识别模块化结构, 它们能够在较短时间完成计算并节约成本。
         本发明一个方面, 是一套用于从复杂网络中识别模块化结构的工具。其使用了一 个具有 CPU 和一个并行处理设备的计算系统。此工具包括一个位于 CPU 上的数据读取工 具, 用来读取任务数据, 该任务数据包括复杂网络中的节点, 具有节点间关系权重的边和复 杂网络中执行任务的任务参数 ; 一个位于 CPU 上的模块储存工具, 用于储存预定义的子块 集合, 这些子模块各自指示着一个特殊进程 ; 一个位于 CPU 上的确定工具, 用于确定任务模 块, 从而根据任务数据从一套分别指示着一个特定进程的预设子模块中分配子任务进程, 这些子任务进程将会分别由并行处理设备上的多重并行处理器中执行 ; 一个位于 CPU 上的 第一界面, 用于接收由确定工具转换而来的任务模块 ; 一个位于 CPU 上的发报机工具, 用于 根据多重并行处理器将任务数据分为多重数据子集 ; 一个位于 CPU 上的第二界面, 用于接 收由发报机转换而来的任务数据 ; 一个位于并行处理设备上的第一前端, 连接着第一界面,用于接收由第一界面转换而来的任务模块 ; 一个位于并行处理设备上的程序汇编工具, 用 于接收由第一前端传递过来的任务模块, 产生能被多重并行处理器从任务模块中读取的子 任务进程, 以及分配这些子任务进程到多重并行处理器 ; 一个位于并行处理设备上的第二 前端, 连接着第二界面, 用于接收来自于第二界面的多重数据子集, 并将这些多重数据子集 分别传递给多重并行处理器 ; 多重并行处理器, 用于分别平行执行子任务进程, 这些子任务 进程是由程序汇编工具根据数据子集分配形成的, 并获得平行结果 ; 以及一个分类工具, 用 于处理平行结果, 从复杂网络中获得模型结构。
         本发明另一方面, 从复杂网络中鉴定一种模型结构的方法, 其使用了一个具有一 个 CPU 和一个并行处理器的计算系统, 此方法包括通过 CPU 上的数据阅读工具阅读任务数 据, 该任务数据包括复杂网络中的节点, 具有指明节点间关系数值的边缘, 以及复杂网络中 执行任务的任务参数 ; 通过 CPU 上的确定工具确定任务模块, 从而根据任务数据分配子任 务进程, 这些子任务进程分别由并行处理设备中的多重并行处理器执行, 它们来自于一套 预设的指明了一个特殊进程的子模块, 并将任务模块转换到 CPU 上的第一界面 ; 通过第一 界面将任务模块转换到并行处理设备上的第一前端 ; 通过第一前端将任务模块传递给并行 处理设备上的程序汇编工具 ; 由程序汇编工具产生可由多重并行处理器从任务模块中读取 的子任务进程, 并将子任务进程分配给多重并行处理器 ; 由位于 CPU 上的发报机工具根据 多重并行处理器将任务数据分成多重数据子集 ; 由位于 CPU 上的第二界面将多重数据子集 转换到并行处理设备上的第二前端 ; 由第二前端分别将多重数据子集传递给多重并行处理 器; 通过多重并行处理器平行执行子任务进程, 这些子任务进程是由程序汇编工具分别根 据数据子集分配的, 获得平行结果 ; 以及通过分类工具处理平行结果, 从复杂网络中获得模 型结构。
         本发明另一方面, 从复杂网络中鉴定模型结构的系统, 其包括一个 CPU 和一个并 行处理设备。CPU 包括一个用于阅读任务数据的数据阅读工具, 这些任务数据包括复杂网 络中的节点, 具有指明节点间关系数值的边缘和复杂网络中任务执行的任务参数 ; 一个用 来储存一套预设子模块的模块储存工具, 这些子模块各自分别指示着一个特定的进程 ; 一 个确定任务模块的确定工具, 从而根据任务数据从一套分别指示着一个特定进程的预设子 模块中分配子任务进程, 这些子任务进程将会分别由并行处理设备上的多重并行处理器中 执行 ; 一个用于接收由确定工具转换而来的任务模块的第一界面 ; 一个用来根据多重并行 处理器将任务数据分成多重数据子集的发报机工具 ; 一个用来接收由发报机工具转换而来 的任务数据的第二界面。并行处理设备包括一个连接第一界面的第一前端, 用来接收由第 一界面转换而来的任务模块 ; 一个用来接收由第一前端传递过来的任务模块的程序汇编工 具, 从任务模块中产生可被多重并行处理器读取的子任务进程 ; 一个连接第二界面的第二 前端, 用来接收来自第二界面的多重数据子集和分别将多重数据子集传递给多重并行处理 器; 多重并行处理器用来平行执行任务, 子任务进程根据数据子集分别被程序汇编工具分 配来获得平行结果 ; 一个分类工具, 用来处理平行结果, 从复杂网络中获得模型结构。 附图说明 结合阅读文中的附图, 将能够更好的理解前面提到的发明内容, 以及接下来的具 体实施方式, 这些附图以举例的行式给出, 不能作为对权利要求的限制。
         图 1 是一个说明一个发明实例的计算系统模块图。 图 2 是一个说明另一个发明实例的计算系统模块图。 图 3 说明复杂网络数据的一种结构实例。 图 4 显示的是储存预定义子图的一个模块储存工具实例。 图 5 是子图的 BFS 搜索流程图。 图 6 是计算结点中心度流程图。 图 7 是分类工具执行的流程图。 图 8 是另一个发明实例中用到的从复杂网络中识别模块化结构的方法流程图。具体实施方式
         这里将对附图说明中的具体实例进行参照说明。在下面的详尽描述中, 阐述了许 多具体细节以提供一个关于本发明的透彻理解。
         图 1 是对应一个发明实例的计算系统 1000 的说明图。计算系统 1000 包含一个 CPU 200 和 GPU 300, 作为并行处理设备的举例。 需要声明的是, 尽管图 1 仅例出了一个 CPU 200 和一个 GPU 300, 计算系统 1000 中包含的 CPUs 和 GPUs 的数量不局限于一个, 并且它们 的数量可以根据需求调整。同样需要理解的是, 尽管图 1 展示了 GPU 300 作为并行处理设 备, 不同情况下并行处理设备的具体产品形式可以改变。 例如, 并行处理设备可能是分布在 一个网络中的多个处理单元, 这些设备能够执行并行处理, 彼此间能够交换数据或信息, 例 如一个局域网 (LAN) 或者是一个万维网 (WAN) 。 GPU 300 实例可能使用 nVidia 开发的通用图形处理单元 (GPGPU) 平台的计算统 一设备架构 (CUDA) 。然而, 在本发明的启发下, 其他的商用 GPUs 也可以使用。
         参照图 1, CPU 200 包含一个数据读取工具 210, 一个调度工具 220, 一个模块储 存工具 230, 一个决策工具 240, 一个第一接口 250 和一个第二接口 255。GPU 300 包含多 个并行处理器 310-1,310-2…, 310-N, 其中 N 是一个整数。为了描述清晰, 多个并行处理器 310-1,310-2…, 310-N 将会在下文中统一被称作是并行处理器 310。
         GPU 300 进一步由一个第一前端 320, 一个第二前端 325, 一个装配工具 330 和一 个分类工具 340 组成。然而, 需要声明的是, 尽管分类工具 340 显示为包含在 GPU 300 中, 它可以有不同的位置。例如, 分类工具 340 可能放置在 CPU 200 中, 本发明也适用于这些实 例。
         特别地, 数据读取工具 210 读取任务数据, 这些数据包括复杂网络中的结点, 具有 指示结点间关系的数值的边, 以及复杂网络中执行任务的任务参数。
         由计算系统 1000 确定的模块化结构可能包含多个社区, 其中每个社区内的结点 之间的关系更加紧密。例如, 在一个蛋白质 - 蛋白质相互作用网络中, 蛋白质间的相互作用 对于几乎所有的生物功能至关重要。例如, 细胞外部信号是由信号分子的蛋白质 - 蛋白质 相互作用介导进入细胞内部。 这一过程被称为信号转导, 它在许多生物进程和许多疾病, 比 如癌症中扮演着重要的角色。通常可以可视化网络图中的蛋白相互作用, 表征这些网络图 中嵌入的模块化结构具有重要意义。在这些情况下, 任务数据中的结点可能分别是不同的 蛋白。这些结点间的关系表示蛋白间的相互作用。任务参数描述用来决定蛋白质模块结构 的任务, 并且模块化结构中的每个团体包含着具有相互作用趋向的蛋白质。
         另外一个实例, 在社交网络中, 结点可能代表社交网络中的不同成员, 具有相应数 值的边代表结点间的特定关系。例如, 在一个公司的社交网络中, 结点代表的是公司员工。 关系, 即具有相应数值的边缘可能代表的是任意两个员工工作区域间的空间距离。这种情 况下, 距离较近的员工可被认为是在同一部门。 因此, 最终获得的模块化结构包含同一部门 里的员工。
         任务参数可被用于控制最终获得的模块化结构。例如, 任务参数可能会指定一个 最终的模块化结构要满足的条件, 比如模块化结构的最大尺寸, 模块化结构的最小数量。
         模块储存工具 230 储存着一套预定义的子模块, 每个子模块分别代表了一个特殊 的处理进程。稍后会对预定义的子模块进行详细的描述。
         决策工具 240 根据任务数据从储存在模块储存工具 230 的预定子模块中确定一个 任务模块。然后决策工具 240 将任务数据传输给第一接口 250。任务数据用来分配子任务 进程, 这些子任务进程将会在相应的多个并行处理器 310 中执行。任务模块的确定可被定 制为特定的任务, 下面会作举例说明。
         调度工具 220 根据并行处理设备 (GPU) 300 上的多个并行处理器 310 将任务数据 分为多重数据子集。调度工具 220 可能通过检查 GPU 的构造来分配任务数据, 然后设置数 据子集的大小。 如图 1 所示, GPU300 上的第一前端 320 连接着 CPU200 上的第一接口 250。第一前 端 320 接收来自于第一界面 250 传输的任务模块, 然后将任务模块传递给装配工具 330。
         装配工具 330 接收来自第一前端 320 传输的任务模块, 产生可被多个并行处理器 310 读取的子任务进程。例如, 装配工具 330 为并行处理单元 310 以 GPU 可读机器代码的形 式将任务模块转换成子任务进程。然后, 调度 330 分别将子任务进程分配给多个并行处理 器 310。
         位于 GPU300 上的第二前端 325, 连接着 CPU200 上的第二接口 255, 接收来自第二 接口 255 的多重数据子集。然后第二前端 325 分别将多重数据子集传递给多个并行处理器 310。
         多个并行处理器 310 分别并行处理由调度工具根据数据子集分配的子任务进程, 并获得并行结果。分类工具 340 处理并行结果以获得复杂网络中的模块化结构。
         需要声明的是, 尽管图 1 分别展示了两个接口 250 和 255, 它们也可以联合在一起。 也就是说, 接口 250 和 255 可能包含在同一元件中。这也适用于第一前端 320 和第二前端 325, 它们可能包含于同一元件中。
         另一方面, 图 1 所示的元件是分布于 CPU 和并行处理设备上的。然而, 这些元件可 以整合为一个整体, 比如本发明的一套工具。
         因此本发明在低成本的并行处理设备, 如 GPU, 的基础上提出一个并行计算系统, 来识别复杂网络中的模块化结构, 显著减少了计算的执行时间和成本, 为商业和科研实体 提供了一个复杂网络研究平台。
         图 2 是本发明另一个实例中的计算系统 1100 的说明图。用相似的编号来指示与 图 1 中所示的相同或相似部分, 这里为了简洁将会省去关于它们的详细描述。
         除了那些图 1 所示的计算系统 1000 的组成元件外, 图 2 的计算系统 1100 还包括 一个可视化工具 260, 一个网络数据工具 270 和一个数据储存工具 280。
         特别地, 图 2 的案例中, 可视化工具 260 接收由分类工具 340 直接 (如果分类工具 340 位于 CPU200) 或通过另一个中间元件 (比如前端和接口) 获得的模型结构, 然后在监视 器上展示模型结构。因此, 为数据的解释提供了一个友好的方式。
         网络数据工具 270 能够提取复杂网络数据, 它们代表着结点和具有相应数值的 边。例如, 网络数据工具 270 能将一个特定网络, 比如生物学或社交网络中的真实问题转换 成复杂网络数据。图 3 阐明了复杂网络数据的结构实例。如图 3 所示, 复杂网络数据的一 个条目可能包含一个结点 (结点 1) 索引和一个紧挨着结点 1 的结点 (结点 2) 索引, 以及代 表着结点 1 和结点 2 之间的边的数值。图 3 仅仅显示了用于复杂网络数据的一个条目来做 解释。然而, 复杂网络数据的条目数量是没有限制的。例如, 如果复杂网络中有 M 个结点, 而且结点间的边没有方向性 (即, 从结点 1 到结点 2 的边与从结点 2 到经点 1 的边等价) , 那 么复杂网络数据中条目的数目可能会是从 1 到 C (M,2) 。在边有方向性的情况下, 比如从结 点 1 到结点 2 的边与从结点 2 到结点 1 的边不同, 因此它们具有不同的数值, 复杂网络数据 中条目的数目将是从 1 到 P(M, 2) 。
         返回到图 2, 数据储存工具 280 储存复杂网络数据作为任务数据的一部分, 这些任 务数据将会被数据读取工具 210 读取。需要注意的是尽管图 2 所示的数据储存工具 280 位于 CPU200, 它也可能有不同的位置。例如, 数据储存工具 280 可能是独立于 CPU200 和 GPU300 的一个非易失性或者易变的存储器, 比如只读存储器 (Read-Only Memory , ROM) , 随 机存储器 (Random Access Memory, RAM) , 硬盘, 光盘, 闪存等等。 令G (V,E,C) 为一个复杂网络, 其中顶点 v ∈ V, 边 e ∈ E, 相应的成本 c ∈ C。在 诸如生物学网络的真实复杂网络下, 一个结点可能包含基因 / 蛋白质名, 具有数值的边可 能表示的是它们之间特定的相互作用, 比如催化作用或结合。 例如, 任务数据可能由网络数 据工具 270 产生或预先确定。网络数据工具 270 可能将蛋白相互作用网络描述为数字形式 G(V,E,C) 。
         规定一个边缘 e 的介数作为所有节点对最短途径数。介数是边缘 e 在图表中的中 间值。发生在与别的边缘间的许多最短途径的边缘具有较高的介数。
         数据储存工具 280 储存任务数据用于复杂网络 G(V,E,C) , 例如, 以邻结矩阵的形 式用于进一步处理。
         图 4 所示为储存预定的一套子模块的模块储存工具 230 实例。 在模块储存工具 230 中, 阐述了分别代表着一个特殊处理进程的处理子模块, 比如图搜索子模块 231, 最短路径 子模块 233, 以及中心性子模块 235。然而, 其他种类的处理子模块可以选择性或附加性地 整合到模块储存工具 230 中。
         如上所述, 任务模块可以由决策工具 240 通过选择 / 结合储存在模块储存工具 230 中的一个或多个子模块的方式确定。例如, 任务模块可能包括图表搜索子模块 231 和中间 值子模块 235 的组合, 或者是最短途径子模块 233 和中间值子模块 235 的组合。
         图表搜索子模块 231 指示的是促使并行处理器 310 执行广度优先搜索 (BFS) 的流 程。这种情况下, 图表搜索子模块 231 的输入可能是一个预处理输入和源头节点, 输出是来 自于网络中源头节点 S 的广度优先树状图。例如, 图 5 是一个适用于图表搜索子模块 231 的 BFS 程序 500 的流程图。
         在 S520 处, 数据输入图表搜索子模块 231, 比如多重数据子集之一。
         在 S530 处, 每个节点被描绘为 CUDA 流线型多处理器 (并行处理器) 上的一条线路。 在 S540 处, 基于拓扑特征, 图表搜索子模块 231 指定一个源头节点 s 和一个最初的边界集 F。令阵列 F 表示搜索的边界, 阵列 X 表示访问节点。在每个反复过程中, 每个边界节点探 测其邻近节点, 并将它们加到边界节点集 F 中。在 S550 处, 图表搜索子模块 231 在下一个 级别中找到 F 的连接节点, 并将它们加到访问阵列 X。 在此期间, 当完成搜索邻近节点时, 当 前节点将自己加到访问节点集 X。在 S560 处, 边界节点集 F 被更新。例如, 如果当前路径比 已经存在的路径短, 那么路径的长度将会被更新, 并且会重复一次。
         在 S570 处, 确定了是否所有的节点被发现。 如果仍然有节点将要被发现, 途径 500 返回到 S550, 开启另一次反复。如果边界集 F 是空集, 而且没有节点将会被发现, 图表搜索 子模块 231 途径会在 S580 处终止, 在 S580 处产生一个广度优先树状图。这个广度优先树 状图包含关于广度优先树状图介数的信息。
         图表搜索子模块 231 可能进一步或选择性的指示 DFS(深度优先搜索) , 这在计算 领域是众所周知的, 它可以类似于 BFS 被用于本发明。
         当任务模块包括连续顺序的图表搜索子模块 231 和中间值子模块 235 组合时, 中 间值子模块 235 有一个路径促使并行处理器计算一个广度优先树状图用于所有的节点。图 6 是中间值子模块 235 指示的路径 600 的流程图。
         在路径 600 的 S610 处, 中间值子模块 235 可能会访问图表搜索子模块 231 来获得 网络中节点的广度优先树状图。在 S620 处, 确定是否所有的广度优先树状图其以所有节点 作为源头都被找到的。如果发现仍然有广度优先树状图是用于一个特定的节点, 路径 400 返回到 S610 来获得树状图用于特定的节点作为源头。
         如果 S620 确定所有的广度优先树状图被找到, 此路径进入 S630, 这里会执行一个 关于每个边缘介数的平行减少来获得节点间的相关系数。 边缘相关系数的获得是使用公式 w/b, 这里 w 表示来自于复杂网络分量的边缘分量, b 表示边缘介数。
         路径 500 和 600 是并行处理进程, 而且可分别由并行处理器 310 执行, 从而获得平 行结果, 比如上述的相关系数。
         在这种情况下, 分类工具 340 使用来自于中间值子模块 235 的全面相关系数输入, 获得网络的模型结构。图 7 是由分类工具 340 执行路径 700 的流程图。
         在 S710 处, 输入来自所有多重并行处理器 310 的相关系数作为平行结果。 在 S720 处, 分类工具 340 识别具有最大相关系数的边缘。
         在 S730 处, 具有最大相关系数的边缘被删除。在 S740 处, 删除了此类边缘的网络 被确定是否满足由任务参数指定的条件。例如, S740 确定是否网络中剩下的所有团体的大 小小于最大的团体大小。
         如果在 S740 处条件不满足, 路径 700 走向 S705, 中间值子模块 235 在这里被再次 启动来获得相关系数, 用于网络删除具有最大相关系数的边缘。
         如果在 S740 处条件满足, 路径 700 在 S750 处终止, 这里会获得具有满足任务参数 指定条件单元的模型结构。
         另一方面, 最短途径子模块 233 可能有路径用于寻找图表 (网络) 中每对节点间的 最短路径。例如, APSP 路径 (所有节点对最短路径) , SPSP(单个节点对最短路径) , SSSP(单 个源头最短路径) , SDSP(单个终点最短路径) 诸如此类的可被应用于最短路径子模块 233。这些最短路径方法在计算领域都是众所周知的, 所以这里省去其详尽描述。
         当任务模块包括最短路径子模块 233 和中间值子模块 235 连续顺序的组合时, 中 间值子模块 235 有途径促使并行处理器建立分等级的聚类树状图。
         在这种情况下, 分类工具 340 利用任务参数作为系统参数削减分等级的聚类树状 图, 获得模型结构。
         因此, 获得了模型结构, 并且其构成单元满足任务参数指定的条件。
         在传统的分等级聚类算法中, 典型步骤如下。分等级聚类步骤产生一系列数据分 集, Pn, Pn-1,……, P1。第一个 Pn 含有 n 个单一簇, 最后的 P1 含有一个单一含有 n 种情况 的团体。在每个特殊时期, 此方法将两个接近 (最相似) 的簇连接在一起。 (在第一时期, 意 味着将两个相近的对象连接在一起, 知道每个簇在最初的时期只有一个对象。 ) 。由于定义 簇间距离 (或相似性) 的方式不同, 方法的差异性呈现出来。在这个实例中, 我们用母体乘法 为基础的所有节点对最短路径算法计算距离。
         我们的工作通过用加入和最小操作取代乘法和额外的操作, 改变了 Volkov 和 Demmel 提供的母体乘法路径。共享的储存器被用户用来管理缓存, 从而提高性能。Volkov 和 Demmel 引进母体 R,C 和 Di 中的部分来共享模块上的存储空间 : R 被引进 64×4 尺寸 的模块, C 被引进 16×16 尺寸大小的模块, Di 被引进 64×16 尺寸大小的模块。这些数值 被选用来最大化 CUDA 设备的通量。在执行期间, 每一条线路计算 Di 的 64×16 值。算法 1 描述了改进的母体乘法要点。母体乘法要点的具体内容请参考 : LU, QR and Cholesky Factorizations using Vector Capabilities of GPUs. Vasily Volkov and James Demmel. Technical Report No. UCB/EECS-2008-49. 本发明开发了一种以 GPU 为基础的平行计算系统来鉴定复杂网络中的模型结构, 显著减少了计算的执行时间和成本, 提供了一个复杂网络研究平台用于商业、 科研等用途。
         图 8 所示是从复杂网络中鉴定模型结构的方法 2000 的流程图, 它使用的是本发明 一个实例中的一个含有一个 CPU 和一个并行处理设备 (例如 GPU) 的计算系统。方法 2000 可能由图 1 的计算系统 1000 的相应元件执行。
         特别地, 在 S2100 处, 包括复杂网络的节点, 具有指示节点间关系价值的边缘, 以 及任务数据被执行的任务参数的这些任务数据的读取是利用 CPU200 上的数据读取工具 210。
         在 S2200 处, CPU200 上的确定工具 240 根据任务数据, 从一套预设的分别指示着 一个特殊处理进程的子模块集中确定任务模块, 并且将任务模块转换到 CPU200 上的第一 界面 250。 任务模块用来分配子任务进程, 这些子任务进程将分别由并行处理设备 300 上的 多重并行处理器 310-1,310-2,……, 310-N 执行, 其中 N 是一个整数。
         在 S2220 处, 任务模块由第一界面 250 传输给并行处理设备 300 上的第一前端 320。然后在 S2240 处, 由第一前端将任务模块传递给并行处理设备 300 上的程序汇编工具 330。
         在 S2260 处, 程序汇编工具 330 产生子任务进程, 这些子任务进程可被多重并行处 理器 310 从任务模块中读取, 因此将这些子任务进程分配给多重并行处理器 310。
         另一方面, 在 S2300 处, 发报机工具 220 将任务数据根据多重并行处理器 310 分为 多重数据子集。
         在 S2320 处, 第二界面 255 在 CPU200 上将多重数据子集转换到并行处理设备上的 第二前端 325。在 S2340 处, 第二前端 325 将多重数据子集分别传递给多重并行处理器。
         接 收 了 任 务 处 理 进 程 和 数 据 子 集 后,在 S2400 处,多 重 并 行 处 理 器 310-1,310-2…, 310-N 平行操作, 程序汇编工具根据数据子集分别分配子任务进程, 获得 平行结果。
         在 S2500 处, 分类工具 340(位于 CPU200 或 GPU300 上) 处理平行结果, 获得复杂 网络中的模型结构。
         根据本发明, 在复杂网络中鉴定模型结构的方法可能会结合上述图 1-7 中的一个 或多个因素。
         例如, 此方法可能进一步包括提取复杂网络数据和将复杂网络数据以任务数据的 一部分储存, 其中的复杂网络数据代表着节点和具有数值的边缘。
         同样, 任务模块可能包括图表搜索子模块和中间值子模块的组合, 或是最短路径 子模块和中间值子模块的组合。图 5-7 所示的路径同样可应用于方法 2000。
         需要注意的是, 图 8 所示的方法 2000 的步骤并不是必须要按图所示的顺序进行。 例如, 步骤 S2200-S2260 可能与步骤 S2300-S2340 同时进行, 或是在步骤 S2300-S2340 之后 进行。 正如能被计算领域的专业人才重视一样, 一个具有相关计算机 - 可读媒体的计算 机系统, 其相关计算机 - 可读媒体含有用于控制计算机系统的说明, 能够被用来执行这里 列举的杰出实例。 这个计算机系统可能至少包括一台计算机, 比如一台微处理器, 还包括数 字信号处理器和相关的外围电子线路。
         尽管语言描绘的主题特指的是结构特征和 / 或方法学领域, 需要理解的是, 附加 的权利要求中定义的主题不是必须限定在上述特定的特征或是领域的。在一定程度上, 上 述的特定特征和领域以实例的形式用于说明权利的执行。
        

    关 键  词:
    复杂 网络 识别 模块化 结构 方法 工具
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:从复杂网络中识别模块化结构的方法和工具.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4058384.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1