1.基于混合整数规划模型的多巷道自动化立体仓库的集成调度方法,包括以下步骤:步骤1:托盘/订单到达,转到步骤2;无托盘/订单到达,转到步骤5;
步骤1.1系统参数设置初始化,仓库中货位初始分配按照本发明方法进行;
步骤1.2托盘/订单到达,将托盘/订单信息录入系统中,并更新系统中托盘/订单信息,in_prduct[i1,n1;…i,n]/order[i,n,d;…,i,n,d],其中,i为产品号,表示产品的名称,n表示产品到达的托盘数量,d为订单号,表示该产品所在的订单;
步骤1.3无托盘/订单到达,转到步骤5;
步骤2:对到达的托盘产品进行基于K-Medoids聚类算法的相关性分析,对到达的托盘产品进行聚类分析,找到托盘产品所在的类簇,求出初步货位分配范围,其中基于K-Medoids聚类算法的相关性分析实施过程为:步骤2.1初始化聚类中心;
将进库托盘产品作为初始化中心点,即初始化聚类中心点集T=[i1,…,i];
步骤2.2构造初始类簇kj:
步骤2.2.1根据式(2)计算数据集合中每个数据对象j的距离d(j)=Sab;
步骤2.2.1.1相关性系数采用通过对历史订单数据进行采样分析求得相关性系数。定义不同种类产品a,d之间的相似系数:式中:Sad为a和d之间的相似系数,a和d两种产品出现在同一订单的次数之和越大,两中产品之间的相关性越强(为避免不相关的产品之间因为偶然原因表示出来的相关性,当Sad≤0.05时令其取0,同种产品相似性最强为1);
步骤2.2.1.2如果两个订单所包含的产品位于同一个巷道上,那么这两个订单具有相似性,两个订单所在的共同货架数越多则相似性越大,应用以上的订单信息进行计算相似性系数,将所有订单两两组对,定义产品a与订单b之间的相似系数:步骤2.2.2依据d(j)的值将数据集F中的样本升序排列,得到样本集F';
步骤2.2.3根据距离最近原则,将F中样本分配给T的每一个聚类中心,得到初始类簇划分kj;
步骤2.2.4计算初始划分的聚类绝对值差之和;
步骤2.3更新类簇中心点;
步骤2.3.1计算每一类簇的新中心点,使新中心点到其所在类簇其他数据的距离总和最小;
步骤2.3.2更新所有类簇的中心点为新中心点;
步骤2.4重新分配数据;
步骤2.4.1依据距离最近原则,将数据进行重新分配,使每个样本分配到与其距离最近的类簇中心;
步骤2.4.2计算当前划分的聚类绝对值差之和,若聚类绝对值差之和没有变化,转步骤
2.5;否则转步骤2.3继续执行;
步骤2.5根据托盘产品所在的类簇,求出初步货位分配范围并输出货位表,货位数目为n+D,其中,n为进库托盘产品的数量,D为常数,且步骤3:属于当天出库订单的产品,直接出库,转到步骤6(此操作最多可执行2次),否则,转到步骤4;
其中,属于当天出库订单的产品,直接出库,具体执行如下:步骤3.1判断是否执行过此操作,若正在执行此操作的订单不超过两次,继续,否则,转到步骤6;
步骤3.2检测到达的托盘属于当天出库的订单,将到达的托盘数量与订单该产品的数量对比;
步骤3.2.1到达的托盘数量比订单该产品的数量少,托盘直接出库,继续拣选到订单中该产品的数量,将该订单提前进行拣选;
步骤3.2.2到达的托盘数量比订单该产品的数量多,将订单该产品的数量的托盘直接出库,比订单多余的拣货进库,将该订单提前进行拣选;
步骤3.2.2到达的托盘数量等于订单该产品的数量,托盘直接出库,比订单多余的拣货进库,将该订单提前进行拣选;
步骤4:基于作业均衡的堆垛机任务分配,
其中,作业均衡的堆垛机任务分配过程为:
步骤4.1判断到达托盘是否属于某唯一聚簇,是则分配给该聚簇所在的巷道的堆垛机进行拣货入库作业,转到步骤4.3,否则转到步骤4.2;
步骤4.2最小化堆垛机作业时间的不均衡程度进行堆垛机分配如下:其中ds=ds,op+ds,pq+ds,qo为堆垛机S满足当前托盘上架的作业时间, 0≤α≤1,0≤β≤1为权重系数,且α+β=1,由层次分析法、判断矩阵得出α=0.75,β=0.25;
步骤4.3直到堆垛机任务最优解不在变化,输出当前结果,本次求解结束,否则返回步骤4.1;
步骤5:分配拣选模式,具体步骤如下:
步骤5.1只有托盘到达无订单到达时,只执行拣货进库;
步骤5.2只有订单达到无托盘到达时,只执行拣货出库;
步骤5.3订单与托盘都无到达时,进入空闲移库操作,将距离出库口较远的托盘移动至进出库口;
步骤5.4订单与托盘同时到达时,根据货位分配与作业调度分配执行复合指令操作,有两种情况:(1)不符合特殊情况移库规则,一个循环周期执行一个拣货进库操作一个拣货出库操作;
(2)符合特殊情况移库规则,一个循环周期执行一个拣货进库操作一个移库操作;
步骤6货位分配与作业调度分配;
步骤6.1特殊情况下移库规则;
步骤6.1.1当库内移动完全在停驻点回程路线上,即在同一货架,且进行库内移动的点x库内移动
步骤6.1.2(x,y,z)库内移动-(x,y,z)停驻点<=某固定值<(x,y,z)拣货出库-(x,y,z)停驻点,为求总完成订单时间最短,即当下一要出库商品距离大于后一订单或后几个订单单元产品距离时,选择库内移动。移库限制单位为一货位,即移库限制64表示为一当前货位为中心半径为
8个货位的圆;
步骤6.1.3空闲时移库原则,无拣选任务时堆垛机将远离进出口的托盘移动到靠近进出口的位置;考虑到仓库的拣选能力,限定拣选订单个数不超过堆垛机拣选能力,每个堆垛机同时拣选订单数不超过2个;
步骤6.2运用混合粒子群算法求解整数规划模型;
步骤6.2.1种群初始化:根据仓库调度问题规模设定算法参数,混合粒子群进化次数,种群规模,粒子个体进行编码;
步骤6.2.2适应度函数计算:粒子适应度值表示为总拣选作业时间,计算公式为式(5)中,S为堆垛机的数量,i为拣选周期,di,s为第i次拣选堆垛机s的拣选时间。计算求出每个粒子所对应的目标函数值,并且将距离最大的解选做第i个粒子的全局最优位置;
步骤6.2.3更新粒子;
步骤6.2.4个体最优交叉:个体通过和个体最优粒子进行交叉来更新,得到较好的个体;
步骤6.2.5群体最优交叉:个体通过和群体最优粒子进行交叉来更新,得到较好的个体;
步骤6.2.6粒子变异;
选择动态变异,加快粒子收敛速度。变异方法动态变异概率的目标函数为式(6)中,Pm是动态变异概论,k是迭代次数,MaxIt是最大迭代次数。对新得到的个体采用保留优秀个体策略,只有当新粒子适应度值好于旧粒子时才更新粒子;
步骤6.2.7选择全局最优位置的粒子,并依照粒子最优位置的更新过程更新粒子的局部最优位置;如果达到最大迭代次数,则输出EA,得到Pareto最优解,如果不是,转步骤
6.2.2;
步骤7:直到最优解不在变化,生成堆垛机作业清单,否则重复步骤5-步骤7。