1.一种基于变邻域NSGA-Ⅱ算法的多目标货位优化方法,其特征在于,包括:步骤1:货物和仓库参数确定:设定仓库货物属性,确定货架、堆垛机和传送带参数;设出入库口位置坐标为(0,0,0);则(x,y,z)表示货物放置在第x排y列z层的货位上;
步骤2:建立货位分配多目标优化的数学模型:以出入库效率、货架整体重心、同类货物间距离、巷道堆垛机工作量分别建立目标模型;
2.1出入库效率模型
式中,x表示仓库第x排货架,x={1,2,3….X};y表示仓库第y列货架,y={1,2,3….Y};
z表示仓库第z层货架,z={1,2,3….Z};pji表示第i类货物中第j个货物的出入库频率;
(xji,yji,zji)表示第i类货物中第j个货物的货位坐标;t(xji,yji,zji)表示第i类货物中第j个货物从仓库出口到货位的时间,其计算公式如下:式中,vx表示传送带沿水平方向的平均速度;vy表示堆垛机沿巷道方向的平均速度;vz表示堆垛机沿竖直方向的平均速度;L0代表巷道宽度;L代表货位宽度;
2.2货架整体重心模型
式中,mji代表第i类货物中第j个货物的重量;
2.3同类货物间距离模型
用同类货物到该类货物位置中心的距离差之和作为同类货物间的距离,其计算公式如下:式中,Ai代表第i类货物的中心坐标的横坐标,Bi代表第i类货物的中心坐标的纵坐标,Ci代表第i类货物的中心坐标的竖坐标,其计算公式如下:式中,J代表第i类货物的总数;
2.4巷道堆垛机工作量均衡模型
巷道堆垛机工作量均衡用巷道两侧货架上堆放货物总数来反映该巷道堆垛机的工作量,为了使各条巷道堆垛机工作量均衡将同类货物均匀分布到各条巷道两侧的货架上,由此可以使得各巷道堆垛机工作量均衡且货物的分布也更加均匀,其公式如下:式中:h代表巷道序号;H代表巷道总数;h(xji,yji,zji)表示第i类货物中第j个货物在不在巷道h中,如果i类货物中第j个货物在巷道h中则h(xji,yji,zji)=1,否则h(xji,yji,zji)=
0;
2.5将上述目标模型函数集合成多目标优化函数,具体如下:min[f1(x,y,z),f2(x,y,z),f3(x,y,z),f4(x,y,z)] (7)式中:f1(x,y,z)表示出入库效率;f2(x,y,z)货架整体重心;f3(x,y,z)同类货物间距离;f4(x,y,z)巷道堆垛机工作量;约束条件为:
1≤h≤H且h为正整数 (9)式中:G(x)max代表第x排货架的最大承重;式(8)表示仓库货架的行数、列数、层数不能超过其最大值;式(9)表示仓库巷道数不能超过最大巷道数H;式(10)表示货架x的存放货物的总重量不能超过货架最大承重;
步骤3:变邻域NSGA-II算法优化求解模型,得出最优货位分配方案:变邻域NSGA-Ⅱ算法步骤如下:
3.1初始化参数:设置种群大小为PopSize,交叉概率为Pc,变异概率为Pm,最大迭代次数为Gmax,最优前端个体系数PF,邻域初始种群大小VNSize,变邻域最大循环次数VNS_Gmax;
3.2初始化种群:采用实数编码随机生成初始种群Initial_Pop;
3.3目标函数值的计算:根据公式(1)、(3)、(4)、(6)计算四个目标函数值f1、f2、f3、f4;
3.4非支配排序和拥挤度计算:
3.4.1非支配排序:根据目标函数值进行个体序值的计算;
3.4.2拥挤距离计算:对四个目标分别计算相应的拥挤距离,再将四个目标函数的拥挤距离相加得到最后的拥挤距离;
3.5遗传操作:
3.5.1选择操作:锦标赛选择,根据序值和拥挤度进行选择操作,对于种群中的两个随机个体,当序值不同时,序值小的个体将被选中;当序值相同时,拥挤距离大的个体将被选中;
3.5.2交叉:单点交叉,并运用同位基因的思想进行交叉前的处理;
3.5.3变异:为避免在前两个操作中优秀基因的丢失,选择随机性更大的对调基因位的变异方式;
3.6变领域操作:从变异后种群中随机选部分个体进行变邻域操作,变邻域操作流程如下:
3.6.1对初始邻域种群进行邻域操作;
3.6.2将变邻域产生的种群与初始邻域种群进行合并;
3.6.3对合并后的种群进行选择得到新一代邻域种群;
3.6.4判断是否满足邻域终止条件,满足则结束变邻域操作得到变邻域解集,不满足则返回3.6.1继续执行变邻域操作直到满足邻域终止条件;
3.7种群合并:将变领域搜索产生的个体与变异之后未进行变邻域操作的个体合并再与初始父种群合并;
3.8生成新种群:根据父代种群规模对合并后的种群进行修剪生成新的父代种群;
3.9判断是否达到终止条件,若满足则结束,否则,转去执行步骤3.5。
2.根据权利要求1所述的一种基于变邻域NSGA-Ⅱ算法的多目标货位优化方法,其特征在于,所述货物属性包括货物的类型、重量和出入库频率。
3.根据权利要求1所述的一种基于变邻域NSGA-Ⅱ算法的多目标货位优化方法,其特征在于,所述变邻域操作包括三种邻域结构,分别为:邻域1:前插入操作,从染色体基因序列中随机选择两个不同的基因位点Gen(a)和Gen(b)(b>a),在基因位Gen(a)之前插入Gen(b);
领域2:后插入操作,从染色体基因序列中随机选择两个不同的基因位点Gen(a)和Gen(b)(b>a),在基因位Gen(b)之前插入Gen(a);
领域3:基因片段倒序,从染色体基因序列中随机选择两个不同的基因位点Gen(a)和Gen(b)(b>a),然后将基因片段从Gen(a)到Gen(b)进行倒序操作。