資源簡介
Particle Swarm Optimization(PSO) Algorithm Matlab Codes for Vehicle Routing Problem With Time Window(VRPTW)
代碼片段和文件信息
#include?“StdAfx.h“
#include?“.\parswarm.h“
#include?
#include?
#include?
#include?“particle.h“
/*CParSwarm::CParSwarm(void)
{
}
CParSwarm::~CParSwarm(void)
{
}*/
CParSwarm::CParSwarm()
{
Particle?=?0;
PNum?=?0;
GBestIndex?=?0;
PosUp?=?0;
PosDown?=?0;
W?=?1;
C1?=?2;
C2?=?2;
Com?=?0;
}
CParSwarm::CParSwarm(int?dim?int?num)
{
Particle?=?new?CParticle[num];
for(int?i=0;?i Particle[i].SetDim(dim);
PNum?=?num;
GBestIndex?=?0;
PosUp?=?new?double[dim];
PosDown?=?new?double[dim];
Vmax?=?new?double[dim];
W?=?1;
C1?=?2;
C2?=?2;
Com?=?0;
}
//析構函數?Distructor?
CParSwarm::~CParSwarm()
{
if(Particle)?delete?[]Particle;
if(PosUp)?delete?[]PosUp;
if(PosDown)?delete?[]PosDown;
if(Vmax)?delete?[]Vmax;
}
//設置坐標上界??Set?coordinates?of?the?upper?bound
void?CParSwarm::SetPosUp(double?*up)
{
if(!Particle)?
return;
for(int?i=0;?i PosUp[i]?=?up[i];
}
//設置坐標下界
void?CParSwarm::SetPosDown(double?*d)
{
if(!Particle)?
return;
for(int?i=0;?i PosDown[i]?=?d[i];
}
//設置最大速度?Coordinates?of?the?lower?bound?set
void?CParSwarm::SetVmax(double?*max)
{
if(!Particle)?
return;
for(int?i=0;?i Vmax[i]?=?max[i];
}
void?CParSwarm::SetVmax(double?p)
{
if(!Particle)?
return;
for(int?i=0;?i Vmax[i]?=?(PosUp[i]-PosDown[i])*p;
}
//初始化群體?Initialize?groups
void?CParSwarm::Initialize()
{
if(!Particle)?
return;
static?int?kk=(unsigned)time(NULL);
srand(?(unsigned)time(NULL)+kk++?);
GBestIndex?=?0;
for(int?i=0;?i {
for(int?j=0;?j {
Particle[i].Pos[j]?=?rand()/(double)RAND_MAX*(PosUp[j]-PosDown[j])+PosDown[j]; //初始化坐標?Initialize?the?coordinates
Particle[i].PosBest[j]?=?Particle[i].Pos[j];
Particle[i].Vel[j]?=?rand()/(double)RAND_MAX*Vmax[j]-Vmax[j]/2; //初始化速度?Initialization?speed
}
Particle[i].Fitness?=?GetFit(Particle[i]); //計算該微粒適合度?Calculate?the?particle?fitness
Particle[i].FitBest?=?Particle[i].Fitness; //設最優適合度初值?Let?the?best?initial?fit
if(Particle[i].Fitness>Particle[GBestIndex].Fitness)?
GBestIndex?=?i; //查找群體最優微粒?Find?the?best?groups?of?particles
}
}
//計算群體各個微粒適合度?Group?of?fit?of?each?particle?calculated
void?CParSwarm::CalFit()
{
if(!Particle)?
return;
for(int?i=0;?i Particle[i].Fitness?=?GetFit(Particle[i]);
}
//微粒飛翔產生新一代微粒?Flying?particles?resulting?in?a?new?generation?of?particle
void?CParSwarm::ParticleFly()
{
static?double?FitBak[100];
if(!Particle)
return;
static?int?tt=(unsigned)time(NULL);
srand(?(unsigned)time(NULL)+tt++?);
//整個群體飛向新的位置?The?entire?group?flying?to?the?new?location
for(int?i=0;?i {
for(int?j=0;?j Particle[i].Vel[j]?=?W*Particle[i].Vel[j]+ //?(FitBak[i]-Particle[i].Fit)+//修改速度?Modify?the?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????????1??2006-11-20?00:00??PSO\PSO\ClassDiagram1.cd
?????文件??????????1??2006-11-20?00:00??PSO\PSO\ClassDiagram11.cd
????.......?????????1??2006-11-20?00:11??PSO\PSO\ClassDiagram21.cd
?????文件???????6612??2012-03-19?16:22??PSO\PSO\Debug\BuildLog.htm
?????文件?????????66??2012-03-19?16:22??PSO\PSO\Debug\mt.dep
?????文件??????23146??2012-03-19?15:58??PSO\PSO\Debug\ParSwarm.obj
?????文件???????5635??2012-03-19?15:58??PSO\PSO\Debug\Particle.obj
?????文件?????611328??2012-03-19?16:22??PSO\PSO\Debug\PSO.exe
?????文件????????406??2011-10-29?00:00??PSO\PSO\Debug\PSO.exe.em
?????文件????????472??2011-10-29?00:00??PSO\PSO\Debug\PSO.exe.em
?????文件????????381??2012-03-19?16:22??PSO\PSO\Debug\PSO.exe.intermediate.manifest
?????文件????1445836??2012-03-19?16:22??PSO\PSO\Debug\PSO.ilk
?????文件?????239829??2012-03-19?16:21??PSO\PSO\Debug\PSO.obj
?????文件???10158080??2011-10-29?00:00??PSO\PSO\Debug\PSO.pch
?????文件????3222528??2012-03-19?16:22??PSO\PSO\Debug\PSO.pdb
?????文件??????45509??2011-10-29?00:00??PSO\PSO\Debug\stdafx.obj
?????文件?????273408??2012-03-19?16:21??PSO\PSO\Debug\vc90.idb
?????文件?????282624??2012-03-19?16:21??PSO\PSO\Debug\vc90.pdb
?????文件???????6585??2011-12-17?00:00??PSO\PSO\ParSwarm.cpp
?????文件???????3173??2011-12-17?00:00??PSO\PSO\ParSwarm.h
?????文件????????634??2011-12-17?00:00??PSO\PSO\Particle.cpp
?????文件????????826??2011-12-23?00:00??PSO\PSO\Particle.h
?????文件???????1806??2012-03-19?16:21??PSO\PSO\PSO.cpp
?????文件???????4923??2011-10-29?00:00??PSO\PSO\PSO.vcproj
?????文件???????4037??2008-07-25?00:00??PSO\PSO\PSO.vcproj.7.10.old
?????文件???????1423??2011-12-23?00:00??PSO\PSO\PSO.vcproj.MRAUF-DESKTOP.MRauf.user
?????文件???????1413??2012-03-19?21:38??PSO\PSO\PSO.vcproj.MRauf-PC.MRauf.user
?????文件???????1413??2011-11-17?00:00??PSO\PSO\PSO.vcproj.RAUF-PAK.Rauf.user
?????文件???????1413??2012-06-14?17:38??PSO\PSO\PSO.vcproj.Saqib-PC.Saqib.user
?????文件????????967??2008-07-25?00:00??PSO\PSO\ReadMe.txt
............此處省略19個文件信息
評論
共有 條評論