下面的链接是精华版思路,亮点是对第六问的探讨。
高度概括一下:第一问曼哈顿,第二问用免疫,三问增加任务单,四问增加拣货员,五问改变复核台,六问亮点来探讨~ 有点皮
MathorCup C题 仓内拣货优化问题mp.weixin.qq.com————————————————————————
编程实现时的思路,就在这里啦~
https://zhuanlan.zhihu.com/p/143159905zhuanlan.zhihu.com————————————————————————
以下是赛题思路分析
背景:
接到订单到商品出库的流程,定位 组单 拣货 复核 打包。
定位:仓库有货架,每货架有多个货格,商品摆放在货格中,且每个货格最多摆放一种商品,商品可以摆放在多个货格。订单下达仓库后,定位操作,确定商品下架的货格和每个货格下架的商品数量。
组单:单个客户订单商品数量少,对于中小件商品仓库,需要将多个客户的订单合并,构成任务单,这就是组单操作。
拣货:拣货员在某复核台领取拣货车及任务单,根据推荐顺序下架任务单中商品。下架完毕后,拣货员将拣货车送往某复核台,随后拣货员开始下一次拣货。
备注:
(1) 拣货员开始和结束复核台可以不一致。
(2) 一个拣货员负责对多个任务单时,每次只能拣一个任务单的商品。同一任务单,货格访问顺序不同,行走距离也有差异。
(3) 拣货员的行走速度为 1.5m/s,商品下架过程,对任意一个货格,若下架商品数量小于 3 件,每件完成下架花费 5 秒,否则每件花费 4 秒。多人同时在一个货格拣货,不考虑等待的时间(感觉与问题六的畅销品所在货架可能拥挤,反而降低拣货效率有点冲突)。
复核和打包:复核台进行复核,然后将商品打包。
备注:
(1) 只有复核台正常工作时,才可以进行复核打包操作,每个订单复核和打包花费30 秒。
(2) 拣货车先送到复核台后,复核台才能对该任务单中商品进行复核和打包。
(3) 若一个复核台完成该复核台所有任务单的复核和打包,没有新任务前,该复核台将处于空闲状态。从0 时刻到 TOTAL_TIME 时刻,若一个复核台总空闲时间为 IDLE_TIME,则该复核台利用率=1-IDLE_TIME/TOTAL_TIME。多人同时到达一个复核台时,需要考虑等待的时间。
注:当一个人有多个任务时,只能一个一个任务完成,不能在完成一个任务过程中拣另一个任务的货。
问题 1:按照图中距离标示,设计一种计算 3000 个货格和 13 个复核台总共 3013 个元素之间距离的方法。
图 2 给出拣货员在仓内路线示例(L1-L7)。
当拣货员在仓库中拣货时,需要在货格之间、货格与复核台之间、复核台与复核台之间行走。由于这些行走通常要绕过障碍物,不能直接采用坐标计算欧几里得距离。
(附件中货架坐标可理解为第一个货格左下角坐标,如 S001 的(x,y)表示货格 S00101 的坐标。其他相类似。复核台坐标也理解为左下角坐标。 )
思路: 计算每个货格和复核台到其他货格与复核台的距离是这道题的基础。之后的解题也需要这个结果,计算出来后存储起来,方便之后调用。
问题 2:请给 P 规划理想的拣货路线,包括货格访问顺序、返回的复核台,计算完成出库花费的时间。
假设所有复核台正常工作,任务单 T0001 等待拣货,拣货员 P在复核台 FH10 领取了任务单 T0001。完成出库花费的时间(拣货员拣货开始到所有任务复核打包完成花费的时间)
思路: 已经确定1个任务单和1个复核台,1个拣货员,将任务单中的每一个商品作为图中的一个点,用在问题一中计算的每个商品所在货格到其他商品货格之间的距离作为两点之间的连线。就把问题二作为了一个图论的遍历最短路径问题。
问题 3:给 P 指定任务领取顺序,规划理想的拣货路线,使得这些任务尽快出库。请计算完成出库需要花费的时间和每个复核台利用率。
假设 2 个复核台 (FH03,FH11)正常工作,5 个任务单(T0002-T0006)等待拣货,继续由拣货员 P 负责拣货, P 初始位置为 FH03。
思路: 已经确定5个任务单和2个复核台,1个拣货员。先同问题二,把五个任务单的最短遍历求出,计算时间。然后使用排队理论,如果总等待时间最短,则越短的任务单应该越优先。然后计算出库总花费时间和复核台利用率。
问题 4:给每个拣货员分配任务单、 起始拣货复核台,并分别规划理想的拣货路线,使得 49 个任务单尽快完成出库,并计算完成出库需要花费的时间和每个复核台利用率。
假设 4 个复核台(FH01,FH03,FH10,FH12)正常工作,49个任务单(T0001-T0049)等待拣货,9 个拣货员(P1-P9)负责拣货。
思路: 在问题二的基础上最大的改变是提高了拣货员,那么会造成的影响是可能存在复核台等待的问题。不过不影响拣货员拣货。 在此我们可以结合题意,假设领拣货车与复核台进行复合可以同时进行。因为“领拣货车及任务单,领取时间不计”。 然后同问题三,越短的任务单越优先,计算出库总花费时间和复核台利用率。
问题 5:在问题 4 中,有 4 个复核台(FH01,FH03,FH10,FH12)正常工作,请评估增加一个正常工作的复核台对出库时间的影响。
思路: 我们一共有13个复核台,分别计算增加其他9个复核台对最终出库时间的影响。 使用一个for循环,计算一下五个复核台的情况即可。
问题 6:对于仓内商品摆放问题,你有什么建议?
商品在货架中的摆放位置,会影响拣货效率。若将畅销品放置在离复核台较近的位置,拣货员行走距离相应减少,但畅销品所在货架可能拥挤,反而降低拣货效率。
思路: 问题六没有要求建模,只要求给商品摆放的意见,那么根据信息论的变长最优编码——“越常用的符号用越短的编码表示”的思想,越畅销也就是越需要经常取货的商品,需要离复核台越短。
我只提几种意见,我们可以考虑的建议包括:
将畅销排名最靠前的n种商品依照排序依次放在离复核台最近的货格上。
计算每个货架到复核台的平均距离,把商品依照畅销排名与每个货格的平均距离一一匹配。