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

news2024/11/28 15:56:26

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 == 1
 Position = 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));
 end
 disp('正向化后的矩阵 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.coloradmin.cn/o/626642.html

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

相关文章

如何在 javascript 中按属性值查找数组中的对象

文章目录 使用 find() 方法按属性值在数组中查找对象使用 filter() 方法按属性值查找数组中的对象使用 JavaScript for 循环按属性值查找数组中的对象使用 JavaScript for...in 循环按属性值查找数组中的对象 数组指的是值的有序列表,每个值称为由索引指定的元素。 …

这所西安的985专硕爆冷,保护一志愿,过线即上岸!

本期为大家整理热门院校“西北工业大学”的择校分析,这个择校分析专题会为大家结合:初试复试占比、复试录取规则(是否公平)、往年录取录取名单、招生人数、分数线、专业课难度等进行分析。希望能够帮到大家! –所有数据来源于研招…

Plot、Scatter、Subplot函数用法

目 录 一、Plot()函数 二、Scatter()函数 三、Subplot()函数 一、Plot()函数 格式:matplotlib.pyplot.plot(x,y,format_string.**kwargs) 说明: x:x轴数据,列表或数组,可选(注:当绘制多条曲线时,不能省…

IT 系统巡检必须关注的指标总结

1. 系统整体架构 以下内容作为基本 IT 系统信息被首先调查记录,供分析参考使用。 ● 网络设备配置 ---设备型号, IOS 版本, 模块型号和数量,用途 ● 存储系统配置 ---设备型号, IO 带宽, Cache 容量,磁盘数量,接入模式,存储容…

Go项目配置管理工具---Viper

目录 Viper概述前言功能viper配置优先级 从Viper中获取值读取配置文件注册和使用别名 把值写入Viper设置默认值使用Set方法设置值把配置信息写入配置文件从io.Reader中读取配置信息到viper 监控Viper文件 Viper概述 前言 对于现代应用程序,尤其大中型的项目来说&a…

【MySQL】Mycat

文章目录 什么是Mycat为什么要用Mycatmycat能干什么各数据库中间件对比Mycat原理数据库中间件逻辑库逻辑表分片表分片规则全局表ER表非分片表分片节点节点主机mycat安装mycat核心配置schema.xmlserver.xmlrule.xml加密明文密码(可选) MyCat读写分离垂直拆…

OpenCV中的图像处理3.11(10) OpenCV中的图像变换

目录 3.11 OpenCV中的图像变换3.11.1 傅里叶变换目标理论Numpy中的傅里叶变换OpenCV中的傅立叶变换DFT的性能优化为什么Laplacian是一个高通滤波器?其他资源 翻译及二次校对:cvtutorials.com 编辑者:廿瓶鲸(和鲸社区Siby团队成员&…

2.3 YARN伪分布式集群搭建

任务目的 重点掌握 YARN 集群的相关配置学会启动和关闭 YARN 集群的两种方式能够使用 jps 命令查看进程的启动情况能够通过 UI 查看 YARN 集群的运行状态任务清单 任务1:YARN 集群主要配置文件讲解任务2:YARN 集群测试任务步骤 任务1:YARN 集群主要配置文件讲解 1.1 配置环…

基于多尺度图神经网络的流场预测,实现精度与速度的平衡

项目简介 本项目来源于飞桨AI for Science共创计划的论文复现赛题,复现论文为《AMGNET: multi-scale graph neural networks for flow field prediction》。该论文主要采用图神经网络,因为在计算流体力学中计算域被网格离散化,这与图结构天然…

将PDF1页分割为4页

运行效果 原始PDF 分割后PDF 一、python代码(用的是python3.9.0版本) import os import tempfile from pdf2image import convert_from_path from PIL import Image from PyPDF2 import PdfReader, PdfWriterdef split_pdf_page(pdf_path, output_path…

4G开发板-安卓手机开发套件-MTK主板开发板定制

开发板是一种用于嵌入式系统开发的电路板,它包含了各种硬件组件,如中央处理器、存储器、输入设备、输出设备、数据通路/总线以及外部资源接口等。为了满足特定的开发需求,嵌入式系统开发者通常会根据项目要求来定制开发板,当然用户…

2023年前端面试高频考点ES6

目录 ES6新增 数据类型 基本数据类型 引用数据类型 Null,NaN,Undefined toString,valueOf ,,Object.is() 判断数据类型:typeof运算符,instance of运算符,isPrototypeOf() 方…

数据分析第11课pandas时间序列(上+下)-第12期15,16课

数据分析思维:有逻辑性, 课前练习1 各大平台相继推出和迭代付费会员策略,如优酷会员、京东PLUS会员、网易云音乐黑胶VIP等,通过提供丰富的权益吸引用户成为付 费会员,提升用户黏性和忠诚度。请围绕付费会员回答以下问题: 以网易云音乐黑胶VIP为例,运营同学希望推出活动…

k8s 使用helm安装longhorn存储控制器

1.安装helm 参考:k8s helm安装使用_Apex Predator的博客-CSDN博客 2.配置基础环境 安装longhorn存储控制器需要用到iSCSI工具,所以需要在k8s所有节点上安装 yum -y install iscsi-initiator-utils 3.安装longhorn 3.1配置helm镜像源 helm repo ad…

kafka Ar 、ISR 、 OSR 已分配副本 同步中副本 、不同步副本 Controller 执行leader 重新分配

目录 Ar 、ISR 、 OSR 已分配副本 同步中副本 、不同步副本 Controller 执行leader 重新分配 Ar 、ISR 、 OSR 已分配副本 同步中副本 、不同步副本 AR分区所有已分配副本 ISR 在同步中的副本OSR 不同步副本 如果有一个节点挂掉,分区领导会渠道其他地方当上领导…

Git的理解以及在IDEA中的使用

什么是版本控制 版本控制是指记录一段时间内对一个文件或一组文件的更改的系统,称为“版本”。换句话说,这些版本将帮助您跟踪代码/项目中的更改,如果需要,还可以撤消这些更改。 当处理较大的项目时,这种能够比较、区…

“RAID0 vs RAID1 vs RAID5 vs RAID6 vs RAID10:哪种RAID级别最适合你的需求?“

概要: RAID(Redundant Array of Independent Disks)是一种数据存储技术,可以将多个硬盘组合起来以提高性能、可靠性和容错能力。下面是几种常见的RAID级别,以及它们的用途和特点。 目录 RAID 0RAID 1RAID 5RAID 6RAID…

navicat 怎么导入运行bak文件,详细教程

文章目录 一、新建数据库,点击高级设置访问权限二、点击SQL Server备份三、右击空白,点击从文件还原四、找到备份的bak文件五、 点击“高级”选项六、然后点击 生产SQL,最后点 还原 一、新建数据库,点击高级设置访问权限 二、点击…

Opencv-python 将图片中某段HSV范围内的所有像素去除,用白色替换

文章目录 前言一、效果二、代码1.思路2.代码解释 总结 前言 本次实验要求将模拟飞行座舱图像中的HUD绿色字体去掉,并且用白色来替代,最终输出没有绿色字体的图片,用于下一步的某种图像算法的输入。 一、效果 二、代码 1.思路 将一张图片中的…

经验教训:微服务设计时的五条宝贵经验

微服务架构的新挑战 在著名软件著作《人月神话》中提到,软件世界没有“银弹”,这句话当然适用于架构领域,随着从单体架构过渡到微服务架构,因为将原有系统打散,给系统增加了许多不稳定因素。 单体架构向微服务架构转变…