2021年国赛高教杯数学建模C题生产企业原材料的订购与运输解题全过程文档及程序

2021年国赛高教杯数学建模

C题 生产企业原材料的订购与运输

原题再现

  某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料,总体可分为 A,B,C 三种类型。该企业每年按 48 周安排生产,需要提前制定 24 周的原材料订购和转运计划,即根据产能要求确定需要订购的原材料供应商(称为“供应商”)和相应每周的原材料订购数量(称为“订货量”),确定第三方物流公司(称为“转运商”)并委托其将供应商每周的原材料供货数量(称为“供货量”)转运到企业仓库。
  该企业每周的产能为 2.82 万立方米,每立方米产品需消耗 A 类原材料 0.6 立方米,或 B 类原材料 0.66 立方米,或 C 类原材料 0.72 立方米。由于原材料的特殊性,供应商不能保证严格按订货量供货,实际供货量可能多于或少于订货量。为了保证正常生产的需要,该企业要尽可能保持不少于满足两周生产需求的原材料库存量,为此该企业对供应商实际提供的原材料总是全部收购。
  在实际转运过程中,原材料会有一定的损耗(损耗量占供货量的百分比称为“损耗率”),转运商实际运送到企业仓库的原材料数量称为“接收量”。每家转运商的运输能力为 6000 立方米/周。通常情况下,一家供应商每周供应的原材料尽量由一家转运商运输。
  原材料的采购成本直接影响到企业的生产效益,实际中 A 类和 B 类原材料的采购单价分别比 C 类原材料高 20%和 10%。三类原材料运输和储存的单位费用相同。
  附件 1 给出了该企业近 5 年 402 家原材料供应商的订货量和供货量数据。附件 2 给出了 8 家转运商的运输损耗率数据。请你们团队结合实际情况,对相关数据进行深入分析,研究下列问题:
  1.根据附件 1,对 402 家供应商的供货特征进行量化分析,建立反映保障企业生产重要性的数学模型,在此基础上确定 50 家最重要的供应商,并在论文中列表给出结果。
  2.参考问题 1,该企业应至少选择多少家供应商供应原材料才可能满足生产的需求?针对这些供应商,为该企业制定未来 24 周每周最经济的原材料订购方案,并据此制定损耗最少的转运方案。试对订购方案和转运方案的实施效果进行分析。
  3.该企业为了压缩生产成本,现计划尽量多地采购 A 类和尽量少地采购 C 类原材料,以减少转运及仓储的成本,同时希望转运商的转运损耗率尽量少。请制定新的订购方案及转运方案,并分析方案的实施效果。
  4.该企业通过技术改造已具备了提高产能的潜力。根据现有原材料的供应商和转运商的实际情况,确定该企业每周的产能可以提高多少,并给出未来 24 周的订购和转运方案。

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

  本文对中小微企业的信贷决策问题进行了研究。通过对企业发票数据的挖掘,提取与信贷风险相关的特征构建信贷风险预测模型,综合考虑贷款年利率、客户流失率构建分配决策优化模型,并根据模型的求解结果进行了详细深入的讨论为对供应商运输稳定性进行评价,本文基于过去 240 周的订货量数据与供货量数据,计算了供货完成率、供货误差率、波动可接受性和大额订单比例等指标,使用𝜁作为评价指数,对供应商保障企业生产的重要性进行了评价,并筛选了前50 家企业。
  针对最少订购方案与转运方案情境下的规划制定,本文首先构建了以供应商是否选择作为决策变量,以供应商数量最少作为目标函数使用 0-1 规划模型,得到最少需要 127 家供应商进行供货;而后,以 127 家供货商每周的供货量作为决策变量,以最经济原材料价格作为目标函数,建立数学规划模型,利用遗传算法进行求解,得到最优的订货方案;最后,以 127 家供应商与 8 家转运商的选择作为决策变量,以最低损耗率作为目标函数建立 0-1 规划模型,得到最优的转运方案。订购与转运方案见附录三。
  针对新采购方案规划中压缩生产成本的情况,为满足尽可能多的采购 A 尽可能少的采购 C 的情况,因此需要对原材料 A 与 C 进行赋权,赋权后的总和最低作为目标函数,建立供货规划模型,转运过程中,利用供货数据,以转运损耗率最低作为目标函数,建立 0-1 规划模型,利用粒子群算法,对模型进行求解,得到最优方案。订购与转运方案见附录四。
  针对提高产能下的方案规划,由于并未对各企业的产能进行提升,因此在所有生产单位时间(周)下,各供货商可以按照最大供应量进行材料供应,因此只需要对转运过程进行合理规划即可,并利用改进的粒子群算法求解,得到最优方案。订购与转运方案见附录五。
  最后,在本问第六部分对问题二和问题三的方案进行仿真验证,根据既定的订货方案,基本满足题目的约束条件,供货的总误差和转运的平均损耗率均在可接受的范围内,认为两个模型构造合理。

模型假设:

  假设一:供应商所供应的原材料都是合格的,不存在不合格的产品;
  假设二:转运商的转运损耗率不会由人为因素造成;
  假设三:假设生产企业在第一周初始时原材料的储存量为 0;
  假设四:假设供应商以及转运商的供应链会延续之前的规律继续进行。

问题分析:

  供应商运输稳定性评价
  本问题为评价类模型,基于附件 1 的供货量和进货量对供货商的供货特征进行特征增强工作,最终得到 6 个特征,基于这六个特征得到对应的评价指数,而后对每个供应商进行评价,并对按要求排名。
   订购方案与转运方案的制定
  本小问为规划类问题,需要给出最终的定购方案和转运方案。所以,按照规划类问题的基本思路,从决策变量,目标函数,约束条件三个方向入手,进行规划类的分析,并逐步取得最终答案。 在本小问的求解过程中,需要找到最少的供货商数量,那么也就是所挑选的每家供货商要尽可能地向生产公司供货。由于在本小问的过程中主要着眼于供货阶段,而非转运阶段,所以,不妨将转运过程中的损耗率暂时先取为 2%,也就是说生产企业的接收量统一视作供货量的 98%。
  新采购方案规划
  第三小问仍旧是一个规划类的问题。相较于第二小问,第三小问并没有考虑最开始供应商数量最小的规定,目标函数发生了变化,变为双变量规划函数,因此考虑粒子群算法但是决策变量和约束条件并没有特别大的变化。
  提高产能下的方案规划
  第四小问仍旧是一个规划类的问题。相较于第二小问,第四小问去掉了最开始供应商数量最小的规定,目标函数也发生了变化,但是决策变量和约束条件并没有特别大的变化,基于此,本部分求解欲采用优化的粒子群算法(融入退火算法中的跳出局部最优特点)进行求解。

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

在这里插入图片描述

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

程序代码:(代码和文档not free)


clear all;clc;
disp('');
load('d.mat');
load('g.mat');
a=d2>d1;
yita=sum(sum(a));
A1=sum(a,2)/yita;
disp('std');
load('b.mat');
load('t.mat');
A5=d2>0;
A4=sum(A5,2)/sum(sum(A5));
A11=A1/sum(A1);
A22=A2/sum(A2);
A33=A3/sum(A3);
A44=A4/sum(A4);
A111=[A11 A22 A33 A44];
X=A111;
[n,m] = size(X);
disp(['共有' num2str(n) '个评价对象, ' num2str(m) '个评价指标'])
Judge = input(['这' num2str(m) '个指标是否需要经过正向化处理,需要请输入1 ,不需要输入 0: ']);
if Judge == 1Position = input('请输入需要正向化处理的指标所在的列,例如第 2、3、6 三列需要处理,那么你需要输入[2,3,6]: ');disp('请输入需要处理的这些列的指标类型(1:极小型, 2:中间型, 3:区间型) ')Type = input('例如:第 2 列是极小型,第 3 列是区间型,第 6 列是中间型,就输入[1,3,2]: ');for i = 1 : size(Position,2) X(:,Position(i)) = Positivization(X(:,Position(i)),Type(i),Position(i));enddisp('正向化后的矩阵 X = ')disp(X)
end
Z = X ./ repmat(sum(X.*X) .^ 0.5, n, 1);
disp('标准化矩阵 Z = ')
disp(Z)
D_P = sum([(Z - repmat(max(Z),n,1)) .^ 2 ],2) .^ 0.5; 
D_N = sum([(Z - repmat(min(Z),n,1)) .^ 2 ],2) .^ 0.5; 
S = D_N ./ (D_P+D_N); 
disp('最后的得分为:')
stand_S = S / sum(S)
[sorted_S,index] = sort(stand_S ,'descend')
clear all;
disp('已知 50 个重要商家的 A、B、C 分类数分别为 16 15 19')
disp('导入三类供货商对应的周平均供货量矩阵 ABC');
disp('~~~~~~~~')
load('a.mat'); 
load('b.mat'); 
load('c.mat'); 
disp('导入重要 50 供应商家的分类 A01 B01 C01 及其对应的订货企业A02 B02 C02')
load('a1.mat')
load('a2.mat')
load('a3.mat')
load('a4.mat')
load('a5.mat')
load('a6.mat')
disp('~~~~~~~~')
z1=mean(sum(A01>A02,2)/sum(sum(A01>A02,2)));
z2=mean(sum(B01>B02,2)/sum(sum(B01>B02,2)));
z3=mean(sum(C01>C02,2)/sum(sum(C01>C02,2)));
z=z1+z2+z3;
z1=z1/z;
z2=z2/z;
z3=z3/z;
c=ones(50,1);
intcon=[1:50];

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows Update当前无法检查更新怎么办?

当进行Windows更新或升级时,可能会提示“Windows Update当前无法检查更新,因为未运行服务。您可能需要重新启动计算机”。而当重启也无法解决问题时,我们该怎么办呢?下面我们就来了解一下。 1、删除Software Distribution文件夹中…

基于SpringBoot+SpringCloud+vue的智慧养老平台设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

网络安全:信息收集专总结【社会工程学】

前言 俗话说“渗透的本质也就是信息收集”,信息收集的深度,直接关系到渗透测试的成败,打好信息收集这一基础可以让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间。 一、思维导图 二、GoogleHacking 1、介绍 利用…

Dockerfile应用的容器化

文章目录 Dockerfile应用的容器化应用的容器化——简介应用的容器化——详解单体应用容器化获取应用代码分析Dockerfile容器化当前应用/构建具体的镜像推送镜像到仓库运行应用程序测试总结 最佳实践利用构建缓存合并镜像 命令总结 Dockerfile应用的容器化 Docker 的核心思想是…

在JDK17尝鲜Flink1.17

在JDK17尝鲜Flink1.17 前言 还没玩明白老版本,Flink1.17就来了!!!总还是要向前看的。。。 根据官网文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/try-flink/local_installation/ Flink r…

Cyclo-(D-Tyr-Gly),1217777-38-2,环-(L-甘氨酰酪氨酸),环二肽(CDPs)作为许多活性天然产物的骨架

Cyclo-(D-Tyr-Gly)中环二肽(CDPs)作为许多活性天然产物的骨架,由于其独特的生物和药理活性等引起了人们的广泛关注。作为环肽化合物,CDPs具有短肽分子良好的生物相容性、低免疫原性等优点。Cyclo-(D-Tyr-Gly)物理参数: CAS号:1217…

Linux高性能网络编程:TCP底层的收发过程

今天探索高性能网络编程,但是我觉得在谈系统API之前可以先讲一些Linux底层的收发包过程,如下这是一个简单的socket编程代码: int main() {... fd socket(AF_INET, SOCKET_STREAM, 0);bind(fd, ...);listen(fd, ...);// 如何建立连接...afd …

ChatGPT | Word文档如何更好地提取表格内容给ChatGPT

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! Word文档如何更好地提取表格内容给ChatGPT做知识库,这属于文本预处理工作。 本文只讲思路、测试结果,技术实现用Python和Java都能完成,下一篇文章再贴源码…

学会 IDEA 远程 Debug ,直接线上秀操作

有时候我们需要进行远程的debug,本文研究如何进行远程debug,以及使用 IDEA 远程debug的过程中的细节。看完可以解决你的一些疑惑。 配置 远程debug的服务,以springboot微服务为例。 首先,启动springboot需要加上特定的参数。 …

C语言王国探险记之函数的简单概念

王国探险记系列 文章目录(5) 目录 王国探险记系列 文章目录(5) 前言 一,函数的基本概念 二,调用外部函数和main()函数区别 2.1如果我们将函数的定义放到后面,可不可以呢? 总结…

liunx安装git

liunx安装git : 提示:记录自己装git 过程 执行下边命令安装 yum -y install git 安装完查看是否安装成功 git --version安装路径默认在/usr/libexe 愉快开始使用git

12 MFC常用控件(一)

文章目录 button 按钮设置默认按钮按下回车后会响应禁用开启禁用设置隐藏设置显示设置图片设置Icon设置光标 Cbutton 类创建按钮创建消息单选按钮多选按钮 编辑框组合框下拉框操作 CListBox插入数据获取当前选中 CListCtrl插入数据设置表头修改删除 button 按钮 设置默认按钮按…