2023数模国赛C 题 蔬菜类商品的自动定价与补货决策-完整版创新多思路详解(含代码)

news2024/11/23 23:45:39

题目简评:看下来C题是三道题目里简单一些的,考察的点比较综合,偏数据分析。涉及预测模型和运筹优化(线性规划),还设了一问开放型问题,适合新手入门,发挥空间大。

题目分析与思路:

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

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

附件 1 给出了某商超经销的 6 个蔬菜品类的商品信息;

附件 2 和附件 3 分别给出了该商超 2020 年 7 月 1 日至 2023 年 6 月 30 日各商品的销售流水明细与批发价格的相关数据;

附件 4 给出了各商品近期的损耗率数据。

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

思路概要:该问需要我们利用附件1和附件2中给出的数据进行数据分析,计算各品类销量以及各单品销量的相关系数以判断相关关系,进行合理的回归拟合以进一步判断具体的相互关系。同时该问可以进行丰富的可视化操作(如热力图、频率图、分布图、回归拟合图等)

思路详解:首先提取附件1附件2中的相关变量进行初步的数据查看:(代码使用python,软件为Jupiter)

import pandas as pd
import numpy as np
df1=pd.read_excel('附件1.xlsx')
df2=pd.read_excel('附件2.xlsx')
print(df2)
print(df2)   

Df1:

Df2:

对于海量数据的dataframe表格,需要首先进行空白值检查。

print(np.any(df1.isnull()))  # 只要有一个空值便会返回True,否则返回False
print(np.any(df2.isnull()))  # 只要有一个空值便会返回True,否则返回False    

输出结果为:

False,False

故不存在缺失值,可以直接进行分析。

·首先针对附件2的数据,分析各单品的销售量数据分布规律。

由于数据集为各单品的明细数据,需要进行同单品合并:

single_item=df2['单品编码'].unique().tolist() #记录不重复的单品编码
df_singlesales=pd.DataFrame(columns=['单品编码','销量'])#创建新的空dataframe
for item in single_item:
    sales=df2[df2['单品编码']==item]['销量(千克)'].sum()
    df_singlesales.loc[len(df_singlesales)] = [item, sales]
print(df_singlesales)   

直接对各个单品的销量分布进行可视化:

于数据集的数量巨大,难以直接进行数据统计分析规律,不妨针对销量列数据的数据范围进行合理的数值分组,针对每个区间的单品数目进行统计,以归纳销售数据的分布规律。

接着针对附件1给出的品类进行合并分析:

·在探究完各单品及品类销售量的分布规律之后,还需要分析之间的相互关系。

比较重要的是6个品类的销售数据相关关系。想要分析数据相关关系,需要建立相关的时间序列。

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

思路概要:该问需要我们利用附件2和附件3中给出的数据进行数据分析,合并同品类以及同日期的销售数据,并分析品类内销量与定价(加成率)的关系,根据分析结果选择适当的模型(线性、二次等)进行拟合,注意不同品类应存在不同的拟合关系在得到具体的销量与成本加成定价关系之后,需要根据历史销售流水数据预测出未来一周的销量(预测方法可以采用任意的时间序列预测方法),并根据预测的销量和得到的销量定价关系制定合适的定价策略,获得最大收益。

思路详解:成本加成定价法公式是指: 定价=基本成本×(1+加成率)......

散点图

LSTM预测

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

思路概要:该问需要我们在给定的各项约束限制下,构建非线性规划模型,求取最大收益。其中问题三给出了各项约束,问题二中得到的各品类销量与加成率关系函数作为给定定价策略下的实际销量计算函数。

首先求出2023年6.24-6.30的可销售商品种类,记为集合Cavailable:

import pandas as pdimport numpy as npdf2=pd.read_excel('附件2.xlsx')C_available=df2[(df2['销售日期']>='2023-06-24')&(df2['销售日期']<='2023-06-30')&(df2['销售类型'])]['单品编码'].unique().tolist() #6.24-6.30可销售品种n=len(C_available)#可销售单品数目

其中n为集合的元素数目,也即可销售的商品种类个数。

求得为49,而实际需要限制出售总个数m∈[27,33] (1)

设每个单品进货量为Xi,i=1,2,3,...m

有Xi≥2.5(2) 每个单品的编号IDi∈Cavailable (3)

(1)(2)(3)构成了本题的约束条件

设每个单品的 加成率为αi,则对应单品的六个种类,加成率与最大销量的关系:

F1(s)=α 花叶类

F2(s)=α 花菜类

F3(s)=α 水生根厥

F4(s )=α 茄类

F5(s)=α 辣椒类

F6(s)=α 食用菌

设实际销量为Si,则Si的计算规则 如下:

代码:......

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

思路概要:该问需要我们进一步探讨问题,通过补充相关数据的方法来使得补货与定价策略更加完善。这里需要重点考虑前述解题中没有使用到的数据,如损耗率(%)以及打折的情况。其次,题目中提到的商品空间也并没有给出实际的库存限制信息(问题3只给出了限制的单品数目,并没有给出具体的可承受库存空间)。

可以从问题1~3的计算过程入手,查看每个计算过程是否还可以利用其他的可获得的数据。

完整思路代码已整理好,见网pan链接,如失效请私信~

链接:https://pan.baidu.com/s/1_Rmh1UZS6uuM_ETvMVC5EA 提取码:n64s

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

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

相关文章

部署zookeeper集群

zookeeper和jdk下载地址 jdk 链接&#xff1a;https://pan.baidu.com/s/13GpNaAiHM5HSDJ66ebBtEg 提取码&#xff1a;90se zookeeper 链接&#xff1a;https://pan.baidu.com/s/1nSFKEhSGNiwgSPZWdb7hkw 提取码&#xff1a;u5l2 在所有的机器上面执行下面步骤&#xff1a; 1.上…

C++的纯虚函数和抽象类

在C++中,可以将虚函数声明为纯虚函数,语法格式为: virtual 返回值类型 函数名 (函数参数) = 0; 纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。 最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。…

继承的偏移量问题

下面是实际测试&#xff1a; p1 p3 ! p2 Base1* p1 &d; Derive* p3 &d;! Base2* p2 &d; 图解&#xff1a;

斯坦福小镇升级版——AI-Town搭建指南

导语&#xff1a; 8月份斯坦福AI小镇开源之后&#xff0c;引起了 AIGC 领域的强烈反响&#xff0c;但8月份还有另一个同样非常有意义的 AI-Agent 的项目开源&#xff0c;a16z主导的 AI-Town 本篇文章主要讲解如何搭建该项目&#xff0c;如有英文基础或者对这套技术栈熟悉&#…

监控系统prometheus部署

wget -c https://github.com/prometheus/prometheus/releases/downloa d/v2.37.1/prometheus-2.37.1.linux-amd64.tar.gz下载必要的组件。 mkdir -p /opt/prometheus创建目录。 此文章为9月Day 8学习笔记&#xff0c;内容来源于极客时间《运维监控系统实战笔记》。

docker安装开发常用软件MySQL,Redis,rabbitMQ

Docker安装 docker官网&#xff1a;Docker: Accelerated Container Application Development docker镜像仓库&#xff1a;https://hub.docker.com/search?qnginx 官网的安装教程&#xff1a;Install Docker Engine on CentOS | Docker Docs 安装步骤 1、卸载以前安装的doc…

Reqable项目技术栈全方面总结

大家好&#xff0c;最近有知乎网友问我Reqable技术选型的问题&#xff0c;恰好Reqable也刚刚发布了非常重要的1.3版本更新&#xff0c;所以此次写一篇关于Reqable项目技术栈的全方面总结。 本篇文章的目的&#xff0c;是向大家分享我关于Reqable项目的一些技术思考、细节和填坑…

鸿蒙应用程序入口UIAbility详解

一、UIAbility概述 UIAbility是一种包含用户界面的应用组件&#xff0c;主要用于和用户进行交互。UIAbility也是系统调度的单元&#xff0c;为应用提供窗口在其中绘制界面。每一个UIAbility实例&#xff0c;都对应于一个最近任务列表中的任务。一个应用可以有一个UIAbility&am…

Kafka生产与消费示例

Kafka生产与消费流程 Kafka是一款消息中间件&#xff0c;消息中间件本质就是收消息与发消息&#xff0c;所以这节课我们会从一条消息开始生产出发&#xff0c;去了解生产端的运行流程&#xff0c;然后简单的了解一下broker的存储流程&#xff0c;最后这条消息是如何被消费者消…

GNU Linux 的退出码规定

参考&#xff1a;https://tldp.org/LDP/abs/html/exitcodes.html 从这张表里来看&#xff0c;小于 128 的是被程序员捕捉的错误&#xff0c;大于等于 128 的是真正的 bugs &#xff1f;

MySQL卸载干净再重新安装【Windows】

家人们&#xff0c;谁懂啊&#xff1f; 上学期学的数据库&#xff0c;由于上学期不知道为什么抽风&#xff0c;过得十分的迷&#xff0c;上课跟老师步骤安装好了Mysql&#xff0c;但后面在使用的过程中出现了问题&#xff0c;而且还出现了忘记密码这么蠢的操作&#xff0c;后半…

linux设置登录超时自动退出

问题背景 最近登录某台linux服务器&#xff0c;经常遇到超时自动退出现象&#xff0c;如下图&#xff1a; 是因为服务器设置了超时时间&#xff0c;如果某个超时时间段内服务器没有任何操作&#xff0c;则会自动注销 解决方法 查看服务器设置的超时时间(TMOUT 变量的值)&am…

非科班菜鸡算法学习记录 | 代码随想录算法训练营第59天||503.下一个更大元素II 42. 接雨水

503. 下一个更大元素 II 知识点&#xff1a;单调栈 状态&#xff1a;不会&#xff0c;全靠卡哥 思路&#xff1a; 用i%nums.size()来代替i&#xff0c; 用for遍历时遍历两次 // 版本二 class Solution { public:vector<int> nextGreaterElements(vector<int>&am…

TLA+学习记录1——hello world

0x01 TLA是个好工具 编程人员一个好习惯是凡事都想偷懒&#xff0c;当然是指要科学地偷懒&#xff0c;而不是真的偷懒。一直想找到一种能检验写出的代码&#xff0c;做出的设计是否真的完全正确&#xff0c;而不是靠经验检视、代码Review、反复测试去检验。因为上述方法不管怎…

MATLAB中M文件编写

简介 所谓M文件就是将处理问题的各种命令融合到一个文件中&#xff0c;该文件以.m为扩展名。然后&#xff0c;由MATLAB系统编译M文件&#xff0c;得出相应的运行结果。M文件具有相当大的可开发性和扩展性。M文件有脚本文件和函数文件两种。脚本文件不需要输入参数&#xff0c;…

【美团3.18校招真题1】

大厂笔试真题网址&#xff1a;https://codefun2000.com/ 塔子哥刷题网站博客&#xff1a;https://blog.codefun2000.com/ 小美剪彩带 提交网址&#xff1a;https://codefun2000.com/p/P1088 题意&#xff1a;找出区间内不超过k种数字子数组的最大长度 使用双指针的方式&…

js使用crypto-js做加密解密

首先安装 crypto-js npm install crypto-js下面是完整代码&#xff0c;首先引入 crypto-js 里的 AES 和 enc&#xff0c;声明加密方法和解密方法进行测试 let { AES, enc } require("crypto-js");// 加密方法 function encryptString(str, key) {// 使用 AES 加密…

Unity Shader 溶解效果

一、效果图 二、原理分析 实现原理就是在片元着色器中&#xff0c;对像素点进行丢弃不显示。借助美术做的噪点图(利用噪点图中rgb中r值来做计算)。比如噪点图r值从0-1。我们从小到大让r值逐渐丢弃&#xff0c;比如刚开始r < 0.1丢弃&#xff0c;然后t < 0.2丢弃...知道t…

TinTin Web3 动态精选:以太坊基金会推出 EELS、Arbitrum Stylus 上线

TinTin 快讯由 TinTinLand 开发者技术社区打造&#xff0c;旨在为开发者提供最新的 Web3 新闻、市场时讯和技术更新。TinTin 快讯将以周为单位&#xff0c; 汇集当周内的行业热点并以快讯的形式排列成文。掌握一手的技术资讯和市场动态&#xff0c;将有助于 TinTinLand 社区的开…

基于SSM的汽车客运站管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…