基于改进粒子群与启发式策略的生产排产方法及系统与流程

文档序号:11250185阅读:599来源:国知局
基于改进粒子群与启发式策略的生产排产方法及系统与流程

本发明属于离散制造行业生产排程应用领域,尤其涉及基于改进粒子群与启发式策略的生产排产方法及系统。



背景技术:

离散制造行业逐渐由传统的单品种、大批量生产模式向“面向订单”的多品种、小批量的生产模式转化,生产过程仍普遍存在以下现象:a.生产计划制定依赖于人工经验,无科学依据。b.实际生产过程中的插单现象影响生产进度。c.随着生产过程的进行无法及时有效的评估剩余产能。d.存在严重的交货期拖延现象。

上述生产过程问题导致实际生产过程中的浪费现象严重,增加了生产成本,降低了企业利润。能否迅速高效的对目标订单做出生产计划排程,在考虑能力和设备的前提下,在物料数量一定的情况下,安排各生产任务的生产顺序,优化生产顺序,优化选择生产设备,使得减少等待时间,平衡各机器和工人的生产负荷。从而优化产能,提高生产效率,缩短生产生命周期,适应市场变化及成本控制,这关系着企业利益及长远发展。

目前已出现多种算法对生产计划排程及生产调度进行处理优化,如数学规划法、枚举法、分枝定界法、遗传算法等。数学规划法实现起来虽简单,但规则定义单一,无法贴合实际生产过程。枚举法只能处理简单问题,对于实际生产中面对的大规模问题无法在可以接受的时间内获得有指导意义的结果。分枝定界法在解决数据量庞大的生产问题上既耗时又耗内存。遗传算法以生物进化为原型,虽然具有收敛性高、鲁棒性好等特点,但算法实现过程中三个基本算子:选择、交叉和变异的选择依靠经验,严重影响解的品质。

基于群体智能优化方法的粒子群算法实现过程基于计算模型,调试参数基于粒子个体经验与群体经验,可行解更可靠,该算法具有算法简单、收敛速度快、精度高、效率高等特点。但传统的粒子群算法仍存在以下缺点与不足:a.当粒子群算法运行先期收敛速度过快时,算法运行后期容易陷入局部最优,无法获得全局最优解。b.粒子随着生产过程工序的改变而产生的位置移动会产生无效粒子,从而导致出现无解。



技术实现要素:

本发明的目的就是为了解决上述问题,提供基于改进粒子群与启发式策略的生产排产方法及系统,它通过采用新型粒子编码方式,加快了算法的计算速度,它能够解决传统粒子群优化算法处理过程中出现的局部最优问题,极大程度的避免了不可行解现象的发生,实现生产排程的高效性与最优性。

为了实现上述目的,本发明采用如下技术方案:

基于改进粒子群与启发式策略的生产排产方法,包括以下步骤:

步骤(1):根据工单任务在工单加工过程中的时间先后逻辑关系和工单任务处理时间与处理工单任务的机器的可用时间段之间的关系提出约束条件;

步骤(2):按照工厂订单加工交货方式的不同分为两种排产策略,两种排产策略包括正排产策略和倒排产策略,如果是正排产策略就定义正排产策略的目标函数,如果是倒排产策略就定义倒排产策略的目标函数;目标函数即适应度函数;

步骤(3)粒子种群初始化:通过随机方式初始化种群粒子,粒子的初始位置和粒子的初始速度随机均通过随机方式生成,粒子的排序采用序编码方式;所述序编码方式是指按照工单任务上线顺序进行一维顺序编码;

步骤(4):迭代寻优:根据约束条件及适应度函数计算每个粒子的适应度值,根据粒子的初始位置更新粒子经过的历史最优位置,根据粒子的适应度值最小所对应粒子的位置更新全局最优位置,最终全局最优位置对应粒子的序列即为最优工单排产方法;

步骤(5):设定迭代终止条件为最大迭代次数,判断是否达到迭代终止条件,若是则输出全局最优解;若否,跳转至步骤(4)继续寻找最优解。

所述步骤(1)中约束条件:

所述步骤(1)中在选择机器确定工单加工时间的过程中,考虑工单任务在工单加工过程中的时间先后逻辑关系,工单任务一旦开始不能中断,即单个工单任务不可跨机器的不可用时间分两次加工,单台机器同一时间仅可加工一个工单任务,机器仅在可用的时间段内加工工件。

所述步骤(2)中适应度函数即目标函数。

所述正排策略,期望加工的订单尽早交货。

所述倒排策略,是按照订单交货期进行排产,期望在交货期前交货,且加工完毕后尽量少的占用库存。

所述正排策略的目标函数:

min∑所有工单(工单计划结束时间-工单计划开始时间)(2)

所述倒排策略的目标函数:

min∑所有工单|工单计划开始时间-工单交货期|+2|工单计划结束时间-工单交货期|(3)

适应度值越小越好。

所述步骤(3)中初始种群粒子的生成采用随机方式,对粒子的位置及速度通过随机方式生成,粒子排序采用序编码方式,即采用与工单任务上线顺序对应的顺序进行一维顺序编码方式。

所述步骤(3)中初始位置的生成方式,对于长度为n的编码,随机生成长度为n向量的序列作为单个粒子的初始位置。

所述步骤(3)中初始速度的生成方式,对于长度为n的编码,生成n个0至n-1之间的随机数,组成长度为n的向量作为单个粒子初始速度。

所述步骤(4),包括以下步骤:

步骤(4-1):粒子的初始位置是每个粒子在运动初期的第一个位置,设为该粒子的初始最优位置;根据约束条件及适应度函数计算每个粒子的适应度值,适应度值最小对应粒子所在位置即为全局最优位置。

步骤(4-2):通过改进的速度更新公式和位置更新公式对粒子飞行方向进行修正;

改进的速度更新公式如下:

vi=w(vi+ri)+c1r1(pbesti-xi)+c2r2(gbest-xi)(4)

其中,i代表粒子的个数,设定i=200,xi代表粒子i的位置;vi代表粒子i的速度;ri代表粒子i与其他粒子之间的斥力,称为斥力因子;w称为是pso的自适应因子,取值介于[0,1]区间,应用中均采取自适应的取值方法,一开始令w=0.9,使得pso全局优化能力较强,随着迭代的深入,参数w进行递减,从而使得pso具有较强的局部优化能力,当迭代结束时,w=0.1;参数c1和c2称为是学习因子(learnfactor),设置为1.4961;而r1和r2为介于[0,1]之间的随机概率值;pbesti代表粒子i的历史最优位置;gbest代表种群全局最优位置。

所述斥力因子ri源于同性电荷间的相互作用原理。在现实世界中,粒子尤其是带同性电荷的粒子之间存在着斥力(repulsion),其大小与粒子间距离的平方成反比,方向指向粒子相互分离的方向,这种斥力使得粒子趋向于均匀地分布在空间中。受此启发,本发明在传统粒子群速度更新公式中,增加了粒子之间的斥力因子ri,改进之后的粒子群算法,不再要求初始解均匀地分布于解空间中,进一步增加了算法全局寻优的能力。与惯性因子类似,斥力因子ri之前增加了自适应因子w,从而使得pso具有较强的局部优化能力。

位置更新公式如下:

xi=xi+vi(6)

步骤(4-3):计算每个粒子的适应度值。对单个粒子,将该粒子适应值与其经过历史最优位置pbest时的适应度值作比较,如果当前位置粒子的适应度值小于pbest时的适应度值,则将该粒子的当前位置作为单个粒子的历史最优位置pbest;

对每个粒子,均将每个粒子适应度值与粒子群全局最优位置gbest作比较,如果某个粒子所在位置的适应度值小于gbest时的适应度值,则利用该粒子的当前位置更新粒子群全局最优位置gbest;否则不进行更新;

根据公式(4)-(6)看出,根据速度更新公式更新粒子速度,根据位置更新公式更新粒子位置,通过评价每个粒子的适应度,更新粒子经过的历史最优位置与全局最优位置,最终全局最优位置对应粒子的序列即为最优工单排产方法。

所述步骤(4-3)中适应度计算中采用的是带时间窗的插空排产算法,在排产过程中,将时间看作一个维度,将所有被占用的机器资源看作容器,每台机器对象带有一个在设定有限时间内可用的时间窗对象;所述时间窗对象根据工厂的机器开机或加工日历进行初始化,包含一个或多个可用时间段,在每个可用时间段内机器能够加工一个工单任务;

粒子群中的单个粒子的每一维度的数值对应一个工单任务,每个粒子相当于当前所有要排工单任务的顺序;

适应度计算实质是将根据单个粒子值获得工单任务在每个机器的加工上线及下线时间,也可称之为根据粒子所给出的工单任务顺序进行排产的过程。其中加工时间由加工的机器型号以及工单任务的工单产品属性确定,加工时间作为排产的已知信息传入。

所述步骤(4-3)步骤如下:

(4-3-1):在粒子传入后先要进行解码,即将传入的单个粒子数值解析为工单任务的排产顺序。

(4-3-2):按照得到的工单任务的排产顺序,结合当前工单的执行程度,在工单任务可用机器列表中按照正排或倒排的原则选定机器,正排是按照第一个工序往后排产,优先选择可最先加工完当前工单任务的机器;倒排是从最后一个工序开始,依次向前安排工序,机器选择策略为选择最晚开始加工当前任务的机器;

将工单任务所需的时间段插入选定机器的可行时间段,同时维护选定机器可用时间段。具体步骤如下:在正排策略下,按照当前工单任务所属工单已完成部分的截止时间和工单任务的最晚结束时间范围内遍历所有可行的机器的可行时间段,并依次计算预计结束的时间,选出最早完成的机器为选择出的机器和开始结束时间,记录到当前工单任务的结果中,将已占用的区间在可行时间窗对象中置为不可用。

(4-3-3);依次重复步骤(4-3-2),直至当前粒子对应的工单任务全部安排完毕;至此单个粒子的排产过程完成,按照客户的需求,计算适应度返回粒子群的适应度函数值。

(4-3-4)特殊情况处理:在所给的可用时间不足,有订单无法安排生产的情况,则适应度反馈为正无穷大。如果所有粒子在当代粒子群的计算中都没有排开,则会跳转至算法开头,重新初始化粒子群,继续寻优,直至到达停止条件,停止该次粒子群迭代。排产策略有两类,一类是约束优先,一类是结果优先。约束优先策略下,如果未排出结果,无论是正排还是倒排均返回时间不够,排产失败。在结果优先的策略下,正排会按照客户优先级的顺序,依次将截至时间置为正无穷,在该条件下重启粒子群寻优,直至找到可行的排产策略;而倒排会记录未排开所缺的时间值,再未排开情况发生时,按照所缺少的时间,更新倒排工单结束时间,再重启粒子群寻优过程,直至找到可行的排产计划。

所述步骤(5)每进行一次粒子更新及时判定是否达到迭代终止条件,若是则结束,输出全局最优解;若否跳转至步骤(4)继续寻优。

基于改进粒子群与启发式策略的生产排产系统,包括:

约束条件设定模块:根据工单任务在工单加工过程中的时间先后逻辑关系和工单任务处理时间与处理工单任务的机器的可用时间段之间的关系提出约束条件;

目标函数设定模块:按照工厂订单加工交货方式的不同分为两种排产策略,两种排产策略包括正排产策略和倒排产策略,如果是正排产策略就定义正排产策略的目标函数,如果是倒排产策略就定义倒排产策略的目标函数;目标函数即适应度函数;

粒子种群初始化模块:通过随机方式初始化种群粒子,粒子的初始位置和粒子的初始速度均通过随机方式生成,粒子的排序采用序编码方式;所述序编码方式是指按照工单任务上线顺序进行一维顺序编码;

迭代寻优模块:根据约束条件及适应度函数计算每个粒子的适应度值,根据粒子的初始位置更新粒子经过的历史最优位置,根据粒子的适应度值最小所对应粒子的位置更新全局最优位置,最终全局最优位置对应粒子的序列即为最优工单排产方法;

迭代终止条件设定模块:设定迭代终止条件为最大迭代次数,判断是否达到迭代终止条件,若是则输出全局最优解;若否,跳转至粒子速度和位置更新模块继续寻找最优解。

本发明的有益效果:

1对传统的粒子群优化算法进引进启发式规则,采用独特编码和速度、位置更新对传统粒子群算法进行升级改进,应用于离散制造生产排程领域,具有计算速度快、结果精度高等特点。

2对粒子采用独特的启发式策略,通过正排策略和倒排策略的双重实施,使适应度函数得以修改完善,贴合实际生产情况。

3对单个粒子的编码采用依照工单任务上线顺序的序编码方式,保证了粒子更新后的有效性,避免出现不可行解的问题。

4对粒子群的速度、位置公式引进斥力因子ri,通过修正完善的速度位置更新公式,摆脱因前期收敛速度过快出现局部最优的问题,使系统跳出局部最优解,增强了全局寻优的能力,保证了系统全局最优解的出现。

附图说明

图1为本发明提供的基于改进粒子群与启发式策略的生产排产方法及系统的算法流程图。

图2为本发明提供的基于改进粒子群与启发式策略的生产排产方法及系统应用场景正排效果示意图。

图3为本发明提供的基于改进粒子群与启发式策略的生产排产方法及系统应用场景倒排效果示意图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

如图1所示,本发明基于改进粒子群与启发式策略的生产排产方法,包括以下步骤:

1.提出约束条件。通过调整工单的每个任务所选择的机器、以及上线加工的时间,以获得更优目标函数。在选择机器,确定工单加工时间的过程中要考虑工单任务在工单加工过程中的先后的逻辑关系,工单任务一旦开始不能中断,即单个工单任务不可跨机器的不可用时间分两次加工,单台机器同一时间仅可加工一个工单任务,机器仅在可用的时间段内加工工件,以上约束由公式表示如下:

2.定义目标函数即适应度函数。按照工厂订单加工交货方式的不同,分为两种排产策略,一种是正排策略,期望加工的订单尽早交货,另一种是倒排策略,是按照订单交货期进行排产,期望在交货期前交货,且加工完毕后尽量少的占用库存。

正排目标:

min∑所有工单(工单计划结束时间-工单计划开始时间)(2)

倒排目标:

min∑所有工单|工单计划开始时间-工单交货期|+2|工单计划结束时间-工单交货期|(3)

适应度值越小越好。

3.粒子种群初始化:通过随机方式初始化种群粒子,包括位置、速度。粒子群中每个粒子对应一个解,单个粒子每一个维度上的值是一个整数值,每个整数值对应一个工单任务,粒子整数数值的排列顺序决定了每个工单任务的排产操作的顺序。具体步骤如下:

3-1粒子排序采用序编码方式,即采用与工单任务上线顺序对应的顺序进行一维顺序编码方式。

3-2初始种群粒子的生成采用随机生成方式,对粒子的位置及速度通过随机方式生成。对于长度为n的编码,随机生成长度为n向量的序列作为单个粒子的初始位置。对于长度为n的编码,生成n个0至n-1之间的随机数,组成长度n的向量作为单个粒子初始速度。

4.粒子速度、位置更新,寻找最优解。具体步骤如下:

4-1在初始位置时,每个粒子在运动初期的第一个位置,就是该粒子的初始最优位置。根据约束条件及适应度函数计算每个粒子的适应度值,适应度值最小对应粒子所在位置即为全局最优位置。

4-2引入斥力因子ri对粒子速度、位置公式进行更新改进,对粒子飞行方向进行修正。

速度更新公式:vi=w(vi+ri)+c1r1(pbesti-xi)+c2r2(gbest-xi)(4)

斥力因子公式:

位置更新公式:xi=xi+vi(6)

4-3计算每个粒子的适应度值。对单个粒子,将该粒子适应值与其经过最优位置pbest时的适应度值作比较,如果当前位置粒子的适应度值小于pbest时的适应度值,则将该粒子的当前位置作为单个粒子的历史最优位置pbest;对每个粒子,均将每个粒子适应度值与粒子群全局最优位置gbest作比较,如果某个粒子所在位置的适应度值小于gbest时的适应度值,则利用该粒子的当前位置更新粒子群全局最优位置gbest;否则不进行更新;

所述4-3中适应度计算中采用的是带时间窗的插空排产算法,在排产过程中,将时间看作一个维度,将所有被占用的机器资源看作容器,每台机器对象带有一个在有限时间内可用的时间窗对象。该时间窗对象根据工厂的机器开机或加工日历进行初始化,包含一个或多个可用时间段,在每个可用时间段内该机器可以用来加工一个工单任务。粒子群中的单个粒子的每一维度的数值对应一个工单任务,每个粒子相当于当前所有要排工单任务的顺序。适应度函数的计算实质是将根据单个粒子值获得工单任务在每个机器的加工上线及下线时间,也可称之为根据粒子所给出的工单任务顺序进行排产的过程。其中加工时间由加工的机器型号以及工单任务的工单产品属性确定,加工时间作为排产的已知信息传入。具体步骤如下:

4-3-1在粒子传入后先要进行解码,即将传入的单个粒子数值解析为工单任务的排产顺序。

4-3-2按照得到的工单任务顺序,结合当前工单的执行程度,在工单任务可用机器列表中按照正排或倒排的原则选定机器,正排是按照第一个工序往后排产,优先选择可最先加工完当前工单任务的机器,正排效果如图2所示。倒排是从最后一个工序开始,依次向前安排工序,机器选择策略为选择最晚开始加工当前任务的机器,同一批工单的倒排效果如图3所示。

将工单任务所需的时间段插入选定机器的可行时间段,同时维护选定机器可用时间段。具体步骤如下:在正排策略下,按照当前工单任务所属工单已完成部分的截止时间和工单任务的最晚结束时间范围内遍历所有可行的机器的可行时间段,并依次计算预计结束的时间,选出最早完成的机器为选择出的机器和开始结束时间,记录到当前工单任务的结果中,将已占用的区间在可行时间窗对象中置为不可用。

4-3-3依次重复步骤4-3-2,直至当前粒子对应的工单任务全部安排完毕。此时单个粒子的排产过程完成,按照客户的要求,计算适应度返回粒子群的适应度函数值。

4-3-4特殊情况处理:在所给的可用时间不足,有订单无法安排生产的情况,则适应度反馈为正无穷大。如果所有粒子在当代粒子群的计算中都没有排开,则会跳转至算法开头,重新初始化粒子群,继续寻优,直至到达停止条件,停止该次粒子群迭代。排产策略有两类,一类是约束优先,一类是结果优先。约束优先策略下,如果未排出结果,无论是正排还是倒排均返回时间不够,排产失败。在结果优先的策略下,正排会按照客户优先级的顺序,依次将截至时间置为正无穷,在该条件下重启粒子群寻优,直至找到可行的排产策略;而倒排会记录未排开所缺的时间值,再未排开情况发生时,按照所缺少的时间,更新倒排工单结束时间,再重启粒子群寻优过程,直至找到可行的排产计划。

5.设定迭代终止条件为最大迭代次数,判断是否达到迭代终止条件,若是则输出全局最优解;若否,跳转至步骤4继续寻找最优解。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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