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

news2024/9/20 20:38:16

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.coloradmin.cn/o/988524.html

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

相关文章

NIFI实现JSON转SQL并插入到数据库表中

说明 本文中的NIFI是使用docker进行安装的,所有的配置参考:docker安装Apache NIFI 需求背景 现在有一个文件,里面存储的是一些json格式的数据,要求将文件中的数据存入数据库表中,以下是一些模拟的数据和对应的数据库…

传输层协议 --TCP报文格式详细介绍

一、 TCP协议格式 TCP如何将报头与有效载荷进行分离? 当TCP从底层获取到一个报文后,虽然TCP不知道报头的具体长度,但报文的前20个字节是TCP的基本报头,并且这20字节当中涵盖了4位的首部长度。 因此TCP是这样分离报头与有效载荷的…

Java——》ThreadLocal

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

ChatGPT:深度学习和机器学习的知识桥梁

目录 ChatGPT简介 ChatGPT的特点 ChatGPT的应用领域 ChatGPT的工作原理 与ChatGPT的交互 ChatGPT的优势 ChatGPT在机器学习中的应用 ChatGPT在深度学习中的应用 总结 近年来,随着深度学习技术的不断发展,自然语言处理技术也取得了显著的进步。其…

软件设计模式(二):工厂、门面、调停者和装饰器模式

前言 在这篇文章中,荔枝将会梳理软件设计模式中的四种:工厂模式、Facade模式、Mediator模式和装饰器Decorator模式。其中比较重要的就是工厂模式和装饰器模式,工厂模式在开发中使用的频数比较高。希望荔枝的这篇文章能讲清楚哈哈哈哈&#xf…

OpenCV(三十一):形态学操作

​​​​​​1.形态学操作 OpenCV 提供了丰富的函数来进行形态学操作,包括腐蚀、膨胀、开运算、闭运算等。下面介绍一些常用的 OpenCV 形态学操作函数: 腐蚀操作(Erosion): erode(src, dst, kernel, anchor, iteration…

【LeetCode】剑指 Offer <二刷>(6)

目录 题目:剑指 Offer 12. 矩阵中的路径 - 力扣(LeetCode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 13. 机器人的运动范围 - 力扣&#…

docker-compose安装mysql

基于docker-compose快速安装mysql 目录 一、目录结构 1、 docker-compose.yml 2、 my.cnf 3、error.log 二、执行安装 三、连接使用 一、目录结构 1、 docker-compose.yml version: 3 services:mysql:image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mysql:5.7 #…

Kubernetes核心概念

Kubernetes是一个工业级的容器编排平台。 Kubernetes核心功能 服务发现和负载均衡。容器的自动装箱,调度(scheduling),按照容器的规格(需要的cpu和内存等)确定一个容器存放到集群中的哪一个机器上。进行自…

创建vue3项目并引用elementui

1.创建vu3项目&#xff1a; 执行命令 npm create vuelatest 2.终端会出现如下选项&#xff0c;不确定的直接enter键进入下一步&#xff1b; 3.然后再执行下方命令&#xff1a; cd <your-project-name> npm install4.安装依赖成功后引入elementui,执行命令&#xff1a…

高压电容器的内部结构是什么样的?

高压电容器的内部结构取决于其具体的设计和用途&#xff0c;但通常包括以下主要组件&#xff1a; 电介质&#xff1a;电介质是高压电容器内部的核心部分。它通常由绝缘材料制成&#xff0c;如聚丙烯薄膜、聚酯薄膜、陶瓷或其他高绝缘性材料。电介质的选择取决于电容器的电压等级…

盘点那些有高级客服分配功能的软件系统

过去&#xff0c;很多企业虽然有服务意识&#xff0c;但并不强烈&#xff0c;现在客户需求以及团队运营的发展推动着企业在客户管理的方式上采用更有效的服务方式来应对实际的变化&#xff0c;尤其是客服行业&#xff0c;所以很多企业在客服的管理和分配上下尽了功夫&#xff0…

Unity的UI管理器

1、代码 public class UIManager {private static UIManager instance new UIManager();public static UIManager Instance > instance;//存储显示着的面板脚本&#xff08;不是面板Gameobject&#xff09;&#xff0c;每显示一个面板就存入字典//隐藏的时候获取字典中对…

【自动化测试】之PO模式介绍及案例

目录 概念 PO三层模式&#xff1a; 1. 构建基础的 BasePage 对象层 2. 构建首页的 Page 层&#xff08;操作层&#xff09; 3.构建业务层 常用断言方法&#xff1a; 4. 构建用例集&#xff0c;执行文件&#xff0c;输出自动化测试报告 测试报告模板 概念 PO&#xff08…

【C++】详解红黑树并模拟实现

前言&#xff1a; 上篇文章我们一起学习了AVL树比模拟实现&#xff0c;我们发现AVL树成功地把时间复杂度降低到了O(logN)。但是同时我们不难发现一个问题&#xff0c;在构建AVL树中我们也付出了不小的代价&#xff0c;频繁的旋转操作导致效率变低。为了解决这个问题&#xff0c…

使用Fastchat部署vicuna大模型

FastChat是一个用于训练、提供服务和评估基于大型语言模型的聊天机器人的开放平台。其核心特点包括&#xff1a; 最先进模型&#xff08;例如 Vicuna&#xff09;的权重、训练代码和评估代码。一个分布式的多模型提供服务系统&#xff0c;配备 Web 用户界面和与 OpenAI 兼容的…

算法通关村第十七关:黄金挑战-跳跃游戏问题

黄金挑战-跳跃游戏问题 1. 跳跃游戏 LeetCode 55 https://leetcode.cn/problems/jump-game/ 思路分析 关键是判断能否到达终点&#xff0c;不用管每一步跳跃到哪里&#xff0c;而是尽可能的跳跃到最远的位置 看最多能覆盖到哪里&#xff0c;只要不断更新能覆盖的距离&#x…

【狂神】Spring5笔记(一)之IOC

目录 首页&#xff1a; 1.Spring 1.1 简介 1.2 优点 2.IOC理论推导 3.IOC本质 4.HelloSpring ERROR 5.IOC创建对象方式 5.1、无参构造 这个是默认的 5.2、有参构造 6.Spring配置说明 6.1、别名 6.2、Bean的配置 6.3、import 7.DL依赖注入环境 7.1 构造器注入 …

[JAVA] byte与int的类型转换案例剖析

总结&#xff1a; ①没有byte的字面值&#xff0c;赋值时需要强制转换类型 ②涉及运算&#xff0c;系统自动进行类型升级&#xff0c;由此用final修饰&#xff0c;代表这是一个不会更改值的常量&#xff0c;通过编译 感受&#xff1a;还是用int吧&#xff0c;自动类型转换太复…

VB:顺序查找

VB&#xff1a;顺序查找 Private Sub Command1_Click()Dim i%, m%Dim x(1 To 10) As SingleFor i 1 To 10x(i) Val(InputBox("请输入"))Next im seqSearch(x, 10)If (m 1) ThenPrint "已找到"ElsePrint "未找到"End If End Sub Function se…