大型超市“购物篮”分析问题
(2009-08-31 17:25:32)
标签:
数学建模杂谈 |
分类: 数学建模 |
一:摘要
本题是关于对大型超市“购物篮”的分析问题,并根据分析的结果来设计出实际的实施方案以达到最大限度的赢利。由于本题中假设了题目中的数据真实有效,而且各个问题的解决都是以他们为准,所以对数据的处理方法很重要。
本题包含了四个题目,题目都是递进的,后一个问题接着上一个问题来思考的,直到最后两个问题就接近了实际的应用目的了。
问题一,我们把商品的组合情况作为了未知因素,并通过从一般情况出发,找出了商品的组合方式和商品间的关联密切程度的函数关系式 ,它是一个只与商品组合A(k,l)有关的函数。只要给出任何商品组合,就可以找出它的密切程度即概率。
问题二,我们利用穷举法,把已知的数据用Matlab编程进行筛选,把符合要求的数据筛选出来,经过求解我们得到表4结果。即当商品组合对为(217,283),买的人数最多,为23次,其他组合也分布在10次以上。
问题三:运用最优解的方法,求得了不同的商品组合时候的利润,并得到了最大利润为:商品组合为529,598时,利润为6717.84。再根据问题二中已经找出了各个商品的组合对组合情况及他们的利润,把购买次数大的和利润大的两个因素结合起来考虑,找出符合以下要求的组合:商品组合中有一个利润大一个利润小,同时满足表格5中购买次数比较大是商品组合。促销中,我们可以把上面组合中利润高的商品:354,529,752,661,829,打折f(i),其它商品价格不变。经过多次进行市场实践调查,得到当打折为f(i)的时候可以得到最大的利润,那么f(i)就是我们需要的打折数据。根据这个数据,我们进行促销,这就是我们的促销的初步方案。
问题四:就是根据我们对以上各个问题的解决思路找到使得超市赢利最大的方法,即是把商品间关联密切程度大的商品集中在一起,方便顾客的购买。同时达到赢利最大的目的。
二.问题重述
作为超市的经理,经常关心的问题是顾客的购物习惯,他们想知道:“什么商品组成集合顾客多半会在一次购物时间同时购买?”。现在假设你是某超市的市场分析员,已经掌握了该超市近一个星期的所有顾客购买物品的清单和相应商品的价格,需要对超市经理一个合理的“购买篮”分析报告,并提供一个促销计划的初步方案。
1)
2)
例如:如果商品1,商品2,商品3在1024个购物记录中同时出现了200次,则可以以为这三个商品同时频繁出现了200次,商品数量是3.
3)
4)
符 |
|
|
商品的种类数量 |
m |
购买商品人的数目 |
|
=1时,表示人i买了商品j
=0时,表示人i没买商品j |
A(k,l) |
含有k个指定商品的组合中的第L个, |
|
所有商品购买的次数的平均值 |
|
所有商品购买的次数的标准差 |
b( j ) |
商品编号为j的商品买的总人数 |
|
商品的总的利润 |
|
商品的编号 |
|
商品i的利润 |
Z |
为促销前销售量 |
Z’ |
为促销后销售量 |
四:模型假设
1)题中给的数据真实有效。
2)对问题三中,各个商品的利润保持不变。
3)表格中的数据能真实地反映当地消费者的购物情况。
4)短时间内商品的销售情况不变。
五:模型的分析,建立,求解
问题一:
模型分析:
根据题目要求,首先对数据进行标准化处理,即把每个人买了的商品定为1,没有买的商品定为0,同时要求顾客买的商品不超过16种,要使得该模型能定量的表达超市的多种商品间的关联关系的密切程度,我们可以建立人与商品种类和数目间的函数关系。
2:建立模型:
下面我们定义对于所给的数据的一个广义的购买函数:
F(A(k,l),i)=
所以,A(k,l)集合中的元素的关联关系是:
上式是关于任何一个顾客所要买的商品的种类有关的函数关系式,而与人的序号无关。
3:求解模型
表格 1同时我们可以利用Matlab编程来计算出所有商品被购买的平均次数X和标准差Y,程序见附录三。
运行结果分别为:
其中b( j )表示商品编号为j的商品买的总人数。
根据以上模型关系我们可以估计,对以后任何第i位顾客可能买的商品的数目和种类的概率的大小。
实例:我要根据给出的数据和已经建立的模型估计第i位顾客,他要同时买商品编号为888和208的可能性为多大,即该两种商品的关联关系的密切程度?
我们就可以直接利用Matlab编程(程序见附录二),输入商品编号888和208,运行,它就会得到如下图形结果:
表格 2
由图我们可以知道,在1024个顾客中只有5个人同时买了编号为888和208两件商品,那么我们所求的这个顾客他同时买编号为208和888两件商品的关联程度(即概率):
也就是说,他购买该两种产品的概率为0.48828%,同时这个数字也表达了该两种商品的关联程度就是0.48828%
综合以上所述,只要给出任何的商品组合,就可以根据上述模型算出这种组合的可能性好大,也就算出了超市中商品间的关联密切程度。
问题二 :
1.模型分析:
从已给的数据中找出最频繁被同时购买的的商品数量,利用模型一得出的数据结果和Matlab编程来找出不同商品间关联密切程度比较大的商品。这就是我们需要求得的信息。
2:建立,求解模型:
=
用H(B(i))表示B(i)中1的个数,筛法思想就是,筛出L到U之间满足H(B(i)=k的二进制数,再用这些二进制数对于到1~n中的数,这样就完成了 个元素的组合。
利用VB编程来组合筛选。程序代码见附录四。
实例:
从1~13这13 个数中筛选出由七个数构成的所有组合(注:下图中n位二进制数是从左向右,依次代表1~13是否在这个组合中,是0就不在,是1就是在,由于计数习惯,最后一位不是1就被省略,所以有些数看上去就不是n位二进制)
由上表我们可以看出,购买次数最多的是商品编号为368的商品,被购买了76次。
为了对问题的简化,我们先对两种商品组合进行筛选。
利用Matlab编程来找出以上66种商品的含两种商品的组合对以及所对应的购买人数(附录程序3),并进行筛选比较大的购买次数,筛选时我们取商品组同时购买的次数的临界数值为 : 由解决问题一时模型一已经算出所有商品被购买的平均次数X,即约为10次,筛选后得到如下结果:
由上表我们可以知道:在所有的商品组合中,被同时购买的次数最多的是组合(217,346),它在1024个顾客中同时被购买了23 次。其他商品的购买次数都在10附近。
问题三:
1)建立模型:
根据我们对问题一和二的解决和建立的模型,同时依据给出的各个商品的利润,我们设计促销方案。
从问题二中解的筛选出来的满足P(A(k,l)) ≥s的最大的k值若干个组合构成集合族 ,同时,对每件商品的利润 ,那么,总的利润为:
其中:下标 ∈A(k,l)
2)模型求解:
利用Mathematica求解最大值。
由题中给出的(附录程序4)找出模型二中得出的商品组合的各个商品的利润,然后利用上式计算出各个组合的总利润,得到如下表格:
由上面的表格我们可以看出,商品组合利润最高的是组合529和598,利润为6717.84。
首先,从问题一中已经得到了各个商品被购买的次数,如下:
从题中给出的附录2中的各个商品的利润,找出上面对应的商品购买次数大的商品的利润,如下:
再根据问题二中已经找出了各个商品的组合对组合情况及他们的利润,下面把购买次数大的和利润大的两个因素结合起来考虑,找出符合一下要求的组合:
(354,752)(354,583)(354,58)(354,27)(529,368) ( 529,598)( 529,782 ) (752,58)( 752,27)(661,780)(661,720)( 661,217)(829,789)(829,368)
以上组合就满足我们的筛选要求,所以促销中,我们可以把上面组合中利润高的商品:354,529,752,661,829,打折f(i),其它商品价格不变。
Z为促销前销售量,Z’为促销后销售量,
根据利用总利润关系式:T=Z*W
算出统计打折后的超市总利润的增加量= T- T’
经过多次进行市场实践调查,得到当打折为f(i)的时候可以得到最大的利润,那么f(i)就是我们需要的打折数据。根据这个数据,我们进行促销,这就是我们的促销的初步方案。
最后的f(i)需要市场实践调查才能决定。
问题四:
根据我们对以上问题的分析,即对各个商品间的关联密切程度和商品需求的多少,以及各个商品利润的总的最大值的求解方案的确立,我们结合了实际情况和超市的现状,对该超市经理的报告建议如下:
1).把各个商品间的关联密切程度最高的商品摆放集中并比较显眼,方便于顾客在超市容易找到自己的商品,那样会更加的节约顾客的时间,也给自己的超市留有更大的空间,那样就不会使得超市变的那么拥挤,同时会让更多的顾客前来光顾。
2).在超市门口公布各个商品关联密切度高的商品的摆放位置,方便顾客。
3).对顾客需求量大的商品,该超市应该保持超市的货源广,保持不缺货,尤其是对利润比较高的,并且需求大的商品要求更为大。
4).对关联密切程度不是很高的商品,购买人数不是很大的商品,我们应该注意结合其他畅销的产品的“广告效应”,也就是把这类商品尽量的摆放在和它有一定关联密切程度但是不是最高的关联度商品旁边。
5).把关联密切程度最低的其他商品摆放在一起。
六.模型的评价
七:参考文献:
[1]
[2]
[3]