确定有效负荷估计的制作方法

文档序号:11142255阅读:243来源:国知局
确定有效负荷估计的制造方法与工艺

诸如制造、运输、医疗保健和其他领域的各种领域应用运营和战略规划来为企业做出短期和长期预测。企业可以使用这种规划来解决资源、需求、运营程序或一些期望组合中的预期变化。企业还可以使用这种规划来解决生产调度和资源分配。

附图说明

图1A是图示了用于运营和战略规划的示例系统的方框图。

图1B是图示了用于确定图1A的示例系统中的有效负荷估计的示例系统的方框图。

图2是图示了作为图1A和1B的示例系统的一部分的确定有效负荷估计的示例过程的方框图。

图3是图示了作为图2的示例过程的一部分的学习有效负荷控制的示例过程的流程图。

图4是图示了根据在图3的示例中确定的有效负荷控制计算有效负荷估计的示例过程的流程图。

图5是图示了与图1A和1B的示例系统一起使用以执行图2-4的示例过程的示例计算设备的方框图。

具体实施方式

在下面的具体实施方式中,对形成其一部分的附图做出参考,并且在附图中通过图示的方式示出了可以实践本公开内容的具体示例。要理解的是,在不脱离本公开内容的范围的情况下,可以利用其他示例并且可以做出结构或逻辑改变。因此,下面的具体实施方式不以限制意义来进行,并且本公开内容的范围由所附权利要求来限定。要理解的是,除非另行具体说明,否则本文所描述的各种示例的特征可以彼此部分或全部组合。

运营和战略规划可以涉及确定工作量,该工作量要被执行来完成用以产生商品或服务的过程中的任务。在一个示例中,工作量可以包括确定有效负荷估计。确定针对过程中的任务的有效负荷估计包括学习有效负荷控制,将所学习的有效负荷控制存储在数据库中,以及评估有效负荷估计。学习包括将机器学习应用于过程信息以确定与过程中的任务相对应的所学习的有效负荷控制。评估有效负荷估计包括在数据库中搜索包括所学习的有效负荷控制的与任务相关的多个有效负荷控制,确定是否满足所学习的有效负荷控制的条件,以及如果满足所学习的有效负荷控制的条件,则应用所述有效负荷控制以使用过程信息来确定有效负荷估计。以这种方式确定的有效负荷估计是动态的,并且适应于用以产生商品和服务的过程中的变化以及产生可以在其他情况下应用的可重复使用的有效负荷控制。

图1A是图示了用于运营和战略规划的示例系统100。系统100的一个示例可以与过程信息102一起使用,过程信息102诸如是从诸如二维打印或三维打印之类的制造过程或者在所选择的领域中的其他过程开发的信息。该过程被用于创建产品(取决于领域通常可以包括产品和服务),其是客户订单的一部分。在一个示例中,该过程包括要执行的一组任务。例如,根据生产规划中描述的一组相关任务来创建产品。在一个示例中,相关任务可以在有向无环图(directed acyclic graph)中被图示,该有向无环图通常缩写为DAG。将任务表示为节点,并且将相关性表示为DAG的边(edge)。生产规划中的任务可以被分配给资源,诸如特定的机器。在包括返工(re-work)程序的过程的情况下,可以在DAG上附加重入(re-entry)边,从而导致有向有环图。根据不同的模式和生产情况,在一个过程处失败的作业可以被路由到不同的上游过程以用于返工。可以设想其他示例。

将过程信息102提供给分析器104,该分析器104是诸如在计算设备或计算系统上运行的软件工具之类的工具。分析器104应用过程信息102以及其他信息或假设,以做出关于该过程的确定。在一个示例中,这些确定可以包括关于过程102的未来运行的估计106。这些估计106可以被应用于创建运营和战略规划108。

经常在运营和战略规划中使用的估计106的一个示例包括对要应用于过程的特定任务的工作量的预测。用于任务的这个工作量的量度被称为有效负荷估计。在这里用于说明的商业和工业打印的示例中,用于给定的打印服务提供商来完成成批的相册的修剪任务的工作量(如在有效负荷估计中所描述的)可以随着副本数量增加到最小有效负荷估计以上而增加。如果某些参数是已知的,则可以确定用以完成项目的工作量,并且可以相应地分配资源。

有效负荷估计通常被离线确定,并且可适用于在具体时间处用于给定机器的单个任务。在商业和工业打印的示例中,为客户制造相册的打印服务提供商可以将有效负载估计分配给诸如光栅图像处理之类的任务。如果分配的有效负荷估计(例如在该图示中为“40”)被分配到规划108中,则该分配的有效负荷估计是静态的且不一致的。有效负荷估计是静态的,这是因为它并不随着随时间的变化(诸如程序、运营策略以及工人的技能或效率中的变化)而变化或演化。有效负荷估计是不一致的,这是因为光栅图像处理在不同分辨率下或对于不同尺寸的图像是更加困难或耗时的。这种有效负荷估计通常在规划中不产生有意义的结果。

确定有意义的有效负荷估计是有挑战性的。例如,有效负荷估计可以取决于用于执行任务的产品、任务和资源的特定组合。在商业和工业打印的示例中,用于相册的修剪或修剪任务的有效负荷估计可能不同于用于海报的修剪任务。而且,针对使用第一修剪机器的用于相册的修剪任务的有效负荷估计可以不同于针对用于相册的第二修剪机器的有效负荷估计。有效负荷估计取决于生产历史,诸如最近完成的过程的内容,并且建立时间(set up time)可以不同。例如,修剪不同厚度的书籍影响如何确定有效负荷估计。而且,有效负荷估计可以随着过程变得更有效或策略中发生变化而很快变得过时。更进一步,每个产品可以是不同的,诸如在大规模定制中,并且静态方案在这种情况下并不很好地扩缩。

图1B图示了用于使用分析器104确定有效负荷估计112的系统110。仅是出于说明的目的而在打印服务或打印服务提供商的情境中提供了系统110和本公开内容的其他部分。所说明的概念和技术可以被应用于其他领域中的战略和运营规划。

如以上所说明的,将过程信息102提供给分析器104。在图1B中,过程信息102可以包括诸如用于给定产品(诸如相册)的过程流114之类的项目。该示例中的过程流114是以DAG或其他有向图的形式。其他过程信息102可以包括资源能力116,诸如设备能力。在一个示例中,资源能力116可以包括针对被用来在过程流114中执行任务的机器的不同特征或规格。在一个示例中,资源能力可以包括针对修剪器的规格,诸如容量、吞吐量、最大长度和宽度。过程信息102的其他项目可以包括材料规格118和订单内容120。材料规格可以包括诸如重量、厚度、所使用的基底的涂层和墨水的类型之类的信息。订单内容120可以包括关于产品类型的规格,诸如封面的类型、页数、页面的尺寸和打印分辨率。过程信息102还可以包括来自生产日志的信息,诸如用于任务进入机器中的队列的时间长度、任务的开始时间、任务的结束时间等等。过程信息102可以被存储在一个或多个数据库中并且从生产日志和管理信息服务(MIS)/企业资源规划(ERP)工具来访问。

分析器104将有效负荷控制122的集合应用于过程信息102以确定有效负荷估计112。在一个示例中,将有效负荷控制与任务相关联以解析针对诸如包括在过程流114中的任务之类的任务的有效负荷估计。在一个示例中,有效负荷控制是以“A=>B”的形式的表达式。A是一种守护(guard)并且包括条件,B是一种计算,如果满足条件则该计算解析针对任务的有效负荷估计。在一个示例中,A是布尔表达式或布尔触发器,其估值为真或假,并且用作针对有效负荷的控制的计算B的守护。该计算估值为数字,诸如十进制数。该示例语法的语义是如果A为真,则执行计算B。

该形式体系足够表达来将整个决策树编码为有效负荷控制的集合,以使得有效负荷控制122的集合的成员表示决策树中的每个路径。在一个示例中,有效负荷控制的集合可以封装整个决策树。然而,在另一个示例中,有效负荷控制的集合可以包括在下述情况下的一个或多个规则:由于不完整信息,在这些情况中没有确定性地决定选择或者在这些情况中相对于彼此将对选择进行加权,例如,如在模糊逻辑中那样。可以设想其他配置。

守护和计算两者都可以包含有效负荷控制内部的次序属性和机器能力属性。在一个示例中,过程信息102可以提供包括页数、副本数、纸张尺寸、图像覆盖范围和机器容量的属性。有效负荷控制可以包含从数据库的丰富数学库中选择的函数以用于一致性。例如,关系数据库管理系统(诸如开源实现方式MySQL)中的数学运算符可以包括用以返回绝对值的ABS()、用以返回反余弦值的ACOS()等等。

用以确定针对成批的相册中的修剪任务的有效负荷估计的有效负荷控制的第一示例可以是:

copy>=200=>ceil(page/max_capacity)*3

copy<200=>3

在该示例中,守护基于要被剪切的阈值副本数。如果副本数等于或大于该阈值,则使用该表达式来确定上限,或其后的最小整数,或项目的某些参数乘以常数的运算。在该示例中,ceil()至少是一,并且常数是三,因此有效负荷估计至少是三。然而,如果副本数低于阈值,则有效负荷估计是诸如三的集合数。

用以确定针对海报中的修剪任务的有效负荷估计的第二示例有效负荷控制可以是:

True=>max(ceil(copy/(batch_size*max_capacity)),1)

在该示例中,用于海报中的修剪任务的有效负荷估计将基于使用项目的各种参数的公式,但将不会小于一。根据所使用的参数,根据第二示例的用于海报的修剪任务的有效负荷估计可以大于或小于根据第一示例的用于相册的修剪任务。

相应地,可以为每个产品以及为该产品中使用的每个过程指定有效负荷控制。然而,以这种方式使用有效负荷控制的一个难点包括随着特征和策略改变而维护和更新控制,该改变有时是没有通知的,诸如在大规模定制中。对于生产例如十个产品并且包括针对每个产品的至少二十个任务的打印服务提供商而言,打印服务提供商将会尝试维护和更新至少二百个有效负荷控制。

图2图示了维护和更新有效负荷控制102以确定有效负荷估计的示例过程200。开发或改进默认有效负荷控制以更好地反映在实际生产期间可能发生的变化,即,在202处,过程从过程信息102学习有效负荷控制。在204处,以允许有效查询的方式在数据库中存储所学习的控制。任务可以具有作为决策树中的不同路径的多个关联的表达式,以及在206处,过程200提供用以发现和计算针对特定任务的相关控制的系统方式。

图3图示了可以用于从过程信息102(诸如从MIS/ERP系统)学习或改善有效负荷控制202的示例过程300。因此,将有效负荷估计修整为具有带有生产审计数据的保真度。在新产品或过程的情况下,即,没有足够数据来改善有效负荷控制的情况下,分配并且使用默认有效负荷控制。在一个示例中,默认有效负荷控制可以基于来自相似或类似过程类别的一般有效负荷控制。在打印服务提供商的示例中,可以确定过程类别的有限集合以描述工厂中的整个生产过程集合。在一个示例中,打印工厂的功能可以被概括成大约五个或六个类别,诸如图像处理、打印、剪切、组装、包装或其他类别。一个这样的类别可以包括修剪过程。相册中的修剪过程可以具有与用于海报的修剪过程类似的属性,诸如页数、打印容量等等。各个产品可以被用于使来自过程类别的一般有效负荷控制专门化以创建默认表达式。随着更多数据(诸如过程信息102)变得可用,改善默认有效负荷控制以准确地产生实际的有效负荷估计。使用来自过程类别的这种元信息可以从在传统上能够使机器学习困难的有效负荷表达式中消除不相关或边缘属性。

在示例过程300中,将机器学习或人工智能应用于过程信息102。示例过程300应用演化算法来创建或学习有效负荷控制模型。在示例过程300中,演化算法是基因表达式编程。用于从过程信息102学习有效负荷控制202的其他过程可以从其他演化算法、诸如多层感知器的神经网络类型程序、用以生成决策树的C4.5算法及其后继算法、以及其他人工智能或聚类算法、回归算法和分类算法来确定。例如,可以将诸如从基因表达式编程或C4.5算法(或后继算法)学习的控制之类的符号控制与其他学习的控制相比较,以查看哪个控制具有更有效的任务。

一般来说,基因表达式编程是基因型/表型系统,其将在染色体中编码的计算机程序进行演化。染色体可以具有固定或可变长度,以及在一个示例中,染色体可以是线性的,但是可以设想其他示例。染色体的组织允许(在没有无效表型将附随的意义上的)无约束且有效的基因算子功能,诸如突变、转位和重组,因为每个基因的表达式导致有效的程序。基因表达式编程的基因型/表型系统包括转译机制。基因型作为染色体来传递,以及表型作为表达树来传递。基因表达式编程与其他基因编程(诸如基因算法和基因编程)共享相同种类的树表示。基因表达式编程使得下述能力成为可能:回溯通过基因编程所承担的步骤以及探究由跨越表型阈值而产生的新问题。

过程300包括在302处从MIS/ERP系统和来自生产日志的其他审计数据获得订单数据和终结符(terminal)。上述第一示例有效负荷估计中的终结符的示例包括“batch_size”和“copy”,以及控制数据库或数学库提供诸如“ceil”和“max”之类的函数以及诸如π(pi)之类的其他终结符(如果可适用的话)。在304处收集用于制造产品的过程。在306处作为染色体的各个基因来学习控制,并且为初始种群创建染色体。结合特征306,可以选择数据库引擎来评估基因并且提供非终结符(non-terminal)和元数(arity),或者有效负荷控制中的自变量或运算对象的数,以用于基因表达式编程。基因表达式编程可以编码染色体中的多个基因并且可以减少用于实现准确表达式的迭代。可以单独地或在算子的帮助下与计算一起学习守护。在308处,每个染色体被转译成控制并且评估其适合度。在一个示例中,通过将从过程信息102确定的用于任务的处理时间与有效负荷估计的结果和来自MIS/ERP系统的用于该任务的单位处理时间相比较来评估适合度。然后在310处存储更新的有效负荷表达式,例如存储在表达式存储装置中。

在312处,当附加过程信息102变得可用时(诸如在任务的附加运行的情况下),可以进一步改善有效负荷控制。利用附加过程信息102,过程300在314处更新或选择具有适当适合度的染色体。在316处,应用在演化算法中使用的突变和其他基因运算,以及在308处,转译染色体并且评估其适合度。

将有效负荷控制112以将被快速处理的有效方式作为良好形成的表达式以字符串格式存储在数据库204中。在一个示例中,有效负荷控制可以被索引(诸如利用散列函数),以用于快速检索。这对生产规划和战略规划应用两者都有帮助,并且每个应用现在可以将其有效负荷计算与其余应用解耦。在一个示例中,分别存储守护和计算,这有助于更有效的查询。在一个示例中,属性被附加有“@”以支持全局变量,以代替在设计为与关系数据库管理系统一起工作的专用编程语言(诸如结构化语言查询(或SQL))中定义的数学函数和内容。例如,数据库中存储为字符串的守护可以呈现为:

@paperQuality=’20gsm’&&@pages>200

数据库中存储为字符串的计算可以呈现为:

ceil(@pages/@max_capacity)*3

可以使能力属性特定于资源组。资源组是具有共享公共属性的成员的资源的集合。例如,资源组可以包括来自各种销售商和来自相同销售商内的多个模型的修剪机器。资源组可以例如被命名为“修剪器”,并且可以由诸如宽度、高度、刀后面的修剪长度等等的共同属性来表征。可以使有效负荷表达式中的属性特定于资源组。因此,例如,如果有效负荷控制包括属性“高度”,则即使不知道用以执行任务的特定资源,也可以确定该高度的实际值以及对应的资源组。

诸如在206处,从数据库检索有效负荷控制以计算有效负荷估计。在一个示例中,解析器(诸如SQL解析器)将帮助计算有效负荷估计。SQL引擎访问数学库函数以获得有效的实现方式。

图4图示了示例评估过程400。示例评估过程400可以被应用于所有任务,并且每个任务可以具有多个对应的有效负荷控制作为决策树中的不同路径。在该示例中,在402处,利用相关属性来初始化将被用在控制中的变量。在一个示例中,这可以包括使用SQL的“SET”指令将外部变量带入查询中。例如,此语句设定稍后将被使用的“copy”变量:

SET@copy=15;

在404处,确定针对用于给定任务的给定过程/产品组合的相关控制。在一个示例中,可以经由SQL查询来搜索相关过程,诸如:

SELECT*FROM exps WHERE process=[process]AND product=[product]其中“exps”是给予数据库中的有效负荷表达式集合的名称,并且其中在查询的时候提供“process”和“product”。

如果在405处查询没有发现任何有效负荷控制,则在406处分配和使用默认有效负荷控制,如上所述那样。然而,如果在405处查询确实发现至少一个有效负荷控制的集合,则在408处(诸如通过运行查询)从该至少一个有效负荷控制的集合中选择有效负荷控制,诸如:

PREPARE stmtl FROM[str]

其中,“stmtl”是所选的有效负荷控制,以及“str”是SQL语句并且也许可能包含使用SQL“set”指令定义的“@”变量。

该查询的结果是针对任务的有效负荷估计。在此示例中,不为各个任务编写SQL查询。利用此示例特征,将可变性从常见SQL语句中去除,并且在其可适用时将其添置(put on)。在410处做出关于是否满足所学习的有效负荷控制的条件的确定。例如,在410处评估所选择的有效负荷控制的守护,并且如果在412处满足条件,诸如如果守护的布尔值为真,则应用有效负荷控制,诸如执行计算,并且在414处确定有效负荷估计。准备好的语句“result”的结果可以被确定为:

EXECUTE SELECT result

在该示例中,如果在412处不满足守护条件,则在416处从408处的至少一个有效负荷控制的集合中选择另一个有效负荷控制,并且如果有效负荷控制存在,则进行评估。如果在416处至少一个有效负荷控制的集合为空并且所有有效负荷表达式具有未满足的守护条件,则在406处分配并且使用默认有效负荷控制。

使用SQL来评估有效负荷控制的横切方面是,我们获得终结符和非终结符而不必知道所参考的数学库。这通过公共平台或词汇为企业的多样站点和应用提供了一致性。此外,SQL引擎提供统一的机制(诸如单次查询)以计算具有和不具有能力属性的多个控制。取决于控制,诸如在查询时间动态地确定相关属性。例如,如果针对剪切器的有效负荷控制是“max(sizel,sizew)”,其中sizel、sizew是取自客户订单的属性,则不访问能力属性。然而,如果控制是“max(sizel,sizew)/cap_cutter”,则SQL查询将会接收能力属性。

图5图示了示例计算机系统,其可以在操作环境中采用并且用于托管或运行在存储用于控制诸如计算设备之类的计算机系统以执行过程的计算机可执行指令的一个或多个计算机可读储存介质上包括的计算机应用程序。在一个示例中,图5的计算机系统可以用于实施用以确定有效负荷估计的过程,诸如过程200及其相关联的过程300和400。

图5的示例计算机系统包括诸如计算设备500的计算设备。计算设备500通常包括一个或多个处理器502和存储器504。处理器502可以包括处于一个芯片或两个或更多个处理器芯片上的两个或更多个处理核。在一些示例中,计算设备500还可以具有一个或多个附加处理或专用处理器(未示出),诸如用于在图形处理器单元上进行通用计算的图形处理器,以执行从处理器502卸载的处理功能。存储器504可以被布置在分层结构中并且可以包括一级或多级高速缓存。存储器504可以是易失性的(诸如随机存取存储器(RAM))、非易失性的(诸如只读存储器(ROM),闪存等)或两者的某种组合。计算设备500可以采取若干形式中的一种或多种。这样的形式包括平板设备、个人计算机、工作站、服务器、手持设备、消费电子设备(诸如视频游戏控制台或数字视频录像机)或其他设备,并且可以是独立设备或被配置为计算机网络、计算机集群、云服务基础设施或其他设施的一部分。

计算设备500还可以包括附加储存设备508。储存设备508可以是可移除的和/或不可移除的,并且可以包括磁盘或光盘或固态存储器或闪速储存设备。计算机储存介质包括用于储存诸如计算机可读指令、数据结构、程序模块或其他数据的信息的以任何合适的方法或技术实施的易失性和非易失性介质、可移除和不可移除介质。传播信号本身不具有资格作为储存介质。

计算设备500通常包括一个或多个输入连接和/或输出连接,诸如USB连接、显示端口、专有连接以及用以连接到各种设备以接收和/或提供输入和输出的其他连接。输入设备510可以包括诸如键盘、定点设备(例如,鼠标)、笔、语音输入设备、触摸输入设备或其他设备之类的设备。输出设备512可以包括诸如显示器、扬声器、打印机等等的设备。计算设备500通常包括允许计算设备500与其他计算机/应用516通信的一个或多个通信连接514。示例通信连接可以包括但不限于以太网接口、无线接口、总线接口、储存区域网络接口、专有接口。通信连接可以被用于将计算设备500耦合到计算机网络518,该计算机网络518是由通信信道互连的计算设备和可能的其他设备的集合,该通信信道促进通信并且允许在互连的设备当中共享资源和信息。计算机网络的示例包括局域网、广域网、因特网或其他网络。

计算设备500可以被配置为运行组成系统平台的操作系统软件程序和一个或多个计算机应用。被配置为在计算设备500上执行的计算机应用通常被提供为以编程语言编写的指令集。被配置为在计算设备500上执行的计算机应用包括作为执行程序的至少一个计算进程(或计算任务)。每个计算进程都提供计算资源来执行程序。

学习针对产品特定过程的有效负荷控制是独立的活动,并且因此可以并行执行。可以使用例如分布式计算系统来快速地进行学习,该分布式计算系统包括计算机集群或大规模数据处理系统(诸如Apache许可下可用的Hadoop),计算设备500可以是其一部分。

虽然本文已经图示和描述了具体示例,但是在不脱离本公开内容的范围的情况下,各种替代和/或等同实现方式可以替代所示和所描述的具体示例。本申请意图覆盖本文所讨论的具体示例的任何改编或变化。因此,所意图的是,本公内容仅由权利要求及其等同方式来限制。

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