1.基于蚁群遗传的分布式约束优化问题求解方法,特征在于,包括如下步骤:S100:用一个四元组<A,X,D,F>来表示分布式约束优化问题,其中:A={a1,...,an}是agent的集合;
X={x1,...,xm}是变量的集合,m≤n;
D={D1,...,Dm}是值域的集合,每个xi的值域为Di,每个Agent从值域Di中取值为变量xi赋值, 表示xi的第t个值;
F={f1,...,fp}是约束代价函数的集合,约束 是从任意k个变量的赋值组合到一个非负代价的映射;
设一个agent只控制一个变量且所有的约束关系都是二元关系,则DCOP的解表示为:将DCOP表示为约束图,在约束图中,每个节点都代表一个agent,每两个节点之间的连线代表这两个节点之间存在约束关系;
S200:对蚁群算法和遗传算法的参数初始化,将约束图转化为广度优先生成的伪树,一个节点对应一个agent,节点与节点之间的连线代表约束,伪树的值消息传递方向为上层节点传给下层节点,同层节点根据优先级或节点命名字母顺序来传递,消息传递方向即agent的优先级和蚂蚁的前进方向;
预设xi取 与xi’取 时约束的信息素浓度,其中i=1,2,…n,i'=1,2,…n,i≠i't=
1,2,…T;
S300:采用蚁群算法对n个agent进行一次遍历,如果当前ai已经从其所有较高优先级的邻居处接收到值消息,则ai对每只蚂蚁在该xi对应的值域中根据值选择概率选择一个值,根据当前取值,计算ai与其所有高优先级邻居取值之间的代价和,与之前算的进行累加,得到当前蚂蚁的代价;
S400:生成随机概率q,若q小于扩展概率p,则满足扩展解空间转至S500,否则转至S900;
S500:设蚁群算法中共有K只蚂蚁,则S300中每只蚂蚁对n个agent取值得到集合则认为是一条染色体,通过S300针对K只蚂蚁则得到K条染色体,将该K条染色体作为遗传算法的父代染色体;
S600:计算S500中每条染色体的适应值,计算每条染色体的适应值在所有染色体适应值之和中的占比,将K条染色体中适应值最大的染色体直接复制保存到第一代子代染色体集合中,然后计算每条染色体的选择概率,每条染色体的选择概率等于该条染色体的适应值与所有染色体适应值之和之比,根据选择概率采用轮盘赌选择新的父代染色体集合k‑1条染色体;
轮盘赌选择:计算出每条染色体的累计选择概率,p[k]称为染色体k的累计概率,即前k‑1条染色体的选择概率之和;生成K‑1个随机数 令k=1,在新的父代染色体集合中,按照染色体的排序,当一条染色体的累计概率大于等于 则将该染色体复制保存到第一代子代染色体集合中,并令k=k+1,继续在新的父代染色体集合中,按照染色体的排序选择,当一条染色体的累计概率大于等于大于 则将该染色体复制保存到第一代子代染色体集合中,依次重复直至k=K‑1时停止,此时选择了K‑1条第一代子代染色体;
S700:染色体交叉、变异:
染色体交叉:
设置交叉概率,对第k个第一代子代染色体生成一个交叉随机概率,qx表示第x个第一代子代染色体的交叉随机概率,x=1,3,...K‑1,当qx小于交叉概率时,则将第x个第一代子代染色体和第x‑1个第一代子代染色体对应的交叉位置进行交叉,所述交叉位置随机生成;
需要进行染色体交叉的第一代子代染色体完成染色体交叉后复制保存到新的第一代子代染色体集合中,不需要染色体交叉的第一代子代染色体复制保存到新的第一代子代染色体集合中,第一代子代染色体集合中染色体称为新的第一代子代染色体;
染色体变异:
设置变异概率,对于新的第一代子代染色体上的n个位置分别生成一个变异随机概率,表示第k条新的第一代子代染色体第x个位置的变异随机概率,当 小于变异概率时,则将第k条新的第一代子代染色体第x个位置上的取值进行变异,变异方法为从值域中随机选择一个值对该位置重新赋值;
需要进行染色体变异的新的第一代子代染色体完成染色体变异后复制保存到第二代子代染色体集合中,不需要进行染色体变异的新的第一代子代染色体复制保存到第二代子代染色体集合中,第二代子代染色体集合中的染色体称为第二代子代染色体;
S800:判断遗传算法是否迭代结束,若达到遗传算法运行的最大迭代次数表示满足终止条件,则输出当前第二代子代染色体集合中的第二代子代染色体并转至S900,否则采用第二代子代染色体更新父代染色体并转至S600;
S900:更新路径上的信息素浓度和局部信息下文预估值;
当小于扩展概率p时,使用第二代子代染色体集合中的每条染色体的代价更新信息素浓度,否则使用K只蚂蚁集合中的每个条染色体的代价更新信息素浓度,使用K个染色体对每个agent和其邻居间约束的信息素浓度进行更新;
对每个agent更新局部信息下文预估值,对于取值di∈Di,当变量xi=di,计算当前agent与其低优先级邻居节点之间产生的约束代价的平均值,再将当前未更新的预估值和所求平均值再次求平均得到更新的预估值;
S1000:判断蚁群算法是否迭代结束,若达到蚁群算法运行的最大迭代次数表示满足终止条件,输出当前代价最小的染色体对应的代价和n个变量的取值,否则返回步骤S300。
2.如权利要求1所述的基于蚁群遗传的分布式约束优化问题求解方法,其特征在于:所述S300中蚂蚁概率的计算方法参见公式(7):式中pk,i(di)表示蚂蚁概率,α为信息素因子权重,β为启发式因子权重,θk,i(d′i)表示选择值d′i的信息素浓度,ηk,i(d′i)表示选择值d′i的启发式值,θk,i(di)为信息素因子,ηk,i(di)为启发式因子:
信息素因子θk,i(di)计算公式参见公式(8):式中Hi为该节点高优先级节点的集合,两个节点间约束的信息素τij(di,Vk,j)、Vk,j表示高优先级节点aj给蚂蚁k选取的值;启发式因子ηk,i(di)计算公式参见公式(9):式中costij(di,Vk,j)为xi=di,xj=Vk,j时的约束fij产生的代价,当xi=di时,esti(di)是对ai的低优先级邻居的最小代价合的估计,计算公式为公式(10):其中costij(di,dj)表示xi=di,xj=dj时约束产生的代价;
LB为当前节点ai与其高优先级、低优先级邻居的最小代价合,计算公式为公式(11):
3.如权利要求1所述的基于蚁群遗传的分布式约束优化问题求解方法,其特征在于:所述S400中扩展概率p采用公式(12)计算:式中maxCycle为最大迭代轮次,curCycle为当前所在轮次。
4.如权利要求1所述的基于蚁群遗传的分布式约束优化问题求解方法,其特征在于:所述S600中计算每条染色体的适应值的方法如下:其中costk为第k条染色体的代价大小, 为所有染色体的代价之和。
5.如权利要求1所述的基于蚁群遗传的分布式约束优化问题求解方法,其特征在于:所述S900中计算每条第二代子代染色体的代价的方法如下:对于第k第二代子代染色体,将每个agent和其邻居之间约束对应的代价相加,记得第k第二代子代染色体的代价costk。
6.如权利要求5所述的基于蚁群遗传的分布式约束优化问题求解方法,其特征在于:所述S900中对第k个第二代子代染色体中每个agent和其邻居间约束的信息素进行更新的过程如下:
更新过程包括信息素的增加和/或减少,信息素增加时的更新方法参见公式(15):采用公式(15)的方法对第k个第二代子代染色体中每个agent和其邻居间约束的信息素进行更新k=1,2,…n:
式中Δk为信息素增量,τij(Vk,i,Vk,j)表示ai为蚂蚁k取值为Vk,i,aj为蚂蚁k取值为Vk,j时对应的路径上的信息素浓度,δk,ij为ai和aj之间的信息素加权结果,计算公式参见公式(16):
式中λ是DCOP中的约束个数,costij(Vk,i,Vk,j)表示ai为蚂蚁k取值为Vk,i,aj为蚂蚁k取值为Vk,j时的代价值,cost(Vk,*)表示蚂蚁k的总代价;
式中mincost为第二代子代染色体中的最小代价,costk表示第k条染色体的代价,costk′表示第k′条染色体的代价, 为所有第二代子代染色体代价之和的平均值;
信息素减少时的更新方法参见公式(17):τij(di,dj)=(1‑ρ)τij(di,dj)+ρτ0 (17)式中τij(di,dj)表示ai为蚂蚁k取值为di,aj为蚂蚁k取值为dj时路径上的信息素浓度,j∈Hi,τ0表示初始信息素浓度,τ0=3,0<ρ<1为蒸发率,信息素浓度范围为[τmin,τmax]。
7.如权利要求5所述的基于蚁群遗传的分布式约束优化问题求解方法,其特征在于:所述S900中对每条第二代子代染色体中每个agent的低优先级邻居的最小代价合的估计进行更新的过程如下:首先当xi=di时,计算ai与其低优先级邻居之间产生的约束代价之和的平均值,然后将esti(di)上次迭代求得的值与当前求得的均值进行平均求解,得到的值更新esti(di)。
8.基于蚁群遗传的分布式约束优化问题求解方法的应用,其特征在于,采用权利要求7所述的基于蚁群遗传的分布式约束优化问题求解方法应用于城市突发事件紧急救援问题;
给定问题交通路网G(C,E),C表示路网中的节点,E表示两节点间的连线,即路段,同时将城市突发事件可通行路径规划构建为DCOP模型,记为城市突发事件的DCOP模型,模型具体描述如下:
A={car1,...,carn}为agent的集合,一辆车表示一个agent;
X={x1,...,xm}为变量的集合,一个agent控制一个变量xi;
D={S1,...,Sm}为值域的集合,每个变量xi的值域为Si,Si中为可行路径的集合,一条可行路径是变量xi的一个取值;
F={f1,...,fp}是约束条件,fij为两辆车行驶路径之间的约束,即两条可行路径之间的路径重合度小于30%,由于每两辆车之间的行驶路径要满足约束,则抽象出的城市突发事件的DCOP模型的约束图为全连接约束图。
9.如权利要求8所述的基于蚁群遗传的分布式约束优化问题求解方法,其特征在于:通过如下目标函数求解所述城市突发事件的DCOP模型中xi取 与xi’取 时约束的代价,具体步骤如下:
1)路段行驶速度,采用式(2)中的Underwood模型计算车辆行驶速度:式中vf为路段h上的最大速度, 为路段h上的车辆行驶速度,c为路段h上的实际车流密度,cm为路段h上的最大车流密度;
2)路径耗时,式(3)为任意一条正常路段的耗时代价costi:式中si为路段h的长度;
事故影响范围的耗时代价采用BPR路阻函数确定,式(4)为任意一条存在故障的路径的耗时代价:
式中normal为m处正常路段的集合,break为n处故障路段的集合, 为路段k处的实际行驶时间,tk为路段k处的自由流的行驶时间,qk为路段k处的交通流量,Ck表示路段k处的通行能力,路段k受到突发事件影响时,设影响因素为服从均匀分布的随机变量φk(0<φk<1),路段k处的最大车流密度为ck,则路段k实际通行能力为φkck,参数a,b为常数;sh表示无故障路段h的长度, 表示无故障路段h上的行驶速度;
设路径1的长度为len1,路径2的长度为len2,len1<len2,路径1和路径2之间的重合部分长度为opart,设置路径1和路径2之间的重合率小于30%,则路径1和路径2间的约束为f12:opart/len1<30%,式(5)为每两辆车选出的可行路径之间的约束代价:式中costi为路径i的耗时代价,costj为路径j的耗时代价,满足约束时的代价为两条路径耗时代价相加,否则取一个极大的值。