2022年华中杯数学建模挑战赛A题分拣系统优化问题

news2024/11/22 11:03:47

2022年华中杯数学建模

A 题 分拣系统优化问题

真的有想占便宜的 醉了 几十元让我写论文这是什么选手 想占便宜想疯了么 还要求查重率在10% 一开始说想看看你的A题论文 想学习一下 然后谈完价(几十块钱)之后 需要改成现做一篇独一无二的论文 然后想套路我占便宜 套路是真的深啊 这不就是想占便宜么 还跟我说你这么想我也没办法 我想知道这是什么学校的高手

  某电商公司配送中心的工作流程分为统计汇总、转运上架、按订单分拣、核对打包等步骤。其中,分拣环节操作复杂,耗时较长,其效率是影响配送中心整体性能的关键因素。
  首先,系统统计汇总出当天全部待配送订单所包含的所有货品及相应数量。然后,转运工将这些货品由仓库转运至分拣处,并放置到货架上,等待分拣。上架时,一个货架中仅放置同一种货品。为简化问题,不考虑货架的容积和载重限制,即每个货架能够放置的货品件数没有限制。最后,分拣工按任务单依次分拣出每一个订单包含的货品。例如,某天共有 5 个订单,订单的信息如表 1(原始数据文件格式见附件 1 格式说明)所示。
  表 1:订单信息示例
订单编号    所含货品种类及相应数量
D0001     P0001×2, P0002×1, P0003×1, P0004×1
D0002     P0003×1, P0004×1, P0005×1, P0006×3
D0003     P0001×1, P0003×1, P0005×1, P0007×1
D0004     P0002×1, P0004×1, P0006×1, P0008×3
D0005     P0001×1, P0003×2, P0004×1, P0007×1
  系统统计出这 5 个订单共包含 8 种 26 件货品,分别为 4 件 P0001、2 件 P0002、5 件
P0003、4 件 P0004、2 件 P0005、4 件 P0006、2 件 P0007 和 3 件 P0008。转运工将这些货
品分别放置在 8 个货架上。分拣工根据任务单上的订单信息,依次分拣出每一个订单的货品。
  随着该公司业务量不断增长,未来有可能出现当天待配送订单所含货品种类数大于当前货架数量的情况(假设任何一个订单所含货品种类数均小于货架数量 )。但是,由于受到场地和成本的限制,很难直接增加货架。该公司希望在你们团队的协助下解决该问题,并尝试提高分拣效率。具体解决如下问题。
  1. 设计分批算法:将当日订单分为多个批次。要求每个批次的订单所含货品种类数均不超过 ,且批次越少越好(相应转运次数也越少,效率越高)。针对附件 1 中的订单信息,应用你们的算法,计算当货架数量 时最少的批次数,给出每批订单数量、货品种类数、分批方案等结果,并将完整原始分批方案按指定格式输出到文件result1.csv 中,格式要求见附件 2。
  2. 优化货品摆放位置:确定每一种货品放置在哪一个货架。分拣工拣选货品时,同一订
单所含货品的位置越集中,移动距离越短,拣选效率越高。分拣处简化布局示意图如
图 1。假设所有货架等距排列在一条直线上,按照摆放位置的顺序,货架的序号依次
为1,2,3,…,N ,货品i所在货架的序号为S(i) 。某一订单Qk的拣选距离定义为该订
单中货品所在货架序号的最大值与最小值之差,即:
在这里插入图片描述
  对于给定的某一批分拣任务,请设计货品摆放算法,使得该批分拣任务所有订单的拣选距离总和尽量小。并针对附件 1 的数据,在第 1 问得到的分批结果基础上,考虑拣选距离,设计各批次中每一种货品的摆放位置,给出各批分拣任务的拣选距离总和,以及所有批次全部订单的拣选距离总和,并将完整原始货品摆放方案按指定格式输出到文件 result2.csv 中,格式要求见附件 3。
在这里插入图片描述
  3. 指派分拣任务:按批次将所有订单分配给多个分拣工并行完成分拣任务。假设:
    1) 分拣工在分拣过程中互相不会干扰,即运动路线不会冲突,也可以同时拣选同一货架上的货品。
    2) 一位分拣工同一时间只能处理一个订单,即一位分拣工完成一个订单的分拣工作之后,才能开始下一个订单的分拣工作。
    3) 每位分拣工在自己的分拣任务完成之前,始终匀速运动,忽略从货架上取货所需的时间,忽略订单之间的切换时间,忽略休息时间,且所有分拣工的运动速度相同。
    4) 结合前一个假设,一位分拣工在处理当前订单时,只要经过该订单中某一货品所在货架至少一次,就视为已经拣选到该货品。
    5) 拣选到的货品放入拣货筐中,同一订单的货品放入同一个拣货筐中,不考虑拣货筐容量限制。一个订单的货品全部拣齐后,分拣工将该筐放上传送带,自动转移至核对打包环节,之后可立即原地取用一个新的空的拣货筐。忽略放置拣货筐、取用新筐的时间。
    6) 在每一批分拣任务开始前,每位分拣工领取到自己当前批次的任务单,需要按照任务单上的订单顺序,依次完成所有订单的分拣工作。同一订单中的不同货品不区分拣货顺序,由分拣工按照最优方式决定。
    7) 在每一批分拣任务开始时,所有分拣工位于 1 号货架处,同时由 1 号货架出发,开始当前批次的分拣工作。每位分拣工完成一个订单之后,可以立即开始下一个订单的分拣工作,不需要回到 1 号货架。分拣工在拣选完当前批次自己任务单上所有订单的货品后,回到 1 号货架,完成当前批次任务,休息,等待下一批分拣任务开始。
    8) 假设不考虑货架的几何尺寸,相邻两个货架间的距离均为单位 1,结合上述假设,某一分拣工分拣完成任务单上所有订单所需时间与其运动总距离呈正比。对于给定的某一批分拣任务,且货品摆放位置已知,请设计订单指派算法,将分拣任务分配给n位分拣工,使得能够尽快完成任务,且运动距离尽可能均衡。针对附件 1 的数据,在前两问的基础上,当分拣工人数 时,计算各批次中订单的指派结果及每一位分拣工处理订单的顺序,并将完整原始指派方案按指定格式输出到文件 result3.csv 中,格式要求见附件 4。
    附件 1:订单信息
    格式说明:
    csv 格式,第一行为标题行,每行以英文逗号分隔,共三列:
    ➢ “OrderNo”表示订单编号,D0001、D0002、……、D0923。
    ➢ “ItemNo”表示货品编号,P0001、P0002、……、P1941。
    ➢ “Quantity”表示货品数量。
    以第一行数据为例,“D0001, P0128, 4”表示在订单 D0001 中,包括 4 件货品 P0128。

clear
load item_01.mat item_mat
[a,b]=size(item_mat)
result=zeros(1,a);
P=1
flag=1
flagg=1
while ~isempty(find(result==0))
sigma_kind=[];%此列向量为每一笔订单的商品种类数
for i=1:
sigma_kind(i,1)=sum(item_mat(i,:));
if sigma_kind(i,1)==inf
sigma_kind(i,1)=0;
end
end
f=find(sigma_kind==max(sigma_kind),1);
father=item_mat(f,:);%最多种类的订单向量,将其作为聚类的父点
result(f)=P;
item_mat(find(sigma_kind==max(sigma_kind),1),:)=inf;%防止后续遍历时父点
被选择到
best_order=0;
flag=1; %%%%%%%
while flag==1
best_delta=inf;
for i=1:a
if item_mat(i,1)==inf
continue
end
DIFF=difference(father,item_mat(i,:));
if best_delta>DIFF
best_order=i;
best_delta=DIFF;
end
end
if best_delta==0
result(best_order)=P;
item_mat(best_order,:)=inf;
else
temp_father=father+item_mat(best_order,:);
temp_father(temp_father==2)=1;
if sum(temp_father)<=200
father=temp_father;
result(best_order)=P;
item_mat(best_order,:)=inf;
else
if
(sum(temp_father)>200)||(length(find(item_mat(:,1)==inf))==a)
sum_son(flagg,1)=(sum(father))
flagg=flagg+1;
flag=0;
end
end
end
end
P=P+1
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find(result==65)
function delta=difference(father,son)%用于判断 father 向量与 son 向量的差
异度
together=father+son;
together(together==2)=1;
delta=norm(father-together);
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【R语言绘图】R在气象、水文中数据处理及结果分析、绘图技术

【查看原文】R语言在气象、水文中数据处理及结果分析、绘图实践技术应用 【内容简述】&#xff1a; 一、R简介与 R 在气象水文中的应用 R语言与 R软件简介 R 在各行业的应用 R 与其他语言的比较及其在数据分析与作图上的优势 R 在地学中的应用以及R 在气象水文中的应用 二、…

【react】虚拟DOM的两种创建方式

1、使用js创建虚拟DOM <body><div id"test"></div><!-- 引入react核心库 --><script src"../js/react.development.js"></script><!-- 引入react-dom&#xff0c;用于支持react操作dom --><script src"…

大数据期末课设~基于spark的气象数据处理与分析

目录 一 、项目背景 .......................................... 3 二 、实验环境 .......................................... 3 三 、实验数据来源 ................................... 4 四 、数据获取 .......................................... 5 五 、数据分析 ....…

港科夜闻|2022年香港科大气候适应及复原力大会圆满闭幕,政经领袖研讨香港气候政策与绿色金融发展...

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、2022年香港科大气候适应及复原力大会圆满闭幕&#xff0c;政经领袖研讨香港气候政策与绿色金融发展。该会议由香港科大主办&#xff0c;于12月10日开幕。会议以跨领域的知识及观点交流为方针&#xff0c;凝聚公营及私营部门…

vulnhub serial讲解

环境搭建 下载 https://download.vulnhub.com/serial/serial.zip ​ 你会得到一个这样的文件&#xff0c;这里使用VMware新建一个虚拟机&#xff0c;这里记录比较重要的几部分。 ​ ​ ​ ​ 这里就是使用我们刚才下过来的。 ​ 漏洞过程详解 1.信息收集 netdiscover -i …

[附源码]Node.js计算机毕业设计调查问卷及调查数据统计系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

【论文】Auto-Encoding Variational Bayes

1.预备概念 1.1 后验分布 最大后验&#xff08;Maximum a Posteriori&#xff0c;MAP&#xff09;概率估计详解 【参考文章】https://blog.csdn.net/fq_wallow/article/details/104383057 1.2 重参数 Reparameterization 目的是&#xff1a; 转为公式表达从而实现微分 知乎…

编辑部已成羊村,这几天幸亏有ChatGPT(doge)

梦晨 羿阁 发自 凹非寺量子位 | 公众号 QbitAI坏事了&#xff0c;AI真的来抢饭碗了。还是我的饭碗&#xff01;这两天你们看的推送&#xff0c;有些标题是AI帮忙取的&#xff0c;有些文章甚至由AI完成了主要工作。我呢&#xff1f;我不过是打打下手&#xff0c;加些过渡句&…

RS485总线详解

RS485总线详解前言一、常见接口划分二、RS485概述&#xff08;一&#xff09;简介&#xff08;二&#xff09;接口/引脚图三、RS485总线详解&#xff08;一&#xff09;RS485总线概述&#xff08;二&#xff09;差分传输&#xff1a;&#xff08;三&#xff09;原理图&#xff…

基于51单片机的超声波测距系统设计

功能&#xff1a; 超声波测距仪&#xff0c;测量距离&#xff0c;用LCD12864显示信息。 lcd_writestr(0,0," 超声波测距仪 "); lcd_writestr(1,0,"&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;");…

商场中央空调工程-商场商铺中央空调安装常见问题解答

商场中央空调工程-商场商铺中央空调安装常见问题解答 为了提高装修档次&#xff0c;提高舒适度&#xff0c;为顾客营造一个相对舒适的购物环境&#xff0c;很多门店都会选择安装中央空调。刚接触门店中央空调安装的客户会有很多疑问。例如&#xff0c;商店安装的中央空调和家用…

Android消息机制与源码剖析(Looper,Message,MessageQueue以及Handler)

Android消息机制 文章目录Android消息机制消息传递与处理的流程&#xff08;配图示&#xff09;1.【入口】 在 ActivityThread.class 的 main() 方法&#xff0c;为主线程创建 Looper&#xff0c;并开启 loop() 循环2.【创建Looper】通过 Looper.prepareMainLooper() 创建主线程…

MySQL如何快速恢复单表(物理方式)

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a;xryz文章来源&#xff1a;社区投稿 使用方法 1、首先创建一个测试表test1&#xff0c;并插入几条数据&#x…

DataParallel里为什么会显存不均匀以及如何解决

作者&#xff1a;台运鹏 (正在寻找internship...)主页&#xff1a;https://yunpengtai.top鉴于网上此类教程有不少模糊不清&#xff0c;对原理不得其法&#xff0c;代码也难跑通&#xff0c;故而花了几天细究了一下相关原理和实现&#xff0c;欢迎批评指正&#xff01;关于此部…

商品上下游第六讲-交易中心-商品秒杀

交易中心-商品秒杀设计 文章目录 交易中心-商品秒杀设计1、项目背景2、主要技术3、项目职责4、项目实现4.1、需求分析4.2、核心流程4.3、关键链路技术方案4.4、库存处理方式1、库存超卖问题订单层面的控制4.5、限流,熔断,降级4.6、超职购小程序—接口梳理4.7、缓存的设计4.8、…

mybatis入门(一)

什么是 MyBatis &#xff1f; MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c;将接口和 Java 的…

如何使用匈牙利算法解决多维度的约束条件问题

&#x1f37f;*★,*:.☆欢迎您/$:*.★* &#x1f37f; 正文 假设 一个项目 有三个 维度的参数 A B C 都要 组合后最小 分别求解 a b c 三个维度的最优组合 如果三个组合方案刚好 重叠 那么说明有一个使得三个方案最优的 解 如果没有 那么若选择某个方案 其他维度的参数 的值 是…

直播倒计时 2 天 | SOFAChannel#31 RPC 框架设计的考和量

SOFARPC 是蚂蚁集团开源的一款基于 Java 实现的 RPC 服务框架&#xff0c;为应用之间提供远程服务调用能力&#xff0c;具有高可伸缩性&#xff0c;高容错性&#xff0c;目前蚂蚁集团所有的业务的相互间的 RPC 调用都是采用 SOFARPC。SOFARPC 为用户提供了负载均衡&#xff0c;…

Android -- 每日一问:回调函数和观察者模式的区别?

知识点 观察者模式 网上很容易查到观察者模式的定义&#xff1a; 观察者模式定义了对象间的一种一对多依赖关系&#xff0c;使得每当一个对象改变状态&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新。 Android中大量的使用了观察者模式。你可能已经用过ListView…

基于51单片机的舞蹈机器人步进机仿真设计

程序运行图&#xff1a; 仿真原理图&#xff1a; 部分程序&#xff1a; #include "reg51.h" #include "intrins.H" //8步式步进电机脉冲序列 //unsigned char steps[8] {0x77,0x33,0xbb,0x99,0xdd,0xcc,0xee,0x66}; unsigned char steps[8] {0x2,0x…