最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

c语言 pso粒子群优化算法源代码

来源:动视网 责编:小OO 时间:2025-10-04 05:31:48
文档

c语言 pso粒子群优化算法源代码

/**=====================================================================================**Filename:particle.c**Description:**Version:1.0*Created:2012年03月17日15时27分13秒*Revision:none*Compiler:gcc**Author:MaZheng(blog.csdn.net/mazheng19),mazheng1910
推荐度:
导读/**=====================================================================================**Filename:particle.c**Description:**Version:1.0*Created:2012年03月17日15时27分13秒*Revision:none*Compiler:gcc**Author:MaZheng(blog.csdn.net/mazheng19),mazheng1910
/*

* =====================================================================================

*

* Filename: particle.c

*

* Description:

*

* Version: 1.0

* Created: 2012年03月17日 15时27分13秒

* Revision: none

* Compiler: gcc

*

* Author: MaZheng (blog.csdn.net/mazheng19), mazheng191019@gmail.com

* Company: Dalian University Of Technology

*

* =====================================================================================

*/

//粒子群PSO算法

#include

#include

#include

#include

#definePI 3.1415926535/* */

#define P_num 200 //粒子数目

#define dim 50

#define low -100 //搜索域范围

#define high 100

#define iter_num 1000

#define V_max 20 //速度范围

#define c1 2

#define c2 2

#define w 0.5

#define alp 1

double particle[P_num][dim]; //个体集合

double particle_loc_best[P_num][dim]; //每个个体局部最优向量

double particle_loc_fit[P_num]; //个体的局部最优适应度,有局部最优向量计算而来

double particle_glo_best[dim]; //全局最优向量

double gfit; //全局最优适应度,有全局最优向量计算而来

double particle_v[P_num][dim]; //记录每个个体的当前代速度向量

double particle_fit[P_num]; //记录每个粒子的当前代适应度

double Sphere(double a[])

{

int i;

double sum=0.0;

for(i=0; i{

sum+=a[i]*a[i];

}

return sum;

}

double Rosenbrock(double a[])

{

int i;

double sum=0.0;

for(i=0;i{

sum+= 100*(a[i+1]-a[i]*a[i])*(a[i+1]-a[i]*a[i])+(a[i]-1)*(a[i]-1);

}

return sum;

}

double Rastrigin(double a[])

{

int i;

double sum=0.0;

for(i=0;i{

sum+=a[i]*a[i]-10.0*cos(2*PI*a[i])+10.0;

}

return sum;

}

double fitness(double a[]) //适应度函数

{

return Rastrigin(a);

}

void initial()

{

int i,j;

for(i=0; i{

for(j=0; j{

particle[i][j] = low+(high-low)*1.0*rand()/RAND_MAX; //初始化群体

particle_loc_best[i][j] = particle[i][j]; //将当前最优结果写入局部最优集合

particle_v[i][j] = -V_max+2*V_max*1.0*rand()/RAND_MAX; //速度

}

}

for(i=0; i{

particle_fit[i] = fitness(particle[i]);

particle_loc_fit[i] = particle_fit[i];

}

gfit = particle_loc_fit[0]; //找出全局最优

j=0;

for(i=1; i{

if(particle_loc_fit[i]{

gfit = particle_loc_fit[i];

j = i;

}

}

for(i=0; i{

particle_glo_best[i] = particle_loc_best[j][i];

}

}

void renew_particle()

{

int i,j;

for(i=0; i{

for(j=0; j{

particle[i][j] += alp*particle_v[i][j];

if(particle[i][j] > high)

{

parti

cle[i][j] = high;

}

if(particle[i][j] < low)

{

particle[i][j] = low;

}

}

}

}

void renew_var()

{

int i, j;

for(i=0; i{

particle_fit[i] = fitness(particle[i]);

if(particle_fit[i] < particle_loc_fit[i]) //更新个体局部最优值

{

particle_loc_fit[i] = particle_fit[i];

for(j=0; j{

particle_loc_best[i][j] = particle[i][j];

}

}

}

for(i=0,j=-1; i{

if(particle_loc_fit[i]{

gfit = particle_loc_fit[i];

j = i;

}

}

if(j != -1)

{

for(i=0; i{

particle_glo_best[i] = particle_loc_best[j][i];

}

}

for(i=0; i{

for(j=0; j{

particle_v[i][j]=w*particle_v[i][j]+

c1*1.0*rand()/RAND_MAX*(particle_loc_best[i][j]-particle[i][j])+

c2*1.0*rand()/RAND_MAX*(particle_glo_best[j]-particle[i][j]);

if(particle_v[i][j] > V_max)

{

particle_v[i][j] = V_max;

}

if(particle_v[i][j] < -V_max)

{

particle_v[i][j] = -V_max;

}

}

}

}

int main()

{

freopen("result.txt

文档

c语言 pso粒子群优化算法源代码

/**=====================================================================================**Filename:particle.c**Description:**Version:1.0*Created:2012年03月17日15时27分13秒*Revision:none*Compiler:gcc**Author:MaZheng(blog.csdn.net/mazheng19),mazheng1910
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top