第五章基于强化学习的多主体协调机制Read.docx
《第五章基于强化学习的多主体协调机制Read.docx》由会员分享,可在线阅读,更多相关《第五章基于强化学习的多主体协调机制Read.docx(17页珍藏版)》请在冰豆网上搜索。

第五章基于强化学习的多主体协调机制Read
第五章基于蚁群算法的多Agent系统的多目标协调优化
5.1引言
具有不同目标的多个Agent之间的协调优化问题是多Agent系统研究的一个重点,其主要特点是各Agent目标之间的矛盾性使得实际上不可能存在有一个绝对的最优解,而是存在Pareto最优解集。
因此多目标协调优化问题的主要目标就是寻求Pareto解集中的一个或多个满意解。
通常采用两种方法来解决多目标协调优化问题。
方法之一是通过把各目标进行线形加权,将多目标优化问题化为单目标优化问题来求解。
目前大多数的多目标优化问题都是采用这种方法的。
这种方法的最大优点是算法简单,许多用于单目标协调优化的求解方法都可以用在多目标优化问题中。
但是其存在的问题是:
权系数的合理选择;在物理意义不明确的情况下,各个目标难以用同一尺度衡量;在不满足凸性假设时,有丢失部分非劣解的问题。
方法之二是采用群体搜索策略比如遗传算法等并行进化计算的方法来求解。
典型的有Fonseca和Fleming提出的多目标遗传算法(MOGA),Srinivas和Deb提出的非劣分类遗传算法(non-dominatedsortinggeneticalgorithm),Lino提出的多目标进化策略(MOES)等。
这些算法的优点是无需非凸性假设、并能有效阻止种群分化的发生。
但其存在的问题是需要采用合适的参数编码,同时如何确定遗传算法中的有关参数也是一件费时费力的问题。
蚁群算法作为一种群体策略的并行进化计算方法,它首先在著名的旅行商问题(TSP)上获得成功,继而应用于一系列的离散优化问题中,并表现出相当好的性能。
蚁群算法运用了正反馈、分布式计算和贪婪式启发搜索方法,在一定程度上可以加快进化过程。
不同个体之间不断进行信息的交流和传递,能够相互协作,有利于发现较好的解,同时蚁群算法也可被认为是一种特殊的强化学习算法[e1]。
它和其他进化计算相比,其优点在于不需要进行合适的参数编码,并运用正反馈原理加快了进化过程。
因此具有很好的应用前景。
将蚁群算法用于连续空间的多目标函数的协调优化中,目前国内外还鲜有文章研究。
因此在本章我们将它运用于多Agent系统的多目标优化问题中,并采用谈判机制进行多个目标解的协调,最后通过仿真试验并采用性能度量标准进行测试,证明了算法的可行性并具有较快的收敛速度。
5.2多目标优化问题
一般来说,多目标协调优化问题可定义为在一组约束条件下,极大化(或极小化)多个不同的目标函数即:
V-min{f(x)=[f1(x),f2(x),…..,fm(x)]T}
s.t.gj(x)≤0,j=1,2,…,p(5-1)
式中fj(x)是目标函数,j=1,2,…,m;V-min表示向量的极小化,即向量目标f(x)=[f1(x),f2(x),…..,fm(x)]T中的m个子目标函数都最小;x=(x1,x2,….,xn)是n维向量,gj(x)≤0是Agent的约束条件,包括不等式约束和等式约束,j=1,2,…,p。
多目标优化的难点在于:
需要研究的各Agent的目标是相互关联并存在着相互间的矛盾。
在改变决策自变量的取值过程中,一个Agent目标的改善有可能会引起其它Agent目标性能的降低,即不存在一个最优解使得所有的Agent的目标都同时达到最优化,而只能得到非劣解集或者是Pareto解集。
Pareto解又称为非劣解、可接受解或有效解,其定义为:
如果不存在x的任一可行解使
fi(x)≤fi(x*),i=1,2,….m.(5-2)
成立,但只要式
(2)中至少有一个i成立,则x*称为Pareto解。
多目标协调优化问题的Pareto解是一个集合。
对应于Pareto解的向量称为非劣向量,从非劣向量中选出一个向量表明这个向量是一个可接受的Pareto解。
这些非劣解之间没有明显的关系,仅仅作为解集中的成员存在,Pareto解是由它们的表现型表达式(即适应度值)来分类的。
如果在准则空间以图形表达它们的话,则此图形被称为Pareto前端(Paretofront)。
因此,对决策者来说,确定多目标协调优化问题的解的关键在于求出其所有的Pareto解,形成Pareto解集,并寻求Pareto解集中的一个或多个满意解。
这和单目标优化不同,单目标优化只有一个目标函数,优化后一般只能得到一个全局最优点,不存在多个目标之间的均衡问题。
Pareto解集定义了一个全局性的视角,使得决策者能看到它所能选择的范围。
传统的优化技术一般不直接求解多目标优化问题,而是将它的多个目标函数通过适当的方法如加权法、约束法等转化为一个单目标优化问题来进行求解。
因此这种方法每次都只能得到Pareto解集中的一个解。
常用的目标线性加权法定义如下:
设
,给定w∈W,将求解多目标优化问题
(1)转化为求解p(w),它可表达为:
s.t.gj(x)≤0,j=1,2,…,p(5-3)
设x*为p(w)的解,且在下述条件成立下:
(1)对所有的j=1,2…,n,wj>0;
(2)x*是p(w)的唯一解;
则x*就是多目标优化问题
(1)的加权组合最优解。
从上述定义可以看到采用线性加权的方法,其实质就是将多目标优化问题化为单目标优化问题来求解的。
一般常用于单目标协调优化的求解方法都可在这使用。
5.3蚁群算法
蚁群算法是受自然界中真实蚁群集体行为的启发而提出的一种基于种群的模拟进化算法,属于带有构造性特征的随机搜索算法。
该算法利用了蚁群从蚁穴到食源搜索最短路径的过程与TSP问题之间的相似性,通过模拟人工蚂蚁搜索食物的过程来求解具有NP-难度的TSP问题,并得到了它的最优解。
该算法还被于求解二次指派(quadraticassignmentproblem,QAP)问题、job-shop调度问题等,取得了较好的实验结果。
这些结果已经充分显示了蚁群算法在求解复杂优化问题(特别是离散优化问题)方面的优越性。
5.3.1蚁群算法原理
生物学家的研究表明,一只蚂蚁的记忆和智能是非常有限的。
但是,由于蚂蚁之间可以通过一些信息素进行协同作用,实行蚂蚁之间的信息交换和传递,可以共同做出令人惊讶的行为。
实验观察表明,蚂蚁在运动过程中会留下一种分泌物,其后面的蚂蚁可以根据前边走过的蚂蚁所留下的分泌物选择其要走的路径,一条路径上的分泌物越多,蚂蚁选择这条路径的概率就越大,因此,蚂蚁群体的集体行为实际上构成了一种学习信息的正反馈现象,蚂蚁之间通过这种信息交流寻求通向食物的最短路径。
蚁群算法是在真实蚁群行为研究的启发下提出的,“蚁群算法”更确切的名称为“人工蚁群算法”,我们通过引用M.Dorigo所举的例子来说明蚁群算法的原理。
如图1所示,设A是蚁穴,E是食物源,CF为一障碍物,由于障碍物的存在,蚂蚁到达食物源的路径只能是ABCDE或ABFDE,返回的路径只能是EDCBA或EDFBA。
各点之间的距离如图1示:
图5-1人工蚁群行为
Fig5-1
设每个时间单位有30只蚂蚁由A到达B,有30只蚂蚁由E到达D点,蚂蚁过后留下的激素物质量(简称为信息素)为1。
假定该信息素停留的时间为1。
在初始时刻,由于路径BF、BC、DF、DC上均无信息存在,位于B和D的蚂蚁可以随机选择路径,从统计的角度可以认为它们以相同的概率选择路径BF、BC、DF、DC。
在经过一个单位时间后,由于BCD的距离比较短,在它上面的信息量是路径BFD上信息量的一倍。
t=1时刻,将有20只蚂蚁由B和D到达C,有10只蚂蚁由B和D到达H。
随之时间的推移,蚂蚁将会以越来越大的概率选择路径BCD,最终完全选择路径BCD。
从而找到了由蚁穴到食物源的最短路径。
从以上分析可以看到,蚂蚁个体之间的信息交换是一个正反馈的过程。
从自然蚂蚁系统引出人工蚂蚁(AA)、人工蚁群系统(ACS)以及蚁群算法(AS)。
人工蚂蚁和真实蚂蚁相似,都是靠运动中释放出一定的信息,并能感知该信息的存在及其强度并以此做为下次行动的依据。
5.3.2蚁群算法的模型及实现
在n个相互连通的城市中,要找出一条连接所有城市的最短路径问题称之为旅行商或货郎(TSP)问题。
如果考虑不同路径之间的不同费用,则问题转化为求解花费最小的非对称TSP问题。
我们现在用求解平面上n个城市的TSP问题为例来说明基本蚁群算法的模型。
假设m只蚂蚁放入n个随机选择的城市中,令dij(i,j=1,2….,n)表示城市i和j之间的距离,τij(t)表示t时刻在城市i和城市j连线上残留的信息量,以此来模拟实际蚂蚁的分泌物。
初始时刻,各条路径上信息量相同,设τij(t)=c(c为常数)。
bi(t)表示t时刻位于城市i的蚂蚁的个数,
。
蚂蚁k(k=1,2...m)在运动过程中,根据各条路径上的决定下一个它还没有访问的城市。
(t)表示在t时刻蚂蚁k由位置i转移到位置j的概率。
(5-4)
其中,allowdk={0,1…,n-1}-tabuk表示蚂蚁k下一步允许选择的城市(即还没有访问的城市),与真实蚂蚁不同,人工蚂蚁具有一定的记忆能力。
用tabuk(k=1,2,…m)记录蚂蚁当前已经走过的城市,ηij可称之为先验知识,表示蚂蚁由城市i转移到城市j的期望信息,这一启发式信息由所要解决的问题给出,并由一定的算法来实现,在TSP问题中一般取ηij=1/dij。
α,β分别表示蚂蚁在运动过程中所积累的信息及启发式因子在蚂蚁选择路径中所起的不同作用。
由公式(5-1)可知,蚂蚁在选择路径时会尽量选择离自己距离较近且信息素浓度较大的方向,即j=max(
)。
经过n个时刻,蚂蚁完成一次循环,各路径上的信息量根据下式做调整:
(5-5)
(5-6)
式中,ρ为信息残留系数。
它模仿人类记忆的特点。
随着时间的推移,以前留下的信息将逐步消弱,用参数1-ρ表示信息消逝程度(即信息挥发程度)。
∆τij表示本次循环中留在路径ij上的信息量。
∆τijk为第k只蚂蚁在本次循环中,留在i到j路径上的信息量。
M.Dorigo曾经给出三种不同的模型。
分别称之为ant-cyclesystem,ant-densitysystem,ant-quantitysystem。
它们的差别在于表达式∆τijk的不同。
在ant-cyclesystem模型中:
从上述蚂蚁模型中看到,它是一个递推的过程,很容易实现。
其实现过程可以用表5.1描述为:
表5.1基本蚁群算法
Table5-1basicAntsystem
基本蚁群算法
初始化:
s=0:
bestcycle=0:
τij:
=c,∆τij=0;
ηij(由某种启发式算法确定);
tabuk=ø;
while(notterminationcondition)
{s:
=s+1;
for(index=0;index{for(k=0;k{以概率
选择下一个城市j;
j∈allowdk
}
将刚选择的城市加入到tabuk中,
}
计算∆τijk(s),∆τij(s+1);
确定并保存本次循环中找到的最佳路径;
s=s+1;
}
输出最佳路径及结构
end
以上是针对求解TSP问题来解释蚁群模型及其算法的,如果对该模型稍加修正,便可应用于其它优化问题。
5.4基于蚁群算法的多目标优化
5.4.1连续空间的蚁群算法
连续空间的函数优化问题和离散的TSP问题有着明显的区别,在TSP问题模型中,每一个城市之间的距离是已知的,从任意一个城市到达下一个城市,有哪些可供选择的城市也是已知的,当用蚁群算法解决TSP问题时,如果蚂蚁处于某一城市,可直接通过计算选择概率,确定下一个选择的城市。
而在连续空间的函数优化中,不能直接给出蚂蚁确定的、可供选择的路线及方向,而且解空间是以区域性方式表示,而不是离散的点集方式表示。
因此,用于连续空间寻优的蚁群算法与离散空间的蚁群算法之间在蚁群信息量留存方式、蚁群在解空间的寻优方式以及蚁群行进策略等方面有所不同。
为了说明用于连续空间函数优化的蚁群算法模型,我们以一维空间函数的寻优为例,考察它的搜索情况,对于多维空间内的函数优化问题,在此基础上作相应的扩展即可。
设优化函数为:
minZ=f(x),x∈[a,b]。
为了实现蚁群算法的群体搜索策略,构造蚂蚁的转移概率准则如下:
令m只人工蚂蚁,初始位置随机位于解空间[a,b]的n个等分区域的某些位置处,各区域蚂蚁的状态转移概率定义为:
(5-7)
式中,τj为区域j的吸引强度(相当于TSP问题中的路径信息素强度);期望值ηij(相当于TSP问题中的启发信息),可定义它为ηij=fimin-fjmin,即蚁群在区域j与区域i中目前已经搜索到的某处目标函数最小值的差值,参数α,β>0为启发式因子。
区域j吸引强度的更新公式为:
j=1,2…,n(5-8)
j=1,2…,n(5-9)
式中,∆τjk反映在本次循环中蚂蚁k在区域j的局部搜索中,吸引强度的增加;Ljk表示在本次循环中蚂蚁k在区域j的局部搜索中目标函数的变化量,定义为Ljk=f(xjk)-f(xj0k),其中xjk为本次循环中蚂蚁k在区域j的局部搜索中的当前位置,xj0k为本次循环中蚂蚁k在区域j的局部随机搜索中的初始位置;0≤ρ≤1它体现各个区域吸引强度的持久性,给定参数Q为蚂蚁释放的信息素密度,τj(0)=c,∆τj(0)=0。
因此函数f(x)的寻优问题就借助于m只蚂蚁在x∈[a,b]的n个等分区域间的不断移动,以及一些区域内的局部搜索来进行。
处于区域i中的第k只蚂蚁的转移及其搜索规则为:
每只蚂蚁要么以上述规则从当前区域转移到其它区域中进行局部搜索,要么在本区域进行局部搜索。
一旦蚂蚁的个数足够多时,上述寻优方式就相当于一群蚂蚁对定义域中的函数进行地毯式的搜索,并最终收敛到问题的全局最优解。
其算法可用表5-2描述:
表5-2连续空间的蚁群算法
Table5-2Antsystemforcontinuespace
连续空间的蚁群算法:
初始化各∆τj及τj
1count←0(count为迭代步数或搜索次数)
2将m个蚂蚁置于各自的初始领域中
3每个蚂蚁按概率ρij移动或做领域搜索
4计算各蚂蚁的目标函数Zk(k=1,2..m),记录当前的最好解
5按更新公式修正吸引强度
6修正∆τj
7count←count+1
8如果count<预定的迭代次数,则goto2
输出目前的最好解
5.4.2基于蚁群算法的多目标函数优化
多Agent系统的目标协调优化问题可定义为在一组约束条件下,极大化(或极小化)多个Agent的目标函数,如式(5-1)所示。
我们将上节提到的连续空间的蚁群算法用于多Agent系统的目标协调优化中,利用蚁群算法的群体搜索策略,对每个Agent的目标函数分配一群蚂蚁,使之在问题空间中做地毯式搜索。
当每个Agent完成一定的步骤或者是到达它的目标时,完成一次迭代,找到它当前的优化解。
当所有的Agent都完成一个迭代时,所有Agent的优化解采用谈判机制来进行协调,产生多目标优化问题的Pareto折衷解,同时更新每个Agent中各区域的吸引强度。
令第i个Agent的目标函数为:
minZi=fi(x),
s.t.gj(x)≤0,j=1,2,…,p
其中,x=(x1,x2,….,xn)是n维向量,gj(x)≤0是Agent的约束条件,包括不等式约束和等式约束。
取m组蚂蚁(蚂蚁的组数与解空间的分区数要清楚,参考浙大的论文,还有,这N×L个等分区域是针对二维且目标函数没有约束条件而言:
如果是n维的那么每各个维度都划分成k1,k2,……个分区那么等分区域就是所有相乘个那么多了;如果有约束条件,参考文献好像都没有说到,就必须灵活设置搜索范围的上下限,这个师姐还是要考虑一下怎么说),每组n个人工蚂蚁(一般就是几维空间每一组就取几个蚂蚁这样的),每组初始位置随机位于解空间的N*L个等分区域的某些位置处。
各区域蚂蚁的状态转移概率按公式(5-7)计算,各区域吸引强度的更新公式按式(5-8)及(5-9)来计算。
当每个Agent都采用这种方法找到本次迭代的最优解时,采用谈判机制[]对所有Agent的解进行协调。
在谈判机制中,判断第i个Agent的解是否同时也是其它Agent当前的最优解,如果是,那它就是目前折衷解(Compromise_solution,C_S)中的一个候选解,如果目前有多个候选解,则取其中最好的那个解做为折衷解。
折衷解采用非劣标准构成Pareto前端,并保存在Perato前端中。
如果没有一个满足所有目标的最优解,则在当前所有Agent的最优解中任取一个解作为折衷解[]。
(事实上我不得不残酷的说我们都没有得到满足所有目标的最优解,我们的解都是满足其中最复杂的一个函数的最优然后给出与其他函数的目标函数值的关系因为实在是没有多函数之间最优解的交集范围,所以怎么说使得这个谈判机制更具说服力可能要参考其他文献了师姐)
基于蚂蚁算法的多目标函数优化算法可用表5-3及5-4描述。
表5-3基于蚂蚁算法的多目标函数优化
Table5-3MultipleobjectiveoptimizationbasedonAntsystem
基于蚂蚁算法的多目标函数优化
任意初始化每个Agent中的各∆τj及τj
Repeat(对每个Agent)
将m个蚂蚁置于各自的初始领域中
Repeat(对每个Agent中的每个蚂蚁)
按概率ρij移动或做领域搜索
计算各蚂蚁的目标函数Zk(k=1,2..m),记录当前的最好解
按更新公式修正每个Agent的吸引强度
C_S=negotiation(msolution)
If(C_S是非劣解)
Pareto=Pareto+C_S
count←count+1
如果count<预定的迭代次数,则返回到第二步
输出Pareto解集
其中的谈判机制可用表5-4来描述:
表5-4谈判机制
Table5-4Negotiationmechanism
谈判机制(针对m个解进行折中)
初始化C_S(折衷解)=0
Repeat(对每个解i)
Repeat(对每个目标函数j)
If第j个目标函数的第i个解满足所有的目标函数
则C_S=best_of(solutini,C_S)
If(C_S是空集)
则C_U任取m个解中的一个
ReturnC_U
5.5仿真实验
为了测试我们提出的用于多目标函数优化的蚁群算法的性能,采用以下两个度量标准来衡量测试问题的结果:
一个是ErrorRatio标准[],一个是Spacing标准[]。
它们的描述如下。
其中PFAnt-Q是采用我们提出的算法得到的结果。
PFtrue是测试问题实际的Pareto非劣解。
ErrorRatio的数学表达式为:
(5-11)
其中n是PFAnt-Q中的向量的个数。
ei为:
(5-12)
如果E=0表示由Ant-Q算法得到的PFAnt-Q中的向量属于PFtrue。
E=1则不属于。
为了度量PFAnt-Q中向量的分布。
采用Spacing标准,此标准用于测量在PFAnt-Q中相邻两个解之间的距离,其数学描述为:
(5-14)
其中,
i,j=1,…n,
是所有di的平均值,n是PFAnt-Q中的向量的个数。
S=0表示PFAnt-Q中的向量是等距离分布的。
我们通过求解两个典型的多目标优化测试函数来验证算法的有效性。
5.5.1仿真实验
第一个是在文[]中提到的用于测试多目标优化算法的测试函数,其目标函数和约束条件如下:
s.t.0≤x,y≤1,q=4,α=2(5-13)
第二个是在文[]中提到的。
其目标函数和约束条件如下:
min
min
s.t.-20≤x,y≤20,0≥x2+y2-255,0≥x-3y+10.(5-14)
采用我们所提出的蚁群算法对以上两个问题进行仿真实验。
其中算法的参数取值分别为:
蚂蚁在各区搜索中释放的信息素密度Q=1,吸引强度启发式因子α=1,期望值的启发因子β=1.5,ρ=0.7。
每个仿真迭代次数为10(目前的结果应该是20次的结果,不过10次得到的结果也可以,并没有太大的差别,因为我们并没有以求最优点的精确度作为算法的有效评价指标,就是说如果从图和两个标准来衡量的话10次所得的结果是差不多的。
)次。
每次迭代循环100次。
函数的解空间的分区数为N*L=10*10,蚂蚁数取9组,由于每个测试问题的每个问题是两维函数,所以每组取2个蚂蚁。
其仿真结果如图5-2至5-5所示。
其中图5-2及5-4是采用蚂蚁算法求解时,解的搜索过程。
图5-3及5-5仿真所得到优化问题的非劣解前沿。
两个问题所得到的性能度量结果如表5-5所示,其中多目标遗传算法(MOMGA)是在文[]采用的算法,针对同样的问题得到的结果。
图5-2问题1的解搜索过程
Fig.5.2thesolvesearchprocessofproblem1
图5-3:
问题1的Pareto前沿
Fig.5-3:
Paretofrontofproblem1
图5-4问题2的解搜索过程
Fig5-4:
thesolvesearchprocessofproblem2
图5-5问题2的Pareto前沿
Fig.5-5:
Paretofrontofproblem1
表5-5性能指标的度量比较
Table5-5ComparisonbetweenAntsystemandMOMGA
Ant算法
MOMGA
E
S
E
S
问题1
0
0.00-0.05
20-60
0.00-0.03
问题2
0.076-0.5082
9.6446-9.6446
NA
NA
5.2.2仿真结果分析
从图5-2~5-5、表5-5的仿真结果可以看到,将蚂蚁算法应用于多目标函数的优化问题中,并采用谈判机制对每个Agent的优化解进行协调,总的来说可以很成功的解决多Agent系统的多个目标函数的优化问题。
迭代到次就可以找到非劣解,因此它可以很快的收敛到非劣解(这里可能可以突出的是蚂蚁算法的收敛速度了,在我的破机子运行下是每秒迭代一次,师姐可以参考的提到蚂蚁算法的复杂度,文献里都有,然后收敛速度是很快的,具体用什么数字去说明我就不是很清楚,从蚂蚁随机分布开始循环搜索,到蚂蚁接近全局最优的速度大概就是7次迭代,7次后的迭代都是围绕提高精度而进行的,如果在仿真过程中我们没有使用逐步扩大搜索范围的方法来限制搜索速度以期望更清楚看到搜索的过程的话,仿真得到的过程图形是非常简洁的,绝大部分搜索点都会落在全局最优附近),和文[]中的MOMGA算法的结果相比,对第一个问题,采用蚁群算法所得到的非劣解几乎全部属于问题实际的非劣解。
解得分布也比较均匀。
对第二个问题来说,结果没有第一个那么好,但是同MOMGA相比,结果还是比较令人满意的。
在最差的情况下,有一半的非劣解不属于实际的Pareto前沿。
5.6本章小结
协调是多Agent系统的一个重要的研究内容,本文从各Agent之间的多个目标的协调优化方面入手,对基于蚁群学习算法的多Agent系统的协调机制做了研究。
首先介绍了蚁群算法(Antalgorithms)的基本原理,在此基础上介绍了一种用于连