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

一种基于遗传算法的水果冻干生产调度方法

2022-06-11 06:35:58 来源:中国专利 TAG:


1.本发明属于生产调度方法技术领域,具体涉及一种基于遗传算法的水果冻干生产调度方法。


背景技术:

2.水果冻干是指水果切片后快速冻结,真空冰状脱水的加工过程。含糖量不同的水果冻结温度不同,一般水果切片要先速冻到零下50℃至零下70℃,然后在真空中保温脱水几十个小时。由于加工时间较长而且冻干机价格昂贵,合理的生产调度方法是提高生产效率的关键。水果冻干的生产过程具有典型的批调度特征,则一台真空冻干机可以同时加工多个水果切片,一个水果切片在任何时刻至多在一台真空冻干机上加工。批调度问题广泛存在于各种工业环境中,例如,半导体制造老化测试、钢铁连铸和模具热处理都有批调度特征。
3.遗传算法已广泛应用于调度问题。虽然在经典单件调度问题已取得很好应用效果,然而在批调度的应用并不理想。对于经典单件调度问题,在进化迭代中,只要优化工件的排序,再将工件安排到最早空闲的机器上,就可以得到理想调度方案。然而对于批调度问题,进化过程得到工件排序之后,还要确定如何为工件组批,然后再安排各批次上机。目前已有的批调度遗传算法是基于贪婪策略,即各批次尽可能装满,然后确定各批次最早可开始时间并安排到最早空闲的机器上。设计更先进的组批方法并嵌入到遗传算法中,是遗传算法提高批调度效率的关键。


技术实现要素:

4.本发明的目的在于以最小化最大完成时间为优化目标,提供一种基于遗传算法的水果冻干生产调度方法,应用于水果冻干生产过程的调度,提高生产效率,缩短加工周期,以解决上述背景技术中所提出的问题。
5.为实现上述目的,本发明提供以下技术方案:一种基于遗传算法的水果冻干生产调度方法,其结构要点在于:包括以下步骤:
6.步骤s1:获取待冻干的n个水果切片的水果类型、切片重量、切片厚度、到达时间和设备信息;
7.步骤s2:构建采用遗传算法的模型,并确定相关的约束条件;
8.步骤s3:对上述模型利用遗传算法处理,通过初始种群与编码、动态规划函数、选择操作及适应度函数、交叉与变异操作,直到产生最优解,即最优生产调度方法;
9.步骤s4:将通过算法产成的最优生产调度方法结果进行显示。
10.作为优选的,步骤s1中采用多台规格相同的真空冻干机,每台真空冻干机可以容纳多个水果切片同时加工;每一批装载的水果切片总重量不能超过机器容量c;各批次的加工时间由速冻时间和保温脱水时间组成,不同类型的水果需要速冻到不同温度,只有相同类型的水果可以装载到同一批中,即存在不相容工件族,速冻时间与批中总重量成反比,保
温时间主要取决于批中最大水果切片厚度,批次bb的加工时间可表示为:
[0011][0012]
其中,αi表示类型i的速冻时间系数,而所有品种有相同的保温脱水时间系数β,wj表示切片重量,sj表示切片厚度,真空冻干机加工过程不允许暂停插入其他批次,调度目标为最小化最大完成时间c
max

[0013]
作为优选的,步骤s3中的遗传算法处理步骤如下:
[0014]
步骤sa:读入加工信息,设置种群规模、迭代次数、交叉和变异概率,开始遗传算法;
[0015]
步骤sb:初始化种群,基于工件序列编码产生染色体,染色体数量为预设种群规模;
[0016]
步骤sc:调用动态规划函数,计算每个染色体对应的最大完成时间目标函数值,并转化为适应度值,保存历史最优染色体及其目标函数值;
[0017]
步骤sd:通过轮盘赌的方式选择存留的染色体;
[0018]
步骤se:基于预设交叉概率,父代染色体多点交叉产生新个体;
[0019]
步骤sf:基于预设变异概率,产生新个体;
[0020]
步骤sg:是否达到迭代次数;
[0021]
步骤sh:当未达到迭代次数时,返回步骤sc重新计算;当达到迭代次数时,输出历史最优染色体及其目标函数值。
[0022]
作为优选的,步骤sb中初始种群的优劣对算法计算效率具有较大影响,为了使初始种群中存在较优染色体,第1个染色体通过以下方式产生:按到达时间从小到大规则排序,到达时间相同则按重量从大到小排序;最后1个染色体的产生方式:按重量从大到小排序,重量相同则按到达时间从小到大规则排序。
[0023]
作为优选的,在步骤sc中的动态规划函数将染色体编码作为水果切片的加工顺序,并通过动态规划函数计算得到调度方案和对应的最大完成时间。
[0024]
作为优选的,步骤sc中的动态规划函数的流程如下:
[0025]
步骤sc1:读取最先空闲的真空冻干机k,设空闲时刻为t,并设置真空冻干机k的最迟开始加工时间为t t,其中t为单一批次最长加工时间的80%,转步骤sc2;
[0026]
步骤sc2:按序列l分别为各品种在时刻t前到达的水果切片组批。如果存在某种水果的待调度重量达到最小加工重量,则优先安排重量最大的品种加工,并更新真空冻干机下次空闲时刻为该批次的完成时间,转步骤sc4;否则如果各种水果的待加工重量都达不到最小加工重量,则转步骤sc3;
[0027]
步骤sc3:如果时刻t不小于真空冻干机的最迟开始时间,并且时刻t前到达的待调度水果切片不为空,则安排待调度总重量最大的品种加工,并更新真空冻干机下次空闲时刻为该批次的完成时间,转步骤sc4;否则,将下个时间窗到达的工件考虑进来,即更新时刻t,令t=t t/3,转步骤sc2;
[0028]
步骤sc4:如果所有工件调度完毕,输出调度结果;否则,转步骤sc1。
[0029]
作为优选的,步骤sc中的目标函数值转化为适应度值的公式为:
[0030]
[0031]
其中rj表示到达时间,max(rj)表示工件的最大到达时间,c
max
(i)表示种群中第i个染色体解码计算得到的最大完成时间,3600表示将时间单位从秒换算为小时;
[0032]
染色体的适应度值转换为概率值的公式为:
[0033]
p(i)=fitness(i)/∑
k∈pop
fitness(k)
ꢀꢀ
(2)
[0034]
其中pop表示当代种群。
[0035]
作为优选的,步骤sd中采用轮盘赌的方式选择交叉与变异之后存留的优势染色体。每个染色体在轮盘中的概率范围通过以下方式得到:
[0036]
第1个染色体在轮盘中的概率区间:[0,p(1)];
[0037]
第n个染色体在轮盘中的概率区间:
[0038]
作为优选的,步骤se中先对要进行交叉操作的父代染色体进行复制,记为父代染色体1和父代染色体2,预先设置交叉概率,随机生成浮点数序列并逐个与交叉概率比较;如果随机浮点数小于交叉概率则保留父代染色体1对应位置的基因,并删除父代染色体2中对应的基因编码;反之如果随机浮点数不小于交叉概率,则将父代染色体1对应位置的基因变为-1,然后按照变化后父代染色体2剩下的编码依次填充到父代染色体1中编码为-1的位置,这样就得到新的子代染色体。
[0039]
作为优选的,步骤sf中预设变异概率,如果随机数小于预设变异概率,当前染色体则进行变异操作;对一个有n个基因的染色体进行变异时,先用随机函数randint(0,n)产生两个整数,然后将这两个整数对应位置的基因进行交换,以此变异得到新的染色体。
[0040]
相比传统采用贪婪策略的遗传算法,本发明提出的遗传算法运算得到的调度方案明显可以缩短水果冻干的最大完成时间,提高加工效率。水果类型越多,或者真空冻干机数量越多,优势越明显。
附图说明
[0041]
图1为本发明的遗传算法流程图。
具体实施方式
[0042]
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
[0043]
请参阅图1,本发明提供一种技术方案,一种基于遗传算法的水果冻干生产调度方法,包括以下步骤:
[0044]
步骤s1:获取待冻干的n个水果切片的水果类型、切片重量、切片厚度、到达时间和设备信息;
[0045]
步骤s2:构建采用遗传算法的模型,并确定相关的约束条件;
[0046]
步骤s3:对上述模型利用遗传算法处理,通过初始种群与编码、动态规划函数、选择操作及适应度函数、交叉与变异操作,直到产生最优解,即最优生产调度方法;
[0047]
步骤s4:将通过算法产成的最优生产调度方法结果进行显示。
[0048]
其中,在本实施例中,所述的步骤s1中采用多台规格相同的真空冻干机,每台真空冻干机可以容纳多个水果切片同时加工;每一批装载的水果切片总重量不能超过机器容量c;各批次的加工时间由速冻时间和保温脱水时间组成,不同类型的水果需要速冻到不同温度,只有相同类型的水果可以装载到同一批中,即存在不相容工件族,速冻时间与批中总重量成反比,保温时间主要取决于批中最大水果切片厚度,批次bb的加工时间可表示为:
[0049][0050]
其中,αi表示类型i的速冻时间系数,而所有品种有相同的保温脱水时间系数β,wj表示切片重量,sj表示切片厚度,真空冻干机加工过程不允许暂停插入其他批次,调度目标为最小化最大完成时间c
max

[0051]
其中,在本实施例中,所述的步骤s3中的遗传算法处理步骤如下:
[0052]
步骤sa:读入加工信息,设置种群规模、迭代次数、交叉和变异概率,开始遗传算法;
[0053]
步骤sb:初始化种群,基于工件序列编码产生染色体,染色体数量为预设种群规模;
[0054]
步骤sc:调用动态规划函数,计算每个染色体对应的最大完成时间目标函数值,并转化为适应度值,保存历史最优染色体及其目标函数值;
[0055]
步骤sd:通过轮盘赌的方式选择存留的染色体;
[0056]
步骤se:基于预设交叉概率,父代染色体多点交叉产生新个体;
[0057]
步骤sf:基于预设变异概率,产生新个体;
[0058]
步骤sg:是否达到迭代次数;
[0059]
步骤sh:当未达到迭代次数时,返回步骤sc重新计算;当达到迭代次数时,输出历史最优染色体及其目标函数值。
[0060]
其中,在本实施例中,批调度问题编码方式有两种:基于批和基于工件序列。基于批的编码方式只适用于特殊的批调度场景,基于工件的编码方式具有较强通用性。因此,本发明采用基于工件的编码方式,每个工件采用唯一自然数表示,编码序列表示工件排序序列。所述的步骤sb中初始种群的优劣对算法计算效率具有较大影响,为了使初始种群中存在较优染色体,第1个染色体通过以下方式产生:按到达时间从小到大规则排序,到达时间相同则按重量从大到小排序;最后1个染色体的产生方式:按重量从大到小排序,重量相同则按到达时间从小到大规则排序。
[0061]
例如表1中的5个水果切片,按上述编码规则,第1个染色体的编码为(3,4,2,5,1),最后1个染色体的编码为(3,4,5,2,1)。
[0062]
表1水果切片信息表
[0063][0064]
初始种群的其余染色体基因通过随机自然数产生,例如对于有n个水果切片的调度问题,产生1到n的随机自然数序列作为1个染色体的基因。
[0065]
其中,在本实施例中,将1个染色体的编码作为参数传递给动态规划函数,在所述的步骤sc中的动态规划函数将染色体编码作为水果切片的加工顺序,并通过动态规划函数计算得到调度方案和对应的最大完成时间。
[0066]
动态规划策略的基本思想是:基于真空冻干机空闲时刻,结合多种批调度规则,确定当前批次包含的水果切片和开始加工时间,并动态更新真空冻干机下次空闲时刻。对比各种批调度规则的调度性能,本发明采用最小加工重量、设备最长空闲等待时间和最大重量优先相结合的组批方式。最小加工重量指每一批次中水果切片的总重量必须达到的重量下限,本专利设置为真空冻干机容量的60%。真空冻干机最长空闲等待时间设置为单一批次最长加工时间的80%,并将真空冻干机最长空闲等待时间分割成3个时间窗,动态评估已到达的水果切片重量。最大重量优先指水果切片按重量排序,重量大的水果切片优先组批。
[0067]
其中,在本实施例中,所述的步骤sc中的动态规划函数的流程如下:
[0068]
步骤sc1:读取最先空闲的真空冻干机k,设空闲时刻为t,并设置真空冻干机k的最迟开始加工时间为t t,其中t为单一批次最长加工时间的80%,转步骤sc2;
[0069]
步骤sc2:按序列l分别为各品种在时刻t前到达的水果切片组批。如果存在某种水果的待调度重量达到最小加工重量,则优先安排重量最大的品种加工,并更新真空冻干机下次空闲时刻为该批次的完成时间,转步骤sc4;否则如果各种水果的待加工重量都达不到最小加工重量,则转步骤sc3;
[0070]
步骤sc3:如果时刻t不小于真空冻干机的最迟开始时间,并且时刻t前到达的待调度水果切片不为空,则安排待调度总重量最大的品种加工,并更新真空冻干机下次空闲时刻为该批次的完成时间,转步骤sc4;否则,将下个时间窗到达的工件考虑进来,即更新时刻t,令t=t t/3,转步骤sc2;
[0071]
步骤sc4:如果所有工件调度完毕,输出调度结果;否则,转步骤sc1。
[0072]
其中,在本实施例中,所述的步骤sc中的目标函数值转化为适应度值的公式为:
[0073][0074]
其中rj表示到达时间,max(rj)表示工件的最大到达时间,c
max
(i)表示种群中第i个染色体解码计算得到的最大完成时间,3600表示将时间单位从秒换算为小时;
[0075]
染色体的适应度值转换为概率值的公式为:
[0076]
p(i)=fitness(i)/∑
k∈pop
fitness(k)
ꢀꢀ
(2)
[0077]
其中pop表示当代种群。从公式(1)和公式(2)可以看出,染色体对应的完成时间越大,其适应度值越小,被选中的概率也就越小。
[0078]
其中,在本实施例中,所述的步骤sd中采用轮盘赌的方式选择交叉与变异之后存留的优势染色体。每个染色体在轮盘中的概率范围通过以下方式得到:
[0079]
第1个染色体在轮盘中的概率区间:[0,p(1)];
[0080]
第n个染色体在轮盘中的概率区间:
[0081]
按照遗传算法预设种群规模产生随机[0,1]]浮点数组,并根据随机数在轮盘中的位置选择对应的染色体,完成选择操作之后,保留的染色体数量为初始设置的种群规模。
[0082]
其中,在本实施例中,交叉是遗传算法生产子代最直接的方法,常用的交叉操作有单点交叉和双点交叉。根据批调度问题的编码特点,本发明采用产生随机[0,1]]浮点数序列的多点交叉方式。
[0083]
下面通过简单实例分析父代染色体1和染色体2的交叉操作过程。
[0084]
父代染色体1:(1,3,5,2,4,6)
[0085]
父代染色体2:(2,4,6,1,3,5)
[0086]
随机浮点数序列:(0.9,0.7,0.5,0.3,0.5,0.7)
[0087]
所述的步骤se中先对要进行交叉操作的父代染色体进行复制,记为父代染色体1和父代染色体2,预先设置交叉概率为0.6,随机生成浮点数序列并逐个与交叉概率比较;如果随机浮点数小于交叉概率则保留父代染色体1对应位置的基因,并删除父代染色体2中对应的基因编码;反之如果随机浮点数不小于交叉概率,则将父代染色体1对应位置的基因变为-1,经过循环对比操作之后,父代染色体的编码变化如下:
[0088]
父代染色体1:(-1,-1,5,2,4,-1)
[0089]
父代染色体2:(6,1,3)
[0090]
然后按照变化后父代染色体2剩下的编码依次填充到父代染色体1中编码为-1的位置,这样就得到新的子代染色体,子代染色体的编码为:(6,1,5,2,4,3)。
[0091]
其中,在本实施例中,所述的步骤sf中预设变异概率为0.1,随机产生[0,1]浮点数,如果随机数小于预设变异概率,当前染色体则进行变异操作;对一个有n个基因的染色体进行变异时,先用随机函数randint(0,n)产生两个整数,然后将这两个整数对应位置的基因进行交换,以此变异得到新的染色体。
[0092]
相比传统采用贪婪策略的遗传算法,本发明提出的遗传算法运算得到的调度方案明显可以缩短水果冻干的最大完成时间,提高加工效率。水果类型越多,或者真空冻干机数量越多,优势越明显。
[0093]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0094]
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献