一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

混凝土订单排产方法、装置及存储介质与流程

2022-11-30 13:05:20 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其涉及一种混凝土订单排产方法、装置及存储介质。


背景技术:

2.在公路、桥梁等施工过程中,标段管辖下混凝土施工受到点数目大、分布广、混凝土强度等级跨度大、用量用时以及紧迫性异构等现实约束,需要对混凝土搅拌等类型订单进行合理的排产。相关技术中,混凝土订单通常使用人工排产,存在排产效率低、劳动强度大、易遗漏订单等问题。


技术实现要素:

3.本技术实施例提供一种混凝土订单排产方法、装置及存储介质,以解决相关技术基于人工进行混凝土订单排产,导致排产效率低、劳动强度大、易遗漏订单的问题。
4.为了解决上述技术问题,本技术是这样实现的:第一方面,本技术实施例提供了一种混凝土订单排产方法,包括:获取k个混凝土订单的信息与订单编码的信息,订单编码的信息包括用于执行混凝土订单的生产对象的数量n,以及每个生产对象的排产数量m,k、m、n均为大于1的整数,且k小于或等于m
×
n;将k个混凝土订单分配至订单编码中,得到n种初始排产方案,n为大于1的整数;基于k个混凝土订单的信息,采用双向协同全局优化策略对所述初始排产方案进行优化,获得全局最优的目标排产方案,用于指导生产对象执行k个混凝土订单。
5.第二方面,本技术实施例还提供了一种混凝土订单排产装置,包括:获取模块,用于获取k个混凝土订单的信息与订单编码的信息,订单编码的信息包括用于执行混凝土订单的生产对象的数量n,以及每个生产对象的排产数量m,k、m、n均为大于1的整数,且k小于或等于m
×
n;分配模块,用于将k个混凝土订单分配至订单编码中,得到n种初始排产方案,n为大于1的整数;确定模块,用于基于k个混凝土订单的信息,采用双向协同全局优化策略对所述初始排产方案进行优化,获得全局最优的目标排产方案,用于指导生产对象执行k个混凝土订单。
6.第三方面,本技术实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的方法。
7.第四方面,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的方法。
8.本技术实施例提供的混凝土订单排产方法,获取k个混凝土订单的信息与订单编码的信息,订单编码的信息包括用于执行混凝土订单的生产对象的数量n,以及每个生产对
象的排产数量m,将k个混凝土订单分配至订单编码中,得到n种初始排产方案,基于k个混凝土订单的信息,采用双向协同全局优化策略对所述初始排产方案进行优化,获得全局最优的目标排产方案,其中,k、m、n以及n均为大于1的整数,且k小于或等于m
×
n。本实施例将生产对象及其排产数量通过订单编码的方式进行体现,k个混凝土订单分配到订单编码得到的n个初始排产方案,各个初始排产方案可以比较好地体现混凝土订单的排产方式,基于k个混凝土订单的信息,结合双向协同全局优化策略的应用,可以自动确定出用于指导生产对象执行各混凝土订单的目标排产方案,避免了人工排产的过程,如此,本技术实施例能够有效提高排产效率,降低劳动强度,此外,还可以避免排产过程中遗漏订单、提高搅拌站覆盖范围。
附图说明
9.图1为本技术实施例提供的混凝土订单排产方法的流程示意图;图2为初始排产方案对应编码的一个示例图;图3为变换初始排产方案一个实例示意图;图4为变换初始排产方案另一个实例示意图;图5为一个具体应用例中混凝土订单排产方法的流程示例图;图6为本技术实施例提供的混凝土订单排产装置的结构示意图。
具体实施方式
10.为使本技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本技术的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本技术的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
11.除非另作定义,本技术中使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
12.如图1所示,本技术实施例提供的混凝土订单排产方法,包括:步骤101,获取k个混凝土订单的信息与订单编码的信息,订单编码的信息包括用于执行混凝土订单的生产对象的数量n,以及每个生产对象的排产数量m,k、m、n均为大于1的整数,且k小于或等于m
×
n;步骤102,将k个混凝土订单分配至订单编码中,得到n种初始排产方案,n为大于1的整数;步骤103,基于k个混凝土订单的信息,采用双向协同全局优化策略对所述初始排产方案进行优化,获得全局最优的目标排产方案,用于指导生产对象执行k个混凝土订单。
13.以混凝土订单为混凝土搅拌订单为例,本技术实施例的混凝土订单排产方法可以是混凝土的搅拌站执行的。当然,容易理解的是,方法执行主体可以具体是电子设备或者服务器等等,这些执行主体可以是位于搅拌站或云端等。此处将搅拌站称为方法的执行主体,
可以更加便于理解本技术的具体实施过程。
14.结合道路施工或者房屋修建的应用场景,这些场景中,可能会同时产生多个施工点,每个施工点均具有混凝土的使用需求,相应地,搅拌站将获得多个混凝土订单,此处的多个混凝土订单,可以对应于上述的k个混凝土订单。
15.每个混凝土订单通常具有对应的信息,比如,混凝土订单要求完成的时间或紧急程度、混凝土的强度与类型、混凝土订单的重要程度、混凝土订单对应的运输位置、混凝土订单的编号等等。容易理解的是,此处是对混凝土订单的信息的一些举例,在实际的混凝土订单排产过程中,应用的混凝土订单的信息,可以是以上举例中的一种或者多种,或者,还可以是其他类型的信息,此处不作一一举例。
16.在步骤101中,搅拌站还可以获取订单编码的信息。如上文所示,订单编码的信息包括用于执行混凝土订单的生产对象的数量n,以及每个生产对象的排产数量m。
17.在混凝土搅拌场景下,生产对象可以是搅拌机,而n可以认为是搅拌机的数量。针对每个搅拌机可以进行排产,通过预设设置或者默认设置,可以使得每个搅拌机最多对m个混凝土订单进行排产。相应地,n个搅拌机,可以最多对m
×
n个混凝土订单进行排产。
18.从字面意思上理解,订单编码可以认为是一串编码,每个编码对应有编码位。本实施例中,订单编码可以包括m
×
n依次排列的编码位,每个编码位上可以排布一个混凝土订单。
19.步骤102中,搅拌站可以将k个混凝土订单分配至订单编码中,得到n种初始排产方案。
20.结合一些举例,当k等于m
×
n时,k个混凝土订单可以占据订单编码上的全部编码位,且混凝土订单与编码位为一一对应的关系。不同的初始排产方案中,k个混凝土订单在订单编码中的位置可以存在不同。
21.在另一些举例中,当k小于m
×
n时,订单编码中部分订单编码被混凝土订单所占据,进而在初始排产方案中,一些编码位为空。不同的初始排产方案中,k个混凝土订单的分布或者空编码位的分布可以存在不同。
22.如图2所示,图2是初始排产方案的一个示例。该示例中,n等于3,对应3台搅拌机,分别记为机器1、机器2以及机器3。每台搅拌机分配有5个编码位,即该示例中m等于5。将3台搅拌机中共15个编码位依次排列,可以得到订单编码。
23.此外,在图2所示的示例中,k可以等于10,每个混凝土订单可以具有对应的订单编号,对应了订单1至订单10,将订单1至订单10随机分配至订单编码中,即可以得到如图2所示的初始排产方案。
24.从图2所示的初始排产方案可知,机器1将依次混凝土订单2和订单8,机器2将依次混凝土订单4、订单6、订单9以及订单10,机器3将依次混凝土订单1、订单3、订单5以及订单7。以上可见,通过设置订单编码,并将k个混凝土订单分配至订单编码所得到的初始排产方案,可以清晰地反映出各混凝土订单对应的生产对象,以及各生产对应的生产序列。
25.当然,以上是对初始排产方案的一种示例,在实际应用中,k、m、n的值可以根据实际情况来设定。
26.在一些实施方式中,k个混凝土订单分配至订单编码中的方式,可以是随机分配,也可以是按照预设的分配规则进行分配,此处不作具体限定。
27.步骤103中,搅拌站可以基于k个混凝土订单的信息,采用双向协同全局优化策略对所述初始排产方案进行优化,获得全局最优的目标排产方案,用于指导生产对象执行k个混凝土订单。
28.如上文所举例的,混凝土订单的信息可以包括要求完成的时间,而混凝土订单在初始排产方案中的编码位,则会影响该混凝土订单的实际生产时间。比如,对于一个时间较为紧急的混凝土订单,在初始排产方案1中被排布在机器1的第4个编码位上,而在初始排产方案2中被排产在机器2的第1个编码位上,则基于初始排产方案1进行生产,可能导致混凝土订单超时;而基于初始排产方案2进行生产,则可以在期望的时间内完成该紧急混凝土订单。单纯从该紧急混凝土订单的角度来说,排产方案2更加适合作为目标排产方案。
29.进一步地,混凝土订单的数量为多个,从全局的角度来看,如果一种初始排产方案,能够使得k个混凝土订单均能在对应期望的时间内完成,则该初始排产方案可以确定为目标排产方案。
30.当然,以上是对步骤103中确定目标排产方案的一种示例性的说明。在上文中还提到,混凝土订单的信息还可以包括其他内容,比如,运输位置、重要程度、混凝土的强度等等,相应地,在确定目标排产方案时,还要混凝土订单中的这些内容。
31.举例来说,不同的搅拌机可能位于不同的搅拌站,而k个混凝土订单对应的混凝土需求地址位置也可能不同,基于初始排产方案,可能确定对应产生的运输时间和运输成本。确定的目标排产方案中,可能除了需要满足生产时间的要求,还需要全局的运输时间和运输成本达到最优等。
32.当一台搅拌站先后生产不同强度类型的混凝土时需要进行搅拌设备清洗,进而导致增加额外的清洗时间,在确定目标排产方案时,可能还需要考虑尽量将同一种强度类型的多个混凝土订单放在相邻的编码位等。
33.为简化说明,此处不对步骤103中确定目标排产方案的方式进行穷举。总的来说,基于k个混凝土订单的信息,可以产生相应的约束条件,从而使得确定的目标排产方案,能够在全局上比较符合各个混凝土订单的需求约束。
34.步骤103中,在获得全局最优的目标排产方案的过程中,还至少使用了双向协同全局优化策略对所述初始排产方案进行优化,以进一步确保能够获得全局最优的目标排产方案。
35.至于双向协同全局优化策略在本技术中的具体应用方式,将在下文实施例中进行说明。
36.本技术实施例提供的混凝土订单排产方法,获取k个混凝土订单的信息与订单编码的信息,订单编码的信息包括用于执行混凝土订单的生产对象的数量n,以及每个生产对象的排产数量m,将k个混凝土订单分配至订单编码中,得到n种初始排产方案,基于k个混凝土订单的信息,采用双向协同全局优化策略对所述初始排产方案进行优化,获得全局最优的目标排产方案,其中,k、m、n以及n均为大于1的整数,且k小于或等于m
×
n。本实施例将生产对象及其排产数量通过订单编码的方式进行体现,k个混凝土订单分配到订单编码得到的n个初始排产方案,各个初始排产方案可以比较好地体现混凝土订单的排产方式,基于k个混凝土订单的信息,结合双向协同全局优化策略的应用,可以自动确定出用于指导生产对象执行各混凝土订单的目标排产方案,避免了人工排产的过程,如此,本技术实施例能够
有效提高排产效率,降低劳动强度,此外,还可以避免排产过程中遗漏订单、提高搅拌站覆盖范围。
37.结合上文举例,一个订单编码有n个部分组成,每个部分表示一台机器的排产情况,一台机器设最多支持m次排产。如图2所示,图2为具有10个混凝土订单,3台机器(n=3)的一次生产排产,得到的初始排产方案。图中每台机器最多进行5次排产(m=5),且其上面混凝土订单从左到右依次排产,图中每个编码位中(或者称为基本元素或基因)为混凝土订单的序号或者指示没有排产的标识,编码位中的混凝土订单可以称为基本单元。例如,在图2中,基本单元订单8表示该混凝土订单在安排在机器1上第二个进行生产。
38.容易理解的是,不同的初始排产方案中,混凝土订单所在的编码位,或者混凝土订单的顺序可以存在不同。
39.上述的n个初始排产方案可以认为是一个种群,记为p,每个初始排产方案为种群p中的一个个体,记为pi,其中,i=1,2,

,n。初始排产方案pi中的每个编码位可以记为p
ij
,其中,j=1,2,

, m
×
n。为了便于区分不同的混凝土订单,可以为每个混凝土订单设置一编号,将混凝土订单分配至订单编码中,在订单编码中可以体现为将每个混凝土订单的编号写入到一个编码位中,没有写入混凝土订单的编号的编码位,可以为空,或者采用编号0表示。
40.下文将基于以上关于种群、个体等的定义对各个实施例进行说明。
41.在一个实施例中,将k个混凝土订单分配至订单编码中,得到n种初始排产方案,包括:将k个混凝土订单按照r种方式分配至订单编码中,得到r种初始排产方案,r为小于n的正整数;变换r种初始排产方案中的混凝土订单,得到n种初始排产方案,n种初始排产方案包括r种初始排产方案。
42.本实施例中,n种初始排产方案可以主要分两种方式进行获得,其中,一种方式是将k个混凝土订单直接分配到订单编码中,得到上述的r个初始排产方案,另一种方式可以是对r个初始排产方案进行变换,间接得到剩余的初始排产方案。
43.在获得r个初始排产方案的过程中,k个混凝土订单可以通过随机分配的方式分配到订单编码的编码位中;或者,k个混凝土订单也可以通过预设的分配规则,分配到订单编码的编码位中等等,此处不作具体限定。
44.结合上位关于种群p的说明,在得到r个初始排产方案时,可以认为获得了初步的种群,该种群中可以包括r个个体。为了更方便快捷地在种群中增加个体的数量,可以采用对种群p已有个体进行变换,例如,将一个个体中的混凝土订单的编码位进行变换,或者将两个个体中同一个编码位上的混凝土订单进行交换等等,如果,可以形成新的个体,这些新的个体可以加入到种群p中。新的个体的加入,可以使种群p中的个体数量从r个增加到n个,n个个体则对应了上述的n种初始排产方案。
45.本实施例中,在以分配的方式得到的r种初始排产方案的基础上,通过变换的方式能够更为高效地得到更多的初始排产方案,而初始排产方案的增加,有助于进一步确定出比较好地满足k个混凝土订单的信息的要求的目标排产方案,提高混凝土订单排产的合理性。
46.可选地,r种初始排产方案中包括第一排产方案与第二排产方案,混凝土订单的信息包括混凝土订单的订单编号;变换r种初始排产方案中的混凝土订单,得到n种初始排产方案,包括:从k个混凝土订单中确定k个第一混凝土订单,k为小于或等于k的正整数;根据k个第一混凝土订单的订单编号,确定k个第一混凝土订单在第一排产方案中的k个第一编码位,以及k个第一混凝土订单在第二排产方案中的k个第二编码位;交换k个第一编码位中的k个第一混凝土订单与k个第二编码位中的k个第一混凝土订单,得到第三排产方案与第四排产方案;其中,第三排产方案中的k个第一混凝土订单所占据的编码位为k个第一编码位,第三排产方案中的k个第一混凝土订单的顺序为第二排产方案中k个第一混凝土订单的顺序,n种初始排产方案包括第三排产方案与第四排产方案。
47.本实施例是对变换r种初始排产方案中的混凝土订单的一种可行方案的细化。为便于理解,以下结合图3对应的示例,来对本实施例的变换过程进行说明。
48.如图3所示,图3中示出了第一排产方案与第二排产方案的订单编码形式的表达。第一排产方案与第二排产方案可以是存在于上述的r种初始排产方案中,这些初始排产方案可以是随机将k个混凝土订单分配至订单编码中得到的。
49.在订单编码中,一些编码位中存在例如订单1、订单2
……
订单10等文字,这些文字可以对应上述的订单编号。订单编号的设置此处可不作具体限定,结合一些举例,可以根据混凝土订单的订购时间或者需求量大小等类型的数据进行排序得到。
50.在图3的示例中,设置了k=4,即选择4个第一混凝土订单进行交换,分别为订单4、订单6、订单9以及订单1。通过这些第一混凝土订单的订单编号,可以查询这些第一混凝土订单在第一排产方案的编码位(对应k个第一编码位),以及在第二排产方案的编码位(对应k个第二编码位)。
51.如图3所示,通过在第一排产方案与第二排产方案之间交换k个第一混凝土订单,可以得到第三排产方案与第四排产方案。而k个第一混凝土订单的交换结果,应满足如下规则:第三排产方案中的k个第一混凝土订单所占据的编码位为k个第一编码位,第三排产方案中的k个第一混凝土订单的顺序为第二排产方案中k个第一混凝土订单的顺序。由于此处的第三排产方案与第四排产方案并不限定顺序,因此可以认为第四排产方案也满足相似的规则。
52.具体到图3的示例中可见,第三排产方案中,订单1、订单4、订单9以及订单6这4个第一混凝土订单,分别位于第6、第7、第8以及第11个编码位中的,这与4个第一混凝土订单在第一排产方案中的编码位是一一对应的。与此同时,订单1、订单4、订单9以及订单6的先后顺序,由于与第二排产方案中4个第一混凝土订单的先后顺序是一致的。
53.类似地,第四排产方案中4个第一混凝土订单占据的编码位,和第二排产方案中4个第一混凝土订单占据的编码位是一一对应的,同时,第四排产方案中4个第一混凝土订单的先后顺序,又是和第一排产方案中4个第一混凝土订单的先后顺序是一致的。
54.通过以上变换方式,可以保证第三排产方案与第四排产方案中不会出现混凝土订单的缺失或者重复,确保这些排产方案的合理性与可行性。此外,也可以比较好地保证通过交换第一混凝土订单得到的初始排产方案,能够区别于已有的r个排产方案,提高获得n种
初始排产方案的过程的效率。
55.在一些示例中,k的数值可以预先设置或者随机确定,而k个第一混凝土订单可以通过预先设置的规则选取或者随机选取。
56.可选地,r种初始排产方案中包括第五排产方案;变换r种初始排产方案中的混凝土订单,得到n种初始排产方案,包括:交换第五排产方案中的第三编码位的混凝土订单与第五排产方案中的第四编码位的混凝土订单,得到第六排产方案;其中,第三编码位与第四编码位关联不同的生产对象,n种初始排产方案包括第六排产方案。
57.本实施例可以认为是区别于上一实施例的另一种混凝土订单变换方式。为便于理解本实施例的实现过程,以下同样结合一个举例进行说明。
58.如图4所示,图4的第五排产方案中,第三编码位可以对应第2个编码位,其中的混凝土订单为订单8,第四编码位可以对应第7个编码位,其中的混凝土订单为订单6。
59.交换第五排产方案中的第三编码位的混凝土订单与第五排产方案中的第四编码位的混凝土订单,得到第六排产方案。如图4所示,在第六排产方案中,第2个编码位上的混凝土订单替换成订单6,而第7个编码位上的混凝土订单替换成订单8。
60.为了保证第六排产方案与第五排产方案之间的差异性,本实施例在进行交换的混凝土订单的选取时,可以选择第五排产方案中不同生产对象所关联的编码位上的混凝土订单。比如,在图4所示示例中,进行交互的订单8与订单6,分别在机器1关联的编码位上的混凝土订单和机器2关联的编码位上的混凝土订单。
61.与上一实施例相似,本实施例同样可以保证第六排产方案的合理性与可行性,此处不再展开说明。
62.可选地,混凝土订单的信息包括混凝土订单的预设权重与订单要求完成时间;基于所述k个混凝土订单的信息,采用双向协同全局优化策略对所述初始排产方案进行优化,获得全局最优的目标排产方案,包括:分别确定每个初始排产方案中各个混凝土订单的完成情况,混凝土订单的完成情况指示混凝土订单能否在订单要求完成时间之内完成;根据混凝土订单的完成情况与混凝土订单的预设权重,分别确定每一初始排产方案对应的适应度;根据适应度,从n种初始排产方案中确定目标排产方案;采用双向协同局部优化策略,调整所述目标排产方案的编码位上的混凝土订单,得到优化排产方案;在所述优化排产方案中混凝土订单的订单期望完成时间,优于所述目标排产方案中混凝土订单的订单期望完成时间的情况下,将所述优化排产方案更新为所述目标排产方案。
63.本实施例中双向协同全局优化策略包括了基于适应度全局确定目标排产方案的策略和双向协同局部优化策略两个部分。
64.结合上文举例,任一初始排产方案可以认为是一个个体pi,初始排产方案对应的适应度可以记为。在一个实施方式中,可以通过如下公式计算:
(1)上式中,可以代表混凝土订单的预设权重,可以用于表示混凝土订单的完成情况。
65.结合上文,p
ij
表示初始排产方案pi中的第j个编码位,在一个初始排产方案中,p
ij
编码位中的混凝土订单可以认为是确定的,因此,在公式(1)中,可以通过标识p
ij
来指代一个混凝土订单,为避免反复说明,下文中混凝土订单可以用标识p
ij
来表示。
66.至于混凝土订单的预设权重,可以预先设置,或者,也可以根据混凝土订单的紧急程度预先确定,紧急程度越高,预设权重越大。
67.混凝土订单的完成情况指示混凝土订单能否在订单要求完成时间之内完成。举例来说,混凝土订单的信息可以包括混凝土订单的需求量与订单要求完成时间,订单编码的信息可以包括生产速率,求解需求量与生产速率的比值,可以得到订单预计完成时间。将预计完成时间与订单要求完成时间进行比较,可以确定混凝土订单能否在订单要求完成时间之内完成,进而得到上述的混凝土订单的完成情况。
68.当然,在实际应用中,在确定混凝土订单能否在订单要求完成时间之内完成时,还可能需要考虑运输时间,混凝土订单在生产对象处排队所消耗的时间等。
69.结合一个举例,设、、分别表示混凝土订单p
ij
的运输时间,期望生产完成时间和订单要求完成时间,则:(2)设为混凝土订单p
ij
的期望开始时间,u为混凝土订单p
ij
的排产目标机器(即编码位p
ij
而所属的生产对象的编号),而v为混凝土订单p
ij
在目标机器u上的排产序号,则有:(3)(4)(5)其中,表示向下取整运算,su为混凝土订单p
ij
在目标机器的生产速率,为混凝土订单p
ij
的期望开始时间,即在生产对象处排队所消耗的时间,为混凝土订单p
ij
的需求量。
70.根据本技术的一个实施例,混凝土订单的信息包括混凝土订单的订单类型;分别确定每个初始排产方案中各个混凝土订单的完成情况,包括:获取第二混凝土订单在初始排产方案中的第五编码位,第二混凝土订单为任一混凝土订单;在第五编码位指示第二混凝土订单不是任一生产对象的首次任务的情况下,获取第二混凝土订单的期望加工时间、第二混凝土订单的运输时间、第二混凝土订单的订单类型、第三混凝土订单的订单类型以及第三混凝土订单的期望生产完成时间,第三混凝土订单为第二混凝土订单的前一混凝土订单;根据第二混凝土订单的期望加工时间、第二混凝土订单的运输时间、第二混凝土
订单的订单类型、第三混凝土订单的订单类型以及第三混凝土订单的期望生产完成时间,确定第二混凝土订单的订单期望完成时间;根据订单期望完成时间与订单要求完成时间,确定第二混凝土订单的完成情况。
71.如上文所示的,在一个初始排产方案中,混凝土订单与编码位之间的关系是确定的,编码位p
ij
上的混凝土订单也可以记为混凝土订单p
ij
。本实施例中,第二混凝土订单为任一混凝土订单,可以直接用混凝土订单p
ij
进行表示,相应地,第五编码位也可以用编码位p
ij
表示。
72.上文举例中介绍了根据期望开始时间、期望加工时间以及运输时间确定订单期望完成时间(对应)的计算方式。本实施例中,对期望开始时间所考虑的因素进行了进一步的限定。
73.具体来说,第二混凝土订单p
ij
的期望开始时间考虑了第二混凝土订单的订单类型、第三混凝土订单的订单类型以及第三混凝土订单的期望生产完成时间,通过公式可以表示为:(6)其中,为第三混凝土订单的期望生产完成时间,表示第二混凝土订单的订单类型,表示第三混凝土订单的订单类型,c为因订单类型差异带来的时间开销。
74.以混凝土搅拌的生产场景为例,订单类型可以是混凝土的强度类型,当一台机器先后生产不同强度类型的混凝土时需要进行搅拌设备清洗,进而带来时间开销c。相反地,当机器先后生产同强度类型的混凝土时,上述的时间开销则通常可以认为等于0。
75.基于公式(6)可见,实际上是不断迭代的过程,对于一台机器的第一个编码位上的混凝土订单,可以是等于的,而后面编码位上的混凝土订单,可以通过迭代运算得到。
76.至于根据订单期望完成时间与订单要求完成时间,确定第二混凝土订单的完成情况的过程,可以参照上文公式(2),此处不再重复说明。
77.本技术实施例提供了适应度的计算方案,该适应度可以用于对混凝土订单的时间要求与紧急度要求等进行量化,基于适应度,可以比较方便合理地从n个初始排产方案中确定出目标排产方案。
78.本实施例中调整目标排产方案的编码位上的混凝土订单以得到优化排产方案的过程,与前文中变换r种初始排产方案中的混凝土订单以得到新的初始排产方案的过程存在一定的相似度。但是两者之间也存在一定的区别。
79.具体来说,如上文所示的,编码位可以称为基因,变换r种初始排产方案中的混凝土订单以得到新的初始排产方案的过程,可以认为是基因不定向的交叉与变异过程,即以拓展种群p中个体的数量为目标,而无需考虑交叉或变异后的基因的是否变得更优。
80.而本实施例中,得到的优化排产方案需要与目标排产方案进行比较,在优于目标排产方案中混凝土订单的订单期望完成时间的情况下,将优化排产方案更新为目标排产方案。换而言之,本实施例中,调整目标排产方案的编码位上的混凝土订单以得到优化排产方
案的过程,可以认为是基因的定向变异过程,目的是使得得到的目标排产方案能够更合理地指导生产。
81.可选地,采用双向协同局部优化策略,调整所述目标排产方案的编码位上的混凝土订单,包括以下至少一项:将目标排产方案中的第六编码位上的混凝土订单,与第六编码位的前一编码位上的混凝土订单进行调换,第六编码位为序号大于或等于2的任一编码位;将目标排产方案中的第七编码位上的混凝土订单,与第七编码位的后一编码位上的混凝土订单进行调换,第六编码位为序号小于m
×
n的任一编码位;将目标排产方案中的第八编码位上的混凝土订单,与目标排产方案中的第九编码位上的混凝土订单进行调换,第八编码位的序号与第九编码位的序号的差值为m的整数倍。
82.面对大量混凝土订单造成的庞大搜索空间与可行区域离散挑战,本技术实施例设计了一种双向协同局部优化策略来提高算法的搜索效率与局部搜索能力。该策略主要考虑了订单间的强度类型与紧迫程度对个体质量的影响,对种群p中的每个个体pi进行优化。
83.其中,本实施例中,将目标排产方案中的第六编码位上的混凝土订单,与第六编码位的前一编码位上的混凝土订单进行调换,可以认为是双向搜索之向前搜索。
84.以混凝土搅拌的生产场景为例,向前搜索主要通过调整同一搅拌机器上的排产来提高生产效率。在具体操作中,将目标排产方案中的一个混凝土订单(对应于第六编码位上的混凝土订单)与前一个混凝土订单进行调换,判断是否存在调整后该次混凝土订单的完成时间提前了且调整后两个混凝土订单都能按时完成订单。
85.即满足, 且,其中表示调整后的订单完成时间,其计算如公式(7)和公式(8)所示。如果满足这些条件,继续循环向前搜索。如果不满足,结束向前搜索,更新目标排产方案。
86.(7)(8)本实施例中,将目标排产方案中的第七编码位上的混凝土订单,与第七编码位的后一编码位上的混凝土订单进行调换,可以认为是双向搜索之向后搜索。
87.向后搜索主要通过将当前不能排产的混凝土订单(对应于第七编码位上的混凝土订单)放往后排,从而优化后面的混凝土订单的排产。算法将当前混凝土订单一直往后排,直到碰到不能排产的混凝土订单,向后搜索结束,更新目标排产方案。
88.本实施例中,将目标排产方案中的第八编码位上的混凝土订单,与目标排产方案中的第九编码位上混凝土订单进行调换,可以认为是双向搜索之协同搜索。
89.协同搜索主要对不同搅拌器之间的混凝土订单(对应于第八编码位上的混凝土订
单与第九编码位上的混凝土订单)进行优化。再具体优化过程中,如果互换后的排产符合以下情况之一则接受该次调整:1)调整后两个混凝土订单都可以完成,且完成时间都提前了;2)两个混凝土订单后面的混凝土订单期望完成时间都提前了。
90.即满足且,或者,满足且。
91.否则继续向后搜索,直到搜索到非排产位。相关计算如下:(9)(10)(11)(12)其中,表示求取j与m之间的余数。
92.以下结合一个具体应用例,对本技术实施例提供的混凝土订单排产方法进行说明。如图5所示,该具体应用例可以是在混凝土搅拌的生产场景中,混凝土订单排产方法包括步骤501~步骤507。
93.步骤501,种群初始化。
94.本步骤中,读取施工点混凝土某一天的需求订单(对应于上述的混凝土订单),每条订单包括施工点(b)、混凝土需求量(r)、强度类型(m)、要求完成时间(t)、紧迫程度(e);梁场与搅拌站相关设备信息,包括各个搅拌设备搅拌速率(s)、梁场到各个施工点的运输时间(d);算法参数(交叉算子α,变异算法β)。
95.将订单根据其完成时间进行从少到大排序(序号从1开始)。然后采用依次随机将订单安排到搅拌设备的方式生成具有n个个体(一个个体对应一种排产方案)的种群(若干排产方案的集合)。该种方式可以增加方案的可行率,进而提高种群的质量。
96.通过将所有订单分配至订单编码中,可以得到多个个体(对应于初始排产方案),并基于上文公式(1)计算各个种群个体的适应度值,适应度值越大,说明该个体对应的排产方案越好。
97.步骤502,判断算法是否满足结束条件。
98.算法的截止条件可以和订单规模相关,设订单的数量为n,则当算法迭代次数t》1000n时算法结束,并输出最优排产方案(对应于目标排产方案)。
99.步骤503,多点随机可行交叉操作。
100.本步骤可以认为是获得上文中第三排产方案与第四排产方案的操作过程。
101.具体来说,交叉操作是个体间进行信息交互的重要途径。传统的随机多点交叉操作一般采用随机选取两个父代个体的基因位(对应于编码位),然后根据这些基因位,选取基因段进行互换。传统的随机多点交叉没有考虑本应用中基因位信息差异(基因位可表示
订单排产或者空闲标识)、基因顺序差异,采用传统的随机多点交叉操作将造成订单多次排产、排产胡乱等,从而使得交叉操作获得高效可行后代该类低下,进而影响算法的搜索效率。
102.为此,本步骤提出了一种多点随机可行交叉操作。随机选取k(随机参数的一个整数)个基因位进行对应的订单编号互换,该种操作确保交叉后的子代个体方案中订单只被排产一次。具体操作伪代码如算法1所示。算法最多只需对两个个体分别遍历一次,其计算复杂度为o(n),但确保了父代生成的后代符合订单仅被调度一次的约束,提高了后代的可行性。交叉操作仅当随机生成的一个[0,1]之间的数少于交叉因子α时执行。
[0103]
图3为进行交叉操作的实例,k=4个蓝色的基因位置被随机选中,其对应的订单编号分别为4,6,9,1 ;在接下来的操作中,扫描另外一个父代个体,如果基因位对应编号被上述选中,则交换该基因,直到所有被选中的基因未都进行了一一替换。
[0104] 算法1:多点随机可行交叉操作输入:父代个体pa和pb输出:实验个体p'a和p'b1: p'a=pa,p'b=pb2: 随机生成一个整数k(1≤k≤nm)3: 随机生成具有k个不重复且在[1,nm]中的序号集合w4: while i≤nmdo5:
ꢀꢀꢀꢀ
if p
ai
∈w then6:
ꢀꢀꢀꢀꢀꢀꢀ
while j≤nm do7:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
if p
bj
∈w then8:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
, j=j 1;i=i 1;9:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
break;10:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
end if11:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
j=j 1;12:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
end while13:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
break;14:
ꢀꢀꢀꢀꢀ
end if15:
ꢀꢀꢀꢀ
i=i 1;16: end for 步骤504,变异操作。
[0105]
本步骤可以认为是获得上文中第六排产方案的操作过程。
[0106]
具体来说,当随机生成的一个[0,1]之间的数少于变异因子β时进行变异操作。变异操作流程具体如下:首先,随机选取两个基因位,如果都不是订单编号,则从新再选两个基因位,直到选的两个基因位存在正常排产;然后,如果都是订单编号,则直接互换他们的位置,如果只有有一个是,则互换后进行调序处理,即非排产的基因位往后移,直到后面的也为非排产基因位,而排产的基因位往前移,直到前面的基因也是排产位。图4为变异操作的一个实例。在该实例中,个体订单6和订单8对应的基因位被选中,然后进行互换,产生新的个体。
[0107]
步骤505,选择操作。
[0108]
选择操作的目的是从父代和实验种群中选出有期望的个体作为下一代种群,本步骤具体操作如下:随机从父代种群和实验种群中选取两个个体,适应度高的个体被保存到下一代,直到选取了n个下一代个体,选择操作结束。并保存适应度最高的方案。
[0109]
步骤506,双向协同局部优化策略。
[0110] 本步骤可以采用上文中双向搜索算法实现。双向搜索之向前搜索(算法2第2~10行)、双向搜索算法分为双向搜索之向后搜索(算法2第11~17行)以及双向搜索之协同搜索(算法2第19~23行)。
[0111]
算法2:双向协同局部优化策略输入:pi输出:p'i1:for q =1,...,nm do2:
ꢀꢀꢀꢀ
j=q;3:
ꢀꢀꢀꢀ
while 》1 do4: if
ꢀꢀ
&&&& then5:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
mid
=
p
ij
; p
ij=
p
ij-1
;p
ij-1=
mid;6:
ꢀꢀꢀꢀꢀꢀꢀꢀ
else7:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
break;8:
ꢀꢀꢀꢀꢀꢀꢀꢀ
end if9:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
j=j-1;10:
ꢀꢀꢀꢀꢀ
end while11:
ꢀꢀꢀꢀꢀ
j=q12:
ꢀꢀꢀ
if
ꢀꢀ
=0 then 13:
ꢀꢀꢀꢀꢀꢀꢀ
k=( 1)
×
m14:
ꢀꢀꢀꢀꢀꢀꢀ
while j《k and p
ij 1
≠0 do15:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
mid
=
p
ij;
p
ij 1=
p
ij: p
ij=
mid;j=j 1;16:
ꢀꢀꢀꢀꢀꢀꢀ
end while17:
ꢀꢀꢀꢀꢀ
end if18:
ꢀꢀ
end for19:
ꢀꢀ
for j=1,...,nm do20:
ꢀꢀꢀꢀ
if (&&)or (&& ) then21:
ꢀꢀꢀꢀꢀꢀꢀ
mid
=
p
ij;
p
ij m=
p
ij: p
ij m=
mid;22:
ꢀꢀꢀꢀ
end if23:
ꢀꢀꢀ
end for24:
ꢀꢀꢀ
p'i=pi以上伪代码的具体思想在上文中进行了描述,此处不再赘述。
[0112]
步骤507,输出最优调度方案。
[0113]
此处的最优调度方案,可以认为是上文实施例中经过优化后最终输出的目标排产方案。
[0114]
本技术实施例在应用于混凝土搅拌生产场景中时,采用信息化技术与智能计算方法,对混凝土生产进行高效全局排产优化对提高施工效率和项目工程进度、减少拌合站建设个数,减少临时用地,降低其对环境的污染等方面都有着重要的现实意义。
[0115]
如图6所示,本技术实施例还提供了一种混凝土订单排产装置,包括:获取模块601,用于获取k个混凝土订单的信息与订单编码的信息,订单编码的信息包括用于执行混凝土订单的生产对象的数量n,以及每个生产对象的排产数量m,k、m、n均为大于1的整数,且k小于或等于m
×
n;分配模块602,用于将k个混凝土订单分配至订单编码中,得到n种初始排产方案,n为大于1的整数;确定模块603,用于基于k个混凝土订单的信息,采用双向协同全局优化策略对所述初始排产方案进行优化,获得全局最优的目标排产方案,用于指导生产对象执行k个混凝土订单。
[0116]
可选地,分配模块602,包括:分配单元,用于将k个混凝土订单按照r种方式分配至订单编码中,得到r种初始排产方案,r为小于n的正整数;变换单元,用于变换r种初始排产方案中的混凝土订单,得到n种初始排产方案,n种初始排产方案包括r种初始排产方案。
[0117]
可选地,r种初始排产方案中包括第一排产方案与第二排产方案,混凝土订单的信息包括混凝土订单的订单编号;变换单元包括:第一确定子单元,用于从k个混凝土订单中确定k个第一混凝土订单,k为小于或等于k的正整数;第二确定子单元,用于根据k个第一混凝土订单的订单编号,确定k个第一混凝土订单在第一排产方案中的k个第一编码位,以及k个第一混凝土订单在第二排产方案中的k个第二编码位;第一交换单元,用于交换k个第一编码位中的k个第一混凝土订单与k个第二编码位中的k个第一混凝土订单,得到第三排产方案与第四排产方案;其中,第三排产方案中的k个第一混凝土订单所占据的编码位为k个第一编码位,第三排产方案中的k个第一混凝土订单的顺序为第二排产方案中k个第一混凝土订单的顺序,n种初始排产方案包括第三排产方案与第四排产方案。
[0118]
可选地,r种初始排产方案中包括第五排产方案;变换单元包括:第二交换单元,用于交换第五排产方案中的第三编码位的混凝土订单与第五排产方案中的第四编码位的混凝土订单,得到第六排产方案;其中,第三编码位与第四编码位关联不同的生产对象,n种初始排产方案包括第六排产方案。
[0119]
可选地,混凝土订单的信息包括混凝土订单的预设权重与订单要求完成时间;
确定模块603包括:第一确定单元,用于分别确定每个初始排产方案中各个混凝土订单的完成情况,混凝土订单的完成情况指示混凝土订单能否在订单要求完成时间之内完成;第二确定单元,用于根据混凝土订单的完成情况与混凝土订单的预设权重,分别确定每一初始排产方案对应的适应度;第三确定单元,用于根据适应度,从n种初始排产方案中确定目标排产方案;调整模块,用于采用双向协同局部优化策略,调整所述目标排产方案的编码位上的混凝土订单,得到优化排产方案;更新模块,用于在优化排产方案中混凝土订单的订单期望完成时间,优于目标排产方案中混凝土订单的订单期望完成时间的情况下,将优化排产方案更新为目标排产方案。
[0120]
可选地,混凝土订单的信息包括混凝土订单的订单类型;第一确定单元包括:第一获取子单元,用于获取第二混凝土订单在初始排产方案中的第五编码位,第二混凝土订单为任一混凝土订单;第二获取子单元,用于在第五编码位指示第二混凝土订单不是任一生产对象的首次任务的情况下,获取第二混凝土订单期望加工时间、第二混凝土订单的运输时间、第二混凝土订单的订单类型、第三混凝土订单的订单类型以及第三混凝土订单的期望生产完成时间,第三混凝土订单为第二混凝土订单的前一混凝土订单;第三确定子单元,用于根据第二混凝土订单的期望加工时间、第二混凝土订单的运输时间、第二混凝土订单的订单类型、第三混凝土订单的订单类型以及第三混凝土订单的期望生产完成时间,确定第二混凝土订单的订单期望完成时间;第四确定子单元,用于根据订单期望完成时间与订单要求完成时间,确定第二混凝土订单的完成情况。
[0121]
可选地,调整模块可以包括以下至少一项:第一调换单元,用于将目标排产方案中的第六编码位上的混凝土订单,与第六编码位的前一编码位上的混凝土订单进行调换,第六编码位为序号大于或等于2的任一编码位;第二调换单元,用于将目标排产方案中的第七编码位上的混凝土订单,与第七编码位的后一编码位上的混凝土订单进行调换,第六编码位为序号小于m
×
n的任一编码位;第三调换单元,用于将目标排产方案中的第八编码位上的混凝土订单,与目标排产方案中的第九编码位上的混凝土订单进行调换,第八编码位的序号与第九编码位的序号的差值为m的整数倍。
[0122]
本技术实施例提供的混凝土订单排产装置是与上文实施例的混凝土订单排产方法对应的装置权限,方法实施例可以应用到装置实施例中,并取得相同的技术效果,此处不再赘述。
[0123]
本技术实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的混凝土订单排产方法。
[0124]
本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的混凝土订单排产方法。
[0125]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0126]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0127]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0128]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0129]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0130]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0131]
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
[0132]
以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例
对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献