CN105719004A - 一种基于协同进化粒子群算法求解多任务问题 - Google Patents
一种基于协同进化粒子群算法求解多任务问题 Download PDFInfo
- Publication number
- CN105719004A CN105719004A CN201610032835.4A CN201610032835A CN105719004A CN 105719004 A CN105719004 A CN 105719004A CN 201610032835 A CN201610032835 A CN 201610032835A CN 105719004 A CN105719004 A CN 105719004A
- Authority
- CN
- China
- Prior art keywords
- population
- sub
- particle
- assigned
- formula
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Genetics & Genomics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Feedback Control In General (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于协同进化粒子群算法求解多任务问题,其特征是按如下步骤进行:步骤1、种群初始化;步骤2、划分种群;步骤3、初始化各子种群中粒子的位置和速度;步骤4、初始化各子种群中粒子自身最优解及粒子自身最优位置;步骤5、初始化各子种群公告板上全局最优解及全局最优位置;步骤6、执行基本粒子群算法;步骤7、执行竞争操作;步骤8、执行协作操作;步骤9、更新各子种群粒子自身最优解及粒子自身最优位置;步骤10、更新各子种群全局最优解及全局最优位置;步骤11、循环步骤;步骤12:输出各子种群的全局最优解。本发明通过子种群之间的相互竞争协作,能同时求解多个不同的优化问题,从而满足解决实际问题的需要。
Description
技术领域
本发明涉及一种基于协同进化粒子群算法求解多任务问题。
背景技术
随着电子商务的广泛发展,各种在线服务层出不穷,服务器需要在同一时刻面临客户的多种不同的事务处理请求,也即服务器需要在同一时刻处理多个不同或相同的任务。现实世界中各个领域中的事务都需要建立模型来解决,最终都要归结为函数优化问题,函数优化应用越来越普遍,越来越复杂,其特点是:多变量、多极值、震荡性强,非线性。1995年Eberhart博士和kennedy博士根据鸟类的捕食行为,提出了粒子群优化算法,该算法的特点:实现容易、精度高、收敛速度快,已被广泛用于求解一些实际问题。
目前所提出的粒子群算法主要针对其易陷入局部最优的缺陷进行改进,但仅仅应用于单个问题的求解,还未曾用于同时求解多个不同的问题。
发明内容
本发明为克服现有技术存在的不足之处,提出一种基于协同进化的粒子群算法,以期能在同一时刻处理多个不同的任务,从而满足解决实际问题的需要。
为解决上述技术问题,本发明所采用的技术方案是:
本发明一种基于协同进化的粒子群算法求解多任务问题的方法的特点是按如下步骤进行:
假设有K个不同的待解决问题,且K个待解决问题均为最小优化问题或均为最大优化问题;将第h个问题记为Th,h=1,2,…K,则所述第h个问题Th的问题域记为Uh,所述第h个问题Th的目标函数记为fh;第h个问题Th的目标函数fh的自变量个数记为Z;
假设有N个粒子X={X1,X2,…Xi,…XN},1≤i≤N,Xi表示第i个粒子;定义t时刻所述第i个粒子Xi在第j维的位置为Xij(t),定义t时刻所述第i个粒子Xi在第j维的速度为Vij(t),定义搜索区间为[XMAX,XMIN],定义最大迭代次数为Maxiter;1≤j≤Z;
步骤1、初始化:
初始化t=0;并通过式(1)和式(2)获得t时刻第i个粒子Xi的位置Xij(t)和速度Vij(t),从而初始化t时刻N个粒子的位置和速度;
Xij(t)=rand()×(XMAX-XMIN)+XMIN(1)
Vij(t)=VMAX×rand()(2)
式(1)和式(2)中,rand()表示随机函数;VMAX表示粒子的最大速度;
步骤2、划分种群:
步骤2.1:利用式(3)获得第i个粒子Xi在第h个问题上的适应值从而获得第i个粒子Xi在K个问题上的适应值进而获得N个粒子X在K个问题上的适应值Y={Y1,Y2,…,Yi,…YN}:
步骤2.2:定义第i个粒子Xi的偏好因子为τ(i);1≤τ(i)≤K;
若K个待解决问题均为为最小优化问题,则利用式(4)获得第i个粒子Xi的最优值
若K个待解决问题均为为最大优化问题,则利用式(5)获得第i个粒子Xi的最优值
并将最优值所对应的下标best赋值给偏好因子τ(i),从而获得N个粒子X的偏好因子τ={τ(1),τ(2),…,τ(i),…,τ(N)}:
步骤2.3:划分K个子种群:
步骤2.3.1:初始化h=1;
步骤2.3.2:初始化i=1;
步骤2.3.3:判断τ(i)=h是否成立,若成立,则将第i个粒子Xi放入第h个子种群Ph中,否则,将i+1赋值给i;并判断i>N是否成立,若成立,则执行步骤2.3.4;否则,返回步骤2.3.3;
步骤2.3.4:将h+1赋值给h;并判断h>N是否成立,若成立,则表示获得K个子种群P={P1,P2,…,Ph,…,PK};否则,执行步骤2.3.2;
步骤2.4:定义所述第h个子种群Ph的种群规模为ψh,1≤ψh<N;
步骤2.4.1:初始化ψh=0;
步骤2.4.2:初始化h=1;
步骤2.4.3:初始化i=1;
步骤2.4.4:判断τ(i)=h是否成立,若成立,则将ψh+1赋值给ψh;否则,将i+1赋值给i;并判断i>N是否成立,若成立,则执行步骤2.4.5;否则,返回步骤2.4.4;
步骤2.4.5:将h+1赋值给h;并判断h>N是否成立,若成立,则表示获得K个子种群的种群规模P={ψ1,ψ2,…,ψh,…,ψk};否则,执行步骤2.4.3;
步骤3、初始化各子种群中粒子的位置和速度
利用式(6)和式(7)分别获得t时刻第h个子种群Ph中第i个粒子Xi在第j维的位置和速度和从而获取K个子种群中每个粒子在第j维的位置和速度:
步骤4、初始化各子种群中粒子自身最优解及粒子自身最优位置
定义所述第h个子种群Ph中第i个粒子Xi的自身最优解为定义t时刻所述第h个子种群Ph中第i个粒子Xi在第j维的自身最优位置为将所述第i个粒子Xi在第h个问题上的适应值作为所述第h个子种群Ph中第i个粒子Xi的自身最优适应值;1≤i≤ψh;ψh表示第h个子种群Ph中的粒子总数;
步骤4.1初始化h=1;
步骤4.2初始化i=1;
步骤4.3初始化j=1;
步骤4.4由式(8)获取第h个子种群中第i个粒子Xi的自身最优解
步骤4.5由式(9)初始化t时刻第h个子种群中第i个粒子Xi在第j维的自身最优位置
步骤4.6:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群中第i个粒子Xi的Z维;并执行步骤4.7;否则执行步骤4.5;
步骤4.7:将i+1赋值给i;并判断i>ψh是否成立,若成立,则表示获得第h个子种群中ψh个粒子的自身最优解及自身最优位置;并执行步骤4.8;否则,执行步骤4.4;
步骤4.8:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群中所有粒子自身最优解及自身最优位置;否则,执行步骤4.2;
步骤5、初始化各子种群全局最优解及全局最优位置
定义所述第h个子种群Ph的全局最优解为定义所述第h个子种群Ph的全局最优粒子的第j维位置为
步骤5.1:初始化h=1;
步骤5.2:若K个待解决问题均为最小优化问题,则利用式(10)获得第h个子种群Ph的全局最优解若K个待解决问题均为最大优化问题,则利用式(11)获得第h个子种群Ph的全局最优解并将最优解所对应的上标赋值给Best:
步骤5.3:初始化j=0;
步骤5.4:将所述第h个子种群Ph的全局最优解所对应的最优位置赋值给第h个子种群Ph的全局最优个体的第j维位置
步骤5.5:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群Ph中全局最优个体的最优位置,并执行步骤5.6,否则返回执行步骤5.4;
步骤5.6:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群的全局最优解及全局最优粒子的位置;否则,执行步骤5.2;
步骤6、执行基本粒子群算法
定义所述子种群Ph的惯性权重为ω(h),定义所述子种群Ph的学习因子为和所述子种群Ph的粒子位置和速度分别为和Maxiter为最大迭代次数;
步骤6.1:初始化t=1;
步骤6.2:初始化h=1;
步骤6.3:利用式(12)、式(13)和式(14)分别更新所述第h个子种群Ph的速度位置及惯性权重ω(h):
ω(h)=1.0-t×0.6/Maxiter(14)
式(12)中,和为(0,1)之间的随机数;
步骤6.4:将h+1赋值给h;并判断h>K是否成立,若成立,则表示h个子种群完成速度、位置及惯性权重的更新;否则,执行步骤6.3;
步骤7、执行竞争操作
定义和表示所述子种群Ph中两个不同的粒子;a≠b,a≤ψh;b≤ψh;
则所述第a个粒子和第b个粒子的位置分别为和定义常数rmp1为所述同一种群的竞争概率,0<rmp1<1;
步骤7.1:初始化h=1;
步骤7.2:产生(0,1)之间的随机数rand(),若rand()<rmp1,则执行步骤7.3;否则执行步骤8;
步骤7.3:初始化a=1;b=2;
步骤7.4,对所述第a个粒子和第b个粒子执行交叉操作,产生新个体和并利用式(15)和式(16)获得所述新个体和的位置分别为和
式(15)和式(16)中,ru为(0,1)之间的随机数;
步骤7.5利用式(3)获得新个体和的适应值和
步骤7.6:进行比较操作:
若优于则新个体取代第a个粒子取代反之继续保留第a个粒子及其位置
若优于则新个体取代第b个粒子则取代反之继续保留第b个粒子及其位置
步骤7.7:将a+1赋值给a,b+1赋值给b;并分别判断a>ψh且b>ψh是否成立,若成立,则表示第h个子种群完成竞争操作;并执行步骤7.8;否则执行步骤7.4;
步骤7.8:将h+1赋值给h;并判断h>K是否成立,若成立,则表示h个子种群完成竞争操作;否则,执行步骤7.2;
步骤8、执行协作操作
定义常数rmp2为所述不同种群之间的协作概率,0<rmp2<1;
步骤8.1:产生随机数rand(),若rmp2<rand(),则执行步骤8.2,否则执行步骤9;
步骤8.2:若K个待解决问题均为最小优化问题,则利用式(17)获取K个子种群的最优解Yθ,若K个待解决问题均为最大优化问题,则利用式(18)获取K个子种群的最优解Yθ,并将K个子种群的最优解的下标赋值给θ;
步骤8.3:初始化h=1;
步骤8.4:定义所述K个子种群的最优解Yθ所对应的全局最优粒子的第j维位置为利用式(19)和式(20)更新t时刻所述第h个子种群Ph中第i个粒子Xi在第j维的位置和速度
步骤8.5:将h+1赋值给h,并判断h>K是否成立,若成立,则表示K个子种群完成协作操作;否则,继续执行步骤8.4;
步骤9更新各子种群粒子最优解及粒子最优位置
步骤9.1初始化h=1;
步骤9.2初始化i=1;
步骤9.3利用式(3)计算t时刻所述第h个子种群Ph中第i个粒子Xi在第j维上的适应值并比较与若优于则令并执行步骤9.4;否则执行步骤9.6;
步骤9.4:初始化j=0;
获取第h个子种群中第i个粒子Xi在第j维的自身最优位置令
步骤9.5:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群中第i个粒子Xi的Z维;并执行步骤9.6,否则执行步骤9.4;
步骤9.6:将i+1赋值给i;并判断i>ψh是否成立,若成立,则表示获得第h个子种群中所有粒子的最优解及其最优位置;并执行步骤9.7,否则,执行步骤9.3;
步骤9.7:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群的所有粒子的最优解及其最优位置;否则,执行步骤9.2;
步骤10更新各子种群全局最优解及各子种群全局最优位置
步骤10.1:初始化h=1;
步骤10.2:若K个待解决问题均为最小优化问题,则以赋值给第h个子种群Ph的全局最优解若K个待解决问题均为最大优化问题,则以赋值给第h个子种群Ph的全局最优解
步骤10.3:初始化j=0;
步骤10.4:第h个子种群Ph的全局最优解所对应的第j维位置赋值给第h个子种群Ph的全局最优粒子的第j维位置
步骤10.5:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群中Ph的全局最优位置,继续执行步骤9.6;否则执行步骤9.4;
步骤10.6:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群的全局最优解;否则,执行步骤9.2;
步骤11、若t<Maxiter,则将t+1赋值给t,执行步骤6.1;否则执行步骤12;
步骤12、输出各任务的全局最优解
步骤12.1初始化h=1;
步骤12.2:输出第h个子种群Ph的全局最优解
步骤12.3:将h+1赋值给h;并判断h>K是否成立,若成立,则表示分别获得h个子种群的全局最优解;否则,执行步骤12.2。
与已有技术相比,本发明的有益效果体现在:
1、目前的粒子群算法主要应用于单个任务的求解,虽然有部分学者将云平台应用于求解多个问题,但云平台的搭建不仅耗时,且耗资源。在本发明中,所有任务的求解均在单台计算机上运行,通过引入偏好因子将整个种群根据问题(任务)的个数分成多个子种群,每个不同的问题(任务)占据不同的子种群,各子种群共同进化,从而同时完成多个不同任务的求解;并且有效信息在各任务之间相互传递,各任务共享有效信息,从而加速各任务自身的收敛速度。
2、本发明将自然界中生物之间的竞争机制引入到粒子群算法中,粒子与同种群中的其它个体进行交叉操作,产生新个体,若新个体适应值优于父代个体,则取代父代个体。这样一方面能保持子种群的多样性,另一方面也能淘汰掉部分持续表现较差的个体,保留了精英个体,从而加速算法一直朝最优解的方向进化。
3.本发明将自然界中生物之间的协作机制引入到粒子群算法中,不同子种群之间相互协作,共享最优个体的位置信息,这不仅加快了算法的收敛速度,提高了问题的求解质量和效率,而且与单独求解单个问题的运行时间相比,缩短了算法的运行时间。
具体实施方式
本实施例中,假设有K个不同的待解决问题,且K个待解决问题均为最小优化问题或均为最大优化问题;将第h个问题记为Th,h=1,2,…K,则所述第h个问题Th的问题域记为Uh,所述第h个问题Th的目标函数记为fh;第h个问题Th的目标函数fh的自变量个数记为Z;
假设有N个粒子X={X1,X2,…Xi,…XN},1≤i≤N,Xi表示第i个粒子;定义t时刻所述第i个粒子Xi在第j维的位置为Xij(t),定义t时刻所述第i个粒子Xi在第j维的速度为Vij(t),定义搜索区间为[XMAX,XMIN],定义最大迭代次数为Maxiter;1≤j≤Z;
步骤1、初始化:
初始化t=0;并通过式(1)和式(2)获得t时刻第i个粒子Xi的位置Xij(t)和速度Vij(t),从而初始化t时刻N个粒子的位置和速度;
Xij(t)=rand()×(XMAX-XMIN)+XMIN(1)
Vij(t)=VMAX×rand()(2)
式(1)和式(2)中,rand()表示随机函数;VMAX表示粒子的最大速度;
步骤2、划分种群:
步骤2.1:利用式(3)获得第i个粒子Xi在第h个问题上的适应值从而获得第i个粒子Xi在K个问题上的适应值进而获得N个粒子X在K个问题上的适应值Y={Y1,Y2,…,Yi,…YN}:
步骤2.2:定义第i个粒子Xi的偏好因子为τ(i);1≤τ(i)≤K;
若K个待解决问题均为为最小优化问题,则利用式(4)获得第i个粒子Xi的最优值
若K个待解决问题均为为最大优化问题,则利用式(5)获得第i个粒子Xi的最优值
并将最优值所对应的下标best赋值给偏好因子τ(i),从而获得N个粒子X的偏好因子τ={τ(1),τ(2),…,τ(i),…,τ(N)}:
步骤2.3:划分K个子种群:
步骤2.3.1:初始化h=1;
步骤2.3.2:初始化i=1;
步骤2.3.3:判断τ(i)=h是否成立,若成立,则将第i个粒子Xi放入第h个子种群Ph中,否则,将i+1赋值给i;并判断i>N是否成立,若成立,则执行步骤2.3.4;否则,返回步骤2.3.3;
步骤2.3.4:将h+1赋值给h;并判断h>N是否成立,若成立,则表示获得K个子种群P={P1,P2,…,Ph,…,PK};否则,执行步骤2.3.2;
步骤2.4:定义所述第h个子种群Ph的种群规模为ψh,1≤ψh<N;
步骤2.4.1:初始化ψh=0;
步骤2.4.2:初始化h=1;
步骤2.4.3:初始化i=1;
步骤2.4.4:判断τ(i)=h是否成立,若成立,则将ψh+1赋值给ψh;否则,将i+1赋值给i;并判断i>N是否成立,若成立,则执行步骤2.4.5;否则,返回步骤2.4.4;
步骤2.4.5:将h+1赋值给h;并判断h>N是否成立,若成立,则表示获得K个子种群的种群规模P={ψ1,ψ2,…,ψh,…,ψk};否则,执行步骤2.4.3;
在第一次迭代结束之后,通过偏好因子将原始的整个种群根据问题(任务)的个数划分成多个子种群(如有3个任务需要同时解决,则经过步骤2,整个种群被分成3个不同的子种群),以便后续的多个子种群同时搜索,以达到同时求解多个不同任务的目的。
步骤3、初始化各子种群中粒子的位置和速度
利用式(6)和式(7)分别获得t时刻第h个子种群Ph中第i个粒子Xi在第j维的位置和速度和从而获取K个子种群中每个粒子在第j维的位置和速度:
步骤4、初始化各子种群中粒子自身最优解及粒子自身最优位置
定义所述第h个子种群Ph中第i个粒子Xi的自身最优解为定义t时刻所述第h个子种群Ph中第i个粒子Xi在第j维的自身最优位置为将所述第i个粒子Xi在第h个问题上的适应值作为所述第h个子种群Ph中第i个粒子Xi的自身最优适应值;1≤i≤ψh;ψh表示第h个子种群Ph中的粒子总数;
步骤4.1初始化h=1;
步骤4.2初始化i=1;
步骤4.3初始化j=1;
步骤4.4由式(8)获取第h个子种群中第i个粒子Xi的自身最优解
步骤4.5由式(9)初始化t时刻第h个子种群中第i个粒子Xi在第j维的自身最优位置
步骤4.6:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群中第i个粒子Xi的Z维;并执行步骤4.7;否则执行步骤4.5;
步骤4.7:将i+1赋值给i;并判断i>ψh是否成立,若成立,则表示获得第h个子种群中ψh个粒子的自身最优解及自身最优位置;并执行步骤4.8;否则,执行步骤4.4;
步骤4.8:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群中所有粒子自身最优解及自身最优位置;否则,执行步骤4.2;
步骤5、初始化各子种群全局最优解及全局最优位置
定义所述第h个子种群Ph的全局最优解为定义所述第h个子种群Ph的全局最优粒子的第j维位置为
步骤5.1:初始化h=1;
步骤5.2:若K个待解决问题均为最小优化问题,则利用式(10)获得第h个子种群Ph的全局最优解若K个待解决问题均为最大优化问题,则利用式(11)获得第h个子种群Ph的全局最优解并将最优解所对应的上标赋值给Best:
步骤5.3:初始化j=0;
步骤5.4:将所述第h个子种群Ph的全局最优解所对应的最优位置赋值给第h个子种群Ph的全局最优个体的第j维位置
步骤5.5:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群Ph中全局最优个体的最优位置,并执行步骤5.6,否则返回执行步骤5.4;
步骤5.6:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群的全局最优解及全局最优粒子的位置;否则,执行步骤5.2;
步骤6、执行基本粒子群算法
定义所述子种群Ph的惯性权重为ω(h),定义所述子种群Ph的学习因子为和所述子种群Ph的粒子位置和速度分别为和Maxiter为最大迭代次数;
步骤6.1:初始化t=1;
步骤6.2:初始化h=1;
步骤6.3:利用式(12)、式(13)和式(14)分别更新所述第h个子种群Ph的速度位置及惯性权重ω(h),惯性权重ω(u)设定为迭代次数的函数,随着迭代次数增加,ω(u)线性递减,在算法前期,ω(u)值较大,使得算法具有较强的全局搜索能力;算法后期,ω(u)值较小,算法具有较强的局部搜索能力。
ω(h)=1.0-t×0.6/Maxiter(14)
在每一次迭代中,粒子通过跟踪两个“极值”来更新自己的位置,第一个是粒子自身所找到的最优位置另一个是所在子种群目前找到的全局最优解所在的位置任意时刻,粒子根据自身位置,自身最优位置及全局最优位置更新位置信息,
式(12)中,和为(0,1)之间的随机数;
步骤6.4:将h+1赋值给h;并判断h>K是否成立,若成立,则表示h个子种群完成速度、位置及惯性权重的更新;否则,执行步骤6.3;
步骤7、执行竞争操作
定义和表示所述子种群Ph中两个不同的粒子;a≠b,a≤ψh;b≤ψh;
则所述第a个粒子和第b个粒子的位置分别为和定义常数rmp1为所述同一种群的竞争概率,0<rmp1<1;
步骤7.1:初始化h=1;
步骤7.2:产生(0,1)之间的随机数rand(),若rand()<rmp1,则执行步骤7.3;否则执行步骤8;
步骤7.3:初始化a=1;b=2;
步骤7.4,对所述第a个粒子和第b个粒子执行交叉操作,产生新个体和并利用式(15)和式(16)获得所述新个体和的位置分别为和
式(15)和式(16)中,ru为(0,1)之间的随机数;
步骤7.5利用式(3)获得新个体和的适应值和
步骤7.6:进行比较操作:
若优于则新个体取代第a个粒子取代反之继续保留第a个粒子及其位置
若优于则新个体取代第b个粒子则取代反之继续保留第b个粒子及其位置
步骤7.7:将a+1赋值给a,b+1赋值给b;并分别判断a>ψh且b>ψh是否成立,若成立,则表示第h个子种群完成竞争操作;并执行步骤7.8;否则执行步骤7.4;
步骤7.8:将h+1赋值给h;并判断h>K是否成立,若成立,则表示h个子种群完成竞争操作;否则,执行步骤7.2;
因基本的粒子群算法在算法运行后期容易因粒子多样性的缺失而早熟收敛,以一定的概率将各子种群的粒子进行交叉操作(实数交叉),这不仅可以产生一些新的个体,以保持种群的动态多样性,又可以将一些持续表现很差的个体给淘汰掉,淘汰掉的个体可释放资源给新生个体。同时式(15-16)中加入随机数ru,可保证每次产生新个体的位置都不一样,这就在一定程度上保证了种群的多样性。
步骤8、执行协作操作
定义常数rmp2为所述不同种群之间的协作概率,0<rmp2<1;
步骤8.1:产生随机数rand(),若rmp2<rand(),则执行步骤8.2,否则执行步骤9;
步骤8.2:若K个待解决问题均为最小优化问题,则利用式(17)获取K个子种群的最优解Yθ,若K个待解决问题均为最大优化问题,则利用式(18)获取K个子种群的最优解Yθ,并将K个子种群的最优解的下标赋值给θ;
步骤8.3:初始化h=1;
步骤8.4:定义所述K个子种群的最优解Yθ所对应的全局最优粒子的第j维位置为利用式(19)和式(20)更新t时刻所述第h个子种群Ph中第i个粒子Xi在第j维的位置和速度协同进化是指两个相互作用的物种在进化过程中发展的相互适应的共同进化。一个物种由于另一物种影响而发生遗传进化的进化类型。例如一种植物由于食草昆虫所施加的压力而发生遗传变化,这种变化又导致昆虫发生遗传性变化。受此启发,在多个任务同时求解过程中,若对方子种群的最优粒子优于自身子种群,则将对方子种群的最优粒子位置纳入到粒子的位置进化过程中(如公式19中的),以达到优势互补,共同进化。在本专利中,先求出K个不同任务的最优位置然后将纳入K个不同子种群的位置更新公式中,以达到共同进化的目的。概率因子rmp2的引入,可防止算法一味的偏向于当前的最优粒子。
步骤8.5:将h+1赋值给h,并判断h>K是否成立,若成立,则表示K个子种群完成协作操作;否则,继续执行步骤8.4;
步骤9更新各子种群粒子最优解及粒子最优位置
步骤9.1初始化h=1;
步骤9.2初始化i=1;
步骤9.3利用式(3)计算t时刻所述第h个子种群Ph中第i个粒子Xi在第j维上的适应值并比较与若优于则令并执行步骤9.4;否则执行步骤9.6;
步骤9.4:初始化j=0;
获取第h个子种群中第i个粒子Xi在第j维的自身最优位置令
步骤9.5:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群中第i个粒子Xi的Z维;并执行步骤9.6,否则执行步骤9.4;
步骤9.6:将i+1赋值给i;并判断i>ψh是否成立,若成立,则表示获得第h个子种群中所有粒子的最优解及其最优位置;并执行步骤9.7,否则,执行步骤9.3;
步骤9.7:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群的所有粒子的最优解及其最优位置;否则,执行步骤9.2;
步骤10更新各子种群全局最优解及各子种群全局最优位置
步骤10.1:初始化h=1;
步骤10.2:若K个待解决问题均为最小优化问题,则以赋值给第h个子种群Ph的全局最优解若K个待解决问题均为最大优化问题,则以赋值给第h个子种群Ph的全局最优解
步骤10.3:初始化j=0;
步骤10.4:第h个子种群Ph的全局最优解所对应的第j维位置赋值给第h个子种群Ph的全局最优粒子的第j维位置
步骤10.5:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群中Ph的全局最优位置,继续执行步骤9.6;否则执行步骤9.4;
步骤10.6:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群的全局最优解;否则,执行步骤9.2;
步骤11、若t<Maxiter,则将t+1赋值给t,执行步骤6.1;否则执行步骤12;
步骤12、输出各任务的全局最优解
步骤12.1初始化h=1;
步骤12.2:输出第h个子种群Ph的全局最优解
步骤12.3:将h+1赋值给h;并判断h>K是否成立,若成立,则表示分别获得h个子种群的全局最优解;否则,执行步骤12.2。
Claims (1)
1.一种基于协同进化的粒子群算法求解多任务问题的方法,其特征是按如下步骤进行:
假设有K个不同的待解决问题,且K个待解决问题均为最小优化问题或均为最大优化问题;将第h个问题记为Th,h=1,2,…K,则所述第h个问题Th的问题域记为Uh,所述第h个问题Th的目标函数记为fh;第h个问题Th的目标函数fh的自变量个数记为Z;
假设有N个粒子X={X1,X2,…Xi,…XN},1≤i≤N,Xi表示第i个粒子;定义t时刻所述第i个粒子Xi在第j维的位置为Xij(t),定义t时刻所述第i个粒子Xi在第j维的速度为Vij(t),定义搜索区间为[XMAX,XMIN],定义最大迭代次数为Maxiter;1≤j≤Z;
步骤1、初始化:
初始化t=0;并通过式(1)和式(2)获得t时刻第i个粒子Xi的位置Xij(t)和速度Vij(t),从而初始化t时刻N个粒子的位置和速度;
Xij(t)=rand()×(XMAX-XMIN)+XMIN(1)
Vij(t)=VMAX×rand()(2)
式(1)和式(2)中,rand()表示随机函数;VMAX表示粒子的最大速度;
步骤2、划分种群:
步骤2.1:利用式(3)获得第i个粒子Xi在第h个问题上的适应值从而获得第i个粒子Xi在K个问题上的适应值进而获得N个粒子X在K个问题上的适应值Y={Y1,Y2,…,Yi,…YN}:
步骤2.2:定义第i个粒子Xi的偏好因子为τ(i);1≤τ(i)≤K;
若K个待解决问题均为为最小优化问题,则利用式(4)获得第i个粒子Xi的最优值
若K个待解决问题均为为最大优化问题,则利用式(5)获得第i个粒子Xi的最优值
并将最优值所对应的下标best赋值给偏好因子τ(i),从而获得N个粒子X的偏好因子τ={τ(1),τ(2),…,τ(i),…,τ(N)}:
步骤2.3:划分K个子种群:
步骤2.3.1:初始化h=1;
步骤2.3.2:初始化i=1;
步骤2.3.3:判断τ(i)=h是否成立,若成立,则将第i个粒子Xi放入第h个子种群Ph中,否则,将i+1赋值给i;并判断i>N是否成立,若成立,则执行步骤2.3.4;否则,返回步骤2.3.3;
步骤2.3.4:将h+1赋值给h;并判断h>N是否成立,若成立,则表示获得K个子种群P={P1,P2,…,Ph,…,PK};否则,执行步骤2.3.2;
步骤2.4:定义所述第h个子种群Ph的种群规模为ψh,1≤ψh<N;
步骤2.4.1:初始化ψh=0;
步骤2.4.2:初始化h=1;
步骤2.4.3:初始化i=1;
步骤2.4.4:判断τ(i)=h是否成立,若成立,则将ψh+1赋值给ψh;否则,将i+1赋值给i;并判断i>N是否成立,若成立,则执行步骤2.4.5;否则,返回步骤2.4.4;
步骤2.4.5:将h+1赋值给h;并判断h>N是否成立,若成立,则表示获得K个子种群的种群规模P={ψ1,ψ2,…,ψh,…,ψk};否则,执行步骤2.4.3;
步骤3、初始化各子种群中粒子的位置和速度
利用式(6)和式(7)分别获得t时刻第h个子种群Ph中第i个粒子Xi在第j维的位置和速度和从而获取K个子种群中每个粒子在第j维的位置和速度:
步骤4、初始化各子种群中粒子自身最优解及粒子自身最优位置
定义所述第h个子种群Ph中第i个粒子Xi的自身最优解为定义t时刻所述第h个子种群Ph中第i个粒子Xi在第j维的自身最优位置为将所述第i个粒子Xi在第h个问题上的适应值作为所述第h个子种群Ph中第i个粒子Xi的自身最优适应值;1≤i≤ψh;ψh表示第h个子种群Ph中的粒子总数;
步骤4.1初始化h=1;
步骤4.2初始化i=1;
步骤4.3初始化j=1;
步骤4.4由式(8)获取第h个子种群中第i个粒子Xi的自身最优解
步骤4.5由式(9)初始化t时刻第h个子种群中第i个粒子Xi在第j维的自身最优位置
步骤4.6:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群中第i个粒子Xi的Z维;并执行步骤4.7;否则执行步骤4.5;
步骤4.7:将i+1赋值给i;并判断i>ψh是否成立,若成立,则表示获得第h个子种群中ψh个粒子的自身最优解及自身最优位置;并执行步骤4.8;否则,执行步骤4.4;
步骤4.8:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群中所有粒子自身最优解及自身最优位置;否则,执行步骤4.2;
步骤5、初始化各子种群全局最优解及全局最优位置
定义所述第h个子种群Ph的全局最优解为定义所述第h个子种群Ph的全局最优粒子的第j维位置为
步骤5.1:初始化h=1;
步骤5.2:若K个待解决问题均为最小优化问题,则利用式(10)获得第h个子种群Ph的全局最优解若K个待解决问题均为最大优化问题,则利用式(11)获得第h个子种群Ph的全局最优解并将最优解所对应的上标赋值给Best:
步骤5.3:初始化j=0;
步骤5.4:将所述第h个子种群Ph的全局最优解所对应的最优位置赋值给第h个子种群Ph的全局最优个体的第j维位置
步骤5.5:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群Ph中全局最优个体的最优位置,并执行步骤5.6,否则返回执行步骤5.4;
步骤5.6:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群的全局最优解及全局最优粒子的位置;否则,执行步骤5.2;
步骤6、执行基本粒子群算法
定义所述子种群Ph的惯性权重为ω(h),定义所述子种群Ph的学习因子为和所述子种群Ph的粒子位置和速度分别为和Maxiter为最大迭代次数;
步骤6.1:初始化t=1;
步骤6.2:初始化h=1;
步骤6.3:利用式(12)、式(13)和式(14)分别更新所述第h个子种群Ph的速度位置及惯性权重ω(h):
ω(h)=1.0-t×0.6/Maxiter(14)
式(12)中,和为(0,1)之间的随机数;
步骤6.4:将h+1赋值给h;并判断h>K是否成立,若成立,则表示h个子种群完成速度、位置及惯性权重的更新;否则,执行步骤6.3;
步骤7、执行竞争操作
定义和表示所述子种群Ph中两个不同的粒子;a≠b,a≤ψh;b≤ψh;
则所述第a个粒子和第b个粒子的位置分别为和定义常数rmp1为所述同一种群的竞争概率,0<rmp1<1;
步骤7.1:初始化h=1;
步骤7.2:产生(0,1)之间的随机数rand(),若rand()<rmp1,则执行步骤7.3;否则执行步骤8;
步骤7.3:初始化a=1;b=2;
步骤7.4,对所述第a个粒子和第b个粒子执行交叉操作,产生新个体和并利用式(15)和式(16)获得所述新个体和的位置分别为和
式(15)和式(16)中,ru为(0,1)之间的随机数;
步骤7.5利用式(3)获得新个体和的适应值和
步骤7.6:进行比较操作:
若优于则新个体取代第a个粒子 取代反之继续保留第a个粒子及其位置
若优于则新个体取代第b个粒子则取代反之继续保留第b个粒子及其位置
步骤7.7:将a+1赋值给a,b+1赋值给b;并分别判断a>ψh且b>ψh是否成立,若成立,则表示第h个子种群完成竞争操作;并执行步骤7.8;否则执行步骤7.4;
步骤7.8:将h+1赋值给h;并判断h>K是否成立,若成立,则表示h个子种群完成竞争操作;否则,执行步骤7.2;
步骤8、执行协作操作
定义常数rmp2为所述不同种群之间的协作概率,0<rmp2<1;
步骤8.1:产生随机数rand(),若rmp2<rand(),则执行步骤8.2,否则执行步骤9;
步骤8.2:若K个待解决问题均为最小优化问题,则利用式(17)获取K个子种群的最优解Yθ,若K个待解决问题均为最大优化问题,则利用式(18)获取K个子种群的最优解Yθ,并将K个子种群的最优解的下标赋值给θ;
步骤8.3:初始化h=1;
步骤8.4:定义所述K个子种群的最优解Yθ所对应的全局最优粒子的第j维位置为利用式(19)和式(20)更新t时刻所述第h个子种群Ph中第i个粒子Xi在第j维的位置和速度
步骤8.5:将h+1赋值给h,并判断h>K是否成立,若成立,则表示K个子种群完成协作操作;否则,继续执行步骤8.4;
步骤9更新各子种群粒子最优解及粒子最优位置
步骤9.1初始化h=1;
步骤9.2初始化i=1;
步骤9.3利用式(3)计算t时刻所述第h个子种群Ph中第i个粒子Xi在第j维上的适应值并比较与若优于则令并执行步骤9.4;否则执行步骤9.6;
步骤9.4:初始化j=0;
获取第h个子种群中第i个粒子Xi在第j维的自身最优位置令
步骤9.5:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群中第i个粒子Xi的Z维;并执行步骤9.6,否则执行步骤9.4;
步骤9.6:将i+1赋值给i;并判断i>ψh是否成立,若成立,则表示获得第h个子种群中所有粒子的最优解及其最优位置;并执行步骤9.7,否则,执行步骤9.3;
步骤9.7:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群的所有粒子的最优解及其最优位置;否则,执行步骤9.2;
步骤10更新各子种群全局最优解及各子种群全局最优位置
步骤10.1:初始化h=1;
步骤10.2:若K个待解决问题均为最小优化问题,则以赋值给第h个子种群Ph的全局最优解若K个待解决问题均为最大优化问题,则以 赋值给第h个子种群Ph的全局最优解
步骤10.3:初始化j=0;
步骤10.4:第h个子种群Ph的全局最优解所对应的第j维位置赋值给第h个子种群Ph的全局最优粒子的第j维位置
步骤10.5:将j+1赋值给j;并判断j>Z是否成立,若成立,则表示获得第h个子种群中Ph的全局最优位置,继续执行步骤9.6;否则执行步骤9.4;
步骤10.6:将h+1赋值给h;并判断h>K是否成立,若成立,则表示获得K个子种群的全局最优解;否则,执行步骤9.2;
步骤11、若t<Maxiter,则将t+1赋值给t,执行步骤6.1;否则执行步骤12;
步骤12、输出各任务的全局最优解
步骤12.1初始化h=1;
步骤12.2:输出第h个子种群Ph的全局最优解
步骤12.3:将h+1赋值给h;并判断h>K是否成立,若成立,则表示分别获得h个子种群的全局最优解;否则,执行步骤12.2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610032835.4A CN105719004A (zh) | 2016-01-18 | 2016-01-18 | 一种基于协同进化粒子群算法求解多任务问题 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610032835.4A CN105719004A (zh) | 2016-01-18 | 2016-01-18 | 一种基于协同进化粒子群算法求解多任务问题 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105719004A true CN105719004A (zh) | 2016-06-29 |
Family
ID=56147895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610032835.4A Pending CN105719004A (zh) | 2016-01-18 | 2016-01-18 | 一种基于协同进化粒子群算法求解多任务问题 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105719004A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016077A (zh) * | 2017-03-28 | 2017-08-04 | 南京邮电大学 | 一种面向Web服务组合的优化方法 |
CN108748160A (zh) * | 2018-06-21 | 2018-11-06 | 河南大学 | 基于多种群粒子群算法的机械臂运动规划方法 |
WO2021082444A1 (zh) * | 2019-10-28 | 2021-05-06 | 南通大学 | 用于大规模脑病历分割的多粒度Spark超信任模糊方法 |
-
2016
- 2016-01-18 CN CN201610032835.4A patent/CN105719004A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016077A (zh) * | 2017-03-28 | 2017-08-04 | 南京邮电大学 | 一种面向Web服务组合的优化方法 |
CN107016077B (zh) * | 2017-03-28 | 2020-05-29 | 南京邮电大学 | 一种面向Web服务组合的优化方法 |
CN108748160A (zh) * | 2018-06-21 | 2018-11-06 | 河南大学 | 基于多种群粒子群算法的机械臂运动规划方法 |
WO2021082444A1 (zh) * | 2019-10-28 | 2021-05-06 | 南通大学 | 用于大规模脑病历分割的多粒度Spark超信任模糊方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gupta et al. | Half a dozen real-world applications of evolutionary multitasking, and more | |
Jin et al. | A systems approach to evolutionary multiobjective structural optimization and beyond | |
Ong et al. | Memetic computation—past, present & future [research frontier] | |
CN114386694A (zh) | 基于对比学习的药物分子性质预测方法、装置及设备 | |
Zhang et al. | DECAL: Decomposition-based coevolutionary algorithm for many-objective optimization | |
CN103267528A (zh) | 禁飞区限制下的多无人机协同区域搜索方法 | |
CN104408518A (zh) | 基于粒子群优化算法的神经网络学习优化方法 | |
CN102222268A (zh) | 基于多种群混合粒子群算法的流水车间调度方法 | |
CN105719004A (zh) | 一种基于协同进化粒子群算法求解多任务问题 | |
CN110135584A (zh) | 基于自适应并行遗传算法的大规模符号回归方法及系统 | |
CN107563653A (zh) | 一种多机器人全覆盖任务分配方法 | |
Zille | Large-scale multi-objective optimisation: new approaches and a classification of the state-of-the-art | |
KR20100073771A (ko) | 네트워크 기반 협업 로봇 시스템에서의 로봇 선택 방법 및 로봇 선택 장치 | |
CN115494873A (zh) | 时序约束下一种基于蒙特卡洛树搜索架构的异构多无人机协同任务分配方法 | |
Judt et al. | Development of an automated aircraft subsystem architecture generation and analysis tool | |
AU2005281762B2 (en) | A system and a method for mission planning | |
CN111157002B (zh) | 基于多智能体进化算法的飞行器3d路径规划方法 | |
CN109409746A (zh) | 一种生产调度方法及装置 | |
Kang et al. | Multi-Objective Teaching-Learning-Based Optimizer for a Multi-Weeding Robot Task Assignment Problem | |
Hou et al. | A Multiagent Cooperative Learning System With Evolution of Social Roles | |
CN107194155A (zh) | 一种基于小数据集和贝叶斯网络的威胁评估建模方法 | |
CN108197186B (zh) | 一种应用于社交网络中的动态图匹配查询方法 | |
CN113744296B (zh) | 一种基于人工黏菌群体智能的图像边缘检测方法 | |
CN116430891A (zh) | 一种面向多智能体路径规划环境的深度强化学习方法 | |
CN105205347B (zh) | 基于bsa-ts算法的蛋白质三维结构预测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160629 |