【数学建模】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日)。
    1. 计算每个品类的销售总量,可以按月或按季度进行汇总,以观察销售趋势。
    1. 计算每个品类的总成本,成本包括进货成本和运营成本(如运输成本、储存成本等)。
    1. 根据成本和销售总量,计算每个品类的毛利润(销售总收入减去总成本)。

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

  1. 针对未来一周(2023年7月1日至7日),考虑以下因素:
    • 以往的销售趋势,包括季节性和周内波动。
    • 各蔬菜品类的库存水平。
    • 供应商的供货情况和价格波动。
    • 商超的销售目标和利润目标。
  1. 制定每个品类的日补货总量,可以根据历史销售数据和销售预测来确定。确保库存足够满足需求,但避免过多的库存浪费。

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

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

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

问题 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千克)

  1. 定义目标函数:商超的总收益,可以表示为所有单品的毛利润之和,即
  1. 约束条件:
  • 可售单品总数约束:

  • 单品补货量非负约束:

  • 单品需求满足约束:

  • 最小陈列量满足约束:

第三步:求解数学模型

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

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

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

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

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

相关推荐
CV学术叫叫兽11 分钟前
一站式学习:害虫识别与分类图像分割
学习·分类·数据挖掘
alphaTao15 分钟前
LeetCode 每日一题 2024/11/18-2024/11/24
算法·leetcode
kitesxian24 分钟前
Leetcode448. 找到所有数组中消失的数字(HOT100)+Leetcode139. 单词拆分(HOT100)
数据结构·算法·leetcode
好看资源平台42 分钟前
网络爬虫——综合实战项目:多平台房源信息采集与分析系统
爬虫·python
PersistJiao1 小时前
在 Spark RDD 中,sortBy 和 top 算子的各自适用场景
大数据·spark·top·sortby
果冻人工智能1 小时前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工1 小时前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
进击的六角龙1 小时前
深入浅出:使用Python调用API实现智能天气预报
开发语言·python
檀越剑指大厂1 小时前
【Python系列】浅析 Python 中的字典更新与应用场景
开发语言·python
VertexGeek1 小时前
Rust学习(八):异常处理和宏编程:
学习·算法·rust