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

题目简评:看下来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.mzph.cn/news/72903.shtml

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

相关文章

【JMeter】 二次开发插件开发 Dubbo 接口测试插件浅析

概述 在一些企业中&#xff0c;各类业务系统非常丰富&#xff0c;相互之间或对外提供很多的服务或接口这些服务或接口中&#xff0c;有很多是需要强契约约束的&#xff0c;服务的提供方、服务的使用方必须遵守相同契约这类服务最典型的就是RPC&#xff0c;其中应用广泛的有Dub…

即拼七人拼团系统开发模式是怎么盈利赚钱的?

即拼七人拼团是市场上最近比较火爆的一款商业模式&#xff0c;它结合了二二复制和拼团两种模式玩法&#xff0c;不仅能让消费者从中获利&#xff0c;还能让平台快速获流裂变&#xff0c;对平台起盘初期和发展中期具有很强的推广能力。那么这个模式是怎么盈利赚钱的呢&#xff1…

Tomcat 日志乱码问题解决

我就是三井&#xff0c;一个永不放弃希望的男人。——《灌篮高手》 Tomcat 日志乱码问题解决 乱码原因&#xff1a;字符编码不一致 如&#xff1a;国内电脑一般都是GBK编码&#xff0c;而Tomcat日志使用的是UTF-8编码 解决方法&#xff1a;将对应字符编码由 UTF-8 改为 GBK 即…

案例实战-Spring boot Web

准备工作 需求&环境搭建 需求&#xff1a; 部门管理&#xff1a; 查询部门列表 删除部门 新增部门 修改部门 员工管理 查询员工列表&#xff08;分页、条件&#xff09; 删除员工 新增员工 修改员工 环境搭建 准备数据库表&#xff08;dept、emp&#xff09; -- 部门管理…

linux设置登录超时自动退出

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

深浅拷贝与赋值

数据类型 数据类型 在JavaScript中&#xff0c;数据类型有两大类。一类是基本数据类型&#xff0c;一类是引用数据类型。 基本数据类型有六种&#xff1a;number、string、boolean、null、undefined、symbol。 基本数据类型存放在栈中。存放在栈中的数据具有数据大小确定&a…

OpenHarmony 使用 ArkUI Inspector 分析布局

● 摘要&#xff1a;视图的嵌套层次会影响应用的性能&#xff0c;开发者应该移除多余的嵌套层次&#xff0c;缩短组件刷新耗时。本文会介绍如何使用 ArkUI Inspector 工具分析布局&#xff0c;提示应用响应性能。 ● 关键字&#xff1a;列举本文相关的关键字&#xff1a;OpenH…

API 自动化测试难点总结与分享

API自动化测试的难点包括&#xff1a; 接口的参数组合较多&#xff0c;需要覆盖各种可能的情况。接口的状态和数据关联较多&#xff0c;需要验证返回结果是否符合预期。接口的并发访问和性能测试较为复杂&#xff0c;需要合理规划和调度测试策略。接口的安全性和权限控制较为重…

网站用户体验之深度感悟

个性化定制界面和极简版原装界面&#xff0c;哪一个你用起来更加顺手呢&#xff0c;相比之下你更喜欢哪一个&#xff1f; 界面选择&#xff1a; &#xff08;提醒&#xff1a;仅个人感悟。~~&#xff09; 方向一&#xff1a;表明自己的喜好 我个人觉得更喜欢个性化定制界面。…

JS-17--深拷贝跟浅拷贝的区别?如何实现一个深拷贝?

1、数据类型存储 JavaScript中存在两大数据类型&#xff1a; 基本类型 引用类型 基本类型数据保存在栈内存中 引用类型数据保存到堆内存中&#xff0c;引用数据类型的变量是一个指向堆内存中实际x对象的引用&#xff0c;存在栈中 2、浅拷贝 浅拷贝指的是创建新的数据&#xff…

std::make_shared和new初始化智能指针的区别

先看代码&#xff1a; class Base {public:Base(int num):a(num) {std::cout << "Base() construct" << std::endl;}~Base() {std::cout << "Base() deconstruct" << std::endl;}int Get() {return a;}private:int a; };void tes…

react利用wangEditor写评论和@功能

先引入wangeditor写评论功能 import React, { useEffect, useState, useRef, forwardRef, useImperativeHandle } from react; import wangeditor/editor/dist/css/style.css; import { Editor, Toolbar } from wangeditor/editor-for-react; import { Button, Card, Col, For…

【数据结构与算法系列5】螺旋矩阵II (C++ Python)

给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&#xff1a;n 1 输出&am…

53、springboot对websocket的支持有两种方式-------1、基于注解开发 WebSocket ,简洁实现多人聊天界面

基于注解开发 WebSocket –注解就是&#xff1a; OnOpen、 OnClose 、 OnMessage 、OnError这些 ★ WebSocket的两种开发方式 ▲ Spring Boot为WebSocket提供了两种开发方式&#xff1a; 基于spring-boot-starter-websocket.jar开发WebSocket 基于Spring WebFlux开发WebSoc…

Kotlin委托Delegate托管by

Kotlin委托Delegate托管by import kotlin.reflect.KPropertyfun main() {var user: String by MyDelegate()user "fly"println(user) }class MyDelegate {private var v: String? nulloperator fun getValue(thisRef: Any?, property: KProperty<*>): Stri…

驱动轴相机参数设置Web前端界面开发

一、基于Django的Web应用界面的开发&#xff1a; 在Realtimeresults.html上添加一个按钮组件&#xff0c;获取检测到的轴型和车轮信息&#xff0c;点击后可以获取package.json里存放的json数据&#xff0c;效果如下&#xff1a; 实现逻辑&#xff1a;需要从URL设置、视图函数、…

【iOS】Category、Extension和关联对象

Category分类 Category 是 比继承更为简洁 的方法来对Class进行扩展,无需创建子类就可以为现有的类动态添加方法。 可以给项目内任何已经存在的类 添加 Category甚至可以是系统库/闭源库等只暴露了声明文件的类 添加 Category (看不到.m 文件的类)通过 Category 可以添加 实例…

使用 Sealos 在离线环境中光速安装 K8s 集群

作者&#xff1a;尹珉。Sealos 开源社区 Ambassador&#xff0c;云原生爱好者。 当容器化交付遇上离线环境 在当今快节奏的软件交付环境中&#xff0c;容器化交付已经成为许多企业选择的首选技术手段。在可以访问公网的环境下&#xff0c;容器化交付不仅能够提高软件开发和交付…

【JavaScript】JS语法入门到实战

文章目录 一、初识JavaScript1. 什么是JavaScript&#xff1f;2. JavaScript 和 HTML 和 CSS 之间的关系3. JavaScript的运行过程4. JavaScript的组成 二、JavaScript的书写形式三、变量1. 输入输出2. 变量的使用3. 数据类型 四、运算符五、分支和循环语句1. 分支语句2. 循环语…

uniapp打包微信小程序。报错:https://api.weixin.qq.com 不在以下 request 合法域名列表

场景&#xff1a;在进行打包上传测试时&#xff0c;发现登录失效&#xff0c;但在测试中【勾选不效应合法域名】就可以。 出现原因&#xff1a;我在获取到用户code后&#xff0c;直接使用调用官方接口换取openid 解决方案&#xff1a; 可以把code带给后端&#xff0c;让他们返…