数学建模论文.docx
《数学建模论文.docx》由会员分享,可在线阅读,更多相关《数学建模论文.docx(18页珍藏版)》请在冰豆网上搜索。
数学建模论文
DVD在线租赁的优化设计
摘要
本文主要研究了DVD在线租赁的优化问题。
对问题一,在假定的租期下,考虑能看到DVD的会员数量与会员总体数量的比例要求,建立了DVD的需求量应满足的不等式关系,求得满足会员观看率的DVD数量。
为保证希望看到某种DVD的会员中至少50%可以在一个月内看到该DVD,网站至少应准备DVD16250张、DVD23125张、DVD31563张、DVD4782张、DVD5391张。
如果要求保证三个月内至少95%的会员能看到想看的DVD,则应准备DVD13959张、DVD21980张、DVD3990张、DVD4495张、DVD5248张。
对问题二,给出了最大满意度的评价标准,即对DVD需求强烈的会员的需求能得到最大满足时,顾客的满意度达到最大。
因此按照会员对DVD需求的强烈程度制定了目标优先级,建立了多目标整数规划模型。
考虑到对网站来说,数据处理要求有很强的时效性,因此最好采用快速算法求解。
本文采用较为快捷的贪婪算法,通过MATLAB编程计算,得到了最优分配方案(见模型求解部分)。
对问题三,分两个阶段进行求解。
首先,采用处理问题一的思路,求出保证一个月内95%的会员得到其想看的DVD时,每种DVD的最小购买量。
然后把每种DVD的购买量作为约束条件,并按照会员对DVD需求的强烈程度制定目标优先级,建立了多目标规划整数模型,采用贪婪算法,通过MATLAB编程计算,得到了最优分配方案(见模型求解部分)。
最后,对DVD的需求预测、购买模型提出了以下改进方法和建议。
现实生活中,受欢迎的DVD的价格往往相对较高,即每种DVD的价格可能不同。
因此网站购买DVD的费用由每种DVD的购买量及其价格两方面决定。
以购买DVD的总费用最小为目标函数,建立了整数规划模型。
第二,考虑当会员对某种DVD的需求不强烈、网站满足其需求时,会员的满意度并不能有大的提高,而网站的运营成本却增加了。
因此可以认为DVD的需求量与会员的需求强烈程度有关。
尝试运用模糊数学的思想,给出需求程度的评价方法,把需求不强烈的会员的需求从总需求量中减去,在对顾客满意度影响不大的前提下,使DVD的购买数量减少,从而降低网站的运营费用。
在现实中网站要处理大量的数据,而且对数据处理速度有很高的要求,本文给出的模型和算法可以方便快捷的计算出近似的最优分配方案,满足网站的现实需求。
另外,本文的模型还可以进一步推广,用来解决图书在线租赁、网上购物等许多实际问题,具有一定的通用性。
一、问题重述
在高度发达的网络信息时代,人们的生活越来越依赖于网络。
资源共享是人们的需要,由此产生了一系列网上有偿服务。
其中音像制品的在线租赁就是一种流行的服务。
它能随时随地满足顾客的需要,使得人们不出门就能得到想要的服务,实现远程控制。
考虑如下的在线DVD租赁问题。
人们只需交纳一定的月租费成为会员,就可以得到每月最多2次的服务,每次租的DVD的数量3张。
看完后寄回就可租下一次,邮费网站提供。
会员对哪些DVD有兴趣,只要在线提交订单,网站就会通过快递的方式尽可能满足要求。
会员提交的订单包括多张DVD,这些DVD是基于其偏爱程度排序的。
网站会根据手头现有的DVD数量和会员的订单进行分发,以下问题:
1)网站正准备购买一些新的DVD,通过问卷调查1000个会员,得到了愿意观看这些DVD的人数。
此外,历史数据显示,总体上60%的会员每月租赁DVD两次,而另外的40%只租一次。
假设网站现有10万个会员,应该至少准备多少张,才能保证希望看到每类DVD的会员中至少50%在一个月内能够看到该DVD?
应该至少准备多少张才能保证在三个月内至少95%的会员能够看到该DVD呢?
2)已知网站手上100种DVD的现有张数和当前需要处理的1000位会员的在线订单,如何对这些DVD进行分配,才能使会员获得最大的满意度?
具体列出前30位会员(即C0001~C0030)分别获得哪些DVD。
3)假设每种DVD的现有数量全部为0。
如何决定每种DVD的购买量,以及如何对这些DVD进行分配,才能使一个月内95%的会员得到他想看的DVD,并且满意度最大?
4)给出DVD的需求预测、购买和分配中应有哪些重要问题值得研究?
明确提出问题,并尝试建立相应的数学模型。
二、符号说明
满足会员看到第i种DVD的概率达到题目要求时,所需的DVD的数量;
网站的注册会员总数;
愿意看第i种DVD的人数占网站总人数的百分比;
i会员的编号;
jDVD的编号;
第i个会员是否取第j张DVD,取为1,不取为0;
K会员对DVD的评价,k=1,2,…10;
网站拥有的j类DVD的数量;
题目的表二中每类DVD的数量;
第j类DVD的需求量;
第j类DVD的订购费用;
第j类DVD的单价
第i个会员对第j张DVD的偏爱程度;
第i个会员对第j张DVD的满意度;
三、问题分析与假设
1.记每月租赁DVD两次的会员为A类会员,每月租赁DVD一次的会员为B类会员。
由于会员按月缴纳会费,可以认为DVD每次的租赁时间最长为一个月。
即对于B类会员来说,在某一次租赁DVD时,其租期最长为一个月。
但对于A类会员来说,因其每月租赁两次DVD,必须要求其两次的租期的和小于或等于一个月,不妨假设对B类会员来讲,每次的租期最大为半个月。
如果DVD的租期短,则在一个月内,该DVD可以重复多次被租出,对于网站来讲,为满足会员需求所准备的DVD的量就小。
但是,会员观看DVD需要花费一定的时间,DVD邮寄需花费的时间,如果租期小,会员的满意程度就会下降。
由于网站无法确定每位会员租赁DVD的租期,不妨假定网站在最坏的前提下确定DVD的购买量。
即假设每类会员的租期为其最大租期,A类会员的租期均为15天,B类会员的租期均为30天。
2.由于要求所需DVD数量最小,所以假设每次出租时,网站将所有的DVD租出,即不会存在有DVD空闲而未被利用的情形。
3.由于1000人这一样本的数量很大,假设对1000人的调查结果对10万人也成立
4.假设会员看到某种DVD后不会再次租该种DVD。
5.认为不愿意观看DVD(i)的会员不会租看DVD(i),所以不同种类DVD的需求量可以分开来计算。
6.现实中,每种DVD的价格一般是不同的,受欢迎的DVD往往价格高。
在解决前三个问题时,假定每种DVD的价格相同。
对于每种DVD价格不同的情形,在第四问中考虑。
四、模型的建立与求解
(1)问题一的模型与求解
1.1模型建立
网站出租DVD时,不能判断会员属于A类还是B类,即A、B两类会员的地位平等。
第i类DVD应准备的张数为
,又大量历史数据显示,A类会员约占会员总的60%,B类会员约占会员总数的40%,则在一次出租时,
张DVD租给A类会员的数量是
,租给B类会员的数量为
。
由于B类会员的租期为半个月,其所租的DVD必须在每月中旬归还,故有
张DVD在每月中旬归还,为了增加DVD的周转次数,这些DVD应再次出租,由假设2,
张DVD必须全部租出。
又由假设4,对第i类DVD,每个会员只能看一次。
那么在一个月内,共有
个会员看过第i类DVD。
要求保证看过第i类DVD的人数占希望看到该DVD的会员总数的50%以上,即有如下的不等式成立:
1.2模型求解
分别取
;求解以上的不等式,可以很快得到每种DVD的需求量。
表1:
一个月内观看人数超过50%的所需DVD数量
DVD
DVD1
DVD2
DVD3
DVD4
DVD5
准备的张数
6250
3125
1563
782
391
1.3模型的推广
如要保证三个月内至少95%的会员能看到想看的DVD,则只需将上面的模型进行简单的推广。
三个月内,共有
个A类会员看到第i类DVD;同理,共有
个B类会员看到第i类DVD。
因此:
同理可以求出此时每种DVD的需求量
。
表2:
三个月内观看人数超过95%的DVD所需数量
DVD
DVD1
DVD2
DVD3
DVD4
DVD5
准备的张数
3959
1980
990
495
248
(2)问题二的模型与求解
2.1问题分析
原题的表中D001~D100表示有100种DVD,C001~C1000表示1000个会员,会员在线订单用数字1,2,……表示,数字越小表示对应的偏爱程度越高(以后称这些数字为乏味指数)数字0表示对应的DVD当前不在会员的在线定单中,也就是说当表中的
与
相交的数字为1时,表示会员
最喜欢看
。
通过分析,最优解只可能存在于一些较优的组合当中,可以用贪婪算法获得这些组合,贪婪算法的思想是:
每次选择当前最优的点,如不满足条件,再选次优点以此类推。
因此分配这些DVD,首先应该将DVD租给“乏味指数”最小(不包括“零”)的人,也就是表中数字为1时所对应的会员
其次依次是乏味指数为2,3,……,10的会员,只有这样才能是会员获得最大的满意度。
2.2模型的建立
s.t.
上式中k表示会员对DVD的评价,k=1,2,…10
表示第一目标优先级,
表示第二目标优先级……
表示第十目标优先级;
2.3模型求解
基于上述思想,可以设计这样的编程:
由于受到每种DVD的现有数量的限制,应当采取按列遍历搜索的顺序,从上向下,从左向右,依次搜索表中的数字1,2,3,……,10。
现以第一列为例来说明方法,从第1列的第1行开始从上向下依次寻找乏味指数为1,2,3,……,10的位置(即其对应的会员和DVD),首先开始寻找乏味指数为1的位置,每找一个1,就让一个初值为0的变量k自增一次,即k=k+1(实际意义就是把1张DVD1租给了乏味指数为1的会员),当遍历完第一列中数字为1的位置以后,如果k仍然小于DVD1的总数10,便继续对第一列中数字为2的位置进行搜索(现实意义就是当第一列中对DVD1乏味指数为1的会员都已经得到DVD1以后,便把剩下的DVD1租给第一列中对DVD1乏味指数为2的会员);这样按顺序搜索乏味指数为1,2,3,……,10的位置,直至变量k的增至10为止(表示10张DVD1此时已经被分配完),此时结束对第1列的搜索。
同理按同样的方法对第2,3,……,100列进搜索。
搜索完后,表中有些数字被搜索到了(表示该位置所对应的会员已经租到DVD了),有些则没有被搜索到(表示该位置所对应的会员没有租到DVD),为此我们建立一个与该表有相同行列的矩阵,在被搜索到的数的位置,矩阵中对应位置的元素取1,相反取0,这样便得到一个1000*100由0和1组成的矩阵,同理,取1的位置表示该位置所对应的会员已经分配到DVD了,取0则表示没有分配到.由这个矩阵就可以近似地表示分配的结果,因此称其为分配矩阵。
上述过程只能满足每列上的要求,即每种DVD的总数都大于或等于租了该DVD的会员数,并不能表示每人每次租了三张DVD,这种情况表现在所得到的矩阵每一行中的“1”的数目不一定为3,这时就需要对该矩阵进行修正.所用的方法是这样的:
1.将矩阵还原为“原先的表”,也就是将矩阵中位置上的数字1换成表中与之相对位置上的“乏味指数”,数字为0的位置上仍然是0,现在所得到表与原先表的不同之处是:
现在的表上的非零数(即乏味指数)就是原来表中相同位置上的数,但比原来的表少了一些非零数(因为真正租DVD的会员的一定要比真希望租到DVD的会员少)。
2.搜索出每一行中最小的三个数(0不能算在内,当然如果此行中非零数还不到三个,自然就不用进行这一步),再将该行中其他的“乏味指数”都取零(表示每个会员都租了自己喜欢的三个DVD,而没有租其他的DVD)得到有一张新表.
3.将新表中的非零数再一次换回数字“1”,得到新的矩阵。
再考虑非零数小于三个的行,将其补充至三个,补充的原则是:
(1)对于固定的某一行而言,搜索旧表中该行的乏味指数,找到一个比新表中该行的最大的乏味指数还大且差值最小的乏味指数,
(2)将其所对应的位置返回到新的矩阵中来,并将该位置上的0换成1。
(3)再检查该位置所对应的列上的“1”的数目是否大于该列上DVD的总数,如果大于,
(4)返回步骤
(1),找到差值次小的乏味指数,重复步骤
(2),直至条件(3)满足为止。
这样便可以得到更加完善的分配矩阵了。
基于以上的算法思想用Matlab编程可解得原表所对应的分布矩阵,由于是1000*100
的庞大矩阵,不便于输出,这里只以另一种方式例举30个会员租DVD的情况。
表3:
由分配矩阵得到会员C0001~C0030的DVD分配方案
C0001
C0002
C0003
C0004
C0005
C0006
C0007
C0008
C0009
C0010
DVD11
DVD6
DVD4
DVD18
DVD11
DVD16
DVD26
DVD31
DVD17
DVD14
DVD41
DVD44
DVD32
DVD23
DVD21
DVD53
DVD45
DVD35
DVD78
DVD41
DVD98
DVD62
DVD50
DVD41
DVD34
DVD66
DVD66
DVD71
DVD100
DVD85
C0011
C0012
C0013
C0014
C0015
C0016
C0017
C0018
C0019
C0020
DVD19
DVD7
DVD21
DVD23
DVD13
DVD10
DVD47
DVD12
DVD66
DVD18
DVD63
DVD41
DVD78
DVD43
DVD52
DVD84
DVD51
DVD60
DVD84
DVD61
DVD66
DVD98
DVD96
DVD52
DVD85
DVD97
DVD67
DVD78
DVD86
DVD89
C0021
C0022
C0023
C0024
C0025
C0026
C0027
C0028
C0029
C0030
DVD2
DVD38
DVD29
DVD37
DVD69
DVD68
DVD22
DVD8
DVD26
DVD37
DVD45
DVD55
DVD81
DVD41
DVD81
DVD83
DVD50
DVD34
DVD30
DVD70
DVD50
DVD86
DVD95
DVD76
DVD94
DVD95
DVD78
DVD82
DVD44
DVD98
(3)问题三的模型与求解
问题三要求给出每种DVD的购买量,以及对这些DVD的分配方案,使得一个月内95%的会员得他到想看的DVD,并且满意度最大。
因为使95%的会员得到其想看的DVD和使会员的满意度最大两个目标之间存在明显的先后顺序,所以考虑分两个阶段进行优化设计。
阶段一:
表示第i种DVD的购买量,采用处理问题一的思路,则得到下面的不等式:
于是,可以马上求出保证一个月内95%的会员得到其想看的DVD时,每种DVD的最小购买量。
(见表4)
表4:
一个月内观看人数超过95%所需的DVD的数量
DVD1
DVD2
DVD3
DVD4
DVD5
DVD6
DVD7
DVD8
DVD9
DVD10
50
55
52
59
47
52
52
60
56
54
DVD11
DVD12
DVD13
DVD14
DVD15
DVD16
DVD17
DVD18
DVD19
DVD20
57
58
51
61
50
56
61
55
60
69
DVD21
DVD22
DVD23
DVD24
DVD25
DVD26
DVD27
DVD28
DVD29
DVD30
58
60
65
56
53
60
52
50
58
58
DVD31
DVD32
DVD33
DVD34
DVD35
DVD36
DVD37
DVD38
DVD39
DVD40
60
52
55
49
65
58
55
56
52
52
DVD41
DVD42
DVD43
DVD44
DVD45
DVD46
DVD47
DVD48
DVD49
DVD50
71
62
56
54
63
56
56
53
55
56
DVD51
DVD52
DVD53
DVD54
DVD55
DVD56
DVD57
DVD58
DVD59
DVD60
64
55
59
55
58
59
65
46
51
62
DVD61
DVD62
DVD63
DVD64
DVD65
DVD66
DVD67
DVD68
DVD69
DVD70
56
62
63
65
59
63
54
58
63
60
DVD71
DVD72
DVD73
DVD74
DVD75
DVD76
DVD77
DVD78
DVD79
DVD80
57
63
51
49
54
52
53
59
49
59
DVD81
DVD82
DVD83
DVD84
DVD85
DVD86
DVD87
DVD88
DVD89
DVD90
59
46
43
50
54
47
57
44
56
59
DVD91
DVD92
DVD93
DVD94
DVD95
DVD96
DVD97
DVD98
DVD99
DVD100
64
56
56
54
61
47
57
60
48
52
阶段二:
把第一问的结果作为约束条件,采用处理问题二的思路。
建立多目标规划模型:
s.t.
上式中k表示会员对DVD的评价,k=1,2,…10;
表示第一目标优先级,
表示第二目标优先级……
表示第十目标优先级;
由于优化模型的规模太大,仍考虑采用问题二中给出的贪婪算法思想,用MATLAB编程求得了最优分配方案。
由于是1000*100
的庞大矩阵,不便于输出,这里只以另一种方式例举30个会员租DVD的情况。
(结果见软盘中的电子表格,例如表中C0001行和DVD1的1列的交点处数据是1,表示会员C0001租到DVD1)
表5:
会员C0001~C0030的DVD分配情况
C0001
C0002
C0003
C0004
C0005
C0006
C0007
C0008
C0009
C0010
DVD1
DVD5
DVD31
DVD23
DVD12
DVD27
DVD45
DVD17
DVD10
DVD5
DVD11
DVD62
DVD32
DVD49
DVD34
DVD61
DVD66
DVD31
DVD17
DVD14
DVD49
DVD71
DVD90
DVD68
DVD63
DVD67
DVD82
DVD35
DVD70
DVD67
C0011
C0012
C0013
C0014
C0015
C0016
C0017
C0018
C0019
C0020
DVD61
DVD5
DVD49
DVD42
DVD24
DVD10
DVD5
DVD12
DVD15
DVD18
DVD66
DVD7
DVD80
DVD46
DVD52
DVD48
DVD11
DVD17
DVD25
DVD33
DVD82
DVD98
DVD92
DVD89
DVD70
DVD76
DVD31
DVD81
DVD90
DVD40
C0021
C0022
C0023
C0024
C0025
C0026
C0027
C0028
C0029
C0030
DVD2
DVD25
DVD36
DVD24
DVD23
DVD8
DVD6
DVD46
DVD26
DVD70
DVD25
DVD81
DVD67
DVD43
DVD81
DVD83
DVD38
DVD47
DVD33
DVD84
DVD50
DVD86
DVD75
DVD72
DVD90
DVD91
DVD50
DVD57
DVD89
DVD98
(4)问题四的模型:
4.1基于DVD价格变化的模型
在市场经济中,DVD的价格与受欢迎程度有关,设一张碟的价格
。
就购买中的费用建立模型:
Miny=
假定DVD是新产品,价格随着时间的变化而变化,
=
f(
),通过Excel数据提取近似的需求量
,大大简化了模型,可以考虑采用列举法通过计算机搜索求最优解。
4.2用模糊数学思想对数据进行处理
基于大量数据的分析,我们发现许多数据对分配结果是没有影响的,因此我们考虑到用模糊处理方法对数据进行初步优化。
下面先对几个概念作解释:
1)模糊概念(模糊现象):
指没有严格的界限划分而使得很难用精确的尺度来刻划的现象,反映模糊现象的种种概念为模糊概念。
2)隶属度:
设
是论域
到[0,1]的一个映射,即
:
→[0,1],
称
是
上的模糊集,而函数
称为模糊集
的隶属函数,
称为
对
糊集
的隶属度。
3)模糊概念的清晰化
我们可以设定一个数
(比如0.6),当一个元素的隶属度大于这个数时,我们就可以认为该元素属于这个集合,这就是模糊概念的清晰化。
4)定义;
=1/
称为满意度
5)模型的建立
首先对表格中的数据做如下处理:
将数据为0的替换为100000。
目的是使偏爱度为0的转换成满意度也为0。
也就是对表中不为0的进行模糊处理。
;其中n=
假设隶属度
=0.4
;0.4表明将距离d=0.4
以外的数据去掉。
例如:
对DVD1进行模糊处理:
n=84,
=0.4
=0.4*21.16468/84=0.10078;
再根据满意度知应该删掉偏爱程度为9和10的数据,从而减少了计算量,降低了大距阵的运算时间。
五、模型的评价与改进
1.误差分析
1.)问题一的模型是以网站经营中遇到的最坏情形为出发点建立的。
现实中,会员的租期很可能小于最大的租期,使得DVD在一个月内周转的次数增加,必然使得DVD的购买量减小。
因此模型计算出的最小购买量应比实际值偏大。
2.)贪婪算法在求解时不能保证求得精确的最优解,但是对于现实生活和工程来说,其求解精度完全可以满足要求。
2.稳定性分析
1.)考虑对某行,会员对DVD的评价全部增加、减少一个档次或部分有数字格变为无数字格,利用给出的算法编程计算,发现最优分配方案只有部分的变动。
2.)考虑对某列,进行类似的操作可以得到相同的结论,可以认为模型具有一定稳定性。
3.模型的优缺点
1)利用贪婪算法,通过MATLAB编程计算快速求得复杂的多目标规划模型的近似最优解,