资源简介
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个文件信息
相关资源
- MATLAB绘制伯德图
- 椭圆拟合matlab
- knn算法matlab实现
- 基本蛙跳程序 matlab
- 用matlab编写的BP神经网络用于预测房价
- 针对三维点云的Mean Shift聚类算法(
- 复杂网络特性计算的matlab代码
- 基于MATLAB的灰色预测模型的实现
- A星算法寻路matlab程序代码
- 基于Matlab轮廓匹配的物体识别系统的
- DEA的Matlab程序,绝对可运行!!
- matlab kmeans聚类 代码和带图
- matlab将dat数据转换成jpg图像并保存
- matlab程序下的决策树与随机森林分类
- 遗传算法优化神经网络matlab源码
- 遗传算法解决背包问题 MATLAB可运行代
- 马尔科夫链蒙特卡洛MCMC仿真带MATLAB代
- SVM light 工具箱 包含和说明文件 包含
- 机器人手眼标定-Matlab程序高精度
- 常微分方程组的四阶RungeKutta龙格库塔
-
simuli
nk LLC模型 - MATLAB作图验证系统在单位阶跃与单位
- matlab开发-变桨距操纵器变速风轮机
- 批量点经纬度转换坐标
- PSO算法求解CVRP“车辆路径问题
- Matlab降维工具箱
- 解决 错误使用 mcc Test checkout of featu
- 组合风速.zip
- 平滑滤波Matlab实现
- AES加密算法的matlab
评论
共有 条评论