一种车辆调度方法和装置与流程

文档序号:11832084阅读:373来源:国知局
一种车辆调度方法和装置与流程
本发明涉及车辆管理
技术领域
,尤其涉及一种车辆调度方法和装置。
背景技术
:VRPTW(VehicleRoutingProblemswithTimeWindows,有时间窗车辆路径问题)是指:一定数量的客户,各自有不同数量的货物需求,配送中心向客户提供货物,由车队负责分送货物,组织适当的行车路线,目标是使客户需求得到满足,在一定的约束下,达到如路程最短、成本最小、耗费时间最少等目的。目前,对VRPTW问题的研究,主要集中在各种启发式算法上。例如,使用遗传算法、禁忌搜索法和模拟退火法等启发式算法,解决VRPTW问题。但是,当前只是使用单个启发式算法来解决VRPTW问题,启发式算法主要依赖随机尝试,判断单次迭代的好坏,这个过程的计算量很大,占用大量计算资源。技术实现要素:本发明提供一种车辆调度方法,所述方法包括:步骤A、生成多个车辆调度计划,每个车辆调度计划包括一个车辆以及所述车辆需要处理的运输任务,所述运输任务包括一个或者多个货物;步骤B、利用每个车辆调度计划中的货物的重量和体积,获取每个车辆调度计划的车辆评价指标,并利用所述车辆评价指标选取待拆解的车辆调度计划;步骤C、针对所述待拆解的车辆调度计划中的每个货物,为所述货物选取目标的车辆调度计划,并将所述货物分配到所述目标的车辆调度计划的运输任务中,得到修改后的车辆调度计划,并删除所述待拆解的车辆调度计划;步骤D、判断是否已经满足预设的调度结束策略,如果是,则输出当前的车辆调度计划,如果否,则使用当前的车辆调度计划继续执行步骤B。所述利用每个车辆调度计划中的货物的重量和体积,获取每个车辆调度计划的车辆评价指标的过程,具体包括:针对每个车辆调度计划,利用所述车辆调度计划中的每个货物的重量与车辆承载重量的比例、所述每个货物的体积与车辆承载体积的比例、所述每个货物的最短行驶距离、车辆实际行驶距离获取所述车辆调度计划的车辆评价指标。所述利用所述车辆评价指标选取待拆解的车辆调度计划的过程,具体包括:利用每个车辆调度计划的车辆评价指标,为每个车辆调度计划分配一个选取权重;其中,车辆调度计划的车辆评价指标越大,则其对应的选取权重越小;利用每个车辆调度计划的选取权重,从所述多个车辆调度计划中随机选取一个车辆调度计划,并将选取的车辆调度计划确定为所述待拆解的车辆调度计划;其中,车辆调度计划的选取权重越大,则其被选取的概率越大。针对所述待拆解的车辆调度计划中的每个货物,为所述货物选取目标的车辆调度计划的过程,具体包括:针对所述每个货物,从所述待拆解的车辆调度计划之外的其它车辆调度计划中,确定出与所述货物满足时间窗约束、容积约束、重量约束的每个车辆调度计划,并依次获取所述货物与确定出的每个车辆调度计划的货物相似度,并将所述货物分配到货物相似度最高的车辆调度计划的运输任务中;利用当前所有的车辆调度计划中的运输任务,获得本轮的车辆行驶开销值;若利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定满足接受条件,则将货物相似度最高的车辆调度计划确定为所述货物的目标的车辆调度计划。所述获取所述货物与确定出的每个车辆调度计划的货物相似度的过程,具体包括:针对确定出的每个车辆调度计划,获得将所述货物分配到该车辆调度计划的运输任务后,该车辆调度计划对应的第一车辆行驶开销值,并获得将所述货物分配到该车辆调度计划的运输任务之前,该车辆调度计划对应的第二车辆行驶开销值;将所述第一车辆行驶开销值与所述第二车辆行驶开销值的比值,确定为所述货物与该车辆调度计划的货物相似度。所述方法进一步包括:若利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定不满足接受条件,拒绝为所述货物选取目标的车辆调度计划,基于每个车辆调度计划的车辆评价指标,重新执行利用所述车辆评价指标选取待拆解的车辆调度计划的步骤。本发明提供一种车辆调度装置,所述装置具体包括:生成模块,用于生成多个车辆调度计划,每个车辆调度计划包括一个车辆以及所述车辆需要处理的运输任务,所述运输任务包括一个或者多个货物;获取模块,用于利用每个车辆调度计划中的货物的重量和体积,获取每个车辆调度计划的车辆评价指标,利用车辆评价指标选取待拆解的车辆调度计划;处理模块,用于针对所述待拆解的车辆调度计划中的每个货物,为所述货物选取目标的车辆调度计划,并将所述货物分配到所述目标的车辆调度计划的运输任务中,得到修改后的车辆调度计划,并删除所述待拆解的车辆调度计划;判断模块,用于判断是否已经满足预设的调度结束策略;输出模块,用于当判断结果为是时,则输出当前的车辆调度计划;所述获取模块,还用于当判断结果为否时,则基于当前的车辆调度计划,利用每个车辆调度计划中的货物的重量和体积,获取每个车辆调度计划的车辆评价指标,并利用车辆评价指标选取待拆解的车辆调度计划。所述获取模块,具体用于在利用每个车辆调度计划中的货物的重量和体积,获取每个车辆调度计划的车辆评价指标的过程中,针对每个车辆调度计划,利用所述车辆调度计划中的每个货物的重量与车辆承载重量的比例、所述每个货物的体积与车辆承载体积的比例、所述每个货物的最短行驶距离、车辆实际行驶距离获取所述车辆调度计划的车辆评价指标。所述获取模块,具体用于在利用车辆评价指标选取待拆解的车辆调度计划的过程中,利用每个车辆调度计划的车辆评价指标,为每个车辆调度计划分配一个选取权重;其中,车辆调度计划的车辆评价指标越大,则其对应的选取权重越小;利用每个车辆调度计划的选取权重,从所述多个车辆调度计划中随机选取一个车辆调度计划,并将选取的车辆调度计划确定为所述待拆解的车辆调度计划;其中,车辆调度计划的选取权重越大,则其被选取的概率越大。所述处理模块,具体用于在针对每个货物,为所述货物选取目标的车辆调度计划的过程中,针对所述每个货物,从所述待拆解的车辆调度计划之外的其它车辆调度计划中,确定出与所述货物满足时间窗约束、容积约束、重量约束的每个车辆调度计划,并依次获取所述货物与确定出的每个车辆调度计划的货物相似度,并将所述货物分配到货物相似度最高的车辆调度计划的运输任务中;利用当前所有的车辆调度计划中的运输任务,获得本轮的车辆行驶开销值;若利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定满足接受条件,则将货物相似度最高的车辆调度计划确定为所述货物的目标的车辆调度计划。所述处理模块,进一步用于在获取所述货物与确定出的每个车辆调度计划的货物相似度的过程中,针对确定出的每个车辆调度计划,获得将所述货物分配到该车辆调度计划的运输任务后,该车辆调度计划对应的第一车辆行驶开销值,并获得将所述货物分配到该车辆调度计划的运输任务之前,该车辆调度计划对应的第二车辆行驶开销值;将所述第一车辆行驶开销值与所述第二车辆行驶开销值的比值,确定为所述货物与该车辆调度计划的货物相似度。所述处理模块,进一步用于在利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定不满足接受条件时,则拒绝为所述货物选取目标的车辆调度计划,并通知所述获取模块基于每个车辆调度计划的车辆评价指标,重新利用所述车辆评价指标选取待拆解的车辆调度计划。基于上述技术方案,本发明实施例中,可以利用货物的重量和体积,获取车辆评价指标,并利用车辆评价指标选取待拆解的车辆调度计划,将待拆解的车辆调度计划中的每个货物,分配到目标的车辆调度计划的运输任务中,从而得到更优的车辆调度计划。在上述方式下,通过考虑重量体积的双重约束,解决车辆路径问题,融合了模拟退火、禁忌搜索等算法的优点,与传统的使用单个启发式算法进行搜索的方案相比,采用上述方式进行启发式搜索时,收敛速度更快,通过保留随机因素,使得整个迭代过程不容易陷入局部最优,且不依赖随机尝试,计算量较小,节约大量的计算资源,改善启发式搜索的效果。附图说明为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本发明一种实施方式中的车辆调度方法的流程图;图2A和图2B是本发明一种实施方式中的应用场景示意图;图3是本发明一种实施方式中的控制设备的硬件结构图;图4是本发明一种实施方式中的车辆调度装置的结构图。具体实施方式在本发明使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明。本发明和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。参见图1所示,为本发明实施例中的车辆调度方法的流程图,该方法可以应用于车辆调度中心的控制设备上,该车辆调度方法用于解决车辆路径问题。步骤101,生成多个车辆调度计划,每个车辆调度计划包括一个车辆以及该车辆需要处理的运输任务,该运输任务包括一个或者多个货物。步骤102,利用每个车辆调度计划中的货物的重量和体积,获取每个车辆调度计划的车辆评价指标,并利用车辆评价指标选取待拆解的车辆调度计划。步骤103,针对待拆解的车辆调度计划中的每个货物,为该货物选取目标的车辆调度计划,并将该货物分配到目标的车辆调度计划的运输任务中,得到修改后的车辆调度计划,并删除待拆解的车辆调度计划。步骤104,判断是否已经满足预设的调度结束策略,如果是,则执行步骤105,如果否,则使用当前的车辆调度计划继续执行步骤102。步骤105,输出当前的车辆调度计划,完成车辆调度过程。在一个例子中,上述的车辆调度方法,可以用于解决车辆路径问题,例如,在快递公司的配送业务中、物流O2O平台的配送业务中、外卖送餐O2O平台的配送业务中,都会涉及到车辆路径问题。在这些应用场景下,都可以使用上述的车辆调度方法,完成货物的配送过程,从而得到最小的车辆行驶开销值。例如,在某个时间段,假设有一些货物需要进行配送,每个货物均指定了装货地点、卸货地点、装货的时间窗、卸货的时间窗,需要使用车辆调度中心提供的一些车辆,将所有货物送往目的地,并使得车辆行驶开销值最小。假设配送费用只和车辆行驶的总距离有关,则车辆行驶开销值可以为车辆行驶的总距离。在一个应用场景下,如图2A所示,有A,B,C,D四个地点,各地点之间的距离可以如图2A所示,在图2A中的距离单位是公里。有3辆车可用,每辆车的规格都一样,均可以是:最大容积为10立方米,最大载重量为1000公斤,车辆行驶速度为20公里/小时。车辆1和车辆2的初始位置是A,在运送货物后需要返回A,车辆3的初始位置是B,在运送货物后需要返回C。假设有下列货物需要配送:货物1、从A送到B,体积为5立方米,重量为500公斤,装货的时间窗为[9:00,10:00],即最早9:00开始装货,最晚10:00开始装货,后面的时间窗与此类似,卸货的时间窗为[10:00,12:00]。货物2、从C送到A,体积为3立方米,重量为500公斤,装货的时间窗为[11:00,12:00],卸货的时间窗为[12:00-15:00]。货物3、从C送到D,体积为3立方米,重量为100公斤,装货的时间窗为[11:00,12:00],卸货的时间窗为[11:00,15:00]。货物4、从A送到C,体积为6立方米,重量为100公斤,装货的时间窗为[8:00,9:00],卸货的时间窗为[10:00,12:00]。此外,上述每个货物的装(卸)时间均为20分钟。在上述应用场景下,图2B给出了一种配送方案,车辆1在A点装货物1,送到B点卸货,再到C点装货物2,送回A点卸货。车辆2从A点装货物4,送到C点卸货,再装货物3,送到D点卸货,再返回A点。上述方案就是一种简单的车辆调度方法,当然还可以有其它配送方案,且需要选择最优方案。而且,在实际应用中,会涉及到大量货物和大量车辆,为了从大量货物和大量车辆中选取出最优方案输出,则本发明实施例中提供了上述车辆调度方法。在本发明实施例中,为了完成车辆调度方法,可以进行如下约束:完全配送约束,即所有货物均需要完成配送。车辆起止点约束,即车辆从初始点出发,完成配送后回到返回点。体积约束,即每辆车在任何时刻装载的货物体积之和,不得大于车辆承载体积。重量约束,即每辆车在任何时刻装载的货物重量之和,不得大于车辆承载重量。时间窗约束,即每个货物的装(卸)货开始时间需要在装(卸)货时间窗内。等待时间约束,即如果车辆到达某地点的时间,早于货物的最早装(卸)货时间,则可以等到最早装(卸)货时间再开始装(卸)货,但等待时间不大于30分钟。装(卸)货过程所用时间约束,即在同一地点装(卸)货,或者卸货之后再装货,该过程所用的时间都设为20分钟。其中,上述约束条件中的数值只是一个例子,在实际应用中并不局限于上述数值。在本发明实施例中,为了完成车辆调度方法,还可以提供如下的初始数据:(1)、地点数据,即给出多个地点(如50个地点)的数据,货物需要从这50个地点中的一个地点发往另一个地点,如表1所示的地点数据。(2)交通数据,即这些地点两两之间的距离,如表2所示的交通数据。(3)货物数据,即给出多个货物(如500个货物)的数据,如表3所示的货物数据。其中,每个货物数据可以包括如下字段:ID,即货物的标识;start,即装货点,对应地点数据中的标识;end,即卸货点,对应地点数据中的标识;volume,即货物体积,单位是立方米;weight,即货物重量,单位是公斤;t1,即最早装货时间,用字符表示,例如0930表示9:30,后续的时间表示方式与此类似;t2,即最晚装货时间;t3,即最早卸货时间;t4,即最晚卸货时间。(4)车辆数据,即给出多个车辆(如500辆车)的数据,如表4所示的车辆数据。其中,每个车辆数据可以包括如下字段:ID,即车辆的标识;start,即初始点,对应地点数据中的标识;end,即返回点,对应地点数据中的标识;volume,即车辆承载体积,单位是立方米;weight,即车辆承载重量,单位是公斤;speed,即车辆速度,单位是公里/小时。表1IDname1地点12地点23地点34地点45地点56地点6……表2startenddistance125.5135.3………1508.8235.9………25012.9………表3IDstartendvolumeweightt1t2t3t41121.0330800120090018002141.01009001000800180031103.01008001200800180041103.033011301200800180051102.01008001200800180061252.02008001200800180071431.020080012008001800表4IDstartendvolumeweightspeed11110100020211101000203111010002041110100020511101000206111010002071110100020在一个例子中,在表1中,只是给出了几个地点的示例,在实际应用中的地点数量,远远大于表1的示例,在此不再赘述。在表2中,只是给出了几个地点之间的距离的示例,在实际应用中的距离数量,远远大于表2的示例,在此不再赘述。在表3中,只是给出了几个货物的示例,在实际应用中的货物数量,远远大于表3的示例,在此不再赘述。在表4中,只是给出了几个车辆的示例,在实际应用中的车辆数量,远远大于表4的示例,在此不再赘述。在上述应用场景下,可以执行上述步骤101-步骤105,从而选取出最优的车辆调度计划,并最终输出该最优的车辆调度计划,以完成车辆调度过程。针对步骤101,在一个例子中,针对生成多个车辆调度计划的过程,可以基于表3所示的货物数据和表4所示的车辆数据,在满足体积约束、重量约束和时间窗约束的前提下,根据实际需要,为每个货物分配车辆,并将该货物分配到该车辆的运输任务中,从而生成多个车辆调度计划,这多个车辆调度计划就是初始的车辆调度计划,后续过程需要对这些初始的车辆调度计划进行调整。在一个例子中,可以为每个货物分配一个唯一的车辆,并将该货物分配到该车辆的运输任务中。也可以为多个货物分配一个车辆,并将该多个货物分配到该车辆的运输任务中。例如,以一共生成10个车辆调度计划为例进行说明,对于车辆调度计划1,包括车辆1以及车辆1需要处理的运输任务1,该运输任务1包括货物1。对于车辆调度计划2,包括车辆2以及车辆2需要处理的运输任务2,该运输任务2包括货物2。以此类推,对于车辆调度计划10,包括车辆10以及车辆10需要处理的运输任务10,该运输任务10包括货物10。针对步骤102,在一个例子中,在利用每个车辆调度计划中的货物的重量和体积,获取每个车辆调度计划的车辆评价指标的过程中,可以包括但不限于如下方式:针对每个车辆调度计划,可以利用该车辆调度计划中的每个货物的重量与车辆承载重量的比例、每个货物的体积与车辆承载体积的比例、每个货物的最短行驶距离、车辆实际行驶距离获取该车辆调度计划的车辆评价指标。在一个例子中,针对每个车辆调度计划,可以采用如下公式获取该车辆调度计划的车辆评价指标:在该公式中,Z为车辆调度计划的车辆评价指标,i表示该车辆调度计划中的每个货物的序号,N为该车辆调度计划中的货物数量,且N为大于等于1的正整数。wi为第i给货物的重量,W为车辆承载重量。vi为第i给货物的体积,V为车辆承载体积。Di为第i给货物的最短行驶距离,如第i给货物需要从地点1送到地点2时,则其最短行驶距离为地点1与地点2之间的距离。K为车辆实际行驶距离,车辆实际行驶距离为车辆从出发地行驶至第一个装(卸)货地的距离、第一个装(卸)货地的距离行驶至第二个装(卸)货地的距离、以此类推,一直到卸完最后一个货物,并到返回地的距离之和,例如,当车辆需要将货物1从地点1送到地点2,并将货物2从地点2送到地点3时,假设返回地为地点1(实际应用中,返回地还可以为其它地点,如地点4,对此不再赘述),则车辆实际行驶距离为地点1与地点2之间的距离+地点2与地点3之间的距离+地点3与地点1之间的距离。通过上述方式确定的车辆评价指标,由于考虑了每个货物的重量与车辆承载重量的比例、每个货物的体积与车辆承载体积的比例、每个货物的最短行驶距离、车辆实际行驶距离,因此可以评判出每个车辆评价指标的优劣程度。若车辆评价指标的值越大,则说明采用车辆运输该车辆评价指标对应的车辆调度计划内的各货物时,运输效果越好。若车辆评价指标的值越小,则说明采用车辆运输该车辆评价指标对应的车辆调度计划内的各货物时,运输效果越差。针对步骤102,在一个例子中,利用车辆评价指标选取待拆解的车辆调度计划的过程,可以包括:利用每个车辆调度计划的车辆评价指标,为每个车辆调度计划分配一个选取权重;其中,车辆调度计划的车辆评价指标越大,则其对应的选取权重越小。利用每个车辆调度计划的选取权重,从多个车辆调度计划中随机选取一个车辆调度计划,并将选取的车辆调度计划确定为待拆解的车辆调度计划;其中,车辆调度计划的选取权重越大,则其被选取的概率越大。例如,按照车辆评价指标从大到小的顺序,对车辆调度计划1-车辆调度计划10进行排序,假设排序结果为车辆调度计划1-车辆调度计划10,则为车辆调度计划1分配的选取权重1最小,为车辆调度计划2分配的选取权重2次小,以此类推,为车辆调度计划10分配的选取权重10最大。利用选取权重1-选取权重10,可以从车辆调度计划1-车辆调度计划10中随机选取一个车辆调度计划。由于车辆调度计划10的选取权重最大,则车辆调度计划10被选取的概率最大,由于车辆调度计划1的选取权重最小,则车辆调度计划1被选取的概率最小。在一个例子中,由于是从车辆调度计划1-车辆调度计划10中随机选取一个车辆调度计划,因此,虽然车辆调度计划10被选取的概率最大,但并不意味着一定会选取到车辆调度计划10,虽然车辆调度计划1被选取的概率最小,也不意味着一定不会选取到车辆调度计划1。此选取过程是一个随机选取过程,可能选取到车辆调度计划1-车辆调度计划10中的任意一个车辆调度计划,只是每个车辆调度计划被选取的概率有所不同。假设随机选取的车辆调度计划是车辆调度计划9,则可以将选取的车辆调度计划9确定为待拆解的车辆调度计划。在一个例子中,为了实现“从车辆调度计划1-车辆调度计划10中随机选取一个车辆调度计划”的过程,在为车辆调度计划1-车辆调度计划10依次分配选取权重1-选取权重10后,可以采用轮盘赌算法从车辆调度计划1-车辆调度计划10中随机选取一个车辆调度计划。其中,轮盘赌算法可以简单理解为:若车辆调度计划的选取权重越大,则该车辆调度计划在轮盘中分配的面积越大,若车辆调度计划的选取权重越小,则该车辆调度计划在轮盘中分配的面积越小。这样,在转动轮盘后,指针停留在面积大区域的概率大,而停留在面积小区域的概率小。但是指针是随机停留在某个区域,且选中该区域对应的车辆调度计划。针对步骤103,在一个例子中,针对待拆解的车辆调度计划中的每个货物,为该货物选取目标的车辆调度计划的过程,可以包括:针对每个货物,从待拆解的车辆调度计划之外的其它车辆调度计划中,确定出与货物满足时间窗约束、容积约束、重量约束的每个车辆调度计划,并依次获取货物与确定出的每个车辆调度计划的货物相似度,并将货物分配到货物相似度最高的车辆调度计划的运输任务中。利用当前所有的车辆调度计划中的运输任务,获得本轮的车辆行驶开销值。若利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定满足接受条件,则将货物相似度最高的车辆调度计划确定为货物的目标的车辆调度计划。若利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定不满足接受条件,则拒绝为货物选取目标的车辆调度计划,并基于每个车辆调度计划的车辆评价指标,重新执行利用车辆评价指标选取待拆解的车辆调度计划的步骤。假设待拆解的车辆调度计划为车辆调度计划9,则车辆调度计划9中包括货物9(此时只有一个货物9,但在实际应用中,货物的数量可能为多个,每个货物的处理方式相同,后续不再赘述)。针对货物9,可以从车辆调度计划9之外的其它车辆调度计划(如车辆调度计划1-车辆调度计划8、车辆调度计划10等)中,确定出与该货物9满足时间窗约束、容积约束、重量约束的车辆调度计划。其中,对于时间窗约束、容积约束、重量约束等相关内容,已经在上述过程中介绍,在此不再赘述,假设确定出的车辆调度计划为车辆调度计划1、车辆调度计划2、车辆调度计划3。之后,依次获取货物9与车辆调度计划1的货物相似度1,货物9与车辆调度计划2的货物相似度2,货物9与车辆调度计划3的货物相似度3,并从货物相似度1-货物相似度3中选取出最高的货物相似度,如货物相似度2,并将货物9分配到货物相似度2的车辆调度计划2的运输任务中。在经过上述处理后,假设车辆行驶开销值为车辆行驶的总距离,当前所有的车辆调度计划为车辆调度计划1-车辆调度计划8、车辆调度计划10。基于此,获取车辆1运输货物1时的行驶距离,获取车辆2运输货物2和货物9时的行驶距离,获取车辆3运输货物3时的行驶距离,以此类推,获取车辆10运输货物10时的行驶距离,将上述获取的行驶距离之和确定为本轮的车辆行驶开销值。进一步的,若利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定满足接受条件,则将车辆调度计划2确定为货物9的目标的车辆调度计划。若利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定不满足接受条件,则拒绝为货物9选取目标的车辆调度计划,即没有成功选取到目标的车辆调度计划,基于车辆调度计划1-车辆调度计划10的车辆评价指标,重新选取待拆解的车辆调度计划,具体选取方式已经在上述过程介绍,在此不再赘述,重新选取的待拆解的车辆调度计划可能仍然为车辆调度计划9,也可能不是车辆调度计划9。在一个例子中,针对获取货物与确定出的每个车辆调度计划的货物相似度的过程,可以包括但不限于如下方式:针对确定出的每个车辆调度计划,获得将该货物分配到该车辆调度计划的运输任务后,该车辆调度计划对应的第一车辆行驶开销值,并获得将该货物分配到该车辆调度计划的运输任务之前,该车辆调度计划对应的第二车辆行驶开销值;将该第一车辆行驶开销值与该第二车辆行驶开销值的比值,确定为该货物与该车辆调度计划的货物相似度。例如,在将货物9分配到车辆调度计划1的运输任务之后,获取车辆1运输货物1和货物9时的行驶距离1。在将货物9分配到车辆调度计划1的运输任务之前,获取车辆1运输货物1时的行驶距离2。将行驶距离1与行驶距离2的比值,确定为货物9与车辆调度计划1的货物相似度1。同理,可以获得货物9与车辆调度计划2的货物相似度2、货物9与车辆调度计划3的货物相似度3。针对利用本轮的车辆行驶开销值和上轮的车辆行驶开销值,确定是否满足接受条件的过程,在一个例子中,若本轮的车辆行驶开销值小于上轮的车辆行驶开销值,确定满足接受条件,若本轮的车辆行驶开销值不小于上轮的车辆行驶开销值,确定不满足接受条件。在另一个例子中,基于本轮的车辆行驶开销值和上轮的车辆行驶开销值,可以采用模拟退火算法,确定是否满足接受条件。其中,模拟退火算法是一种贪心算法,但是在模拟退火算法的搜索过程中引入了随机因素,以一定的概率来接受一个比当前解要差的解,因此有可能会跳出局部的最优解,从而达到全局最优解。基于此模拟退火算法的原理,通过模拟退火算法确定是否满足接受条件可以简单理解为:若本轮的车辆行驶开销值小于上轮的车辆行驶开销值,则确定满足接受条件。若本轮的车辆行驶开销值不小于上轮的车辆行驶开销值,则确定满足接受条件或者不满足接受条件。其中,若本轮的车辆行驶开销值不小于上轮的车辆行驶开销值,则说明得到了一个比当前解要差的新解,而模拟退火算法是以一定的概率来接受这个新解,而不是一定不接受这个新解,即有可能接受这个新解,也有可能不接受这个新解。这个概率是在不断变化的,具体变化过程不再赘述。如果接受这个新解,则确定满足接受条件,如果不接受这个新解,则确定不满足接受条件。针对步骤103,在一个例子中,假设目标的车辆调度计划为车辆调度计划2,则将货物9分配到车辆调度计划2的运输任务中,得到修改后的车辆调度计划2,并删除待拆解的车辆调度计划9。这样,当前的车辆调度计划可以为车辆调度计划1-车辆调度计划8、车辆调度计划10,而车辆调度计划2的运输任务中可以包括货物2和货物9,其它车辆调度计划的运输任务中的货物没有发生变化。针对步骤104和步骤105,针对判断是否已经满足预设的调度结束策略的过程,在一个例子中,可以预先配置一个迭代次数阈值,若当前的迭代次数已经达到该迭代次数阈值,则说明满足预设的调度结束策略,否则,说明没有满足预设的调度结束策略。在另一个例子中,若针对每个货物,已经无法将货物分配到其它车辆调度计划的运输任务中(如无法满足时间窗约束、容积约束、重量约束),也可以确定满足预设的调度结束策略。当然,在实际应用中,还可以采用其它调度结束策略,本发明实施例中对此不做限制,在此不再赘述。其中,每执行一次步骤102-步骤104,就表示完成一次迭代,迭代次数加1。其中,若满足预设的调度结束策略,则输出车辆调度计划1-车辆调度计划8、车辆调度计划10,完成车辆调度过程。若没有满足预设的调度结束策略,则使用车辆调度计划1-车辆调度计划8、车辆调度计划10,返回执行步骤102。基于上述技术方案,本发明实施例中,可以利用货物的重量和体积,获取车辆评价指标,并利用车辆评价指标选取待拆解的车辆调度计划,将待拆解的车辆调度计划中的每个货物,分配到目标的车辆调度计划的运输任务中,从而得到更优的车辆调度计划。在上述方式下,通过考虑重量体积的双重约束,解决车辆路径问题,融合了模拟退火、禁忌搜索等算法的优点,与传统的使用单个启发式算法进行搜索的方案相比,采用上述方式进行启发式搜索时,收敛速度更快,通过保留随机因素,使得整个迭代过程不容易陷入局部最优,且不依赖随机尝试,计算量较小,节约大量的计算资源,改善启发式搜索的效果。基于与上述方法同样的发明构思,本发明实施例中还提供了一种车辆调度装置,该车辆调度装置应用在控制设备上。其中,该车辆调度装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的控制设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图3所示,为本发明提出的车辆调度装置所在的控制设备的一种硬件结构图,除了图3所示的处理器、非易失性存储器外,控制设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该控制设备还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。如图4所示,为本发明提出的车辆调度装置的结构图,所述装置包括:生成模块11,用于生成多个车辆调度计划,每个车辆调度计划包括一个车辆以及所述车辆需要处理的运输任务,所述运输任务包括一个或者多个货物;获取模块12,用于利用每个车辆调度计划中的货物的重量和体积获取每个车辆调度计划的车辆评价指标,利用车辆评价指标选取待拆解的车辆调度计划;处理模块13,用于针对所述待拆解的车辆调度计划中的每个货物,为所述货物选取目标的车辆调度计划,将所述货物分配到所述目标的车辆调度计划的运输任务中,得到修改后的车辆调度计划,并删除所述待拆解的车辆调度计划;判断模块14,用于判断是否已经满足预设的调度结束策略;输出模块15,用于当判断结果为是时,则输出当前的车辆调度计划;所述获取模块12,还用于当判断结果为否时,则基于当前的车辆调度计划,利用每个车辆调度计划中的货物的重量和体积,获取每个车辆调度计划的车辆评价指标,并利用车辆评价指标选取待拆解的车辆调度计划。在一个例子中,所述获取模块12,具体用于在利用每个车辆调度计划中的货物的重量和体积,获取每个车辆调度计划的车辆评价指标的过程中,针对每个车辆调度计划,利用所述车辆调度计划中的每个货物的重量与车辆承载重量的比例、所述每个货物的体积与车辆承载体积的比例、所述每个货物的最短行驶距离、车辆实际行驶距离获取所述车辆调度计划的车辆评价指标。所述获取模块12,具体用于在利用车辆评价指标选取待拆解的车辆调度计划的过程中,利用每个车辆调度计划的车辆评价指标,为每个车辆调度计划分配一个选取权重;其中,车辆调度计划的车辆评价指标越大,则其对应的选取权重越小;利用每个车辆调度计划的选取权重,从所述多个车辆调度计划中随机选取一个车辆调度计划,并将选取的车辆调度计划确定为所述待拆解的车辆调度计划;其中,车辆调度计划的选取权重越大,则其被选取的概率越大。所述处理模块13,具体用于在针对每个货物,为所述货物选取目标的车辆调度计划的过程中,针对所述每个货物,从所述待拆解的车辆调度计划之外的其它车辆调度计划中,确定出与所述货物满足时间窗约束、容积约束、重量约束的每个车辆调度计划,并依次获取所述货物与确定出的每个车辆调度计划的货物相似度,并将所述货物分配到货物相似度最高的车辆调度计划的运输任务中;利用当前所有的车辆调度计划中的运输任务,获得本轮的车辆行驶开销值;若利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定满足接受条件,则将货物相似度最高的车辆调度计划确定为所述货物的目标的车辆调度计划。所述处理模块13,进一步用于在获取所述货物与确定出的每个车辆调度计划的货物相似度的过程中,针对确定出的每个车辆调度计划,获得将所述货物分配到该车辆调度计划的运输任务后,该车辆调度计划对应的第一车辆行驶开销值,并获得将所述货物分配到该车辆调度计划的运输任务之前,该车辆调度计划对应的第二车辆行驶开销值;将所述第一车辆行驶开销值与所述第二车辆行驶开销值的比值,确定为所述货物与该车辆调度计划的货物相似度。在一个例子中,所述处理模块13,进一步用于在利用本轮的车辆行驶开销值和上轮的车辆行驶开销值确定不满足接受条件时,则拒绝为所述货物选取目标的车辆调度计划,并通知所述获取模块12基于每个车辆调度计划的车辆评价指标,重新利用所述车辆评价指标选取待拆解的车辆调度计划。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1