一种基于GBP的ACO方法与流程

文档序号:21988477发布日期:2020-08-25 19:27阅读:187来源:国知局
一种基于GBP的ACO方法与流程

本发明属于道路网络的路径寻优领域,尤其涉及一种基于gbp的aco方法,上述方法能解决现有技术中的路径寻优方法没有办法结合基因维度进行学习、计算学习时占用大量内存、在进行优化时震荡数值偏大的问题。



背景技术:

路径寻优问题是计算机科学、运筹学、地理信息科学等学科的研究热点之一,被广泛应用在在城市停车场泊车、应急救援、gps导航、兴趣点选址等领域。快速有效的路径寻优算法能够使应用系统迅速得到反馈,提供有价值的资源信息,满足用户需求。

目前的路径寻优研究是基于经典图论和不断发展的计算机数据结构及算法的有效性结合,将道路路网抽象为网络模型,实际的路径抽象为网络的一条边,路径长度表征为边的权值,在该网络上求某两点的最短路径,属于非确定性问题。其中,最经典的方法为dijkstra算法,主要特点是以起点为中心向外层扩展,一层层计算起点到该层的最短路径,直到遍历完所有节点为止。dijkstra算法的优点是保证能找到最短路径,但是由于它需要遍历网络结构的所有节点,在网络节点数较大情况下,其算法的时间花费成倍甚至幂次增长,较难满足实际运算需求。

为了解决算法耗时问题,蚂蚁群算法、遗传算法、蜂群算法等启发式算法应用于路径寻优研究。这类算法均可在设定迭代次数内迅速找到相对满意解,无需遍历整个网络结构,大大减少运算时间。然而这类算法对新空间的探索能力较为有限,容易收敛到局部最优解,同时,这类算法属于随机类算法,需要多次运算,结果的可靠性较差,不能稳定的得到解。

蚁群系统(antsystem或antcolonysystem)是由意大利学者dorigo、maniezzo等人于20世纪90年代首先提出来的。他们在研究蚂蚁觅食的过程中,发现单个蚂蚁的行为比较简单,但是蚁群整体却可以体现一些智能的行为。例如蚁群可以在不同的环境下,寻找最短到达食物源的路径。这是因为蚁群内的蚂蚁可以通过某种信息机制实现信息的传递。后又经进一步研究发现,蚂蚁会在其经过的路径上释放一种可以称之为“信息素”的物质,蚁群内的蚂蚁对“信息素”具有感知能力,它们会沿着“信息素”浓度较高路径行走,而每只路过的蚂蚁都会在路上留下“信息素”,这就形成一种类似正反馈的机制,这样经过一段时间后,整个蚁群就会沿着最短路径到达食物源了。

本发明针对传统的蚂蚁群算法没有办法结合基因维度进行学习、计算学习时占用大量内存、在进行优化时震荡数值偏大的问题;本发明在深入研究蚂蚁群算法的基础上,提出了一种基于蚂蚁群效应算法的路径寻优方法,该算法在蚂蚁群的基础上,通过将用户的基因(gene),行为(behavior),表型(phenotypic)这三类信息称之为用户的gbp数据,将这些数据进行标签化,进而形成以用户为基础的gbp标签;本发明中将上述算法称为gbp-aco算法,可见,gbp-aco具有以下几个特点:(1)采用正反馈机制,使得搜索过程不断收敛,最终逼近最优解;(2)每个个体可以通过释放信息素来改变周围的环境,且每个个体能够感知周围环境的实时变化,个体间通过环境进行间接地通讯;(3)搜索过程采用分布式计算方式,多个个体同时进行并行计算,大大提高了算法的计算能力和运行效率;(4)启发式的概率搜索方式不容易陷入局部最优,易于寻找到全局最优解。



技术实现要素:

本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于蚂蚁群效应算法的路径寻优方法,该算法在蚂蚁群的基础上,通过将用户的基因(gene),行为(behavior),表型(phenotypic)这三类信息称之为用户的gbp数据,将这些数据进行标签化,进而形成以用户为基础的gbp标签;本发明中将上述算法称为gbp-aco算法,可见,gbp-aco具有以下几个特点:(1)采用正反馈机制,使得搜索过程不断收敛,最终逼近最优解;(2)每个个体可以通过释放信息素来改变周围的环境,且每个个体能够感知周围环境的实时变化,个体间通过环境进行间接地通讯;(3)搜索过程采用分布式计算方式,多个个体同时进行并行计算,大大提高了算法的计算能力和运行效率;(4)启发式的概率搜索方式不容易陷入局部最优,易于寻找到全局最优解。

为实现上述发明目的,本发明采用如下的技术方案:

一种基于粒子群优化的路径寻优方法,包括以下步骤:

1)读入并构建路网;将路网数据定义为弧段集和节点集组合,其中每个弧段包含弧段编号、道路名称、进节点编号、出节点编号、路段编号、路段长度、方向编号,每个节点包含节点编号、经纬度、邻接节点编号集和连接弧段编号集;分别读入以上信息,构建路网模型;

其中,可以将数据进行如下简化:设每个数据样本用一个n维特征向量来描述n个属性的值,即:x={x1,x2,…,xn},假定有m个类,分别用c1,c2,…,cm表示。给定一个未知的数据样本x(即没有类标号),方法将未知的样本x分配给类ci,则一定是p(ci|x)>p(cj|x)1≤j≤m,j≠i;

由于p(x)对于所有的属性来说,p(x)都是一样的,即是一个常数(已知),所以p(ci|x)∝p(x|ci)p(ci)

2)初始化;设t=0,初始化bestlength为一个非常大的数(正无穷),besttour为空,初始化所有的粒子的delt矩阵所有元素初始化为0,tabu表清空,allowed表中加入所有的gbp数据节点,随机选择它们的起始位置(也可以人工指定),在tabu中加入起始节点,allowed中去掉该起始节点;

其中,算法粒子中所有粒子的数量为m,所有数据模块之间的信息素用矩阵pheromone表示,最短路径为bestlength,最佳路径为besttour;每个粒子都有自己的内存,内存中用一个禁忌表(tabu)来存储该粒子信息已经访问过的内容,表示其在以后的搜索中将不能访问这些内容;一个允许访问的项目表(allowed)来存储它还可以访问的gbp项目;矩阵(delta)来存储它在一个循环(或者迭代)中给所经过的路径释放的信息素;还有一些额外数据,例如一些控制参数(α,β,ρ,q);粒子信息演变完全程的总成本或距离(tourlength);假定算法总共运行max_gen次,运行时间为t;

3)为每个粒子选择下一个节点;为每个粒子选择下一个节点,该节点只能从allowed中以相对概率搜索到,每搜到一个,就将该节点加入到tabu中,并且从allowed中删除该节点;该过程重复n-1次,直到所有的gbp数据库都遍历过一次。遍历完所有节点后,将起始节点加入到tabu中;此时tabu表元素数量为n+1(n为城市数量),allowed元素数量为0;计成v不快乐算每个粒子的delta矩阵值;最后计算最佳路径,比较每个粒子的路径成本,然后和bestlength比较,若它的路径成本比bestlength小,则将该值赋予bestlength,并且将其tabu赋予besttour;

4)更新信息素矩阵delta;

5)检查终止条件,是否到达max_gen次;

6)输出最优值bestlength;

其中,具体的初始化过程为:

本发明与现有技术相比具有以下优点:本发明创造的优点:选择机制:信息素越多的路径,被选择的概率越大;更新机制:路径上面的信息素会随aco的经过而增长,而且同时也随时间的推移逐渐挥发消失;aco算法正是充分利用了选择、更新和协调的优化机制,即通过个体之间的信息交流与相互协作最终找到最优解,使它具有很强的发现较优解的能力;

与其他优化算法相比,gbp-aco具有以下几个特点:

(1)采用正反馈机制,使得搜索过程不断收敛,最终逼近最优解;

(2)每个个体可以通过释放信息素来改变周围的环境,且每个个体能够感知周围环境的实时变化,个体间通过环境进行间接地通讯;

(3)搜索过程采用分布式计算方式,多个个体同时进行并行计算,大大提高了算法的计算能力和运行效率;

(4)启发式的概率搜索方式不容易陷入局部最优,易于寻找到全局最优解。

附图说明

图1为本发明中的流程图;

具体实施方式

下面结合图1与具体实施方式对本发明做进一步的说明。

为实现上述发明目的,本发明采用如下的技术方案:

一种基于粒子群优化的路径寻优方法,包括以下步骤:

2)读入并构建路网;将路网数据定义为弧段集和节点集组合,其中每个弧段包含弧段编号、道路名称、进节点编号、出节点编号、路段编号、路段长度、方向编号,每个节点包含节点编号、经纬度、邻接节点编号集和连接弧段编号集;分别读入以上信息,构建路网模型;

其中,可以将数据进行如下简化:设每个数据样本用一个n维特征向量来描述n个属性的值,即:x={x1,x2,…,xn},假定有m个类,分别用c1,c2,…,cm表示。给定一个未知的数据样本x(即没有类标号),方法将未知的样本x分配给类ci,则一定是p(ci|x)>p(cj|x)1≤j≤m,j≠i;

由于p(x)对于所有的属性来说,p(x)都是一样的,即是一个常数(已知),所以p(ci|x)∝p(x|ci)p(ci)

2)初始化;设t=0,初始化bestlength为一个非常大的数(正无穷),besttour为空,初始化所有的粒子的delt矩阵所有元素初始化为0,tabu表清空,allowed表中加入所有的gbp数据节点,随机选择它们的起始位置(也可以人工指定),在tabu中加入起始节点,allowed中去掉该起始节点;

其中,算法粒子中所有粒子的数量为m,所有数据模块之间的信息素用矩阵pheromone表示,最短路径为bestlength,最佳路径为besttour;每个粒子都有自己的内存,内存中用一个禁忌表(tabu)来存储该粒子信息已经访问过的内容,表示其在以后的搜索中将不能访问这些内容;一个允许访问的项目表(allowed)来存储它还可以访问的gbp项目;矩阵(delta)来存储它在一个循环(或者迭代)中给所经过的路径释放的信息素;还有一些额外数据,例如一些控制参数(α,β,ρ,q);粒子信息演变完全程的总成本或距离(tourlength);假定算法总共运行max_gen次,运行时间为t;

3)为每个粒子选择下一个节点;为每个粒子选择下一个节点,该节点只能从allowed中以相对概率搜索到,每搜到一个,就将该节点加入到tabu中,并且从allowed中删除该节点;该过程重复n-1次,直到所有的gbp数据库都遍历过一次。遍历完所有节点后,将起始节点加入到tabu中;此时tabu表元素数量为n+1(n为城市数量),allowed元素数量为0;计成v不快乐算每个粒子的delta矩阵值;最后计算最佳路径,比较每个粒子的路径成本,然后和bestlength比较,若它的路径成本比bestlength小,则将该值赋予bestlength,并且将其tabu赋予besttour;

4)更新信息素矩阵delta;

5)检查终止条件,是否到达max_gen次;

6)输出最优值bestlength;

其中,具体的初始化过程为:

本发明与现有技术相比具有以下优点:本发明创造的优点:选择机制:信息素越多的路径,被选择的概率越大;更新机制:路径上面的信息素会随aco的经过而增长,而且同时也随时间的推移逐渐挥发消失;aco算法正是充分利用了选择、更新和协调的优化机制,即通过个体之间的信息交流与相互协作最终找到最优解,使它具有很强的发现较优解的能力;

与其他优化算法相比,gbp-aco具有以下几个特点:

(1)采用正反馈机制,使得搜索过程不断收敛,最终逼近最优解;

(2)每个个体可以通过释放信息素来改变周围的环境,且每个个体能够感知周围环境的实时变化,个体间通过环境进行间接地通讯;

(3)搜索过程采用分布式计算方式,多个个体同时进行并行计算,大大提高了算法的计算能力和运行效率;

(4)启发式的概率搜索方式不容易陷入局部最优,易于寻找到全局最优解。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明型的保护范围之内。

综上所述仅体现了本发明的优选技术方案,本领域的技术人员对其中某些部分所可能做出的一些变动均体现了本发明的原理,都应为本发明的技术范畴。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1