【数学建模】2023数学建模国赛C题完整思路和代码解析

C题第一问代码和求解结果已完成,第一问数据量有点大,经过编程整理出来了单品销售额的汇总数据、将附件2中的单品编码替换为分类编码,整理出了蔬菜各品类随着时间变化的销售量,并做出了这些疏菜品类的皮尔森相关系数的热力图,代码和数据处理结果下载见文末地址

后续更新第二问、第三问思路和代码

2023国赛C题 蔬菜类商品的自动定价与补货决策

在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差,大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需求情况每天进行补货。

由于商超销售的蔬菜品种众多、产地不尽相同,而蔬菜的进货交易时间通常在凌晨3:00-4:00,为此商家须在不确切知道具体单品和进货价格的情况下,做出当日各蔬菜品类的补货决策。蔬菜的定价一般采用“成本加成定价”方法,商超对运损和品相变差的商品通常进行打折销售。可靠的市场需求分析,对补货决策和定价决策尤为重要。从需求侧来看,蔬菜类商品的销售量与时间往往存在一定的关联关系;从供给侧来看,蔬菜的供应品种在 4月至 10月较为丰富,商超销售空间的限制使得合理的销售组合变得极为重要。

附件 1给出了 某商超经销的 6个蔬菜品类的商品信息;附件 2和附件 3分别给出了该商超 2020年 7月 1日至 2023年 6月 30日各商品的销售 流水明细与批发价格的相关数据;附件 4给出了各商品近期的损耗率数据 。请根据附件 和实际情况 建立数学模型解决 以下问 题:

问题 1 蔬菜类商品不同品类或不同单品之间可能存在一定的关联关系,请分析蔬菜各品类及单品销售量的分布规律及相互关系。

要分析蔬菜各品类及单品销售量的分布规律及相互关系,可以首先利用附件中的销售流水明细数据进行统计和分析。以下是一些步骤和方法:

1. 销售量分布规律:针对每个蔬菜品类和单品,计算它们在不同日期的销售量,然后可以绘制销售量的时间序列图。

2. 销售量的相关性:*可以计算不同蔬菜品类或单品之间的销售量的相关性。使用相关系数来衡量它们之间的线性关系。如果相关系数接近1或-1,表示它们之间存在强烈的正相关或负相关关系。

3. 销售量的分布统计: 对于每个蔬菜品类或单品,计算其销售量的统计数据,如平均销售量、最大销售量、最小销售量、销售量的标准差等。

4. 销售量的季节性分析: 使用季节性分析方法,如季节性分解或周期性分析,来确定销售量的季节性模式。

5. 销售量的趋势分析:利用时间序列分析方法,如移动平均法或指数平滑法,来识别销售量的趋势。

6. 销售量的影响因素:考虑可能影响销售量的因素,如促销活动、天气变化、节假日等。分

通过以上分析,可以得出关于不同蔬菜品类和单品销售量的分布规律和相互关系的结论。

国赛C题部分代码如下(完整代码见文末地址):

% 初始化一个向量来存储每个分类编码的销量总和
totalSales = zeros(size(uniqueCodes));% 遍历每个唯一的分类编码并计算销量总和
for i = 1:length(uniqueCodes)code = uniqueCodes(i);totalSales(i) = sum(data(data(:, 1) == code, 2));
end
% 打印结果
result = [uniqueCodes, totalSales];
% 对 result 最后得到的结果按分类编码进行排序
result = sortrows(result, 1);
% 存储文件
writematrix(result, "(原始)品类销售量数据汇总.xlsx");

 
(完整代码见文末地址)
% 读取附件1中的单品编码和分类编码的对应关系
file1 = '附件1调整后数据.xlsx'; % 文件名
data1 = readtable(file1); % 读取数据% 读取附件2中的数据
file2 = '附件2调整后数据.xlsx'; % 文件名
data2 = readtable(file2); % 读取数据sortCode1 = data1.sort_code; % 分类编码列名为 "分类编码"% 提取附件2的数据中的单品编码
singleCode2 = data2.single_code; % 单品编码列名为 "单品编码"% 使用单品编码1和分类编码1的对应关系来替换单品编码2
for i = 1:length(singleCode2)index = find(strcmp(singleCode1, singleCode2{i}));if ~isempty(index)data2.sort_code(i) = sortCode1(index(1)); % 假设每个单品编码只对应一个分类编码
end% 将修改后的数据保存到新的文件中(可选)
newFile = 'problem1_2修改后数据.xlsx';
writetable(data2, newFile);

2023全国大学生数学建模国赛C题问题 2 :考虑商超以品类为单位做补货计划,请分析各蔬菜品类的销售总量与成本加成定价的关系,并给出各蔬菜品类未来一周 (2023 年 7月 1-7日)的日补货总量和定价策略,使得商超收益最大。

要分析各蔬菜品类的销售总量与成本加成定价的关系,并确定未来一周的日补货总量和定价策略以最大化商超的收益,需要进行以下步骤:

第一步:计算销售总量与成本加成定价的关系

  • 1. 对于每个蔬菜品类,从附件2中获取历史销售数据(2020年7月1日至2023年6月30日)。

  • 2. 计算每个品类的销售总量,可以按月或按季度进行汇总,以观察销售趋势。

  • 3. 计算每个品类的总成本,成本包括进货成本和运营成本(如运输成本、储存成本等)。

  • 4. 根据成本和销售总量,计算每个品类的毛利润(销售总收入减去总成本)。

第二步:制定未来一周的日补货总量和定价策略

1. 针对未来一周(2023年7月1日至7日),考虑以下因素:

  • - 以往的销售趋势,包括季节性和周内波动。

  • - 各蔬菜品类的库存水平。

  • - 供应商的供货情况和价格波动。

  • - 商超的销售目标和利润目标。

2. 制定每个品类的日补货总量,可以根据历史销售数据和销售预测来确定。确保库存足够满足需求,但避免过多的库存浪费。

3. 制定每个品类的定价策略,一般采用成本加成定价方法。考虑品类的毛利润率、市场需求、竞争情况和顾客的价格敏感度。定价策略应能最大程度地提高毛利润。

4. 定期监控销售数据和库存水平,根据需要进行调整,以适应市场变化。

每个品类的具体情况可能不同,因此需要根据每个品类的特点和历史数据来制定补货和定价策略。此外,利润最大化不仅取决于销售和定价策略,还受到成本管理、库存控制和市场竞争等因素的影响,因此需要综合考虑多个因素来做出决策。建议使用优化算法或数学规划方法来找到最佳的补货和定价策略。

问题 3 :因蔬菜类商品的销售空间有限,商超希望进一步制定单品的补货计划,要求可售单品总数控制在 27 -33 个,且各单品订购量满足最小陈列量 2.5千克 的要求。根据 2023年 6月 24-30日的可售品种,给出 7月 1日的单品补货量和定价策略 ,在尽量满足市场对各品类蔬菜商品需求的前提下,使得商超收益最大。

要制定单品的补货计划,以控制可售单品总数在27到33个之间,并满足最小陈列量要求(2.5千克),同时最大化商超的收益,可以采用以下步骤:

第一步:确定可售单品

1. 针对2023年6月24日至30日的可售品种,列出所有可供选择的单品。

第二步:建立数学模型

1. 为每个可售单品定义以下参数:

- Q_i:单品$i$的补货量(千克)

- P_i:单品$i$的定价策略(以百分比表示的成本加成,例如,如果成本为10元,定价策略为20%,则售价为12元)

- C_i:单品$i$的进货成本(元/千克)

- D_i:单品$i$的销售需求(千克)

- S_i:单品$i$的最小陈列量(2.5千克)

2. 定义目标函数:商超的总收益,可以表示为所有单品的毛利润之和,即

3. 约束条件:

- 可售单品总数约束:

- 单品补货量非负约束:

- 单品需求满足约束:

- 最小陈列量满足约束:

第三步:求解数学模型

使用线性规划或其他优化算法来求解上述数学模型,以找到最佳的单品补货量和定价策略,以最大化商超的总收益。这将提供7月1日的单品补货计划。

问题 4 :为了更好地制定蔬菜商品的补货和定价决策,商超还需要采集哪些相关数据,这些数据对解决上述问题有何帮助,请给出你们的意见和理由。思路和代码下载见文末地址

附件 1 6个蔬菜品类的商品信息附件 2 销售流水明细数据附件 3 蔬菜类商品的批发价格附件 4 蔬菜类商品的近期损耗率注 (1) 附件 1中,部分单品名称包含的数字编号表示不同的供应来源。

(2)附件 4中的 损耗率反映了近期商品的损耗情况,通过近期盘点周期的数据计算得到。

2023数学建模国赛C题代码和思路下载地址:C题代码和思路分析

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

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

相关文章

磐基2.0部署apisix集群

一、部署etcd集群 由于etcd是磐基2.0的组件服务,直接通过组件部署即可。如需手动部署,参考如下链接 k8s 部署etcd集群_k8s部署etcd_平凡似水的人生的博客-CSDN博客前言公司计划使用etcd来做统一配置管理,由于服务都在阿里云托管k8s集群上&a…

浏览器进程,性能指标,性能优化

目录 浏览器进程:多进程 主进程:显示、交互,增删进程 UI进程:控制地址栏、书签、前进后退 存储进程:cookie,webstorage,indexDB 渲染进程:每个标签页或窗口都有一个独立的渲染进…

c++类与对象

文章目录 前言一、1、类的引入2、类的定义3、类的访问限定符及封装4、类的实例化5、类对象模型6、this指针7、封装 前言 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的,关…

@Autowired为什么会报错?如何解决?

作者 | 磊哥 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) Autowired报错信息相信大部分程序员都遇到过,奇怪的是虽然代码报错,但丝毫不影响程序的正常执行&…

go work 不同包下mod + work实现.go文件的互相调用

一、文件架构 . ├── go.mod ├── go.work ├── main │ └── main.go └── util├── go.mod└── util.go其中go.mod module testgo 1.21.0其中go.work go 1.21.0use (../util )main/main.go 1 package main …

QT day5

服务器: #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化对象server new QTcpServer(this); }Widget::~Widget() {delete ui…

无涯教程-JavaScript - BIN2DEC函数

描述 BIN2DEC函数将二进制数字转换为十进制。 语法 BIN2DEC (number)争论 Argument描述Required/Optionalnumber 您要转换的二进制数。 Number cannot contain more than 10 characters (10 bits). 数字的最高有效位是符号位。其余的9位是幅度位。 负数使用二进制补码表示。…

切片机制和MR工作机制

InputFormat基类 TextInputFormat:TextInputFormat是默认的FileInputFormat实现类。按行读取每条记录。键是存储该行在整个文件中的起始字节偏移量, LongWritable类型。 CombineTextInputFormat:CombineTextInputFormat用于小文件过多的场景…

Calico IP In IP模拟组网

Calico IP In IP模拟组网 网络架构 模拟组网 先在k8s-master-1节点执行如下命令: # 创建veth-pair设备对ip link add veth1 type veth peer name eth0# 创建ns1网络命名空间ip netns add ns1# 将eth0网卡插入ns1网络命名空间ip link set eth0 netns ns1# 为ns1网…

润和软件HopeStage与上海瑞美云LIS系统管理软件完成产品兼容性互认证

近日,江苏润和软件股份有限公司(以下简称“润和软件”)HopeStage 操作系统与上海瑞美电脑科技有限公司(以下简称“上海瑞美”)瑞美云LIS系统管理软件完成产品兼容性测试。 测试结果表明,企业级通用操作系统…

为什么零基础选择语言首选python

在众多编程语言中,似乎已经没有什么能够阻挡Python的步伐。本月Python又是第一名,市场份额达到了13.42%,在2023年,Python已经连续7个月蝉联榜首,遥遥领先于其他对手。 每个月榜单发布后,都有小伙伴会好奇&…

基于docker环境的tomcat开启远程调试

背景: Tomcat部署在docker环境中,使用rancher来进行管理,需要对其进行远程调试。 操作步骤: 1.将容器中的catalina.sh映射出来,便于对其修改,添加远程调试相关参数。 注意:/data/produce2201…