CN101650805A - 用于路径规划的搜索方法 - Google Patents
用于路径规划的搜索方法 Download PDFInfo
- Publication number
- CN101650805A CN101650805A CN200910161350A CN200910161350A CN101650805A CN 101650805 A CN101650805 A CN 101650805A CN 200910161350 A CN200910161350 A CN 200910161350A CN 200910161350 A CN200910161350 A CN 200910161350A CN 101650805 A CN101650805 A CN 101650805A
- Authority
- CN
- China
- Prior art keywords
- task
- individual
- loop
- correspondence
- individuality
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种用于路径规划的搜索方法,包括以下步骤:对对应路径图的路径规划方案的种群中各个个体进行初始化,其中每个个体S包括按照所述路径图对各个车辆规划的任务回路序列,每个任务回路中包括一个车辆对应的回路任务序列;对每个个体S依次执行传统步长的局部搜索和大于所述传统步长的可变步长局部搜索,以获得对应的局部最优解个体S’;根据每个个体对应的所有回路总消耗和/或每个个体违背容量约束的程度对所有的局部最优解个体S’进行排序;以及根据所述排序确定所述路径图的最优路径规划方案。本发明具有良好的路径规划性能。
Description
技术领域
本发明属于运输智能领域,尤其涉及一种用于路径规划的随机搜索算法。
背景技术
路径规划问题是一个经典的组合优化问题,在工业领域中具有广泛的应用。例如城市中的洒水路由、垃圾收集、信件投递、校车调度等问题均看看作是路径规划问题。路径规划问题可看作是在给定的图上构造若干条回路,使得这些回路满足一些特定的条件和约束并且路由这些回路的总消耗最少。由于路径规划问题经常涉及到庞大的市场或巨额的资金,因此设计有效的解决方法是非常有必要的。然而,经理论证明路径规划问题是一个NP(非确定性多项式时间)难问题,即找到问题的全局最优解的时间随着问题规模的增长呈指数级增长。
很多成功的先例已经证明了在传统的演化算法中加入局部搜索的概念能够在路径规划问题等这类NP难的组合优化问题表现出有效的性能。这是因为路径规划问题的解空间很大并且复杂,加入局部搜索能够加强算法的收敛性从而在有限的时间内得到性能更好的解。然而,这些方法都有一个共有的缺陷,那就是它们均采用了传统的小步长局部搜索,在局部搜索的每一步,只能产生与当前解极为相似的解。这样在某些情况下,例如问题的解空间较大或者容量约束较严格导致解空间由大量分散的可行区域组成的情况下,用传统的小步长局部搜索将不能达到理想的结果。在前一种情况下,从当前解可能需要很多步局部搜索才能达到全局最优解,而在后一种情况下,传统的小步长局部搜索可能导致搜索无法越过可行区域之间的非可行区域从而跳出当前的局部最优解。
因此确定算法只能适用于小规模的路径规划问题,而无法适用于在实际中常常出现的中等或大规模问题。
发明内容
本发明的目的旨在至少解决现有技术中的上述问题之一。
为此,本发明的实施例提出一种更有效的用于路径规划的搜索方法。
根据本发明的一个方面,本发明实施例提出了一种用于路径规划的搜索方法,所述搜索方法包括以下步骤:a)对对应路径图的路径规划方案的种群中各个个体进行初始化,其中每个个体S包括按照所述路径图对各个车辆规划的任务回路序列,每个任务回路中包括一个车辆对应的回路任务序列;b)对每个个体S依次执行传统步长的局部搜索和大于所述传统步长的可变步长局部搜索,以获得对应的局部最优解个体S’;c)根据每个个体对应的所有回路总消耗和/或每个个体违背容量约束的程度对所有的局部最优解个体S’进行排序;以及d)根据所述排序确定所述路径图的最优路径规划方案。
根据本发明进一步的实施例,所述步骤a包括:对所述路径图对应的所有任务边进行编号,其中每个任务边以其对应的两个端点表示;以及对于每个车辆对应的回路任务序列,从所有任务边的未选取任务编号中选择可在不违反容量约束条件的条件下插入对应序列的任务编号。
根据本发明进一步的实施例,所述步骤b包括:首先对每个个体S执行所述传统步长的局部搜索,获得对应的第一局部最优解个体S1;对每个第一局部最优解个体S1执行所述可变步长的局部搜索,获得对应的第二局部最优解个体S2;以及再次对每个第二局部最优解个体S2执行所述传统步长的局部搜索,获得所述对应的局部最优解个体S’。
根据本发明进一步的实施例,所述可变步长局部搜索包括:从每个个体包含的任务回路序列中选择部分任务回路,并将所述部分任务回路对应的车辆回路任务序列融合为一个任务序列;按照所选任务不违背容量约束且任务之间距离最近的条件,从所述融合任务序列依次选择任务进行排序;利用Ulusoy划分算法将所述排序的任务重新划分为回路,以使得重新划分后每个回路产生的额外消耗最小;以及以所述重新划分的回路来替换所述部分任务回路。
根据本发明再一步的实施例,若每次选择时存在多个任务满足所述条件,进一步利用下面多个规则中至少一个比较所述多个任务以选择一个任务进行当前排序;所述多个规则包括:1.最大化任务与仓库之间的距离;2.最小化任务与仓库之间的距离;3.最大化任务的需求量与服务消耗之比;和4.最小化任务的需求量与服务消耗之比。进一步地,若当前排序中任务的总需求量小于容量的一半,采取所述规则1;否则采取所述规则2。
根据本发明进一步的实施例,在所述步骤b之前还包括:利用每个个体S交叉生成不同于个体S的后代群体;分别计算所述后代群体的每个个体与所有个体S之间的距离;按照所述后代群体的每个个体距离个体S的距离最小值排序选择所述后代群体的部分个体来替代个体S。
根据本发明进一步的实施例,所述排序步骤包括:计算每个个体的违背容量约束的程度和每个个体对应的所有回路总消耗;在比较任意两个个体时,若其对应的违背容量约束的程度为零,则根据其对应的所有回路总消耗大小排序;若其对应的违背容量约束的程度大于零,则根据以预定概率比较其对应的违背容量约束的程度和以预定概率比较其对应的所有回路总消耗来进行排序。
本发明引入了一个新的具有可变步长的局部搜索算子,基于此算子的局部搜索能够产生在较大程度上不同于当前解的相邻解,因此算法在现有算法较难解决的上述两种情况下具有较好的路径规划性能。另外,本发明将可变步长和传统步长局部搜索相结合,对算法性能提升起着重要作用。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一个实施例的用于路径规划的搜索方法的步骤流程图;
图2为本发明实施例的可变步长的局部搜索原理图;
图3为本发明另一个实施例的用于路径规划的搜索方法的步骤流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
图1给出了本发明一个实施例的用于路径规划的搜索方法的步骤流程图。如图所示,首先对对应路径图的路径规划方案的种群中各个个体进行初始化(步骤102),其中每个个体S包括按照所述路径图对各个车辆规划的任务回路序列,每个任务回路中包括一个车辆对应的回路任务序列。
然后,对每个个体S依次执行传统步长的局部搜索和大于所述传统步长的可变步长局部搜索,以获得对应的局部最优解个体S’(步骤104)。
根据每个个体对应的所有回路总消耗和/或每个个体违背容量约束的程度对所有的局部最优解个体S’进行排序(步骤106)。最后,根据上述排序确定该路径图的最优路径规划方案(步骤108)。
在步骤102对各个个体进行初始化时,首先对个体进行编码:
首先将路径图对应的所有任务边进行编号,假如有t条任务边,则给定编号集合为{1,2,...,2×t},对每条边各分配两个编号i和i+t。对于某条任务边(vi,vj),给其分配的一个编号表示从vi到vj的方向,而另一个编号表示从vj到vi的方向。
另外,为了表示方便,本发明实施例额外定义了一个虚拟任务并为其分配编号为0,其头节点与尾节点均为仓库点,经过消耗与需求均为0。这个虚拟任务表示车辆从仓库出发或回到仓库。当以上预处理完毕后,每个个体S可以表示为若干条编号序列,其中每条序列表示一辆车所经过的回路,可记为S=(R1,R2,...,Rm)。每个编号序列的起始和终结均为分隔符0,即Rk=(0,xk1,xk2,...,xkl,0),这保证了每辆车均从仓库出发而且最终回到仓库。在每个序列中间的值为给某个任务边分配的编号,其顺序表示它们被服务的顺序。相邻任务之间由从前一个任务尾节点到后一个任务头节点的最短路径相连接并在解的编码中进行忽略。
然后,对每个个体S进行初始化:首先设置个体的所有序列为空,并对所有任务编号标记为未选取,然后进入插入阶段。在插入阶段的开始,开启第一条序列并将虚拟任务0插入。接下来在每一次插入时,先从所有未选取的任务编号中挑选出能够在不违反容量约束的条件下插入当前序列的任务编号作为候选编号,然后从候选编号中随机选出一个插入到当前序列的最后。假如候选编号为空,对当前序列的最后插入0以完成对其的构造,同时开启一条新的序列(与开启第一条序列方式一致),并重新挑选候选编号。在插入候选编号以后,将它所对应的任务边所分配的2个编号均标记为已选取,至此,一次插入操作结束。当所有的任务编号均被插入时,对一个个体的初始化即完成。
最后,对群体进行初始化:在群体中为了维持各个个体之间的多样性,相同的个体不允许同时存在。因此只有在新生成的个体与群体中现有的所有个体均不相同时才会被加入到群体中。
同时,为了避免过多的重复初始化个体,对每个个体有一个最大尝试初始化次数mtrial。具体的初始化群体步骤如下:首先将群体设置为空,然后依次将初始化的个体按一定的标准插入至群体中。在初始化每个个体时,若该个体与群体中现有个体无重复,则将其插入至群体,否则将重新对其进行初始化。假如连续mtrial次初始化均无法生成满足条件的个体,则停止初始化并将群体规模重新设置为当前规模。
上述初始化群体步骤以程序语言可以表示如下:
pop←φ;
while|pop|<popsize do
for i=1→mtrial do
初始化个体indi;
if indi没出现在群体中do
pop=pop∪indi;
break;
endif
endfor
if i>mtrial do
break;
endif
endwhile
在步骤104对每个个体S执行局部搜索时,可以将局部搜索分为以下三个阶段:
第一阶段:首先对个体S进行传统步长的局部搜索,将最终得到的局部最优解记为S′。
此处选取的传统步长的搜索算子可以为以下三种:i)将一个任务编号从原位置取出插入到另一个位置;ii)将相邻的两个任务编号从原位置取出插入到另一个位置;iii)将两个任务编号互换位置。例如给定一个服务6条任务边的解为((0,3,5,12,2,0,),(0,10,7,0)),将3移动至10的后面得到((0,5,12,2,0,),(0,10,3,7,0));将(5,12)移动至7后面得到((0,3,2,0,),(0,10,7,5,12,0));将2与7互换位置得到((0,3,5,12,7,0,),(0,10,2,0))。
需要注意的是任务编号在插入时可以改变其方向,例如选取3后既可以插入3也可以插入其相反的方向9,具体选取方案由插入后所得到的解的质量好坏决定。
第二阶段:对S′进行可变步长(扩展步长)的局部搜索,将得到的局部最优解记为S″。在本发明实施例中,可变步长的局部搜索是以大于传统步长的扩展步长进行局部搜索。具体工作原理可以参考图2,图2为本发明实施例的可变步长的局部搜索原理图
首先,对于给定的一个具有若干个回路的个体S′,选取其对应任务回路序列中的p条回路(其中p不超过个体所含有的回路总个数),并将这p条回路融合为一个非顺序的任务编号列表。然后,利用路径扫描(pathscanning)启发式算法对此非顺序的任务编号列表进行排序。
Path scanning由一个空的回路开始,并把融合列表中的多个任务按一定的顺序插入到当前回路排序中。在每一次插入时,先选择出不违背容量约束的任务中距离当前排序的回路最后一个任务最近的任务;如果无任务满足该条件,则封闭当前回路并开启一个新的回路继续进行排序,直至融合列表中所有的任务均排序完成,得到它们的顺序列表。
在实际操作中,按照每次排序插入所选任务不违背容量约束且任务之间距离最近的条件,可能存在有多个任务满足上述条件的情况。这时,可以从以下5种规则中的一个,对这些满足条件的多个任务进行比较,从而选择一个合适的任务插入当前排序中。
这5种规则包括:1.最大化任务与仓库之间的距离,即从多个任务中选择距离仓库距离最远的任务;2.最小化任务与仓库之间的距离,即从多个任务中选择距离仓库距离最近的任务;3.最大化编号为id的任务的需求量与服务消耗之比,即d(id)/sc(id),也就是从多个任务中选择对应d(id)/sc(id)最大的任务;4.最小化d(id)/sc(id),即从多个任务中选择对应d(id)/sc(id)最小的任务;5.如果当前排序回路中的任务总需求量小于容量的一半,则采取规则1,反之则采取规则2。
通过选择上面的任意一种规则,可以产生对应非顺序融合序列的一个顺序任务排列列表。当然,本发明也可以选择上述5个规则中的至少一个规则分别对这些融合序列进行排序。
在图2所示实施例进行启发式扫描时,则利用上述5个规则分别对这些融合任务列表进行排序,也就是每次排序时始终利用相同的一个规则,从而产生有5个不同的解(顺序列表1到顺序列表5)。当融合列表中所有的任务均被插入时,path scanning终止。
然后,在利用path scanning产生了5个解之后,对此5个解分别利用Ulusoy划分算法(Ulusoy’s splitting,具体可参考文献G.Ulusoy,“The fleetsize and mix problem for capacitated arc routing,”European Journal ofOperational Research,vol.22,no.3,pp.329-337,1985.)进行重新划分,即将上述排序的任务重新划分为回路,以使得重新划分后每个回路产生的额外消耗最小。对应path scanning产生的5个解,Ulusoy划分后得到5个回路划分后的新解1到5。此划分方法可以对排序后的顺序回路列表以最优方案进行划分,使得每个产生的解在满足容量约束的条件下由划分导致的回路的额外消耗最小。
最后,通过比较这5个新解对应的回路消耗大小,在这5个解之中选择一个最好的解替换原个体S′中被选中的回路,从而产生一个新的个体S″。
当然,在仅利用其中一个规矩得到一个顺序回路列表时,仅需要将该一个排序的任务重新划分为回路,并且以该重新划分的回路来替换被选中的部分任务回路。
第三阶段:对S″再一次进行传统步长的局部搜索,将得到的局部最优解记为S″′。此阶段与第一阶段的搜索步骤相同,这里不再赘述。
在该实施例中,步骤106即在当前得到的该局部最优解S″′基础上进行排序。将这所有的个体利用随机排序法进行从好到坏的排序,根据排序可以确定最优的路径规划方案。
如上文所述,步骤106可以根据每个个体对应的所有回路总消耗和/或每个个体违背容量约束的程度进行排序。具体来说,计算每个个体的违背容量约束的程度和每个个体对应的所有回路总消耗。
个体违背容量约束的程度,即对容量约束的违反值表示为:
个体中所有回路的总消耗可通过以下公式求出:
其中Rki表示在回路Rk中的第i个任务编号;而对某任务编号id,hv(id)与rv(id)分别表示它所代表的任务边的相应方向的起始和终止顶点,则dist(tv(Rki),hv(Rk(i+1))表示路径图中两个相邻任务边Rki的终止点与Rk(i+1)起始点之间路段的最短距离,最短距离可以通过迪杰斯特拉算法计算获得,sc(Rki)表示任务边Rki的服务消耗。
由于需要排序的个体可能违反容量约束,则在比较两个体时需要同时考虑它们的回路的总消耗和违背容量约束的程度。具体来说,在比较任意两个个体时,若其对应的违背容量约束的程度为零,则根据其对应的所有回路总消耗大小进行排序。当然,对应回路总消耗较小的个体越优。
若其对应的违背容量约束的程度大于零,则根据以预定概率比较其对应的违背容量约束的程度和以预定概率比较其对应的所有回路总消耗来进行排序。例如当tvl(S1)或tvl(S2)>0时,以0.45的概率(权重)比较tvl,而另外0.55的概率比较tcost(S)。当然,所得值越小表示对应的个体越优。这样,根据上述个体的优劣排序可以确定每个个体对应的路径规划方案的好坏程度,从而能够确定路径图的最优路径规划方案。
图3给出了本发明的另一个实施例,在该实施例中在对每个个体执行局部搜索步骤之前,进一步对初始化的个体S作为父代来生成后代群体,以进一步优化本发明的路径规划方案。
如图3所示,首先读入问题的输入数据(步骤202)。这里输入数据可以包括路径图的邻接矩阵、每条任务边的服务消耗sc(e)、经过消耗dc(e)和需求量d(e)以及所有车辆的容量Q。然后计算每对顶点之间的最短距离(步骤204)。这里顶点表示路径图中每个任务边的起始或终点编号,每个顶点分别表示为vi,i=1,...,n,这里n为顶点的个数。通过迪杰斯特拉算法计算并存储路径图中每两个点之间的最短距离以便后续步骤的计算,例如后续个体中所有回路的总消耗tcost(S)的计算。同时可以将所有这些距离值保存为一个n×n矩阵dist(vi,vj)。
接着是步骤206,该步骤是将路径图对应的当前群体初始化为规模为popsize个随机生成又各不相同的个体。具体的初始化步骤可以参考上文图1中关于步骤102的描述,这里不再赘述。并且计算得到所有个体中两两之间的距离,根据距离的计算可以防止生成相同的个体。
在计算个体之间距离时,采取的是个体所代表的任务邻接矩阵之间的距离。假设两个体的任务邻接矩阵分别为A和B,则其之间距离为A-B中非零元素的总个数。
为了实现后续步骤的多次循环以及个体排序,在初始化阶段,需要记录种群中每个个体所包含的所有属性,并将所有属性的惩罚值均初始为0(步骤208)。这里,将个体的属性定义为任意两个任务之间是否相邻。给定一个具有n个任务的问题,其包含的所有属性可定义为矩阵In×n,其中Iij为关于任务i和任务j的属性,即,如果任务i和任务j相邻,则Iij=1;否则Iij=0
在上述初始化步骤之后,根据后续步骤的每次循环,判断当前步骤是否满足终止条件,即是否达到设定的循环要求(步骤212)。若满足则下面的算法结束(步骤210),否则设置后代群体为空(步骤214),进入生产后代个体的阶段。具体步骤如下:
初始生成后代群体时,在当前群体中选择两个个体进行交叉产生一个新的个体Sx(步骤218)。交叉规则为:对于给定两个个体S1和S2,交叉算子在S1中随机选取回路R1,在S2中随机选取回路R2。R1与R2又分别进一步随机分割成两个子路,记为R1=(R11,R12)与R2=(R21,R22)。之后用R22替换R12构成一个新的回路。最后,在这个新的回路中把重复出现的任务去除,并将遗漏的任务添加进修改过的S1从而得到新的个体Sx。添加遗漏任务时,可以选择其插入位置使其满足额外消耗和对容量约束的超过量最小。
然后,判断Sx是否与当前群体或后代群体中的某个个体相同,即Sx是否不重复(步骤220)。若Sx与当前群体或后代群体中的某个个体存在相同,则将其抛弃,否则将其添加到后代群体中(步骤222)。
当然,若需要生成一定规模的后代群体,还需要在步骤218前增设判断步骤216,以判断后代个体中的个体个数达到预定的数量。
重复上述步骤216到步骤220,直到后代个体中的个体个数达到预定的数量,例如6×popsize。显然,本发明不局限于该具体实施例,生成的后代个体可以是任意数量,大于、小于或等于当前群体的popsize个数量。
在生成的后代群体规模达到预定数量要求之后,对后代群体中的所有个体,计算其与当前群体中所有个体的距离的最小值(步骤224),并以此值从大到小将后代个体进行排序。然后,优先选择与当前群体较远的个体,即选择后代群体中排在前面的一定比例,例如20%的个体S进行传统步长与扩展步长相结合的局部搜索,将搜索得到的局部最优解替换原个体中被选中的回路(步骤226)。这里步骤226的局部搜索可以与图1的步骤104相同,这里不再赘述。此外,在对个体进行局部搜索时优先选择与当前群体较远的个体,这样能够有效地避免重复搜索相同的区域从而减少了计算资源的浪费。
其中,若局部搜索后得到的个体与当前群体和后代群体中的某个个体相同,则将其从后代群体中抛弃。
接下来,将后代群体与当前群体合并和排序,选取最靠前的popsize个最好的个体构成新的当前群体,以作为下一代群体(步骤228)。
这里对合并群体中每个个体的排序与图1中步骤106类似,但是如上文所述在设置循环次数的终止条件下,若没达到终止条件,则重复步骤212到228。因此,这里对个体进行排序比较时,两个体时则需要同时考虑它们的增长适应度函数值g(S)和违背容量约束的程度
对个体S,其增长适应度函数定义如下: 其中f(S)为个体S的原始适应度函数,这里把个体中所有回路的总消耗tcost(S)直接作为个体的原始适应度。n为任务总数,pij即为属性Iij的惩罚值。
在每次循环时,对于步骤228合并后选取作为下一代的群体,需要对其中的个体更新各个属性在下一代的惩罚值。具体来说,各属性的惩罚值主要通过如下步骤进行更新:
对下一代群体中的每个个体S,首先计算各个属性Iij对其的效用值即,如果个体S不包含属性Iij,则属性Iij对其的效用值为0,否则属性Iij对其的效用值为其中cij(S)为任务i与任务j之间的距离;而pij为其当前惩罚值。然后,将对其效用值最大的属性Iij的惩罚值pij增加1。同时保持其他属性的惩罚值不变。
因此在步骤228的每次合并后,需计算所有个体的基于当前惩罚值的在导向局部搜索中所定义的增长适应度函数。
然后,根据个体对应的增长适应度函数值g(S)和违背容量约束的程度,选取其中最好的popsize个个体构成新的当前群体。相应地,在比较两个个体S1与S2时,分如下几种情况考虑:当tvl(S1)=tvl(S2)=0时,直接比较g(S);当tvl(S1)或tvl(S2)>0时,例如以0.45的概率比较tvl,而另外0.55的概率比较g(S)。
本发明通过引入了一个新的具有扩展步长的局部搜索算子,基于此算子的局部搜索能够产生在较大程度上不同于当前解的相邻解,因此算法在现有算法较难解决的上述两种情况下具有较好的性能。
另外,由于传统步长局部搜索的存在,该算法在一般的情况下同样具有优异的性能。扩展步长和传统步长局部搜索相结合,对算法性能提升起着重要作用。
本发明还在对个体进行局部搜索时优先选择与当前群体较远的个体,这样能够有效地避免重复搜索相同的区域从而减少了计算资源的浪费。
最后,本算法结合了导向局部搜索的思想,进一步减少了搜索陷入局部最优的可能性。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (10)
1.一种用于路径规划的搜索方法,其特征在于,所述搜索方法包括以下步骤:
a)对对应路径图的路径规划方案的种群中各个个体进行初始化,其中每个个体S包括按照所述路径图对各个车辆规划的任务回路序列,每个任务回路中包括一个车辆对应的回路任务序列;
b)对每个个体S依次执行传统步长的局部搜索和大于所述传统步长的可变步长局部搜索,以获得对应的局部最优解个体S’;
c)根据每个个体对应的所有回路总消耗和/或每个个体违背容量约束的程度对所有的局部最优解个体S’进行排序;以及
d)根据所述排序确定所述路径图的最优路径规划方案。
2.如权利要求1所述的搜索方法,其特征在于,所述步骤a包括:
对所述路径图对应的所有任务边进行编号,其中每个任务边以其对应的两个端点表示;以及
对于每个车辆对应的回路任务序列,从所有任务边的未选取任务编号中选择可在不违反容量约束条件的条件下插入对应序列的任务编号。
3.如权利要求1所述的搜索方法,其特征在于,所述步骤b包括:
首先对每个个体S执行所述传统步长的局部搜索,获得对应的第一局部最优解个体S1;
对每个第一局部最优解个体S1执行所述可变步长的局部搜索,获得对应的第二局部最优解个体S2;以及
再次对每个第二局部最优解个体S2执行所述传统步长的局部搜索,获得所述对应的局部最优解个体S’。
4.如权利要求1或3所述的搜索方法,其特征在于,所述可变步长局部搜索包括:
从每个个体包含的任务回路序列中选择部分任务回路,并将所述部分任务回路对应的车辆回路任务序列融合为一个任务序列;
按照所选任务不违背容量约束且任务之间距离最近的条件,从所述融合任务序列依次选择任务进行排序;
利用Ulusoy划分算法将所述排序的任务重新划分为回路,以使得重新划分后每个回路产生的额外消耗最小;以及
以所述重新划分的回路来替换所述部分任务回路。
5.如权利要求4所述的搜索方法,其特征在于,若每次选择时存在多个任务满足所述条件,进一步利用下面多个规则中至少一个比较所述多个任务以选择一个任务进行当前排序;
所述多个规则包括:1.最大化任务与仓库之间的距离;2.最小化任务与仓库之间的距离;3.最大化任务的需求量与服务消耗之比;和4.最小化任务的需求量与服务消耗之比。
6.如权利要求5所述的搜索方法,其特征在于,若当前排序中任务的总需求量小于容量的一半,采取所述规则1;否则采取所述规则2。
7.如权利要求1所述的搜索方法,其特征在于,在所述步骤b之前还包括:
利用每个个体S交叉生成不同于个体S的后代群体;
分别计算所述后代群体的每个个体与所有个体S之间的距离;
按照所述后代群体的每个个体距离个体S的距离最小值排序选择所述后代群体的部分个体来替代个体S。
8.如权利要求7所述的搜索方法,其特征在于,所述距离为两个个体分别对应的任务邻接矩阵之间的距离。
9.如权利要求7所述的搜索方法,其特征在于,所述步骤c包括:
将所述后代群体的部分个体与所述局部最优解个体S’进行合并;以及
对所述合并的个体进行排序。
10.如权利要求1或9所述的搜索方法,其特征在于,所述排序步骤包括:
计算每个个体的违背容量约束的程度和每个个体对应的所有回路总消耗;
在比较任意两个个体时,若其对应的违背容量约束的程度为零,则根据其对应的所有回路总消耗大小排序;
若其对应的违背容量约束的程度大于零,则根据以预定概率比较其对应的违背容量约束的程度和以预定概率比较其对应的所有回路总消耗来进行排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101613505A CN101650805B (zh) | 2009-07-31 | 2009-07-31 | 用于路径规划的搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101613505A CN101650805B (zh) | 2009-07-31 | 2009-07-31 | 用于路径规划的搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101650805A true CN101650805A (zh) | 2010-02-17 |
CN101650805B CN101650805B (zh) | 2012-06-20 |
Family
ID=41673040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101613505A Expired - Fee Related CN101650805B (zh) | 2009-07-31 | 2009-07-31 | 用于路径规划的搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101650805B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107403548A (zh) * | 2017-07-28 | 2017-11-28 | 武汉依迅北斗空间技术有限公司 | 一种洒水车的调度系统和调度方法 |
CN108332768A (zh) * | 2018-02-10 | 2018-07-27 | 湖南城市学院 | 一种针对无路网信息区域的路径搜索方法 |
CN109978357A (zh) * | 2019-03-15 | 2019-07-05 | 中国科学技术大学 | 一种基于预估的以总路程最短为指标的导弹车调度方法 |
CN112033430A (zh) * | 2020-08-24 | 2020-12-04 | 安庆师范大学 | 一种改进的基于大规模多中心问题的路径规划方法 |
CN113825978A (zh) * | 2019-04-12 | 2021-12-21 | 赛峰电子与防务公司 | 用于定义路径的方法 |
CN116504069A (zh) * | 2023-06-26 | 2023-07-28 | 中国市政工程西南设计研究总院有限公司 | 城市道路网络容量优化方法、装置、设备及可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105553537B (zh) * | 2015-12-08 | 2018-09-07 | 深圳大学 | 基于累加正反馈变步长的最佳中继位置搜寻方法与系统 |
-
2009
- 2009-07-31 CN CN2009101613505A patent/CN101650805B/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107403548A (zh) * | 2017-07-28 | 2017-11-28 | 武汉依迅北斗空间技术有限公司 | 一种洒水车的调度系统和调度方法 |
CN107403548B (zh) * | 2017-07-28 | 2019-12-27 | 武汉依迅北斗空间技术有限公司 | 一种洒水车的调度系统和调度方法 |
CN108332768A (zh) * | 2018-02-10 | 2018-07-27 | 湖南城市学院 | 一种针对无路网信息区域的路径搜索方法 |
CN109978357A (zh) * | 2019-03-15 | 2019-07-05 | 中国科学技术大学 | 一种基于预估的以总路程最短为指标的导弹车调度方法 |
CN113825978A (zh) * | 2019-04-12 | 2021-12-21 | 赛峰电子与防务公司 | 用于定义路径的方法 |
CN113825978B (zh) * | 2019-04-12 | 2022-08-26 | 赛峰电子与防务公司 | 用于定义路径的方法和设备、存储装置 |
CN112033430A (zh) * | 2020-08-24 | 2020-12-04 | 安庆师范大学 | 一种改进的基于大规模多中心问题的路径规划方法 |
CN112033430B (zh) * | 2020-08-24 | 2023-08-29 | 安庆师范大学 | 一种改进的基于大规模多中心问题的路径规划方法 |
CN116504069A (zh) * | 2023-06-26 | 2023-07-28 | 中国市政工程西南设计研究总院有限公司 | 城市道路网络容量优化方法、装置、设备及可读存储介质 |
CN116504069B (zh) * | 2023-06-26 | 2023-09-05 | 中国市政工程西南设计研究总院有限公司 | 城市道路网络容量优化方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101650805B (zh) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101650805B (zh) | 用于路径规划的搜索方法 | |
Subramanian et al. | A hybrid algorithm for a class of vehicle routing problems | |
CN110782086B (zh) | 一种用于救援的带无人机车辆配送路径优化方法及系统 | |
Mester et al. | Active guided evolution strategies for large-scale vehicle routing problems with time windows | |
Wilck IV et al. | A genetic algorithm for the split delivery vehicle routing problem | |
CN109002902A (zh) | 分区域多阶段生鲜农产品动态车辆路径优化方法 | |
CN107220731A (zh) | 一种物流配送路径规划方法 | |
Pantrigo et al. | Scatter search for the cutwidth minimization problem | |
CN102175256A (zh) | 一种基于进化树拓扑路网构建的路径规划确定方法 | |
CN104408589A (zh) | 基于混合粒子群算法的agv优化调度方法 | |
CN110909952B (zh) | 一种带移动配送站的城市两级配送及调度方法 | |
CN109559062A (zh) | 一种合作式物流问题的任务分配与路径规划方法 | |
CN114037180B (zh) | 一种基于分支定价切割算法的协同配送路径优化方法 | |
CN101159048A (zh) | 油品配送槽车调度系统及其方法 | |
CN102880667A (zh) | 一种基于关键路径和禁忌搜索的测试任务调度方法 | |
CN112085288A (zh) | 一种基于两阶段优化的物流配送路线推荐方法及系统 | |
CN114462693A (zh) | 一种基于车辆无人机协同的配送路线优化方法 | |
CN110095134A (zh) | 一种以用户的偏好为核心的路径规划和导航的方法及系统 | |
CN104933473A (zh) | 基于变邻域搜索蚁群算法的城市智能交通调度方法 | |
CN113792989B (zh) | 一种需求驱动的共享观光车区域间并行优化调度方法 | |
CN113344267A (zh) | 一种基于合作的物流网络资源配置优化方法 | |
CN102420812A (zh) | 一种支持分布并行处理的Web服务自动QoS组合方法 | |
Lozano et al. | A statistical comparison of objective functions for the vehicle routing problem with route balancing | |
CN108492020B (zh) | 基于模拟退火与分支切割优化的污染车辆调度方法和系统 | |
Pasha et al. | The shrinking and expanding heuristic for the Fleet Size and Mix Vehicle Routing Problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120620 Termination date: 20160731 |
|
CF01 | Termination of patent right due to non-payment of annual fee |