粒子群算法的几个比较大的改进:
(1)离散粒子群算法:粒子搜索位置为0-1离散值,速度更新公式通过sigmoid函数得到概率值p,决定当前位置的参数是0还是1;
(2)混沌粒子群算法:由确定的方程得出不确定的方程,呈不确定状态的变量成为混沌变量。在混沌粒子群算法中,以全局最优解gbest迭代产生混沌序列,混沌序列通过方程映射回原解空间,序列中最优位置随机替代某个粒子的位置,叫做混沌优化。
(3)量子粒子群算法:因为粒子的位置和速度在量子空间中不能一起确定,所以用波函数表示粒子位置,通过蒙特卡罗方法求出粒子位置。gbest求解通过平均最好位置mbest得到。mbest是所有个体平均最优,通过它来求解粒子出现在相对点的位置,用L表示。而粒子的势表示位置的最终值,与L直接相关。
量子粒子群算法实现(matlab):
popsize=20; %种群规模
MAXITER=2000; %最大迭代次数
dimension=30; %维数
irange_l=-5.12;
irange_r=5.12;
xmax=10; %x的变化范围
sum1=0;
sum2=0;
mean=0;
st=0;
runno=10;
data1=zeros(runno,MAXITER); %10*2000型矩阵
for run=1:runno
T=cputime; %程序开始时间
x=(irange_r- irange_l)*rand(popsi