工作室网站,软文发稿平台,长沙网红打卡地,网站备案信息【2023高教社杯】C题 蔬菜类商品的自动定价与补货决策 1 题目
C题蔬菜类商品的自动定价与补货决策
在生鲜商超中#xff0c;一般蔬菜类商品的保鲜期都比较短#xff0c;且品相随销售时间的增加而变差#xff0c; 大部分品种如当日未售出#xff0c;隔日就无法再售。因此一般蔬菜类商品的保鲜期都比较短且品相随销售时间的增加而变差 大部分品种如当日未售出隔日就无法再售。因此商超通常会根据各商品的历史销售和需求情况每天进行补货。
由于商超销售的蔬菜品种众多、产地不尽相同而蔬菜的进货交易时间通常在凌晨 3:00- 4:00为此商家须在不确切知道具体单品和进货价格的情况下做出当日各蔬菜品类的补货决策。蔬菜的定价一般采用“成本加成定价”方法商超对运损和品相变差的商品通常进行打折销售。可靠的市场需求分析对补货决策和定价决策尤为重要。从需求侧来看蔬菜类商品的销售量与时间往往存在一定的关联关系从供给侧来看蔬菜的供应品种在 4 月至 10 月较为丰富商超销售空间的限制使得合理的销售组合变得极为重要。
附件 1 给出了某商超经销的 6 个蔬菜品类的商品信息附件 2 和附件 3 分别给出了该商超 2020 年 7 月 1 日至 2023 年 6 月 30 日各商品的销售流水明细与批发价格的相关数据附件 4 给出了各商品近期的损耗率数据。请根据附件和实际情况建立数学模型解决以下问题
问题 1 蔬菜类商品不同品类或不同单品之间可能存在一定的关联关系请分析蔬菜各品类及单品销售量的分布规律及相互关系。
问题 2 考虑商超以品类为单位做补货计划请分析各蔬菜品类的销售总量与成本加成定价的关系并给出各蔬菜品类未来一周(2023 年 7 月 1-7 日)的日补货总量和定价策略 使得商超收益最大。
问题 3 因蔬菜类商品的销售空间有限商超希望进一步制定单品的补货计划要求可售单品总数控制在 27-33 个且各单品订购量满足最小陈列量 2.5 千克的要求。根据 2023年 6 月 24-30 日的可售品种给出 7 月 1 日的单品补货量和定价策略在尽量满足市场对各品类蔬菜商品需求的前提下使得商超收益最大。
问题 4 为了更好地制定蔬菜商品的补货和定价决策商超还需要采集哪些相关数据这些数据对解决上述问题有何帮助请给出你们的意见和理由。
附件 16 个蔬菜品类的商品信息 附件 2销售流水明细数据 附件 3蔬菜类商品的批发价格 附件 4蔬菜类商品的近期损耗率 注 (1) 附件 1 中部分单品名称包含的数字编号表示不同的供应来源。 (2) 附件 4 中的损耗率反映了近期商品的损耗情况通过近期盘点周期的数据计算得到。
2 问题分析
2.1 问题一
分析每个蔬菜品类和单品的销售量分布规律可以使用可视化工具展示销售量的直方图和箱线图观察销售量的分布情况和异常值情况。然后计算相关系数法分析蔬菜类商品之间的销售量相关性以及不同品类或不同单品之间可能存在的销售量关联关系。
2.2 问题二
线性规划问题。首先需要根据附件2的销售流水明细计算出各蔬菜品类的销售总量。具体来说对于每个蔬菜品类 i i i其销售总量 S i S_i Si 可以通过对其子类即分类编码为包含品类编码的前 8 位数字的销售总量求和得到即 S i ∑ j ∈ C i s j S_i \sum_{j \in C_i} s_j Sij∈Ci∑sj
其中 C i C_i Ci 表示蔬菜品类 i i i 所包含的子类集合 s j s_j sj 表示子类 j j j 的销售总量。
接下来需要计算每个蔬菜品类的成本加成定价。假设蔬菜品类 i i i 的成本为 c i c_i ci加成率为 m i m_i mi则成本加成定价为 p i ( 1 m i ) c i p_i (1 m_i) c_i pi(1mi)ci
需要根据附件3的批发价格数据来计算成本和利润。对于每个蔬菜品类 i i i其成本 c i c_i ci 可以通过对其子类的平均批发价格求和得到即 c i ∑ j ∈ C i w j p j ∑ j ∈ C i w j c_i \dfrac{\sum_{j \in C_i} w_j p_j}{\sum_{j \in C_i} w_j} ci∑j∈Ciwj∑j∈Ciwjpj
其中 w j w_j wj 表示子类 j j j 的批发数量 p j p_j pj 表示子类 j j j 的平均批发价格。
接下来需要根据附件4的损耗率数据来计算每个蔬菜品类的损耗成本。具体来说假设蔬菜品类 i i i 的损耗率为 r i r_i ri则其损耗成本 l i l_i li 可以通过对其子类的销售总量和批发价格求加权平均再乘以损耗率得到即 l i ∑ j ∈ C i s j w j p j ∑ j ∈ C i s j w j × r i l_i \dfrac{\sum_{j \in C_i} s_j w_j p_j}{\sum_{j \in C_i} s_j w_j} \times r_i li∑j∈Cisjwj∑j∈Cisjwjpj×ri
最后需要根据题目要求设计一个数学模型计算出未来一周每个蔬菜品类的日补货总量和定价策略使得商超收益最大。
请下载完整资料
2.3 问题三
在问题二模型的基础上需要考虑进一步制定单品的补货计划的问题即需要限制每个蔬菜品类的可售单品总数控制在 27-33 个且各单品订购量满足最小陈列量 2.5 千克的要求。将其转为整数规划问题。改进的主要包括两个地方
1添加约束条件限制每个蔬菜品类的可售单品总数不超过 33 个同时除最后一天外每天需补货的种类数也不超过 33 个。
2将原优化问题拆分为 7 天的子问题在满足第一步限制条件的前提下求解出每天的最优补货量和售价。
数学模型如下
请下载完整资料
其中第一个约束限制了每个蔬菜品类在每天的日补货总量不超过其最大日补货量。 第二个约束限制了除最后一天外每天需补货的种类数不超过 33 个。 第三个约束限制了最后一天无需补货。 第四个约束限制了补货量和售价必须为整数。
2.4 问题四
商品交易是买卖双方的事情尽可能的采集买卖双方的数据就能实现客户定制化卖家合理化的销售方案。
1顾客信息购买偏好以及消费者的人口统计信息如年龄、性别、职业、月收入等分析市场需求和制定适合不同消费者群体的销售组合和定价策略。
2商品信息商品的产地、采购时间、采购批次等信息分析不同季节的采购价格、采购成本及商品质量。
3 python代码
3.1 问题一
读取数据
import pandas as pd
import numpy as np
import warnings
import matplotlib.pyplot as plt
import seaborn as sns
import scipy.stats as st
%matplotlib inline
warnings.filterwarnings(ignore)
plt.rcParams[font.sans-serif] SimSun # 换成自己环境下的中文字体比如SimHei
plt.style.use(seaborn-darkgrid)
sns.set(style darkgrid)# 使用分类编码和单品编码进行合并
item_info pd.read_excel(data/附件1.xlsx)
item_info item_info.fillna(methodffill)
item_info[单品编码] item_info[单品编码].astype(str)
item_info[分类编码] item_info[分类编码].astype(str)
item_info[分类-单品编码] item_info[分类编码] - item_info[单品编码]# 计算出每个商品的销售总量、销售总额等信息
sales_details pd.read_excel(data/附件2.xlsx)
sales_details[单品编码] sales_details[单品编码].astype(str)
sales_details sales_details[[销售日期, 单品编码, 销量(千克), 销售单价(元/千克)]]
sales_details[销售额(元)] sales_details[销量(千克)] * sales_details[销售单价(元/千克)]
sales_by_item sales_details.groupby(单品编码).agg({销量(千克): sum, 销售额(元): sum}).reset_index()# 计算出每个商品的平均批发价格、总批发额等信息
wholesale_price pd.read_excel(data/附件3.xlsx)
wholesale_price
wholesale_price[单品编码] wholesale_price[单品编码].astype(str)
wholesale_by_item wholesale_price.groupby(单品编码).agg({批发价格(元/千克): mean}).reset_index()
wholesale_by_item.columns [单品编码, 平均批发价格(元/千克)]
wholesale_by_item[总批发额(元)] wholesale_by_item[平均批发价格(元/千克)] * sales_by_item[销量(千克)]# 与商品信息合并得到每个商品的损耗率
loss_rate pd.read_excel(data/附件4.xlsx)
loss_rate
loss_rate[小分类编码] loss_rate[小分类编码].astype(str)
item_info[单品编码] item_info[单品编码].astype(str)
item_loss_rate pd.merge(item_info, loss_rate, left_on分类编码, right_on小分类编码, howleft)1分析每个蔬菜品类和单品的销售量分布规律使用直方图和箱线图展示销售量的分布情况
# 统计根茎类不同单品的销售量
sales_by_item sales_details.merge(item_info, on单品编码, howleft)
sales_by_item sales_by_item.groupby([分类名称, 单品名称]).agg({销量(千克): sum}).reset_index()# 绘制直方图展示销售量分布情况
sales_by_item[sales_by_item[分类名称] 根茎类].sort_values(销量(千克), ascendingFalse).plot(kindbar, x单品名称, y销量(千克),figsize(10, 6))
plt.title(根茎类销售量直方图)
plt.xlabel(单品名称)
plt.ylabel(销量(千克))
plt.show()# 绘制箱线图展示销售量分布情况
sales_by_item.boxplot(column销量(千克), by分类名称, figsize(10, 6))
plt.title(各品类销售量箱线图)
plt.xlabel(品类名称)
plt.ylabel(销量(千克))
plt.show()2分析蔬菜类商品之间的销售量相关性使用相关系数矩阵和热力图来分析不同蔬菜类商品之间的销售量相关性
# 将销售流水明细和商品信息合并得到分类-单品编码和销售量的对应关系
sales_by_category sales_details.merge(item_info, on单品编码, howleft)
# 只取了20个进行可视化分析
sales_by_category sales_by_category[0:20]
sales_matrix sales_by_category.pivot(columns分类-单品编码, values销量(千克))
corr_matrix sales_matrix.corr()plt.figure(figsize(10, 8))
plt.imshow(corr_matrix, cmapplt.cm.Reds_r)
plt.xticks(range(len(corr_matrix.columns)), corr_matrix.columns, rotation90)
plt.yticks(range(len(corr_matrix.columns)), corr_matrix.columns)
plt.colorbar()
plt.title(销售量相关系数热力图)
plt.savefig(3.png,dpi300)
plt.show()3分析不同品类或不同单品之间可能存在的销售量关联关系使用散点图来展示不同品类或不同单品之间可能存在的销售量关联关系
# 将销售流水明细和商品信息合并得到分类名称和销售量的对应关系
sales_by_category sales_details.merge(item_info, on单品编码, howleft)
sales_by_category sales_by_category.groupby(分类名称).agg({销量(千克): sum}).reset_index()# 绘制散点图展示不同品类之间的销售量关联情况
categories list(set(item_info[分类名称]))
fig, ax plt.subplots(figsize(10, 6))
for c in categories:if c ! 其他:ax.scatter(sales_by_category[sales_by_category[分类名称] c][销量(千克)], sales_by_category[sales_by_category[分类名称] c].index,labelc)
plt.legend()
plt.ylabel(分类名称)
plt.xlabel(销售量(千克))
plt.title(不同品类间销售量关联情况)
plt.show()3.2 问题二、三