一种基于知识图谱的生产调度管理方法及设备与流程

文档序号:33480414发布日期:2023-03-15 12:00阅读:149来源:国知局
一种基于知识图谱的生产调度管理方法及设备与流程

1.本发明涉及机器学习技术领域,尤其涉及一种基于知识图谱的生产调度管理方法、装置、设备、存储介质。


背景技术:

2.s.w.johnson在1954年首先提出了生产调度理论,在此理论上构建了生产加工的数学模型,基于此数学模型最终提出了生产调度的优化算法,自此为生产调度奠定了基础。在此之后的发展中,学者们结合更加复杂的生产场景构建出更加复杂的数学模型,从而解决复杂生产场景下的生产调度问题。而现今的对于生产调度问题的解决方法主要有三种不同的策略,分别为:基于规则的生产调度、基于优化算法的生产调度以及基于知识的生产调度。
3.基于规则的生产调度是指,按照一定的规则将生产活动进行排序,常见的规则有fcfs(first

come

first-served)、spt(shortest processing time)以及edd(earliest due date)等。基于规则的调度方法的优势在于易于实现、计算的复杂程度也相对较低。但他的缺点是对于最优解的求解难度比较大,甚至在一些情况下难以基于规则得到生产调度的最优解。
4.基于优化算法的生成调度的核心思路是,将车间内的约束用等式或不等式的方式表达,在满足这些约束的基础上对一个或多个目标函数进行求解。这样一来,就可以将生产调度问题转化为一个数学规划模型进行求解。常见的规划数学模型有混合整数线性规划和混合整数非线性规划模型。这种基于优化算法的调度方法的优势在于,可以在计算机上进行求解,并在大多是的情况下可以得到最优解。但难点在于如何将现实生产中的约束表示为等式或不等式的形式,在这个构成中会带来极大的人力成本的浪费。除了上述介绍的线性规划及整数规划优化算法外,还有借鉴生物界中的自然选择与遗传机制得来的遗传算法;基于强化学习的生产调度方法。
5.当前大多在使用这种方式进行生产调度时,通常结合的是基于规则的调度方法。这种方法的优点在于,可以更加便捷的得到基于规则的调度方案,但同样也继承了基于规则的调度方法的一些缺点。例如,获得最优解的难度比较大,如何选择调度规则等。


技术实现要素:

6.本发明提供一种基于知识图谱的生产调度管理方法、装置、设备、存储介质,旨在提高生产调度效率,简化生产调度流程的目的,将知识图谱中技术应用于工业生产资源的智能化管理与分析,从而降低生产成本、提高生产效率以及使其变得对环境更加友好。
7.为此,本发明的第一个目的在于提出一种基于知识图谱的生产调度管理方法,包括:
8.基于现有生产资源数据,构建生产资源知识图谱;
9.基于构建的生产资源知识图谱,自动生成作业车间调度的约束条件;
10.基于作业车间调度的约束结果,通过求解器自动生成生产调度方案。
11.其中,在基于现有生产资源数据,构建生产资源知识图谱的步骤中,包括:
12.通过分析生产车间中生产资源,对生产车间生产资源及其关系进行概念建模,构建物料-生产设备-工艺的生产过程模型;
13.从结构化、半结构化或者非结构化的数据中抽取出知识并按照生产过程模型模型进行实例化,生产资源数据的实体,及实体间的相互关系;
14.基于生产资源数据的实体及相互关系,构建不同产品的生产过程模型,将不同产品的生产过程模型与产品工艺路径配合,得到完整的生产资源知识图谱;
15.将一个生产车间内所有产品的生产过程模型向连接,从而构建出了这个生产车间的知识图谱。
16.其中,在模拟生产过程模型的步骤之前,还包括生成生产资源作业车间的调度约束模型的步骤;其中,调度约束模型将约束相关的属性值在构建作业车间知识图谱的过程中直接存储在图谱内对应的实体中,并通过图谱内的结构和关系来推理得出所需的关系值。
17.其中,在基于作业车间调度的约束结果,通过求解器自动生成生产调度方案的步骤中,包括:
18.在得到基于知识图谱自动生成的调度约束条件,通过实例化,得到生产车间调度模型;
19.将实例化后的生产车间调度模型输入至线性整数规划求解器中,通过求解器进行求解,得到最终生产调度方案。
20.其中,求解器调度约束的数学模型外,还需要优化生产车间调度模型的优化目标函数;其中,优化目标函数用于将所有工艺的完工时间最小化,公式表示为:
21.f=min(∑所有工艺的完成时间)。
[0022][0023]
其中,生产车间调度方案以表格和、或甘特图的形式展示。
[0024]
其中,自动生成生产调度方案的步骤之后,还包括对所生产调度方案进行验证的步骤,包括:
[0025]
通过查询语句,查询出所有通过执行边与设备相连的工艺节点;
[0026]
通过查询语句,查询出所有通过执行边与设备相连的执行边中工艺完成时间;
[0027]
查询出上述工艺节点中储存的加工时间;
[0028]
基于查询结果,确定工艺完成时间和加工时间,通过计算得到生产调度方案。
[0029]
本发明的第二个目的在于提出一种基于知识图谱的生产调度管理装置,包括:
[0030]
图谱构建模块,用于基于现有生产资源数据,构建生产资源知识图谱;
[0031]
约束条件生成模块,用于基于构建的生产资源知识图谱,自动生成作业车间调度的约束条件;
[0032]
生产调度管理模块,用于基于作业车间调度的约束结果,通过求解器自动生成生产调度方案。
[0033]
本发明的第三个目的在于提出一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令
被至少一个处理器执行,以使至少一个处理器能够执行前述技术方案的方法中的各步骤。
[0034]
本发明的第四个目的在于提出存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行根据前述技术方案的方法中的各步骤。
[0035]
区别于现有技术,本发明提供的基于知识图谱的生产调度管理方法,通过基于现有生产资源数据,构建生产资源知识图谱;基于构建的生产资源知识图谱,自动生成作业车间调度的约束条件;基于作业车间调度的约束结果,通过求解器自动生成生产调度方案。。通过本发明,能够提高生产调度效率,简化生产调度流程的目的,将知识图谱中技术应用于工业生产资源的智能化管理与分析,从而降低生产成本、提高生产效率以及使其变得对环境更加友好。
附图说明
[0036]
本发明的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0037]
图1是本发明提供的一种基于知识图谱的生产调度管理方法的流程示意图。
[0038]
图2是本发明提供的一种基于知识图谱的生产调度管理方法中dpm模型的结构示意图。
[0039]
图3是本发明提供的一种基于知识图谱的生产调度管理方法中的产品加工示意图。
[0040]
图4是本发明提供的一种基于知识图谱的生产调度管理方法中单一产品的生产过程模型逻辑示意图。
[0041]
图5是本发明提供的一种基于知识图谱的生产调度管理方法中组合的生产过程模型的逻辑示意图。
[0042]
图6是本发明提供的一种基于知识图谱的生产调度管理方法中原材料加工过程示意图。
[0043]
图7是本发明提供的一种基于知识图谱的生产调度管理方法中装配过程模型的逻辑示意图。
[0044]
图8是本发明提供的一种基于知识图谱的生产调度管理方法中的生产资源知识图谱示意图。
[0045]
图9是本发明提供的一种基于知识图谱的生产调度管理方法中实施例1构建的知识图谱的示意图。
[0046]
图10是本发明提供的一种基于知识图谱的生产调度管理装置的结构示意图。
[0047]
图11是本发明提供的一种非临时性计算机可读存储介质的结构示意图。
具体实施方式
[0048]
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0049]
如图1所示,为本发明实施例所提供的一种基于知识图谱的生产调度管理方法,包括:
[0050]
s110:基于现有生产资源数据,构建生产资源知识图谱。
[0051]
通过分析生产车间中生产资源,对生产车间生产资源及其关系进行概念建模,构建物料-生产设备-工艺的生产过程模型。
[0052]
如图2所示,首先分析生产车间中生产资源的特点,提出对生产车间生产资源及其关系进行概念建模的物料-生产设备-工艺模型dpm(device-process-material),以及基于模型的知识获取的主要任务。
[0053]
在dpm模型中有三个不同的概念,分别为物料、设备和工艺。对这三个概念做了如下的定义。
[0054]
物料概念:指的是被加工的的原材料,和经过加工后得到的产品或半成品都被定义为物料概念。例如:钢板、成型后的半成品钢板和最终的产品等。
[0055]
设备概念:指的是可以发出一个生产加工动作的机械设备,通常有各类机床、多功能加工中心等加工设备以及agv等物流设备。
[0056]
工艺概念:指的是这一个生产加工动作的内容,在这一个动作中进行了一个怎样的加工,通常是工艺路径中的一个工序如车、铣、磨等。
[0057]
dpm模型最大的特点就是它的通用型。因为所有的生产活动都可以被分割为若干个有着先后顺序关系而又相互独立的生产动作,这样的一个生产加工动作可以被看作是一个知识片段。同理将若干个dpm模型所表示的知识片段使用工艺路径关系进行连接,也就可以构成任意一个产品(工件)的生产过程模型。如图3所示,物料、立式铣床以及平面磨床分别完成的三个工序(工序1、工序2和工序3),从而得到为产品1。因此,产品1的生产路径是由三个相互独立的生产动作组成,这三个生产加工动作分别是由生产过程中三个独立的工序转化得到的。使用dpm模型分别表示这三个生产加工动作并将其相互连接得到产品1的成产过程模型如图4。(产品在这里被看作是物料的最终形态,因此也可以把产品看作是物料的一种)。
[0058]
然后从结构化、半结构化或者非结构化的数据中抽取出知识并按照生产过程模型模型进行实例化,生产资源数据的实体,及实体间的相互关系。
[0059]
知识获取是知识图谱构建过程中的关键步骤,这一步骤的目标是从结构化、半结构化或者非结构化的数据中抽取出知识并将这些知识实例化,从而增加知识图谱中实体的数量。而对不同结构形态的数据中的知识进行抽取的方法各有不同,对于关系型数据库等结构化知识,通常采用d2r(database to rdf,d2r)工具来将结构化知识转换为rdf的形式来进行浏览和搜索,以达到获取实例相关知识的目的。
[0060]
在对生产车间内的知识要素实例化的过程中,要按照在知识建模过程中提出的dpm模型进行实例化。也就是说生产车间生产资源的实例化的过程应应该按照在dpm模型中的物料、设备及工艺这三类概念来进行。物料和设备在dpm模型中除了定义了三类概念外,还定义了这三类概念之间的相互关系。对于rdf结构的知识图谱来说,实体之间的相互关系是知识的重要组成部分。所以在对车间原始数据进行知识获取得到实例化后的实体的同时,也需要得到这些实体之间的相互关系。使用dpm表示这些实体之间的关系可以构建出若干个具体的dpm下的知识三元组结合。再将这些相互独立的dpm模型根据产品的工艺路径相连接,就形成了特定产品的生产过程模型。最后将这些生产过程模型进行组合,最终形成一个完整的生产车间知识图谱。在对不同产品的生产过程模型进行组合的关键在于它们的共
用生产资源,最为常见的共用生产资源为生产设备,如图5。
[0061]
接着,基于生产资源数据的实体及相互关系,构建不同产品的生产过程模型,将不同产品的生产过程模型与产品工艺路径配合,得到完整的生产资源知识图谱。
[0062]
图5中将产品1与产品2的生产过程模型进行了组合,这两个不同产品的生产过程模型就是依靠它们在不同的工艺中使用了相同的设备。例如产品1的工艺1是被设备1执行的,而产品2的工艺2也同样是被设备1执行的,这样就可以将两个产品的不同工艺步骤通过设备1进行连接。使用这样的方式就可以将一个生产车间内所有产品的生产过程模型向连接,从而构建出了这个生产车间的知识图谱。
[0063]
最后将一个生产车间内所有产品的生产过程模型向连接,从而构建出了这个生产车间的知识图谱。
[0064]
在所构建的生产车间知识图谱中存储的知识可以分为三类,一类是通过图谱中代表实体的节点中所储存的属性来表示的。例如,某个产品重x千克,这就是一个只需要用该产品节点中的一个数值属性就可以表示的知识。另一类的知识则是由不同实体节点之间相连接的边来表示的,例如,某一个工艺需要使用设备1来完成,这样的一个知识就要用到工艺和设备这两个实体以及连接它们的表示执行关系的边来表示这一个知识。而最后一类就是由这关系加属性所表达的,这一类的知识相对需要的资源较前两种更多,但也更加常用。例如,工艺3要在设备3上进行三小时工作,对这一条知识需要调用工艺3和设备3两个实体以及将它们相连的边,以及存储在边中的时间属性来表示。
[0065]
s120:基于构建的生产资源知识图谱,自动生成作业车间调度的约束条件。
[0066]
在作业车间的调度约束数学模型中,将其中的变量定义为两种不同的变量。一种是直接表示某种值的变量,在作业车间的约束模型中多为时间的值例如:ci,j,k表示工艺完成的时间和pi,j,k表示工艺加工需要的时间。还有一类是表示关系的变量,例如:xi1,i2,j表示在同一个工件上两个工艺之间的关系(在工件j上i1与i2的先后关系)以及yj1,j2,k表示在同一个设备上两个工件加工的先后关系(在设备k上工件j1与j2的加工先后顺序)。在这里将其分别定义为属性值和关系值,对于属性值的重点是如何将属性值存储在图谱内对应的实体中,对于关系值的重点在于通过图谱中各个实体之间的关系如何推导并得出约束中需要的关系值。
[0067]
将约束相关的属性值在构建作业车间知识图谱的过程中直接存储在图谱内对应的实体中。在生成约束的过程中使用图数据查询语句直接进行查询并得到所需要的相关属性值。这种属性值的生成方法就有两个重点,一个是使用尽可能少的查询步骤,另一个是对所需的属性值进行精准查询。典型作业车间的数学模型中属于这一类的属性值有:表示工艺完成时间的ci,j,k和表示工艺加工时间的pi,j,k。对于这两个属性值在图谱的储存方式需要分开单独进行讨论。
[0068]
首先是代表工艺完成时间的ci,j,k,这个属性值与dpm模型中工艺概念直接相关,按照惯例会将其直接存储在工艺节点中。但在作业车间中工艺的完成时间除了直接与这个工艺直接相关外,还代表了这个工艺对执行该工艺的设备的占用情况。在图谱中工艺与设备通过一个代表执行关系的边相连,通过这样的一个三元组的结构表示设备执行了这一工艺。由于工艺的完工时间属性值会直接影响工艺和设备两个节点,所以我们将这一属性值存储在将工艺和设备相连的边中。在这种存储存方式下,可以直接对这个关系进行查询就
可以得到代表工艺完成时间的属性值。
[0069]
工艺加工时间属性值的存储方式就相对简单,因为这个属性值对于设备实体的影响是一个间接关系,并且对这个属性值的查询也大多通过对工艺节点的查询,所以可以直接将这个属性值存储在工艺节点中。这样只需要直接对所需的工艺节点进行查询就可以得到该工艺的加工时间的属性值。
[0070]
在作业车间的数学模型中表达关系的数值包含同一工件上两个工艺之间的关系xi1,i2,j和表示在同一设备上两个不同工件的加工先后顺序的yj1,j2,k。表示关系这类属性的重点在于如何通过图谱内的结构和关系来推理得出所需的关系值。同样这两个表示关系值也需要分开进行讨论。
[0071]
对表示同一工件上的工艺步骤之间的关系属性,应结合构建图谱过程中所建立的工件在作业车间中完整加工过程的生产过程模型进行表示。表示方式是利用表示工艺路径关系具有有向性的边说明不同工艺步骤之间的加工顺序。例如,有一个产品需要三个工艺步骤来完成加工。在图谱中就利用一条有向工艺路径来表示工件1的三个工艺步骤之间的关系。
[0072]
这个关系值的生成,是对完整工艺路径进行查询或对两个工艺节点所构成的三元组进行查询,得到表示两个工艺之间的三元组,再通过三元组结构推导得出关系值。
[0073]
另一个关系值是表示在同一台设备上两个不同工件之间加工顺序的关系属性值。这里并没有直接表示的方法,这是因为有一个假设约束是不同工件的工艺之间没有约束。如果在它们之间建立先后关系约束,只需要在设备与工艺的边中加入一个表示先后关系的属性即可。通过对所需约束的两个工艺以及设备进行查询,并输出两个工艺节点分别与设备及节点相连的边中的关系约束属性,即可得到这个关系属性值。
[0074]
s130:根据生产过程模型所对应的物料流模型和生产调度方案,自动生成物流相关目标值。
[0075]
在得到基于知识图谱自动生成的调度约束后,可以得到实例化后生产车间调度模型。为了得到最终调度方案,要将实例化后的调度模型输入至线性整数规划求解器中,通过求解器进行求解。但对于求解器除了需要调度约束的数学模型意外,还需要优化的目标函数。使用生产车间调度模型的优化目标为将所有工艺的完工时间最小化,由此得到如下的优化目标函数。
[0076]
f=min(∑所有工艺的完成时间)
[0077]
将实例化后的数据模型和优化目标函数输入求解器,就可以得到生产车间的调度方案。调度方案可以生成表格,然后转化为甘特图的形式进行表示。
[0078]
甘特图中横坐标表示了时间,纵坐标表示了不同的设备,不同颜色的线段代表了不同不同的工序在不同设备上运行的时间。使用这种形式表示点调度方案虽然可清晰的表示各工艺之间的关系及时间关系等信息,但对数据的查询以及后续应用对数据的使用较为不便。所以本发明提出了将调度方案用知识图谱表示的方法。由于车间内的实体与实体之间的关系并未改变,所以这个调度方案图谱的整体结构与之前生产资源图谱的结构基本相同,只是存储的数据信息有所不同。对于甘特图,最重要的信息就是某一个工艺在什么设备上执行,找到工艺的开始与结束时间。使用知识图谱表示这样的信息只需要一个三元组就可以,将工艺与设备相连接并将工艺开始和结束时间存储在表示执行关系的变中。
[0079]
基于知识图谱的调度方案表示,还可以利用知识图谱的查询功能完成对调度方案进行查询等一系列的应用。
[0080]
实施例1
[0081]
本实施例对一个实际的生产车间进行知识建模,其上层概念数据规模如表1所示。
[0082][0083]
表1生产车间数据规模表
[0084]
这个车间中最终产品有一个,原材料为九种规格不同的原材料钢板,且中间产品较多有205种。在这个作业车间中的生产加工活动可以分为两种,一种是对从原材料开始的机加工,在这个生产过程中会得到大量的中间产品;另一种则是装配过程,在这个加工过程中的原材料均机加工过程产出的中间产品。对这个作业车间知识建模的过程的重点在于如何将所有数据中的概念归类为dpm模型中的三个概念中。
[0085]
设备相关的为生成产设备这一类的概念及实体,共有22类不同的生产设备,共有72台不同的设备。在这里将22类设备作为22个不同种类的概念在prot
égé
中进行schema的构建。在这里的构建思路为,根据设备所能完成的加工过程的不同进行分类,将上述设备分为了机加工设备和装配设备两类。
[0086]
由于在该车间的数据中每一个工艺过程所加工的物料和使用的设备都不尽相同的,所以将这里的每一段加工过程都看作是一个独立的概念,共有518个概念。对这些加工过程相关的概念,以加工的类型不同进行分类。在这里我们将其分为了机加工(489个概念)、预装配(18个概念)和总装(11个概念)三个步骤。
[0087]
对物料相关数据的处理中,将相同种类的物料看作为一个概念。在这里物料数据的主要来源为bom表,在这个表中提供了205个概念,其余还有9个原材料相关的概念。对这些概念以构成的不同进行分类。最后该车间知识图谱的知识模型就在prot
égé
软件中由最初的pdm模型再加各个部分的概念构建完成。
[0088]
在知识获取的这一步的工作首先就是要将这些概念实例化。例如,将一个型号设备的定义为了一个概念,那这个型号下的每一台设备就是一个实体(实例)。这样的一个过程就是将概念实例化的过程。
[0089]
在将生产车间内的数据实例化后得到的实例后,使用neo4j软件将这些实体以及他们之间的相互关系以图数据库的形式存储,从而构建出该生产车间的知识图谱。首先构建的是单独工件的生产过程模型,在这个生产车间中的生产过程主要分为了机加工过程和装配过程。将根据这两个分类分别进行构建。
[0090]
图6展示了一个零件是如何通过一个原材料钢板加工过程得到的过程。
[0091]
在图6中展示了prt0101-45这个工件的生产过程从原材料钢板经过了四个不同的工艺步骤的加工最终完成了机加工过程。图中节点1代表了原材料钢板,是dpm模型中的物料,也是整个机加工过程模型的起点。节点2代表了加工路径中每个相互独立的工艺步骤。在加工路径中的每一个不同的工艺步骤都会有一条边连接执行这个加工过程的设备。在图谱中设备实体是具有可重用行的,每一个代表工艺步骤的节点只需要调用所需的设备实例即可。
[0092]
对于装配过程模型的构建,重点在于最终的部件是由那些零件组成的。针对这个重点我们构建了如图7的装配过程模型。在该模型中表示了asm-01的装配过程,它分别经过了三级装配,在每一级别的装配都是由不同的零部件组装而成的,例如在二级装配的过程就是由一级装配的产物,加他周围的六个节点所代表的六个不同的零部件所组成的。在这个模型中描述了装配步骤中各步骤的所需零件,及装配过程的先后顺序。
[0093]
在装配过程模型中的每一个节点的都代表了一个独立的经过生产加工所得到的零部件。所以这里每一个节点都有着自己的生产过程模型。在分别构建了上述的两类模型后,将他们相互结合就产生出了如图8的生产资源知识图谱。在图8中每一级的装配过程中都有例举出了一个零部件的生产过程模型,在这些生成过程模型中不仅通过asm-01的装配过程连接,如图8所示,这三个零部件的原材料是相同的钢板,而且在不同的工艺步骤中也是有可能由同一台设备所执行的。
[0094]
通过这样的方式将所有的产品的生产过程模型都在图谱内通过共有的设备或其他资源进行连接,最终就可以得到这个生产车间的知识图谱。
[0095]
实施例2
[0096]
识辅助的调度方案生成实验分为三个部分。第一部分对几个典型的作业车间的案例进行知识图谱构建。第二部分根据构建的知识图谱对约束模型中的不等式进行生成。第三部分基于生成的调度约束模型生成调度方案,并使用知识图谱的形式表达最终调度方案,同时完成基于方案图谱的调度信息查询应用。通过三部分的实验可以验证,本文中提出的基于作业车间知识图谱的调度方案生成应用的可行性。
[0097]
在工业生产中的常见形式有三种,流水作业车间、单件作业车间、柔性作业车间。本实验将对这三类作业车间的案例进行知识图谱构建。
[0098]
针对作业车间场景,有这样的一个案例,生产车间生产3个工件,每个工件有3个工序,分别需要在对应的机器上完成加工,其生产信息如表2。
[0099][0100]
表2作业车间加工过程表
[0101]
针对这一案例构建知识图谱如图9所示。图中节点11代表原材料,被命名为物料,在dpm模型中属于物料这一概念。节点12代表了对物料所进行的加工工艺,称为某工件的某个工艺步骤,在dpm模型中属于工艺概念。节点13代表设备,它就是dpm模型中的设备概念。节点14为最终产品,被命名为工件,这类实体属于dpm模型中的物料概念。
[0102]
加工过程模型表示的知识有:需要经过三个不同的工艺步骤,工件1才可以完成加工;工件1的第一个工艺步骤是由普通磨床执行完成;工件是由物料1加工得到等。
[0103]
除了典型的作业车间外,我们还可以对流水作业车间和柔性作业车间进行知识图谱的构建,这个两个案例的使用生产数据分别如下表3和表4。
[0104][0105]
表3 流水作业车间加工过程表
[0106][0107]
表4 柔性作业车间加工过程表
[0108]
根据以上的流水作业车间案例和柔性作业车间案例分别构建了流水作业车间案例图谱和柔性作业车间案例图谱。
[0109]
利用已经构建的典型作业车间案例图谱,结合车间生产对应调度约束数学模型可以完成调度约束的自动生成。以下在作业车间生产的调度约束数学模型。
[0110]
ci,j,k≥0
[0111]
ci1,j,k1-pi1,j,k1+m(1-xi1,i2,j)≥ci2,j,k2
[0112][0113]
ci1,j1,k-pi1,j1,k+m(1-yj1,j2,k)≥ci2,j2,k
[0114][0115]
可以将以上数学模型分为三个部分分别表示三种不同的约束,并分别利用作业车间知识图谱来生成对应的具体的约束,我们将其称为约束的自动生成。
[0116]
工艺完成时间约束的数学表达式为ci,j,k,约束生成的重点是查询出所有的工艺完成时间,约束输出是表示所有完工时间都大于零的不等式。生成过程是首先查询出所有工艺完成时间,然后输出对接求解器的不等式格式。
[0117]
具体实验步骤如下:
[0118]
步骤一:使用查询语句查询出所有工艺的完成时间ci,j,k。
[0119]
步骤二:将所有的工艺完成时间c,编写成prob+=c_i_j_k[1][1][1]>=0的格式,按照固定格式输出。
[0120]
得到的输出结果为:
[0121]
prob+=c_i_j_k[1][1][1]>=0
[0122]
prob+=c_i_j_k[2][1][2]》=0
[0123]
prob+=c_i_j_k[3][1][3]》=0
[0124]
prob+=c_i_j_k[1][2][1]》=0
[0125]
prob+=c_i_j_k[2][2][3]》=0
[0126]
prob+=c_i_j_k[3][2][2]》=0
[0127]
prob+=c_i_j_k[1][3][2]》=0
[0128]
prob+=c_i_j_k[2][3][1]》=0
[0129]
prob+=c_i_j_k[3][3][3]》=0
[0130]
同一工件上不同工艺先后顺序约束的数学表达式表示如下:
[0131]
ci1,j,k1-pi1,j,k1+m(1-xi1,i2,j)≥ci2,j,k2
[0132][0133]
约束除了查询出工艺完成时间和工艺加工时间这两个数值属性外,还需要根据工艺步骤的先后顺序判断关系值x的取值。生成这个约束的过程是:先查询出输入工件的完整工艺路径,再提取工艺路径中所有工艺节点。再通过这些节点查询出所需的数值属性值,通过这个工艺路径中连接各个不同工艺的有向边指向得到关系属性值,最后将这些值带入表达这个约束的不等式,并将格式改写为求解器的格式输出。
[0134]
实验的具体步骤为:
[0135]
输入:工件1
[0136]
步骤一:使用查询语句,查询出工件1的完整工艺路径;
[0137]
步骤二:查询工艺路径中每个工艺步骤完成时间;
[0138]
同理,查出其余的两个工艺步骤的工艺完成时间c(c2,1,2\c3,1,3);
[0139]
步骤三:查询工艺路径中每个工艺步骤加工完成时间;
[0140]
同理,也可查询出另外两个工艺步骤的加工时间p(p2,1,2=2\p3,1,2=5);
[0141]
步骤四:将上述步骤的查询结果,带入不等式,生成具体的约束表示;
[0142]
将前三个步骤的查询结果汇总得到查询结果有:工艺完成时间c(c1,1,1\c2,1,2\c3,1,3)、加工时间p(p1,1,1\p2,1,2\p3,1,3)和工艺路径的顺序关系(工件1-工艺步骤1—工艺1-工
[0143]
(工件1-工艺步骤1—工件1-工艺步骤2)和(工件1-工艺步骤2—工件1-工艺步骤3),以第一组(工件1-工艺步骤1—工件1-工艺步骤2)为例:
[0144]
已知数据:
[0145]
工件1-工艺步骤1(ci,j,k=c1,1,1\pi,j,k=p1,1=3)
[0146]
工件1-工艺步骤2(ci,j,k=c2,1,2\pi,j,k=p2,1=3)
[0147]
带入公式:ci1,j,k1-pi1,j+m(1-xi1,i2,j)ci2,j,k2
[0148]
可得:
[0149]
c1,1,1-3+m(1-x1,2,1)c2,1,2(ci1,j,k1=c1,1,1\pi1,j=p1,1=3\ci2,j,k2=c2,1,2)
[0150]
c2,1,2-3+m(1-x2,1,1)c1,1,1(ci1,j,k1=c2,1,2\pi1,j=p2,1=3\ci2,j,k2=c1,1,2)
[0151]
步骤五:两个工序之间前后序关系属性值生成
[0152]
以(工件1-工艺步骤1—工件1-工艺步骤2)为例,带入公式后可得x1,2,1和x2,1,1,通过查询两工序是否存在边可以推导出这两个x的值。x1,2,1为工件1的第1个工艺步骤在第2个工艺步骤之前,使用如下的查语句直接查询这两个节点相连的三元组。
[0153]
match(a:工艺{name:"工件1-工艺步骤1"})-[c:`工艺路径`]-》(b:`工艺`{name:'工件1-工艺步骤2'})
[0154]
return a,c,b
[0155]
这个三元组可以在图谱中查询得到,可知工件1的第1个工艺步骤在第2个工艺步骤之前加工,推导可得x1,2,1=0;
[0156]
x2,1,1为工件1的第2个工艺步骤在第1个工艺步骤之前,使用如下的查语句直接查询这两个节点相连的三元组。
[0157]
match(a:工艺{name:"工件1-工艺步骤2"})-[c:`工艺路径`]-》(b:`工艺`{name:'工件1-工艺步骤1'})
[0158]
return a,c,b
[0159]
这个三元组可以在图谱中无法找到,可知工件1的第2个工艺步骤不在第1个工艺步骤之前加工,推导可得x2,1,1=1
[0160]
根据以上的查询可知(x1,2,1=0\x2,1,1=1),带入不等式可得
[0161]
c1,1,1-3+m(1-0)c2,1,2(ci1,j,k1=c1,1,1\pi1,j=p1,1=3\ci2,j,k2=c2,1,2\x1,2,1=0)
[0162]
c2,1,2-3+m(1-1)c1,1,1(ci1,j,k1=c2,1,2\pi1,j=p2,1=3\ci2,j,k2=c1,1,2\x2,1,1=1)
[0163]
不等式的格式转化为标准格式并输出:
[0164]
prob+=c_i1_j1_k[1][1][1]-3+m*(1-0)》=c_i2_j2_k[2][1][2]
[0165]
prob+=c_i1_j1_k[2][1][2]-3+m*(1-1)》=c_i2_j2_k[1][1][1]
[0166]
输出:需要将两种组合形式(工件1-工艺步骤1—工件1-工艺步骤2)(工件1-工艺步骤2—工件1-工艺步骤3)都输出,每一个组合有两个不等式,共四个不等式。
[0167]
prob+=c_i1_j1_k[1][1][1]-3+m*(1-0)》=c_i2_j2_k[2][1][2]
[0168]
prob+=c_i1_j1_k[2][1][2]-3+m*(1-1)》=c_i2_j2_k[1][1][1]
[0169]
prob+=c_i1_j1_k[2][1][2]-3+m*(1-0)》=c_i2_j2_k[3][1][3]
[0170]
prob+=c_i1_j1_k[3][1][3]-5+m*(1-1)》=c_i2_j2_k[2][1][2]。
[0171]
同一的设备上不同工件加工顺序约束的数学表达式为:
[0172]
ci1,j1,k-pi1,j1,k+m(1-yj1,j2,k)≥ci2,j2,k
[0173][0174]
对于该约束生成的重点同样在于如何查询出在该约束的数学表达式中所需的属性值。该约束生成的输入为被查询的设备。生成的过程首先是查询出所有由该设备执行的工艺节点,再根据这些工艺节点查询出相关的属性值,最后将这些属性值带入数学表达式,并以可以对接求解器的格式进行输出。
[0175]
实验的具体步骤如下:
[0176]
输入:普通磨床
[0177]
步骤一:通过一下查询语句,查询出所有通过执行边与设备(普通磨床)相连的工艺节点。
[0178]
match p=(a:设备{name:“普通磨床"})-[c:`执行`]-》(b)
[0179]
return p
[0180]
可得与普通磨床相连的工艺节点有(工件1-工艺步骤1、工件2-工艺步骤1、工件3-工艺步骤2);
[0181]
步骤二:通过一下查询语句,查询出所有通过执行边与设备(普通磨床)相连的执行边中工艺完成时间c。
[0182]
match p=(a:设备{name:“普通磨床"})-[c:`执行`]-》(b)
[0183]
return c
[0184]
(工件1-工艺步骤1-c1,1,1、工件2-工艺步骤1-c1,2,1、工件3-工艺步骤2-c2,3,1)
[0185]
步骤三:查询出上述工艺节点中储存的加工时间p
[0186]
以工艺1-工艺步骤1为例
[0187]
match(a:`工艺`{name:"工件1-工艺步骤1"})
[0188]
return a
[0189]
同理也可以查询出另外两个工艺步骤的加工时间p(p1,2,1=3\p2,3,1=5);
[0190]
步骤四:根据上述查询可得
[0191]
工艺完成时间c-ci,j,k=c1,1,1\c1,2,1\c2,3,1
[0192]
加工时间p-pi,j,k:p1.1.1=3\p1,2,1=3\c2,3,1=5
[0193]
将上述结果排列组合带入不等式可得:
[0194]
c1,1,1-3+m(1-y1,2,1)c1,2,1(i1=1\i2=1\j1=1\j2=2\k=1)
[0195]
c1,1,1-3+m(1-y1,3,1)c2,3,1(i1=1\i2=2\j1=1\j2=3\k=1)
[0196]
c1,2,1-3+m(1-y2,1,1)c1,1,1(i1=2\i2=1\j1=1\j2=1\k=1)
[0197]
c1,2,1-3+m(1-y2,3,1)c2,3,1(i1=2\i2=2\j1=2\j2=3\k=1)
[0198]
c2,3,1-5+m(1-y3,1,1)c1,1,1(i1=2\i2=1\j1=3\j2=1\k=1)
[0199]
c2,3,1-5+m(1-y3,2,1)c1,2,1(i1=1\i2=1\j1=3\j2=2\k=1)
[0200]
将不等式整理为输出的格式并输出:
[0201]
prob+=c_i_j_k[1][1][1]-3+m*(1-y_j1_j2_k[1][2][1])》=c_i_j_k[1][2][1]
[0202]
prob+=c_i_j_k[1][2][1]-3+m*(1-y_j1_j2_k[1][3][1])》=c_i_j_k[2][3][1]
[0203]
prob+=c_i_j_k[1][2][1]-3+m*(1-y_j1_j2_k[2][1][1])》=c_i_j_k[1][1][1]
[0204]
prob+=c_i_j_k[1][2][1]-3+m*(1-y_j1_j2_k[2][3][1])》=c_i_j_k[2][3][1]
[0205]
prob+=c_i_j_k[2][3][1]-5+m*(1-y_j1_j2_k[3][1][1])》=c_i_j_k[1][1][1]
[0206]
prob+=c_i_j_k[3][1][1]-5+m*(1-y_j1_j2_k[3][2][1])》=c_i_j_k[1][2][1]。
[0207]
调度方案的生成是使用整数线性规划求解器,求解器的求解需要两个输入。一个是优化目标函数另一个是符合整数线性规划的调度约束数学模型。
[0208]
优化目标为最短时间内完成订单中的三个产品的生产,将这个优化目标可以转化为将所有工艺的完成时间的和最小化,可以得到如下的优化目标函数。
[0209]
f=min(∑工艺完成时间)
[0210]
转化优化目标函数的格式后可以得到:
[0211]
f=min(∑c
i,j,k
)
[0212]
调度约束数学模型:
[0213]
该数学模型分为三部分,分别为所有工艺的完成时间约束、同一工件上不同工艺之间的先后约束以及同一设备上不同工件的加工顺序约束。根据上一部分的约束生成方法,可以得到利用数学不等式的形式表示的这三个约束。以下为这三个约束的不等式组:
[0214]
1.所有工艺的完成时间约束:
[0215]
prob+=c_i_j_k[1][1][1]》=0
[0216]
prob+=c_i_j_k[2][1][2]》=0
[0217]
prob+=c_i_j_k[3][1][3]》=0
[0218]
prob+=c_i_j_k[1][2][1]》=0
[0219]
prob+=c_i_j_k[2][2][3]》=0
[0220]
prob+=c_i_j_k[3][2][2]》=0
[0221]
prob+=c_i_j_k[1][3][2]》=0
[0222]
prob+=c_i_j_k[2][3][1]》=0
[0223]
prob+=c_i_j_k[3][3][3]》=0
[0224]
2.同一工件上不同工序的加工先后顺序约束:
[0225]
工件1:
[0226]
prob+=c_i1_j1_k[1][1][1]-3+m*(1-0)》=c_i2_j2_k[2][1][2]prob+=c_i1_j1_k[2][1][2]-3+m*(1-1)》=c_i2_j2_k[1][1][1]prob+=c_i1_j1_k[2][1][2]-3+m*(1-0)》=c_i2_j2_k[3][1][3]prob+=c_i1_j1_k[3][1][3]-5+m*(1-1)》=c_i2_j2_k[2][1][2]
[0227]
工件2:
[0228]
prob+=c_i1_j1_k[1][2][1]-3+m*(1-0)》=c_i2_j2_k[2][2][3]prob+=c_i1_j1_k[2][2][3]-3+m*(1-1)》=c_i2_j2_k[1][2][1]prob+=c_i1_j1_k[2][2][3]-3+m*(1-0)》=c_i2_j2_k[3][2][2]prob+=c_i1_j1_k[3][2][2]-5+m*(1-1)》=c_i2_j2_k[2][2][3]
[0229]
工件3:
[0230]
prob+=c_i1_j1_k[1][3][2]-3+m*(1-0)》=c_i2_j2_k[2][3][1]prob+=c_i1_j1_k[2][3][1]-3+m*(1-1)》=c_i2_j2_k[1][3][2]prob+=c_i1_j1_k[1][3][2]-3+m*(1-0)》=c_i2_j2_k[3][3][3]prob+=c_i1_j1_k[3][3][3]-5+m*(1-1)》=c_i2_j2_k[1][3][2]
[0231]
3.同一设备上不同工件的加工顺序约束:
[0232]
设备1:
[0233]
prob+=c_i_j_k[1][1][1]-3+m*(1-y_j1_j2_k[1][2][1])》=c_i_j_k[1][2][1]prob+=c_i_j_k[1][2][1]-3+m*(1-y_j1_j2_k[1][3][1])》=c_i_j_k[2][3][1]prob+=c_i_j_k[1][2][1]-3+m*(1-y_j1_j2_k[2][1][1])》=c_i_j_k[1][1][1]prob+=c_i_j_k[1][2][1]-3+m*(1-y_j1_j2_k[2][3][1])》=c_i_j_k[2][3][1]prob+=c_i_j_k[2][3][1]-5+m*(1-y_j1_j2_k[3][1][1])》=c_i_j_k[1][1][1]prob+=c_i_j_k[3][1][1]-5+m*(1-y_j1_j2_k[3][2][1])》=c_i_j_k[1][2][1]设备2:
[0234]
prob+=c_i_j_k[2][1][2]-2+m*(1-y_j1_j2_k[1][2][2])》=c_i_j_k[3][2][2]prob+=c_i_j_k[2][1][1]-2+m*(1-y_j1_j2_k[1][3][2])》=c_i_j_k[1][3][2]prob+=c_i_j_k[3][2][2]-1+m*(1-y_j1_j2_k[2][1][2])》=c_i_j_k[2][1][2]prob+=c_i_j_k[3][2][2]-1+m*(1-y_j1_j2_k[2][3][2])》=c_i_j_k[1][3][2]prob+=c_i_j_k[1][3][2]-2+m*(1-y_j1_j2_k[3][1][2])》=c_i_j_k[2][1][2]prob+=c_i_j_k[1][3][2]-2+m*(1-y_j1_j2_k[3][2][2])》=c_i_j_k[3][2][2]
[0235]
设备2:
[0236]
prob+=c_i_j_k[2][1][2]-2+m*(1-y_j1_j2_k[1][2][2])》=c_i_j_k[3][2][2]
[0237]
prob+=c_i_j_k[2][1][1]-2+m*(1-y_j1_j2_k[1][3][2])》=c_i_j_k[1][3][2]
[0238]
prob+=c_i_j_k[3][2][2]-1+m*(1-y_j1_j2_k[2][1][2])》=c_i_j_k[2][1][2]
[0239]
prob+=c_i_j_k[3][2][2]-1+m*(1-y_j1_j2_k[2][3][2])》=c_i_j_k[1][3][2]
[0240]
prob+=c_i_j_k[1][3][2]-2+m*(1-y_j1_j2_k[3][1][2])》=c_i_j_k[2][1][2]
[0241]
prob+=c_i_j_k[1][3][2]-2+m*(1-y_j1_j2_k[3][2][2])》=c_i_j_k[3][2][2]
[0242]
设备3:
[0243]
prob+=c_i_j_k[3][1][3]-5+m*(1-y_j1_j2_k[1][2][3])》=c_i_j_k[2][2][3]
[0244]
prob+=c_i_j_k[3][1][3]-5+m*(1-y_j1_j2_k[1][3][3])》=c_i_j_k[3][3][3]
[0245]
prob+=c_i_j_k[2][2][3]-5+m*(1-y_j1_j2_k[2][1][3])》=c_i_j_k[3][1][3]
[0246]
prob+=c_i_j_k[2][2][3]-5+m*(1-y_j1_j2_k[2][3][3])》=c_i_j_k[3][3][3]
[0247]
prob+=c_i_j_k[3][3][3]-3+m*(1-y_j1_j2_k[3][1][3])》=c_i_j_k[3][1][3]
[0248]
prob+=c_i_j_k[3][3][3]-3+m*(1-y_j1_j2_k[3][2][3])》=c_i_j_k[2][2][3]
[0249]
将上述的不等式和优化目标函数输入求解器中可以得到如下的解:
[0250]
c_i_j_k[1][1][1]=11、c_i_j_k[2][1][2]=13、c_i_j_k[3][1][3]=18
[0251]
c_i_j_k[1][2][1]=3、c_i_j_k[2][2][2]=8、c_i_j_k[3][2][2]=14
[0252]
c_i_j_k[1][3][2]=2、c_i_j_k[2][3][1]=8、c_i_j_k[3][3][3]=11
[0253]
将上述求解结果转化为甘特图的形式表达调度方案,根据甘特图,得到如下数据:
[0254]
工件1-工艺步骤1:开始时间=8、结束时间=11
[0255]
工件1-工艺步骤2:开始时间=11、结束时间=13
[0256]
工件1-工艺步骤3:开始时间=13、结束时间=18
[0257]
工件2-工艺步骤1:开始时间=0、结束时间=3
[0258]
工件2-工艺步骤2:开始时间=3、结束时间=8
[0259]
工件2-工艺步骤3:开始时间=13、结束时间=14
[0260]
工件3-工艺步骤1:开始时间=0、结束时间=2
[0261]
工件3-工艺步骤2:开始时间=3、结束时间=8
[0262]
工件3-工艺步骤3:开始时间=8、结束时间=11
[0263]
将以上数据,并结合该案例的生产资源知识图谱,可以构建出方案图谱。
[0264]
该调度方案图谱的结构上与该案例的生产资源知识图谱基本一致,但所存储的属性有所不同。主要变化在代表执行关系的边中存储了每一个工艺的开始和结束时间。
[0265]
如图10所示,本发明还提供了一种基于知识图谱的生产调度管理装置300,包括:
[0266]
图谱构建模块310,用于基于现有生产资源数据,构建生产资源知识图谱;
[0267]
约束条件生成模块320,用于基于构建的生产资源知识图谱,自动生成作业车间调度的约束条件;
[0268]
生产调度管理模块330,用于基于作业车间调度的约束结果,通过求解器自动生成生产调度方案。
[0269]
为了实现实施例,本发明还提出一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行前述技术方案的基于知识图谱的生产调度管理方法中的各步骤。
[0270]
如图11所示,非临时性计算机可读存储介质800包括指令的存储器810,接口830,指令可由根据基于知识图谱的生产调度管理处理器820执行以完成方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0271]
为了实现实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如本发明实施例的基于知识图谱的生产调度管理。
[0272]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特
点包含于本发明的至少一个实施例或示例中。在本说明书中,对所述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0273]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0274]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0275]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0276]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在所述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0277]
本技术领域的普通技术人员可以理解实现所述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0278]
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。所述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机
可读取存储介质中。
[0279]
所述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,所述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对所述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1