【2021年全国大学生数学建模竞赛题】“生产企业原材料的订购与运输”详细解析(内附MATLAB代码)

2023-11-10

【2021年全国大学生数学建模竞赛题】“生产企业原材料的订购与运输”详细解析(内附MATLAB代码)

文章目录

1.模型建立

1.1确定被评判对象的对象集及因素集

1.2确定各评价指标权重

1.3建立相对模糊及对因素的偏差加权平均

1.4根据Fj值进行评价评价

2.模型求解

3.代码实现

3.1 完整代码

3.2运行结果

4.结果分析

4.1 供应商240周订货量

4.1.1 Ctrl+A全选后,点击plot。

4.1.2 查看处点击属性编辑器

4.1.3 点击线条处选中,更改线宽为合适宽度

 4.1.4更改X/Y轴标签以及刻度

4.1.5 调整方框大小到合适

4.1.6导出设置中直接导出

4.2 缺货率(变量 quehuolv402)

4.3 供货完成率 (变量 ghwc402)

4.4 缺货次数 (变量 quehuocishu402)

4.5 权数F/% (变量 F)

5.总结

5.1 排名前50家的供应商

5.2 对比分析

5.3方法分析

6.附件

6.1 (变量 quehuolv402)

6.2 供货完成率 (变量 ghwc402)

6.3 缺货次数 (变量 quehuocishu402)

6.4 权数F/%(变量 F 该值越小越好)


       以2021年全国大学生数学建模竞赛题“生产企业原材料的订购与运输”为研究基础,利用数学建模的方法为生产企业原材料的订购与运输提供合理化的订购计划。通过对402家企业的数据分析,建立反映保障企业生产重要性的数学模型,确定3个选择供应商的评价指标,分别为缺货率、供货完成率、缺货次数。遵循企业生产最优化的原则选择出排名前50家的供应商,结合模糊综合评价模型和相关影响因素筛选优良供应商。

1.模型建立

1.1确定被评判对象的对象集及因素集

       同一产品在市场上的供应商数目较多,供应商的选择较为复杂,为保障企业生产,基于企业产能要 求,以该企业近 5 年 402 家原材料供应商为依据选择供应商。

       在对供应商选择进行评估时,需先从 240 周订货总 量、供货总量、缺货率、供货完成率、订货总次数供货总次数和缺货次数等多个方面考虑,构建供应商模糊综合评价的因素集,评价指标如表 1 所示。

1.2确定各评价指标权重

       利用专家打分法,建立各个影响因素相应的权重 ωi ( i = 1,2,3) 。ω1 = 40% ( 缺货率 的权重) ; ω2 = 30% ( 供货完成率的权重) ; ω3 = 30% ( 缺货次数的权重) 。

1.3建立相对模糊及对因素的偏差加权平均

       根据每个因素的影响,利用近 5 年 402 家供应商相关数据,对企业生产重要性模型的隶属度进行计算,得到相对偏差模糊矩阵.

1.4根据Fj值进行评价评价

        基于供应商模糊合成算子计算总评价,进行归一化处理,根据隶属度最大原则,判断出权数 F 排名前 50 的供应商。在计算权数 F 时,缺货率有正有负; 供货完成率 = 供货量 /订货量,该值越大越好; 缺货次数越小越好,所求权数 F越小越好。

        故权数 F 令其为| u12 |× ω1 + ( 1 - u3 ) × w2 + u45 × ω3 ,该值越小越好。

2.模型求解

       对每个供应商在 240 周的订货总量和供应商的供货总量的数据进行分析,如图 1 和图 2 所示。供应商 S109 到 S157 及供应商 S193 到 S397 的订货总量和供货总量大致相等; 240 周订货总量和供货总量有波动 且波动较大,企业向每家供应商的订货量与供应商的供货量是不同的,虽然订货量和供货量有一定的关 系,订货量大相应的供货量就大,说明企业对供应商的倾向性大。

 

由此可以检验出这 50 家供应商的供货能力比较良好,展示前 10 家 ( 如表3所示) 。 

3.代码实现

       代码运行所需数据集可于全国大学生数学建模竞赛 (mcm.edu.cn)2021高教社杯全国大学生数学建模竞赛赛题C处下载。

3.1 完整代码

%data1为订货数据矩阵 data2为供货数据矩阵
dinghuo=sum(data1,2);   %矩阵行相加
gonghuo=sum(data2,2);

quehuocishu=gonghuo(:,:)-dinghuo(:,:);   
quehuolv=-quehuocishu(:,:)./gonghuo(:,:);    %缺货率
[quehuolv1,index1]=sort(quehuolv);
quehuolvsort=cat(2,index1,quehuolv1);
ghwc=gonghuo(:,:)./dinghuo(:,:);             %供货完成率

a1=data1>0;
a2=data2>0;
s1=sum(a1');
s2=sum(a2');
quehuocishu=s1-s2;
quehuocishu=quehuocishu';                     %缺货次数
F=abs(quehuolv).*0.4+(1-ghwc).*0.3+abs(quehuocishu).*0.3;  %综合评价权数F,该值越小越好
F1=sort(F);
[F2, index] = sort(F);
F=cat(2,index,F2);
a402=(1:402);
a402=a402';
quehuolv402=cat(2,a402,quehuolv);
ghwc402=cat(2,a402,ghwc);
quehuocishu402=cat(2,a402,quehuocishu);

3.2运行结果

4.结果分析

4.1 供应商240周订货量

变量 dinghuo

4.1.1 Ctrl+A全选后,点击plot。

4.1.2 查看处点击属性编辑器

4.1.3 点击线条处选中,更改线宽为合适宽度

此处可更改为3.

 4.1.4更改X/Y轴标签以及刻度

4.1.5 调整方框大小到合适

4.1.6导出设置中直接导出

此时,通过matlab还原了论文中关于“图 1 240 周订货总量”的插图。

类似于此 变量gonghuo 还原“图 2 240 周供货总量”.

4.2 缺货率(变量 quehuolv402)

1    3.71428571428571
2    0.131868131868132
3    0.0868473131374638
4    10.1406250000000
5    -0.0541087962962963
6    14.4000000000000
7    -0.0333909038572251
8    1.29268292682927
9    22.0645161290323
10    2.38823529411765
.............................

4.3 供货完成率 (变量 ghwc402)

1    0.212121212121212
2    0.883495145631068
3    0.920092443448421
4    0.0897615708274895
5    1.05720403793209
6    0.0649350649350649
7    1.03454437164979
8    0.436170212765957
9    0.0433566433566434
10    0.295138888888889
................................

4.4 缺货次数 (变量 quehuocishu402)

1    66
2    24
3    8
4    70
5    7
6    42
7    0
8    41
9    61
10    56
.............................

4.5 权数F/% (变量 F)

194    0.000103579481953376
329    0.000106989896238557
275    0.000252230616646260
268    0.000317435587931492
306    0.000326631398255265
282    0.000470857247356426
247    0.00118505024112714
374    0.00119446135289099
31    0.00150813261469997
365    0.00153256795238597
.................................

5.总结

5.1 排名前50家的供应商

       通过对402家企业的数据分析,建立反映保障企业生产重要性的数学模型,确定3个选择供应商的评价指标,分别为缺货率、供货完成率、缺货次数。遵循企业生产最优化的原则选择出排名前50家的供应商,结合模糊综合评价模型和相关影响因素筛选优良供应商,结果如下。

194    0.000103579481953376
329    0.000106989896238557
275    0.000252230616646260
268    0.000317435587931492
306    0.000326631398255265
282    0.000470857247356426
247    0.00118505024112714
374    0.00119446135289099
31    0.00150813261469997
365    0.00153256795238597
80    0.00175052539333190
352    0.00211226321096081
284    0.00215643677845203
340    0.00234051621433237
294    0.00291671907439427
7    0.00299305004795259
53    0.00331168831168828
67    0.00348771400273551
218    0.00407312970999577
123    0.00438167122168927
364    0.00647231824567360
266    0.00717251079379792
131    0.00945940290375128
229    0.00979967335547794
40    0.00992260562249368
361    0.0113827014671292
356    0.0122900586244040
244    0.0250062701132746
367    0.0339857849862220
346    0.0431482303150278
108    0.0843275709991225
143    0.0943103051662106
239    0.141258654358246
330    0.169341080932632
338    0.170485910779016
55    0.210704771822092
308    0.223250561982290
151    0.229159304368162
174    0.297237771025155
206    0.298877980364656
30    0.303174603174603
342    0.303896103896104
379    0.307096880673378
362    0.307101648351648
314    0.475062213235866
307    0.491652285197325
237    0.602530608310036
106    0.604428358526719
33    0.605238095238095
351    0.606993006993007

5.2 对比分析

前10位与论文结果相同。

5.3方法分析

       文章结合模糊综合评价模型和相关影响因素筛选优良供应商,遵循企业生产最优化的原则选择出排名前50家的供应商,详细的解决了21年国赛C题第一问,并详细地写出了复现论文中数据图的步骤,同时内附matlab代码,可供读者自行复现。

 原文链接:基于模糊综合评价的企业生产订购与运输模型 - 中国知网 (cnki.net)

最后,感谢您读完本文!

您的点赞

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【2021年全国大学生数学建模竞赛题】“生产企业原材料的订购与运输”详细解析(内附MATLAB代码) 的相关文章

  • matlab中优先级队列的实现方法

    matlab中有没有提供minpriorityqueue功能的库 import java util PriorityQueue import java util public class MyQueue Comparator
  • 在 MATLAB 中验证输入的最佳实践

    在验证 MATLAB 函数中的输入时 什么时候使用 inputParser 比使用断言更好 或者还有其他更好的工具可用吗 我个人发现使用 inputParser 不必要地复杂 对于 Matlab 始终需要检查 3 项内容 存在 类型和范围
  • 在 Matlab/Java 中将手部运动建模为 3D 曲线

    我只需要一些关于我遇到的问题 在哪里查看等的指导 我在我的一个项目中使用了运动跟踪手套 它返回每个手指和手掌的 X Y 和 Z 值 我想做的是首先根据这些坐标创建每个手指运动的表示 然后将它们每个附加到手掌的运动 以获得手的表示 一旦我完成
  • 计算向量的导数

    我有以下函数 维维亚尼曲线 Phi t cos t 2 cos t sin t sin t 只需检查它是否有效 s linspace 0 T 1000 plot3 cos s 2 cos s sin s sin s 如何推导函数Phi 可能
  • 使用网络计算机进行 Matlab 并行处理

    我熟悉matlabpool and parfor用法 但我仍然需要加快计算速度 我的 1GB 网络中有一台功能更强大的计算机 两台计算机都有 R2010b 并且具有相同的代码和路径 使用两台计算机进行并行计算的最简单方法是什么 我今天使用的
  • MATLAB 问题中的 Parfor

    为什么我不能使用parfor在这段代码中 parfor i 1 r for j 1 N r xr j N r i 1 x i r j 1 end end 这是错误 错误 parfor 中的变量 xr 无法分类 请参阅 MATLAB 中的并行
  • MATLAB;具有 2+ 个/分割图例的饼图 R2017b

    我正在创建一个饼图 理想情况下希望图例水平显示在顶部和 或底部 然而 在几乎所有情况下 这是不可能的 因为图例超出了数字 因此 我理想情况下希望将图例分成两个 或更多 子图例并单独放置它们 我知道这不是 MATLAB 中的内置功能 我使用的
  • 如何从列中创建对称矩阵?

    例如 我想转动以下列 90 175 600 650 655 660 代入矩阵 90 175 600 650 655 660 175 600 650 655 660 655 600 650 655 660 655 650 650 655 66
  • Matlab 错误:()-索引必须出现在索引表达式的最后

    我有这段代码 想要在制表符分隔的 txt 文件中写入一个数组 fid fopen oo txt wt for x 1 length s fprintf fid s t n s x 1 end fclose fid 但我收到此错误 Error
  • Python 中的 eig(a,b) 给出错误“需要 1 个位置参数,但给出了 2 个”

    根据https docs scipy org doc numpy 1 15 0 user numpy for matlab users html https docs scipy org doc numpy 1 15 0 user nump
  • 如何在 MATLAB 中为 4 个子图创建一个通用图例?

    如何在 MATLAB 中为 4 个子图创建一个通用图例 如下所示 又快又脏 hSub subplot 3 1 1 plot 1 1 1 1 1 1 1 1 hLegend legend hello i am legend subplot 3
  • MATLAB 中的内存映射文件?

    我决定使用 memmapfile 因为我的数据 通常为 30Gb 到 60Gb 太大 无法放入计算机内存中 我的数据文件由两列数据组成 对应于两个传感器的输出 并且它们采用 bin 和 txt 格式 m memmapfile G E Str
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio
  • 在每次迭代中使用 for 循环的索引命名图像

    我正在使用 MATLAB 进行图像处理项目 我使用 for 循环在每次循环迭代时生成某种图像数据 图像大小不同 我的问题是如何阻止它在下一次迭代中覆盖图像 Img i j data 理想情况下我希望它有 Img 1 data for 1st
  • Matlab 中是否有相当于 R 的 dput() 的函数?

    Matlab 中是否有相当于 R 的 dput 的函数 dput 将 R 对象的 ASCII 文本表示形式写入文件或连接 UPDATE 1 添加了递归和对单元格的支持 UPDATE 2 添加了对结构的支持 UPDATE 3 增加了对逻辑 整
  • 有没有办法在 MATLAB 中查看 pcode 文件 (.p) 的源代码?

    有没有办法在 MATLAB 中打开 pcode 文件 p 如果 开放 是指edit 那么当然不是 pcode 中的 p 代表 受保护 其主要设计目标是在保护其源代码的同时部署功能组件 如果 开放 是指run 那么当然是的 引用手册 http
  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小

随机推荐

  • Docker常用镜像命令

    帮助命令 查看docker版本 docker version 对docker信息的描述 docker info docker的帮助命令 docker help 详解 docker OPTIONS COMMAND docker的命令公式 镜像
  • Text to image论文精读MISE:多模态图像合成和编辑Multimodal Image Synthesis and Editing: A Survey

    由于信息在现实世界中以各种形式存在 多模态信息之间的有效交互和融合对于计算机视觉和深度学习研究中多模态数据的创建和感知起着关键作用 近期 OpenAI 发布的 DALLE 2 和谷歌发布的 Imagen 等实现了令人惊叹的文字到图像的生成效
  • 「经验分享」一款PCB电路板设计要经历哪些流程?

    一款PCB电路板设计主要包括明确产品需求 硬件系统设计 器件选型 PCB绘制 PCB生产打样 焊接调试等步骤 那么这些步骤都有哪些需要注意点呢 小编带你细品 一定要细品 一 明确需求 在一个硬件设计之初 首先要做的是明确产品的需求 这里主要
  • BMP文件格式详解(BMP file format)

    BMP文件格式 又称为Bitmap 位图 或是DIB Device Independent Device 设备无关位图 是Windows系统中广泛使用的图像文件格式 由于它可以不作任何变换地保存图像像素域的数据 因此成为我们取得RAW数据的
  • 【SIMULINK】基于DQ0模型的三相异步电机自制仿真模型教程

    SIMULINK 基于DQ0模型的三相异步电机自制仿真模型 其实 打开simscape自带的异步电机模型 里面也是基于DQ0的 电机的模型定子电压作为输入 定子电流是输出 内部结构 omega 1 是DQ坐标系的转速 为0时退化为 alph
  • 计算机是人类的好伴侣 作文,书是我们的好伴侣_我和书的故事作文

    书 大家是并不陌生的 它会让人陶醉享受 也会使人沉迷于此 总得来说 书 是我们的好伴侣 不管是休闲娱乐 还是读后写作都少不了它 说到我喜欢的书 我还是算得上是个小小小的 书迷 但是我最喜欢沈石溪所写的动物小说 内容精彩而又丰富 把这所有的动
  • Android性能分析和优化之traces.txt(ANR分析)

    ANR 类型分类 1 KeyDispatchTimeout 5 seconds 主要类型按键或触摸事件在特定时间内无响应 按键或者触摸引起的ANR的时间定于是在AMS中 static final int KEY DISPATCHING TI
  • C语言——文件操作

    C语言文件操作 使用文件的原因 文件 程序文件 数据文件 文件名 文件的打开和关闭 文件指针 文件的打开和关闭 文件的顺序读写 文件的随机读写 fseek ftell rewind 文本文件和二进制文件 文件读取结束的判定 文件缓冲区 使用
  • Python 入门习题

    如果下面代码有问题或者你有更好的实现方法欢迎与我私信 1 输入一个字符串 内容是带小数的实数 例如 123 45 输出是两个整数变量x和y x是整数部分123 y是小数部分45 你可以用split函数完成 str input L str s
  • iOS编程基础-OC(七)-运行时系统(续)

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 第7章 运行时系统 7 4 动态绑定 动态绑定 dynamic binding 是指在运行程序时 而不是在编译时 将消息与方法对应起来的处理过程 在运行程序和发送消息
  • Motionbuilder矩阵计算方式

    基本使用 对于类型为 FBModel 的对象 有 GetMatrix SetMatrix 方法来获取及设置其变换矩阵 GetMatrix pMatrix FBMatrix pWhat kModelTransformation pGlobal
  • SpringBoot 集成 Apollo 配置中心,一文搞定!(万字长文)

    由于 Apollo 概念比较多 刚开始使用比较复杂 最好先过一遍概念再动手实践尝试使用 1 背景 随着程序功能的日益复杂 程序的配置日益增多 各种功能的开关 参数的配置 服务器的地址 对程序配置的期望值也越来越高 配置修改后实时生效 灰度发
  • STM32操作增量式编码器(一)----使用外部中断实现测速

    1 编码器概述 这里对此不再详细说明 本博文重在如何使用编码器 有兴趣的同学可以去网上了解 或者参考一下博文 旋转编码器工作原理 2 增量式编码器控制思路 图2 1 编码器实物图 图2 2 编码器与MCU接线图 我们首先需要清楚编码器输出什
  • 【剑指Offer题解:java】从上往下打印二叉树

    题目 从上往下打印出二叉树的每个节点 同层节点从左至右打印 分析 初始化 一个队列Queue queue 将root节点入队列queue 如果队列不空 做如下操作 弹出队列头 保存为node 将node的左右非空子节点加入队列 做2 3步骤
  • Zimbra安装成功后,邮件发送失败!!急!!发生错误 (mail.TRY_AGAIN),原因不详。

    method unknown msg try again Unable to connect to the MTA code mail TRY AGAIN detail soap Receiver trace com zimbra cs m
  • Less-27and27a

    文章目录 1 思路分析 2 注入过程 3 27a 1 思路分析 这一关表上上告诉你他只是过滤了union和select 其实不然 function blacklist id id preg replace id strip out id p
  • MQ-2烟雾报警器

    MQ 2烟雾报警器 原理 MQ 2型烟雾传感器属于二氧化锡半导体气敏材料 属于表面离子式N型半导体 处于200 300摄氏度时 二氧化锡吸附空气中的氧 形成氧的负离子吸附 使半导体中的电子密度减少 从而使其电阻值增加 当与烟雾接触时 如果晶
  • 传输线阻抗理论

    一 理想元件阻抗特性 对于所有的理想元件 传输线 阻抗 为该导体两端的电压和流经该导体的电流的比值 一般包括阻抗 感抗和容抗的统称 电阻阻抗 电感感抗 电容容抗 显然 对于理想电感和电容 其阻抗和频率有关 理想电感器的阻抗随频率升高而增大
  • maven手动引入仓库文件操作

    捕获 jpg 一 idea打开maven命令窗口 在框里输入命令 mvn install install file DgroupId com elink web DartifactId jcifs Dversion 1 3 15 SNAPS
  • 【2021年全国大学生数学建模竞赛题】“生产企业原材料的订购与运输”详细解析(内附MATLAB代码)

    2021年全国大学生数学建模竞赛题 生产企业原材料的订购与运输 详细解析 内附MATLAB代码 文章目录 1 模型建立 1 1确定被评判对象的对象集及因素集 1 2确定各评价指标权重 1 3建立相对模糊及对因素的偏差加权平均 1 4根据Fj