2015年全国大学生数学建模竞赛B题国一优秀论文

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

2015年全国大学生数学建模竞赛B题国一优秀论文

1 “互联网+”时代的出租车资源配置 摘要 本文讨论了“互联网+”时代的出租车资源配置问题。建立了出租车资源配 置模型、补贴映射模型、订单质量评价模型,利用 Matlab、SPSS 软件,实现了 对不同时空下的出租车资源的匹配程度、不同打车软件的补贴政策对“缓解打车 难”帮助程度的问题求解。 针对问题一,首先选取了西安的钟楼、大雁塔、火车站、北大街、小寨、西 安交大和子午大道作为研究的七个地点。为了更好地分析出租车供求匹配程度, 我们给出两个指标:服务满意度、被抢单时间,在此基础上使用主成分分析法建 立出租车资源配置模型,分析不同时空下的供求匹配程度。从结果中可分析得到: 从空间上看,西安不同地点的供求匹配程度有其各自鲜明的地域性特点;从时间 上看,早高峰及晚高峰时各个地点 0 均表现出供求关系紧张的情况。 针对问题二,搜索了滴滴和 Uber 两大主要的打车软件公司的补贴方案。建 立补贴映射模型,观察出租车供应量、打车需求量、被抢单时间在补贴政策前后 的变化,将变化后的值代入问题一建立的资源配置模型中,得到补贴后的出租车 匹配程度。经计算,两家公司的补贴方案均起到了缓解“打车难”的作用。 针对问题三,分析得到打车难的重要原因之一是:司机因为不同订单的利益 不同而“挑单”。针对这种现象,我们建立了订单质量评价模型,得到司机不同 订单的收益值,通过调整不同订单的补贴价格,使得每一订单的收益值基本相同, 从根本上遏制了司机“挑单”的行为,缓解了“打车难”的现象。 关键词:出租车资源配置 主成分分析法 SPSS 补贴政策 孟德尔遗传定律 2 一、问题重述 1.1 问题背景 互联网正在改变人们的生产方式和生活方式,互联网的本质在于:利用网络 平台上更高效率的信息沟通与分享,人们可以聚集和有效配置更多的生产要素, 从而降低交易成本、提高生产效率。可以毫不夸张地说,互联网技术正在以多种 方式对出租车行业进行重塑,它带来了新的机遇、也产生了新的问题, 出租车是市民出行的重要交通工具之一,“打车难”是人们关注的一个社会 热点问题。随着“互联网+”时代的到来,有多家公司依托移动互联网建立了打 车软件服务平台,实现了乘客与出租车司机之间的信息互通,同时推出了多种出 租车的补贴方案。 1.2 问题提出 (1) 试建立合理的指标,并分析不同时空出租车资源的“供求匹配”程度。 (2) 分析各公司的出租车补贴方案是否对“缓解打车难”有帮助? (3) 如果要创建一个新的打车软件服务平台,你们将设计什么样的补贴方案, 并论证其合理性。 二、问题分析 2.1 概论 目前城市“打车难”的社会问题导致越来越多的打车软件出现在市场上。以 此为背景,我们需要首先分析影响出租车资源的“供求匹配”程度的因素,进而 分析现已出台的补贴政策是否能够通过调整“供求匹配”程度进而缓解“打车难” 的现象,并在最后提出了我们自己关于补贴方案的想法。 2.2 问题一分析 问题一研究的是不同时空出租车资源的“供求匹配”,即分析在不同时间、 不同地点出租车的供求关系。由于出租车始终处于动态变化中,为了简化模型, 可选取不同时间段和地区进行对比研究。为了更好地分析出租车供求匹配程度, 我们给出两个指标:服务满意度、被抢单时间。在此基础上使用主成分分析法建 立模型,分析不同时空下的供求匹配程度。 2.3 问题二分析 为解决问题二,首先要收集各依托移动互联网建立的打车软件平台的补贴方 3 案,本文选取所占时长份额最大的两家打车软件公司:滴滴、Uber 的补贴方案 来分析其是否对缓解打车难有帮助。其次,将打车难问题定量转化为:被抢单时 间、出租车供应量、乘客需求量的关系,分析比较各补贴方案对这三个变量的影 响,从而来分析其是否对缓解打车难有帮助。 2.4 问题三分析 分析打车难的原因主要是出租车司机“挑单”,而“挑单”的主要原因是不 同订单的收益不同,如果可以通过给予补贴来弥补这种收益差距,从而使不同订 单的收益基本相同,那么就能从根本上防止打车难的现象发生。我们基于这种想 法可以建立数学模型,调整不同订单的补贴价格。 三、模型假设 1.假设所用数据真实可靠。 2.假设打车软件的使用率为 80%。 3.假设出租车司机不设置接单范围。 4.忽略节假日等特殊原因使出租车供应量、需求量发生较大改变的情况。 四、符号说明 符号 符号说明 x 打车总需求量  打车软件使用率 y 出租车供应量 Y 服务满意度 z 打车需求量 t 被抢单时间 0 司机每单收益 4 0M 每单的直接收入 0C 每单的成本 0T 每单的消耗时间 )( 1FE 结束上一订单后的空驶油耗 )( 1TE 结束上一订单后的空驶时间 五、模型建立与求解 4.1 问题一——出租车资源配置模型 4.1.1 研究对象的选取 1.城市的选取 在建立模型之前,我们应选取一个合适的城市进行深入调研。一个合适的城 市,有利于提高模型的精确性,增强模型的广泛性。通过查阅资料,得到可以衡 量城市间出租车供求关系的三大指标为:里程利用率、出租车万人拥有量、车辆 满载率。 结合这三个指标,我们进一步分析,选取西安为我们的研究城市,其优点有: (1)作为新一线城市,经济较为发达,有大量数据可供研究。 (2)出租车万人拥有量、里程利用率及车辆满载率处于中等水平,具有整 体代表性,可以进一步推广研究。 (3)影响范围广,有足够空间进行问题分析与优化。 2.城市内地点的选取 为了充分反映西安整体的出租车供求关系,我们选取了具有代表性的景区钟 楼、大雁塔,乘客量较大的火车站、北大街,重要的商业圈小寨,学生聚集区西 安交大、子午大道。 以上 5 个地点的选取,具有层次丰富的特点,是比较完善的数据样本点。 4.1.2 数据的基本处理 从滴滴快的智能出行平台,我们可以获得西安 24 小时的出租车分布、打车 难易程度、打车需求量、被抢单时间的数据,如图 1 所示。基于这样的大数据平 5 台,我们选取 8 月 11 日西安的五个数据样本点早高峰(7:00-9:00),晚高峰 (16:00-18:00),平常时间(10:00、15:00、20:00)三个时间段进行分析。 图 1 滴滴快的智能出行平台 1.出租车服务满意度 Y 在滴滴快的打车智能出行平台上,基于需要研究的三个时间段,可以采集到 西安的打车需求量 z,假设打车软件的使用率 为 80%,则可得到总需求量 x 为  zx  基于上式,制作总需求量 x 及各时段平均总需求量 )/( zE 的表格如下: 表 1 各样本点 8 月 11 日不同时段 x 的大小及其平均值 时间段 钟楼 大雁塔 火车站 北大街 小寨 西安交大 子午大道 7:00 31.25 12.70 121.23 67.23 62.19 47.21 43.98 8:00 135.00 56.90 142.45 107.52 78.31 82.34 64.53 9:00 497.50 184.00 219.44 98.23 103.20 102.34 65.92 )/( zE 221.25 84.53 161.04 90.99 81.23 77.30 58.14 16:00 63.75 84.66 210.23 72.92 136.25 121.94 67.74 17:00 45.00 147.43 231.67 82.98 178.27 167.42 93.03 18:00 93.75 94.89 278.93 187.23 162.73 201.53 127.93 )/( zE 67.50 108.99 240.28 114.38 159.08 163.63 96.23 10:00 221.25 247.91 198.67 63.95 83.82 126.32 45.32 15:00 16.25 92.93 245.92 145.23 103.27 83.21 54.98 20:00 43.75 139.56 221.38 98.25 121.93 93.28 62.87 )/( zE 93.75 160.13 221.99 102.48 103.01 100.94 54.39 6 在滴滴快的打车智能出行平台上,基于需要研究的三个时间段,采集西安的 出租车分布量 y,制作表格如下: 表 2 各样本点 8 月 11 日不同时段 y 的大小及其平均值 时间段 钟楼 大雁塔 火车站 北大街 小寨 西安交大 子午大道 7:00 254 212 256 96 103 94 74 8:00 237 256 292 125 134 121 98 9:00 354 167 346 167 221 135 85 E(y) 281.67 211.67 298.00 129.33 152.67 116.67 85.67 16:00 346 263 253 89 261 145 97 17:00 315 314 278 111 214 210 121 18:00 325 246 310 283 196 231 132 E(y) 328.67 274.33 280.33 161.00 223.67 195.33 116.67 10:00 143 196 223 87 106 145 53 15:00 214 201 267 211 213 92 67 20:00 263 146 245 167 135 123 87 E(y) 206.67 181.00 245.00 155.00 151.33 120.00 69.00 定义服务满意度 Y 在一定程度上与总需求量成正比,与出租车供应量成反 比,其关系式可表达为: )( )( yE xEY  基于上式,我们可以得到服务满意度的表格如下: 表 3 各样本点 8 月 11 日不同时段 Y 的平均值 时间段 钟楼 大雁塔 火车站 北大街 小寨 西安交大 子午大道 7:00 0.79 0.40 0.54 0.70 0.53 0.66 0.688:00 9:00 16:00 0.21 0.40 0.86 0.71 0.71 0.84 0.8217:00 18:00 10:00 0.45 0.88 0.91 0.66 0.68 0.84 0.7915:00 20:00 7 2.被抢单时间 t 被抢单时间 t 表示客户使用打车软件下单后被司机接单的时间,可在一定程 度上反映打车难易程度。在滴滴快的打车智能出行平台上,基于需要研究的三个 时间段,采集西安的被抢单时间 t,制作表格如下: 表 4 各样本点 8 月 11 日不同时段 t 的平均值 时间段 钟楼 大雁塔 火车站 北大街 小寨 西安交大 子午大道 7:00 76.42 38.67 1.00 67.83 1.00 1.00 28.678:00 9:00 16:00 42.28 2.00 26.00 55.33 74.50 20.33 1.0017:00 18:00 10:00 71.67 2.00 12.00 9.89 1.00 31.000 6.1715:00 20:00 4.1.3 出租车资源配置模型 基于上面的数据处理,现确定用于分析供求匹配程度的指标为:服务满意度 Y ,被抢单时间t 。建立数学模型如下: btaYF  其中, F 是供求匹配程度函数, a ,b 分别为Y ,t 的权重系数,可由主成 分分析法近似得到。 用 SPSS 软件求解 a ,b ,得到结果如下: 表 5 解释的总方差 成份 初始特征值 提取平方和载入 合计 方差的 % 累积 % 合计 方差的 % 累积 % 1 1.538 76.884 76.884 1.538 76.884 76.884 2 .462 23.116 100.000 提取方法:主成份分析。 8 取累计方差率 76.884%,23.116%作为权重,则有: tYF 23116.076884.0  4.1.4 问题一结果分析 将Y 和t 代入到 tYF 23116.076884.0  中可以得到下表: 表 6 各地区出租车资源匹配程度 F 值 钟楼 大雁塔 火车站 北大街 小寨 西安交大 子午大道 早高峰 27.5002 0.9368 35.5564 70.9255 54.3695 32.9436 94.3936 晚高峰 32.0935 13.5294 62.7903 37.8117 162.5280 54.3695 60.8758 平时 7.9368 0.9543 23.2403 27.2270 35.7358 28.0867 81.7845 整理数据,利用模糊综合评价法对将匹配程度函数值 F 分为以下 5 个等级, 对应于不同的匹配难度: 表 7 等级分配表 等级 1 极易 0-20 等级 2 易 20-35 等级 3 中等 35-70 等级 4 难 70-100 等级 5 极难 >100 依据等级分配表,可将表 6 转化为匹配程度等级表如下: 表 8 各地区出租车资源匹配程度等级 钟楼 大雁塔 火车站 北大街 小寨 西安交大 子午大道 早高峰 易 极易 中等 难 中等 易 难 晚高峰 易 极易 中等 中等 极难 中等 中等 平时 极易 极易 易 易 中等 易 难 9 (1)时间一定时,从不同空间分析西安出租车资源“供求匹配”程度。 无论早高峰还是晚高峰,钟楼、大雁塔附近都是比较容易打到车的,说明 该地区对旅游景区人流量大的特殊情况作了较好的安排,供求匹配度较好。火车 站、北大街这种乘车人数较多的地方,呈现出明显的高峰期较难打车的特点,但 供求匹配程度也并不是十分的紧张,可以保证市民的正常顺利出行。小寨是全市 较大的商业圈,人流量很大,交通状况经常不好,因此较难打到车,供求匹配度 不高。西安交大与子午大道均是大学聚集区,而西安交大比子午大道更加具有优 势地理位置,因此打车状况较好,供求匹配度较高。 (2)空间一定时,从不同时间段分析西安出租车资源“供求匹配”程度。 整体来看,不同地区均表现出或者早高峰、或者晚高峰打车较难的情况,而 平常时段的供求匹配度较好,除了较为偏僻的子午大道附近较难打车,其余均表 现较好。说明该市需要对早高峰、晚高峰出租车的安排再做调整,或者通过疏导 复杂的交通状况使打车效率提高。 4.1.5 问题一模型检验 通过滴滴快的智能出行平台,可以得到西安五个样本点的平均难易程度,分 为三个等级,记为 H 。因为打车难易程度反映供求匹配程度,所以我们用 H 对 上文模型求得的 F 进行检验,并将上文 F 的五级难易程度转换为 H 的三级难易 程度。将 F 与 H 进行对比,得到下图: 图 2 F 与 H 打车难易程度比 10 从上图我们可以发现,模型计算得到的 F 与软件智能得到 H 的差别不大, 趋势基本相同,因此建立的模型较为合理。 4.2 问题二——补贴映射模型 4.2.1 模型建立 上文我们已经定义了打车总需求量 x ,出租车供应量 y ,被抢单时间t 。假 设在应用某种补贴政策 P 后,打车总需求量变为 'x ,出租车供应量变为 'y ,被抢 单时间变为 't 。建立补贴映射模型如下: 1.给定一种补贴方案 P ,打车总需求量 x ,出租车供应量 y ,被抢单时间t 在 P 实施后分别变为 'x 、 'y 和 't ,即       ' ' ' tt yy xx P P P 2.将所求得的 'x 和 'y 代入问题一建立的模型中,计算出 'F 。 3.若 FF ' ,则说明该补贴方案对缓解打车难没有帮助;若 FF ' ,则说明 该补贴方案对缓解打车难有帮助。 4.2.2 补贴方案 收集各依托移动互联网建立的打车软件平台(公司)的补贴方案,本文选取 所占时长份额最大的两家打车软件公司:滴滴、Uber 的补贴方案来分析其是否 对缓解打车难有帮助。其中 1P 为滴滴的补贴方案:对拼车进行补贴; 2P 为 Uber 的补贴方案:对私家车载客进行补贴。 1.对拼车进行补贴的方案 1P 以某经济开发区为例,2012 年 4 月 3 日《江南晚报》数据显示,64.71%的 网民愿意进行出租车的合乘,35.29%的网民不愿意进行出租车的合乘。假设拼车 意向即为拼车可能,由于采集的数据量庞大,可用孟德尔遗传定律分析,如下表 所示: 11 表 9 拼车成功率 拼车的孟德尔遗传定律算法 愿意拼车的人 A 不愿意拼车的人 a 愿意拼车的人 A AA=64.71%*64.71% Aa=64.71%*35.29% 不愿意拼车的人 a Aa=64.71%*35.29% Aa=35.29%*35.29% 由上表可知,成功拼车的概率为 41.87%。由于拼车成功,同一车可容纳两 人,需求量也因此缩减一半,则打车订单减少 20.94%,映射 )(1 xP 为: xx %)94.201('  由于拼车政策对出租车供应量和被接单时间没有明显影响,因此映射 )(1 yP , )(1 tP 为: yy ' , tt ' 将上述 'x , 'y , 't 代入问题一建立的模型中,得到 'F ,说明 Uber 平台对司 机和乘客补贴的方案确实对缓解打车难有帮助。 2.对私家车载客进行补贴的方案 2P 由滴滴快的智能出行平台可以得到平均出租车供应量与被接单时间的数据, 将其数据描点拟合,得到关系图如下: 图 3 t 与 y 的曲线拟合 通过拟合得出,平均被接单时间t 与出租车供应量 y 的关系表达式为: )2)^1/)1((exp(*1)( cbyayft  12 其中,在显著性为 95%的条件下,系数 a1=140.5,b1=1102,c1=949.7, 2R 为 0.9672,接近于 1,说明拟合效果较为理想。 若对私家车载客进行补贴,司机数量就会增加,即出租车供应量 y 会增加, 则映射 )(2 yP 为: yyy ' , 0y 将 'y 代入到上文得到的 y 与t 的关系式 )2)^1/)1((exp(*1 cbyat  中,得到 tt ' ,由于对私家车载客补贴几乎不会影响到出租车需求量,因此 xx ' 。 将 'x , 'y , 't 代入到问题一建立的模型中,计算 'F ,解得 FF ' ,因此对私 家车载客补贴可以缓解打车难。 4.3 问题三——订单质量评价模型 4.3.1 打车难原因分析 从日常经验中可以分析得到,打车难的一个主要原因是司机“挑单”,即在 司机获取乘客需求信息后,一些低收益的订单将会被拒收。出租车司机的“挑单” 行为,可能会导致增加空载路程、乘客打车难等现象,如果能够对所谓的“坏单” 给予补贴,使所有订单的收益率基本相同,那么司机“挑单”现象就会大大减少, 从而也就解决了打车难的问题。 通常情况下,出租车司机认为“好单”的直观特征为: (1)道路状况好,不会堵车; (2)收入高,成本低; (3)订单执行结束后,可能空载的里程短; (4)目的地可能有比较好的订单。 综合来说,好的订单应该具备两方面的特点:单位时间的直接净收益高和订 单执行之后有高质量的订单。由此我们建立以下模型: 13 4.3.2 订单质量评价模型 1.直接收益率 出租车司机的直接收益率可以定义为单位时间的收益,即 0 00 0 T CM  , 其中, 0M 是订单收入, 0C 是估计成本, 0T 是订单耗费时间。 (1)订单收入的计算 订单收入与当地出租车的计价政策有关,通常包括:起步价、里程价、空跑 补贴、夜间补贴、侯时补贴等。 (2)订单的时间估计 定义 1T 为从出租车接到订单后到达乘客处的空驶时间, 2T 为接到乘客后到达 目的地的时间,则 210 TTT  。假设出租车司机总是按照最短路线规划行程,并 假设每天相同时段和相同区域的车速基本相同,则 1T 和 2T 可按下面的方法求出: 订单路线规划:按照 Floyd 算法可以确定最短路径,即可求得完成订单的 最短路程。 车速预测:将城市按划分为 100×100 的网格图,根据平时大数据积累可得 各个时段和各个区域的平均车速。 订单耗时估计:将最短路程除以各网格内平均速度,即可求得 0T 。 (3)订单成本的估计 订单成本包括燃油成本、税费、管理费、保养费和保险费等,一般情况下, 单位时间的固定成本是相同的,因此不影响司机的“挑单”行为,即影响成本变 化的主要是油耗。在实际中,出租车的油耗与车速的关系为 6)80(640 1 2  vF 14 将订单全程的速度代入上式中,即可求得订单全程的耗油量。 2.间接成本 间接成本,即到达目的地之后、接下一单之前的成本。其中主要考虑目的区 域空驶的燃油成本和时间成本。出租车到达目的地后,基于历史数据,统计在该 区域结束订单后的平均空驶燃油成本 )( 1FE 和空驶时间 )( 1TE ,即为出租车的间接 成本。 3.建立订单质量评价模型 综上所述,可以得到订单质量评价模型: )( )( 10 100 0 TET FECM   4.3.3 补贴方案设计 为了避免司机“挑单”,就需要通过非等额补贴方式来消除订单之间的质量 差异,实现所有订单的收益率基本相同。如果对某订单的补贴额度记为 iU ,则 对任意两个订单i 和 j 来说,应该满足条件: )( )( )( )( jj jjjj ii iiii TET UFECM TET UFECM     这样就可以通过平衡不同订单之间的质量差异,让出租车司机感到任意订单 之间的收益率没有明显差异,也就不会出现“挑单”情况,有单必接,真正缓解 打车难的问题。如果打车软件公司拟日补贴总额度为U ,假设每天的订单总数为 N ,则有    N i iUU 1  根据实际情况,联合式和式,就可以实时获得每个订单的补贴额度,即 可以得到一个实时动态非等额的补贴方案。 15 六、模型改进与评价 5.1 模型优点 1.将出租车资源“供求匹配”程度和是否对“缓解打车难”的问题转化为平 均被接单时间和乘客满意度的指标问题,抓住了主要矛盾的主要因素,舍弃次要 因素,从而简化了模型。 2.模型一分别选取了多个样本地区与时间段进行建模统计,提高了数据的多 样性与普遍性,有利于提升模型的现实意义。 3.问题三所建立模型抓住了打车难的关键问题,并且通过该模型能够给出一 个实时动态非等额的补贴方案,比较具有实用性。 5.2 模型改进 1.所查阅的数据本身存在误差,在处理数据过程中也不可避免地会产生误 差,使得数据的准确性降低,同时对模型的检验也不详细。 2.在日常生活中,不能忽略节假日中旅游城市的打车需求量暴增的情况,在 问题分析中应该再具体分析节假日的打车情形。 参考文献 [1]滴滴快的智能出行平台.http://v.kuaidadi.com/.2016.8.18 [2]万方数据知识服务平台.http://www.wanfangdata.com.cn/.2016.8.19 [3]李学文,李炳照,王宏洲.数学建模优秀论文精选与点评[M].北京:清华大学 出版社,2011 [4]姜启源,谢金星,叶俊.数学模型[M].北京:高等教育出版社,2011 16 附录 代码一 %求 f 并且将 f 转化为相应等级 y=[3.882666667 0.373134328 118.7841727 37.73469388 82.666 232.264 8.873655172]; t=[71.67 2 12 9.89 1 31 6.17]; a=0.65351; b=0.34649; for i=1:7 c(1,i)=a*y(1,i)+b*t(1,i); end %将 c 求三次,综合起来是 f f=[27.22703106 13.5294703 94.39364096 32.73582274 32.94363148 70.92557 27.5002171 ... 23.24039762 0.954384 60.87586817 62.79034165 32.55644976 37.81172479 32.09389596 ... 27.37029979 0.936827015 81.7845247 28.0867859 54.36954766 162.5280366 7.936865691]; %将 f 分为五个等级 for i=1:21 if f(1,i)<20 f(1,i)=f(1,i)/20; end if f(1,i)>=20&&f(1,i)<35 f(1,i)=(f(1,i)-5)/15; end if f(1,i)>=35&&f(1,i)<70 f(1,i)=(f(1,i)+35)/15; end if f(1,i)>=70&&f(1,i)<100 f(1,i)=(f(1,i)+20)/30; end if(f(1,i)>=100&&f(1,i)<200) f(1,i)=(f(1,i)+40)/35; end end %将 f 分为 3 个等级 for i=1:21 f(1,i)=f(1,i)/5*3; end ff=[0.889081242 0.405884109 2.287872819 1.10943291 1.117745259 1.8185114 ... 0.900008684 0.729615905 2 2.5 2 1.10225799 1.2 1.083755838 ... 17 0.894811992 2.3 2.035690494 0.923471436 1.2 2.2 0.238105971]; plot(ff,'r'); %legend('fontsize{14}it f'); h=[1 0.8 2 1 1 2.4 1.5... 1 2 2.5 1.5 1.5 1.2 1.... 1 2.67 2.2 1.5 1.5 2.4 1]; hold on; plot(h,'b'); %legend('fontsize{14}it h'); title('F 与 H 的打车难易程度比'); 代码二 %拟合 car_num=[1426 1964 2179 1930 1743 1493 1762 1783 1235 1798 1925 1722 1447 2145.... 1929 1673 1429 2070 2016 1812 1499 2103 1946 1915 1509 1698 2650 1947]; waiting_time=[131 53 39 65 90 120 87 83 135 80 70 96 123 40 67.... 105 125 47 50 77 114 43 62 74 110 101 30 60]; 代码三 %传统打车 无调单 随机游走 car=rand(2,100)*100; %随机生成 100 辆车 indent=rand(4,80)*100; %随机生成 80 订单 indent(3,:)=0; %是否被接单 indent(4,:)=0; %等待时间 while sum(indent(3,:))~=length(indent) %当订单没有全部被接到 for i=1:length(indent) if indent(3,i)==0 %订单没有接时 for j=1:length(car) %范围是 0.2 if abs(car(1,j)-indent(1,i))<=0.2&&abs(car(2,j)-indent(2,i))<=0.2&&inden t(3,i)==0 %如果车在附近 indent(3,i)=1; %接订单 indent(4,i)=(abs(car(1,j)-indent(1,i))+abs(car(2,j)-indent(2,i)))/0.1 ; %算时间 车速度为 0.1 步 end end end end %订单周围是否有车 for i=1:length(car) dir=rand; %车均走 0.1 步 if dir<0.1 18 car(1,i)=mod(car(1,i)-0.1,100); %车后退 end if dir>=0.1&&dir<0.6 car(1,i)=mod(car(1,i)+0.1,100); %车前进 end if dir>=0.6&&dir<0.8 car(2,i)=mod(car(2,i)-0.1,100); %车左拐 end if dir>0.8&&dir<=1 car(2,i)=mod(car(2,i)+0.1,100); %车右拐 end end %车走 for i=1:length(indent) %等待时间加一 if indent(4,i)==0 indent(4,i)=indent(4,i)+1; end end end AVE=mean(indent(4,:)); %求平均等待时间 scatter(car(1,:),car(2,:),16,'r'); %红色是车 hold on; scatter(indent(1,:),indent(2,:),25,'b'); %蓝色是订单 grid on; 代码四 %使用打车软件进行打车 car=rand(2,100)*100; %随机生成 100 辆车 indent=rand(4,80)*100; %随机生成 80 订单 indent(3,:)=0; %是否被接单 indent(4,:)=0; %等待时间 useapp1=length(indent)*0.7; %使用 app 的比例 useapp2=length(car)*0.7; Sum=0; for i=1:fix(useapp1) %取整 Sum=Sum+indent(3,i); end while Sum~=fix(useapp1) %将使用 app 的访问完 %如果没有被全部接受 for i=1:fix(useapp1) if indent(3,i)==0 %订单没有接时 min=100; %最短距离 for j=1:fix(useapp2) %车主使用的个数 trymin=abs(car(1,j)-indent(1,i))+abs(car(2,j)-indent(2,i)); 19 if trymin=0.1&&dir<0.6 car(1,i)=mod(car(1,i)+0.1,100); %车前进 end 20 if dir>=0.6&&dir<0.8 car(2,i)=mod(car(2,i)-0.1,100); %车左拐 end if dir>0.8&&dir<=1 car(2,i)=mod(car(2,i)+0.1,100); %车右拐 end end %车走 for i=1:length(indent) %等待时间加一 if indent(4,i)==0 indent(4,i)=indent(4,i)+1; end end sum=0; for i=1:length(indent) sum=sum+indent(3,i); end end AVE=mean(indent(4,:)); %求平均等待时间
查看更多

相关文章

您可能关注的文档