前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >“华中杯”A题

“华中杯”A题

作者头像
云深无际
发布2022-06-15 15:19:05
4090
发布2022-06-15 15:19:05
举报
文章被收录于专栏:云深之无迹

我已经写过了,一点思路->第14届“华中杯”数学建模思路, 现在对A题做一些

讲解和代码的编写,抛砖引玉吧。

首先使用一下WPS转换一下文件的格式,CSV是我的最爱

我这里使用的Python,依赖Numpy和Pandas两个库:

可以方便的做一些数据的转换

转换成比较纯粹的格式,然后换个名字,以上就转换结果

使用numpy读取一下

自带的库这个也ok,不过效率不高,你可以感觉到的哪种慢

这就是结果,数据的规模也有了,一共2W+。

这个是它的意思,我们先关注里面不变的量,比如一共有多少货物种类。

也可以这样的去更换头,源文件没有做更换

对文件进行一下概况的计算

可以就关注某一个表头的项目

这里就是写了一个你的订单10需要的货物及其种类

数据都满足的是4位,如果是100,那就是0100,

可以验证一下~

[1]就是0+1=2(我没有算错)就是第二个位置上面,P是种类,后面是数量。

很简单的就是是这样的算出来了一个货物分布的订单和具体的数量,以及总数。

这里要求的是货架数量只有200,也就是种类只有200,也就是说我们不用顾全大局,只要算200以内的就好。

先假设订单数量为T

接着就是比如A的摆放策略就会让N个订单收益,T-N就是现在没有照顾到的

B的策略让M个收益,同样的T-M就是剩下的。

我们的目标就是让T-M最少,让尽可能多的订单被分拣。继续想,订单是由种类和个数制约。

我的策略是这样的,先计算每种货物的个数,那么可以得到,此时的订单里面的哪种货物的数量需要的最多。

一个货物(所需要的数量),也可以得到这个货物要分配的订单:

一个订单是由多个货物主导的,接下来就是从得到的清单。这里就按照我上面的做演示。

记得将索引改变。

得到的数据是这么多,也就是说D0190这个订单需要这么多的货物。

这里注意是要取舍的,要考虑是满足下一级用户的还是说适合工厂的,对于用户来讲是尽可能的拿到货物,但是工厂来说是尽可能地清空货物。举个极端地例子,比如A 30W件货物,B 1件货物都是占用的一样的,所以你要尽可能地要从货物地尾部来分拣。

这里使用绘制一个就从订单1-订单923对应的物品种类数

看下面:

这些地方都是种类特别少地地方.

这里的第一个订单的种类的分布,更加的清晰

注意这里的是要求批次低,这就隐含的要求是尽可能要装到运载极限的的时候。因为题中没有,所以这里你也需要自己标定。

我这里假如是快递的转运,那么就是说全天运转,你就订单数量除以24,取整,这样得到的就是小时转运极限订单。当然你也可以更加的人性化,比如考虑工作时间等。

我的字可太丑了,凑合的看。

选好种类为先,然后计算种类包含的订单,订单内部以数量来排序,算法上面的设计是递归的。

编程时候的便利

尾位置优先,还有计算要按照订单顺序,订单顺序不可以变,但是内部的挑拣顺序可以变。

emmmm写的时候很多细节没有考虑到,但是直播的时候有说:直播录屏

大家可以点击观看。

视频

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档