首页 粒子群算法代码

粒子群算法代码

举报
开通vip

粒子群算法代码粒子群算法C++代码一、问题重述某一灾区有N名受灾群众,现有一批救灾物资要发放给这些受灾者。物资共有M种,每种物资的数量有限;各受灾者的灾情不同,对每种物资的急需程度和需求量不同。你作为一名物资分配者,请制定分配原则并给出合理的分配方法。试给出一个符合题意的数值算例。二、模型假设1、对于每一种物资,它的数量一定,且在分配过程中是以份为单位的;2、灾民对获得一急需度可用某区间内的整型值表示;3、灾民对得到一份某一种物资的满意度等价于获得该份该种物资的急需度。4、灾民对某一物资的需求量用一整数来表示;5、对于每种物资的...

粒子群算法代码
粒子群算法C++代码一、问题重述某一灾区有N名受灾群众,现有一批救灾物资要发放给这些受灾者。物资共有M种,每种物资的数量有限;各受灾者的灾情不同,对每种物资的急需程度和需求量不同。你作为一名物资分配者,请制定分配原则并给出合理的分配方法。试给出一个符合题意的数值算例。二、模型假设1、对于每一种物资,它的数量一定,且在分配过程中是以份为单位的;2、灾民对获得一急需度可用某区间内的整型值表示;3、灾民对得到一份某一种物资的满意度等价于获得该份该种物资的急需度。4、灾民对某一物资的需求量用一整数来表示;5、对于每种物资的分配是相对独立的,即只要每种物资的分配达到最优,则总体便最优。三、符号定义 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 中使用的符号对应在程序中用的符号表示意义NDim待分配人数n[ij]X[ij]第i个灾民实际分得的第j种物资的量m[ij]Xup[ij]第i个灾民对j种物资的需求量X[ij]Value第i个灾民对j种物资的急需度fj(n[ij])GetFit[j]所有灾民对所获得的第j种物资的满意度函数f(n[ij])所有灾民对所获得的所有物资的满意度函数N[j]GdsCnt第j种物资的数量X表示第i个人得到n[ij]份第j种物资的满意度M物资种数TPNum在粒子群算法中粒子的个数Pbestpso算法中,粒子的个体极值Gbestpso算法中,粒子群的全局极值X[ij][t]第i个人分到第t份第j种物资的的满意度#include"stdafx.h#include#include#include#includeusingnamespacestd;intc1=2;//加速因子intc2=2;//加速因子doublew=1;//惯性权重doubleWmax=1;//最大惯性权重doubleWmin=0.6;〃最小惯性权重intKmax=110;//迭代次数//物资总数intGdsCnt;//粒子维数intconstDim=10;intconstPNum=50;〃粒子个数intGBIndex=0;//最优粒子索引doublea=0.6;〃适应度调整因子doubleb=0.5;〃适应度调整因子intXup[Dim];〃粒子位置上界数组intXdown[Dim]={0};//粒子位置下界数组intValue[Dim];〃初始急需度数组intVmax[Dim];//最大速度数组classPARTICLE;//申明粒子节点voidCheck(PARTICLE&,int);〃约束函数voidInput(ifstream&);//输入变量voidInitial();//初始化相关变量doubleGetFit(PARTICLE&);〃计算适应度voidCalculateFit();//计算适应度voidBirdsFly();//粒子飞翔voidRun(ofstream&,int=2000);//运行函数〃微粒类classPARTICLEpublic:intX[Dim];//微粒的坐标数组intXBest[Dim];//微粒的最好位置数组intV[Dim];//粒子速度数组doubleFit;〃微粒适合度doubleFitBest;//微粒最好位置适合度};PARTICLEParr[PNum];//粒子数组intmain()//主函数//关联输入文件inf>>GdsCnt;〃输入物资总数ofstreamoutf("out.txt");ifstreaminf("data.txt");Input(inf);Initial();Run(outf,100);system("pause");return0;voidCheck(PARTICLE&p,intcount)//参数:p粒子对象,count物资数量srand((unsigned)time(NULL));intsum=0;for(inti=0;iXup[i])p.X[i]=Xup[i];elseif(p.X[i]Vmax[i])p.V[i]=Vmax[i];elseif(p.V[i]<0)p.V[i]=0;sum+=p.X[i];while(sum>count)p.X[rand()%Dim]--;sum=0;for(inti=0;iXup[i])p.X[i]=Xup[i];elseif(p.X[i]Vmax[i])p.V[i]=Vmax[i];elseif(p.V[i]<0)p.V[i]=0;sum+=p.X[i];voidInput(ifstream&inf)//以inf为对象输入数据for(inti=0;i>Xup[i];for(inti=0;i>Value[i];〃初始化数据GBIndex=0;srand((unsigned)time(NULL));//初始化随机函数发生器for(inti=0;iParr[GBIndex].Fit)GBIndex=i;
本文档为【粒子群算法代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_598372
暂无简介~
格式:doc
大小:16KB
软件:Word
页数:9
分类:建筑/施工
上传时间:2018-09-18
浏览量:2