📄 liziqun.txt
字号:
粒子群优化算法的流程如下:
1、初始化所有粒子的随机位置和速度,对群体的最大迭代次数Gmax等参数进
行设定;
2、计算每个粒子的适应值;
3、对于每个粒子,将其适应值与所经历过的最优位置(,,,)
ii1 i2in
p=ppp的适应
值进行比较,若较好,则将其作为当前的最优位置;
4、对于每个粒子,将其适应值与全局所经历的最优位置(,,,)
gg1 g2gn
p=ppp的
适应值进行比较,若较好,则将其作为当前的全局最优位置;
5、根据式(3-1)和(3-2)对粒子的速度和位置进行更新;
6、如未达到结束条件通常为足够好的适应值或达到一个预设最大代数Gmax,则
返回步骤2。
粒子群算法用C语言编程如下:struct indi//首先定义了每个粒子的结构
{
float number[dimension];//记录每个粒子的空间坐标,dimension代表问题的维数
float pbest[dimension];//记录每个粒子所发现的最好的空间位置
float bestfitness;//每个粒子所发现的最好空间位置所对应的适应值
float fitness;//当前空间位置所对应的适应值
float speed[dimension];//粒子的速度向量
}individual[popsize];//popsize代表种群数量
void initiate();//初始化函数
void calculation(int number);//适应值计算函数
void globalbest();//寻找全局最优粒子函数
void localbest(int number);//寻找局部最优函数
粒子群算法过程如下
void pos()
{
srand(time(NULL));
initiate();
for(i=0;i<Gmax;i++)//Gmax代表最大迭代次数
for(k=0;k<popsize;k++)
{for(t=0;t<dimension;t++)
{
//对粒子的位置与速度进行更新;
}
calculation(k);
localbest(k);
}
globalbest();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -