一种基于遗传算法的连续型分布式约束优化问题求解方法

文档序号:31166840发布日期:2022-08-17 08:49阅读:131来源:国知局
一种基于遗传算法的连续型分布式约束优化问题求解方法

1.本发明涉及约束优化方法,特别涉及一种基于遗传算法的连续型分布式约束优化问题求解方法。


背景技术:

2.分布式约束优化问题(distributed constraint optimization problems,dcops)是解决分布式多智能体系统建模的有效框架。dcop由一组智能体构成,每个智能体控制一组离散变量,通过与局部的智能体协同通信优化全局目标函数。全局目标函数被定义为约束代价的集合,其中约束代价由变量所定义。相比于传统的集中式优化,dcop强调通过局部交互使得全局最优,因此dcop具有更强的容错性和更高的并行度。目前dcop已经广泛应用于实际生活,如会议调度,微网控制,任务调度,智能家居,传感器网络和资源分配等。dcop求解算法主要分为完备算法和非完备算法,完备算法如adopt,dpop和pt-fb等提供一个全局最优解,但计算开销和内存需求随着问题规模增加而呈现指数级增长;非完备算法如dsa,max-sum,mgm和aco-dcop等在较低的计算开销和内存需求下提供一个近似解。然而在一些实际应用中,智能体必须取得一个或者多个连续值参数,比如方向,速度或者传感器激活时间等。dcop建模连续型变量问题的效果并不理想,因此stranders等人提出了连续型dcop(continuous dcop,c-dcop)来更有效地建模连续型变量应用。与dcop相比,c-dcop的变量和值域是连续的,并且约束代价由一组函数所定义。
3.近年来,为了应对c-docp中变量,值域和约束代价的变化,研究人员提出了连续最大和算法(continuous max-sum,cms)。在cms中,约束代价函数被近似为分段线性函数,通过对比离散最大和和连续最大和算法,由cms能够得到更高质量的解证明了c-dcop的必要性。然而只有极少数实际应用可以适用于分段线性函数。混合连续最大和(hybrid continuous max-sum,hcms)首先通过离散最大和获得一组近似解,通过非线性优化方法提高近似解的精度。虽然hcms解决了分段线性函数的局限,但由于存在导数计算,使得hcms不适用于不可微的问题,并且不能保证收敛。精确连续dpop(exact continuous dpop,ec-dpop),近似连续dpop(approximate continuous dpop,ac-dpop),聚类近似连续dpop(clustered ac-dpop)和连续dsa(continuous dsa)被同时提出解决函数形式的限制。ec-dpop,ac-dpop和cac-dpop能够获得高质量的解,但计算开销和内存需求巨大;c-dsa逻辑简单,计算开销小,但解的质量不佳。基于c-dcop的粒子群优化算法(particle swarm optimization based c-dcop,pfd)被提出以减少计算开销和内存需求。pfd引入种群思想,通过种群寻优的方式找到近似解,然而搜索能力差和容易陷入局部最优的问题限制了解质量的提升。连续协同约束近似(continuous cooperative constraint approximation,c-cocoa)是一种非迭代算法,不具备anytime属性,虽然能够以极快的计算速度和极小的计算开销求解c-dcop,但由于c-cocoa中的半贪婪的局部搜索策略,使得其在复杂的大规模问题上的求解质量不佳。


技术实现要素:

4.针对以上存在的问题,本发明提供如下技术方案:一种基于遗传算法的自适应多点交叉遗传算法(adaptive multi-point crossover genetic algorithm based c-dcop,amcga)用于解决目前c-dcop求解算法的缺点与局限,包括如下步骤:
5.一个c-dcop可以由一个五元组《a,x,d,f,α》定义,其中:
6.a={a1,a2,...,an}是一组智能体的集合,能够控制一个或者多个变量。
7.x={x1,x2,...,xm}是一组由智能体控制的连续变量集合。
8.d={d1,d2,...,dm}是一组连续值域集合,每个变量xi能够取得值域di=[lbi,ubi]中的任意值,其中lbi和ubi分别表示值域的下界和上界。
[0009]
f={f1,f2,...,f
l
}是一组约束代价函数的集合,其中每一个约束代价函数fi∈f被变量集合x的一组子集所定义,意味着fi:fi受k个变量的约束。本文仅考虑二元约束,即k=2。
[0010]
α:x

a是一个映射函数,表示将每个变量xj∈x的控制权分配给智能体ai∈a。为便于理解,假设一个智能体控制一个变量,因此智能体ai与变量xi可以认为是同一概念。
[0011]
一个c-dcop的解为一个赋值集合x
*
,使得全部约束代价函数之和最小,如公式(1)所示。
[0012][0013]
图1表示一个c-dcop的例子,图1(a)表示4个变量的约束图,每个变量由相应的一个智能体控制,每条边代表一个图1(b)中所定义的约束代价函数。变量xi的值域di为[-10,10]。
[0014]
分布式种群是基于种群的c-dcop求解算法中常用的一种方法,每个智能体持有所有个体一个维度的变量,所有智能体协同持有一个分布式种群,一个个体代表一个解。图2表示一个k个染色体,n个智能体的分布式种群,使用ck.xn表示第k个染色体的第n个维度的变量。
[0015]
bfs伪树是dcop和c-dcop中常用的一种通信结构,其特点为多个分支并行计算,通信路径和通信时间短。
[0016]
图3(a)表示以图1为例的一个bfs伪树,图3(b)表示bfs伪树的有序排列。bfs伪树用于智能体之间的通信,有序排列代表消息传递的顺序,深度较小的智能体相比于深度较大的智能体有着更高的优先级,使用hi和li分别表示智能体ai的高优先级邻居和低优先级邻居。在图3(b)中,智能体a1表示根智能体,智能体a3,a4为叶智能体;对于智能体a2,其邻居n2={a1,a3},高优先级邻居h2={a1},低优先级邻居l2={a3}。
[0017]
amcga是一种基于种群的c-dcop求解算法,种群中的个体被称为染色体,染色体的一个维度称为一个基因。amcga包括五个阶段:初始化、评估、选择、交叉和变异阶段。在初始化阶段,amcga初始化种群和参数;智能体在评估阶段协同计算染色体的适应度;选择阶段通过贪婪策略选择精英染色体;在交叉阶段,智能体执行多点交叉算子;在变异阶段,智能体执行变异算子并保留精英染色体。
[0018]
初始化阶段:amcga首先构造有序的bfs伪树。
[0019]
评估阶段:当接收到高优先级邻居的赋值后,智能体依次计算与每个高优先级邻
居的每条染色体的部分适应度并发送给相应的高优先级邻居。除了叶智能体,每个智能体将从低优先级邻居接收的部分适应度求和,若该智能体不为根智能体,则将求和之后的部分适应度沿着bfs伪树发送给一个高优先级邻居。
[0020]
选择阶段:由于每个智能体都会将部分适应度发送给高优先级邻居,因此染色体的所有部分适应度都将传递到根智能体。根智能体首先对染色体的适应度排序并选择适应度靠前的g条染色体;然后对每一条染色体进行判断,若[0,1]之间的随机数r
p
小于通过公式(3)计算的交叉概率p
cross
,则将该染色体标记为交叉染色体crosslist,否则标记为非交叉染色体uncrosslist,若交叉染色体为奇数,则将交叉染色体中最后一个染色体移除并添加到非交叉染色体中;最后,根智能体随机选择sa个不同的智能体作为交叉点并将information发送给低优先级邻居中的智能体。
[0021]
交叉阶段:当收到高优先级邻居传递的information后,智能体首先复制交叉染色体和非交叉染色体作为父代;若智能体被标记为交叉点,则使用交叉染色体执行交叉算子。
[0022]
变异阶段:在交叉完成之后,子代染色体与非交叉染色体合并,通过公式(4)计算变异概率并对每一条染色体执行变异算子。
附图说明
[0023]
图1表示一个c-dcop的例子,图1(a)表示4个变量的约束图,每个变量由相应的一个智能体控制,每条边代表一个图1(b)中所定义的约束代价函数。
[0024]
分布式种群是基于种群的c-dcop求解算法中常用的一种方法,每个智能体持有所有个体一个维度的变量,所有智能体协同持有一个分布式种群,一个个体代表一个解。图2表示一个k个染色体,n个智能体的分布式种群,使用ck.xn表示第k个染色体的第n个维度的变量。
[0025]
bfs伪树是dcop和c-dcop中常用的一种通信结构,其特点为多个分支并行计算,通信路径和通信时间短。图3(a)表示以图1为例的一个bfs伪树,图3(b)表示bfs伪树的有序排列。bfs伪树用于智能体之间的通信,有序排列代表消息传递的顺序,深度较小的智能体相比于深度较大的智能体有着更高的优先级,使用hi和li分别表示智能体ai的高优先级邻居和低优先级邻居。在图3(b)中,智能体a1表示根智能体,智能体a3,a4为叶智能体;对于智能体a2,其邻居n2={a1,a3},高优先级邻居h2={a1},低优先级邻居l2={a3}。
[0026]
图4为智能体a2和a3的交叉示例。
[0027]
图5为amcga在不同交叉点数量下的收敛曲线。
[0028]
图6为amcga在不同交叉概率下的收敛曲线。
[0029]
图7为amcga在不同变异概率下的收敛曲线。
[0030]
图8为amcga与竞争算法在稀疏随机图上的求解质量。
[0031]
图9为amcga与竞争算法在稠密随机图上的求解质量。
[0032]
图10为amcga与竞争算法在无尺度网络上的求解质量。
[0033]
图11为amcga与竞争算法在随机树上的求解质量。
[0034]
图12为amcga与竞争算法在小世界网络上的求解质量。
[0035]
图13为amcga与竞争算法在稠密随机图上的收敛曲线。
具体实施方式
[0036]
下面通过具体实施方式对本发明作进一步详细说明。在以下的实施方式中,很多细节描述是为了使得本技术能被更好的理解。然而,本领域研究人员可以毫不费力的认识到,其中部分特征是可以省略的,本技术相关的一些操作并没有在说明书中显示或者描述,这是为了避免本技术的核心部分被过多的描述所淹没,而对于本领域研究人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般知识即可完整了解相关流程。
[0037]
发明主要包括三方面的内容:1.提出一种基于遗传算法的连续型分布式约束优化问题求解方法;2.设计自适应多点交叉遗传算法;3.引入交叉算子。
[0038]
初始化阶段:amcga首先构造有序的bfs伪树;然后初始化参数:k:染色体的数量,g:精英个体的数量,p
c1
,p
c2
:共同定义交叉概率,sa:交叉点的数量,pm:定义变异概率。
[0039]
以图1和图3为例,假设染色体的数量为4,分布式种群可表示为c={c1,c2,c3,c4},每条染色体的完整赋值可表示为如下:c1.x={x1=1,x2=2,x3=2.5,x4=3.1}c2.x={x1=2,x2=4,x3=0,x4=5.2}c3.x={x1=3,x2=-3,x3=6,x4=-2.5}c4.x={x1=-2,x2=1.4,x3=7,x4=0}智能体a1发送c.x1={1,2,3,-2}给低优先级邻居a2,a3,a4;智能体a2向智能体a3发送c2.x={x1=2,x2=4,x3=-3,x4=1.4}。
[0040]
评估阶段:每条染色体的适应度通过公式(2)计算,其中ck.xi表示两个具有约束关系的变量赋值。单个智能体不能计算染色体的完整适应度,而是在所有智能体的配合下协同计算染色体的完整适应度。在上述例子中,智能体a3分别计算与智能体a1,a2的部分适应度c.fitness(x1,x3)和c.fitness(x2,x3)并发送给相应的智能体a1,a2。智能体a4计算与a1的部分适应度c.fitness(x1,x4)并发送给a1。此外,由于智能体a2不是根智能体,因此不仅计算与智能体a1的部分适应度c.fitness(x1,x2)并发送给a1,还会将接收的部分适应度c.fitness(x2,x3)发送给a1。以图1和图3为例,计算的部分适应度如下:c.fitness(x1,x2)={4,16,-18,-2.36}c.fitness(x1,x3)={14.77,7.39,819.10,1451.15}c.fitness(x1,x4)={54.38,255.62,94.75,16}c.fitness(x2,x3)={7,32,18,3.92}
[0041]
选择阶段:iter
max
和iter
cur
分别为最大迭代次数和当前迭代次数。在例子中,假设g=2并且智能体a2,a3被选择为交叉点。智能体a1获得染色体的完整适应度c.fitness={80.15,311.03,913.85,1468.71}并在排序和选择之后得到最后,a1将
information={crosslist,uncrosslist,agentc}发送给低优先级邻居a2,a3,a4。
[0042]
交叉阶段:执行交叉算子具体来说,智能体将自身持有染色体一个维度的基因前后互换位置在之前的例子中,c1和c2执行交叉算子,智能体a2交换c1.x2和c2.x2,智能体a3交换c1.x3和c2.x3,如图4所示。c
1*
和c
2*
为子代染色体:c
1*
.x={x1=1,x2=4,x3=0,x4=3.1}c
2*
.x={x1=2,x2=2,x3=2.5,x4=5.2}
[0043]
变异阶段:变异算子具体来说,在[0,1]之间的随机数rm若小于变异概率,则智能体ai将此染色体的此维度基因重新赋值为值域di里的一个随机值。最后,智能体将子代染色体和父代染色体合并为一个新的种群。假设只有智能体a4所持有的基因发生变异,c
1*
和c
2*
变异后的完整赋值如下:c
1*
.x={x1=1,x2=4,x3=0,x4=5}c
2*
.x={x1=2,x2=2,x3=2.5,x4=-9}因此,新种群的完整赋值为:c1.x={x1=1,x2=4,x3=0,x4=5}c2.x={x1=2,x2=2,x3=2.5,x4=-9}c3.x={x1=1,x2=2,x3=2.5,x4=3.1}c4.x={x1=2,x2=4,x3=0,x4=5.2}
[0044]
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属领域的研究人员,依据本发明的思想还可以做出若干简单推演、变形或替换。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1