1.一种用于船舶维修任务调度问题的调度优化方法,其特征在于,包括以下步骤:S1:初始化参数xmax,itmax,采用整数编码方式对问题编码,问题的解表示为V={v1,v2,…,vn},vi表示第i个维修任务被分配至第vi个维修人员,1≤vi≤m,其中,xmax为预设的最大Shaking振动次数,itmax为预设的算法最大运行时间,m表示维修人员的总数量;
0 0
S2:设置it=0,x=1,和x′=1;执行启发式算法得到初始解V ,计算V所对应调度方案0
的服务跨度Cmax(V),服务跨度即最大完工时间;
0 1
S3:对V执行振动操作Shaking(it,itmax,x)得到V;
1 2 2 2
S4:对V执行VNDx′方法得到V ,计算V所对应调度方案的服务跨度Cmax(V);
0 2 2 0
S5:判断服务跨度Cmax(V)与Cmax(V)的大小关系,如果Cmax(V)
2 0
将V赋值给V,否则设置x=x+1和x′=x′+1;
S6:判断x与xmax的大小关系,如果x>xmax,则设置x=1,否则x不作调整,直接执行步骤S7;
S7:判断x′是否大于4,如果x′>4,则设置x′=1,否则x′不做调整,直接执行步骤S8;
S8:设置当前算法运行时间it=CPUtime(),判断it与itmax的大小关系,如果it≤itmax,则返回步骤S3,否则直接执行步骤S9,其中,CPUtime()表示取当前算法已经运行的时间;
0
S9:执行下界求解算法,输出V和问题的下界LB。
2.根据权利要求1所述的一种用于船舶维修任务调度问题的调度优化方法,其特征在于:在所述步骤S2或步骤S4中,调度方案服务跨度计算和调度机制具体包括以下步骤:S201:将维修任务按照编码V={v1,v2,…,vn}分配至维修人员;
S202:对于每个维修人员的每个维修任务,计算排序值f[j],k=d[j],k+2T[j],k+bT[j],k,其中d[j],k,表示第k个维修人员面临的第j个维修任务的基本所需时间,T[j],k表示第k个维修人员面临的第j个维修任务到备件中心所需的时间;
S203:对于每个维修人员,将其所分配到的维修任务按照f[j],k=d[j],k+2T[j],k+bT[j],k非减序排序,然后计算每个维修人员的完工时间S204:输出Cmax(V)=max{Ck}和每个维修人员执行维修任务的顺序,其中max{Ck}表示取Ck中的最大值1≤k≤m。
3.根据权利要求2所述的一种用于船舶维修任务调度问题的调度优化方法,其特征在于:在所述步骤S2中,启发式算法具体包括以下步骤:S211:将所有维修任务按照fi=di+2Ti+bTi的非减序排序;
S212:设置i=1;
S213:将第i个工件分配至当前完工时间最小的维修人员处,然后执行步骤S2或S4中调度方案服务跨度计算和调度机制更新每个维修人员的完工时间Ck;
S214:设置i=i+1,如果i≤n,n表示船舶维修任务总数量,返回步骤S213,否则,输出维修任务分配方案并结束运行。
4.根据权利要求3所述的一种用于船舶维修任务调度问题的调度优化方法,其特征在于:在所述步骤S3中,振动操作Shaking(it,itmax,x)包括以下步骤:S31:设置x1=1;
S32:产生0到1之间的一个随机数x2;
0 1
S33:如果 对输入的解向量V执行RTNS得到新的解向量V ;
0 1
S34:如果 对输入的解向量V执行RINS得到新的解向量V ;
0 1
S35:如果 对输入的解向量V执行RSNS得到新的解向量V ;
1
S36:设置x1=x1+1;如果x1≤x,则执行步骤S32,否则,输出V并结束运行。
5.根据权利要求4所述的一种用于船舶维修任务调度问题的调度优化方法,其特征在于:在所述步骤S4中,当x′=1时,VNDx′方法具体包括以下步骤:S401:设置x1=1;
1 2
S402:如果x1=1,对输入的解向量V执行翻转算子RTNS得到新的解向量V;
1 2
S403:如果x1=2,对输入的解向量V执行插入算子RINS得到新的解向量V;
1 2
S404:如果x1=3,对输入的解向量V执行交换算子RSNS得到新的解向量V;
2 2
S405:利用步骤S2或S4中调度方案服务跨度计算和调度机制计算Cmax(V),若Cmax(V)<
1 2 1
Cmax(V),设置x1=1并将V赋值给V,否则,令x1=x1+1;
S406:若x1≤3,则返回步骤S402,否则,输出V并结束运行;
当x′=2时,VNDx′方法具体包括以下步骤:S411:设置x1=1;
1 2
S412:如果x1=1,对输入的解向量V执行插入算子RINS得到新的解向量V;
1 2
S413:如果x1=2,对输入的解向量V执行翻转算子RTNS得到新的解向量V;
1 2
S414:如果x1=3,对输入的解向量V执行交换算子RSNS得到新的解向量V;
2 2
S415:利用步骤S2或S4中调度方案服务跨度计算和调度机制计算Cmax(V),若Cmax(V)<
1 2 1
Cmax(V),设置x1=1并将V赋值给V,否则,令x1=x1+1;
1
S416:若x1≤3,则返回步骤S412,否则,输出V并结束运行;
当x′=3时,VNDx′方法具体包括以下步骤:S421:设置x1=1;
1 2
S422:如果x1=1,对输入的解向量V执行翻转算子RTNS得到新的解向量V;
2
S423:如果x1=2,对输入的解向量V执行交换算子RSNS得到新的解向量V;
2
S424:如果x1=3,对输入的解向量V执行插入算子RINS得到新的解向量V;
2 2
S425:利用步骤S2或S4中调度方案服务跨度计算和调度机制计算Cmax(V),若Cmax(V)<
1 2 1
Cmax(V),设置x1=1并将V赋值给V,否则,令x1=x1+1;
1
S426:若x1≤3,则返回步骤S422,否则,输出V并结束运行;
当x′=4时,VNDx′方法具体包括以下步骤:S431:设置x1=1;
1 2
S432:如果x1=1,对输入的解向量V执行交换算子RSNS得到新的解向量V;
1 2
S433:如果x1=2,对输入的解向量V执行插入算子RINS得到新的解向量V;
1 2
S434:如果x1=3,对输入的解向量V执行翻转算子RTNS得到新的解向量V;
2 2
S435:利用步骤S2或S4中调度方案服务跨度计算和调度机制计算Cmax(V),若Cmax(V)<
1 2 1
Cmax(V),设置x1=1并将V赋值给V,否则,令x1=x1+1;
1
S436:若x1≤3,则返回步骤S432,否则,输出V并结束运行。
6.根据权利要求5所述的一种用于船舶维修任务调度问题的调度优化方法,其特征在于:所述翻转算子RTNS的执行过程包括以下步骤:A1:随机产生1到n之间的随机数x1和x2,其中x1+1
1
A2:对于输入解向量V ={v1,v2,…,vn},将 和 之间的序列倒序后重新排列,输出2
新的解向量V。
7.根据权利要求5所述的一种用于船舶维修任务调度问题的调度优化方法,其特征在于:所述插入算子RINS的执行过程包括以下步骤:B1:随机产生1到n之间的随机数x1和x2,其中x1
1 1
B2:对于输入解向量V={v1,v2,…,vn},将 插入到 之前,得到重新排列的V ,输出2
新的解向量V。
8.根据权利要求5所述的一种用于船舶维修任务调度问题的调度优化方法,其特征在于:所述交换算子RSNS的执行过程包括以下步骤:C1:随机产生1到n之间的随机数x1和x2,其中x1
1
C2:将输入解向量V={v1,v2,…,vn}中 和 的值互换后重新排列,输出新的解向量2
V。
9.根据权利要求5所述的一种用于船舶维修任务调度问题的调度优化方法,其特征在于:在所述步骤S9中,下界求解算法具体包括以下步骤:S91:设置k=1和i=1;
S92:对于每个维修任务,计算fi=di+2Ti+bTi,其中,Ti表示第i个维修任务到备件仓库的交通时间,di表示第i个维修任务的基本所需时间,b表示维修任务的恶化系数;
S93:将维修任务按照fi非减序重新排序;
S94:将第i个维修任务指派给第k个维修人员,设置k=k+1和i=i+1;
S95:如果k≤m且i≤n,则返回步骤4,否则执行步骤S96;
S96:如果k>m且i≤n,则设置k=1并返回步骤S94,否则执行步骤S97;
S97:如果i>n,则计算 输出下界表示不大于 的最大整数。