[发明专利]考虑订单插单的高端装备研制过程多项目重调度方法及系统有效

专利信息
申请号: 202110310620.5 申请日: 2021-03-23
公开(公告)号: CN112884370B 公开(公告)日: 2022-10-28
发明(设计)人: 刘心报;裴军;饶陈洁;程浩;范新中;周志平;崔龙庆;钱晓飞;陆少军 申请(专利权)人: 合肥工业大学
主分类号: G06Q10/06 分类号: G06Q10/06;G06Q50/04;G06N3/00
代理公司: 合肥市浩智运专利代理事务所(普通合伙) 34124 代理人: 张景云
地址: 230000 安*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 考虑 订单 高端 装备 研制 过程 多项 调度 方法 系统
【权利要求书】:

1.考虑订单插单的高端装备研制过程多项目重调度方法,其特征在于:包括以下步骤:

S1、获取多项目订单数据,所述多项目订单数据包括原计划订单数据和插单订单数据,所述插单订单数据至少包括:插单订单的交货日期、插单客户的等级;基于多项目订单数据初始化禁忌搜索算法的输入参数;设定禁忌搜索算法的执行参数;

S2、将所有工作按基础时间非递增进行排序,得到一个经过排序后的工作集合,根据工作集合,找出各个工作的紧前工作集合Prev(j)和紧后工作集合Next(j);其中j表示工作;

S3、基于所述输入参数和所述执行参数生成初始解,将初始解作为当前解Xs和当前全局最优解Xbest

S4、基于所述紧前工作集合Prev(j)和所述紧后工作集合Next(j)对当前解Xs的进行解码,基于解码后的当前解Xs和预设的规则库产生邻域解集N(Xs),计算邻域解集内个体的适应度值,选出候选解集List(Xs),所述预设的规则库根据插单订单的交货日期设置;

S5、选出List(Xs)中适应度值最小的个体作为的最优个体Y;

S6、判断最优个体Y的适应度值是否小于全局最优解Xbest,若小于Xbest,则将Y赋值给Xbest,更新当前解Xs,将Y赋值给Xs,更新禁忌表TBList,否则执行步骤S7;

S7、判断步骤S5获得的最优个体Y是否在禁忌表TBList中,若是把List(Xs)中的个体Y移出该集合,更新候选解集List(Xs),并返回步骤S6;否则根据当前解Xs更新禁忌表TSList;

S8、更新当前解,则把Y赋值给Xs

S9、将I+1赋值给I,判断I≤Imax是否成立,若成立则返回步骤S4;否则算法执行结束,输出最优解Xbest,根据最优解Xbest得到最优调度方案;

所述步骤S1中的输入参数包括:

工作数量N+M、资源数量K、完成工作j需要的基本时间Tj、资源k完成工作j需要时间tjk、各个资源的能力值ck、原计划的交货日期的最早值dtE、最晚值dtL、插单订单的交货日期dtV、工作的位置序号Posj、分配给工作的资源序号Resj和插单客户的等级变量α;

所述步骤S3具体为:

S301、定义变量j=1;

S302、判断α与αH、αG、αL的关系,若α=αH,则执行S303;若α=αG,则执行S307;若α=αL,则执行S310;其中:α表示插单客户的等级,αH表示高水平客户、αG表示一般水平客户、αL表示低水平客户;

S303、找出工作j可用的资源集合R(Tj),R(Tj)={Rj1,...,Rjb,...,RjB},其中B为工作j可用的资源数量,判断j是否为插单订单工作,若是执行S304,否则执行S305;

S304、随机产生1个在[0,|B/3|]范围内的随机数,记为rand,把Rrand赋值给Resj,把j赋值给Posj,其中|B/3|为大于|B/3|小于(|B/3|+1)的整数;

S305、随机产生1个在[0,B-1]范围内的随机数,记为rand,把Rrand赋值给Resj,把j赋值给Posj

S306、xj={Resj,Posj},Resj表示工作j使用的资源,Posj表示工作j在工作集合中所处的位置,执行S314;

S307、找出工作j可用的资源集合R(Tj),R(Tj)={Rj1,...,Rjb,...,RjB},其中B为工作j可用的资源数量;

S308、随机产生1个在[0,B-1]范围内的随机数,记为rand,把Rrand赋值给Resj,把j赋值给Posj

S309、xj={Resj,Posj},Resj表示工作j使用的资源,Posj表示工作j在工作集合中所处的位置;执行S314;

S310、找出工作j可用的资源集合R(Tj),R(Tj)={Rj1,...,Rjb,...,RjB},其中B为工作j可用的资源数量;判断j是否为插单订单工作,若是执行S311,否则执行S312;

S311、随机产生1个在[|2*B/3|,B-1]范围内的随机数,记为rand,把Rrand赋值给Resj,把j赋值给Posj,其中|2*B/3|为大于|2*B/3|小于(|2*B/3|+1)的整数;

S312、随机产生1个在[0,|2*B/3|]范围内的随机数,记为rand,把Rrand赋值给Resj,把j赋值给Posj,其中|2*B/3|为大于|2*B/3|小于(|2*B/3|+1)的整数;

S313、xj={Resj,Posj},Resj表示工作j使用的资源,Posj表示工作j在工作集合中所处的位置;执行S314;

S314、把j+1赋值给j,判断j≤N+M是否成立,若不成立,则返回S302;否则,以X={x1,...,xj,...,xN+M}作为初始解,将初始解作为当前解Xs和当前全局最优解Xbest

所述步骤S4具体为:

S401、根据串行调度机制对当前解Xs正向进行解码,解码的过程中得到各个工作的开始时间BTj和工作的结束时间ETj,并标记有资源冲突的工作;

S402、根据串行调度机制对当前解Xs反向进行解码,解码的过程中会得到各个工作的最迟开始时间rBTj和工作的最迟结束时间rETj

S404、根据正向解码和反向解码得出的四个时间计算出该工作的总时差、关键工作,根据标记的资源冲突工作可以得到各资源的冲突工作集合

S405、由初始解Xs根据预设的规则库和插单客户的等级获得由W个个体组成的产生邻域解集,记为N(Xs)={X1,...,Xj,...,XW},其中Xj表示邻域解中的第j个个体;

S406、在候选解集中考虑Q个个体,候选解集记为List(Xs),在N(Xs)中选出质量较好的Q个不同个体,并把选出的个体赋值给List(Xs);

所述步骤S405具体包括:

S405a、当α=αH时,若LF<Lmin,执行调度规则1,然后执行步骤S405d;若LF>Lmax,执行调度规则3,然后执行步骤S405d;若Lmin<LF<Lmax,执行调度规则2,然后执行步骤S405d;其中:LF表示插单订单的拖延时间;Lmin为原订单的最小拖延时间,拖延时间=完工时间-交货时间,Lmax为原订单的最大拖延时间;

S405b、当α=αG时,若LF<Lmin,执行调度规则2,然后执行步骤S405d;若LF>Lmax,执行调度规则4,然后执行步骤S405d:若Lmin<LF<Lmax,执行调度规则3,然后执行步骤S405d;

S405c、当α=αL时,若LF<Lmin,执行调度规则3,然后执行步骤S405d;若LF>Lmax,执行调度规则5,然后执行步骤S405d;若Lmin<LF<Lmax,执行调度规则4,然后执行步骤S405d;

S405d、把j+1赋值给j,判断j≤N+M是否成立,若成立则返回步骤S405a,否则执行步骤S405e;

S405e、随机产生2个在[0,H-1]范围内的随机数,分别记为i1和i2,i1和i2不相同,jk1和jk2分别为Rc(Rk)对应位置的工作,H为使用冲突资源Rk时产生的冲突工作数量;

S405f、当α=αH时,若jk1和jk2均为原工作或均为插单订单工作,将两个工作中大的Pos值赋给总时差小的工作,否则将两个工作Pos值大的赋给插单订单工作;当α=αL时,若jk1和jk2均为原工作或均为插单订单工作,将两个工作中大的Pos值赋给总时差小的工作,否则将两个工作Pos值大的赋给原工作;当α=αG时,将两个工作中大的Pos值赋给总时差小的工作;

S405g、把k+1赋值给k,判断k≤K是否成立,若成立则返回步骤S405e,否则执行步骤S405h;K为冲突源的个数;

S405h、把l+1赋值给l,判断l≤W是否成立,若成立则返回步骤S405a;否则执行步骤S406;

所述调度规则1为:

第1步:根据原始调度序列,得到资源的冲突任务集合关键任务集合以及计算每个任务的总时差;

第2步:插单订单任务的资源在范围随机生成,LMAX的项目的任务的资源在范围内随机生成,其他任务的资源在范围内生成;其中,为工作j可使用的资源集合的数目;

第3步:任意从资源的任务冲突集合内选取两个任务,根据任务所属的订单的等级交换pos值,等级较高的任务得到较大的pos值,若任务等级相同,则按照任务的总时差排序,总时差较小的任务得到较大的pos值;

所述调度规则2为:

第1步:根据原始调度序列,得到资源的冲突任务集合关键任务集合以及计算每个任务的总时差;

第2步:所有任务的资源在范围内随机生成;

第3步:任意从资源的任务冲突集合内选取两个任务,根据任务所属的订单的等级交换pos值,等级较高的任务得到较大的pos值,若任务等级相同,则按照任务的总时差排序,总时差较小的任务得到较大的pos值;

所述调度规则3为:

第1步:根据原始调度序列,得到资源的冲突任务集合关键任务集合以及计算每个任务的总时差;

第2步:插单订单任务的资源在范围随机生成,LMAX的项目的任务的资源在范围内随机生成,其他任务的资源在范围内生成;其中,和对和向上取整;

第3步:任意从资源的任务冲突集合内选取两个任务,根据任务所属的订单的等级交换pos值,等级较高的任务得到较大的pos值,若任务等级相同,则按照任务的总时差排序,总时差较小的任务得到较大的pos值;

所述调度规则4为:

第1步:根据原始调度序列,得到资源的冲突任务集合关键任务集合以及计算每个任务的总时差;

第2步:LMIN的项目的任务的资源在范围随机生成,LMAX的项目的任务的资源在范围内随机生成,其他任务的资源在范围内生成;其中,和对和向上取整;

第3步:任意从资源的任务冲突集合内选取两个任务,根据任务所属的订单的等级交换pos值,等级较高的任务得到较大的pos值,若任务等级相同,则按照任务的总时差排序,总时差较小的任务得到较大的pos值;

所述调度规则5为:

第1步:根据原始调度序列,得到资源的冲突任务集合关键任务集合以及计算每个任务的总时差;

第2步:LMIN的项目的任务的资源在范围随机生成,新订单的任务的资源在范围内随机生成,其他任务的资源在范围内生成;其中,和对和向上取整;

第3步:任意从资源的任务冲突集合内选取两个任务,根据任务所属的订单的等级交换pos值,等级较高的任务得到较大的pos值,若任务等级相同,则按照任务的总时差排序,总时差较小的任务得到较大的pos值;

所述步骤S406具体包括:

S406a、定义变量p=1;

S406b、阶段p存在一个不完全计划集合Sp和一个满足紧前关系约束的可行工作集合Dp

S406c、找出满足紧前关系约束的可行工作集合Dp

S406d、选出Dp中pos值最大的一个工作j,找出工作j的紧前工作集合为Prev(j),紧后工作集合为Next(j);

S406e、工作j的开始时间为BTj,结束时间为ETj,其中BTj=max{max{Prev(ETj)},UTk},ETj=BTj+tjk,tjk=Tj/ck,max{Prev(ETj)}为该工作所有紧前工作的完成时间ETj的最大值,UTk为该工作资源可用时间的最早可行时间,Tj为完成该工作的基础时间,ck为资源k的能力值;

S406f、将该工作移除Dp,加入到Sp中;

S406g、把p+1赋值给p,若p≤N+M成立,执行步骤S406b;否则执行步骤S406h;

S406h、当p=N+M时,得到各个工作的完成时间集合ET,ET={ET1,...,ETN+M},选出其中最大的元素,并把该元素赋值给Tmax,即Tmax=max ET,得到各个插单订单工作的完成时间选出其中最大的元素,并把该元素赋值给T2max,即T2max=maxET2

S406i、定义变量f,f=Tmax+max{0,T2max-T2},其中T2表示插单订单的交货时间,把f作为个体的适应度值。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110310620.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top