1.一种基于水波优化‑禁忌搜索的智能仓库AGV作业优化调度方法,其特征在于,所述方法包括以下步骤:步骤1,输入智能AGV的拣货作业数据集,对其进行解析得到仓库规模、拣货量、AGV数量等信息;
步骤2,使用网格法构建仓库环境模型,即基于仓库入口坐标建立坐标系,存储位置皆位于网格交叉点;
步骤3,随机生成一组初始解种群P,种群中每个个体为货物分配的简易型水波优化主算法的解X,表示所有货物的分配情况,X使用m×n维0‑1向量来表示;
步骤4,基于初始种群中生成的每个解,使用禁忌搜索子算法为每个AGV规划拣货序列;
步骤5,对于种群中的每个解,使用避碰策略为所有AGV规划无冲突拣货路线;
步骤6,计算种群中每个解X的适应度函数值;
步骤7,使用简易型水波优化主算法来进化主算法的解;包括以下步骤:步骤7.1,对于种群P中每个解X,执行以下操作:步骤7.1.1,对解X执行传播操作,即随机执行r次基于比特反转的局部搜索以生成新解X′,其中r=rand(1,λX),λX为解X的波长;
*
步骤7.1.2,对每个新找到的最优解X执行碎浪操作,即对其进行邻域搜索以生成k个邻域解,此处也使用碎浪操作中的局部搜索来进行邻域搜索,另外,k的取值如下表示:其中,n为货物数量,kmax为一个预定义参数,ε为一个避免除以零的极小正整数;
并且对传播算子和碎浪算子中的局部搜索和邻域搜索操作做出了修改,修改后的搜索操作基于比特反转,每次随机在解X中选取一个元素xji,1≤j≤m,1≤i≤n,将其值修改为xji=1‑xji,再在X中随机选择一个元素xj′i,j≠j′,若其值与yji原始的值相反,则将其值修改为xj′i=1‑xj′i;
*
步骤7.1.3,更新最优解X;
步骤7.2,更新种群规模,若种群规模减少,则移除种群中最差解;
该种群缩减策略表示为:
其中g和gmax分别为当前和最大允许迭代次数,而NPmax和NPmin分别是最大和最小种群数,种群规模NP通过迭代地删除当前最差解而从NPmax减小到NPmin;
步骤8,若终止条件已满足,则返回所有AGV最大完成时间,算法结束,否则返回步骤4。
2.如权利要求1所述的一种基于水波优化‑禁忌搜索的智能仓库AGV作业优化调度方法,其特征在于,所述步骤4中,构建过程如下:步骤4.1,基于X为每个子问题派生实例,即确定分配给每个AGV的货物;
步骤4.2,设置空禁忌表tabu,设置禁忌长度TabuLen;
步骤4.3,使用贪心算法为AGV生成一条拣货路径作为初始解y;
步骤4.4,若已满足终止条件,则返回最优拣货路线,算法结束;
步骤4.5,在初始解y中随机选一个点作为禁忌对象;
步骤4.6,对y执行邻域搜索,使用最好改进解优先策略来更新最优候选解,生成NbSize个新的解,并更新最佳候选解y′和最佳移动dbest;
步骤4.7,若最终的最佳候选解y′优于y或 执行以下步骤:步骤4.7.1,将dbest加入tabu末尾;
步骤4.7.2,若tabu.length>TabuLen,移除最早加入tabu的禁忌对象;
步骤4.7.3,使用y′来更新y;
* *
步骤4.8,若y优于当前全局最优解y,使用y来更新y。
3.如权利要求1或2所述的一种基于水波优化‑禁忌搜索的智能仓库AGV作业优化调度方法,其特征在于,所述步骤5中,对于种群中的每个解,使用避碰策略为所有AGV规划无冲突拣货路线,包括以下步骤:步骤5.1,使用行优先row‑first的方法生成所有AGV的详细路线集S;
步骤5.2,找出所有发生碰撞的点,即AGV所处位置和时间都发生冲突的点,并将这些点按照时间升序排序;
步骤5.3,对于每个碰撞点c及在此处碰撞的两个AGV,执行以下步骤:步骤5.3.1,根据两个AGV最近目标点,按照以下规则选一个AGV作为b:
1)目标点位于同列,选择目标点行数较大的AGV作为b;
2)目标点位于同行,随机选择一个AGV作为b;
3)否则,选择目标点所在列较小的AGV作为b;
步骤5.3.2,令 为b的详细路径中在c之前且距c最近的路口;
步骤5.3.3,若b在 处改采用column‑first方式行驶不会在下一点发生碰撞,则替换原路径片段,更新b的详细路径;
步骤5.3.4,否则继续回溯上一个路口,判断是否可通过column‑first方式更新路径片段,若最终 回溯到b的起始点p还是会发生碰撞,则不做更改备用路线操作,而是选择两个AGV中拣货完成时间较小的一个等待另一个通过后再继续作业,并更新该AGV的拣货完成时间。
4.如权利要求1或2所述的一种基于水波优化‑禁忌搜索的智能仓库AGV作业优化调度方法,其特征在于,所述步骤6中,计算种群中每个解X的适应度函数值,具体包括以下步骤:步骤6.1,计算每个AGV的最大拣货完成时间Tj,其中包括该AGV的拣货行驶时间及取货时间;
步骤6.2,计算解X的适应度函数值,对于每个AGV,分配给它的货物总需求量需满足其容量约束,所以在计算每个解的适应度时,在编码中将约束违规情况加入了目标函数,定义为:其中,Tj为第j个AGV的最大拣货完成时间,而P是一个非常大的正整数,用作约束容量违规情况,xji表示第i个货物是否分配给第j个AGV,qi为第i个货物的需求量,Q为AGV的容量。