CN116739470A - 网络分析方法和装置 - Google Patents
网络分析方法和装置 Download PDFInfo
- Publication number
- CN116739470A CN116739470A CN202211188726.3A CN202211188726A CN116739470A CN 116739470 A CN116739470 A CN 116739470A CN 202211188726 A CN202211188726 A CN 202211188726A CN 116739470 A CN116739470 A CN 116739470A
- Authority
- CN
- China
- Prior art keywords
- vertex
- data
- parent
- directed graph
- path length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000003012 network analysis Methods 0.000 title claims abstract description 35
- 238000007405 data analysis Methods 0.000 claims abstract description 34
- 230000001419 dependent effect Effects 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 14
- 239000000463 material Substances 0.000 description 99
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Operations Research (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种网络分析方法和装置,涉及数据分析领域,用于加速数据分析。网络分析方法,包括:将多个网络融合得到有向图,其中,多个网络中分别包括不同第一数据之间的关联关系以及第一数据与第二数据之间的关联关系;有向图中每个顶点用于指示一个第一数据和一个第二数据之间的关联关系,有向图中从父顶点指向子顶点的边用于指示不同第一数据之间的关联关系;根据有向图中从根顶点至各个顶点的路径长度,得到各个顶点的分组码;对分组码相同的顶点并行进行数据分析。
Description
技术领域
本申请涉及数据分析领域,尤其涉及一种网络分析方法和装置。
背景技术
目前对物资需求计划(material requirement planning,MRP)、生产成本核算、预算控制等领域进行数据分析时,往往都只能将单个网络进行拆解并分别进行数据分析,无法体现不同网络之间的数据依赖关系,并且不利于加速数据分析。
发明内容
本申请实施例提供一种网络分析方法和装置,用于加速数据分析。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种网络分析方法,包括:将多个网络融合得到有向图,其中,多个网络中分别包括不同第一数据之间的关联关系以及第一数据与第二数据之间的关联关系;有向图中每个顶点用于指示一个第一数据和一个第二数据之间的关联关系,有向图中从父顶点指向子顶点的边用于指示不同第一数据之间的关联关系;根据有向图中从根顶点至各个顶点的路径长度,得到各个顶点的分组码;对分组码相同的顶点并行进行数据分析。
本申请实施例提供的网络分析方法和装置,可以把复杂的多个网络叠加成有向图,有向图的每个顶点包括具有映射关系的两种数据,有向图的有向边指示同一种数据之间的关联关系,从有向图的根顶点遍历各个顶点得到各个顶点的分组码,将分组码相同的顶点并行进行数据分析。即按照不同的分组码将多个网络叠加的有向图拆解后进行数据分析,可以用于实现分布式处理,从而进行加速数据分析,并确保不同计算任务之间调度依赖的正确性。
在一种可能的实施方式中,该方法还包括:从目标顶点沿所在最长路径依次向前查找父顶点,直至再次查找到目标顶点,从而确定闭环路径,其中,目标顶点没有分组码或者分组码大于门限。
该实施方式可以提示用户存在闭环路径,以便核查原始数据是否有误。
在一种可能的实施方式中,该方法还包括:在计算一个父顶点的路径长度时,判断是否计算一个父顶点的子顶点的路径长度:如果一个父顶点满足预设条件,则计算一个父顶点的子顶点的路径长度,并将一个父顶点加入队列,否则不计算一个父顶点的子顶点的路径长度,满足预设条件包括:一个父顶点未被加入队列,一个父顶点路径长度大于其父顶点的路径长度。
该实施方式可以避免重复遍历某个父顶点的子顶点(即重复计算某个父顶点的子顶点的路径长度)。
在一种可能的实施方式中,在根据有向图中从根顶点至各个顶点的路径长度,得到各个顶点的分组码之前,方法还包括:添加根顶点,使得根顶点通过有向边指向有向图中入度为0的顶点,入度为0的顶点指在创建根顶点之前,没有其他有向边指向的顶点。
该实施方式便于通过一个根顶点遍历所有顶点。
在一种可能的实施方式中,子顶点的路径长度等于父顶点的路径长度加1,分组码为从根顶点至各个顶点的最大路径长度。
由于一个顶点可能存在多个父顶点,因此也可能存在多条路径以及对应多个路径长度,对于较短路径来说,对该顶点的数据分析仅是中间结果,并不是最终结果,因此从中选择最大路径长度,可以避免出现输出该结点的中间结果而非最终结果的情况。
在一种可能的实施方式中,如果多个网络分别包括第一数据A依赖于第一数据B的依赖关系,第一数据A映射至第二数据a的映射关系,以及,第一数据B映射至第二数据b的映射关系;则有向图包括第一顶点、第二顶点以及从第一顶点指向第二顶点的第一有向边,第一顶点包括第一数据A和第二数据a,第二顶点包括第一数据B和第二数据b,第一有向边用于指示:第一顶点中的第一数据A依赖于第二顶点中的第一数据B。
该实施方式使得本申请支持不同第一数据之间的依赖关系。
在一种可能的实施方式中,如果多个网络中还包括第一数据B等价于第一数据C的等价关系以及第一数据C映射至第二数据c的映射关系,则有向图还包括第三顶点以及从第一顶点指向第三顶点的第二有向边,第三顶点包括第一数据C和第二数据c,第二有向边用于指示:第一顶点中的第一数据A依赖于第三顶点中的第一数据C。
该实施方式使得本申请支持对包括互相替换数据的网络进行数据分析。
在一种可能的实施方式中,如果多个网络中还包括第二数据d依赖于第二数据b的依赖关系,第二数据d映射至第一数据D,则有向图还包括第四顶点以及从第四顶点指向第二节点的第三有向边,第四顶点包括第一数据D和第二数据d,第三有向边用于指示:第四顶点中的第二数据d依赖于第二节点中的第二数据b。
该实施方式使得本申请不仅支持不同第一数据之间的依赖关系,还支持不同第二数据之间的依赖关系
第二方面,提供了一种网络分析装置,包括处理器和存储器,存储器中存储指令,当处理器执行指令时,如第一方面及其任一实施方式所述的方法被执行。
第三方面,提供了一种计算机可读存储介质,包括指令,当指令在网络分析装置上运行时,使得网络分析装置执行如第一方面及其任一实施方式所述的方法。
第四方面,提供了一种包含指令的计算机程序产品,当指令在上述网络分析装置上运行时,使得该网络分析装置执行如第一方面及其任一实施方式所述的方法。
第五方面,提供了一种芯片系统,该芯片系统包括处理器,用于支持网络分析装置实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括接口电路,接口电路可用于从其它装置(例如存储器)接收信号,或者,向其它装置(例如通信接口)发送信号。该芯片系统可以包括芯片,还可以包括其他分立器件。
第二方面至第五方面的技术效果参照第一方面及其任一实施方式的技术效果,在此不再重复。
附图说明
图1为本申请实施例提供的一种有向图的示意图;
图2为本申请实施例提供的一种有向图对应的正向邻接表的示意图;
图3为本申请实施例提供的一种有向图对应的反向邻接表的示意图;
图4为本申请实施例提供的一种有向图对应的入度和出度的示意图;
图5为本申请实施例提供的一种网络分析装置的结构示意图;
图6为本申请实施例提供的一种网络分析方法的流程示意图;
图7为本申请实施例提供的第一种有向图的示意图;
图8为本申请实施例提供的第二种有向图的示意图;
图9为本申请实施例提供的第三种有向图的示意图;
图10为本申请实施例提供的第四种有向图的示意图;
图11为本申请实施例提供的第五种有向图的示意图;
图12为本申请实施例提供的一种最长路径的父顶点的路径长度的示意图;
图13为本申请实施例提供的第六种有向图及分组码的示意图;
图14为本申请实施例提供的一种闭环路径的示意图;
图15为本申请实施例提供的另一种闭环路径的示意图;
图16为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
首先对本申请涉及的一些概念进行描述。
本申请实施例涉及的术语“第一”、“第二”等仅用于区分同一类型特征的目的,不能理解为用于指示相对重要性、数量、顺序等。
本申请实施例涉及的术语“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先对本申请涉及的概念进行描述:
有向图:有向图包括多个顶点(例如,图1中A/B/C/D/E/F/G/H)以及连接两个顶点之间的有向边(例如,图1中L1-L8),有向边指边是有方向的,例如,图1中从顶点A指向顶点B的有向边L1,顶点A为顶点B的父顶点(或称前驱顶点),顶点B为顶点A的子顶点(或称后继顶点)。
正向邻接表:正向邻接表包括当前顶点直接指向的相邻顶点的集合,本申请中的正向邻接表用于正向遍历有向图中的各个顶点。图1所示的有向图对应的正向邻接表见图2,例如,顶点B通过有向边L2/L3/L4指向顶点C/D/F,所以在正向邻接表中顶点B对应顶点C/D/F。
反向邻接表:反向邻接表包括直接指向当前顶点的相邻顶点的集合,本申请中的反向邻接表用于反向查找闭环路径。图1所示的有向图对应的反向邻接表见图3,例如,直接指向顶点F的相邻顶点有顶点B/E/H,所以在反向邻接表中顶点F对应顶点B/E/H。
入度和出度:入度指有多少条有向边指向当前顶点,出度指当前顶点指出多少条有向边。图1所示的有向图对应的入度和出度见图4,例如,有1条有向边指向顶点B,并且顶点B指出3条有向边,所以顶点B的入度为1,出度为3。
图5示出了本申请提供的网络分析装置的一种可能的结构,网络分析装置100可以包括至少一个处理器101、通信线路102、存储器103以及至少一个通信接口104。通信线路102可包括一通路,在上述组件之间传送信息。通信接口104使用任何收发器一类的装置,用于与其他设备通信。
本申请实施例涉及的存储器103可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例涉及的处理器101可以是一个芯片。例如,可以是现场可编程门阵列(field programmable gate array,FPGA)、专用集成芯片(application specificintegrated circuit,ASIC)片上系统(system on chip,SoC)、中央处理器(centralprocessor unit,CPU)、网络处理器(network processor,NP)、数字信号处理电路(digitalsignal processor,DSP)、微控制器(micro controller unit,MCU)、可编程控制器(programmable logic device,PLD)或其他集成芯片。
存储器103中可以存储有指令,当处理器101执行上述指令时,可以执行本申请实施例提供的网络分析方法。
如前文所述的,现有技术中在对MRP、生产成本核算、预算控制等领域进行数据分析时,往往都只能将单个网络进行拆解并分别进行数据分析,无法体现不同网络之间的数据依赖关系,并且不利于加速数据分析。
本申请实施例提供的网络分析方法,可以把复杂的多个网络叠加成有向图,有向图的每个顶点包括具有映射关系的两种数据,有向图的有向边指示同一种数据之间的关联关系,从有向图的根顶点遍历各个顶点得到各个顶点的分组码,将分组码相同的顶点并行进行数据分析。即按照不同的分组码将多个网络叠加的有向图拆解后进行数据分析,可以用于实现分布式处理,从而进行加速数据分析,并确保不同计算任务之间调度依赖的正确性。该网络分析方法还支持对包括等价(可互相替换)数据的网络进行数据分析。该网络分析方法还可以识别有向图中的闭环路径(即死循环)。另外,通过并行进行数据分析,可以将垂直扩展(ScaleUp)的批量数据计算系统,改造为水平扩展(ScaleOut)的弹性系统,并且可以根据计算规模伸缩资源。
本申请实施例提供的网络分析方法可以应用于以下场景:在对MRP进行数据分析时,将供应链网络(例如客户-工厂-荣耀-央仓-供应商)和产品物料清单(bill ofmaterial,BOM)网络(例如手机-裸机-主板-原材料)相叠加;在对生产成本核算进行数据分析时,将集团组织树和产品BOM网络相叠加;在对预算控制进行数据分析时,将集团组织树和科目体系树相叠加,等等。
具体的,如图6所示,该网络分析方法包括:
S101、将多个网络融合得到有向图。
其中,每个网络用于存储两个数据(可以为相同类型或不同类型)之间的关联关系(例如依赖关系、映射关系、等价关系等),网络的形式可以为表格、树等数据组织形式,本申请并不限定数据组织形式与网络之间的关系,只要能够表示两个数据之间的关联关系即可以称为一个网络,而不限定每个网络只属于一个表格或一个树,例如,后面涉及的表1中,物料父项与物料子项之间存在一种关联关系即为一种网络,物料子项与供应链之间存在另一种关联关系即为另一种网络,虽然这两种网络维护在同一表格中。
多个网络中分别包括不同第一数据之间的关联关系以及第一数据与第二数据之间的关联关系。有向图中每个顶点用于指示一个第一数据和一个第二数据之间的关联关系,有向图中从父顶点指向子顶点的边用于指示不同第一数据之间的关联关系。
如无特别说明,本申请中以第一数据为物料,第二数据为供应链为例进行说明,此时,不同第一数据之间的关联关系指不同物料之间的依赖关系或等价关系,例如在BOM网络中,电路板包括电容、电阻等物料,则电路板与电容、电阻之间为依赖关系(电路板依赖于电容、电阻);再例如,在BOM网络中,电路板包括等价(可互相替换)的电阻1和电阻2,则电阻1与电阻2之间为等价关系。第一数据与第二数据之间的关联关系指物料与供应链之间的映射关系,例如,物料需要由供应链来供货,所以物料与供应链之间为映射关系。在某些场景下中,不同第二数据之间也可以存在依赖关系,例如,在供应链网络中,供应链下游与供应链上游之间为依赖关系(供应链下游依赖于供应链上游)。
示例性的,表1所示为BOM网络,其中,对于物料来说,由于物料父项由物料子项组成,因此物料父项依赖于物料子项,但是一种物料属于物料父项还是物料子项并不是固定的,而是由该物料与其他物料之间的包含关系决定的。例如电路板包括电容、电阻等物料,电路板为物料父项,电容、电阻等为物料子项,而手机包括电路板、壳体等物料,此时手机为物料父项,电路板、壳体等为物料子项。供应链指物料子项的供应地。
表2所示为BOM替换物料网络,其中,可替换物料子项可以用于替换物料父项中的物料子项,供应链指可替换物料子项的供应地。
表3所示为供应链网络,其中,物料子项从供应链上游流动至供应链下游,所以供应链下游依赖于供应链上游。
表1
物料父项 | 物料子项 | 供应链 |
物料A | 物料x1 | 厂商1 |
物料A | 物料x1 | 中心仓 |
物料B | 物料x2 | 中心仓 |
物料B | 物料x3 | 中心仓 |
物料M | 物料B | 中心仓 |
表2
物料父项 | 物料子项 | 可替换物料子项 | 供应链 |
物料A | 物料x1 | 物料x2 | 中心仓 |
表3
物料子项 | 供应链上游 | 供应链下游 |
物料x1 | 中心仓 | 厂商1 |
如果多个网络分别包括第一数据A依赖于第一数据B的依赖关系,第一数据A映射至第二数据a的映射关系,以及,第一数据B映射至第二数据b的映射关系;则有向图包括第一顶点、第二顶点以及从第一顶点指向第二顶点的第一有向边,第一顶点包括第一数据A和第二数据a,第二顶点包括有第一数据B和第二数据b,第一有向边用于指示:第一顶点中的第一数据A依赖于第二顶点中的第一数据B,例如物料父项依赖于物料子项。第二数据a与第二数据b可以相同或不同。
示例性的,如图7所示,针对表1建立有向图。以表1中物料M这一行为例,物料M(第一数据A)和物料B(第一数据B)均映射至中心仓(即第二数据a与第二数据b相同,均为中心仓),所以建立第一顶点(物料M[中心仓])和第二顶点(物料B[中心仓]),并且建立从第一顶点至第二顶点的第一有向边,第一有向边用于指示第一顶点中的物料M依赖于第二顶点中的物料B。其他顶点的推导方式类似,在此不再赘述。
如果多个网络中还包括第一数据B等价于第一数据C的等价关系,以及,第一数据C映射至第二数据c的映射关系,由于第一数据A依赖于第一数据B,因此,第一数据A也依赖于第一数据C。因此,该有向图还包括第三顶点以及从第一顶点(包括第一数据A)指向第三顶点的第二有向边,第三顶点包括第一数据C和第二数据c,第二有向边用于指示:第一顶点中的第一数据A依赖于第三顶点中的第一数据C,例如物料父项依赖于可替换物料子项。第二数据b与第二数据c可以相同或不同。
示例性的,如图8所示,在图7所示的有向图基础上,针对表2进一步添加顶点或有向边。此时,第一顶点为物料A[中心仓],第二顶点为物料X1[中心仓],由于物料X1(第一数据B)等价于物料X2(第一数据C),所以添加第二有向边,第二有向边用于指示第一顶点中的物料A依赖于第二顶点中的物料X2。
基于同样的原理,如图9所示,由于物料X1与物料X2是互相可替换的,又由于物料B依赖于物料X2,因此物料B也可以依赖于物料X1。此时,第一顶点为物料B[中心仓],第二顶点为物料X2[中心仓],添加第二有向边,第二有向边用于指示第一顶点中的物料B依赖于第二顶点中的物料X1。
如果多个网络中还包括第二数据d依赖于第二数据b的依赖关系,第二数据d映射至第一数据d,则该有向图还包括第四顶点以及从第四顶点指向第二节点的第三有向边,第四顶点包括第一数据D和第二数据d,第三有向边用于指示:第四顶点中的第二数据d依赖于第二节点中的第二数据b。第一数据D与第一数据B可以相同或不同。
或者,如果多个网络中还包括第二数据d依赖于第二数据a的依赖关系,第二数据d映射至第一数据d,则该有向图还包括第四顶点以及从第四顶点指向第一节点的第三有向边,第四顶点包括第一数据D和第二数据d,第三有向边用于指示:第四顶点中的第二数据d依赖于第一节点中的第二数据a。第一数据D与第一数据A可以相同或不同。
示例性的,如图10所示,在图9所示的有向图基础上,针对表3进一步添加顶点或有向边。由于供应链下游依赖于供应链上游,此时,第一顶点为物料A[中心仓],第二顶点为物料X1[中心仓],第四顶点为物料X1[厂商1],添加第三有向边,第三有向边用于指示第四顶点中的厂商1依赖于第二顶点中的物料中心仓。
为了方便遍历有向图的所有顶点,可以添加根顶点(根顶点中不包括第一参数和第二参数),根顶点通过多条有向边指向有向图中入度为0的顶点,入度为0的顶点指在创建根顶点之前,没有其他有向边指向的顶点。如图11所示,入度为0的顶点包括物料M[中心仓]、物料A[中心仓]、物料A[厂商1]。
另外,可以将有直接结果(例如包括停产的物料和对应的供应链)的顶点作为根顶点的子顶点(即根顶点通过有向边指向该顶点),以减少对该顶点的遍历深度,提高计算性能。
S102、根据有向图中从根顶点至各个顶点的路径长度,得到各个顶点的分组码。
具体的,可以根据正向邻接表,从根顶点开始按照广度优先搜索(breadth firstsearch)原则遍历各个顶点,得到从根顶点至各个顶点的路径长度,子顶点的路径长度等于父顶点的路径长度加1,取从根顶点至各个顶点的最大路径长度作为各个顶点的分组码(也称低层码(low level code,LLC))。由于一个顶点可能存在多个父顶点,因此也可能存在多条路径以及对应多个路径长度,对于较短路径来说,对该顶点的数据分析仅是中间结果,并不是最终结果,因此从中选择最大路径长度,可以避免出现输出该结点的中间结果而非最终结果的情况。
为了避免重复遍历某个父顶点的子顶点(即重复计算某个父顶点的子顶点的路径长度),因此,在计算一个父顶点的路径长度时,判断是否计算一个父顶点的子顶点的路径长度:如果一个父顶点满足预设条件,则计算一个父顶点的子顶点的路径长度,并将一个父顶点加入队列,否则不计算一个父顶点的子顶点的路径长度,其中,满足预设条件包括:该一个父顶点未被加入队列,该一个父顶点路径长度大于其父顶点(例如最长路径的父顶点)的路径长度(示例性的,图12示出了各顶点所在最长路径的父顶点的路径长度)。然后按照相同方式依次判断该一个父顶点的子顶点是否满足预设条件,如果该一个父顶点的子顶点也满足预设条件,则将该子顶点也加入队列,依此类推。
需要说明的是,由于一个顶点可能有多个父顶点,因此可以有多条路径,假设第一次通过第一路径遍历到某个顶点,并且将该顶点加入队列,当第二次通过第二路径遍历到该顶点时,虽然不会再遍历该顶点的子顶点,但是仍然会按照第二路径计算该顶点的路径长度。
例如,如图13所示,根顶点的分组码为0,物料M[中心仓]、物料A[中心仓]、物料A[厂商1]的分级码为1,依此类推。物料X1[中心仓]在通过第一路径(根顶点->物料A[中心仓]->物料X1[中心仓])遍历时得到的路径长度为2,物料X1[中心仓]在通过第二路径(根顶点->物料A[厂商1]->物料X1[厂商1]->物料X1[中心仓])遍历时得到的路径长度为3(即分组码=3)。则物料X1[中心仓]的分组码取路径长度的最大值为3。
S103、对分组码相同的顶点并行进行数据分析。
分组码相同的顶点互相之间不存在依赖关系,在进行数据分析时,分析结果互不影响,因此可以并行进行数据分析。例如,物料X1[中心仓]、物料X2[中心仓]、物料X3[中心仓]这几个顶点的分组码相同(均为3),互相之间不存在依赖关系,所以可以对这几个顶点并行进行数据分析。
另外,如果目标顶点没有分组码或者分组码大于门限,则按照深度优先搜索(depth first search)原则从目标顶点沿所在路径依次向前查找父顶点,直至再次查找到该目标顶点,即可以确定闭环路径,可以提示用户存在闭环路径,以便核查原始数据是否有误。从目标顶点沿所在路径向前查找父顶点时,可以按照反向邻接表进行查找,或者,进一步地,为了降低计算工作量,可以只记录最长路径的反向邻接表(例如图12所示),从目标顶点沿所在最长路径依次向前查找父顶点。
例如,如图14所示,如果顶点C和顶点D(也可以更多顶点形成闭环路径)互为父子顶点,这两个顶点的入度不为0,则根顶点不会指向这两个顶点中的任意一个顶点,那么从根顶点遍历各个顶点时也不会遍历到这两个顶点,因此这两个顶点将没有分组码,因此可以从顶点C查找父顶点D,再从顶点D查找父顶点C,从而可以确定这两个顶点形成闭环路径。
再例如,如图15所示,从根顶点遍历到顶点B和顶点C时,会循环遍历顶点B和顶点C,使得顶点B和顶点C的分组码无限递增,最终使得分级码大于门限(例如20),因此可以从顶点B查找父顶点C,再从顶点C查找父顶点B,从而可以确定这两个顶点形成闭环路径。
本申请实施例提供的网络分析方法和装置,可以把复杂的多个网络叠加成有向图,有向图的每个顶点包括具有映射关系的两种数据,有向图的有向边指示同一种数据之间的关联关系,从有向图的根顶点遍历各个顶点得到各个顶点的分组码,将分组码相同的顶点并行进行数据分析。即按照不同的分组码将多个网络叠加的有向图拆解后进行数据分析,可以用于实现分布式处理,从而进行加速数据分析,并确保不同计算任务之间调度依赖的正确性。
如图16所示,本申请实施例还提供一种芯片系统。该芯片系统60包括至少一个处理器601和至少一个接口电路602。至少一个处理器601和至少一个接口电路602可通过线路互联。处理器601用于支持网络分析装置实现上述方法实施例中的各个步骤,例如图6所示的方法,至少一个接口电路602可用于从其它装置(例如存储器)接收信号,或者,向其它装置(例如通信接口)发送信号。该芯片系统可以包括芯片,还可以包括其他分立器件。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括指令,当指令在上述网络分析装置上运行时,使得该网络分析装置执行上述方法实施例中的各个步骤,例如执行图6所示的方法。
本申请实施例还提供一种包括指令的计算机程序产品,当指令在上述网络分析装置上运行时,使得该网络分析装置执行上述方法实施例中的各个步骤,例如执行图6所示的方法。
关于芯片系统、计算机可读存储介质、计算机程序产品的技术效果参照前面方法实施例的技术效果。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个设备,或者也可以分布到多个设备上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个设备中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种网络分析方法,其特征在于,包括:
将多个网络融合得到有向图,其中,所述多个网络中分别包括不同第一数据之间的关联关系以及所述第一数据与第二数据之间的关联关系;所述有向图中每个顶点用于指示一个所述第一数据和一个所述第二数据之间的关联关系,所述有向图中从父顶点指向子顶点的边用于指示不同所述第一数据之间的关联关系;
根据所述有向图中从根顶点至各个顶点的路径长度,得到所述各个顶点的分组码;
对分组码相同的顶点并行进行数据分析。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从目标顶点沿所在最长路径依次向前查找父顶点,直至再次查找到所述目标顶点,从而确定闭环路径,其中,所述目标顶点没有分组码或者分组码大于门限。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在计算一个父顶点的路径长度时,判断是否计算所述一个父顶点的子顶点的路径长度:如果所述一个父顶点满足预设条件,则计算所述一个父顶点的子顶点的路径长度,并将所述一个父顶点加入队列,否则不计算所述一个父顶点的子顶点的路径长度,所述满足预设条件包括:所述一个父顶点未被加入所述队列,所述一个父顶点路径长度大于其父顶点的路径长度。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述根据所述有向图中从根顶点至各个顶点的路径长度,得到所述各个顶点的分组码之前,所述方法还包括:
添加所述根顶点,使得所述根顶点通过有向边指向所述有向图中入度为0的顶点,所述入度为0的顶点指在创建所述根顶点之前,没有其他有向边指向的顶点。
5.根据权利要求1-4任一项所述的方法,其特征在于,子顶点的路径长度等于父顶点的路径长度加1,所述分组码为从所述根顶点至所述各个顶点的最大路径长度。
6.根据权利要求1-5任一项所述的方法,其特征在于,如果所述多个网络分别包括第一数据A依赖于第一数据B的依赖关系,所述第一数据A映射至第二数据a的映射关系,以及,所述第一数据B映射至第二数据b的映射关系;则所述有向图包括第一顶点、第二顶点以及从所述第一顶点指向所述第二顶点的第一有向边,所述第一顶点包括所述第一数据A和所述第二数据a,所述第二顶点包括所述第一数据B和所述第二数据b,所述第一有向边用于指示:所述第一顶点中的所述第一数据A依赖于所述第二顶点中的所述第一数据B。
7.根据权利要求6所述的方法,其特征在于,如果所述多个网络中还包括所述第一数据B等价于第一数据C的等价关系以及所述第一数据C映射至第二数据c的映射关系,则所述有向图还包括第三顶点以及从所述第一顶点指向所述第三顶点的第二有向边,所述第三顶点包括所述第一数据C和所述第二数据c,所述第二有向边用于指示:所述第一顶点中的所述第一数据A依赖于所述第三顶点中的所述第一数据C。
8.根据权利要求6或7所述的方法,其特征在于,如果所述多个网络中还包括第二数据d依赖于所述第二数据b的依赖关系,所述第二数据d映射至第一数据D,则所述有向图还包括第四顶点以及从所述第四顶点指向所述第二节点的第三有向边,所述第四顶点包括所述第一数据D和所述第二数据d,所述第三有向边用于指示:所述第四顶点中的所述第二数据d依赖于所述第二节点中的所述第二数据b。
9.一种网络分析装置,其特征在于,包括处理器和存储器,所述存储器中存储指令,当所述处理器执行所述指令时,如权利要求1-8任一项所述的方法被执行。
10.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在网络分析装置上执行时,使得所述网络分析装置执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211188726.3A CN116739470A (zh) | 2022-09-27 | 2022-09-27 | 网络分析方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211188726.3A CN116739470A (zh) | 2022-09-27 | 2022-09-27 | 网络分析方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116739470A true CN116739470A (zh) | 2023-09-12 |
Family
ID=87906637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211188726.3A Pending CN116739470A (zh) | 2022-09-27 | 2022-09-27 | 网络分析方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116739470A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254254A1 (en) * | 2011-03-29 | 2012-10-04 | Bmc Software, Inc. | Directed Graph Transitive Closure |
CN109685386A (zh) * | 2018-12-29 | 2019-04-26 | 齐鲁工业大学 | 基于数据信息的多目标作业车间的复杂网络模型构建方法 |
CN114265957A (zh) * | 2021-12-29 | 2022-04-01 | 浙江力石科技股份有限公司 | 基于图数据库的多种数据源联合查询方法及系统 |
CN114818843A (zh) * | 2021-01-27 | 2022-07-29 | 华为技术有限公司 | 数据分析的方法、装置和计算设备 |
CN115098795A (zh) * | 2022-06-16 | 2022-09-23 | 清华-伯克利深圳学院筹备办公室 | 数据分析方法、数据分析装置、设备及存储介质 |
-
2022
- 2022-09-27 CN CN202211188726.3A patent/CN116739470A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254254A1 (en) * | 2011-03-29 | 2012-10-04 | Bmc Software, Inc. | Directed Graph Transitive Closure |
CN109685386A (zh) * | 2018-12-29 | 2019-04-26 | 齐鲁工业大学 | 基于数据信息的多目标作业车间的复杂网络模型构建方法 |
CN114818843A (zh) * | 2021-01-27 | 2022-07-29 | 华为技术有限公司 | 数据分析的方法、装置和计算设备 |
CN114265957A (zh) * | 2021-12-29 | 2022-04-01 | 浙江力石科技股份有限公司 | 基于图数据库的多种数据源联合查询方法及系统 |
CN115098795A (zh) * | 2022-06-16 | 2022-09-23 | 清华-伯克利深圳学院筹备办公室 | 数据分析方法、数据分析装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jard et al. | Bounded-memory Algorithms for Verification On-the-fly | |
CN104092567B (zh) | 确定用户的影响力排序的方法与装置 | |
Jansen et al. | Accelerating parametric probabilistic verification | |
Long et al. | Minimizing seed set for viral marketing | |
US8239404B2 (en) | Identifying entries and exits of strongly connected components | |
Nguyen et al. | Stochastic dominance in stochastic DCOPs for risk-sensitive applications | |
CN107832446B (zh) | 一种配置项信息的搜索方法及计算设备 | |
CN109191287A (zh) | 一种区块链智能合约的分片方法、装置及电子设备 | |
CN112364584A (zh) | 一种基于分布式的静态时序分析方法 | |
CN106919998B (zh) | 一种基于aoe网络的物流模型及方法 | |
CN108920601B (zh) | 一种数据匹配方法及装置 | |
CN110334104A (zh) | 一种榜单更新方法、装置、电子设备及存储介质 | |
CN112955909A (zh) | 神经网络的分布式训练方法及装置 | |
CN116739470A (zh) | 网络分析方法和装置 | |
Barnat et al. | Model checking parallel programs with inputs | |
Xue et al. | Dc-top-k: A novel top-k selecting algorithm and its parallelization | |
CN105022689A (zh) | 一种发现大型面向对象软件系统关键测试函数的方法 | |
US9081578B1 (en) | System and method for graph conditioning with non-overlapping orderable values for efficient graph evaluation | |
CN116225690A (zh) | 基于docker的内存多维数据库计算负载均衡方法及系统 | |
Mi et al. | A new metric for package cohesion measurement based on complex network | |
Behle | On threshold BDDs and the optimal variable ordering problem | |
CN109491892B (zh) | 一种项目环境的配置方法和装置 | |
Li et al. | A fast and energy efficient branch and bound algorithm for NoC task mapping | |
Simons et al. | A comparison of evolutionary algorithms and ant colony optimization for interactive software design | |
CN108564135A (zh) | 构建骨架程序并实现高性能计算程序运行时间预测的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |