91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

里面有幾個文檔是介紹相關(guān)背景,threadpool.h和threadpool.c文件包含了簡單線程池的庫函數(shù),ant_pthread.c是并行蟻群算法的源代碼

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?“threadpool.h“

#define?Num_city?30?//number?of?city
#define?Num_ant?30?//number?of?ant
#define?It_max?5000?//maxium?number?of?iteration

double?graph[Num_city][Num_city];//matirx?saving?distance?between?cities
double?phe[Num_city][Num_city];//matrix?saving?pheromones?of?every?path
double?add[Num_city][Num_city];
double?yita[Num_city][Num_city];
double?alpha?=?2?beta?=?4?rou?=?0.1?alpha1?=?0.1?qzero?=?0.01;
double?allDistance[Num_city][Num_city];
double?Lnn;

pthread_mutex_t?phe_lock?=?PTHREAD_MUTEX_INITIALIZER;

double?C[Num_city][2]?=?{
{2?99}{4?50}{7?64}{13?40}{18?54}{18?40}{22?60}{24?42}{25?62}{25?38}{37?84}{41?94}{41?26}{44?35}{45?21}{54?67}{54?62}{58?35}{58?69}{62?32}{64?60}{68?58}{71?44}{71?71}{74?78}{82?7}{83?46}{83?69}{87?76}{91?38}
};

typedef?struct?antnode{
int?startCity;
int?visited[Num_city];?//0?for?visited?city?and?1?for?unvisited?city
int?antPath[Num_city][2];
}Ant;

double?calculateDistance(int?i?int?j){
????return?sqrt(pow((C[i][0]?-?C[j][0])2.0)?+?pow((C[i][1]?-?C[j][1])2.0));
}

void?calculateAllDistance(){
for(int?i?=?0;?i? for(int?j?=0;?j? if(i?!=?j){
allDistance[i][j]?=?calculateDistance(i?j);
allDistance[j][i]?=?allDistance[i][j];
}
}
}
}

double?calculateSumOfDistance(int*?tour){
double?sum?=?0;
for(int?i?=?0;?i? int?row?=?*(tour?+?2?*?i);
int?col?=?*(tour?+?2?*?i?+1);
sum?+=?allDistance[row][col];
}
return?sum;
}

void?InitParameter(double?value){
for(int?i?=?0;?i? for(int?j?=?0;?j? phe[i][j]?=?value;
phe[j][i]?=?value;
if(i?!=?j){
yita[i][j]?=?1.0?/?allDistance[i][j];
yita[j][i]?=?yita[i][j];
}
}
}
}

int?ChooseNextNode(int?currentNode?int?visitedNode[]){
int?nextNode?=?-1;
double?shortDistance?=?0.0;
for(int?i?=?0;?i? if(1?==?visitedNode[i]){
if(shortDistance?==?0.0){
shortDistance?=?allDistance[currentNode][i];
nextNode?=?i;
}
if(shortDistance? nextNode?=?i;
shortDistance?=?allDistance[currentNode][i];
}
}
}
return?nextNode;
}


double?CalAdjacentDistance(int?node){
double?sum?=?0.0;
int?visitedNode[Num_city];
int?currentNode?=?node;
int?nextNode;
for(int?j?=?0;?j? visitedNode[j]?=?1;
do{
nextNode?=?ChooseNextNode(currentNode?visitedNode);
if(nextNode?>=?0){
sum?+=?allDistance[currentNode][nextNode];
currentNode?=?nextNode;
visitedNode[currentNode]?=?0;
}
}while(nextNode?>=?0);
sum?+=?allDistance[currentNode][node];
return?sum;
}

double?Transition(int?i?int?j){
if(i?!=?j){
pthread_mutex_lock(&phe_lock);
double?temp?=?pow(phe[i][j]?alpha)?*?pow(yita[i][j]?beta);
pthread_mutex_unlock(&phe_lock);
return?temp;
}else{
return?0.0;
}
}


void?UpdateLocalPathRule(int?i?int?j);

void*?search(void*?arg){
int

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-06-25?21:44??蟻群算法的簡單并行\(zhòng)
?????文件????????7056??2016-06-25?21:42??蟻群算法的簡單并行\(zhòng)ant_pthread.c
?????文件????????6161??2016-06-25?21:41??蟻群算法的簡單并行\(zhòng)threadpool.c
?????文件?????????788??2016-06-25?21:41??蟻群算法的簡單并行\(zhòng)threadpool.h
?????文件??????412689??2016-06-25?14:48??蟻群算法的簡單并行\(zhòng)一種基于蟻群算法的TSP問題分段求解算法.pdf
?????文件??????271563??2016-06-22?11:04??蟻群算法的簡單并行\(zhòng)一種蟻群算法的并行實(shí)現(xiàn).pdf
?????文件??????447917??2016-06-21?15:25??蟻群算法的簡單并行\(zhòng)蟻群算法及其應(yīng)用.docx
?????文件??????695186??2016-06-21?15:23??蟻群算法的簡單并行\(zhòng)蟻群算法基本知識.pdf
?????文件?????1851197??2016-06-22?11:21??蟻群算法的簡單并行\(zhòng)蟻群算法并行化研究.pdf

評論

共有 條評論