2014年国赛高教杯数学建模D题储药柜的设计解题全过程文档及程序

news2024/10/17 5:24:48

2014年国赛高教杯数学建模

D题 储药柜的设计

  储药柜的结构类似于书橱,通常由若干个横向隔板和竖向隔板将储药柜分割成若干个储药槽(如图1所示)。为保证药品分拣的准确率,防止发药错误,一个储药槽内只能摆放同一种药品。药品在储药槽中的排列方式如图2所示。药品从后端放入,从前端取出。一个实际储药柜中药品的摆放情况如图3所示。
  为保证药品在储药槽内顺利出入,要求药盒与两侧竖向隔板之间、与上下两层横向隔板之间应留2mm的间隙,同时还要求药盒在储药槽内推送过程中不会出现并排重叠、侧翻或水平旋转。在忽略横向和竖向隔板厚度的情况下,建立数学模型,给出下面几个问题的解决方案。
  1. 药房内的盒装药品种类繁多,药盒尺寸规格差异较大,附件1中给出了一些药盒的规格。请利用附件1的数据,给出竖向隔板间距类型最少的储药柜设计方案,包括类型的数量和每种类型所对应的药盒规格。
  2. 药盒与两侧竖向隔板之间的间隙超出2mm的部分可视为宽度冗余。增加竖向隔板的间距类型数量可以有效地减少宽度冗余,但会增加储药柜的加工成本,同时降低了储药槽的适应能力。设计时希望总宽度冗余尽可能小,同时也希望间距的类型数量尽可能少。仍利用附件1的数据,给出合理的竖向隔板间距类型的数量以及每种类型对应的药品编号。
  3. 考虑补药的便利性,储药柜的宽度不超过2.5m、高度不超过2m,传送装置占用的高度为0.5m,即储药柜的最大允许有效高度为1.5m。药盒与两层横向隔板之间的间隙超出2mm的部分可视为高度冗余,平面冗余=高度冗余×宽度冗余。在问题2计算结果的基础上,确定储药柜横向隔板间距的类型数量,使得储药柜的总平面冗余量尽可能地小,且横向隔板间距的类型数量也尽可能地少。
  4. 附件2给出了每一种药品编号对应的最大日需求量。在储药槽的长度为1.5m、每天仅集中补药一次的情况下,请计算每一种药品需要的储药槽个数。为保证药房储药满足需求,根据问题3中单个储药柜的规格,计算最少需要多少个储药柜。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

整体求解过程概述(摘要)

  本文针对自动补药药柜的设计进行研究。
  针对问题一,在只考虑储药柜竖向隔板的最小间距种类,在满足安全送药的四个条件,即侧间距2mm,无并排,无侧翻,无水平旋转下,建立单目标优化模型,并设计区间无重叠聚类算法,实现最少间距种类的求解,由程序得到最少四类列宽的分类,分别为
19mm,34mm,46mm,58mm
  针对问题二,我们将总宽度冗余,与列间距类型数量作为目标,建立双目标规划模型。基于分层求解多目标规划模型方法,我们在问题一得到的4个不同类型的基础上,首先建立冗余权重模型,首先计算出各中药盒宽度在原始4种分类基础上的加权冗余,并按照其加权冗余累积贡献率排序,根据累积贡献率,我们讨论了90%和95%下,根据列宽优化算法,计算出新的列宽分类,经过加权冗余度和列宽类数的分析,我们确定在新增3类情况下的最优解。列宽分别为19mm,22mm,34mm,37mm,46mm,47mm,58mm并且给出相应的药盒编号。
  针对问题三,我们将平面总冗余度,与行间距类型最小作为目标,在以药柜给定规格为约束条件下,建立双目标规划模型。在问题二的基础上,我们通过对分布分析法,先按照比列均衡的思想确定药柜一行放置76个药槽,在此基础上为了尽量减少平面冗余,我们按照高相近归类方法,得到药柜至少需要26行,并且计算出高大致需要以下9类。
        34mm,41mm,47mm,54mm,60mm,72mm,85mm,101mm,125mm
  针对问题四,在药槽长度1.5米的条件下,我们首先计算出每一种药盒在药槽长度方向上能的个数。因此确定同一种要需要的药槽数量。又因为每天仅集中补药一次,所以设计的储药槽个数一次性能放药盒的个数大于该需求量的最大值才能满足。

模型假设:

  1.假设每次从后端放入的药品都正立平稳放入;
  2.假设药盒水平旋转时中心点在一条直线上;
  3.假设药盒旋转角度超过90°时才为水平旋转;
  4.假设每个药槽都有药盒放入;
  5.假设一天中仅有的一次药品补给是在药店下班前或者下班后一次性补给完成;

问题重述:

  药柜的结构与书柜相似,若干个横向隔板和竖向隔板将储药柜分割成若干个储药槽,横向隔板决定所放药品的高度,竖向隔板决定所放药品的宽度,为了方便使用和保证药品分拣的准确率,防止发药错误,一个储药槽内只能摆放同一种药品,要求药盒与两侧竖向隔板之间、与上下两层横向隔板之间应留2mm的间隙,同时还要求药盒在储药槽内推送过程中不会出现并排重叠、侧翻或水平旋转。为了更好的在实际中运用,在忽略横向和竖向隔板厚度的情况下,建立数学优化模型,给出下面几个问题的解决方案。
  问题一:因为药盒尺寸规格差异较大,根据提供的数据,设计药柜的竖向隔板间距类型最小种类数的数量和每种类型所对应的药盒规格。
  问题二:宽度冗余是药盒与两侧竖向隔板之间的间隙超出2mm的部分,当适当增加竖向隔板间距类型的数量可以减少宽度冗余,但增加竖向隔板间距类型会增加储药柜的加工成本,通过对问题一中的最佳设计求解方案,设计出合理的竖向隔板间距类型数量以及每种类型对应的药盒编号,使得总宽度冗余尽可能小,同时也希望间距的类型数量尽可能少。
  问题三:为了考虑拿药的方便性和补药的便利性,储药柜的尺寸要具有合理性和可行性,规定储药柜的宽度不超过2.5m,高度不超过2m,储药柜允许的最大有效高度为1.5m。药盒与两层横向隔板之间的间隙超过2mm的部分叫做高度冗余,可以得出平面冗余=高度冗余×宽度冗余,在问题二中计算结果的基础上,确定储药柜横向隔板间距的类型数量,使得储药柜的总平面余量尽可能地小,且横向隔板间距的类型数量也尽可能地少。
  问题四:由附件2可得每一种药品编号对应的最大日需求量。已知储药槽的宽度不超过2.5m,有效高度不超过1.5m,长度为1.5m,每天补药仅一次,请计算每一种药品需要的储药槽个数。为了保证药房储药满足需求,计算稀少需要多少个储药柜。

模型的建立与求解整体论文缩略图

在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

function [t,g]=gaodu(A) %%%按照76列一行的节点计算
H=A(:,3);
B=sort(H,'ascend');
g=B(76:76:1919)+2;

for  i=1:25
    
    t(i)=sum(A(:,3)<=g(i)-2);
end
for i=2:25
    t(25+2-i)=t(25+2-i)-t(25+1-i);
end
function  t=gfl(C)%%%%高分类程序

[m,n]=size(C);
t=0;
i=2;
while i<=99
    p=1;
    a=zeros(7,1);
while p==1|i>99
   a=a+C(1:7,i);
   bb=sum(a.*C(1:7,1));
   if sum(a.*C(1:7,1))<=2500
       i=i+1;
   else
       
       t=t+1;
       g(t)=C(8,i-1);
       p=0;
   end
end
end
function w=lv(x)
%UNTITLED7 Summary of this function goes here
%   Detailed explanation goes here
for i=1:47;
    w(i)=x(i,1)./sum(x(:,1))
end   

end
function B = jryl( A )
%UNTITLED5 Summary of this function goes here
%   Detailed explanation goes here
[m,n]=size(A);

for i=1:m
    
    if A(i,1)<=15&A(i,1)>=10
        B(i,2)=(19-A(i,1)-4)*A(i,3);
        B(i,1)=A(i,1);
    elseif A(i,1)<=27&A(i,1)>=16
        B(i,2)=(31-A(i,1)-4)*A(i,3);
         B(i,1)=A(i,1);
    elseif A(i,1)<=35&A(i,1)>=28
             B(i,2)=(39-A(i,1)-4)*A(i,3);
         B(i,1)=A(i,1);
         
         elseif A(i,1)<=45&A(i,1)>=36
             B(i,2)=(49-A(i,1)-4)*A(i,3);
         B(i,1)=A(i,1);
         
 elseif A(i,1)<=56&A(i,1)>=46
        B(i,2)=(60-A(i,1)-4)*A(i,3);
          B(i,1)=A(i,1);
    end
end
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

前端开发攻略---前端ocr图片文字提取功能

1、引入资源 通过链接引用 <script src"https://cdn.bootcdn.net/ajax/libs/tesseract.js/5.1.0/tesseract.min.js"></script> npm或其他方式下载 npm i tesseract 2、示例 <!DOCTYPE html> <html lang"en"><head><meta…

手写mybatis之细化XML语句构建器,完善静态SQL解析

前言 1&#xff1a;在流程上&#xff0c;通过 DefaultSqlSession#selectOne 方法调用执行器&#xff0c;并通过预处理语句处理器 PreparedStatementHandler 执行参数设置和结果查询。 2&#xff1a;那么这个流程中我们所处理的参数信息&#xff0c;也就是每个 SQL 执行时&#…

RetinaNet 分类头和回归头的网络结构分析

RetinaNet 是由 Facebook AI Research&#xff08;FAIR&#xff09;在 2017 年提出的一种高效的一阶段&#xff08;one-stage&#xff09;目标检测算法。相比于两阶段&#xff08;two-stage&#xff09;方法&#xff0c;RetinaNet 通过引入 Focal Loss 解决了类别不平衡问题&am…

iOS 14 自定义画中画悬浮窗 Custom AVPictureInPictureController 实现方案

iOS 14&#xff0c;基于 AVPictureInPictureController&#xff0c;实现自定义画中画&#xff0c;涵盖所有功能与难点。 市面上的各种悬浮钟和提词器的原理都是基于此。 Demo源码在文末。 使用 iOS 画中画的要求&#xff1a; 真机&#xff0c;不能使用模拟器&#xff1b;iO…

SpringCloud-服务治理-Eureka

本篇是从基础方便讲解一些springcloud-服务治理-Eureka中的一些理论性的故事&#xff1b;具体的代码不详细展示&#xff1b;后面的文章会将源码进行整理&#xff0c;并且将源码的github地址上传。 1.什么是服务治理 专治分布式系统 (一)高可用性&#xff1a;服务治理框架保证…

高级IO之IO多路转接

高级I/O&#xff08;Advanced I/O&#xff09;是指在计算机系统中进行输入和输出操作时使用的一种更高级的接口和技术。也就是当我们进行输入输出的时候本质其实都要进行等待内核缓冲区中数据到来才能进行读取和写入到用户缓冲区。而往往在等待的阶段都是需要进行阻塞的。而高级…

React远程组件

什么是远程组件&#xff1f; 远程组件指的是从远程服务器动态加载的组件&#xff0c;这些组件可以是React、Vue等框架的组件。 为什么需要远程组件 本质上就是为了解决复用问题&#xff0c;那引出新的问题有几种公共项目代码复用方式&#xff1f; Git仓库 将公共代码单独抽…

【vue3】实现el-tree组件,将不同层级的箭头修改成自定义图标

效果图 <template><div class"menu"><div class"menu_list"><el-treeref"myTree":highlight-current"true":current-node-key"person.treeCheckedData"node-key"Id":default-expanded-keys&…

【AAOS】Android Automotive 11模拟器源码下载及编译

源码下载 repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r48 repo sync -c --no-tags --no-clone-bundle 源码编译 source build/envsetup.sh lunch car_x86_64-userdebug make -j12 运行效果 emualtor Home Map All apps Setting…

spring:springboot3使用Spring Security

介绍 Spring Security 是一个强大且高度可定制的安全框架&#xff0c;专为保护基于 Java 的应用程序而设计&#xff0c;尤其是 Spring 应用。它提供了一系列功能&#xff0c;帮助开发者实现身份验证&#xff08;Authentication&#xff09;、授权&#xff08;Authorization&am…

【C++】map和set的介绍以及用法

个人主页 文章目录 ⭐一、系列式容器和关联式容器&#x1f680;二、set的使用1. set类的介绍2. set的构造3. set的迭代器4. set的常用函数 &#x1f3a1;三、multiset&#x1f384;四、map类的使用1. map类的介绍2. map的构造3. map的迭代器4. map的operator[]5. map的常用函数…

Go语言中的控制结构(四)

Go语言中的控制结构详解 控制结构是编程语言中控制代码执行流程的核心部分&#xff0c;Go语言通过if、for、switch等常见的控制结构&#xff0c;以及独有的defer、panic、recover机制&#xff0c;提供了强大且简洁的控制流管理。本文将详细讲解Go语言中的控制结构&#xff0c;包…

第十四章 RabbitMQ延迟消息之延迟队列

目录 一、引言 二、死信队列 三、核心代码实现 四、运行效果 五、总结 一、引言 什么是延迟消息&#xff1f; 发送者发送消息时指定一个时间&#xff0c;消费者不会立刻收到消息&#xff0c;而是在指定时间后收到消息。 什么是延迟任务&#xff1f; 设置在一定时间之后才…

InfluxDB持久层封装

InfluxDB持久层封装 了解如何使用spring-boot来操作InfluxDB数据库&#xff0c;首先我们来看下整个的系统结构图例&#xff1a; 对比下mybatis中的执行流程&#xff1a; 1_自动装配 首先&#xff0c;我们来看下第一步自动装配&#xff1a;依赖spring-boot自动装配出InfluxDB对…

第十五届蓝桥杯C/C++学B组(解)

1.握手问题 解题思路一 数学方法 50个人互相握手 &#xff08;491&#xff09;*49/2 &#xff0c;减去7个人没有互相握手&#xff08;61&#xff09;*6/2 答案&#xff1a;1024 解题思路二 package 十五届;public class Min {public static void main(String[] args) {i…

实时从TDengine数据库采集数据到Kafka Topic

实时从TDengine数据库采集数据到Kafka Topic 一、认识TDengine二、TDengine Kafka Connector三、什么是 Kafka Connect&#xff1f;四、前置条件五、安装 TDengine Connector 插件六、启动 Kafka七、验证 kafka Connect 是否启动成功八、TDengine Source Connector 的使用九、添…

【更新】A股上市公司企业网络安全治理数据集(2007-2023年)

一、测算方式&#xff1a;参考C刊《金融评论》王辉&#xff08;2024&#xff09;老师的做法&#xff0c;安全治理种子词的选取主要依托于《中华人民共和国网络安全法》、《中华人民共和国数据安全法》、《关键信息基础设施安全保护条例》等法律法规文件与《网络安全审查办法》、…

蓝桥杯刷题--幸运数字

幸运数字 题目: 解析: 我们由题目可以知道,某个进制的哈沙德数就是该数和各个位的和取整为0.然后一个幸运数字就是满足所有进制的哈沙德数之和.然后具体就是分为以下几个步骤 1. 我们先写一个方法,里面主要是用来判断,这个数在该进制下是否是哈沙德数 2. 我们在main方法里面调用…

量化之一:均值回归策略

文章目录 均值回归策略理论基础数学公式 关键指标简单移动平均线&#xff08;SMA&#xff09;标准差Z-Score 交易信号实际应用优缺点分析优点缺点 结论 实践backtrader参数&#xff1a;正常情况&#xff1a;异常情况&#xff1a; 均值回归策略 均值回归&#xff08;Mean Rever…

华为公有云实战

1.申请一台ECS云主机&#xff0c;并且可以提供web服务 1.1访问云主机-华为特有技术novnc&#xff0c;KVM中提到vnc技术&#xff0c;novnc是不用安装vnc客户端用浏览器html语言实现。 1.2cloudshell 1.3小工具 ssh 弹性ip 1.4.安装httpd服务 建立索引文件 浏览器上输入弹性ip可…