【完整代码】2023数学建模国赛C题代码--蔬菜类商品的自动定价与补货决策

C 题 蔬菜类商品的自动定价与补货决策
在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差,
大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需
求情况每天进行补货。
由于商超销售的蔬菜品种众多、产地不尽相同,而蔬菜的进货交易时间通常在凌晨 3:00-
4:00,为此商家须在不确切知道具体单品和进货价格的情况下,做出当日各蔬菜品类的补货
决策。蔬菜的定价一般采用“成本加成定价”方法,商超对运损和品相变差的商品通常进行
打折销售。可靠的市场需求分析,对补货决策和定价决策尤为重要。从需求侧来看,蔬菜类
商品的销售量与时间往往存在一定的关联关系;从供给侧来看,蔬菜的供应品种在 4 月至 10
月较为丰富,商超销售空间的限制使得合理的销售组合变得极为重要。
附件 1 给出了某商超经销的 6 个蔬菜品类的商品信息;附件 2 和附件 3 分别给出了该
商超 2020 年 7 月 1 日至 2023 年 6 月 30 日各商品的销售流水明细与批发价格的相关数据;
附件 4 给出了各商品近期的损耗率数据。请根据附件和实际情况建立数学模型解决以下问
题:

裙号:882663918
完整代码:https://www.jdmm.cc/file/2709542/

问题一代码:

#!/usr/bin/env python
# coding: utf-8# In[34]:import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import os
import warnings
warnings.filterwarnings('ignore')
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score,confusion_matrix,classification_report
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
import matplotlib.font_manager as fm# In[35]:# 设置全局字体
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字体为黑体# 加载字体文件
font = fm.FontProperties(fname='C:\Windows\Fonts\simhei.ttf', size=16)# In[ ]:#千千数模 q群:790539996
#代码购买链接:https://www.jdmm.cc/file/2709542/
#倒卖欢迎举报 举报有奖# # 1.1 蔬菜类商品不同品类或不同单品之间可能存在一定的关联关系,请分析蔬菜各品类及单品销售量的分布规律及相互关系。# In[36]:# Read the data
'''
# data_1: 6 个蔬菜品类的商品信息
# data_2: 销售流水明细数据
# data_3: 蔬菜类商品的批发价格
# data_4: 蔬菜类商品的近期损耗率
附件 1 中,部分单品名称包含的数字编号表示不同的供应来源。
附件 4 中的损耗率反映了近期商品的损耗情况,通过近期盘点周期的数据计算得到。'''
data_1 = pd.read_excel('../data/附件1.xlsx')
data_2 = pd.read_excel('../data/附件2.xlsx')
data_3 = pd.read_excel('../data/附件3.xlsx')
data_4 = pd.read_excel('../data/附件4.xlsx')# In[37]:data_1.head()# In[38]:data_2.head()# In[39]:data_3.head()
#将data_3中的列重命名为销售日期、单品编码和批发价格
data_3.columns = ['销售日期','单品编码','批发价格(元/千克)']
data_3.head()
#data_3.shape# In[40]:#将data_4中的列重命名为分类编码、分类名称、平均损耗率
data_4.columns = ['分类编码','分类名称','平均损耗率']
data_4.head()
#data_4.shape# In[41]:data_2.shape# # 1.1.1 蔬菜各品类销售量的分布规律# In[42]:# 合并data_1和data_2
merged_data = pd.merge(data_1, data_2, on='单品编码')
# 按照分类名称进行分组,计算每个品类的销售量
sales_by_category = merged_data[merged_data['销售类型'] == '销售'].groupby('分类名称')['销量(千克)'].sum() - merged_data[merged_data['销售类型'] == '退货'].groupby('分类名称')['销量(千克)'].sum()# In[43]:sales_by_category.index[0:6]# In[44]:# plot the sales distribution
plt.figure(figsize=(10, 6)) # set the figure size to 10x6 inches
plt.bar(sales_by_category.index, sales_by_category.values)
plt.xticks(rotation=45, fontproperties = font, size = 16) # set the font for x-axis labels
plt.xlabel('分类名称', fontproperties = font) # set the font for x-axis label
plt.ylabel('销售量(千克)', fontproperties = font) # set the font for y-axis label
plt.title('蔬菜各品类销售量分布', fontproperties = font) # set the font for title
plt.savefig('../results/sales_distribution.png', dpi=300, bbox_inches='tight') # set dpi to 300 for higher resolution and save the entire figure# In[45]:# 以季度为周期,可视化不同蔬菜品类销售量的变化趋势
# 将销售数据按照季度进行重采样
quarterly_sales = merged_data.resample('Q', on='销售日期')['销量(千克)'].sum()
# 将销售数据按照分类名称和季度进行分组,计算每个品类在每个季度的销售量
# sales_by_category = merged_data[merged_data['销售类型'] == '销售'].groupby(['分类名称', pd.Grouper(key='销售日期', freq='Q')])['销量(千克)'].sum() - merged_data[merged_data['销售类型'] == '退货'].groupby(['分类名称', pd.Grouper(key='销售日期', freq='Q')])['销量(千克)'].sum()
sales_by_category = merged_data[merged_data['销售类型'] == '销售'].groupby(['分类名称', pd.Grouper(key='销售日期', freq='Q')])['销量(千克)'].sum()
# 可视化销售量变化趋势
fig, ax = plt.subplots(figsize=(10, 6))
for category in sales_by_category.index.levels[0]:ax.plot(sales_by_category.loc[category].index, sales_by_category.loc[category].values, label=category)
ax.legend()
ax.set_xlabel('季度')
ax.set_ylabel('销售量(千克)')
ax.set_title('蔬菜各品类销售量变化趋势')
plt.savefig('../results/sales_num_trend.png', dpi=300, bbox_inches='tight')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

问题一要求分析蔬菜各品类及单品销售量的分布规律及相互关系。下

  1. 数据预处理 首先,我们需要对附件2中的销售流水明细数据进行预处理,以便于后续的分析和建模。具体地,我们可以按照以下步骤进行:
  • 对销售流水明细数据进行汇总,得到各蔬菜品类和单品的销售总量。
  • 对销售总量进行归一化处理,以便于后续的分析和比较。
  1. 分析销售量的分布规律 接下来,我们需要分析各蔬菜品类和单品的销售量的分布规律。具体地,我们可以按照以下步骤进行:
  • 绘制销售量的直方图和箱线图,观察它们的分布情况和异常值情况。
  • 计算销售量的均值、方差、偏度和峰度等统计量,以便于后续的分析和比较。
  • 进行聚类分析,将蔬菜品类和单品划分为若干个类别,以便于后续的分析和建模。
  1. 分析销售量的相互关系 在分析了销售量的分布规律之后,我们可以进一步分析各蔬菜品类和单品之间的销售量的相互关系。具体地,我们可以按照以下步骤进行:
  • 绘制销售量的散点图,观察它们之间的关系。
  • 计算销售量之间的相关系数,判断它们之间的线性关系的强度和方向。
  • 进行因子分析

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

问题 2要求分析各蔬菜品类的销售总量与成本加成定价的关系,并给出各蔬菜品类未来一周(2023年7月1-7日)的日补货总量和定价策略,使得商超收益最大。

  1. 数据预处理 首先,我们需要对附件2和附件3中的数据进行预处理,以便于后续的分析和建模。具体地,我们可以按照以下步骤进行:
  • 对销售流水明细数据进行汇总,得到各蔬菜品类的销售总量。
  • 对批发价格数据进行处理,计算各蔬菜品类的成本加成定价。
  1. 分析销售总量与成本加成定价的关系 接下来,我们需要分析各蔬菜品类的销售总量与成本加成定价的关系。具体地,我们可以按照以下步骤进行:
  • 绘制销售总量与成本加成定价的散点图,观察它们之间的关系。
  • 计算销售总量与成本加成定价之间的相关系数,判断它们之间的线性关系的强度和方向。
  • 进行回归分析,得到销售总量与成本加成定价之间的线性回归方程,以便于后续的建模和优化。
  1. 建立数学模型 在分析了销售总量与成本加成定价的关系之后,我们可以建立数学模型,以最大化商超的收益。具体地,我们可以按照以下步骤进行: - 定义决策变量:对于每个蔬菜品类,我们定义一个补货量和一个定价变量,分别表示商超在未来一周内每天补货的数量和每个蔬菜品类的定价。
  • 定义目标函数:商超的收益可以定义为销售收入减去成本。因此,我们可以将目标函数定义为: max Σ(销售收入 - 成本) 其中,Σ表示对所有蔬菜品类求和,销售收入可以通过补货量和定价计算得到,成本可以通过批发价格和补货量计算得到。
  • 定义约束条件:为了保证补货量和定价的合理性,我们需要定义一些约束条件。具体地,我们可以按照以下方式定义约束条件:
  • 补货量约束:商超每天补货的数量不能超过该蔬菜品类的销售总量。
  • 定价约束:商超的定价必须在一定的范围内,以保证价格的合理性和市场竞争力。
  • 收益约束:商超的收益必须大于等于一个给定的阈值,以保证商超的盈利能力。
  1. 求解数学模型 在建立了数学模型之后,我们可以使用数学优化方法,如线性规划或整数规划,来求解模型,得到最优的补货计划和定价策略。具体地,我们可以使用求解器或其他数学优化软件,将模型输入其中,然后运行求解器,得到最优的补货量和定价。最后,我们可以根据模型的结果,给出各蔬菜品类未来一周的日补货总量和定价策略,以实现商超收益最大化。 总之,通过以上的步骤,我们可以分析各蔬菜品类的销售总量与成本加成定价的关系,建立数学模型,求解模型,得到最优的补货计划和定价策略,以实现商超收益最大化。需要注意的是,在实际应用中,我们还需要考虑一些其他的因素,如市场需求、供应链管理、损耗率等,以保证模型的准确性和可行性。

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

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

  1. 数据预处理 首先,我们需要对附件2中的销售流水明细数据进行预处理,以便于后续的分析和建模。具体地,我们可以按照以下步骤进行:
  • 对销售流水明细数据进行汇总,得到各蔬菜品类和单品的销售总量。
  • 对销售总量进行归一化处理,以便于后续的分析和比较。
  1. 制定补货计划和定价策略 接下来,我们需要制定单品的补货计划和定价策略。具体地,我们可以按照以下步骤进行:
  • 根据可售品种和市场需求,确定需要补货的单品种类和数量。
  • 根据各单品的销售量和成本加成定价的关系,计算出各单品的售价。
  • 根据各单品的售价和损耗率,计算出各单品的净收益。
  • 根据各单品的净收益和补货量,计算出商超的总收益。
  • 利用数学优化方法,求解最优的补货计划和定价策略,使得商超收益最大化。
  1. 控制单品的数量和订购量 根据问题三的要求,商超希望制定单品的补货计划,要求可售单品总数控制在27-33个,且各单品订购量满足最小陈列量2.5千克的要求。因此,在制定补货计划和定价策略时,需要考虑这些限制条件,以确保计的可行性和有效性。具体地,我们可以按照以下步骤进行:
  • 根据可售品种和市场需求,确定需要补货的单品种类和数量。
  • 对于每个单品,计算出其最小陈列量,以确保其能够满足市场需求。
  • 根据可售单品总数的限制,对各单品的补货量进行调整,以确保总数控制在27-33个之间。
  • 根据各单品的补货量和最小陈列量,计算出各单品的订购量,以确保其能够满足市场需求和陈列要求。 需要注意的是,这些限制条件可能会相互制约,因此需要进行综合考虑和优化,以达到最优的补货计划和定价策略。

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

  1. 市场需求数据:商超需要了解市场对各品类蔬菜商品的需求情况,以便于制定最优的补货计划和定价策略。这些数据可以通过市场调研、销售数据分析等方式获得。
  2. 成本数据:商超需要了解各单品的成本情况,以便于计算出各单品的售价和净收益。这些数据可以通过采购记录、供应商报价等方式获得。
  3. 损耗率数据:商超需要了解各单品的损耗率情况,以便于计算出各单品的净收益。这些数据可以通过库存管理系统、盘点记录等方式获得。
  4. 供应商数据:商超需要了解各单品的供应商情况,以便于进行供应商评估和管理。这些数据可以通过采购记录、供应商合同等方式获得。
    这些数据对解决上述问题非常有帮助。例如,市场需求数据可以帮助商超了解市场对各品类蔬菜商品的需求情况,从而制定最优的补货计划和定价策略;成本数据和损耗率数据可以帮助商超计算出各单品的售价和净收益,从而实现商超收益最大化;供应商数据可以帮助商超进行供应商评估和管理,从而确保商品的质量和供应.
    附件1给出了6个蔬菜品类的商品信息,包括品类、单品名称、供应商、规格、单位和成本加成等信息。附件2和附件3分别给出了该商2020年7月1日至2023年6月30日各商品的销售流水明细与批发价格的相关数据。附件4给出了各商品近期的损耗率数据。这些数据对制定蔬菜类商品的补货和定价决策非常有帮助,可以帮助商超了解市场需求、商品成本、损耗情况等,从而制定最优的补货计划和定价策略,实现商超收益最大化。

附件 1 6 个蔬菜品类的商品信息
附件 2 销售流水明细数据
附件 3 蔬菜类商品的批发价格
附件 4 蔬菜类商品的近期损耗率

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

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

相关文章

vue 页面加水印

首先创建一个waterMark.js文件,当然文件命名可自定义, use strictconst watermark {}/**** param {要设置的水印的内容} str* param {需要设置水印的容器} container*/ const setWatermark (str, container) > {const id 1.23452384164.123412415…

qt相关的demo集合

自己写过的qt/c相关程序的demo集合 (许多学习自网络中,很感谢大家的分享) 源码地址:Qt与学习通页面: 记录与Qt相关的代码 - Gitee.com 源码目录: echart简单应用 opencv图像处理 QSetting简单使用 QtAv播放视频 ui页面 表情 超星…

Notepad++ 的安装及配置

由于电脑重装了Win11系统,干脆重头开始,重新安装每一个软件~~~ 很多博客或者博主都会推荐notepad的官网:https://notepad-plus-plus.org/ 但大家亲自点开就会发现是无响应,如下图 同时,也会有很多博主直接给网盘地址…

容器编排学习(五)卷的概述与存储卷管理

一 卷 1 容器化带来的问题 容器中的文件在磁盘上是临时存放的,这给容器中运行的重要的应用程序带来一些问题 问题1:当容器崩溃或重启的时候,kubelet 会以干净的状态(镜像的状态)重启容器,容器内的历史数据会丢失 问题2&…

【前端】Layui动态数据表格拖动排序

目录 一、下载layui-soul-table 二、使用 三、Layui实际使用 1、html代码 2、JS代码 3、PHP后台代码 目的:使用Layui的数据表格,拖动行进行排序。 使用插件:layui-soul-table 和 Layui 1.layui-soul-table文档:https://…

图的学习,深度和广度遍历

一、什么是图 表示“多对多”的关系 包括&#xff1a; 一组顶点&#xff1a;通常用V&#xff08;Vertex&#xff09;表示顶点集合一组边&#xff1a;通常用E&#xff08;Edge&#xff09;表示边的集合 边是顶点对&#xff1a;(v, w)∈E&#xff0c;其中v,w∈V有向边<v, w&…

k8s使用ECK(2.4)形式部署elasticsearch+kibana-http协议

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、准备elasticsearch-cluster.yaml二、部署并测试总结 前言 之前写了eck2.4部署eskibana&#xff0c;默认的话是https协议的&#xff0c;这里写一个使用http…

Redis功能实战篇之Session共享

1.使用redis共享session来实现用户登录以及token刷新 当用户请求我们的nginx服务器&#xff0c;nginx基于七层模型走的事HTTP协议&#xff0c;可以实现基于Lua直接绕开tomcat访问redis&#xff0c;也可以作为静态资源服务器&#xff0c;轻松扛下上万并发&#xff0c; 负载均衡…

Docker的运行机制和底层技术简介

&#xff08;笔记总结自《微服务架构基础》书籍&#xff09; 一、Docker的引擎 Docker Engine&#xff08;Docker引擎&#xff09;是Docker的核心部分&#xff0c;使用的是客户端-服务器&#xff08;C/S&#xff09;架构模式&#xff1a; ①Docker Cli&#xff1a;Docker命令…

(二十三)大数据实战——Flume数据采集之采集数据聚合案例实战

前言 本节内容我们主要介绍一下Flume数据采集过程中&#xff0c;如何把多个数据采集点的数据聚合到一个地方供分析使用。我们使用hadoop101服务器采集nc数据&#xff0c;hadoop102采集文件数据&#xff0c;将hadoop101和hadoop102服务器采集的数据聚合到hadoop103服务器输出到…

Acwing算法心得——街灯(差分)

大家好&#xff0c;我是晴天学长&#xff0c;差分广泛用于一段范围的加减运算&#xff0c;可以优化时间复杂度&#xff0c;需要的小伙伴请自取哦&#xff01;如果觉得写的不错的话&#xff0c;可以点个关注哦&#xff0c;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1…

湖南省副省长秦国文一行调研考察亚信科技

9月5日&#xff0c;湖南省人民政府党组成员、副省长秦国文一行到亚信科技调研考察&#xff0c;亚信科技高级副总裁陈武主持接待。 图&#xff1a;双方合影 在亚信科技创新展示中心&#xff0c;秦国文了解了亚信科技在5G、算力网络、人工智能、大数据等前沿领域的创新探索&…