掌桥专利:专业的专利平台
掌桥专利
首页

多目标路线规划的方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 11:54:11


多目标路线规划的方法、装置、电子设备和存储介质

技术领域

本发明涉及计算机技术领域,尤其涉及一种多目标路线规划的方法、装置、电子设备和存储介质。

背景技术

路线规划问题在现实中普遍存在,如在物流与供应链领域,可以包括仓库拣货路线优化、商品配送路线优化等场景。很多路线规划问题都可以抽象为经典的TSP问题(Traveling Salesman Problem,旅行商问题),TSP问题是一个单目标路线规划问题,即求解的唯一目标是寻找遍历各位置点的距离最短路线。对于这些场景的路线规划,蚁群算法已广泛应用于解决路线规划问题。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

然而,实际应用中也存在一些多目标路线规划的场景,如指定了各个位置点的访问优先指数的场景,此时需要规划出尽量按照所有位置点的优先指数大小顺序依次进行访问、且访问的总路线尽量最短的路线。对于结合访问优先指数的多目标路线规划问题,现有解决TSP问题的方法很难解决。

发明内容

有鉴于此,本发明实施例提供一种多目标路线规划的方法、装置、系统和存储介质,能够解决单目标路线规划的方法无法进行多目标路线规划的问题。

为实现上述目的,根据本发明实施例的一个方面,提供了一种多目标路线规划的方法。

本发明实施例的一种多目标路线规划的方法,包括:确定多个待访问点的访问优先指数和所述多个待访问点之间的访问距离;根据初始化的信息素矩阵和初始化的蚂蚁信息构造蚂蚁路线,根据所述访问优先指数和所述访问距离从已构造的蚂蚁路线中确定出最优路线,基于所述最优路线对所述信息素矩阵进行更新,并根据更新后的信息素矩阵和重新初始化的蚂蚁信息重新构造蚂蚁路线,直到构造蚂蚁路线的次数达到预设次数;根据所述访问优先指数和所述访问距离,从已构造的蚂蚁路线中筛选出目标路线。

在一个实施例中,所述根据所述访问优先指数和所述访问距离从已构造的蚂蚁路线中确定出最优路线,包括:

对已构造的蚂蚁路线中的每个蚂蚁路线,根据所述蚂蚁路线确定所述多个待访问点的访问顺序,并根据所述访问顺序和所述访问优先指数,计算所述蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度;

根据所述访问距离,计算所述每个蚂蚁路线的路线长度;

根据所述每个蚂蚁路线的路线长度,以及所述每个蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,从所述已构造的蚂蚁路线中确定出最优路线。

在又一个实施例中,所述根据所述访问顺序和所述访问优先指数,计算所述蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,包括:

根据所述访问优先指数,确定所述多个待访问点中每个待访问点的推荐序号;

根据所述访问顺序,确定所述每个待访问点的访问序号;

根据所述每个待访问点的推荐序号、所述每个待访问点的访问序号和所述每个待访问点的访问优先指数,计算所述每个待访问点的访问顺序与所述访问优先指数之间的差异度;

根据所述每个待访问点的访问顺序与所述访问优先指数之间的差异度,确定所述蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度。

在又一个实施例中,所述基于所述最优路线对所述信息素矩阵进行更新,包括:

确定所述最优路线对应所述多个待访问点的最优访问顺序;

根据所述最优访问顺序,确定所述信息素矩阵中与所述最优路线对应的元素;

根据所述最优路线对应的路线长度,以及所述最优路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,更新所述信息素矩阵中与所述最优路线对应的元素。

在又一个实施例中,所述根据所述最优路线对应的路线长度,以及所述最优路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,更新所述信息素矩阵中与所述最优路线对应的元素之后,还包括:

根据所述最优路线对应的路线长度,以及所述最优路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,计算信息素更新的最大值和最小值;

将更新后的信息素矩阵中大于所述最大值的元素调整为所述最大值,以及将更新后的信息素矩阵中小于所述最小值的元素调整为所述最小值。

在又一个实施例中,所述蚂蚁信息包括蚂蚁起始点;

在所述根据初始化的信息素矩阵和初始化的蚂蚁信息构造蚂蚁路线根据所述信息素矩阵和初始化的蚂蚁信息构造蚂蚁路线之前,还包括:

根据所述访问优先指数确定所述多个待访问点的推荐顺序;

根据所述多个待访问点的数量和随机值确定顺序阈值;

根据所述推荐访问顺序和所述顺序阈值,初始化所述蚂蚁起始点。

为实现上述目的,根据本发明的另一方面,提供了一种多目标路线规划的装置。

本发明的一种多目标路线规划的装置,包括:确定单元,用于确定多个待访问点的访问优先指数和所述多个待访问点之间的访问距离;所述确定单元,还用于根据初始化的信息素矩阵和初始化的蚂蚁信息构造蚂蚁路线,根据所述访问优先指数和所述访问距离从已构造的蚂蚁路线中确定出最优路线,基于所述最优路线对所述信息素矩阵进行更新,并根据更新后的信息素矩阵和重新初始化的蚂蚁信息重新构造蚂蚁路线,直到构造蚂蚁路线的次数达到预设次数重新;筛选单元,用于根据所述访问优先指数和所述多个待访问点之间的距离,从已构造的蚂蚁路线中筛选出目标路线。

在一个实施例中,所述确定单元,具体用于:

对已构造的蚂蚁路线中的每个蚂蚁路线,根据所述蚂蚁路线确定所述多个待访问点的访问顺序,并根据所述访问顺序和所述访问优先指数,计算所述蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度;

根据所述访问距离,计算所述每个蚂蚁路线的路线长度;

根据所述每个蚂蚁路线的路线长度,以及所述每个蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,从所述已构造的蚂蚁路线中确定出最优路线。

在又一个实施例中,所述确定单元,具体用于:

根据所述访问优先指数,确定所述多个待访问点中每个待访问点的推荐序号;

根据所述访问顺序,确定所述每个待访问点的访问序号;

根据所述每个待访问点的推荐序号、所述每个待访问点的访问序号和所述每个待访问点的访问优先指数,计算所述每个待访问点的访问顺序与所述访问优先指数之间的差异度;

根据所述每个待访问点的访问顺序与所述访问优先指数之间的差异度,确定所述蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度。

在又一个实施例中,所述确定单元,具体用于:

确定所述最优路线对应所述多个待访问点的最优访问顺序;

根据所述最优访问顺序,确定所述信息素矩阵中与所述最优路线对应的元素;

根据所述最优路线对应的路线长度,以及所述最优路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,更新所述信息素矩阵中与所述最优路线对应的元素。

在又一个实施例中,所述确定单元,具体用于:

根据所述最优路线对应的路线长度,以及所述最优路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,计算信息素更新的最大值和最小值;

将更新后的信息素矩阵中大于所述最大值的元素调整为所述最大值,以及将更新后的信息素矩阵中小于所述最小值的元素调整为所述最小值。

在又一个实施例中,所述蚂蚁信息包括蚂蚁起始点;

所述确定单元,还用于根据所述访问优先指数确定所述多个待访问点的推荐顺序;根据所述多个待访问点的数量和随机值确定顺序阈值;

所述装置还包括:

初始化单元,用于根据所述推荐访问顺序和所述顺序阈值,初始化所述蚂蚁起始点。

为实现上述目的,根据本发明的另一方面,提供了一种多目标路线规划的装置。

为实现上述目的,根据本发明实施例的再一个方面,提供了一种电子设备。

本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的多目标路线规划的方法。

为实现上述目的,根据本发明实施例的又一个方面,提供了一种计算机可读介质。

本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的多目标路线规划的方法。

上述发明中的一个实施例具有如下优点或有益效果:本发明实施例中,可以基于多个待访问点的访问优先指数、多个待访问点之间的访问距离来构造蚂蚁路线,并从已构造的蚂蚁路线中筛选出目标路线。如此,本发明实施例中基于多个待访问点的访问优先指数、多个待访问点之间的访问距离来构造蚂蚁路线,可以构建出尽量满足多目标的蚂蚁路线,进而从构造的蚂蚁路线中筛选出最接近多目标的目标路线,从而可以解决一些多目标路线规划的场景中规划满足多目标路线的问题。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的多目标路线规划的方法的一种主要流程的示意图;

图2是根据本发明实施例的多目标路线规划的方法的又一种主要流程的示意图;

图3是根据本发明实施例的多目标路线规划的方法的又一种主要流程的示意图;

图4是根据本发明实施例的一种各目标的值随着迭代次数的变化趋势的示意图;

图5是根据本发明实施例的一种各目标的值随目标权重参数的变化趋势的示意图;

图6是根据本发明实施例的多目标路线规划的装置的主要单元的示意图;

图7是本发明实施例可以应用于其中的又一种示例性系统架构图;

图8是适于用来实现本发明实施例的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以互相组合。

多目标优化问题是指,优化问题存在的优化目标超过一个并需要同时处理。一般情况下,要同时使多个目标一起达到最优值是不可能的,所以多目标优化只能在多目标中间进行折中处理,使各个目标都尽可能地达到最优化。

TSP问题是指,商品推销员要去一系列城市推销商品,求解只访问每座城市一次并最终回到起始城市的最短回路。它是一种经典的组合优化问题,常作为各种算法的测试基准。

蚁群算法是,求解组合优化问题的一种常见智能启发式方法,常用于路线规划等问题的求解。其基本思想来源于自然界的蚂蚁在觅食过程中的群体行为。

信息素是指,蚂蚁在经过的路径上会释放一种称为“信息素”的激素,并且在移动时倾向于选择信息素强度高的轨迹。

MMAS(MAX-MIN Ant System,最大最小蚂蚁系统)是一种具有较高求解精度的蚁群算法,常用于各种组合优化问题的求解。

本发明实施例提供一种多目标路线规划的方法,可以应用于多目标路线规划的场景。为求解多目标路线规划问题,本发明实施例根据路线规划的多目标,基于对蚁群算法中的MMAS算法的改进,提出一种多目标MMAS算法,可以解决多目标路线规划问题,满足多目标路线规划的场景的需求。

具体的,本发明实施例中,多目标可以包括多个待访问点的访问顺序尽量接近访问优先指数和多个待访问点的访问路线尽量最短,本发明实施例的多目标路线规划的方法,可以用于对上述多目标路线规划的场景。

需要说明的是,本发明实施例中,对多个待访问点的访问路线均为不带回路的访问路线,即访问路线中每个待访问点只访问一次。

MMAS算法中,通过多次迭代循环来构造蚂蚁路线,每次迭代的过程中,在构造蚂蚁路线后,均会通过目标函数确定出最优路线,并基于最优路线对信息素矩阵进行更新。其中目标函数表示路线规划的目标。本发明实施例中为对多目标的路线规划,所以本发明实施例中需要根据路线规划的多目标来确定目标函数,即本发明实施例中所使用的目标函数能够体现路线规划的多个目标。由于本发明实施例中路线规划的目标为多个待访问点的访问顺序尽量接近访问优先指数和多个待访问点的访问路线尽量最短,所以本发明实施例中目标函数需要能够表示上述两个目标,即根据访问优先指数和待访问点之间的访问距离从已构造的蚂蚁路线中确定出最优路线,并基于最优路线对信息素矩阵进行更新。

具体的,本发明实施例中,设置多个待访问点的访问顺序尽量接近访问优先指数和多个待访问点的访问路线尽量最短的目标为总目标,多个待访问点的访问顺序尽量接近访问优先指数为第一目标,多个待访问点的访问路线尽量最短为第二目标。则可以通过如下过程来确定表示总目标的总目标函数。

假设待访问点共包括N个离散点,每个待访问点可以对应一个标号。每个待访问点对应一个访问优先指数q,其取值范围可以在0到1之间,q值越大表示该待访问点的访问优先级越高。因此,根据每个待访问点的访问优先指数从大到小的顺序对待访问点进行排序(待访问点的访问优先指数越大,其排序也越靠前),可以得出待访问点的推荐顺序,并组成推荐访问序列path[N],path[N]中元素索引对应于推荐序号,元素值可以为待访问点的序号。假如待访问点的推荐序号为n

假设确定出多个待访问点的一个访问路线,则根据访问路线可以确定出各待访问点的访问顺序和访问序号。

对于第一目标,本发明实施例可以建立该目标的定量表达式如公式1所示。公式1中,OBJ

在公式1中,Index为待访问点的访问序号,取值从0到N-1;第1个被访问的待访问点的访问顺序号为0,第2个被访问的待访问点的访问顺序号为1,依次类推。C

在路线规划中,第一目标可以通过公式1表示,公式1的值越小则说明访问路线越能满足第一目标,若各待访问点的访问序号与推荐序号完全一致,则公式1的值为0,即第一目标达到最小值0。

对于第二目标,本发明实施例可以建立该目标的定量表达式如公式2所示。

OBJ

在公式2中,i与j表示在访问路线中两个相连续的待访问点,dis[i][门表示相连的两个待访问点之间的距离,则OBJ

结合公式1和公式2,本发明实施例基于第一目标和第二目标的权重建立总目标OBJ

OBJ

在公式3中,a表示第一目标的权重参数,b表示第二目标的权重参数。由于第一目标与第二目标在本质上存在相互竞争关系,即第一目标要求访问路线中待访问点的访问序号等于推荐序号,而第二目标要求访问路线的路线长度最小。所以总目标的结果实际是由式(3)中a与b之间的相对比值决定。因此,实际计算过程中,可以将a可设置为1,再进一步分析b的取值。

对公式1,|Index-seq[C

公式1中偏差惩罚总共有N项,OBJ

因此,若假设公式3的右边两项相等,即第一目标与第二目标对于总目标的影响相等,则b的取值可以如公式4所示。

在计算过程中,b取值的一个估算表达式可以如公式5所示。

在公式5中,σ为第二目标相对第一目标的目标权重参数。若σ取值为1,则公式5转变为公式4,相当于两个目标对于总目标的影响相等。因此,根据要解决问题的实质(优先满足的哪个目标),σ的取值可以在1附近进行选择。σ越大,表示第二目标相对第一目标的影响程度越大。通常而言,若优先满足第一目标,σ的取值需小于1;若优先满足第二目标,则σ的取值需大于1。

通过上述过程,可以确定出本发明实施例中路线规划的总目标可以使用公式3表示,即公式3为总目标函数。

本发明实施例提供了一种多目标路线规划的方法,该方法可由计算设备执行,如图1所示,该方法包括以下步骤。

S101:确定多个待访问点的访问优先指数和多个待访问点之间的访问距离。

其中,访问优先指数可以表示待访问点的访问的优先级,即表示待访问点的访问优先顺序。各个待访问点对应一个访问优先指数,访问优先指数为预先设置,通常可以设置为0-1范围内的值,并且可以设置访问优先指数的值越大,表示该待访问点的访问优先级越高。

多个待访问点之间的访问距离包括多个待访问点两两之间的访问距离,由此可以计算访问路线的路线长度。

S102:根据初始化的信息素矩阵和初始化的蚂蚁信息构造蚂蚁路线,根据访问优先指数和访问距离从已构造的蚂蚁路线中确定出最优路线,基于最优路线对信息素矩阵进行更新,并根据更新后的信息素矩阵和重新初始化的蚂蚁信息重新构造蚂蚁路线,直到构造蚂蚁路线的次数达到预设次数。

其中,本发明实施例通过改进的MMAS算法,可以通过迭代的方式多次构建蚂蚁路线,蚂蚁路线为多个待访问点的访问路线,构造蚂蚁路线的次数即为迭代的次数。

本发明实施例中,主要对MMAS算法中确定最优路线的方式和更新信息素矩阵的方式进行了改进。

本发明实施例中,路线规划目标包括多个待访问点的访问顺序尽量接近访问优先指数和多个待访问点的访问路线尽量最短。所以本步骤中,在每次构造蚂蚁路线后,基于多个待访问点的访问优先指数和多个待访问点的访问距离来确定最优路线,即基于总目标来确定最优路线,从而可以使确定的最优路线尽量满足路线规划的总目标,进而基于最优路线对信息素矩阵进行更新,从而使后续重新构造的蚂蚁路线更能够满足路线规划的总目标。

本发明实施例的一种实施方式中,根据访问优先指数和访问距离从已构造的蚂蚁路线中确定出最优路线的具体方式可以为:对已构造的蚂蚁路线中的每个蚂蚁路线,根据蚂蚁路线确定多个待访问点的访问顺序,并根据访问顺序和访问优先指数,计算蚂蚁路线中各待访问点的访问顺序与访问优先指数之间的差异度;根据访问距离,计算每个蚂蚁路线的路线长度;根据每个蚂蚁路线的路线长度,以及每个蚂蚁路线中各待访问点的访问顺序与访问优先指数之间的差异度,从已构造的蚂蚁路线中确定出最优路线。

已构造的蚂蚁路线中的每个蚂蚁路线可以作为待访问点的一个访问路线,则对于每个蚂蚁路线,可以根据蚂蚁路线确定多个待访问点的访问顺序,再根据访问顺序和访问优先指数,计算蚂蚁路线中各待访问点的访问顺序与访问优先指数之间的差异度。本发明实施例的蚂蚁路线中各待访问点的访问顺序与访问优先指数之间的差异度,即表示蚂蚁路线对应的第一目标的值。

结合公式1,计算蚂蚁路线中各待访问点的访问顺序与访问优先指数之间的差异度的方式可以为:根据访问优先指数,确定多个待访问点中每个待访问点的推荐序号,此推荐序号相当于公式1中的seq[C

结合公式2,根据访问距离计算每个蚂蚁路线的路线长度可以通过公式2实现,其中OBJ

则根据每个蚂蚁路线的路线长度,以及每个蚂蚁路线中各待访问点的访问顺序与访问优先指数之间的差异度,从已构造的蚂蚁路线中确定出最优路线,可以具体为:通过公式3从已构造的蚂蚁路线中确定出最优路线。公式3中包括公式1和公式2,公式2可以得出每个蚂蚁路线的路线长度,公式1可以得出每个蚂蚁路线中各待访问点的访问顺序与访问优先指数之间的差异度,则每个蚂蚁路线的总目标可以通过公式3计算得出,蚂蚁路线的总目标的值越小,说明蚂蚁路线越能满足总目标,所以本步骤中可以将公式3最小的蚂蚁路线确定为最优路线。

S103:根据访问优先指数和访问距离,从已构造的蚂蚁路线中筛选出目标路线。

其中,步骤S102中构造了多个蚂蚁路线,本步骤中可以从这些已构造的蚂蚁路线中,根据访问优先指数和访问距离筛选出最能满足路线规划目标的目标路线。

本发明实施例的又一种实施方式中,本步骤可以通过公式3实现,即根据公式3分别计算已构造的蚂蚁路线对应的总目标,将总目标最小的蚂蚁路线确定为目标路线。

本发明实施例中,可以基于多个待访问点的访问优先指数、多个待访问点之间的访问距离来构造蚂蚁路线,并从已构造的蚂蚁路线中筛选出目标路线。如此,本发明实施例中基于多个待访问点的访问优先指数、多个待访问点之间的访问距离来构造蚂蚁路线,可以构建出满足多目标的蚂蚁路线,进而从构造的蚂蚁路线中筛选出最接近多目标的目标路线,从而可以解决对一些多目标路线规划的场景,规划出满足多目标路线的问题。

下面结合图1所示的实施例,对本发明实施例步骤S102中基于最优路线对信息素矩阵进行更新的方法进行具体说明。如图2所示,该方法包括以下步骤。

S201:确定最优路线对应多个待访问点的最优访问顺序。

其中,在确定出最优路线后,将最优路线作为一个访问路线,可以确定出访问路线中多个待访问点的访问顺序,即最优路线对应多个待访问点的最优访问顺序。

S202:根据最优访问顺序,确定信息素矩阵中与最优路线对应的元素。

信息素矩阵是一个二维矩阵,可以表示为τ[N][N],N表示待访问点的数量,τ[N][N]中的每个元素对应多个待访问点中的两个点,例如,e与f表示在访问路线中的两个待访问点,τ[e][f]则表示信息素矩阵中与e与f对应的元素。所以基于最优访问顺序,可以确定出最优路线中依次相连的两个待访问点,进而可以确定出最优路线中各个依次相连的两个待访问点在信息素矩阵中的对应元素,即信息素矩阵中与最优路线对应的元素。

本发明实施例中,在确定出最优路线后,基于最优路线对信息素矩阵中与最优路线对应的元素进行更新,从而使后续构造的蚂蚁路线更能够满足总目标的需求。

假如某一条最优路线的待访问点的访问顺序依次为h

S203:根据最优路线对应的路线长度,以及最优路线中各待访问点的访问顺序与访问优先指数之间的差异度,更新信息素矩阵中与最优路线对应的元素。

其中,根据公式2可以得出最优路线对应的路线长度,即最优路线对应的OBJ

则本步骤中具体执行方式可以为,通过公式3,根据最优路线更新信息素矩阵中与最优路线对应的元素。

基于公式3,可以计算出最优路线对应的OBJ

在公式6中,OBJ

需要说明的是,为了减少旧信息素对后续迭代过程中构造蚂蚁路线的影响,本发明实施例中,还可以在执行本步骤之前,对信息素矩阵执行旧信息素的挥发。具体方式为,设置挥发系数,挥发系数的值通常小于1,然后将信息素矩阵中所有元素乘以挥发系数,从而得出执行旧信息素的挥发后的信息素矩阵,然后再执行本步骤中更新信息素矩阵中与最优路线对应的元素的过程。

S204:根据最优路线对应的路线长度,以及最优路线中各待访问点的访问顺序与访问优先指数之间的差异度,计算信息素更新的最大值和最小值。

为了避免信息素矩阵中元素的值过大或过小,本发明实施例在每轮迭代中,执行步骤S203的更新信息素矩阵后,还可以对信息素矩阵中元素的值进行调整。

本发明实施例中,在每轮迭代中可以确定信息素矩阵中信息素更新的最大值τ

在公式7中,c为一个常数,OBJ

S205:将更新后的信息素矩阵中大于最大值的元素调整为最大值,以及将更新后的信息素矩阵中小于最小值的元素调整为最小值。

在确定出信息素更新的最大值和最小值后,可以对步骤S203更新后的信息素矩阵进行调整。具体方式为,判断更新后信息素矩阵中各元素的值存在大于最大值或小于最小值的元素。如果更新后信息素矩阵中存在大于最大值的元素,则将大于最大值的元素调整为最大值;如果更新后信息素矩阵中存在小于最小值的元素,则将小于最小值的元素调整为最小值。

需要说明的是,在执行完本步骤之后,还可以对信息素矩阵执行信息素的光滑化操作。

通过本发明实施例的过程,可以实现每轮迭代中对信息素矩阵的更新过程。

下面结合图1、图2所示的实施例,对本发明实施例中多目标路线规划的方法进行具体说明。如图3所示,该方法包括以下步骤。

S301:确定多个待访问点的访问优先指数和多个待访问点之间的访问距离,以及初始化信息素矩阵。

其中,确定多个待访问点的访问优先指数和多个待访问点之间的访问距离的方式与步骤S101中执行过程相同,在此不再赘述。

多个待访问点之间的访问距离,可以通过距离矩阵dis[N][N]表示。i与j表示两个待访问点,则dis[i][j]表示此待访问点之间的距离。

信息素矩阵是一个二维矩阵,可以表示为τ[N][N],N表示待访问点的数量,τ[N][N]中的每个元素对应多个访问点中的两个点,例如,e与f表示在访问路线中的两个待访问点,τ[e][f]表示信息素矩阵中与e与f对应的元素。初始化信息素矩阵的方式可以为将τ[N][N]的各元素取一个较大初始值,例如,可以设置信息素矩阵各元素的初始值设置为1000。

S302:初始化蚂蚁信息和迭代次数。

初始化蚂蚁信息,即为所有蚂蚁算法的各模型参数赋初值,蚂蚁信息可以包括蚂蚁起始点、蚂蚁禁忌表(记录遍历过程中的已访问的待访问点)、各分目标与总目标的初始值等,其中本发明实施例分目标为第一目标和第二目标。迭代次数的初始值可以设置为0。

蚂蚁禁忌表,通常表示为数组tabu[N],tabu[N]的索引对应于待访问点的标号。在蚂蚁算法中,蚂蚁寻找下一个访问的待访问点时,tabu[N]中对应已经被访问的待访问点h

在每一轮迭代前均需要初始化蚂蚁起始点,即为所有蚂蚁设置起始出发点。由于基于访问优先指数确定各待访问点访问顺序是路线规划一个目标,因此本发明实施例中可以将蚂蚁起始点设置为比较满足访问优先指数的需求。具体方式可以为:设置δ,δ取值可以为0到1之间,如0.2,然后将path[N]中推荐序号小于δN的那部分待访问点依次分配给各个蚂蚁,作为各个蚂蚁的起始点,其中δN可以表示为顺序阈值。对于序号为k的蚂蚁,其起始点设置如公式8所示。

num

在公式8中,num

S303:根据信息素矩阵和蚂蚁信息构建蚂蚁路线。

其中,所有蚂蚁根据蚂蚁信息可以分别独立地遍历所有待访问点,从而构造出蚂蚁路线。每一个蚂蚁路线中下一个待访问点的选择,可以基于蚁群算法的状态转移规则。

每只蚂蚁从当前待访问点i选择下一个待访问点时,可以根据公式9计算从当前待访问点i与未被访问的待访问点m之间的转移概率。

其中,τ(i,m)是信息素矩阵与待访问点i和待访问点m对应的元素,可以表示为τ[i][m];η(i,m)是待访问点i和待访问点m之间的启发信息,取值为待访问点i和待访问点m间距离的倒数;u表示任一尚未被此蚂蚁访问的待访问点。α与β分别为信息素和启发信息的权重参数,可以预先设置。

通过公式9,可以计算出蚂蚁与各个未被访问的待访问点之间的转移概率。然后可以通过轮盘赌算法确定出下一个待访问点r。例如,首先确定一个0到1之间的随机数θ,然后不断累加未被访问的待访问点j的转移概率值,直到累加到某一个待访问点r时转移概率的累加值大于了随机数θ,则可以将待访问点r确定为下一个访问位置点。具体的,可以通过公式10确定下一个待访问点r。

在公式10中,i表示蚂蚁的当前待访问点,m表示未被蚂蚁访问的待访问点,P

S304:基于总目标确定最优路线,并基于最优路线更新信息素矩阵。

在确定最优路线时,可以对构造的蚂蚁路线,分别通过公式1和公式2计算第一目标的值OBJ

在步骤S303构造除了多个蚂蚁路线,在本轮迭代之前的迭代中,有可能也构造出了蚂蚁路线。本步骤中,最优路线可以从本轮迭代构造的蚂蚁路线中确定,即为本轮的最优路线,最优路线也可以从所有迭代过程中构造的蚂蚁路线中确定,即为全局最优路线。

为避免嵌入局部最优解,在确定最优路线时,只有全局最优路线或每轮迭代的本轮最优路线用于更新信息素矩阵。由于本发明解决问题的多目标性质,在迭代过程的前期可以采用每轮迭代OBJ

在采用本轮最优路线来更新信息素矩阵时,则从本轮构造的蚂蚁路线中,通过公式3确定出本轮最优路线。在采用全局最优路线来更新信息素矩阵时,则从所有迭代过程构造的蚂蚁路线中,通过公式3确定出全局最优路线。

在确定出最优路线后,可以通过图2所示的实施例对信息素矩阵进行更新,在此不再赘述。

需要说明的是,本步骤中,在确定最优路线时,对每个构造的蚂蚁路线均需要通过公式3计算出总目标值,则本步骤可以将每个蚂蚁路线的总目标值进行存储,以便于步骤S306使用。

S305:递增迭代次数,判断迭代次数是否小于预设次数,若是,则执行步骤S202;若否,则执行步骤S206。

在执行步骤S304后,即可表示完成一次迭代过程,则可以将迭代次数递增预设值,预设值通常为1。然后判断迭代次数是否小于预设次数,如果迭代次数小于预设次数,则说明迭代次数未达到迭代需求,需要执行步骤S302,继续执行迭代过程;如果迭代次数不小于预设次数,则说明迭代次数已达到迭代需求,可以执行步骤S305。

S306:根据总目标从已构造的蚂蚁路线中筛选出目标路线。

本步骤中,可以根据整个迭代过程所构造蚂蚁路线中每个蚂蚁路线的总目标值,筛选出目标路线。具体方式为,将总目标值最小的蚂蚁路线确定为目标路线。

需要说明的是,由于步骤S304中已经存储了各蚂蚁路线的总目标值,所以本步骤可以直接使用步骤S304中已存储的各蚂蚁路线的总目标值,来筛选出目标路线。

本发明实施例中,可以基于多个待访问点的访问优先指数、多个待访问点之间的访问距离来构造蚂蚁路线,并从已构造的蚂蚁路线中筛选出目标路线。如此,本发明实施例中基于多个待访问点的访问优先指数、多个待访问点之间的访问距离来构造蚂蚁路线,可以构建出满足多目标的蚂蚁路线,进而从构造的蚂蚁路线中筛选出最接近多目标的目标路线,从而可以解决对一些多目标路线规划的场景,规划出满足多目标路线的问题。

结合图1、图2和图3所示的实施例,本发明实施例可以基于TSP问题的国际通用数据集TSPLIB测试本发明实施例中提出的多目标路线规划的方法。具体的,设置待访问点为需要考察的城市,需要考察的城市数为100(即N取值100),对应于TSPLIB中数据文件kroA100。并设置公式9中信息素α与启发信息β的相对权重参数分别为1.0与2.0;信息素的挥发系数为0.02。

图4示出了,公式5中相对目标权重参数σ取值为0.2时的各目标值随迭代次数的变化关系。其中,第1目标值即为第一目标的值,第2目标值即为第二目标的值,第一目标值和第二目标值的整体变化趋势为随着迭代次数的增加而变小,但两者都存在较大波动。然而,总目标值随着迭代次数的增加而单调下降。所以图4说明了本发明实施例在迭代过程中,总目标最小化适合作为每轮迭代的优化目标。

图5进一步示出了各目标值随相对目标权重参数σ的变化关系,即第一目标值、第二目标值和总目标值随相对目标权重参数σ的变化关系。如图5所示,随着σ的变大,第一目标值不断上升,而第二目标值不断下降。由于σ在某种程度上表示第二目标相对第一目标的影响程度,因此σ的较大取值将不利于第一目标实现最小化,而有利于第二目标实现最小化。

本发明实施例中,根据公式1计算各访问路线的第一目标,公式1为能够反映各待访问点的访问顺序偏离基于优先指数的推荐顺序时所导致影响的目标函数。公式1在各待访问点的访问顺序与推荐顺序完全一致时达到最小值(0),且随各待访问点的访问顺序与推荐顺序之间偏差量的增大而变大。同时,各待访问点的单位偏差的惩罚系数为其对应的访问优先指数,从而体现不同访问优先指数的不同影响程序。

本发明实施例中,公式3能够体现出路线规划的第一目标和第二目标,并通过相对目标权重参数建立第一目标和第二目标之间的关系。结合相对目标权重参数的取值方法,则可以通过公式3来求解能保证整体最优的结果,即确定最能满足规划目标的路线。

通过本发明实施例对MMAS算法进行改进,包括对各迭代步的最优路线判定依据、信息素矩阵更新、更新信息素的最大值和最小值的计算,以及蚂蚁起始点的设置等方面进行改进,从而可以使改进的MMAS算法能够解决多目标路线规划的问题。

需要说明的是,本发明实施例中的多目标路线规划方法可以用于多种场景中。如行人路线规划、车辆路线规划、移动机器人路线规划等。在物流与供应链领域,具体还可以用于仓库拣货路线优化、物品配送路线优化等场景。具体的,在物品配送路线优化的场景中,待访问点即为需要物品配送的位置点,通过本发明实施例可以确定出满足总目标的配送路线。

为了解决现有技术存在的问题,本发明实施例提供了一种多目标路线规划的装置600,如图6所示,该装置600包括:

确定单元601,用于确定多个待访问点的访问优先指数和所述多个待访问点之间的访问距离;

所述确定单元601,还用于根据初始化的信息素矩阵和初始化的蚂蚁信息构造蚂蚁路线,根据所述访问优先指数和所述访问距离从已构造的蚂蚁路线中确定出最优路线,基于所述最优路线对所述信息素矩阵进行更新,并根据更新后的信息素矩阵和重新初始化的蚂蚁信息重新构造蚂蚁路线,直到构造蚂蚁路线的次数达到预设次数重新;

筛选单元602,用于根据所述访问优先指数和所述多个待访问点之间的距离,从已构造的蚂蚁路线中筛选出目标路线。

应理解的是,实施本发明实施例的方式与实施图1所示实施例的方式相同,在此不再赘述。

本发明实施例的一种实现方式中,在一个实施例中,所述确定单元601,具体用于:

对已构造的蚂蚁路线中的每个蚂蚁路线,根据所述蚂蚁路线确定所述多个待访问点的访问顺序,并根据所述访问顺序和所述访问优先指数,计算所述蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度;

根据所述访问距离,计算所述每个蚂蚁路线的路线长度;

根据所述每个蚂蚁路线的路线长度,以及所述每个蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,从所述已构造的蚂蚁路线中确定出最优路线。

在又一个实施例中,所述确定单元601,具体用于:

根据所述访问优先指数,确定所述多个待访问点中每个待访问点的推荐序号;

根据所述访问顺序,确定所述每个待访问点的访问序号;

根据所述每个待访问点的推荐序号、所述每个待访问点的访问序号和所述每个待访问点的访问优先指数,计算所述每个待访问点的访问顺序与所述访问优先指数之间的差异度;

根据所述每个待访问点的访问顺序与所述访问优先指数之间的差异度,确定所述蚂蚁路线中各待访问点的访问顺序与所述访问优先指数之间的差异度。

在又一个实施例中,所述确定单元601,具体用于:

确定所述最优路线对应所述多个待访问点的最优访问顺序;

根据所述最优访问顺序,确定所述信息素矩阵中与所述最优路线对应的元素;

根据所述最优路线对应的路线长度,以及所述最优路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,更新所述信息素矩阵中与所述最优路线对应的元素。

在又一个实施例中,所述确定单元601,具体用于:

根据所述最优路线对应的路线长度,以及所述最优路线中各待访问点的访问顺序与所述访问优先指数之间的差异度,计算信息素更新的最大值和最小值;

将更新后的信息素矩阵中大于所述最大值的元素调整为所述最大值,以及将更新后的信息素矩阵中小于所述最小值的元素调整为所述最小值。

在又一个实施例中,所述蚂蚁信息包括蚂蚁起始点;

所述确定单元601,还用于根据所述访问优先指数确定所述多个待访问点的推荐顺序;根据所述多个待访问点的数量和随机值确定顺序阈值;

所述装置600还包括:

初始化单元,用于根据所述推荐访问顺序和所述顺序阈值,初始化所述蚂蚁起始点。

应理解的是,实施本发明实施例的方式与实施图1、图2、图3所示实施例的方式相同,在此不再赘述。

本发明实施例中,可以基于多个待访问点的访问优先指数、多个待访问点之间的访问距离来构造蚂蚁路线,并从已构造的蚂蚁路线中筛选出目标路线。如此,本发明实施例中基于多个待访问点的访问优先指数、多个待访问点之间的访问距离来构造蚂蚁路线,可以构建出满足多目标的蚂蚁路线,进而从构造的蚂蚁路线中筛选出最接近多目标的目标路线,从而可以解决对一些多目标路线规划的场景,规划出满足多目标路线的问题。

根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。

本发明的电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明实施例所提供的多目标路线规划的方法。

图7示出了可以应用本发明实施例的多目标路线规划的方法或多目标路线规划的装置的示例性系统架构700。

如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。

终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如产品信息--仅为示例)反馈给终端设备。

需要说明的是,本发明实施例所提供的多目标路线规划的方法一般由服务器705执行,相应地,多目标路线规划的装置一般设置于服务器705中。

应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图8,其示出了适于用来实现本发明实施例的计算机系统800的结构示意图。图8示出的计算机系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段、或代码的一部分,上述单元、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括确定单元和筛选单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,确定单元还可以被描述为“确定单元的功能的单元”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行本发明所提供的多目标路线规划的方法。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 多目标路线规划的方法、装置、电子设备和存储介质
  • 电动车的路线规划方法、装置、电子设备和存储介质
技术分类

06120113098031