Bootstrap

2015年国赛高教杯数学建模B题互联网+时代的出租车资源配置解题全过程文档及程序

2015年国赛高教杯数学建模

B题 互联网+时代的出租车资源配置

  出租车是市民出行的重要交通工具之一,“打车难”是人们关注的一个社会热点问题。随着“互联网+”时代的到来,有多家公司依托移动互联网建立了打车软件服务平台,实现了乘客与出租车司机之间的信息互通,同时推出了多种出租车的补贴方案。
  请你们搜集相关数据,建立数学模型研究如下问题:
   (1) 试建立合理的指标,并分析不同时空出租车资源的“供求匹配”程度。
   (2) 分析各公司的出租车补贴方案是否对“缓解打车难”有帮助?
   (3) 如果要创建一个新的打车软件服务平台,你们将设计什么样的补贴方案,并论证其合理性。

整体求解过程概述(摘要)

  本文研究了“互联网+”时代出租车资源的优化配置问题。通过模糊综合评价和多元回归拟合方法给出了供求匹配评价模型,提出了基于打车难度系数的出租车动态补贴方案。
  对于不同时空出租车资源的供求匹配程度问题,本文从宏观和微观两个角度进行评价。宏观上引入里程利用率、车辆满载率、万人拥有量作为评价指标,采用模糊综合评价的方法,求出了深圳、西安、拉萨这三个城市的评价分数(分别为0.1868、0.3046、0.7029),即西安、拉萨的供求平衡比深圳要好。微观上本文以深圳市为例,利用供、求的影响因素,建立了基于多元回归拟合的供求匹配模型,通过拟合供给和需求的表达式,采用供求比作为供求匹配程度的衡量指标,求解不同时空(高峰期、低谷期、拥堵区、非拥堵区)的供求比,结果分别为0.7046、1.6037、0.6886、1.5813,结果表明:高峰期的供求比远小于低谷期,拥堵区的供求比远小于非拥堵区。
  对于现有补贴方案能否缓解打车难的问题,本文首先分析了补贴方案对降低司机拒单率,提高乘客拼车率的影响。依据司机拒单率、乘客拼车率与司机的补贴、乘客补贴的正负相关性,本文分别使用高斯分布模型和Logit模型求解函数表达式。进而通过拒单率、拼车率对问题一的供应量表达式进行改进,构建打车难度系数评价模型。针对深圳市2014年9月5号的统计数据,求解可得总体打车难度系数在不补贴时为 0.2816,在快的打车的补贴模式下为 0.1885,在滴滴打车补贴模式下为0.2030。仿真结果表明:补贴后乘客、出租车的成功匹配率提高了11%左右。 在设计合理的补贴方案时,本文综合考虑了社会供求关系和公司补贴金额这两个因素。依据现行的补贴方案,采用等步长逐步搜索法,求出使得供求匹配最佳时,司机和乘客的最优补贴金额(司机11.4元每单,乘客15.4元每单)。接着,本文给出供求比置信区间(0.8—1),以解决供求匹配最佳导致补贴费用过高的问题,此时求得供求比为0.8,司机补贴7.3元每单,乘客不补贴,将其定义为基础补贴。为权衡供求和补贴金额,建立基于供求优化的动态补贴模型,使实际补贴在基础补贴的前提下浮动小于 5元。最后,本文结合Logit模型及经济学原理,求解总补贴金额的函数表达式。仿真结果表明,相对于不补贴的情况,新的补贴方案下供求匹配度提高了34.62%左右。

模型假设:

  1、出租车司机收入按正常打表计算,不考虑消费者额外给的小费。
  2、司机认为利益受损失不会接单,即不会前往顾客所在地。
  3、司机一旦到达乘客所在处就表示一定接单。
  4、考虑现实生活中的拒单、拼车等实际情况。
  5、顾客按单计算,即两人一起拼车记为一单。
  6、每一单的路程均大于起步价所含路程。
  7、采用对乘客和司机进行补贴的方案可以有效地平衡供求。
  8、不考虑突发情况,极端自然状况导致的绕行和停车。

问题分析:

  出租车问题与人民生活密切相关,但现实生活中往往出现打车难的现象。我们分析打车难的原因主要是供求不匹配。首先,针对打车难的现状,我们可以从多个方面得到评价指标,对不同时空的供求匹配程度做出评价。我们可以通过供求匹配指标,求出补贴前后的打车难度系数,分析能否缓解打车难。为了进一步解决供求匹配问题,同时考虑到软件公司的补贴花费,我们可以设计基于多因素的动态补贴方案,并通过模拟仿真,判断补贴方案推行前后,打车难的问题是否得到缓解。
  问题一的分析
  在分析不同时空出租车资源的“供求匹配”程度时,考虑到时空既可以指不同的城市、年份,又可以指某个城市内部的不同区域、时间段,所以我们从宏观和微观这两个角度来分析这个问题。从宏观上看,随着“互联网+”时代的到来,打车软件使用率明显增加,从而改善了供求关系。而在同一年中,一线、二线、三线城市的出租车供求匹配程度同样差异巨大。分析可知,供求的主要体现指标为:里程利用率、车辆满载率、万人拥有量。我们采用模糊综合评价的方法,得到不同城市的供求匹配度。从微观上看,我们选取某个城市(深圳)作为研究对象,从乘客和出租车司机这两个角度分析影响供求的因素。通过数据可以拟合出供应和需求的函数表达式,就可以得到供求比。对于不同时空的分析,我们选取高峰期、低谷期、拥堵区和非拥堵区,分别计算其供求比,评价不同时空的供求匹配程度。
  问题二的分析
  在分析出租车公司的补贴方案是否对“缓解打车难”有帮助时,首先需要对打车难度进行界定,然后再分析补贴方案实施前后,打车难度的变化。考虑到打车难的原因主要为出租车供不应求,司机可能会拒单,乘客可能会拒绝拼车,因此我们利用第一问的供求匹配模型,引入拒单率、拼车率来构建打车难度系数关系式。由常识可知,拒单率、拼车率与补贴分别是负相关和正相关的,我们利用概率模型就可以得到其函数表达式。
  通过查阅资料,我们可以得到快的打车和滴滴打车的现行补贴方案。由于对司机和乘客进行补贴会使得拒单量和拼车率发生变化,所以我们可以求出补贴前后的拒单率和拼车率,再结合打车难度系数关系式,计算出具体结果从而判断补贴是否能有效缓解打车难。但是,考虑到打车软件的使用群众多为中青年,我们可以分析打车难度系数与年龄的关系,从而得到更加符合实际的模型。为了更直观地分析补贴对打车难度的影响,我们还可以进行仿真实验。
  问题三的分析
  首先需要分析补贴的目的,我们认为补贴会对社会和软件公司造成影响,第一、补贴能够调节供求匹配度,第二、从软件公司利益的角度,要尽可能使得补贴金额少。所以我们从这两方面进行综合考虑设计补贴方案。 经过调查发现,现有的补贴方案是按接单数进行补贴,所以我们通过接单数对乘客和司机分别补贴。通过分析可知,补贴对乘客的影响因素为等待时间,补贴对司机的影响因素为堵车时间及油费,因此我们可以通过这些因素构建动态补贴模型对补贴金额进行适当调整。 在设计具体的补贴方案时,我们可以从第二问中公司现行的补贴方案出发,通过对补贴金额进行调整,搜索出供求匹配程度为0.8~1的最佳补贴金额范围。在此置信区间内时,我们寻找出尽可能使得软件公司的补贴花费最小的最佳补贴金额,可以作为基础补贴金额。在基础补贴金额上,再进行优化供求的动态调整。与问题二类似,我们可以使用仿真来检验新的补贴方案下供求匹配程度是否得到改善。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

%第三问搜索算法 
functionminQ = brute_force(G,F,phi,lambda) 
minQ=1000; 
fori = 1:301 % p2 
for j = 1:301 % p1 
%         if abs((G(i)*(0.75*lambda(j)+1)-G(i)*0.25*phi(i))/F(j)
1)<maxQ 
%             maxQ = abs((G(i)*(0.75*lambda(j)+1)
G(i)*0.25*phi(i))/F(j)-1); 
%             maxp1 = (j-1)/10; 
%             maxp2 = (i-1)/10; 
%         end 
%   ´ò×¢Ê͵ÄÊǵÚÈýÎÊ×ʼµÄµ¥²½ËÑË÷´úÂë 
if abs((G(i)*(0.75*lambda(j)+1)-G(i)*0.25*phi(i))/F(j)-1)<0.2 
plot((j-1)/10,(i-1)/10,'b.'); 
holdon; 
ifi+j<minQ 
minQ = i+j; 
end 
end 
end 
end
% 第二问仿真 
functioncnt = fangzhen(people_bonus,driver_bonus) 
ifnargin< 2 
q1 = 0 ; q2 = 0; 
else 
q1 = driver_bonus;q2 = people_bonus; 
end 
car_pos1 = rand(20,1); 
car_pos1 = [ones(20,1).*2000,car_pos1.*6000]; 
car_pos2 = rand(20,1); 
car_pos2 = [ones(20,1).*4000,car_pos2.*6000]; 
car_pos3 = rand(20,1); 
car_pos3 = [car_pos3.*6000,ones(20,1).*2000]; 
car_pos4 = rand(20,1); 
car_pos4 = [car_pos4.*6000,ones(20,1).*4000]; 
car_pos = [[car_pos1;car_pos2;car_pos3;car_pos4;],ones(80,1)]; 
car_pos_t = car_pos; 
car_pos1 = rand(25,1); 
car_pos1 = [ones(25,1).*2000,car_pos1.*6000]; 
car_pos2 = rand(25,1); 
car_pos2 = [ones(25,1).*4000,car_pos2.*6000]; 
car_pos3 = rand(25,1); 
car_pos3 = [car_pos3.*6000,ones(25,1).*2000]; 
car_pos4 = rand(25,1); 
car_pos4 = [car_pos4.*6000,ones(25,1).*4000]; 
p_pos = [[car_pos1;car_pos2;car_pos3;car_pos4;],ones(100,1)]; 
p_pos_t = p_pos; 
figure(1) 
holdon 
d = 200;cnt = 0; 
fori = 1:80 
nowbest = [d,0]; 
for j = 1:100 
ifp_pos(j,3)==0  
continue; 
end 
delta = abs(car_pos(i,1)-p_pos(j,1)) + abs(car_pos(i,2)
p_pos(j,2)); 
if delta <nowbest(1) 
nowbest(2) = j; 
nowbest(1) = delta; 
end 
end 
ifnowbest(1) < d &&nowbest(2) > 0 
cnt = cnt + 1; 
p_pos(nowbest(2),3) = 0; 
end 
end 
cnt% ûÓв¹Ìù 
t_p_pos = p_pos; 
holdon 
p_pos = p_pos_t; 
car_pos = car_pos_t; 
d = 310;cnt = 0; 
fori = 1:80 
nowbest = [d,0]; 
for j = 1:100 
ifp_pos(j,3)==0  
continue; 
end 
delta = abs(car_pos(i,1)-p_pos(j,1)) + abs(car_pos(i,2)
p_pos(j,2)); 
if delta <nowbest(1) 
nowbest(2) = j; 
nowbest(1) = delta; 
end 
end
ifnowbest(1) < d &&nowbest(2) > 0 
cnt = cnt + 1; 
p_pos(nowbest(2),3) = 0; 
end 
end 
fori = 1:100 
ift_p_pos(i,3)==0 
plot(t_p_pos(i,1),t_p_pos(i,2),'go'); 
elseifp_pos(i,3)==0 
plot(p_pos(i,1),p_pos(i,2),'r*'); 
end 
end 
cnt 
figure(2) 
holdon 
p_pos = p_pos_t; 
car_pos = car_pos_t; 
d = 300;cnt = 0; 
fori = 1:80 
nowbest = [d,0]; 
for j = 1:100 
ifp_pos(j,3)==0  
continue; 
end 
delta = abs(car_pos(i,1)-p_pos(j,1)) + abs(car_pos(i,2)
p_pos(j,2)); 
if delta <nowbest(1) 
nowbest(2) = j; 
nowbest(1) = delta; 
end 
end 
ifnowbest(1) < d &&nowbest(2) > 0 
cnt = cnt + 1; 
p_pos(nowbest(2),3) = 0; 
end 
end 
fori = 1:100 
ift_p_pos(i,3)==0 
plot(t_p_pos(i,1),t_p_pos(i,2),'go'); 
elseifp_pos(i,3)==0 
plot(p_pos(i,1),p_pos(i,2),'r*') 
end 
end 
cnt 
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
;