CN116739483A - 数据处理方法、装置、计算机设备及可读存储介质 - Google Patents

数据处理方法、装置、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN116739483A
CN116739483A CN202211131459.6A CN202211131459A CN116739483A CN 116739483 A CN116739483 A CN 116739483A CN 202211131459 A CN202211131459 A CN 202211131459A CN 116739483 A CN116739483 A CN 116739483A
Authority
CN
China
Prior art keywords
node
tree
candidate
communication
dominant
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
Application number
CN202211131459.6A
Other languages
English (en)
Inventor
耿敏行
干士
万梦涛
徐永强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211131459.6A priority Critical patent/CN116739483A/zh
Publication of CN116739483A publication Critical patent/CN116739483A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • G06Q10/0875Itemisation or classification of parts, supplies or services, e.g. bill of materials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/04Manufacturing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Abstract

本申请公开了一种数据处理方法、装置、计算机设备及可读存储介质,属于智能制造技术领域。该方法包括:基于待处理的物料清单BOM构建对应的产品结构树,待处理的BOM包括多个产品的BOM。将产品结构树分割成至少一个连通树,至少一个连通树中每个连通树用于描述同一类产品的BOM关联关系。分别对每个连通树在深度上进行裁剪处理,得到每个连通树对应的连通树主体,每个连通树对应的连通树主体分别用于物料计划运算。通过分割和裁剪处理后,使得每个连通树对应的连通树主体均能够单独用于物料计划运算,并且降低了单独运算的复杂度,从而可以提高物料计划运算的效率。

Description

数据处理方法、装置、计算机设备及可读存储介质
技术领域
本申请涉及智能制造技术领域,特别涉及一种数据处理方法、计算机设备及可读存储介质。
背景技术
在智能制造技术领域中,物料计划运算是生产过程中较为重要的环节,其主要目的是根据产品的物料清单(bill of material,BOM)确定物料需求计划(materialrequirement planning,MRP)和物料生产计划。
目前,在物料计划运算过程中,首先会根据产品的BOM构建用于描述产品的BOM关联关系的产品结构树,之后,将构建的产品结构树输入至模型等算法中,以确定物料需求计划和物料生产计划。然而,由于BOM结构关系通常较为复杂,使得求解运算规模巨大,从而容易导致物料计划运算的效率较低。
发明内容
本申请提供了一种数据处理方法、装置、计算机设备及可读存储介质,可以解决相关技术中由于产品结构树结构复杂导致物料计划运算效率较低的问题。所述技术方案如下:
第一方面,提供了一种数据处理方法,应用于计算机设备中,所述方法包括:
基于待处理的物料清单BOM构建对应的产品结构树,所述待处理的BOM包括多个产品的BOM;
将所述产品结构树分割成至少一个连通树,所述至少一个连通树中每个连通树用于描述同一类产品的BOM关联关系;
分别对所述每个连通树在深度上进行裁剪处理,得到所述每个连通树对应的连通树主体,所述每个连通树对应的连通树主体分别用于物料计划运算。
如此,通过分割和裁剪处理后,使得每个连通树对应的连通树主体均能够单独用于物料计划运算,并且降低了单独运算的复杂度,从而可以提高物料计划运算的效率。
作为本申请的一个示例,所述将所述产品结构树分割成至少一个连通树,包括:
将所述产品结构树中具有BOM关联关系的根节点划分至同一组;
将属于同一组的根节点所在的结构树分割至同一个分片中,每个分片包括用于描述同一类产品的BOM关联关系的连通树。
如此,通过将具有BOM关联关系的产品的连通树划分至同一个分片中,将不具有BOM关联关系的产品的连通树分割开,从而将产品结构树划分成至少一个连通树,以便于后续可以分别基于各个连通树进行物料计划运算,从而提高运算效率。
作为本申请的一个示例,所述分别对所述每个连通树在深度上进行裁剪处理,包括:
确定第一连通树的所有底层节点中存在最近支配节点的第一候选底层节点,所述第一连通树为所述至少一个连通树中任意一个连通树,所述底层节点是位于所述第一连通树的最底层的节点,所述最近支配节点是从所述第一连通树的根节点至第一候选底层节点的必经路径中距离第一候选底层节点最近的节点;
基于所确定的每个第一候选底层节点的最近支配节点,对所述第一连通树进行裁剪处理。
如此,通过确定所有底层节点中具有最近支配节点的第一候选底层节点,由于最近支配节点对第一候选底层节点具有支配作用,所以可以基于每个第一候选底层节点的最近支配节点,确定如何对第一连通树进行裁剪处理,从而降低连通树的高度,进而减小后续计算的复杂度。
作为本申请的一个示例,所述确定第一连通树的所有底层节点中存在最近支配节点的第一候选底层节点,包括:
对所述第一连通树中的每个底层节点进行遍历;
每遍历到一个底层节点时,若从所述第一连通树的根节点至当前遍历到的底层节点存在必经路径,则将所述必经路径上的中间节点均确定为当前遍历到的底层节点的支配节点,所述中间节点是指所述必经路径上除所述根节点与底层节点之外的节点;
将当前遍历到的底层节点的所有支配节点中与当前遍历到的底层节点距离最近的支配节点确定为当前遍历到的底层节点的最近支配节点,并将当前遍历到的底层节点确定为第一候选底层节点。
如此,通过遍历各个底层节点确定第一连通树中的第一候选底层节点,以及确定第一候选底层节点的最近支配节点,从而便于查找出第一连通树中所有具有最近支配节点的第一候选底层节点。
作为本申请的一个示例,所述基于所确定的每个第一候选底层节点的最近支配节点,对所述第一连通树进行裁剪处理,包括:
对所确定的每个第一候选底层节点进行遍历;
每遍历到一个第一候选底层节点时,若当前遍历到的第一候选底层节点到所述第一连通树中可达的根节点具有相同的最近支配节点,则将当前遍历到的第一候选底层的最近支配节点确定为当前遍历到的第一候选底层节点的最近公共支配节点,将当前遍历到的第一候选底层确定为第二候选底层节点;
在遍历结束后,基于所确定的每个第二候选底层节点的最近公共支配节点,对所述第一连通树进行裁剪处理。
如此,通过确定具有最近公共支配节点的第二候选底层节点,可以确定第二候选底层节点与最近公共支配节点之间的物料依赖关系,以及确定第二候选底层节点是否会对其他节点产生影响,从而可以确定能够对哪个或者哪些第二候选底层进行裁剪,以便于能够降低连通树的高度。
作为本申请的一个示例,所述在遍历结束后,基于所确定的每个第二候选底层节点的最近公共支配节点,对所述第一连通树进行裁剪处理,包括:
在遍历结束后,对所确定的每个第二候选底层节点进行遍历;
每遍历到一个第二候选底层节点时,在当前遍历到的第二候选底层节点的最近公共支配节点的下层不存在其他节点的情况下,将当前遍历到的第二候选底层节点裁剪掉;
在当前遍历到的第二候选底层节点的最近公共支配节点的下层存在其他节点的情况下,若当前遍历到的第二候选底层节点的最近公共支配节点是所述其他节点的最近公共支配节点,则将当前遍历到的第二候选底层节点和所述其他节点裁剪掉。
如此,通过将与最近公共支配节点之间具有专一依赖关系的第二候选底层节点裁剪掉,以降低连通树高度,从而可以减小后续运算的复杂度,从而提高运算效率。
作为本申请的一个示例,所述分别对所述每个连通树在深度上进行裁剪处理之后,还包括:
分别基于所述每个连通树对应的连通树主体,确定所述每个连通树主体对应的物料需求计划。
如此,在得到每个连通树对应的连通树主体后,可以分别基于每个连通树对应的连通树主体进行物料计划运算,由于每个连通树对应的连通树主体均支持单独的计算,所以相比于整体运算可以降低复杂度,提高运算效率。
作为本申请的一个示例,所述计算机设备设于计划运算系统中,所述计划运算系统包括分布式服务器集群;
所述分别基于所述每个连通树对应的连通树主体,确定所述每个连通树主体对应的物料需求计划,包括:
分别将所述每个连通树对应的连通树主体发送至所述分布式服务器集群的不同服务器中,以通过不同服务器分别基于各自所接收的连通树主体,确定对应的物料需求计划。
如此,计算机设备可以基于多个连通树充分利用多处理器能力,支持横向扩展部署分布式服务器集群,将各个连通树调度到分布式服务器集群中,以通过分布式服务器集群并行运算,可以降低整体运算耗时。
第二方面,提供了一种数据处理装置,所述数据处理装置具有实现上述第一方面中数据处理方法行为的功能,配置于计算机设备中,所述装置包括:
构建模块,用于基于待处理的物料清单BOM构建对应的产品结构树,所述待处理的BOM包括多个产品的BOM;
分割模块,用于将所述产品结构树分割成至少一个连通树,所述至少一个连通树中每个连通树用于描述同一类产品的BOM关联关系;
裁剪模块,用于分别对所述每个连通树在深度上进行裁剪处理,得到所述每个连通树对应的连通树主体,所述每个连通树对应的连通树主体分别用于物料计划运算。
作为本申请的一个示例,所述分割模块用于:
将所述产品结构树中具有BOM关联关系的根节点划分至同一组;
将属于同一组的根节点所在的结构树分割至同一个分片中,每个分片包括用于描述同一类产品的BOM关联关系的连通树。
作为本申请的一个示例,所述裁剪模块用于:
确定第一连通树的所有底层节点中存在最近支配节点的第一候选底层节点,所述第一连通树为所述至少一个连通树中任意一个连通树,所述底层节点是位于所述第一连通树的最底层的节点,所述最近支配节点是从所述第一连通树的根节点至第一候选底层节点的必经路径中距离第一候选底层节点最近的节点;
根据所确定的每个第一候选底层节点的最近支配节点,对所述第一连通树进行裁剪处理。
作为本申请的一个示例,所述裁剪模块用于:
对所述第一连通树中的每个底层节点进行遍历;
每遍历到一个底层节点时,若从所述第一连通树的根节点至当前遍历到的底层节点存在必经路径,则将所述必经路径上的中间节点均确定为当前遍历到的底层节点的支配节点,所述中间节点是指所述必经路径上除所述根节点与底层节点之外的节点;
将当前遍历到的底层节点的所有支配节点中与当前遍历到的底层节点距离最近的支配节点确定为当前遍历到的底层节点的最近支配节点,并将当前遍历到的底层节点确定为第一候选底层节点。
作为本申请的一个示例,所述裁剪模块用于:
对所确定的每个第一候选底层节点进行遍历;
每遍历到一个第一候选底层节点时,若当前遍历到的第一候选底层节点到所述第一连通树中可达的根节点具有相同的最近支配节点,则将当前遍历到的第一候选底层的最近支配节点确定为当前遍历到的第一候选底层节点的最近公共支配节点,将当前遍历到的第一候选底层确定为第二候选底层节点;
在遍历结束后,根据所确定的每个第二候选底层节点的最近公共支配节点,对所述第一连通树进行裁剪处理。
作为本申请的一个示例,所述裁剪模块用于:
在遍历结束后,对所确定的每个第二候选底层节点进行遍历;
每遍历到一个第二候选底层节点时,在当前遍历到的第二候选底层节点的最近公共支配节点的下层不存在其他节点的情况下,将当前遍历到的第二候选底层节点裁剪掉;
在当前遍历到的第二候选底层节点的最近公共支配节点的下层存在其他节点的情况下,若当前遍历到的第二候选底层节点的最近公共支配节点是所述其他节点的最近公共支配节点,则将当前遍历到的第二候选底层节点和所述其他节点裁剪掉。
作为本申请的一个示例,所述装置还包括确定模块,所述确定模块用于:
分别基于所述每个连通树对应的连通树主体,确定所述每个连通树主体对应的物料需求计划。
作为本申请的一个示例,所述计算机设备设于计划运算系统中,所述计划运算系统包括分布式服务器集群;所述确定模块用于:
分别将所述每个连通树对应的连通树主体发送至所述分布式服务器集群的不同服务器中,以通过不同服务器分别基于各自所接收的连通树主体,确定对应的物料需求计划。
第三方面,提供了一种计算机设备,所述计算机设备的结构中包括处理器和存储器,所述存储器用于存储支持计算机设备执行上述第一方面所提供的数据处理方法的程序,以及存储用于实现上述第一方面所述的数据处理方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述计算机设备还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据处理方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据处理方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是根据一示例性实施例示出的一种连通树的结构示意图;
图2是根据一示例性实施例示出的一种计划运算系统的架构示意图;
图3是根据一示例性实施例示出的一种数据处理方法的流程示意图;
图4是根据一示例性实施例示出的一种BOM的表格示意图;
图5是根据一示例性实施例示出的一种产品结构树的结构示意图;
图6是根据一示例性实施例示出的一种对产品结构树进行分割的方法流程示意图;
图7是根据一示例性实施例示出的一种分割结果的示意图;
图8是根据一示例性实施例示出的一种裁剪流程的示意图;
图9是根据一示例性实施例示出的一种裁剪后得到的连通树主体的示意图;
图10是根据一示例性实施例示出的一种裁剪结果的示意图;
图11是根据一示例性实施例示出的一种数据处理装置的结构示意图;
图12是根据一示例性实施例示出的一种计算机设备的结构示意图;
图13是根据一示例性实施例示出的一种计算机设备的软件架构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在对本申请实施例提供的数据处理方法进行详细地解释说明之前,先对本申请实施例涉及的术语和名词进行简单介绍。
BOM:是描述企业产品组成的技术文件,通常是以数据表格的形式表示产品的组成。示例性地,在加工领域中,BOM可以用于表明产品的总装件、分装件、组件、部件、零件、原材料之间的结构关系以及所需的数量。
制造结构件:通过厂家自己制造获得的结构件。其中结构件是产品的组成部件,譬如以产品是手机为例,手机的结构件通常包括手机的屏幕、前壳、中框、电池盖等。
采购结构件:通过购买方式获得的结构件。
采购件:通过采购方式获得的器件,可以用于制造结构件。
有约束场景:一般是指求解问题时需要考虑约束条件的场景。譬如在计划运算系统中,通常将物料供应关系、生产日期、生产周期、需求日期等作为基于BOM确定物料需求计划和物料生产计划的约束条件。
连通树:可以用于描述产品的BOM关联关系,也即可以用于描述产品的物料之间的关联关系。譬如请参考图1,图1是根据一示例性实施例示出的一种连通树的示意图,该连通树描述了产品M的物料之间的关联关系,从该连通树上可以看出产品M的需求物料包括制造结构件a、采购结构件b以及裸机c,并且,制造结构件a的需求物料包括采购件a1和采购件a2。
在供应链场景下,为了能够保证生产稳定的同时提升生产利益,通常需要进行物料计划运算。物料计划运算一般包括确定物料需求计划和物料生产计划。目前,用户可以通过计算机设备根据产品的BOM构建用于描述产品的BOM关联关系的产品结构树,之后,将BOM对应的产品结构树输入至模型等算法中,以确定物料需求计划和物料生成计划。然而,由于产品结构树的结构通常较为复杂,使得基于产品结构树进行求解运算的规模巨大,尤其是在有约束场景下,还会使得约束条件过多,导致求解运算耗时较长,从而导致物料计划运算的效率较低。
为此,本申请实施例提供了一种数据处理方法,该方法可以在进行求解运算之前先对产品结构树进行横向分割和纵向裁剪,以减小用于求解运算的连通树的复杂度,从而便于提高求解运算效率。譬如在有约束场景下,可以有效地缩小约空间和求解空间,从而可以达到提高求解运算效率的目的。另外,该方法还可以支持通过分布式服务器集群进行并行运算,以减小运算时长。其具体实现可以参见下文图3所示的实施例。
在对本申请实施例提供的数据处理方法进行详细说明之前,先对本申请实施例涉及的计划运算系统的架构进行简单介绍。作为本申请的一个示例,请参考图2,图2是根据一示例性实施例示出的一种计划运算系统的架构示意图,该计划运算系统中包括计算机设备210和分布式服务器集群220,分布式服务器集群220中包括多个服务器220a。计算机设备210与分布式服务器集群220中的各个服务器220a建立有数据通信连接。
计算机设备210用于对产品结构树进行分割处理,从而得到多个分片,每个分片对应为一个连通树。作为本申请的一个示例,请参见图2,计算机设备210可以将处理后得到的各个连通树分别发送至不同服务器220a,以使得各个服务器220a分别基于各自所接收的连通树进行求解运算,也即可以通过分布式服务器集群220实现并行运算,从而可以达到节省运算时长的目的。
相应地,分布式服务器集群220可以用于通过各个服务器220a并行进行物料需求运算,并将运算结果反馈给计算机设备210,由计算机设备210汇总结果,从而完成排查计划。
在供应链场景中,上述计划运算系统可以为结构件齐套模拟系统,结构件齐套模拟系统可以用于评估结构件对产品的供应能力。
当然,本申请实施例提供的方法除了可以应用于结构件齐套模拟系统外,还可以应用于其他应用场景中。在一个示例中,还可以应用于有约束条件下的分配问题,譬如可供承诺(Available to Promise,ATP)分配、日生产系统(daily production system,DPS)等。在另一个示例中,还可以应用于采购物料快速模拟计算中,通过支持分割和裁剪优化,提高模拟速度。此外,在非供应链场景下,该方法还可以用于解决存在类似供需关系的求解问题,本申请实施例对此不作限定。
需要说明的是,本申请实施例是以该数据处理方法应用于图2所示的计划运算系统中为例进行说明,在另一实施例中,该数据处理方法还可以仅用于单机部署的计算机设备中,也即不涉及分布式服务器集群,该种情况下,可以由计算机设备在将产品结构树分割成多个无关联的连通树后,依次基于各个连通树进行求解运算,由于各个连通树的复杂度降低了,所有相比于基于产品结构树进行求解运算也可以达到提高运算效率。
基于上述图3所示的计划运算系统,接下来对本申请实施例提供的方法进行介绍。其中,由于物料需求计划和物料生成计划均是基于相同的数据确定的,所以下文以确定物料需求计划为例进行说明。请参考图3,图3是根据一示例性实施例示出的一种数据处理方法的流程示意图。该方法可以应用于上述计划运算系统中,该方法可以包括如下部分或者全部内容:
步骤301:基于待处理的BOM构建对应的产品结构树。
待处理的BOM包括多个产品的BOM,每个产品的BOM用于描述父项物料和子项物料之间的关联关系,以及父项物料所需的子项物料的数量等供需信息。其中父项物料的组成包括至少一个子项物料,譬如请参见图1,制造结构件a是采购件a1的父项物料,对应地,采购件a1是制造结构件a的子项物料,此外,制造结构件a也是采购件a2的父项物料,对应地,采购件a2也是制造结构件a的子项物料。
在一种可能的情况下,多个产品的种类可能相同,譬如多个产品包括型号不同的手机。在另一种可能的情况下,多个产品的种类也可能不相同,譬如多个产品包括手机、电脑、平板等。作为一个示例,待处理的BOM的父项物料与子项物料之间的对应关系可以如图4中的表格所示。
产品结构树中包括多个产品的BOM关联关系。
作为本申请的一个示例,待处理的BOM可以预先存储在计算机设备的数据库中,且计算机设备中可以提供有数据处理系统,当用户需要确定物料需求计划时,可以打开数据处理系统,响应于用户的该打开操作,计算机设备启动数据处理系统,之后,在数据处理系统的显示界面中为用户提供数据处理按键,如此,用户可以点击(譬如通过鼠标等点击)该数据处理按键,以触发计算机设备从数据库中获取待处理的BOM,并基于待处理的BOM构建对应的产品结构树。
作为本申请的一个示例,计算机设备可以基于待处理的BOM,通过加权并查集算法构建对应的产品结构树,示例性地,可以包括如下几个主要步骤:
(1)根据待处理的BOM构建Pair对。
其中每个Pair对包括一个父项物料和一个子项物料。
由于产品的BOM用于描述物料的关联关系,所以可以根据BOM构建父项物料与子项物料的映射关系,也即建立Pair对。
(2)初始化一个加权并查集网络。
在一个示例中,初始化的加权并查集网络的大小可以为BOM全量数据大小,BOM全量数据大小为Pair对的数量。为了便于描述,可以将初始化的加权并查集网络称为网络X。
(3)遍历所有的Pair对,在每次遍历时,将当前遍历到的Pair对中的父项物料和子项物料添加至网络X中,并建立父项物料与子项物料之间的连接关系。
在此过程中,每遍历到一个Pair对时,比较父项物料与子项物料在网络X中的连通分量大小,将较小的连通分量对应的物料合并到较大的连通分量对应的物料中。譬如若父项物料的连通分量小于子项物料的连通分量,则将父项物料合并至子项物料中,若父项物料的连通分量大于子项物料的连通分量,则将子项物料合并至父项物料中。
如此,遍历结束后得到的网络X即为产品结构树,也即构建出待处理的BOM对应的产品结构树。在一个示例中,构建的产品结构树如图5所示。
需要说明的是,由于基于BOM所构建的产品结构树是作为一个整体存在,如果将构建的产品结构树输入至模型中进行计算,则容易使得计算工程较为巨大,为此,计算机设备执行如下操作。
步骤302:将产品结构树分割成至少一个连通树,至少一个连通树中每个连通树用于描述同一类产品的BOM关联关系。
BOM关联关系是指BOM的父项物料、子项物料之间的关联关系。
由于不同种类的产品的物料之间存在交叉的概率较小,如手机的物料与电脑的物料之间基本不存在重叠关系,因此,计算机设备可以对产品结构树进行分割处理,将产品结构树分割成多个分片,每个分片即为一个连通树,且每个分片中的连通树描述的是同一类产品的且具有连通关系的物料之间的关联关系,以将不存在交叉关系的连通树分至不同的组中,从而得到可以在不同服务器上并行运算的至少一个连通树。
不难理解,如果待处理的BOM包括的相同种类的产品的BOM,则经过分割后可能仅得到一个连通树。如果待处理的BOM包括多个种类的产品的BOM,则经过分割后通常会得到多个连通树。
作为本申请的一个示例,将产品结构树进行分割处理的具体实现可以包括:将产品结构树中具有BOM关联关系的根节点划分至同一组,将属于同一组的根节点所在的结构树分割至同一个分片中,得到至少一个连通树。
根节点是产品结构树中的最高层的节点,譬如请参见图5,在图5中的根节点包括手机A、手机B和电脑C。
在一个示例中,请参考图6,将产品结构树中具有BOM关联关系的根节点划分至同一组,将属于同一组的根节点所在的结构树分割至同一个分片中的具体实现可以包括如下几个子步骤:
3021:遍历产品结构树中的各个根节点。
如前文所述,产品结构树中包括多个产品的BOM关联关系,每个产品即对应为一个根节点,产品结构树中包括多个根节点。由于相同种类的产品的物料之间可能存在交叉,所以可以从产品之间的BOM关联关系的角度出发,计算机设备对产品结构树中的所有根节点进行遍历,以确定哪些根节点之间存在BOM关联关系。
3022:每当遍历到一个根节点时,检测是否存在与当前遍历到的根节点属于同一个连通分量的已分割根节点。
已分割根节点是指已被遍历过的且已被分组的根节点。不难理解,在遍历到第一个根节点时,由于此时不存在已分割根节点,所以可以直接将遍历的第一个根节点确定为已分割根节点。
在一种可能的情况下,在已分割根节点的数量为一个的情况下,判断当前遍历到的根节点与已分割根节点之间是否存在可达路径。如果当前遍历到的根节点与已分割根节点之间存在可达路径,则确定当前遍历到的根节点与已分割根节点属于同一个连通分量。否则,如果当前遍历到的根节点与已分割根节点之间不存在可达路径,则确定当前遍历到的根节点与已分割根节点不属于同一个连通分量。
在另一种可能的情况下,在已分割根节点的数量为多个的情况下,则判断多个已分割根节点中是否包括与当前遍历到的根节点之间存在可达路径的已分割根节点,如果多个已分割根节点中包括与当前遍历到的根节点之间存在可达路径的已分割根节点,则确定该多个已分割根节点中包括与当前遍历到的根节点属于同一连通分量的已分割根节点。否则,如果多个已分割根节点中不包括与当前遍历到的根节点之间存在可达路径的已分割根节点,则确定该多个已分割根节点中不包括与当前遍历到的根节点属于同一连通分量的已分割根节点。
为了便于描述和理解,可以将与当前遍历到的根节点属于同一个连通分量的已分割根节点称为参考根节点。在存在参考根节点的情况下,计算机设备执行如下3023的操作;否则,如果不存在参考根节点,也即不存在与当前遍历到的根节点属于同一个连通分量的已分割根节点,则执行如下3024的操作。
3023:将当前遍历到的根节点确定为与参考根节点属于同一个组。
3024:将当前遍历到的根节点划分至一个新的组中。
如果不存在参考根节点,则重新为当前遍历到的根节点建立一个组,并将当前遍历到的根节点划分至新建立的组中。
3025:在遍历结束后,则将属于同一个组的根节点所在的结构树分割至同一个分片中。
在一个示例中,请参考图5,计算机设备依次遍历产品结构树中的各个根节点,分别为手机A、手机B、电脑C。当遍历到手机A且手机A是第一个遍历的根节点时,计算机设备可以直接将手机A确定为已分割根节点,记手机A所在的组为组1。计算机设备继续遍历下一个根节点手机B,判断手机B与手机A之间是否存在可达路径,从产品结构树中可以看出,手机B与手机A之间的路径通过节点MPb2可达,所以可以确定手机B与手机A之间存在可达路径,从而可以确定手机B与手机A属于同一个连通分量,进而可以确定手机B与手机A属于同一个组,也即手机B也属于组1,并且确定手机B为已分割根节点。计算机设备继续遍历下一个根节点电脑C,判断手机A与手机B中是否包括与电脑C之间存在可达路径的已分割根节点,由于在已分割根节点中,手机A与电脑C之间不存在可达路径,以及手机B与电脑C之间也不存在可达路径,也即电脑C与手机A不属于同一连通分量,且电脑C与手机B也不属于同一连通分量,因此,可以确定已分割根节点中不包括与电脑C之间存在可达路径的已分割根节点,该种情况下,将电脑C划分至一个新的组中,记电脑C所在的组为组2。之后,由于产品结构树中不存在未遍历的根节点,所以遍历结束,计算机设备将组1中的手机A所在的结构树与手机B所在的结构树分割至同一个分片中,以及将组2中的电脑C所在的结构树分割至另一个分片中,分割后得到的两个分片如图7所示,包括分片1和分片2。
从图7中不难看出,手机A与手机B存在部分物料的交叉,因此在进行求解问题设计时,手机A对应的连通树与手机B对应的连通树被分割至同一个分片中,以综合考虑手机A和手机B的供需信息,而电脑C与手机A和手机B都不存在任何物料的交叉,因此在进行求解问题设计时,电脑C对应的连通树被分割至另一个分片中,以便于单独考虑电脑C对应的供需信息。
步骤303:分别对每个连通树在深度上进行裁剪处理,得到每个连通树对应的连通树主体,每个连通树对应的连通树主体分别用于物料计划运算。
作为本申请的一个示例,请参考图8,步骤303的具体实现可以包括如下几个子步骤:
3031:对第一连通树中的每个底层节点进行遍历。
第一连通树为至少一个连通树中的任意一个连通树。
底层节点是位于第一连通树的最底层的节点。示例性地,请参考图9,图9是根据一示例性实施例示出的一种第一连通树的示意图,底层节点包括P8、P1、P5、P6、MPa1、P2、P3、P7、MPa3、P4、P9、P10。计算机设备对所有底层节点中的每个底层节点进行遍历。
3032:每遍历到一个底层节点时,若从第一连通树的根节点至当前遍历到的底层节点存在必经路径,则将必经路径上的中间节点均确定为当前遍历到的底层节点的支配节点,中间节点是必经路径上除根节点与底层节点之外的节点。
其中,支配节点对底层节点具有支配作用。
在一个示例中,请参考图9,若当前遍历到的底层节点为P8,由于根节点手机A与底层节点P8之间存在必经路径手机A->MF1->PCBA1->P8,所以,可以确定该必经路径上的节点MF1和PCBA1对底层节点P1具有支配作用,因此将该必经路径上的节点MF1和PCBA1均确定为底层节点P1的支配节点。
在一个示例中,如果第一连通树中包括多个根节点,且多个根节点与当前遍历到的底层节点之间均存在必经路径,则每个必经路径上的中间节点均是当前遍历到的底层节点在对应的必经路径上的支配节点。
示例性地,请参考图9,假设当前遍历到的底层节点是P6,由于根节点手机A与底层节点P6之间存在必经路径S1,S1为手机A->MF1->PCBA2->P6,且该必经路径S1上包括的中间节点为MF1、PCBA2,所以将中间节点MF1与PCBA2确定为P6在该必经路径S1上的支配节点;另外,由于根节点手机B与底层节点P6之间也存在必经路径S2,S2为手机B->MF2->PCBA3->P6,且该必经路径S2上包括的中间节点为MF2、PCBA3,所以将节点MF2与PCBA3确定为P6在该必经路径S2上的支配节点。
3033:将当前遍历到的底层节点的所有支配节点中与当前遍历到的底层节点距离最近的支配节点确定为当前遍历到的底层节点的最近支配节点,并将当前遍历到的底层节点确定为第一候选底层节点。
第一候选底层节点是指具有最近支配节点的底层节点。
最近支配节点是从第一连通树的根节点至第一候选底层节点的必经路径中距离第一候选底层节点最近的节点。
在一个示例中,以当前遍历到的底层节点是P8为例,由于支配节点PCBA1与底层节点P8之间的距离小于支配节点MF1与底层节点P8之间的距离,因此,可以确定PCBA1为底层节点P8的最近支配节点,并将底层节点P8确定为第一候选底层节点。
在另一个示例中,如果当前遍历到的底层节点对应有多个必经路径,则当前遍历到的底层节点可能有一个或者多个最近支配节点。示例性地,以当前遍历到的底层节点是P6为例,由于在必经路径S1上,支配节点PCBA2与底层节点P6之间的距离小于支配节点MF1与底层节点P6之间的距离,因此可以确定PCBA2为底层节点P6在必经路径S1上的最近支配节点,另外,在必经路径S2上,支配节点PCBA3与底层节点P6之间的距离小于支配节点MF2与底层节点P6之间的距离,因此,可以确定PCBA3为底层节点P6在必经路径S2上的最近支配节点。此外,将底层节点S6确定为第一候选底层节点。
当然,在遍历过程中,第一连通树中的所有底层节点中可能存在不具有最近支配节点的底层节点,在遍历到该类底层节点并在确定其不存在最近支配节点的情况下,不将该底层节点确定为第一候选底层节点,也即可以确定后续不对该底层节点进行裁剪处理,此时继续遍历下一个底层节点。在一个示例中,若某底层节点与根节点之间不存在必经路径,则可以确定该底层节点不存在最近支配节点。
按照上述方式,通过对第一连通树中的各个底层节点依次进行遍历,即可确定第一连通树中的所有第一候选底层节点,以及所有第一候选底层节点中的每个第一候选底层节点的最近支配节点。
需要说明的是,上述步骤3031至步骤3033是确定第一连通树的所有底层节点中存在最近支配节点的第一候选底层节点的一种可选实现方式。在另一个可选的实施例中,也可以不采用遍历的方式,本申请实施例对此不作限定。
3034:对所确定的每个第一候选底层节点进行遍历。
为了确定哪个或者哪些第一候选底层节点可以裁剪掉,计算机设备对所确定每个第一候选底层节点进行遍历,以检测第一候选底层节点与其最近支配节点之间的依赖关系,以便于根据该依赖关系进行裁剪处理。
3035:每遍历到一个第一候选底层节点时,若当前遍历到的第一候选底层节点到第一连通树中可达的根节点具有相同的最近支配节点,则将当前遍历到的第一候选底层的最近支配节点确定为当前遍历到的第一候选底层节点的最近公共支配节点,将当前遍历到的第一候选底层确定为第二候选底层节点。
第二候选底层节点是指具有最近公共支配节点的第一候选底层节点。
如前文所述,有的第一候选底层节点与第一连通树中一个根节点之间存在必经路径,有的第一候选底层节点与第一连通树中的多个根节点之间均存在必经路径,在实施中,计算机设备每当遍历到一个第一候选底层节点时,判断当前遍历到的第一候选底层节点到第一连通树中的所有可达的根节点是否具有相同的最近支配节点。如果存在,则将当前遍历到的第一候选底层的最近支配节点确定为当前遍历到的第一候选底层节点的最近公共支配节点,并记当前遍历到的第一候选底层为第二候选底层节点。
在一个示例中,请参见图9,以当前遍历到的第一候选底层节点是P8为例,第一候选底层节点P8仅到第一连通树中的根节点手机A可达,且其最近支配节点包括PCBA1,所以可以确定PCBA1是第一候选底层节点P8的最近公共支配节点,此时将P8记为第二候选底层节点。
在另一个示例中,请参见图9,以当前遍历到的第一候选底层节点是P2为例,第一候选底层节点P2到第一连通树中的根节点手机A可达,且在此必经路径上的最近支配节点为MPb2,以及到第一连通树中的根节点手机B可达,且在此必经路径上的最近支配节点也是MPb2,因此,可以确定MPb2是第一候选底层节点P2的最近公共支配节点,此时将P2记为第二候选底层节点。
在又一个示例中,请参考图9,以当前遍历到的第一候选底层节点是P6为例,第一候选底层节点P6到第一连通树中的根节点手机A可达,且在此必经路径上的最近支配节点为PCBA2,以及到第一连通树中的根节点手机B可达,且在此必经路径上的最近支配节点为PCBA3,而不是PCBA2,因此可以确定第一候选底层节点P6不存在最近公共支配节点,该种情况下,确定P6不是第二候选底层节点。
按照上述方式,通过遍历后,可以确定第一连通树中包括的第二候选底层节点包括P8、P1、P5、P2、P3、P7、P4、P9以及P10,其中,P8的最近公共支配节点为PCBA1,P1的最近公共支配节点为MF1,P5的最近公共支配节点为PCBA2,P2的最近公共支配节点为MPb2,P3的最近公共支配节点为MPb2,P7的最近公共支配节点为PCBA3,P4是最近公共支配节点为MF2,P9的最近公共支配节点为PCBA4,P10的最近公共支配节点为PCBA4。
请继续参考图8,在遍历结束后,根据所确定的每个第二候选底层节点的最近公共支配节点,对第一连通树进行裁剪处理,具体实现可以参见如下3036至3039几个子步骤:
3036:在遍历结束后,对所确定的每个第二候选底层节点进行遍历。
为了确定哪个或者哪些第二候选底层节点可以裁剪掉,计算机设备对所确定每个第二候选底层节点进行遍历,以检测第二候选底层节点与其最近公共支配节点之间的依赖关系,从而根据依赖关系进行裁剪处理。
3037:每遍历到一个第二候选底层节点时,检测当前遍历到的第二候选底层节点的最近公共支配节点的下层是否存在其他节点。
在当前遍历到的第二候选底层节点的最近公共支配节点的下层不存在其他节点的情况下,执行如下3038的操作;在当前遍历到的第二候选底层节点的最近公共支配节点的下层存在其他节点的情况下,执行如下3039的操作。
3038:将当前遍历到的第二候选底层节点裁剪掉。
如果当前遍历到的第二候选底层节点的最近公共支配节点的下层不存在其他节点,说明当前遍历到的第二候选底层节点与其最近公共支配节点之间仅存在专一依赖关系,也即当前遍历到的第二候选底层节点的最近公共支配节点仅与当前遍历到的第二候选底层节点之间存在供需关系,或者说,当前遍历到的第二候选底层节点的物料仅用于供其最近公共支配节点所需,不会对其他节点有影响,该种情况下,为了降低运算的复杂度,在计算中可以不考虑当前遍历到的第二候选底层节点,因此可以对第二候选底层节点进行裁剪,以减小第一连通树的深度。
譬如请参考图9,以当前遍历到的第二候选底层节点是P8为例,由于当前遍历到的第二候选底层节点的最近公共支配节点PCBA1的下层不存在其他节点,说明P8仅用于制造其最近公共支配节点PCBA1,或者说PCBA1所需的物料仅包括P8,P8不会对其他节点有影响,因此在计算过程中可以不考虑P8,所以可以将P8从第一连通树中裁剪掉。
3039:若当前遍历到的第二候选底层节点的最近公共支配节点是其他节点的最近公共支配节点,则将当前遍历到的第二候选底层节点和其他节点裁剪掉。
如果当前遍历到的第二候选底层节点的最近公共支配节点的下层存在其他节点,还可以进一步检测当前遍历到的第二候选底层节点的最近公共支配节点是否也是其他节点的最近公共支配节点,如果是,则说明当前遍历到的第二候选底层节点和该其他节点仅供当前遍历到的第二候选底层节点的最近公共支配节点所需,不会对其他节点不会存在影响,因此在计算中可以不考虑当前遍历到的第二候选底层节点和该其他节点,可以将当前遍历到的第二候选底层节点和该其他节点进行剪裁。
譬如请参考图9,以当前遍历到的第二候选底层节点是P2为例,由于P2的最近公共支配节点MPb2的下层存在其他节点P3,且MPb2是P3的最近公共支配节点,说明P2和P3仅用于制造其最近公共支配节点MPb2,说明说MPb2所需的物料仅包括P2和P3,P2和P3不会对其他节点有影响,因此在计算过程中可以不考虑P2和P3,所以可以将P2和P3从第一连通树中裁剪掉。
当然在另一种情况下,在当前遍历到的第二候选底层节点的最近公共支配节点的下层存在其他节点的情况下,若当前遍历到的第二候选底层节点的最近公共支配节点不是该其他节点的最近公共支配节点,则不对当前遍历到的第二候选底层节点和其他节点进行裁剪。
示例性地,请参考图9,以当前遍历到的第二候选底层节点是P7为例,第二候选底层节点P7的最近公共支配节点是PCBA3,PCBA3的下层还存在其他节点P6,由于PCBA3不是P6的最近公共支配节点,不难看出,P6除了用于制造PCBA3之外,还影响着节点PCBA2,也即还用于制造PCBA2,因此在计算中需要保留P6和P7,所以计算机设备不对P7和P6进行裁剪。
按照上述方式,在遍历结束后,计算机设备对第一连通树完成裁剪处理。将经裁剪后得到的部分作为第一连通树对应的连通树主体。
按照上述流程,计算机设备对每个连通树进行裁剪处理,以在深度上进行优化,裁剪掉可替代的底层物料,合并供需物料,降低连通树的高度,便于后续可以减小运算逻辑的复杂度,有效提升运算效率。尤其在有约束场景场景下,通过裁剪优化可以有效缩小约束空间和求解空间,进而提高运算效率。
进一步地,为了保证物料计划运算的完整性,可以记录裁剪掉的底层节点与其父项物料之间的映射关系,以便于后续可以将该映射关系叠加至运算结果中。示例性地,通过对第一连通树进行裁剪后,所记录的裁剪掉的底层节点与其父项物料的映射关系如图10所示。
需要说明的是,上述步骤3034至步骤3039是根据所确定的每个第一候选底层节点的最近支配节点,对第一连通树进行裁剪处理的一种可选实现方式。
对产品结构树进行分组和裁剪处理后,即可基于得到的至少一个连通树中每个连通树对应的连通树主体,确定每个连通树主体对应的物料需求计划。在一种可能的实现方式中,其具体实现可以参见如下步骤。
步骤304:分别将每个连通树对应的连通树主体发送至分布式服务器集群的不同服务器中,以通过不同服务器分别基于各自所接收的连通树主体,确定对应的物料需求计划。
在一个示例中,分布式服务器集群中包括服务器SV1和服务器SV2,计算机设备将分片1对应的连通树主体发送给服务器SV1进行处理,以及将计算机设备将分片2对应的连通树主体发送个服务器SV2进行处理。对于分布式服务器集群中的各个服务器来说,在基于所接收的连通树主体,通过模型确定所接收的连通树主体对应的物料需求计划。譬如服务器SV1基于分片1对应的连通树主体进行物料计划运算,服务器SV2基于分片2对应的连通树主体进行物料计划运算。
值得一提的是,计算机设备可以基于多个连通树充分利用多处理器能力,支持横向扩展部署分布式服务器集群,将各个连通树调度到分布式服务器集群中,以通过分布式服务器集群并行运算,可以降低整体运算耗时,譬如在结构件齐套模拟系统中,整体运算耗时可以降低约45%,从而提高了运算效率。
步骤305:接收不同服务器发送的物料需求计划。
对于分布式服务器集群中的各个服务器来说,在基于所接收的连通树主体,通过模型确定所接收的连通树主体对应的物料需求计划后,将运算结果反馈给计算机设备。相应地,计算机设备接收不同服务器发送的物料需求计划。
步骤306:对所接收的物料需求计划进行汇总,得到最终的物料需求计划。
每个服务器发送的物料需求计划均可以看成是一个子计划,作为示例而非限定,计算机设备可以将每个服务器发送的物料需求计划汇总在一起。在一个示例中,计算机设备可以将在上述流程中裁剪掉的底层节点与其父项物料之间的映射关系添加至对应的子计划中,譬如将从第一连通树中裁剪掉的底层节点与其父项物料之间的映射关系,添加至基于第一连通树确定的物料需求计划中,之后对添加处理后的各个物料需求计划进行汇总,从而得到最终的物料需求计划。
需要说明的是,步骤304至步骤306是分别基于每个连通树对应的连通树主体,确定每个连通树主体对应的物料需求计划的一种可选实现方式。在另一个示例中,在单机部署的情况下,还可以由计算机设备依次基于每个连通树对应的连通树主体,确定每个连通树主体对应的物料需求计划,之后对所有的物料需求计划进行汇总,以确定总的物料需求计划。
在本申请实施例中,基于待处理的BOM构建对应的产品结构树,之后,将产品结构树分割成至少一个连通树,使得至少一个连通树中的每个连通树用于描述同一类产品的BOM关联关系,也即将不具有BOM关联关系的连通树分割开来。并且,对每个连通树在深度上进行裁剪处理,以降低连通树的高度,从而得到每个连通树对应的连通树主体。如此,通过分割和裁剪处理后,使得每个连通树对应的连通树主体均能够单独用于物料计划运算,并且降低了单独运算的复杂度,从而可以提高物料计划运算的效率。
需要说明的是,上述是以分片为粒度进行处理为例进行说明。在另一实施例中,还可以根据一定的条件从分片中选取连通树的部分子树,然后以选取的子树为粒度进行后续处理。譬如可以根据物料种类不同对连通树中的节点赋予对应的权重,并根据各个节点的权重不同对节点赋予不同的颜色,之后可以采用分布式运行,其中每个运行实例中仅运算具有同种颜色的物料。
图11是本申请实施例提供的一种数据处理装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部。参见图11,该装置包括:
构建模块1110,用于基于待处理的物料清单BOM构建对应的产品结构树,所述待处理的BOM包括多个产品的BOM;
分割模块1120,用于将所述产品结构树分割成至少一个连通树,所述至少一个连通树中每个连通树用于描述同一类产品的BOM关联关系;
裁剪模块1130,用于分别对所述每个连通树在深度上进行裁剪处理,得到所述每个连通树对应的连通树主体,所述每个连通树对应的连通树主体分别用于物料计划运算。
作为本申请的一个示例,所述分割模块1120用于:
将所述产品结构树中具有BOM关联关系的根节点划分至同一组;
将属于同一组的根节点所在的结构树分割至同一个分片中,每个分片包括用于描述同一类产品的BOM关联关系的连通树。
作为本申请的一个示例,所述裁剪模块1130用于:
确定第一连通树的所有底层节点中存在最近支配节点的第一候选底层节点,所述第一连通树为所述至少一个连通树中任意一个连通树,所述底层节点是位于所述第一连通树的最底层的节点,所述最近支配节点是从所述第一连通树的根节点至第一候选底层节点的必经路径中距离第一候选底层节点最近的节点;
基于所确定的每个第一候选底层节点的最近支配节点,对所述第一连通树进行裁剪处理。
作为本申请的一个示例,所述裁剪模块1130用于:
对所述第一连通树中的每个底层节点进行遍历;
每遍历到一个底层节点时,若从所述第一连通树的根节点至当前遍历到的底层节点存在必经路径,则将所述必经路径上的中间节点均确定为当前遍历到的底层节点的支配节点,所述中间节点是指所述必经路径上除所述根节点与底层节点之外的节点;
将当前遍历到的底层节点的所有支配节点中与当前遍历到的底层节点距离最近的支配节点确定为当前遍历到的底层节点的最近支配节点,并将当前遍历到的底层节点确定为第一候选底层节点。
作为本申请的一个示例,所述裁剪模块1130用于:
对所确定的每个第一候选底层节点进行遍历;
每遍历到一个第一候选底层节点时,若当前遍历到的第一候选底层节点到所述第一连通树中可达的根节点具有相同的最近支配节点,则将当前遍历到的第一候选底层的最近支配节点确定为当前遍历到的第一候选底层节点的最近公共支配节点,将当前遍历到的第一候选底层确定为第二候选底层节点;
在遍历结束后,基于所确定的每个第二候选底层节点的最近公共支配节点,对所述第一连通树进行裁剪处理。
作为本申请的一个示例,所述裁剪模块1130用于:
在遍历结束后,对所确定的每个第二候选底层节点进行遍历;
每遍历到一个第二候选底层节点时,在当前遍历到的第二候选底层节点的最近公共支配节点的下层不存在其他节点的情况下,将当前遍历到的第二候选底层节点裁剪掉;
在当前遍历到的第二候选底层节点的最近公共支配节点的下层存在其他节点的情况下,若当前遍历到的第二候选底层节点的最近公共支配节点是所述其他节点的最近公共支配节点,则将当前遍历到的第二候选底层节点和所述其他节点裁剪掉。
作为本申请的一个示例,所述装置还包括确定模块1140,所述确定模块1140用于:
分别基于所述每个连通树对应的连通树主体,确定所述每个连通树主体对应的物料需求计划。
作为本申请的一个示例,所述计算机设备设于计划运算系统中,所述计划运算系统包括分布式服务器集群;所述确定模块1140用于:
分别将所述每个连通树对应的连通树主体发送至所述分布式服务器集群的不同服务器中,以通过不同服务器分别基于各自所接收的连通树主体,确定对应的物料需求计划。
在本申请实施例中,基于待处理的BOM构建对应的产品结构树,之后,将产品结构树分割成至少一个连通树,使得至少一个连通树中的每个连通树用于描述同一类产品的BOM关联关系,也即将不具有BOM关联关系的连通树分割开来。并且,对每个连通树在深度上进行裁剪处理,以降低连通树的高度,从而得到每个连通树对应的连通树主体。如此,通过分割和裁剪处理后,使得每个连通树对应的连通树主体均能够单独用于物料计划运算,并且降低了单独运算的复杂度,从而可以提高物料计划运算的效率。
需要说明的是,上述实施例提供的数据处理装置在处理数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
图12是本申请实施例提供的一种计算机设备的结构示意图。参见图12,计算机设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对计算机设备100的具体限定。在本申请另一些实施例中,计算机设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,比如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是计算机设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口,如可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过计算机设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为计算机设备100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
计算机设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
计算机设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,计算机设备100可以包括1个或N个显示屏194,N为大于1的整数。
接下来对计算机设备100的软件系统予以说明。
计算机设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的安卓(Android)系统为例,对计算机设备100的软件系统进行示例性说明。
图13是本申请实施例提供的一种计算机设备100的软件系统的框图。参见图13,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统层,以及内核层。
应用程序层可以包括一系列应用程序包。如图13所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括数据处理模块,数据处理模块可以用于对产品结构树进行分割、裁剪等处理。此外,应用程序框架层还包括一些预先定义的函数。如图13所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问,这些数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,比如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序的显示界面,显示界面可以由一个或多个视图组成,比如,包括显示短信通知图标的视图,包括显示文字的视图,以及包括显示图片的视图。电话管理器用于提供计算机设备100的通信功能,比如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如,通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或滚动条文本形式出现在系统顶部状态栏的通知,比如后台运行的应用程序的通知。通知管理器还可以是以对话窗口形式出现在屏幕上的通知,比如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块,比如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(比如:OpenGL ES),2D图形引擎(比如:SGL)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,比如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(比如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种数据处理方法,其特征在于,应用于计算机设备,所述方法包括:
基于待处理的物料清单BOM构建对应的产品结构树,所述待处理的BOM包括多个产品的BOM;
将所述产品结构树分割成至少一个连通树,所述至少一个连通树中每个连通树用于描述同一类产品的BOM关联关系;
分别对所述每个连通树在深度上进行裁剪处理,得到所述每个连通树对应的连通树主体,所述每个连通树对应的连通树主体分别用于物料计划运算。
2.如权利要求1所述的方法,其特征在于,所述将所述产品结构树分割成至少一个连通树,包括:
将所述产品结构树中具有BOM关联关系的根节点划分至同一组;
将属于同一组的根节点所在的结构树分割至同一个分片中,每个分片包括用于描述同一类产品的BOM关联关系的连通树。
3.如权利要求1-2中任一项所述的方法,其特征在于,所述分别对所述每个连通树在深度上进行裁剪处理,包括:
确定第一连通树的所有底层节点中存在最近支配节点的第一候选底层节点,所述第一连通树为所述至少一个连通树中任意一个连通树,所述底层节点是位于所述第一连通树的最底层的节点,所述最近支配节点是从所述第一连通树的根节点至第一候选底层节点的必经路径中距离第一候选底层节点最近的节点;
基于所确定的每个第一候选底层节点的最近支配节点,对所述第一连通树进行裁剪处理。
4.如权利要求3所述的方法,其特征在于,所述确定第一连通树的所有底层节点中存在最近支配节点的第一候选底层节点,包括:
对所述第一连通树中的每个底层节点进行遍历;
每遍历到一个底层节点时,若从所述第一连通树的根节点至当前遍历到的底层节点存在必经路径,则将所述必经路径上的中间节点均确定为当前遍历到的底层节点的支配节点,所述中间节点是指所述必经路径上除所述根节点与底层节点之外的节点;
将当前遍历到的底层节点的所有支配节点中与当前遍历到的底层节点距离最近的支配节点确定为当前遍历到的底层节点的最近支配节点,并将当前遍历到的底层节点确定为第一候选底层节点。
5.如权利要求3或4所述的方法,其特征在于,所述基于所确定的每个第一候选底层节点的最近支配节点,对所述第一连通树进行裁剪处理,包括:
对所确定的每个第一候选底层节点进行遍历;
每遍历到一个第一候选底层节点时,若当前遍历到的第一候选底层节点到所述第一连通树中可达的根节点具有相同的最近支配节点,则将当前遍历到的第一候选底层的最近支配节点确定为当前遍历到的第一候选底层节点的最近公共支配节点,将当前遍历到的第一候选底层确定为第二候选底层节点;
在遍历结束后,基于所确定的每个第二候选底层节点的最近公共支配节点,对所述第一连通树进行裁剪处理。
6.如权利要求5所述的方法,其特征在于,所述在遍历结束后,基于所确定的每个第二候选底层节点的最近公共支配节点,对所述第一连通树进行裁剪处理,包括:
在遍历结束后,对所确定的每个第二候选底层节点进行遍历;
每遍历到一个第二候选底层节点时,在当前遍历到的第二候选底层节点的最近公共支配节点的下层不存在其他节点的情况下,将当前遍历到的第二候选底层节点裁剪掉;
在当前遍历到的第二候选底层节点的最近公共支配节点的下层存在其他节点的情况下,若当前遍历到的第二候选底层节点的最近公共支配节点是所述其他节点的最近公共支配节点,则将当前遍历到的第二候选底层节点和所述其他节点裁剪掉。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述分别对所述每个连通树在深度上进行裁剪处理之后,还包括:
分别基于所述每个连通树对应的连通树主体,确定所述每个连通树主体对应的物料需求计划。
8.如权利要求7所述的方法,其特征在于,所述计算机设备设于计划运算系统中,所述计划运算系统包括分布式服务器集群;
所述分别基于所述每个连通树对应的连通树主体,确定所述每个连通树主体对应的物料需求计划,包括:
分别将所述每个连通树对应的连通树主体发送至所述分布式服务器集群的不同服务器中,以通过不同服务器分别基于各自所接收的连通树主体,确定对应的物料需求计划。
9.一种数据处理装置,其特征在于,配置于计算机设备,所述装置包括:
构建模块,用于基于待处理的物料清单BOM构建对应的产品结构树,所述待处理的BOM包括多个产品的BOM;
分割模块,用于将所述产品结构树分割成至少一个连通树,所述至少一个连通树中每个连通树用于描述同一类产品的BOM关联关系;
裁剪模块,用于分别对所述每个连通树在深度上进行裁剪处理,得到所述每个连通树对应的连通树主体,所述每个连通树对应的连通树主体分别用于物料计划运算。
10.一种计算机设备,其特征在于,所述计算机设备的结构中包括处理器和存储器;
所述存储器用于存储支持所述计算机设备执行如权利要求1-8中任一项所提供的数据处理方法的程序,以及存储用于实现如权利要求1-8中任一项所提供的数据处理方法所涉及的数据;
所述处理器被配置为用于执行所述存储器中存储的程序。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-8任意一项所述的方法。
CN202211131459.6A 2022-09-16 2022-09-16 数据处理方法、装置、计算机设备及可读存储介质 Pending CN116739483A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211131459.6A CN116739483A (zh) 2022-09-16 2022-09-16 数据处理方法、装置、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211131459.6A CN116739483A (zh) 2022-09-16 2022-09-16 数据处理方法、装置、计算机设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN116739483A true CN116739483A (zh) 2023-09-12

Family

ID=87906625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211131459.6A Pending CN116739483A (zh) 2022-09-16 2022-09-16 数据处理方法、装置、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN116739483A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1444161A (zh) * 2002-03-11 2003-09-24 联想(北京)有限公司 物料清单(bom)数据的拆分方法
US20130054427A1 (en) * 2011-08-22 2013-02-28 International Business Machines Corporation Explosions of bill-of-materials lists
CN105205636A (zh) * 2015-09-24 2015-12-30 金蝶软件(中国)有限公司 一种计算物料需求计划mrp的方法及装置
CN107067200A (zh) * 2016-12-15 2017-08-18 武汉开目信息技术股份有限公司 一种物料清单数据的操作方法及装置
CN110727687A (zh) * 2019-10-23 2020-01-24 京东方科技集团股份有限公司 一种物料清单转换方法及其系统
CN112231481A (zh) * 2020-10-26 2021-01-15 腾讯科技(深圳)有限公司 网址的分类方法、装置、计算机设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1444161A (zh) * 2002-03-11 2003-09-24 联想(北京)有限公司 物料清单(bom)数据的拆分方法
US20130054427A1 (en) * 2011-08-22 2013-02-28 International Business Machines Corporation Explosions of bill-of-materials lists
CN105205636A (zh) * 2015-09-24 2015-12-30 金蝶软件(中国)有限公司 一种计算物料需求计划mrp的方法及装置
CN107067200A (zh) * 2016-12-15 2017-08-18 武汉开目信息技术股份有限公司 一种物料清单数据的操作方法及装置
CN110727687A (zh) * 2019-10-23 2020-01-24 京东方科技集团股份有限公司 一种物料清单转换方法及其系统
CN112231481A (zh) * 2020-10-26 2021-01-15 腾讯科技(深圳)有限公司 网址的分类方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曾安平;阳万安;: "基于云计算的中小包装企业MRP算法并行化处理", 包装工程, no. 15, pages 88 - 92 *

Similar Documents

Publication Publication Date Title
US20230084389A1 (en) System and method for providing bottom-up aggregation in a multidimensional database environment
US9778967B2 (en) Sophisticated run-time system for graph processing
RU2623809C2 (ru) Автоматический анализ элементов данных
US11966419B2 (en) Systems and methods for combining data analyses
WO2021036906A1 (zh) 一种图片处理方法及装置
US10922361B2 (en) Identifying and structuring related data
CN102054217B (zh) 基于元模型的工具中的实体变形
EP2973047A1 (en) Methods for managing applications using semantic modeling and tagging and devices thereof
CN102129461B (zh) 一种快速检索企业数据的方法
CN107967135A (zh) 计算引擎实现方法、电子装置及存储介质
CN102930580A (zh) 数据帧动画
JP2018520452A (ja) コントロールを使用して汎用プログラムを構成する技法
CN106951254B (zh) 支付系统中相似业务功能模块复用的方法及装置
US20200342029A1 (en) Systems and methods for querying databases using interactive search paths
CN112464625A (zh) 单据生成方法、装置、计算机设备和存储介质
CN111768096A (zh) 基于算法模型的评级方法、装置、电子设备及存储介质
CN114238808A (zh) 页面展示方法、装置、计算机设备和存储介质
CN102426680A (zh) 使用求散列的逻辑帐户表
WO2023179504A1 (zh) 设备管理模型生成与设备管理方法、设备及存储介质
CN116739483A (zh) 数据处理方法、装置、计算机设备及可读存储介质
US11640414B2 (en) Generating workflow, report, interface, conversion, enhancement, and forms (WRICEF) objects for enterprise software
CN112487314A (zh) 基于知识图谱的住建搜索方法、装置及存储介质
CN112988278A (zh) 资源文件的meta文件修改方法、装置、电子设备及存储介质
JP2002215692A (ja) 情報処理装置及び方法
US20100125578A1 (en) Scalable selection management

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