2023年数学建模国赛C题(蔬菜定价)助攻论文&支撑材料.doc

本博客下载链接包含修改的word版本, 可免费下载阅览学习, 也可作为数学建模相关课程作业修改上交:

链接:https://pan.baidu.com/s/1HxzDk3q0p6y2xpuJyxPgvw?pwd=qtnc

提取码:qtnc

       在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差,大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需求情况每天进行补货。本文通过统计学分析,并建立不同的季节性预测模型、规划模型、组合评价等模型对蔬菜类商品的定价策略与补货决策的影响做出了深入的研究。

       针对问题一,首先进行数据预处理,根据单品编码对附件中的数据进行合并,并对异常值进行剔除处理,接着针对蔬菜品类以及不同的单品类分别进行讨论,根据不同的时间维度对蔬菜六大品类使用描述性统计分析进行品类汇总分析、使用线性回归分析进行变化趋势分析、根据频率分布直方图对其分布频率进行分析、使用ARIMA季节性分解通过季节性因子的强弱对其周期性进行分析。同理,对单品类蔬菜进行描述性统计汇总分析、使用Spearman相关性检验对其相关性进行分析等。从而得出季节周期性较强的蔬菜品类以及对应的单品类蔬菜,以及其相关性、频率、变化趋势等统计性指标随不同月份、不同年份的变化规律情况。最后。针对蔬菜品类与其单品之间的相互关系,构建灰色关联分析模型,以月份为单位进行统计,根据其灰色关联系数的大小,从而来评价不同单品对蔬菜品类之间的关联性强弱,最终计算出六大类蔬菜中排名前五的灰色关联系数对应的单品类蔬菜。

       针对问题二,首先我们分析销售量与成本加成定价之间的关系是由于考虑到需要对未来七天的组合定价策略进行分析,因此我们首先构建LSTM时间序列预测模型,对成本数据进行预测。接着考虑到数据呈现无序性,使用最小二乘法,对成本加成定价以及销量总量这个二者之间的关系进行一次函数,二次函数以及三次函数的拟合。最后构建基于遗传算法的商超最大收益组合定价策略模型,考虑其相关性的影响,我们在目标函数中引入惩罚函数对其进行约束,防止其正相关导致的定价无限大的情况,求解方面使用遗传算法进行求解,最终得出总利润为162260元,同时得出最终的定价策略,并且根据拟合的方程式求解出对应的补货量策略。

       针对问题三,我们在问题二的基础上考虑各单品之间的组合定价策略,首先我们对数据进行初步的筛选,对其进行总销量加和后剔除了销量为0对应的样本数据,并且对销量和定价进行了拟合趋势分析,删除了二者呈正相关对应的单品类蔬菜。接着对清洗后的数据选择总销售量、平均损失率、打折销售次数、销售次数、平均定价五个指标,构建基于熵权Topsis的单品类蔬菜选择模型,使用熵权法计算出五个指标影响其供应商重要性的权重情况,同时根据其综合得分情况,选择了排名前31的单品类蔬菜。最后,对单品类蔬菜进行线性回归的预测,得出了未来一天的定价情况,在此基础上构建单品类蔬菜商超最大收益组合定价策略模型,使用遗传算法进行迭代求解,最终得出总利润为804.118,并且给出了29个单品类蔬菜对应的定价策略以及补货量。

       针对问题四,我们分析了其可增加数据存在一定的模糊性,因此我们使用层次分析法对新增数据进行表示,构建目标层,准则层和方案层,其中。准则层为:供应商稳定性、地理位置、旺季销量、顾客反馈情况和库存周转率,方案层为定价、成本和销量,最终在通过一致性检验之后得出成本、定价和销量的权重分别为0.2848、0.322、0.3927。同时根据熵权法计算出了三者的权重分别为0.2969、0.5396、0.1634,并且将两种方法进行得到的权重取平均值处理作为组合赋权,构建熵权-主成分组合评价模型,将组合权重引入到问题三的模型中,观察其在动态权重系数变化下模型利润的变化。同时也对问题三中模型的约束进行了讨论,对27~33个蔬菜单品类进行遍历求解,得出不同的单品蔬菜各树下的利润情况。

关键词:决策;成本加成定价;ARIMA季节性分解;灰色关联分析;遗传算法;熵权-主成分组合评价模型; 

问题思路分析

       对本文提出的四个问题,我们逐一做如下分析:

问题一的分析:问题一需要分别分析蔬菜各品销售量的分布规律,蔬菜单品销售量的分布规律、以及二者之间的相互关系。

第一步分析:对数据进行清洗,首先附件1-附件4中的检查处理缺失值、异常值和重复数据,接着根据单品编码,通过VLOOKUP函数对附件1、附件2、附件3和附件4的数据相互进行合并。

第二步分析:针对大类以及单品的分布规律,以月和季度为单位,对数据进行拟合分析,找出随时间的变化规律。

第三步分析:针对二者之间的相互关系,本文由B站up: 全糖奶茶屋提供构建一个灰色关联分析模型,以六大蔬菜的品类作为母序列,其余的单品列作为子序列来观察灰色关联系数,从而判断之间的一个关联性强弱。

问题二的分析:问题二需要对未来的七天内的定价策略进行一个优化,先汇总大类数据进行预测,然后进行规划模型的建立,最终给出各蔬菜品类未来一周的日补货总量和定价策略

第一步分析:使用LSTM对成本数据进行预测。

第二步分析:构建线性回归模型,对销量以及成本的关系进行挖掘,得出拟合关系式。

第三步分析:建立合理的规划模型,包含利润收益最大化的目标函数、决策变量、以及对应的约束条件,使用遗传算法对该规划模型去求解,最终得出的结论即为补货总量和定价。

问题三的分析:问题三在问题二的基础上,需要对每一个小品类进行单独的预测,小品类需要选控制在27~33个范围之内,之后得出7月1日单品补货量和定价策略

第一步分析:根据题目中所给的要求,根据时间、销量和相关性等因素对数据进行初步的筛选。

第二步分析:构建综合评价模型对影响单品蔬菜重要性的蔬菜进行评价,求解出排名前33对应的单品类蔬菜。

第三步分析:使用遗传算法对该规划模型去求解,最终得出的结论即为补货总量和定价。

问题四的分析:问题四我们增加周末销量情况以及节假日特殊需求两个指标与问题2和问题3所给出的定价策略进行比较,观察最后利润的变化多少,从而来判断我们捕获和定价策略的好坏。

第一步分析:使用层次分析法对未知的模糊数据进行评价得出方案,销量,成本,定价三者的主观权重。

第二步分析:使用熵权法求解出方案,定价成本三者的客观权重,并将其与主观权重进行组合赋权,取平均值处理。

第三步分析:将求解到的权重带入到问题三的模型中,与进行改进与未改进前的总利润进行对比,得出我们所修改后的方案的优良。

第一小问MATLAB代码:

load("alldata.mat")
for i=1:36
    yuepinglei(:,i)=sum(pinglei(:,(i-1)*30+1:i*30),2);
end
for i=1:36
    yuexiaoliang(:,i)=sum(xiaoliang(:,(i-1)*30+1:i*30),2);
end
plot(1:36,yuepinglei)
%shuju = [yuepinglei(1,:)',yuexiaoliang(1:100,:)'];对应123456品类
%shuju = [yuepinglei(3,:)',yuexiaoliang(106:124,:)'];
%shuju = [yuepinglei(4,:)',yuexiaoliang(125:134,:)'];
%shuju = [yuepinglei(5,:)',yuexiaoliang(135:179,:)'];
%shuju = [yuepinglei(6,:)',yuexiaoliang(180:251,:)'];
shuju = [yuepinglei(2,:)',yuexiaoliang(101:105,:)'];
r = size(shuju,1);%多少行
c = size(shuju,2);%多少列
%第一步,对变量进行预处理,消除量纲的影响
avg = repmat(mean(shuju),r,1);
%将A矩阵看作元素,复制组成m行n列,即将A复制m*n个
biaozhunhua = shuju./avg;
%定义母序列和子序列
Y = biaozhunhua(:,1); %母序列
X = biaozhunhua(:,2:c); %子序列
Y2 = repmat(Y,1,c-1); %把母序列向右复制到c-1列
absXi_Y = abs(X-Y2);
a = min(min(absXi_Y)); %全局最小值
b = max(max(absXi_Y));%全局最大值
ro = 0.5; %分辨系数取0.5
% roC = CalcRo(absXi_Y);
% gamma = (a+roC.*b)./(absXi_Y+roC.*b) %计算子序列中各个指标与母序列的关联系数

 gamma = (a+ro*b)./(absXi_Y+ro*b) ;%计算子序列中各个指标与母序列的关联系数
disp("子序列中各个指标的灰色关联度分别为:");
ans = mean(gamma);
[ans1,ind]=sort(ans,'descend')  %灰色关联度排序 
%ans中每一列就是子序列相对于母序列的灰色关联系数(对每一列求平均值)
%gamma就是每一个指标(i,j)的灰色关联系数

%%绘制灰色关联分析的折线图(方法1)
figure(1)
t=[1:36];
color = ["b","r","g","b","r"];
for i=1:5
    plot(t,gamma(:,i),color(i) + '*--')
    hold on
end
xlabel('year')
legend('青梗散花	','西兰花','枝江青梗散花','紫白菜(1)','紫白菜(2)')  %这是第二大类的标签!!可以自己更换
title('灰色关联分析')

第二小问MATLAB代码(部分):

dpl=dpinglei(:,end-30:end);
xpl=xpinglei(:,end-30:end);
cpl=cpinglei(:,end-30:end);
for ic=1:6
%   a_pl(ic,:)=polyfit(dpl(ic,:),xpl(ic,:),1);
    m_pl(ic)=mean(dpl(ic,:));
    sig(ic)=std(dpl(ic,:));
end
%scatter(dpl(1,:),xpl(1,:))
x0=repelem(m_pl,7);
st=repelem(sig,7);
options=optimoptions("fmincon","MaxFunctionEvaluations",10^6,"PlotFcn","optimplotfval");%可视化
[x,fval]=fmincon(@L,x0,[],[],[],[],x0-3*st,x0+3*st,[],options);
for ic=1:6
    djmatrix(ic,:)=x((ic-1)*7+1:ic*7); % 未来定价数据
    jinhuo(ic,:)=fxl(djmatrix(ic,:),ic); %未来进货数据
end



function val=L(dj)   %目标函数,数据处理
djmatrix=zeros(6,7);
for ic=1:6
    djmatrix(ic,:)=dj((ic-1)*7+1:ic*7);
end
val=Lm(djmatrix);
end

function val=Lm(djmatrix)   %真目标函数
%未来成本,6*7,负责成本核算,这里给的只是实例数据
wlcb=[6.1476989	13.994251	10.606823	7.9008255	8.5110722	6.5969296
4.8580537	15.259626	11.206909	8.9890785	8.1689205	6.3184876
3.6843719	14.611933	10.727154	12.863586	7.4184489	6.5268817
6.3237219	17.182564	10.582369	17.310322	9.3497105	6.4716306
5.8653026	26.11763	10.391122	14.897045	7.2120557	6.369381
2.3762505	28.031452	10.183777	15.186477	7.1728835	6.053875
5.4142294	22.302324	9.9022379	13.700641	7.1882553	5.7958174]';

%品类均价和方差
m_pl=[6.58187045013486	10.8524752475248	13.3659028760019	8.54627062706271	9.28276652665266	7.73874194562313];
sig=[1.54076901353446	2.17375684286012	2.19241044473482	1.40474207099688	1.49191370529714	1.43181278500442];
plsunhao=[15.5100000000000	13.6500000000000	12.8300000000000	9.45000000000000	9.24000000000000	6.68000000000000];
val=0;
for ic=1:6
    val=val+(djmatrix(ic,:)-wlcb(ic,:)/(1-plsunhao(ic)))*fxl(djmatrix(ic,:),ic)';
end
val=-val;
end


function xl=fxl(dj,ic)
%拟合数据,详细见polyval用法
a=[-1.09167340809390	160.974848315650
-0.847134396905971	29.1781438240271
-2.47885447362914	49.6093163802442
-0.178311472444653	26.8611757800613
-3.34036170219676	116.038841062170
6.98901829713750	7.99570218248404];
xl=polyval(a(ic,:),dj);
end

第三小问MATLAB代码(部分):

x0=m_dd;
st=s_dd;
A=-diag(a_dx(:,1));
b=-2.5+a_dx(:,2);
options=optimoptions("fmincon","MaxFunctionEvaluations",10^6,'PlotFcn','optimplotfval');
len=length(dic_q3);

[x,fval]=fmincon(@L,x0,A,b,[],[],zeros(1,len),[],[],options);
for i=1:len
    y(i)=fxl(x(i),i);%补货量
end


function val=L(x)
load('indata.mat')
val=0;
for ic=1:length(dps)
    val=val+(x(ic)-wc(ic)*(1+dps(ic)))*polyval(a_dx(ic,:),x(ic))';
end
val=-val;
end

function xl=fxl(x,ic)
load("indata.mat")
xl=polyval(a_dx(ic,:),x);
end

第四小问MATLAB代码(部分):

x0=m_dd;
st=s_dd;
A=-diag(a_dx(:,1));
b=-2.5+a_dx(:,2);
options=optimoptions("fmincon","MaxFunctionEvaluations",10^6,Display="iter");
len=length(dic_q3);

[x,fval]=fmincon(@L,x0,A,b,[],[],zeros(1,len),[],[],options);
for i=1:len
    y(i)=fxl(x(i),i);%补货量
end


function val=L(x)
load('indata.mat')
val=0;
for ic=1:length(dps)
    val=val+(0.2909*x(ic)-0.3225*wc(ic)*(1+dps(ic)))*0.3927*polyval(a_dx(ic,:),x(ic))';
end
val=-val;
end

function xl=fxl(x,ic)
load("indata.mat")
xl=polyval(a_dx(ic,:),x);
end

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2023华数杯全国大学生数学建模竞赛是由中国未来研究会大数据与数学模型专业委员会、天津市未来与预测科学研究会大数据分会举办的国家级比赛。该比赛旨在培养大学生的创新意识和运用数学方法解决实际问的能力,并为创新性人才的培养奠定基础,为各行各业培养和选拔优秀人才。参赛作品将获得组委会详细的书面评价,并进行赛后数学建模技术辅导,以提高学生的数学建模水平。 比赛将在20238月4日(周四)18:00开始,持续到8月7日(周日)20:00。比赛结果将预计在20238月中下旬公布。参赛对象包括研究生组、本科生组和专科生组三个组别,每个队伍由1-3名大学生和最多1名指导教师组成。目一般来源于各行业实际问,经过简化形成,分为A、B、C三个目,难度和国赛数模类似。比赛费用为每队200元,用于大赛组织、命、评审、专家指导等工作。 在比赛中,获得全国一等奖、二等奖、三等奖以及优秀奖的队伍将获得荣誉证书。此外,比赛还提供微信公众号“爱数模的小驴需要助攻”的思路助攻服务,帮助参赛者更好地进行数学建模。 总之,2023华数杯全国大学生数学建模竞赛是一个具有较高含金量和规模的国家级比赛,旨在培养大学生的科学精神和数学解决问的能力。参与这个比赛可以作为国赛前的模拟比赛,对参赛队伍提供了全面的支持和指导。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [2023华数杯数学建模](https://blog.csdn.net/m0_58496908/article/details/132069559)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [2023华数杯全国大学生数学建模竞赛思路模型代码](https://blog.csdn.net/weixin_45499067/article/details/131838529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [2021华数杯全国大学生数学建模竞赛C1](https://download.csdn.net/download/weixin_35784267/86357964)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值