多目标粒子群算法源程序VC(Multi - target particle swarm algorithm VC).doc
文本预览下载声明
多目标粒子群算法源程序VC(Multi - target particle swarm algorithm VC)
下面是我的vc++ 6.0代码,改造了一下基本粒子群,求路径的. .
# include math.h
# include time.h
# include iostream
使用名称空间性病;
双c1 = 0.7;/ / o ? uoo×o
双c2 = 0.2;/ / o ? uoo×o
双w = 1.0;/ / 1 ? D ? e¨? ?
双Wmax = 1.0;/ /×?′o1 ? D ? e¨? ?
双Wmin = 0.6;/ /×? D ? 1 ? D ? e¨? ?
int Kmax = 50;/ /μu u′′?)等等
int const昏暗= 7;/ /£×o ? ?等等
int const PNum = 4;/ /£×o ? ?等等
int FB = 200;/ / T ? ?×u oe±e ? ? ?
int FC = 5;/ / T ? ?′? ? ? ? ? ?
int GBIndex = 0;/ /×? o ?一个£×o ?÷oy
类粒子;/ / ee ?÷£×o ? uμ吗?
空白初始();/ / 3 ? e ? ?ˉ? a1 ?±? ?
无效更新(int x,int v);//???x?
空虚get与众不同(int p1、int p2、int v);//????2?
int GetFit(粒子);/ / ? ? ? ?均等就业机会| ? e
空白CalculateFit();/ / ? ? ? ?均等就业机会| ? e
空白BirdsFly();/ /£×o·e ? e
空运行(int num);/ / ? ? DDoˉ)等等
双GetRandm();/ / ? ? ? ueyoˉ)等等
int[7][7]= { / / 3 ? e ? ?ˉ·?啊?
{ 0,1000,1000,1000,1000 },
{ 2 0,1000,1000,1000,1000 },
1000,3,0,1000,3,61000,
41000,1000,0,5,21000,
1000,1000,1000,5,0,1,2,
1000,1000,6,2,1,0,4,
{ 1000、1000、1000、1000、2、4,0 }
};
int B[7][7]= { / / 3 ? e ? ?ˉ? oe±
{ 0,1000,1000,1000,1000 },
{ 2 0,1000,1000,1000,1000 },
1000,3,0,1000,3,61000,
41000,1000,0,5,21000,
1000,1000,1000,5,0,1,2,
1000,1000,6,2,1,0,4,
{ 1000、1000、1000、1000、2、4,0 }
};
int C[7][7]= { / / 3 ? e ? ?ˉ′? ?
{ 1000,1000,1000,1000,1000 },
{ 1000 5,1000,1000,1000,1000 },
1,71000,1000,7,36,1000,
40,1000,2,1000,6,52,1000,
三千,一千,九千,十一,十二,
201000,6,6,81000,14,
{ 1000,1000,1000,1000,8日,24日1000 }
};
首先int[7]= { 0,1,2,3,4,5,6 };
最后int[7]= { 0,1,2,3,4,5,6 };
int hp1[7]= { 0,0,0,0,0,0,0 };
int hp2[7]= { 0,0,0,0,0,0,0 };
/ / ?¢£aa
类粒子
{
公众:
int X(暗);/ / ?¢一£μ?×?±eey×e
int xb(暗);/ / ?¢一£μ?×? o ? ? ? ? ?是×e
int V(暗);/ /£×o ? u ? eey×e
双适合;/ /¢eeo£? ? e
双FitBest;/ / ?¢£×? o ? ? ? ? ?均等就业机会? ? e
};
粒子Pt(PNum);/ /£×oey×e
int Inp[4][7]= {
{ 0 6 2、4、1、3、5 },
{ 0,1,2,4,3,5,6 },
{ 0、3、6、5、4、2、1 },
{ 0,3、4、6、5、2、1 }
};
双GetRandm()
{
返回(double)(rand()/(双)RAND_MAX);
}
/ / 3 ? e ? ?哦ˉ是吧? Y
无效的初始()
{
GBIndex = 0;/ /定位初始位置
for(int i = 0;我 PNum;我+ +)
{
Pt[我]。X[0]=输入[我][0];/ / 3
显示全部