#include"iostream"
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
#include"math.h"
#include<fstream>
#define pi 3.1415
using namespace std;
int NUM=20;//粒子數
double z1,z2,z,a1,a2,dd;
struct particle//定義一個粒子
{
double x[2][10];//當前位置
double bestx[2][10];//歷史最優位置
double v[2][10];
double f;//當前適應度
double bestf;//歷史最優適應度
}swarm[20];//定義粒子群
main()
{
ofstream outfile("GGINGGIN.txt");
srand(time(NULL));
int DIM=2;//維數
double c1=2.0;//參數
double c2=2.0;//參數
double gbestx[2][10];//全局最優位置
double gbestf;//全局最優適應度
for(int i=0; i<2; i++)//初始化全局最優位置
for(int m=0; m<10; m++)
gbestx[i][m]=rand()%2;
gbestf=0;
for(int i=0; i<NUM; i++) //初始化粒子群
{
particle* p1=&swarm[i];
for(int j=0; j<DIM; j++)
for(int m=0;m<10;m++)
{
p1->x[j][m]=rand()%2;
p1->bestx[j][m]=rand()%2;
p1->v[j][m]=(rand()%2000)/1000.0;
}
a1=0.0;a2=0.0;
for(int m=0;m<10;m++)
{
a1=p1->x[0][m]*pow(2,m)+a1;
a2=p1->x[1][m]*pow(2,m)+a2;
}
z1=(15.1/1023.0)*(a1)-3.0;
z2=(1.7/1023.0)*(a2)+4.1;
z=21.5+z1*sin(4.0*pi*z1)+z2*sin(20.0*pi*z2);
p1->f=z;
p1->bestf=0;
}
for(int k=0; k<2000; k++){
for(int i=0; i<NUM; i++)
{
particle* p1=&swarm[i];
for(int j=0; j<2; j++)//進化方程
for(int m=0; m<10; m++)
{
dd=(rand()%1000)/1000.0;
p1->v[j][m]= p1->v[j][m]+c1*dd*(p1->bestx[j][m]-p1->x[j][m])+c2*((rand()%1000)/1000.0)*(gbestx[j][m]-(p1->x[j][m]));
if(p1->v[j][m]>=1)
p1->v[j][m]=(rand()%1000)/1000.0;
p1->x[j][m]=(1/(1+exp(-p1->v[j][m])))<dd?1:0;
//cout<<(1/(1+exp(-p1->v[j][m])))<<endl;
}
a1=0.0;a2=0.0;
for(int m=0;m<10;m++)
{
a1=p1->x[0][m]*pow(2,m)+a1;
a2=p1->x[1][m]*pow(2,m)+a2;
}
z1=(15.1/1023.0)*(a1)-3.0;
z2=(1.7/1023.0)*(a2)+4.1;
z=21.5+z1*sin(4.0*pi*z1)+z2*sin(20.0*pi*z2);
p1->f=z;
if((p1->f)>(p1->bestf)) //改變歷史最優適應度
{
for(int j=0;j<2;j++)
for(int m=0;m<10;m++)
p1->bestx[j][m]=p1->x[j][m];
p1->bestf=p1->f;
}
if(p1->f>gbestf) //改變全局最優適應度
{
for(int j=0;j<2;j++)
for(int m=0;m<10;m++)
gbestx[j][m]=p1->x[j][m];
gbestf=p1->f;
}
}
outfile <<gbestf;
outfile << endl;
}
cout<<gbestf;//顯示全局最優適應度
system("pause");
}
PSO.rar_pso swarm
版权申诉
71 浏览量
2022-09-20
22:00:19
上传
评论
收藏 984B RAR 举报
我虽横行却不霸道
- 粉丝: 75
- 资源: 1万+
最新资源
- 教学内容及补充-cha7.rar
- 设计1.ms14
- vscode-1.64.1.tar源码文件
- vscode-1.64.0.tar源码文件
- vscode-1.52.0.tar源码文件
- Music-Player +PlayerActivity+ rockplayer+ SeeJoPlayer 播放器JAVA源码
- vscode-1.46.0.tar源码文件
- 最近很火植物大战僵尸杂交版2.08苹果+安卓+PC+防闪退工具V2+修改工具+高清工具+通关存档整合包更新
- 超级好用的截图工具PixPin,可录制Gif图
- Screenshot_2024-05-21-17-06-42-64_2332cb9b27b851b548ba47a91682926c.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈