亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? liziqun.txt

?? 粒子群算法C編寫的程序
?? TXT
字號:
#include <stdlib.h>
#include "..\\Utils.h"
#include "..\\TSPDataSet.h"
#include "PSO.h"
static void PSO_MendCycle( TParticle *Particle )
{
    int tLooper1, tLooper2;
int HasFound;
tLooper1 = 1;
while( tLooper1 < Particle->Dimension )
{
  //查找是否有重復節點
  HasFound = 0;
  for( tLooper2=0; tLooper2<tLooper1; tLooper2++ )
  {
   if( Particle->X[ tLooper2 ] == Particle->X[ tLooper1 ] )
   {
    HasFound = 1;
    break;
   }
  }
  if( HasFound == 1 )
  {
   Particle->X[ tLooper1 ] = ( Particle->X[ tLooper1 ] + 1 ) % Particle->Dimension;
  }
  else
  {
   tLooper1++;
  }
}
}
//適合度計算方法,必須定義
static double PSO_GetFit( CTSPDataSet *dat, TParticle *Particle ) 
{
int tResult = 0;
tResult = dat->GetCycleLength( Particle->Dimension, Particle->X );
return (double)tResult;
}
//計算群體各個微粒適合度
static void PSO_CalFit( CTSPDataSet *dat, TPSO *PSO )
{
if(!PSO)
{
  return;
}
for(int i=0; i<PSO->PNumber; i++)
{
  PSO->Particle[i].Fitness = PSO_GetFit( dat, &(PSO->Particle[i]));
}
}
//初始化數據
static void PSO_InitializeData( CTSPDataSet *dat, TPSO *PSO, int PNumber, int PDimension )
{
if(!PSO) 
{
  return;
}
static int kk=(unsigned)time(NULL);
srand((unsigned)time(NULL)+kk++);
PSO->GBestIndex = 0;
for(int i=0; i<PNumber; i++)
{
  for(int j=0; j<PSO->Particle[i].Dimension; j++)
  {
   PSO->Particle[i].X[j] = (int)(rand()/(double)RAND_MAX*(PSO->Xup[j]-PSO->Xdown[j])+PSO->Xdown[j]);//初始化坐標
   PSO->Particle[i].Velocity[j] = rand()/(double)RAND_MAX*PSO->Vmax[j]-PSO->Vmax[j]/2;//初始化速度
  }
  PSO_MendCycle(&(PSO->Particle[i]));
  for(j=0; j<PSO->Particle[i].Dimension; j++)
  {
   PSO->Particle[i].XBest[j] = PSO->Particle[i].X[j];
  }
  PSO->Particle[i].Fitness = PSO_GetFit( dat, &(PSO->Particle[i])); //計算該微粒適合度
  PSO->Particle[i].FitnessBest = PSO->Particle[i].Fitness; //設最優適合度初值
  if(PSO->Particle[i].Fitness<PSO->Particle[PSO->GBestIndex].Fitness) 
  {
   PSO->GBestIndex = i;//查找群體最優微粒
  }
}
}
//初始化數據結構
static PSO_InitializeDataStruce( TPSO *PSO, int PNumber, int PDimension )
{
int tLooper;
PSO->GBestIndex = -1;
PSO->PNumber = PNumber;
PSO->PDimension = PDimension;
PSO->Xup = CC_SAFE_MALLOC( PDimension, int );
PSO->Xdown = CC_SAFE_MALLOC( PDimension, int );
for( tLooper=0; tLooper<PDimension; tLooper++ )
{
     PSO->Xup[ tLooper ] = PDimension - 1;
  PSO->Xdown[ tLooper ] = 0;
}
PSO->Vmax = CC_SAFE_MALLOC( PDimension, double );
for( tLooper=0; tLooper<PDimension; tLooper++ )
{
     PSO->Vmax[ tLooper ] = ( PSO->Xup[ tLooper ] - PSO->Xdown[ tLooper ] ) * VelocityCoefficent;
}
PSO->Particle = CC_SAFE_MALLOC( PNumber, TParticle );
for( tLooper=0; tLooper<PNumber; tLooper++ )
{
     PSO->Particle[ tLooper ].Dimension = PDimension;
  PSO->Particle[ tLooper ].X = CC_SAFE_MALLOC( PDimension, int );
  PSO->Particle[ tLooper ].Velocity = CC_SAFE_MALLOC( PDimension, double );
  PSO->Particle[ tLooper ].XBest = CC_SAFE_MALLOC( PDimension, int );
  PSO->Particle[ tLooper ].Fitness = -1;
  PSO->Particle[ tLooper ].FitnessBest = -1;
}
}
static void PSO_ReleaseDataStructure( TPSO *PSO )
{
int tLooper;
for( tLooper=0; tLooper<PSO->PDimension; tLooper++ )
{
  CC_FREE( PSO->Particle[ tLooper ].XBest, int );
  CC_FREE( PSO->Particle[ tLooper ].Velocity, double );
  CC_FREE( PSO->Particle[ tLooper ].X, int );
}
CC_FREE( PSO->Particle, TParticle );
CC_FREE( PSO->Vmax, double );
CC_FREE( PSO->Xdown, int );
CC_FREE( PSO->Xup, int );
}
//微粒飛翔,產生新一代微粒
static void PSO_ParticleFly( CTSPDataSet *dat, TPSO *PSO )
{
static double FitBak[100];
if(!PSO)
{
  return;
}
static int tt=(unsigned)time(NULL);
srand((unsigned)time(NULL)+tt++);
//整個群體飛向新的位置
for(int i=0; i<PSO->PNumber; i++)
{
  //處理速度
  for(int j=0; j<PSO->Particle[i].Dimension; j++)
  {
   double tTemp;
   tTemp = (PSO->Particle[i]).Velocity[j];
   //tTemp = WEIGHT * tTemp;
   tTemp += rand()/(double)RAND_MAX*C1*(PSO->Particle[i].XBest[j]-PSO->Particle[i].X[j]);
   tTemp += rand()/(double)RAND_MAX*C2*(PSO->Particle[PSO->GBestIndex].XBest[j]-PSO->Particle[i].X[j]);
   (PSO->Particle[i]).Velocity[j] = tTemp;
  }
  //檢查速度最大值
  for(j=0; j<PSO->Particle[i].Dimension; j++) 
  {
   if(PSO->Particle[i].Velocity[j]>PSO->Vmax[j]) 
   {
    PSO->Particle[i].Velocity[j] = PSO->Vmax[j];
   }
   if(PSO->Particle[i].Velocity[j]<-PSO->Vmax[j]) 
   {
    PSO->Particle[i].Velocity[j] = -PSO->Vmax[j];
   }
  }
  //粒子飛翔
  for(j=0; j<PSO->Particle[i].Dimension; j++)
  {
   //修改坐標
   PSO->Particle[i].X[j] = (int)(PSO->Particle[i].Velocity[j] + PSO->Particle[i].X[j]) % PSO->Xup[j]; 
   //保護
   if(PSO->Particle[i].X[j]>PSO->Xup[j]) 
   {
    PSO->Particle[i].X[j]=PSO->Xup[j];
   }
   if(PSO->Particle[i].X[j]<PSO->Xdown[j]) 
   {
    PSO->Particle[i].X[j]=PSO->Xdown[j];
   }
  }
  //對粒子飛翔后產生的新的個體進行修復
  PSO_MendCycle( &(PSO->Particle[i]) );
}
//計算各微粒適合度
PSO_CalFit( dat, PSO );
for(i=0; i<PSO->PNumber; i++) 
{
  FitBak[i] = PSO->Particle[i].Fitness;
}
//設置新的個體最好位置
for(i=0; i<PSO->PNumber; i++)
{
  if(PSO->Particle[i].Fitness<=PSO->Particle[i].FitnessBest)
  {
   PSO->Particle[i].FitnessBest = PSO->Particle[i].Fitness;
   for(int j=0; j<PSO->Particle[i].Dimension; j++)
   {
    PSO->Particle[i].XBest[j] = PSO->Particle[i].X[j];
   }
  }
}

//設置新的最優個體
PSO->GBestIndex = 0;
for(i=0; i<PSO->PNumber; i++)
{
  if(PSO->Particle[i].FitnessBest<=PSO->Particle[PSO->GBestIndex].FitnessBest && i!=PSO->GBestIndex) 
  {
   PSO->GBestIndex = i;
  }
}
}
//返回最佳個體
static void PSO_GetBest( TPSO *PSO, int *elist )
{
for(int i=0; i<PSO->Particle[PSO->GBestIndex].Dimension; i++)
{
  elist[i*2] = PSO->Particle[PSO->GBestIndex].XBest[i];
  elist[i*2+1] = PSO->Particle[PSO->GBestIndex].XBest[(i+1)%PSO->Particle[PSO->GBestIndex].Dimension];
}
}
//主程序
void PSO_Main( CTSPDataSet *dat, int PSONumber, int ecount, int *elist )
{
TPSO *PSO;
int counter=0;
PSO = CC_SAFE_MALLOC( 1, TPSO );
PSO_InitializeDataStruce( PSO, 20, ecount );
    PSO_InitializeData( dat, PSO, 20, ecount );
do
{
  PSO_ParticleFly( dat, PSO );
  counter++;
} while ( counter<PSONumber );
PSO_GetBest( PSO, elist );
PSO_ReleaseDataStructure( PSO );
CC_FREE( PSO, TPSO );
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产拍揄自揄精品视频麻豆| 欧亚洲嫩模精品一区三区| 一区二区三区美女| 国产精品成人免费在线| 国产亚洲精品资源在线26u| 日韩三级在线观看| 337p亚洲精品色噜噜狠狠| 欧美日韩精品综合在线| 欧美日韩国产在线播放网站| 欧美麻豆精品久久久久久| 欧美日韩国产一区| 精品免费日韩av| 久久九九全国免费| 中文字幕在线不卡一区| 亚洲精品久久7777| 亚洲第一主播视频| 免费成人av在线播放| 国产一区二区三区久久久| 国产福利一区二区| 91久久免费观看| 8x8x8国产精品| 久久久久久一二三区| 亚洲天天做日日做天天谢日日欢 | 亚洲一区二区3| 夜夜揉揉日日人人青青一国产精品| 一区二区三区高清| 秋霞午夜av一区二区三区| 国产精品亚洲成人| 91免费在线看| 日韩一级黄色片| 国产欧美一区二区三区在线看蜜臀| 欧美经典一区二区| 亚洲一区二区黄色| 国产乱人伦精品一区二区在线观看| av成人免费在线| 欧美久久婷婷综合色| 国产欧美一区二区精品秋霞影院| 亚洲欧美日韩国产另类专区| 久久精品国产一区二区| 99精品久久久久久| 日韩一级二级三级| 亚洲六月丁香色婷婷综合久久| 青青草视频一区| 91美女片黄在线| 久久久激情视频| 午夜精品久久久| 国产美女精品一区二区三区| 欧美三级资源在线| 国产精品网曝门| 免费在线观看不卡| 欧美中文字幕一区二区三区亚洲| 精品国产乱码久久久久久浪潮| 亚洲人成影院在线观看| 国产精品一区二区在线观看网站| 欧美性大战久久| 亚洲欧洲av在线| 激情成人综合网| 欧美日韩日日骚| 亚洲天堂成人网| 顶级嫩模精品视频在线看| 日韩一区二区三| 夜夜爽夜夜爽精品视频| 91在线一区二区| 国产精品丝袜一区| 国产一区二区中文字幕| 91精品欧美一区二区三区综合在 | 欧美日本乱大交xxxxx| 国产精品久久久久毛片软件| 久久99精品国产麻豆婷婷| 欧美日韩国产在线观看| 亚洲日穴在线视频| 成人性视频网站| 久久精品一区蜜桃臀影院| 免费成人在线影院| 欧美一区二区性放荡片| 日欧美一区二区| 欧美三级三级三级| 亚洲一区二区三区美女| 91福利精品第一导航| 亚洲欧美日韩在线| 色婷婷国产精品久久包臀| 综合电影一区二区三区 | 久久久久久久网| 国内精品免费**视频| 久久综合色婷婷| 国产麻豆午夜三级精品| 中文字幕一区二区三中文字幕| 国产精品69毛片高清亚洲| 欧美激情一区在线| 成人免费av网站| 中文字幕在线免费不卡| 在线看国产日韩| 日韩不卡手机在线v区| 欧美成人一区二区三区在线观看| 久久精品久久精品| 久久久久国色av免费看影院| 成人aaaa免费全部观看| 亚洲一区影音先锋| 欧美一区二区精品| 国产精品123区| 亚洲乱码国产乱码精品精小说| 欧美三级日本三级少妇99| 麻豆国产一区二区| 国产精品美女久久久久久久| 在线观看成人小视频| 麻豆精品一区二区综合av| 国产亚洲欧美中文| 欧美性xxxxx极品少妇| 久久精品国产久精国产爱| 国产精品青草综合久久久久99| 欧美色综合影院| 国产成人免费视频网站| 亚洲国产日韩综合久久精品| 91精品国产免费| av亚洲精华国产精华精华| 青娱乐精品在线视频| 中文字幕日本不卡| 欧美一卡二卡在线观看| eeuss鲁片一区二区三区在线看| 天天免费综合色| 国产精品电影一区二区| 欧美一级一级性生活免费录像| 99久久亚洲一区二区三区青草| 日韩国产精品91| 国产精品成人免费精品自在线观看| 制服丝袜亚洲精品中文字幕| 99久久国产综合色|国产精品| 奇米色一区二区三区四区| 亚洲精品国产a久久久久久 | 国产精品乱码人人做人人爱| 欧美一区二区在线免费播放| 91免费国产视频网站| 精品一区二区三区香蕉蜜桃 | 国产中文字幕精品| 亚洲午夜免费电影| 中文字幕精品综合| 精品欧美乱码久久久久久| 欧美日韩一二区| 一本色道久久加勒比精品| 成人一区在线观看| 国产九色sp调教91| 麻豆极品一区二区三区| 亚洲成人黄色小说| 亚洲在线观看免费| 亚洲免费资源在线播放| 国产午夜亚洲精品不卡| 久久美女艺术照精彩视频福利播放 | 天天影视涩香欲综合网| 亚洲蜜臀av乱码久久精品| 国产精品乱人伦| 中文字幕av免费专区久久| 国产欧美1区2区3区| 国产午夜精品一区二区三区嫩草| 精品久久久久久最新网址| 欧美一级精品在线| 欧美变态口味重另类| 精品久久久三级丝袜| 精品国产乱码久久久久久闺蜜 | 国产精品日日摸夜夜摸av| 久久午夜电影网| 国产精品私人影院| 日韩伦理免费电影| 亚洲日本va午夜在线影院| 亚洲另类色综合网站| 亚洲午夜激情网站| 日韩二区三区在线观看| 美女mm1313爽爽久久久蜜臀| 国产一区二区成人久久免费影院| 国产精品亚洲第一| 亚洲精品乱码久久久久| 亚洲成人手机在线| 日韩和欧美一区二区| 精品在线一区二区三区| 国产精品911| 99精品久久99久久久久| 欧美精选午夜久久久乱码6080| 日韩一区二区视频在线观看| 久久亚洲综合色一区二区三区| 国产精品二三区| 亚洲成人综合视频| 国产在线国偷精品产拍免费yy| 成人国产精品免费网站| 精品视频在线视频| 久久综合99re88久久爱| 18成人在线观看| 青椒成人免费视频| www..com久久爱| 欧美精品tushy高清| 国产欧美综合在线观看第十页| 一区二区三区在线观看欧美| 美女视频免费一区| av激情综合网| 欧美不卡一区二区三区四区| 亚洲精品高清在线| 黄页视频在线91| 色屁屁一区二区| 久久午夜色播影院免费高清| 香蕉成人啪国产精品视频综合网| 国产成人综合精品三级| 欧美另类一区二区三区|