2023年全国大学生数学建模竞赛C题小组论文

 考虑到网页版的不好上传,大家可以直接下载我上传的完整pdf版本,完全免费(csdn下载网页如下)2023年全国大学生数学建模比赛C题获奖论文

蔬菜类商品的自动定价与补货决策

摘  要

本文针对蔬菜类商品的自动定价及补货问题,建立统计模型,解决了蔬菜销售量分布规律的问题;建立皮尔逊相关性模型,解决了蔬菜品类及单品销售量之间关系的问题。建立支持向量机模型,解决了蔬菜品类销售总量与成本加成定价关系的问题;建立时间序列模型,解决了蔬菜品类未来一周的日补货总量问题;建立动态规划模型,解决了蔬菜品类未来一周的定价策略的问题;建立多目标规划,解决了 7 月 1 日单品补货量和定价策略的问题。

针对问题一,分析分布规律及相互关系时,建立了统计分析模型,首先对附件数据进行预处理,筛查并处理异常值、缺失值。构建蔬菜销售量的统计指标,基于预处理后的数据集,对各项指标作统计分析,得出了蔬菜单品及品类的分布规律。建立皮尔逊相关性模型,分析了蔬菜不同品类及单品之间的关联性。经过皮尔逊相关系数的分析,观察到茄类与水生根茎类及食用菌相关性显著但与剩余品类蔬菜均不相关。此外,其他品类蔬菜之间也呈现出较强的相关性。

针对问题二,求解各品类蔬菜的利润及成本,计算成本加成比率,对销售总量与之进行回归分析,得出拟合优度偏低。建立了支持向量机模型,分析了蔬菜品类的销售总量与成本加成定价的关系。通过 matlab 计算出二者的非参数回归结果,结果受其他因素影响较大呈现浮动性。建立动态规划模型,以日补货总量为决策变量,商超收益为目标函数,对日补货总量以及相应的定价策略进行求解。得出未来一周的日补货量,其中花叶类补货量最多,在 166 千克到 267 千克有分布。最后,通过合理性检验,证明模型是合理可靠的。

针对问题三,以单品补货量为决策变量,商超收益及供需关系作目标函数,以单品总数限制、最小陈列量设置等作为约束条件建立多目标规划模型,对日补货总量以及相应的定价策略进行求解。从而得到以菠菜和云南生菜为代表的 33 个单品的补货量,所获得总利润 7762 元。

针对问题四,对于采集其他的数据,从内部和外部这两个数据来源入手,商超还需要采集有关客户、环境和储存条件方面数据、天气数据等。这些数据将为商超提供更全面的信息,帮助商超更准确地预测需求、制定补货计划、调整定价策略,并提高市场竞争力。

 

关键词:皮尔逊相关性;向量机模型;LSTM 时间序列模型;动态规划

1

 

一、问题重述

1.1 问题背景

在销售生鲜产品时,商超要面对蔬菜类商品保鲜期短且品质随销售时间变差的情况。大部分蔬菜如果当天未售出,第二天就无法再销售。因此,商超常根据商品的历史销售和需求情况,每天进行补货。由于商超销售的蔬菜品种繁多且产地各异,商家要在不确切了解具体单品和进货价格的情况下做出补货和定价决策。

因此,对蔬菜类商品的市场需求分析变得尤为重要。

目前,蔬菜类商品定价和补货决策的研究采用分析销售数据、历史销售和需求情况来建立数学模型,以进行决策。蔬菜的定价一般采用“成本加成定价”方法,对运输损失和品相变差的商品通常进行打折处理。通过可靠的市场需求分析,可以得到合理的补货和定价决策。

综上,本研究的目标是通过建立数学模型、分析现有数据,并采用回归、预测和动态规划等策略,为生鲜商超的蔬菜类商品补货和定价决策提供科学依据,以实现商超的最佳运营效益。

1.2 问题提出

问题 1:结合附件数据,探究蔬菜各品类和品类内每个单品销售量之间的分布规律和相互关系。

问题 2:假设商超以品类为单位做补货计划,分析各蔬菜品类的销售总量与成本加成定价的关系,并据此制定未来一周的日补货总量和定价策略,使得商超收益最大化。

问题 3:假设商超以单品为单位做补货计划,要求将可售单品总数控制在

27-33 个,且各单品订购量不低于 2.5 千克。基于 2023 年 6 月 24-30 日的可售品种,制定 7 月 1 日的单品补货量和定价策略,使得商超获得最大收益。

问题 4:为更科学合理地制定蔬菜商品的补货和定价决策,说明还需要收集的数据,并给出意见和理由。

二、问题分析

2.1 问题一分析

问题一第一小问要求求解蔬菜各品类及各品类下各单品的销售量分布规律

[1]。首先分析附件一、二的数据,筛查并处理其中异常值及缺失值,以确保数据的完整性和准确性。求解蔬菜销量的分布规律时,对蔬菜单品及品类的销量均作按月分析和按日分析,通过统计分析的方法,计算出相关统计量,并对数据进行可视化处理,得出销量在不同时间尺度上的分布规律。

第二小问要求探究蔬菜单品及品类之间的相互关系,引入相关性模型[2]。结合数据特征,计算 Pearson 相关系数并构建相关性图表,评价不同蔬菜单品或品类之间的相关性程度,揭示各指标之间的关联性。

 

 

2.2 问题二分析

问题二包括两个部分,即:分析不同品类的销售总量与成本加成定价[3]的关系以及给出各蔬菜品类未来一周(2023年7月1-7日)的日补货总量和定价策略。根据附件提供的数据对任意时间下蔬菜各品类的日销售总量、日销售平均单价、日销售折扣程度、损耗率以及批发单价等指标作量化处理[4]。由于成本加成定价为正常销售价格的制定,这里不考虑折扣和损耗因素,计算得各品类的销售价格与成本,进而求解各品类对应的成本加成定价。建立回归模型求解各品类的销售总量与时间的关系,计算发现拟合优度较低,因此使用 LTMS 时间序列[5]预测方法预测折扣程度、销售总量等指标,并给出补货方案。接着建立以总利润为目标函数,构建动态规划模型[6]求解定价策略,从而使商超收益最大。

2.3 问题三分析

问题三要求只考虑在 6 月 24-30 日期间的可售单品,同时在满足市场需求前提下给出对应策略,使得商超有最大收益。首先对附件提供的数据进行统计分析提取可选单品信息,建立回归模型[7],利用历史销售数据等相关变量,预测出 7 月 1 日的各单品需求量。此步骤是为了对当前市场需求进行估计,为后续的补货量和定价决策提供依据。

结合数理统计[8],得到各单品的折扣程度。在建模过程中,考虑两个目标:总利润最大化和供需关系的平衡。因此,结合问题二中模型,增加以各单品的平均订购量大于 2.5 千克为约束及商超总收益最大为目标,建立多目标规划的数学模型。旨在通过权衡供给和需求之间的关系,寻求最优解,即考虑总利润最大化的同时,保障供需平衡。求解过程涉及数学优化算法[9],例如线性规划、整数规划或非线性规划等,以确定最优的决策方案。根据求解结果制定当日的补货计划和定价策略。

2.4 问题四分析

问题四要求采集相关数据来更好的制定蔬菜商品的补货和定价策略。为了更科学、合理地制定决策方案,查询相关资料可知,收集的数据应体现蔬菜产品的订购数量及定价方面的指标,即根据商超销售实际情况,选择有价值的数据集进行研究。为更合理地指导商超完成定价,对所收集数据逐一进行解释说明并给出各指标的统计学定义,以及收集时的难易程度[10],和对前文中有关问题的影响。

三、基本假设

1.假设题目所给的数据真实可靠。

2.假设价格对销售量有所的影响,即价格上涨可能导致销售下降,价格下降可能导致销售增加。

3.假设在进行相关性分析时,所计算的 Pearson 相关系数具有统计上的显著性,反映的是真实的线性相关关系,而不是由于随机因素造成的相关性。

4.假设蔬菜的进货时间较早,以至于不会因为到货时间延迟而导致客户无法购买到所需蔬菜。

5.假设在蔬菜保存过程中,除了自然损耗外,不会因为不当保存而导致大规模的损耗发生。

6.假设竞争对手的定价策略不会发生剧烈波动以至于影响商超正常经营。

四、符号说明

符号

说明

Pi t, 

销售单价

st

运损率

P

利润

xi t'',

折扣销售数量

gt'

折扣销售单价

xt

销售总量

G

供需关系

五、模型建立与求解

5.1 问题一的建模与求解

本题需要分析蔬菜品类及单品销售量的分布规律及相互关系。在这之前,首先需要对数据预处理,之后,通过相关性分析,判断其相关性,并由此得出其分布规律和相互关系。

5.1.1 模型准备

为了确保对蔬菜销售分布规律研究的准确性,对附件提供的原始数据做筛查处理。结合问题一的分析,首先对所给出的数据进行预处理,包括去除异常值、填补缺失值。具体流程如图 1 所示。

 

1

 

问题一流程图

 

回归

分析

相关性

分析

数据

识别

处理

显著性

分析

分析

关系

是否显著

是否相关

长期

/

短期

数据

统计

数据

预处理

 

5.1.1.1 缺失值的预处理

通过拉格朗日插值法或牛顿插值法对数据作插补处理。若附件数据中存在未统计的某个日期,认定当天对应菜品的销量为0。

5.1.1.2 异常值的预处理

1.异常值的识别:

拉依达(PauTa)准则:在数据分析时,为了提高数据的准确性,此时需对某些偏离点进行去除,可以使用该准则处理数据量较大的数据集。

将超过 3s 的数据剔除,即

                                                           vb = −xb   x  3,1 b n

其中

n s n1−1i=1 (xi x)2

ˆ = =

xb 剔除。

2.异常值的处理

在识别出异常值后,将其剔除,作缺失值处理,采用拉格朗日插值,假设多

项式为 y = a0 +a x1 +a x2          2 +  +an−1xn−1 n 个点的坐标为(x y1, 1),(x y2, 2),     ,(x yn, n),那么它的拉格朗日插值多项式为:

                L x( ) = y1 (x x2 )(x x3)    (x xn ) + y2    (x x1)(x x3)   (x xn)

                                   (x1 − x2 )(x1 − x3)    (x1 − xn )        (x2 − x1)(x2 − x3)  (x2 − xn)

                                         yn    (x x1)(x x2 )   (x xn−1)                      (1)

            +    +

(xn x1)(xn x2 )       (xn xn−1) n         n         x xj

= i=1 yi j=0, j ixi xj

将缺失的函数值对应的点 x 代入插值多项式得缺失值的近似值 L(x)。

5.1.2 模型建立

根据问题一的分析对预处理之后的附件数据作统计分析。

5.1.2.1 统计分析

根据问题一的分析对数据预处理之后的数据进行统计分析以探究其分布规律。

1.平均值销售量 x

令蔬菜产品为 m,在 t 时刻的销售量为 xt ,则

1 n x = n i=1 xi

式中 x 表示时长为 n 时产品 a 的平均值销售量,反映了产品的平均销售水平。

2.频率分布最高区间:

对所有蔬菜产品销量按照步长 0.5kg 进行区间划分,分别统计各区间的样本数据的频率,令产品销量最高的频率分布区间为hmax =[a b, ],其中,a 表示区间下限,b 表示区间上限,hmax表示产品销售过程销量最频繁的值。

3.极差:

,

,

n

n

                                                          xmin = min{ },xi i =1,2,

 xmax = max{ },xi i =1,2,

x极差= xmax − xmin 。

4.方差:

s2 = 1 n (xi x)2

n i=1 表示数据销量稳定性。

5.变异系数:

s

CV = 100%CV x

上式表示表示数据销量的离散趋势。

6.四分位数间距

Q M M= 0.75 − 0.25

其中,蔬菜销售数据的上、下四分位数分别为M M0.75、 0.25 ,Q 表示销量数

据的集中程度。

由问题一分析可得,要探究蔬菜品类以及各单品销售量之间的相互关系,首先对附件中提供的数据做处理,分别统计出按月份下各蔬菜品类以及各单品的销量数据。通过建立相关性分析模型,由此得到主要因素,具体步骤如下:

5.1.2.2 皮尔逊(Pearson)相关性模型

Pearson 相关系数是用来衡量两个变量之间线性关系强度的统计指标。其能够量化变量之间的线性相关程度,并进一步深入分析相关性的性质和趋势。

1、计算总体 Pearson 相关系数

在公式中,XY 分别表示按月统计下的蔬菜中不同的两种品类或者两个不同的单品销量数据集。

X :{ X X1,   2,     , Xn} Y :{ Y Y1, 2,   ,Yn}

1 n1 n

那么总体均值为:E X( ) = = Xi EY( ) =ni=1Yi ,总体协方差为: n i 1

                                    1 n cov(X Y, ) = (Xi E X( ))(Yi E Y( ))

n i=1

总体 Pearson 相关系数:

(2)

                                                                n (Xi E X( )) (Yi E Y( ))

(3)

= x     y cov(X Y, )       i 1

                                      x y, =               =

 xy     n 其中,x 、y 表示样本数据的标准差。

2

1

(

)

1

n

i

i

X

X

n

=

2

1

(

)

1

n

i

i

Y

Y

n

=

x =y =

计算得到总体 Pearson 相关系数x y, ,可以通过表 1 进行相关性判定,得到两者

的相关性。

 

1 相关性系数判定表

相关系数的绝对值

相关性

0.0~0.2

极弱相关或无线性相关

0.2~0.4

弱相关

0.4~0.6

中等程度相关

0.6~0.8

强相关

0.8~1.0

极强相关

2、相关系数的显著性检验

求解得出 Pearson 相关性系数后,为了检验 Pearson 相关系数是否说明了显著相关,基于假设检验进行分析。

Step1. 作出原假设:蔬菜类商品不同品类或不同单品之间存在关联关系。

H0 :=0

备择假设:蔬菜类商品不同品类或不同单品之间不存在关联关系。

H1: 0

Step2. 构建统计量

n−2

                                                            t = r  1−r2                             (4)

式中,n 为样本数量(观测值个数),r 为 Pearson 系数。从上式得知,t 的绝对值越大,原假设就越可能出错,越应拒绝原假设。

Step3. 构造拒绝域

根据 t 统计量所对应的分布,在置信水平1−下,t 统计量应满足:

 

                                                                  P t{ t              }

,N P− −1

2

其中,t,N− −P 1 是tN P− −1分布的上分位数。

                           2                                                      2

拒绝域为:(−,−t ,N− −P 1)(t ,N− −P 1,+) 

                                                2                          2

 

Step4. 最小置信度的比较:

P,则应拒绝原假设H0,即说明自变量 X 和因变量 Y 存在统计意义下

显著的线性相关关系。

由此,完成了在满足正态性条件情况下对 Pearson 系数的显著性检验。

Pearson 相关性是用来衡量两个变量之间线性关系强度的统计指标。若系数越接近于 0,说明两者线性相关关系越弱;若相关系数越接近于 1 或-1(也即绝对值越接近于 1),说明两者线性相关关系越强。相关系数为 0,只能说明其无线性相关关系,但可能有其他非线性相关关系。

 

5.1.3 模型求解

蔬菜的品类规模统计结果如图 3 所示:

 

2 蔬菜类商品品类规模

 

以花菜类数据为例,绘制出花菜类销量随时间变化曲线如图 4:

 

3 销量趋势

 

相关性分析的假设检验,满足图 5 所表现的趋势。

 

4 假设检验正态分布曲线

 

5.1.4 问题结论

5.1.4.1 第一小问

对蔬菜的品类和单品的销量分别作短期、长期的统计量计算,由此观察其随时间的分布规律,如下表 2-5:表 2 短期品类销量分布规律

品类/ 统计量

花菜类

花叶类

辣椒类

茄类

食用菌

水生根茎类

均值

38.53

182.97

84.41

21.36

70.13

37.40

方差

513.6 9

7423.46

2852.7 8

172.99

2349.1 0

982.37

极差

186.1 6

1265.47

604.23

118.93

511.14

296.79

最高销售量分布区间

[27.75

,28.25

]

[140.75,141.2 5]

[52.75,

53.25]

[12.75,13.2 5]

[46.75,

47.25]

[9.75,10.25]

标准差

22.66

86.16

53.41

13.15

48.47

31.34

四分位数间距

25.30

94.91

50.95

14.92

50.01

35.85

日销量变异系数

0.59

0.47

0.63

0.62

0.69

0.84

 

3 长期品类销量分布规律

品类/ 统计量

花菜类

花叶类

辣椒类

茄类

食用菌类

水生根茎类

均值

1160.

18 

5514.47 

2544.13 

623.11 

2113.52 

1127.26 

                     19283                             1086064.6

方差                       2881055.59      78545.18  914098.31  405260.42 

0.03 

极差

2018.

15 

8240.31 

4379.66 

1260.23 

3770.10 

2366.18 

最高销售量分布区间

[436. 75,43

7.25]

[1890.75,18

91.25]

[802.75,80

3.25]

[967.75,96

8.25]

[761.75,76

2.25]

[157.75,15

8.25]

标准差

439.1

1697.37 

1042.14 

280.26 

956.08 

636.60 

四分位数间距月销量

716.5

<think>好的,我现在要处理用户提到的微信登录Scope参数错误或没有权限的问。首先,我需要理解这个问的背景。微信登录涉及到OAuth 2.0授权流程,应用需要请求用户的特定权限,也就是scope参数。用户可能在开发过程中遇到了scope相关的错误,比如参数错误或者权限未获得,导致无法正常获取用户信息。 接下来,我应该回忆一下微信开放平台的相关文档。微信的scope主要有snsapi_base和snsapi_userinfo两种。snsapi_base是静默授权,只能获取openid,而snsapi_userinfo需要用户同意,可以获取用户个人信息。如果应用在请求时使用了snsapi_userinfo,但用户没有授权,或者后端没有正确处理,就会导致错误。 可能的原因有几个方面。首先,开发者可能在构造授权链接时scope参数填写错误,比如拼写错误或者格式不对。正确的参数应该是scope=snsapi_base或scope=snsapi_userinfo,并且作为URL参数正确传递。其次,应用可能没有在微信开放平台正确配置权限,比如某些接口的权限未申请,导致即使scope正确,也没有权限访问。此外,用户可能在授权时拒绝了某些权限,导致后续获取用户信息失败。还有可能是在获取access_token或用户信息时,没有正确使用返回的token,或者步骤有误。 然后,我需要考虑如何解决这些问。首先,检查授权链接中的scope参数是否正确,确保没有拼写错误,并且正确拼接在URL中。例如,链接应该是https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect。其次,确认微信开放平台中的设置,确保应用已经获得了所需的权限,比如用户信息权限可能需要审核或配置。然后,处理用户拒绝授权的情况,应用应该有相应的错误处理机制,引导用户重新授权。另外,检查access_token的获取和使用是否正确,确保在获取用户信息时使用的是正确的token,并且遵循微信的API调用步骤。 还需要注意一些其他事项,比如redirect_uri的编码问,必须使用urlencode处理,并且与开放平台中配置的一致。另外,授权作用域的不同会影响能获取的信息,如果只需要openid,使用snsapi_base会更简单。如果需要用户信息,必须使用snsapi_userinfo,并且用户同意授权。此外,用户信息接口的调用频率可能有限制,频繁调用可能导致问。 最后,可能需要检查微信的文档,确认是否有更新,或者是否有其他限制。如果是新应用,可能需要等待审核通过才能使用某些权限。如果是服务器配置问,比如access_token存储或刷新不当,也可能导致后续步骤出错。此外,网络问或微信API的临时故障也可能引发错误,需要排除这些可能性。 总结一下,用户遇到的scope参数错误或权限问,需要从参数检查、权限配置、用户授权处理、API调用步骤等方面逐一排查。确保每一步都符合微信的要求,才能解决这个问。</think>当你在使用微信登录功能时遇到“Scope 参数错误”或“没有 Scope 权限”的提示,通常是由于以下原因导致的。以下是详细解释及解决方法: --- ### **1. 什么是 `scope` 参数?** 在微信 OAuth2.0 授权流程中,`scope` 是用于定义应用请求用户授权的权限范围的参数。常见值有两种: - **snsapi_base**:静默授权,仅获取用户的 `openid`(无需用户手动同意)。 - **snsapi_userinfo**:需用户手动同意,可获取用户的 `openid`、昵称、头像等详细信息。 --- ### **2. 常见错误原因** #### **(1) 参数值错误** - **错误示例**:`scope` 拼写错误(如 `snsapi_user`)、未使用正确的大小写(必须全小写)。 - **正确写法**:`scope=snsapi_base` 或 `scope=snsapi_userinfo`。 #### **(2) 权限未配置** - 如果请求 `snsapi_userinfo`,需在微信开放平台([open.weixin.qq.com](https://open.weixin.qq.com))的**应用详情页**中,确保已开通对应接口权限(如“获取用户个人信息”)。 #### **(3) 用户拒绝授权** - 用户可能在授权页面拒绝了权限申请,导致后续无法通过 `snsapi_userinfo` 获取详细信息。 #### **(4) 授权流程错误** - 未遵循微信 OAuth2.0 流程:未正确获取 `code` → `access_token` → `userinfo`。 --- ### **3. 解决方法** #### **(1) 检查授权链接格式** 确保生成的微信登录链接格式正确,例如: ```url https://open.weixin.qq.com/connect/oauth2/authorize? appid=APPID& redirect_uri=REDIRECT_URI& response_type=code& scope=snsapi_userinfo& state=STATE#wechat_redirect ``` - 将 `APPID`、`REDIRECT_URI` 替换为实际值。 - `scope` 参数需根据需求填写 `snsapi_base` 或 `snsapi_userinfo`。 #### **(2) 检查微信开放平台配置** - 登录微信开放平台,进入应用管理页面,确认: - 已启用“网页授权”功能。 - 若使用 `snsapi_userinfo`,需确保接口权限已开通。 - `redirect_uri` 域名与平台中配置的**授权回调域名**一致(需全匹配)。 #### **(3) 处理用户拒绝授权** - 若用户拒绝授权,微信会回调 `redirect_uri` 并返回 `error` 参数,例如: ``` redirect_uri?error=access_denied&error_description=user_denied ``` - 需在代码中捕获此类错误,提示用户重新授权。 #### **(4) 检查后端逻辑** - 确保通过 `code` 正确获取 `access_token` 和 `openid`。 - 若使用 `snsapi_userinfo`,需调用 `https://api.weixin.qq.com/sns/userinfo` 接口,传入 `access_token` 和 `openid` 获取用户信息。 --- ### **4. 其他注意事项** - **编码问**:`redirect_uri` 需进行 URL 编码(如使用 `encodeURIComponent`)。 - **测试环境**:在本地开发时,确保使用微信测试号或已配置合法域名。 - **接口频率限制**:频繁调用可能触发微信接口限制,需合理设计授权逻辑。 --- 通过检查以上步骤,通常可以解决 `scope` 参数或权限相关的问。如果仍无法解决,建议查阅[微信官方文档](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/WeChat_Login.html)或联系微信开放平台技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值