一种具有切换时间的成套订单的调度方法与流程

文档序号:18452299发布日期:2019-08-17 01:21阅读:278来源:国知局
一种具有切换时间的成套订单的调度方法与流程

本发明涉及生产制造技术领域,特别涉及一种具有切换时间的成套订单的调度方法。



背景技术:

随着中国智能制造2025、工业4.0等新的制造理念的兴起与发展,企业生产过程执行管理系统(manufacturingexecutionsystem,mes)作为连接企业资源管理层(erp)与生产制造层的桥梁,在层层之间的信息交互过程中发挥着不可或缺的作用。其中,生产调度作为mes层的关键环节,对于企业的经营和效益至关重要。

在现有技术中,随着装配制造业的发展,生产装配具有朝着多样化、定制化方向发展的趋势。不同于传统调度问题,工件配套问题成为生产调度问题研究的新方向。举例来说,与传统生产调度指标不同,成套订单调度问题存在多工件按时完工,多工件成套的特点为:某订单包含多个工件,每个工件具有不同的交货期,若这些工件都能按时完工,表明包含这些工件的订单是成套的。切换时间(setuptimes)主要包含工具准备时间、物料准备时间、机器准备时间等。在一般作业车间中,切换时间可以被忽略或者被包含在工序加工时间内。面向成套订单的生产调度问题存在于船舶飞机制造、大型机械设备制造等行业,具有广泛的实际背景,成为实际成生产过程中急需解决的问题,而具有切换时间的成套订单调度问题更是体现实际生产环境的复杂性和可变性。

人工蜂群算法(artificialbeecolony,abc)是2005年提出的一种新颖的基于群智能的全局优化算法,其直观背景来源于蜂群的采蜜行为,蜜蜂根据各自的分工进行不同的活动,并且实现蜂群信息的共享和交流,从而找到问题的最优解。人工蜂群算法属于群智能算法的一种,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过个体的局部寻优行为,使全局最优值突现出来,有着较快的收敛速度。目前尚无将蜂群算法用于求解成套订单的调度问题,因此研究基于蜂群算法成套订单的调度问题,在上述广泛的应用背景中具有一定的现实意义。



技术实现要素:

针对现有技术的上述缺陷,本发明的主要目的是在于,针对成套订单的调度问题,提供了一种解决具有切换时间的成套订单调度问题的方法,藉由该新颖的调度方法从而提高生产效率,并降低生产成本。

依据本发明的一个方面,提供了一种具有切换时间的成套订单的调度方法,其特征在于,该调度方法包括以下步骤:

a)建立具有切换时间的成套订单调度问题的数学模型:

设定具有可分离序列相关切换时间的作业车间环境——n个待加工的工件要经历m台加工机器的加工,每个工件的加工顺序已经确定,每个工件在一个阶段只需在一台加工机器上加工即可;在任意时刻,每台加工机器最多加工一个工件,每个工件在某一时刻只能被一台加工机器加工;工件不存在优先级约束;任意工件的任意工序在加工前对应的加工机器都有一个固定的切换时间,

定义符号变量:

wh-订单h的权值;

-订单h内的第i个工件;

-工件的完工时间;

-工件的要求交货时间;

-订单h内的第i个工件的第j道工序;

o-总工序集

-工序的加工机器;

-工序的加工时间;

-工序的完工时间;

-工序之间的切换时间(在同一台加工机器上相邻加工的工序);

优化目标表示为:

其中xh是决策变量,表示如下:

约束条件如下:

h,o=1,2,...,h;

i=1,2,...,nh;p=1,2,...,no;

其中,是同一工件的两道工序,是同一台加工机器上相邻的前后加工的工序对,是决策变量,表示如下:

上述关系式(1)是成套订单调度问题的目标函数即加权订单成套率,它与订单h的权值wh和订单成套系数xh有关;关系式(2)表示订单成套系数xh和订单内工件完工时间相关,若每个工件按时完工则该订单成套;约束关系式(3)是工件工序前后顺序约束,说明工件在某一时刻只能加工一道工序;约束关系式(4)是机器非堵塞约束,说明一台加工机器只能同时加工一道工序;及约束关系式(5)定义各符号的取值范围;

b)根据建立的上述数学模型,利用带邻域结构的人工蜂群算法进行计算:

步骤b1:输入工件数量、加工机器数量、工序数量以及每个工件在每道工序、每台加工机器上的加工时间;设置种群规模n_pop、邻域搜索代数n_ls、未改进代数上限limit;

步骤b2:依据编码方案,初始化种群;

步骤b3:采用半主动解码方式,对编码进行解码,得到个体的适应度值;

步骤b4:寻找并占领优质蜜源,与跟随蜂分享蜜源信息,设计特定的进化代数对雇佣蜂种群个体使用邻域搜索策略,其余代数采用雇佣蜂之间的交叉策略;

步骤b5:选择一个雇佣蜂并跟随所选择的雇佣蜂采蜜;

步骤b6:判断雇佣蜂的个体改进的次数;

步骤b7:当子代出现比当前雇佣蜂好的个体时,替换所述当前雇佣蜂个体;

步骤b8:若未达到终止条件,则返回步骤b4继续优化。

在一具体实施例,上述步骤b2的编码方案采用基于工序的编码,所述作业车间环境包括n个工件、m台加工机器,一个可行解长度为n×m,该数字n代表工件号,每个数字出现m次,当前出现的次数代表当前数字所表示工件的对应工序。

在一具体实施例,上述步骤b3的半主动解码方式中,普通作业车间针对一个解进行解码时,需要依次计算每道工序的开始和结束时间直到解码完成,且解码时需要考虑同机相邻工序间的切换时间,对一个解中的任意工序oij,它的同机紧前工序mp[oij]的结束时间与切换时间的和记为cmp+tsetup,同件紧前工序jp[oij]的结束时间记为cjp,则工序oij的开始时间是max{cmp+tsetup,jp[oij]}。

在一具体实施例,上述步骤b4对应于雇佣蜂阶段,在所述雇佣蜂阶段中,针对雇佣蜂对应的解进行邻域搜索,其中的交叉策略是指:从总工件集中选择若干工件作为工件集job_set1,其余工件组成工件集job_set2,子代继承对应父代中属于job_set1的工件顺序,子代中job_set2的工件顺序继承自另一个父代。

在一具体实施例,同一订单下的工件要满足准时性,当订单不满足成套性时,说明该订单内出现具有交货时间瓶颈的工件,工件交货时间瓶颈定义如下:

bj=max{cj-dj,0}

其中,cj是工件的完工时间,dj是工件的规定交货时间,未成套订单中出现瓶颈的工件可能是一个或者多个,邻域结构需要依次反复削减未按时完工工件的瓶颈,直到该订单满足成套性,

订单的选择顺序为未成套订单按照其权值wh从高到低依次选择;

订单内工件的选择顺序为,若存在交货时间瓶颈的工件,按照其交货时间瓶颈bj从高到低,依次选择;若存在工件其瓶颈无法削减到0,则跳出该订单,进行下一个未成套订单的优化。

在一具体实施例,上述步骤b5还包括:雇佣蜂的选择采用轮盘赌的方式:

其中,一个雇佣蜂个体对应着一个蜜源(解),表示第i个雇佣蜂个体的适应度值并表示对应解的质量,选择雇佣蜂之后,跟随蜂和所选择的雇佣蜂进行交叉操作,贪婪选择较好的个体,当子代出现比当前雇佣蜂好的个体时予以替换当前雇佣蜂个体。

在一具体实施例,上述步骤b6还包括:在完成一轮雇佣蜂阶段操作后,对没有改进的雇佣蜂个体,其limit次数加1,当limit次数超过上限后,该雇佣蜂进入侦查蜂阶段。

本发明的技术效果在于,针对具有切换时间的作业车间环境下的成套订单调度问题,考虑了实际生产环境中比较重要的因素——订单成套率,以最大化加权订单成套率为目标,提出一种混合整数规划模型。根据成套订单问题配套性的特点,设计了一种新的邻域结构,在人工蜂群算法的基础上加入邻域搜索构成带邻域结构的人工蜂群算法去求解具有切换时间的成套订单调度问题的数学模型。此外,还采用响应面分析法对算法参数进行整定,通过仿真实验验证了邻域结构的有效性。再者,通过和其他元启发式算法的仿真结果进行对比从而验证了算法的先进性和稳定性。相比于现有技术,本发明的调度方法可以使企业或工厂在给定资源以及约束的条件下,制定合理的生产策略,提高调度效率。

附图说明

读者在参照附图阅读了本发明的具体实施方式以后,将会更清楚地了解本发明的各个方面。其中,

图1示出依据本发明的一个方面,具有切换时间的成套订单调度问题的人工蜂群算法的三种类型蜜蜂示意图;

图2示出图1的调度方法中,包含雇佣蜂阶段、跟随蜂阶段以及侦察蜂阶段的蜂群算法的流程框图;

图3示出在图2的蜂群算法中,跟随蜂和所选择的雇佣蜂进行交叉操作的示意图;

图4示出在图2的蜂群算法中,加入邻域搜索构成带邻域结构的人工蜂群算法的流程框图;

图5示出在采用改编的ft10实例的小规模实例下,带邻域结构的人工蜂群算法(abc-ns)与不带邻域结构的人工蜂群算法(abc)寻优性能曲线的对比示意图;

图6示出在采用改编的la35实例的中等规模实例下,带邻域结构的人工蜂群算法(abc-ns)与不带邻域结构的人工蜂群算法(abc)寻优性能曲线的对比示意图;以及

图7示出在采用改编的swv17-easy实例的大规模实例下,带邻域结构的人工蜂群算法(abc-ns)与不带邻域结构的人工蜂群算法(abc)寻优性能曲线的对比示意图。

具体实施方式

为了使本申请所揭示的技术内容更加详尽与完备,可参照附图以及本发明的下述各种具体实施例,附图中相同的标记代表相同或相似的组件。然而,本领域的普通技术人员应当理解,下文中所提供的实施例并非用来限制本发明所涵盖的范围。此外,附图仅仅用于示意性地加以说明,并未依照其原尺寸进行绘制。

下面参照附图,对本发明各个方面的具体实施方式作进一步的详细描述。

图1示出依据本发明的一个方面,具有切换时间的成套订单调度问题的人工蜂群算法的三种类型蜜蜂示意图。图2示出图1的调度方法中,包含雇佣蜂阶段、跟随蜂阶段以及侦察蜂阶段的蜂群算法的流程框图。图3示出在图2的蜂群算法中,跟随蜂和所选择的雇佣蜂进行交叉操作的示意图。

参照图1至图3,在人工蜂群算法中,主要包括三个基本组成部分:

食物源——食物源对应着算法的一个解,食物源的好坏即对应解的好坏,往往利用解的目标函数值进行评价;

雇佣蜂(employedbees)——雇佣蜂往往与特定(较优)的食物源对应;

非雇佣蜂——指没有与食物源对应的蜜蜂,采用各种方式寻找新的食物源,分为跟随蜂(onlookerbees)和侦查蜂(scoutbees)两种。

主要分为以下三个阶段:

雇佣蜂阶段(引领蜂)——在初始化阶段蜂群采用随机方式生成,雇佣蜂是蜂群中的较优个体,代表较优解,同时雇佣蜂共享信息给跟随蜂,供跟随蜂选择;

跟随蜂阶段——跟随蜂寻找新食物源的方式围绕雇佣蜂进行,通过轮盘赌选择跟随的雇佣蜂,并在雇佣蜂代表的食物源进行邻域搜索;

侦查蜂阶段——侦查蜂寻找新食物源的方式是更新雇佣蜂,当某雇佣蜂个体达到limitl次未更新,说明该食物源代表的解陷入了局部最优,雇佣蜂放弃该蜜源并成为侦查蜂,通过随机生成的方式寻找新的蜜源。

在该实施方式中,具有切换时间的成套订单的调度方法包括以下步骤:

首先,建立具有切换时间的成套订单调度问题的数学模型:

设定具有可分离序列相关切换时间的作业车间环境——n个待加工的工件要经历m台加工机器的加工,每个工件的加工顺序已经确定,每个工件在一个阶段只需在一台加工机器上加工即可;在任意时刻,每台加工机器最多加工一个工件,每个工件在某一时刻只能被一台加工机器加工;工件不存在优先级约束;任意工件的任意工序在加工前对应的加工机器都有一个固定的切换时间,

定义符号变量:

wh-订单h的权值;

-订单h内的第i个工件;

-工件的完工时间;

-工件的要求交货时间;

-订单h内的第i个工件的第j道工序;

o-总工序集

-工序的加工机器;

-工序的加工时间;

-工序的完工时间;

-工序之间的切换时间(在同一台加工机器上相邻加工的工序);

优化目标表示为:

其中xh是决策变量,表示如下:

约束条件如下:

h,o=1,2,...,h;

i=1,2,...,nh;p=1,2,...,no;

其中,是同一工件的两道工序,是同一台加工机器上相邻的前后加工的工序对,是决策变量,表示如下:

上述关系式(1)是成套订单调度问题的目标函数即加权订单成套率,它与订单h的权值wh和订单成套系数xh有关;关系式(2)表示订单成套系数xh和订单内工件完工时间相关,若每个工件按时完工则该订单成套;约束关系式(3)是工件工序前后顺序约束,说明工件在某一时刻只能加工一道工序;约束关系式(4)是机器非堵塞约束,说明一台加工机器只能同时加工一道工序;及约束关系式(5)定义各符号的取值范围;

然后,根据建立的上述数学模型,利用带邻域结构的人工蜂群算法进行计算:

步骤b1:输入工件数量、加工机器数量、工序数量以及每个工件在每道工序、每台加工机器上的加工时间;设置种群规模n_pop、邻域搜索代数n_ls、未改进代数上限limit;

步骤b2:依据编码方案,初始化种群;

步骤b3:采用半主动解码方式,对编码进行解码,得到个体的适应度值;

步骤b4:如图2所示的雇佣蜂阶段,雇佣蜂的主要任务是寻找并占领优质蜜源,与跟随蜂分享蜜源信息,设计特定的进化代数对雇佣蜂种群个体使用邻域搜索策略,其余代数采用雇佣蜂之间的交叉策略;

步骤b5:如图2所示的跟随蜂阶段,跟随蜂的主要任务是选择一个雇佣蜂并跟随所选择的雇佣蜂采蜜;

步骤b6:如图2所示的侦察蜂阶段中,判断雇佣蜂的个体改进的次数;

步骤b7:当子代出现比当前雇佣蜂好的个体时,替换所述当前雇佣蜂个体;

步骤b8:若未达到终止条件,则返回步骤b4继续优化。

上述步骤b2的编码方案采用基于工序的编码,所述作业车间环境包括n个工件、m台加工机器,一个可行解长度为n×m,该数字n代表工件号,每个数字出现m次,当前出现的次数代表当前数字所表示工件的对应工序。

上述步骤b3的半主动解码方式中,普通作业车间针对一个解进行解码时,需要依次计算每道工序的开始和结束时间直到解码完成,且解码时需要考虑同机相邻工序间的切换时间,对一个解中的任意工序oij,它的同机紧前工序mp[oij]的结束时间与切换时间的和记为cmp+tsetup,同件紧前工序jp[oij]的结束时间记为cjp,则工序oij的开始时间是max{cmp+tsetup,jp[oij]}。

上述步骤b4对应于雇佣蜂阶段,在所述雇佣蜂阶段中,针对雇佣蜂对应的解进行邻域搜索,其中跟随蜂和所选择的雇佣蜂进行交叉操作的交叉策略是指:从总工件集中选择若干工件作为工件集job_set1,其余工件组成工件集job_set2,子代继承对应父代中属于job_set1的工件顺序,子代中job_set2的工件顺序继承自另一个父代。如图3所示。

在一具体实施例中,同一订单下的工件要满足准时性,当订单不满足成套性时,说明该订单内出现具有交货时间瓶颈的工件,工件交货时间瓶颈定义如下:

bj=max{cj-dj,0}

其中,cj是工件的完工时间,dj是工件的规定交货时间,未成套订单中出现瓶颈的工件可能是一个或者多个,邻域结构需要依次反复削减未按时完工工件的瓶颈,直到该订单满足成套性,

订单的选择顺序为未成套订单按照其权值wh从高到低依次选择;

订单内工件的选择顺序为,若存在交货时间瓶颈的工件,按照其交货时间瓶颈bj从高到低,依次选择;若存在工件其瓶颈无法削减到0,则跳出该订单,进行下一个未成套订单的优化。如图4所示。

在邻域搜索过程中,削减工件交货时间瓶颈需要减小工件的完工时间cj。邻域搜索用来找到合适的邻域解,减小关键路径的长度。

关键路径:关键路径是由一系列关键工序组成的工序集合,它们的加工时间是相连(不存在空闲时间)的。

关键工序:在具有切换时间的作业车间环境下,关键工序的选取不再考虑切换时间的影响,在选择了待优化的工件(假设是工件j)以后,将工件j的最后一道工序oj,end加入关键工序集。若oj,end的同件紧前工序jp[oj,end],有c{jp[oj,end]}=s{oj,end},则将jp[oj,end]加入关键工序集。重复以上选择过程直到找到所有关键工序。

关键块:所有相邻的同机关键工序构成一个关键工序块。

关键工序交换:对于首关键块,交换块尾工序对;对于中间关键块,交换块首和块尾工序对;对于尾关键块,交换块首工序对。

上述步骤b5还包括:雇佣蜂的选择采用轮盘赌的方式:

其中,一个雇佣蜂个体对应着一个蜜源(解),表示第i个雇佣蜂个体的适应度值并表示对应解的质量,选择雇佣蜂之后,跟随蜂和所选择的雇佣蜂进行交叉操作,贪婪选择较好的个体,当子代出现比当前雇佣蜂好的个体时予以替换当前雇佣蜂个体。

上述步骤b6还包括:在完成一轮雇佣蜂阶段操作后,对没有改进的雇佣蜂个体,其limit次数加1,当limit次数超过上限后,该雇佣蜂进入侦查蜂阶段。

由上述可知,本发明实施例的成套订单调度方法针对具有切换时间的作业车间环境下的成套订单调度问题,以最大化加权订单成套率为目标,根据成套订单问题中多个工件的配套性特点,提出一种新的邻域结构,该邻域结构通过集中对某个成套订单内的工件交货时间瓶颈反复优化,直到该订单内所有工件交货时间瓶颈被消除,使该订单成套的同时最终提高加权订单成套率;设计了带邻域结构的人工蜂群算法(abc-ns),采用邻域搜索对雇佣蜂中的个体进行搜索,进一步提高算法的收敛精度。经过分析,影响加权订单成套率(whole-setorders)的主要因素只有种群规模(n_pop);而影响算法运行时间的主要是种群规模(n_pop),邻域搜索代数(n_ls)影响较小,而停滞次数上限(limit)几乎对运行时间没有影响。种群规模(n_pop)越大,优化结果更好,而对应的算法搜索时间越长;邻域搜索代数(n_ls)提高也会少量改进算法效果,但对算法运行时间有一定影响,需要考量实际需要偏重于性能还是速度;停滞次数上限(limit)可以随机设置。最终设置算法参数:种群规模n_pop=150,邻域搜索代数n_ls=15。

图5示出在采用改编的ft10实例的小规模实例下,带邻域结构的人工蜂群算法(abc-ns)与不带邻域结构的人工蜂群算法(abc)寻优性能曲线的对比示意图。

由图5可知,小规模实例采用改编的ft10实例(10工件、10机器、7订单),小规模实例下abc-ns比abc寻优性能更加优异。成套订单调度问题,解个体的加权订单成套率其可能的取值比makespan小得多,且进化难度更大,需要满足订单工件的配套性,只有当某个订单成套时,适应度值将提升该订单的权值大小;其次订单的权值是随机生成的,当某个权值较大的订单成套时,种群的平均适应度值在运行过程中可能存在跳变的情况。

图6示出在采用改编的la35实例的中等规模实例下,带邻域结构的人工蜂群算法(abc-ns)与不带邻域结构的人工蜂群算法(abc)寻优性能曲线的对比示意图。

由图6可知,中等规模实例采用改编的la35实例(30工件、10机器、21订单),abc-ns比abc寻优性能更加优异。具体而言,不带邻域结构的人工蜂群算法abc在50代左右已经陷入停滞,而带邻域结构的人工蜂群算法abc-ns则通过更长的时间搜索获得了更优解。

图7示出在采用改编的swv17-easy实例的大规模实例下,带邻域结构的人工蜂群算法(abc-ns)与不带邻域结构的人工蜂群算法(abc)寻优性能曲线的对比示意图。

由图7可知,大规模实例采用改编的swv17-easy实例(50工件、10机器、30订单),大规模实例下abc-ns比abc寻优性能更加优异。但大规模实例下abc-ns的运行时间比abc长得多,因为邻域搜索需要花费大量时间。

为了验证加入邻域搜索过程后abc-ns算法的性能,针对不同规模的成套订单调度问题测试实例进行仿真验证。选择人工蜂群算法(abc)、原始的帝国竞争算法(ica)算法、带邻域搜索的帝国竞争算法(ica-ns)作为对比算法。ica-ns和ica的区别是在ica每完成一次迭代后对最强帝国加入邻域搜索过程。对每一个仿真实例进行10次仿真,并对仿真结果进行以下指标的分析:最大加权订单成套率(maximumwhole-setorders,max)、最小加权订单成套率(minimumwhole-setorders,min)、平均加权订单成套率(averagewhole-setorders,avg)、均方差(standarddeviation,std)。

n为总工件数,m为机器数,o表示订单数,仿真结果下表1所示:

表1四种算法在不同实例下的仿真结果对比

由表可以看出,当仿真实例规模较小时,四种算法都能找到最优解,但加入了邻域结构的abc-ns和ica-ns每次都能找到最优解,说明邻域结构可以改善在小规模实例下算法的稳定性。随着实例规模的扩大,加入了邻域结构的abc-ns和ica-ns总能比没有邻域结构的abc和ica得到更好的解,大部分实例下abc-ns比ica-ns的搜索结果更加稳定。虽然部分实例下(la37、yn2、swv17-easy)不加入邻域搜索的abc和ica的结果标准差较小,但解的质量和加入邻域结构相比较低。综上所述,abc-ns和其他算法相比具有更好的性能和稳定性。由此可见本发明的算法和系统性能良好,可以为具有切换时间的作业车间的成套订单调度问题提供一种可行且有效的方案。

本发明的技术效果在于,针对具有切换时间的作业车间环境下的成套订单调度问题,考虑了实际生产环境中比较重要的因素——订单成套率,以最大化加权订单成套率为目标,提出一种混合整数规划模型。根据成套订单问题配套性的特点,设计了一种新的邻域结构,在人工蜂群算法的基础上加入邻域搜索构成带邻域结构的人工蜂群算法去求解具有切换时间的成套订单调度问题的数学模型。此外,还采用响应面分析法对算法参数进行整定,通过仿真实验验证了邻域结构的有效性。再者,通过和其他元启发式算法的仿真结果进行对比从而验证了算法的先进性和稳定性。相比于现有技术,本发明的调度方法可以使企业或工厂在给定资源以及约束的条件下,制定合理的生产策略,提高调度效率。

上文中,参照附图描述了本发明的具体实施方式。但是,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。

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