2005年数学建模B题(含代码).doc_第1页
2005年数学建模B题(含代码).doc_第2页
2005年数学建模B题(含代码).doc_第3页
2005年数学建模B题(含代码).doc_第4页
2005年数学建模B题(含代码).doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2013高教社杯全国大学生数学建模竞赛承 诺 书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。我们参赛选择的题号是(从A/B/C/D中选择一项填写): B 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名): 华南师范大学增城学院 参赛队员 (打印并签名) :1. 2. 3. 指导教师或指导教师组负责人 (打印并签名): 日期: 年 月 日赛区评阅编号(由赛区组委会评阅前进行编号):2013高教社杯全国大学生数学建模竞赛编 号 专 用 页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):评阅人评分备注全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):DVD在线租赁摘要问题(三):题目需要我们回答购买各种的数量来使95%的会员能看到他想看到的,并且要怎么分配才能使满意度达到最大;每种建立以总的购买数最小、会员满意度最大为双目标的规划模型。通过确定在一个月内每张的在每个会员中手中的使用率;然后通过c语言程序编程来确定每种的购买量;建立0-1规划模型;通过软件使满意度达到最大,来最终确定的分配;一级,二级目标,将多目标规划转化为单目标;同时将第j种DVD的购买量的整数约束去掉,求解出最小购买数为178.125张。将最小购买数作为约束条件,优化满意度后,得到最大满意度为95%;然后对此时DVD的购买量向上取整,得到总购买数为186张。当购买数为186张时,会员满意度达到97%。三、模型假设1、租赁周期为一个月,每月租两次的会员可以在月中再租赁一次;2、同一种每人只能租赁一次;3、在租赁过程中无损坏;4、会员每月至少交一次订单;5、会员只有把前一次所借的DVD寄回,才可以继续下一次租赁6、月底全部收回,继续下个周期的租赁;7、随着时间的推移,该网站的会员们的流动情况不会出现大变动。 四、符号说明符号意义Q的张数会员对订单的数量会员对某种偏爱度第j种总中张数B会员对网站的满意度会员的标号j的种类网站对购买的量一、问题的重述 随着信息时代的到来,网络成为人们生活中越来越不可或缺的元素之一。许多网站利用其强大的资源和知名度,面向其会员群提供日益专业化和便捷化的服务。例如,音像制品的在线租赁就是一种可行的服务。这项服务充分发挥了网络的诸多优势,包括传播范围广泛、直达核心消费群、强烈的互动性、感官性强、成本相对低廉等,为顾客提供更为周到的服务。 考虑如下的在线DVD租赁问题。顾客缴纳一定数量的月费成为网站会员,可以订购DVD租赁服务。会员对哪些DVD有兴趣,只要在线提交订单,网站就会通过快递的方式尽可能满足要求。会员提交的订单包括多张基于其偏爱程度排序的DVD。网站会根据手头现有的DVD数量和会员的订单进行分发。每个会员每个月租赁次数不得超过2次,每次获得3张DVD。会员看完3张DVD之后,只需要将DVD放进网站提供的信封里寄回(邮费由网站承担),就可以继续下次租赁。考虑回答下面问题:(1)网站准备购买一些新的DVD,通过问卷调查1000个会员,得到了愿意观看这些DVD的人数(表1给出了其中5种DVD的数据)。此外,历史数据显示,60%的会员每月租赁DVD两次,而另外的40%只租一次。假设网站现有10万个会员,对表1中的每种DVD来说,应该至少准备多少张,才能保证希望看到该DVD的会员中至少50%在一个月内能够看到该DVD?如果要求保证在三个月内至少95%的会员能够看到该DVD呢?(2)表2中列出了网站手上100种DVD的现有张数和当前需要处理的1000位会员的在线订单,如何对这些DVD进行分配,才能使会员获得最大的满意度?请具体列出前30位会员(即C0001C0030)分别获得哪些DVD。(3)继续考虑表2,并假设表2中DVD的现有数量全部为0。如果你是网站经营管理人员,如何决定每种DVD的购买量,以及如何对这些DVD进行分配,才能使一个月内95%的会员得到他想看的DVD,并且满意度最大?(4)如果你是网站经营管理人员,你觉得DVD的需求预测、购买和分配中还有哪些重要问题值得研究?请明确提出你的问题,并尝试建立相应的数学模型。表1 对1000个会员调查的部分结果DVD名称DVD1DVD2DVD3DVD4DVD5愿意观看的人数200100502510表2 现有DVD张数和当前需要处理的会员的在线订单(表格格式示例)DVD编号D001D002D003D004DVD现有数量10401520会员在线订单C00016000C00020000C00030003C00040000 注:D001D100表示100种DVD, C0001C1000表示1000个会员, 会员的在线订单用数字1,2,表示,数字越小表示会员的偏爱程度越高,数字0表示对应的DVD当前不在会员的在线订单中。二、问题的分析 问题分析:题中列出了网站手上20种DVD的现有张数和当前需要处理的100位会员的在线订单,要得到使会员获得最大满意度的DVD分配方案,这可以通过建立线形规划模型来实现。由于每个会员对不同DVD的偏爱程度不同,且题中所给的列表中会员的在线订单中数字越小表示会员的偏爱程度越高。由于每个会员可以按偏爱程度在20种DVD (可以参考)五、模型的建立与求解(一):问题一由历史数据,60%的会员每月租赁两次,而另外40%的人只租一次。由假设会员如果在当月归还了,一般会同时有第2次的租赁要求,因此认为有60%的会员在一个月有两次租赁需求,其他40%的会员为一次。近似认为会员的需求基本上能满足,从而认为有60%的会员会在一个月内归还,另外40%则不能。在一个月内归还的还可以满足另一个会员,又新购一般会较受欢迎,因此认为该一直在周转中,没有出现该空闲情况。故可以合理地认为一张新在一个月内以60%的概率满足两个会员,40%的概率满足一个会员,从而一张的相对一个人来说使用率为 ;需要准备的张数为;由调查结果1000个会员中愿意观看DVD的购买量为。模型一、 保证希望看到该的会员中至少50%在一个月内能够看到该需要准备的的张数:保证希望看到该的会员中至少95%在三个月内能够看到该需要准备的的张数:模型的求解:当时 保证希望看到该的会员中至少50%在一个月内能够看到该需要准备的的张数保证希望看到该的会员中至少95%在三个月内能够看到该需要准备的的张数:同理可得各种需要准备的张数,计算得下表1: 表1:各种需要准备的张数名称12345为50%时购买量700035001750875350为95%时购买量443422171109555222为了验证模型一的准确性:我们建立了模型二模型二我们将每月租凭两次的会员平均分成两部分,一部分是在月初借,月中还;第二部分是在月中借,月末还;这样就将第一部分月初借的在月中的时候再借给第二部分;这样就能使需要准备的数达到最小。保证希望看到该的会员中至少50%在一个月内能够看到该需要准备的的张数:保证希望看到该的会员中至少95%在三个月内能够看到该需要准备的的张数:模型求解:保证希望看到该的会员中至少50%在一个月内能够看到该需要准备的的张数:保证希望看到该的会员中至少95%在三个月内能够看到该需要准备的的张数:同理可得各种需要准备的张数,计算得下表2: 表2:各种需要准备的张数名称12345为50%时购买量700035001750875350为95%时购买量443422171109555222(2) 、问题二会员对某种偏爱度的量化:会员对偏爱度是随着订单数字的增加而减少,其中会员对网站的满意度与满足会员的偏爱度是挂钩的;因此我们可用一非增函数来度量;从心理学的角度来看:随着的增加,相邻的两个订单数字之间的偏爱度的差会越来越小,所以我们定义了; 不同会员在对同一种偏爱指数相同时,我们在分配时优先考虑编号在前的会员。要确定把那张租给哪个会员,才能使满意度达到最大,因此我们引入表示把第种是否租给第个会员;从问题我们可以看出这是一个如何分配的问题,我们不妨把其中现有的张数看成现有判断条件为需要完成的任务,把每一为会员看成完成这些任务的人选,其中他们对各种的偏爱度就代表他们完成相对应的任务的能力;我们就要使他们对各种任务的完成能力达到最大; 约束条件所有的会员分配到j种的数量之和不能超过现有的第j种的张数 1、2.100;为0-1变量)由于网站每次对每个会员的分配要么0张要么3张所以 (i=1、2、.1000;为0-1变量)对问题(2)建立01规划模型。模型三:目标函数; 约束条件:(、均为0-1变量;i=1、2.1000;j=1、2.100);模型求解: 用 数学软件实现对此题0-1规划模型的求解;执行的代码见附录一;可以获得的最大满意度为1634.712其中前30位会员(即C0001C0030)获得DVD情况如下表所示 前30名会员获得的情况会员编号编号C000184198C0002 6 44 62C000332 50 80C0004 7 18 41C000566 68 11C0006 19 53 66C0007 26 66 81C000831 3571C0009 53 78100C001041 55 85C001159 6366C001231 2 41C0013 2178 96C0014 5223DVD 89C0015 1385 52C0016 84 97 10C0017674751C0018 41 60 78C0019 84 86 66C0020 45 89 61C0021 53 45 50C0022 57 55 38C0023 95 29 81C0024 76 41 37C00259 69 94C0026 2268 95C0027 5878 80C0028 8 34 37C0029 5530 26C0030 6237 98(3) :问题三问题三是问题一和问题二的结合,要求我们在确保95%的会员能得到他想看的的前提下使会员对网站的满意度达到最大;在这里我们需要解决的问题如何使采购的总数量最少;2、如何每种的采购量,才能使客户的满意度达到最大;因此我们求出需要准备总数的上下限,假定网站在一个月内分配给会员一次(三张他想要看的)即认为会员得到他想看的。由于在一个月内一张使用率为0.7设购买第种的数量为,相当于能够满足网站在一个月内需求为j种的会员数。每一种都满足95%的会员的观看,这样既能满足题目要求,又能使满足度达到最大;所以需要购买种的数量有如下表达式:上限:每月租二次的人两次会员还回来的全部不能重复利用,则得出可以借出的总数的上限为 下限:每月租二次的人两次会员还回来的全部能重复利用,则得出可以借出的总数的下限为 利用模型一的方法进行求解: 目标函数: (为0-1变量,即当小于6大于时0,就为1;否则就为0;j=1、2.100) 约束条件: (为0-1规划;当=0时=0,=1,j=1、2.100)建立0-1规划模型目标函数: 约束条件:(为0、1、2变量,为0-1变量;i=1、2.1000;j=1、2.100);模型求解:在通过语言进行编程求解中过程中,在数据的输入方面存在很大困难,所以我们先把里们的数据复制记事本然后复制到,通过查找、替换我们把空格替换成逗号,然后就把数据复制带里面,这样数据的处理就得到了解决;然后通过c语言和进行编程可以求出各种的购买量,执行的程序见附录二与附录三; 表2:的购买量编号1 2 3 4 5 6 7 8 9 10 购买量43674876395456586949编号11121314151617181920购买量51555163517552455167编号21222324252627282930购买量68496541505952395071编号31323334353637383940购买量47686062686143595852编号41424344454647484950购买量88665165645257505464编号51525354555657585960购买量71525745575957465958编号61626364656667686970购买量47605560486065616166编号71727374757677787980购买量64664759463939575651编号81828384858687888990购买量59334535634466424355编号919293949596979899100购买量73494345794767623966 (4) :问题四我觉得的需求预测、购买和分配中还要考虑收入和费用;假设:会员的入会费为元,网站每月共有名新会员加入;每月的收入就为每一张的平均购买费为元,的购买数量为;每月的购买费就为每一张使用的时间为月,所以每月的折旧费为元;网站每月正常使用费用(如工人的工资,日常饮用水等)为元;建立模型五+所以每月的购买数量在的需求预测方面还需要考虑会员的入会费和的更新速度;在的分配方面还需要考虑会员的在线时长,会员们之前所订购的的种类,消费习惯。六、模型结果的分析3、在问题三方面我们对每一种都满足95%的会员的观看,这样既能满足题目要求使的总数要达到满足95%的会员的观看,又能使满足度达到最大; 附件一:model:sets:dvd/1.100/:total;!total为网站现有的数量;huiyuan/1.1000/; !自定义0-1向量;pianai(huiyuan,dvd):data0;bianliang(huiyuan,dvd):data1;Endsets!目标函数(总体满意度最大);max=sum(pianai(i,j):data1(i,j)*data0(i,j);! x (i,j) ,t (i)为0-1变量;for(bianliang:bin(data1); ! 约束条件每人可租数Yi=3或0;for(huiyuan(j):sum(bianliang(j,i):data1(j,i)=3); ! 所租总数小于网站现有的数量; for(dvd(i):sum(bianliang(i,j):data1(i,j)=total(i);data:total=10 40 15 20 20 12 30 33 35 25 29 31 28 61 2 28 28 26 31 38 34 29 35 22 29 81 1 19 25 41 29 35 1 40 39 5 106 30 29 2 110 6 15 36 34 11 32 25 2 64 40 26 33 26 61 2 11 38 44 36 27 31 42 44 12 81 10 35 33 30 2 40 15 11 28 24 20 88 9 28 31 8 22 3 70 21 34 4 38 27 39 28 24 15 50 24 36 55 2 40 ; ! 网站现有的数量;data0=6 0 0 0 0 0 8 1 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 5 1 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 7 0 0 0 3 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 .0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 2 0 0 0 9 8 0 0 0 0 0 0 0 0 0 0 0 0 0 4 3 0 0 5 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 1 0 0 0 0 0 0 0 0 0 0 5 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 2 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 10 0 7 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 6 3 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 10 0 0 6 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 1 0 0 0 0 0 0 4 ;enddataend 附录二:#includeint main(void)int x1000100=6,0 ,0 ,0 ,0 ,0 ,8 ,1 ,0 ,0 ,4 ,0 ,0 ,0 ,0 ,0.; /输入每位会员的的在线订单 int maxB,i,j,c1000100,b100,k=0,y=0,n100=0;for(i=0;i1000;i+)for(j=0;j100;i+) if(xij=0) cij=0; else cij=1/xij; /得出偏爱度,当1/xij不为0时;cij=1/xij;当当1/xij为0时cij=0;/进行01规划;for(i=0;i1000;i+) for(j=0;j100;i+) if(xij=0) xij=0; else if(xij=3) xij=1; else xij=0; /求出需要第j种DVD的人数for(j=0;j100;i+ ) for(i=0;i1000;i+)nj=nj+xij;/得出第j种DVD需采购数量for(j=0;j100;i+)bj=0.7*0.95*nj;/再次进行0-1规划for(j=0;j100;i+) for(i=0;i1000;i+)if(kbj)k=k+xij; else xij=0; for(i=0;i1000;i+) for(j=0;j100;i+) if(y!=3) y=y+xij; else xij=0; /输出需要购买j种DVD的数量,并且求出满意度。for(j=0;j100;i+) printf(%d,bj);for(i=0;i1000;i+) maxB=maxB+cij*xij; /输出满意度printf(%dn,maxB);return 0; 附录三:model:sets:dvd/1.100/:total;!total为网站现有的数量;huiyuan/1.1000/; !自定义0-1向量;pianai(huiyuan,dvd):data0;bianliang(huiyuan,dvd):data1;Endsets!目标函数(总体满意度最大);max=sum(pianai(i,j):data1(i,j)*data0(i,j);! x (i,j) ,t (i)为0-1变量;for(bianliang:bin(data1); ! 约束条件每人可租数Yi=3或0;for(huiyuan(j):sum(bianliang(j,i):data1(j,i)=3); ! 所租总数小于网站现有的数量; for(dvd(i):sum(bianliang(i,j):data1(i,j)=total(i);data:total=43 67 48 76 39 54 56 58 69 49 51 55 51 63 51 75 52 45 51 67 68 49 65 41 50 59 52 39 50 71 47 68 60 62 68 61 43 59 58 52 88 66 51 65 64 52 57 50 54 64 71 52 57 45 57 59 57 46 59 58 47 60 55 60 48 60 65 61 61 66 64 66 47 59 46 39 39 57 56 51 59 33 45 35 63 44 66 42 43 55 73 49 43 45 79 47 67 62 39 66; ! 网站现有的数量;data0=6 0 0 0 0 0 8 1 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论