Ant Algorithm Applied to the Quadratic Assignment Problem

Page 14

/* initial pheromone level (NumCities*NearestNeighTourLength)^-1 */ /* #define Tao0 : defined as (NumCities*SumNaiveDist)^-1 /* learning rate */ #define RHO 0.8 /* exploitation rate */ #define q0 0.5 /* number of iterations */ #define MAXITER 10 float Tao[NumCities][NumCities]; int Tour[NumAnts][NumCities+1]; int BestTour[NumCities+1]; int StartCity[NumAnts]; int VisitedCities[NumAnts][NumCities]; int AntInitInCity[NumCities]; float dist[NumCities][NumCities]; float SumLen[NumAnts]; float MinLenTour; float Tao0; int finished; int randcity; int i,j,k,t; int iter; /* predeclarations */ float Burma14TSPproblem(float dist[NumCities][NumCities]); float FindNewBestSolution(float MinLenTour, int Tour[NumAnts][NumCities+1], float SumLen[NumAnts], int BestTour[NumCities+1]); void PrintBestPath(int BestTour[NumCities+1]); int main() { /* Initialization phase */ /* Init random number generator */ srand(12345); /* Init. Min Tour length value */ MinLenTour = BIG; /* Init. TSP and initial pheromone value */ Tao0 = 1.0/(Burma14TSPproblem(dist)*NumCities); printf("Tao0 = %f Naivedist=%f\n",Tao0,Burma14TSPproblem(dist)); /* Init. pheromone level of each link */ for(i=0;i WeightedPheromone[antpos][ArgMaxWeightedPhero]) ArgMaxWeightedPhero = i; } else WeightedPheromone[antpos][i] = 0; /* exploration-exploitation */ prob_explore = rand()/RAND_MAX; if(prob_explore < q0)


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.