1.一种适用于共享出行的出租车车辆搜索方法,其特征在于,包括以下步骤:
s1.首先将城市路网按照一定的面积划分为网格地图,将各个出租车的位置和实时状态以及各个网格地图内的行驶速度作为网格静态信息;
s2.然后,记录目前正在网格内部的车辆和未来一段时间内将会到达目标网格的车辆作为网格动态信息;
s3.在接到用户用车请求后,根据用户请求,对用户上车地点作为目标网格,通过网格静态信息获得乘客所属的网格与周围网格间的平均通行速度,并按照从小到大排序,快速选取出第一个存在可用车辆的网格以及排序在其后的两个网格内的所有可用出租车。
2.根据权利要求1所述的一种适用于共享出行的出租车车辆搜索方法,其特征在于,所述网格静态信息的获取包括以下步骤:
s101.将城市路网按照一定的面积划分为m*n的网格地图;
s102.获取城市历史的交通信息,得到交通记录中包含出租车的轨迹、车辆转移规律的历史数据;
s103.通过s102步骤的历史数据和实时交通信息,包括道路拥堵情况、车辆通行平均速度,从而获取城市各道路不同时段的通行速度,将其作为出租车未来预测的通行数据;
s104.根据s103步骤的预测的通行速度,通过s102步骤的历史数据和实时交通信息,包括道路拥堵情况、车辆通行平均速度,从而获取城市各道路不同时段的通行速度,将其作为出租车未来预测的通行数据;
s105.在网格化交通信息管理中,按照一定的时间频率不断更新出租车的状态和位置,更新实时交通信息,重新计算车辆预测轨迹,使得每个网格内的车辆信息实时有效。
3.根据权利要求1所述的一种适用于共享出行的出租车车辆搜索方法,其特征在于,所述用户请求包括乘客的合乘意愿、最大等待时间、上下车地点。
4.根据权利要求1所述的一种适用于共享出行的出租车车辆搜索方法,其特征在于,所述s3步骤具体包括以下步骤:
s301.将所有网络按照到达乘客所在的网格平均时间顺序从小到大在一个队伍中排序,并且仅保留时间小于到达乘客所在网格的最大等待时间的网格;
s302.若是已经查找队伍中的所有网格,则进入s307;否则,按顺序取下一个网格,利用网格内保存的车辆到达信息,排除已经满载的出租车,将剩余车辆按到达顺序排序;
s303.将s302中排序的车辆,使用其到达网格的时间和该网格到达乘客所在网格的时间相加,得到出租车达到目标网格的预计时间;
s304.判断s303所述的网格的第一辆出租车的预计时间是否超过了乘客的等待上限,如果超过了最大等待时间,则返回s302;否则,进入s305;
s305.寻找s303所述的网格,所有能够按时到达的车辆,一旦发现不可到达车辆,停止寻找,记录查找成功的车辆,进入s306;
s306.查找网格队伍内查找s303所述的网格后两个网格内可按时到达的车辆,将可以按时到达的车辆也记录下来;
s307.将本次查找的结果与乘客匹配,若匹配成功,则完成搜索车辆过程,否则进入s308;
s308.若队伍中的所有网格都被已经查找,则搜索车辆失败,否则返回s302,并在搜索过程中排除本次匹配失败的车辆。
5.根据权利要求1所述的一种适用于共享出行的出租车车辆搜索方法,其特征在于,所述s3步骤中车辆索索方法包括以下过程:
首先,使用belong_to()函数与订单的起点o.o寻找订单起点所属网格,最终结果赋予g_o变量中;
然后,通过temp_close()函数按与网格g_o的平均通行时间长短去排序以获取一系列在tm前能够到达的网格列表;
其次,检查temp_o,若temp_o为空,即当前没有能在tm内到达g_o网格的网格,最后返回空集;
最后,找到第一个存在合适车辆的网格和其后的两个网格,并检索三个网格内部的所有合适的车辆;
。
6.根据权利要求5所述的一种适用于共享出行的出租车车辆搜索方法,其特征在于,所述检索三个网格内部的所有合适的车辆的具体过程是:
第一步:不断迭代temp_o中的网格,若temp_o所有元素迭代完,end_o赋值为true并退出循环;
第二步:记录系统已寻找的附加网格的数量,迭代完第一个网格时,合适的车辆会存入车辆结果集s,若s为不为空时,则继续迭代检查此网格的后面两个网格的出租车;若可用车辆结果集s为为空时,此网格不符合第一个存在合适车辆的网格的条件,因此计数器不增加,继续迭代检查3个网格;
第三步:取出temp_o中的第一个网格,且把该网格从temp_o上删除;
第四步:依次取此选出的网格g中的出租车,将出租车空余位置与订单中的乘客数量进行比较,把能承载的出租车集加入搜索到的车辆集s.o,最后让搜索到的车辆集s.o与失败车辆集s.f作差集并且赋予可用车辆结果集s,至此,一个网格检索完成。