2015高教社杯全国大学生数学建模竞赛承诺书我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网站下载).我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题.我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出.我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性.如有违反竞赛章程和参赛规则的行为,我们将受到严肃处理.我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等).我们参赛选择的题号是(从A/B/C/D中选择一项填写): A我们的参赛报名号为(如果赛区设置报名号的话): A06007001 所属学校(请填写完整的全名):北华大学参赛队员 (打印并签名) :1.2.3.指导教师或指导教师组负责人 (打印并签名):(论文纸质版与电子版中的以上信息必须一致,只是电子版中无需签名.以上内容请仔细核对,提交后将不再允许做任何修改.如填写错误,论文可能被取消评奖资格.)日期: 2015 年 9 月日赛区评阅编号(由赛区组委会评阅前进行编号):2015高教社杯全国大学生数学建模竞赛编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):快递员的送货策略问题摘要在货物运输的过程中,合理的选择货物路线很重要,他不仅可以加快配送速度,提高服务质量,还可以降低配送成本,增加经济效益.本文构建货物路线的规划模型,运用图论思想,Dijkstra算法,经典Floyd算法,利用lingo与MATLAB进行编程求解,给出了最佳的送货路线,另外将货物的分配问题转化成旅行商推销问题,进行编程求解;根据运输路线策略中的成组法,用射线旋转法进行区域划分,以送货员最大承受力为50公斤,货物体积不大于1立方米为依据,利用整体规划进行区域规划,从而得到最优化模型.问题一以最快完成送货任务并返回仓库的路线与方式,分析题知尽可能地缩短路径可以达到尽快完成任务的目标.在题目所给的各个点的坐标基础上,为确定最短路径,先应用Dijkstra算法求解出任意两点的直线距离,运用Floyd 算法,借用MATLAB求出任意两点之间的最短距离,应用lingo软件进行优化求解,求得遍历路程结果为,时间为.问题二在问题一的前提下进行了对送货时重量和体积的约束,经过分析,快递员需要在送货途中返回一次仓库,进行补货.根据问题一中最小生成树,根据聚集原则,将区域分成两部分,进行分次求解,第一部分路程为,时间为,第二部分路程为,时间为.关键字:Dijkstra算法;经典Floyd算法;0-1规划法;最小距离v1.0 可编辑可修改一、问题重述小张是某快递公司送货员,其负责送货的区域如图,该区域包含50个送货地点,仓库在图中O点处.送货时,小张只能沿图中的道路行进,没有其他道路可选.送货时,小张的平均行进速度为24公里/小时,每件货物交接时间3分钟(如同一地点有多件货物,交接时间也按每件3分钟计算).根据某天小张的送货清单,请你们帮助他解决下列问题:1.设计最快完成送货任务并返回仓库的路线与方式,给出结果并注明送货路线.2.实际上小张每次送货时,只能装载重量不超过50公斤,体积不超过1立方米的货物.这样,小张不能将全天的货物一次取走,只能中途返回仓库取货.在这种情况下,设计最快完成送货任务并返回仓库的路线与方式,给出结果并注明送货路线.以上两种情况都不考虑中午休息时间.图1 送货地点示意图表1:送货地点坐标二、问题分析在日常生活中购物送货问题,如何在有效的时间内送到货物且能最大限度的节约成本,合理规划过程中的最短路线.我们需要在考虑题的过程中重点分析各个点的路径问题,送货员能承受的重量体积等因素条件下,规划处最优路线.首先我们利用excel处理数据,求出总重量,总体积等数据,在求出每条路的总距离,对于送货员能承受的重量等情况,我们利用射线旋转法进行划分,0-1型规划法对问题进行巧妙的转化,从而求解.对于问题一:不考虑装载重量和物体体积,最佳运送方案就为找出一条走遍所有送货点然后返回出发点的最短路线.根据表1和表2所给出的送货点位置信息即可计算出所有直通点的距离.根据以上数据即可利用Floyd算法算出任意两点间的距离矩阵.然后运用lingo软件就可以得到最优路线.对于问题二:由于质量和体积的约束,综合总的质量与体积得出送货员将货物的分配问题转化成旅行商推销问题,进行编程求解,根据运输路线策略中的成组法,用射线旋转法进行区域划分,以送货员最大承受力为50公斤,货物体积不大于1立方米为依据,利用整体规划进行区域规划,从而得到最优化模型.三、问题假设1.假设送货员只能沿如图路线图行驶,不能走其他的任何路线.2.在联通线路中,送货员可自由选择路口.3.交接货物只需要3分钟,行进速度总是24公里/小时,路上行进畅通无意外阻碍.4.如果要从任意一点出发前往另一点,送货员必然选择最短路径.5.送货员路程中都是匀速行走.6.不考虑送货员中午休息及中途休息.四、符号说明五、模型建立与求解模型分析不考虑装载重量和物体体积,所以最佳运送方案就为找出一条走遍所有送货点然后返回出发点的最短路线.根据表1和表2所给出的送货点位置信息即可计算出所有直通点的距离.(程序见附录3)根据以上所得数据,即可采用0-1规划模型寻找送货点间的最短路径.图2坐标点之间的关系模型的建立利用图论思想,将已连接的送货点一一标明,送货点抽象为下列图的顶点.任意两顶点间都有通路.讲两点之间的路线权值赋为,两坐标间的距离.这样送货点的分布图就构成了加权网络图见图(2).问题就转化为在给定加权网络图中寻找从原点0出发满足做给约束条件下,行遍所有顶点,并再回到0点,使得总权最小.设假最佳送货路线问题由送货点1,2,3…,n 组成,W ij 表示送货点i 到送货点j 之间的 距离决策变量定义为: 1,选择从送货点i 到送货点j,X ij =0, 否则, 其线性(整数)规划模型为: 引入0-1决策变量,最短路经过弧(i,j ),,最短路不经过弧(i,j ).考虑最短路径唯一和,必须从O 点出发并反回O 作为约束条件.目标函数是路径上所有弧长度之和最小,我们建立0-1规划模型:∑∑===511511min i j ij ij x h z1511511≤=∑∑==j ji i ijx x1,151115111==∑∑==i i j jx x∑===nj ij n i x1,...,2,1,1,...,3,2,,,1n j i j i n nx u u ij j i =≠-≤+-n,1,2...,j i,j,,10=≠=i ijx 或n j u j,...,,,210=≥1.上式目标函数(1)给出了送货路线的总长度.2.约束(2)保证由送货点i 到送货点j ,3.约束(3)保证i 只能到一个送货点.4.(4)式保证了经过全部送货点.在以上约束下用MATLAB 和lingo 软件求解最佳路线.模型的求解(1)求任意两点之间的直线距离:根据Dijkstra 算法,并运用MATLAB ,可求出任意两点间的直线距离(程序见附录3,结果见附录4).从中选出可行解:(2)求任意两点间的最短距离:运用经典Floyd算法,并借助MATLAB,可解出任意两点间的最短距离(程序见附录5,结果见附录6).(3)求快递员遍历的最短距离:lingo是一种用来解规划的常用软件,故本问采用lingo进行求解(程序见附录7).由lingo计算出的结果可以给出送货路线如下:0→15→8→10→20→9→19→48→37→46→17→34→42→11→23→33→47→44→18→22→29→45→31→38→16→14→7→26→41→13→17→50→24→30→36→2→5→3→12→32→1→40→21→4→49→39→43→25→35→28→6→0总路程为,时间为问题二模型的建立与求解1.模型建立:∑∑===511511m in i j ijij x h z1511511≤=∑∑==j ji i ijx x1,151115111==∑∑==i i j jx x∑===nj ij n i x1,...,2,1,112t t t =+ ;1t t t =+路货;2t t t =+路货;50niji m=<=∑ ;50050niji m-=<=∑;050niji V=<=∑; 50050n iji V-=<=∑;2. 模型的求解:送货员将60个包裹最快送到50个指定地点,经过计算60个包裹的总质量为公斤,总体积为立方米,送货员每次携带货物质量不能超过50公斤,体积不能超过1立方米,可以将路线分成两个片区根据最小生成树,和聚集原则还有根据分组,我们在每一个最短区域根据分动态线性规划寻找最短最佳路线,根据运筹学中满载率的规定为80%-90%,为使用时时间最短,两个子区域区域区分如下:根据遍历程序,解得区域一的最短遍历路径,即路径1为:0→15→8→10→43→9→20→19→48→37→46→17→42→34→42→11→23→21→4→49→39→44→33→47→33→18→22→29→45→29→22→31→22→15→0;第一区域路程为,用时.解得区域二的最短路径,即路径2为:0→6→35→25→35→28→5→3→5→2→36→30→24→50→26→7→26→27→13→41→13→27→26→14→16→38→32→40→12→40→1→32→6→0第二区域路程为,时间为 min.六、模型的优缺及评价模型的评价在现实的物流配送中,人们多数是按照经验去制定送货路线.而此模型在运用满载率原理对送货区域进行合理化而科学划分的基础上,用0-1整数规划的方法对路线进行优化,得到最优的送货路线和最优的分配方案,非常贴近生活实际.对现实的物流派送有较强的指导意义.以此,物流公司或其他机构可以根据这个采用划分区域,进行线性规划的方法提高自己的送货情况的路径优化,可以提高自己的效率,降低成本,提高企业竞争率.有利于降低社会交易话的成本.模型优点1、模型是从简单到复杂一步一步的进行的,使得更加贴近实际2、本文模型简单,算法直观,容易编程.3、本文注重数据的处理和储存方式,大大提高了规划效率.模型缺点在建模和编程过程中,使用数据只是现实数据的一种近似值因而得出的可能与现实有一定差距,不过差强人意,理论要求强计算比较复杂,这个模型在现实中运用可能还有一些其他因素影响,所以实际运用中需进一步考虑.七、参考文献1.杨丹,赵海滨. MATLAB从入门到精通[M].北京:中国铁道出版社,2013.2. 谢金星,薛毅编.优化建模与lingo[M].北京:清华大学出版社,20053. 薛毅.数学建模[M].北京:北京工业大学出版,20044. 张杰.运筹学模型与实验[M].北京:中国电力出版社,20075. 赵静.数学建模与数学实验[M].北京:高等教育出版社,20036. 龚劬.图论与网络最优化算法[M].重庆: 重庆大学出版,2009附录附录1:表2:道路连通信息附录2表3:送货清单附录3:x=[7750,12455,15430,14565,1120,15500,7925,7645,7440,8955,8615,840,134 75,6235,6135,6365,6475,1765,4935,5635,6945,940,5900,675,15005,13320,7 165,6045,13720,5500,15440,6670,10800,3700,1785,12950,15330,4390,7835, 2350,11815,5100,1855,10675,4490,3950,4585,1450,4625,1500,10025];y=[5000,8150,8730,5920,15115,6815,7175,15220,3230,635,1835,4425,8840, 15435,13420,5140,11565,5085,8720,1165,1235,12970,6605,7990,13380,2155 ,13800,14435,5975,5615,14555,8210,8370,7655,1820,4065,12265,2085,1014 5,11070,9415,14750,2735,2595,9590,6490,3610,8265,695,13670,13875]; distance=zeros(length(x));for i=1:length(x)distance(i,:)=sqrt((x-x(i)).^2+(y-y(i)).^2);end附录40……0……0 (14780)0……0………………………………………………5125…………………………10495…………………………………………………………………………………………16188………………………………………………………………13323…………14780 0……0附录5:a=long; %调用附录3的建立的long表格n=size(a,1);d=a;for k=1:nfor i=:nfor j=1:nif d(i,k)+d(k,j)<d(i,j)d(i,j)=d(i,k)+d(k,j);endendendenddisp(d);附录6:0……0……0……0……0…………2182 (12344)……10851 (13969) (7945) (7533)11722……………………10701……8934 (6890)…… (12565) (16274)1903521235…………9164…………11228………… (2681)10192………… (13851)5829……1088613086…………10183………………86696747 (8550)……9431…… (8390)……1348615686……12594………… (16527)57761551317713…… (13512) (16527)…… 0 0附录7:MODEL :SETS:city/1 ..51 /:u;link(city,city):w,x;endsetsdata:w=@OLE('C:\','w');enddatan=@size(city);min=@sum(link:w*x);@for(city(k):@sum(city(i)|i #ne# k: x(i,k))=1;@sum(city(j)|j #ne# k: x(k,j))=1;);@for(link(i,j)|i #gt# 1 #and# j #gt# 1 #and# i #ne# j: u(i)-u(j)+n*x(i,j)<=n-1;);@for(link: @bin(x));END附件8(部分结果):。