粒子群算法(C语言版本)

粒子群算法(C语言版本)

ID:40646220

大小:15.51 KB

页数:6页

时间:2019-08-05

粒子群算法(C语言版本)_第1页
粒子群算法(C语言版本)_第2页
粒子群算法(C语言版本)_第3页
粒子群算法(C语言版本)_第4页
粒子群算法(C语言版本)_第5页
资源描述:

《粒子群算法(C语言版本)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、粒子群算法//PSO.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"stdio.h"#include"stdlib.h"#include"time.h"#include"math.h"#definerdint(i)(rand()%(int)(i))/*随机数的定义*/#definerdft()(double)((double)rdint(16384)/(16383.0))#definernd(a,b)(

2、rdint((int)(b)-(int)(a)+1)+(int)(a))#definePOPSIZE20#defineDIMENSION12  /* 目标函数中所含变量x的个数 */#defineDIMENSION26  //约束条件的个数doubleW=1.0;doubleC1=1.8;doubleC2=1.8;doubleVMAX=3.0;doubleXMIN=2.0;doubleXMAX=4.0;doubleP[DIMENSION1];doublePBEST;doubleH,K;doubleg[DIMEN

3、SION2];//约束条件的值structindi{ doublenumber[DIMENSION1]; doublebest[DIMENSION1]; doublebestfitness; doublefitness; doublespeed[DIMENSION1];}individual[POPSIZE];voidinitiate(void);voidcalculation(intnumber);voidglobalbest(intnumber);voidlocalbest(intnumber);voidj

4、udge(intnum);voidjudge(intnum){ /*    6个约束条件    */ g[0]=4*individual[num].number[0]-individual[num].number[1];  g[1]=individual[num].number[1]-10*individual[num].number[0]; g[2]=-2*K*individual[num].number[1]+3*3.14*pow(individual[num].number[0],3); g[3]=-50

5、*K*individual[num].number[1]+75*3.14*pow(individual[num].number[0],3);    g[4]=-H+3.98*individual[num].number[1]; g[5]=3*pow(individual[num].number[1],3)-2000*pow(individual[num].number[0],4);}voidinitiate(){ inti,j; for(i=0;i

6、j=0;j

7、ft(); for(i=0;i

8、 inti; judge(number);//进行判断,如果不在可行域内就不对粒子的历史最优值进行更新 boolbTrue=g[0]<=0&&g[1]<=0&&g[2]<=0&&g[3]<=0&&g[4]<=0&&g[5]<=0; if(individual[number].bestfitness>individual[number].fitness&&bTrue) {  for(i=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。