[发明专利]考虑订单插单的高端装备研制过程多项目重调度方法及系统有效
| 申请号: | 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作为个体的适应度值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110310620.5/1.html,转载请声明来源钻瓜专利网。
- 同类专利
 
- 专利分类
 
G06Q 专门适用于行政、商业、金融、管理、监督或预测目的的数据处理系统或方法;其他类目不包含的专门适用于行政、商业、金融、管理、监督或预测目的的处理系统或方法
G06Q10-00 行政;管理
G06Q10-02 .预定,例如用于门票、服务或事件的
G06Q10-04 .预测或优化,例如线性规划、“旅行商问题”或“下料问题”
G06Q10-06 .资源、工作流、人员或项目管理,例如组织、规划、调度或分配时间、人员或机器资源;企业规划;组织模型
G06Q10-08 .物流,例如仓储、装货、配送或运输;存货或库存管理,例如订货、采购或平衡订单
G06Q10-10 .办公自动化,例如电子邮件或群件的计算机辅助管理





