Skip to content
This repository has been archived by the owner on Nov 11, 2019. It is now read-only.
/ aco Public archive

A C++ Ant Colony Optimization (ACO) algorithm for the traveling salesman problem.

License

Notifications You must be signed in to change notification settings

diogo-fernan/aco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

aco

aco is an ISO C++ Ant Colony Optimization (ACO) algorithm (a metaheuristic optimization technique inspired on ant behavior) for the traveling salesman problem. It releases a number of ants incrementally whilst updating pheromone concentration and calculating the best graph route. In the end, the best route is printed to the command line.

aco was developed a few years back for academic and research purposes based on "Computational Intelligence: An Introduction" (first edition from 2002) by Andries Engelbrecht. This algorithm is available for anyone interested in ACO methods, so feel free to explore it and tweak parameters.

Usage

aco was developed with standard libraries and an additional Randoms.cpp file that implements generation methods of pseudo-random numbers. Apart from that, the program can be easily compiled and run with the following command at a command line located in src:

  • g++ -Wall *.cpp -o aco; ./aco.

The main method is included in the main.cpp file which contains a few parameters of the ACO algorithm that can be changed as one sees fit. That file also defines programmatically the connections of the cities that ultimately make up the city graph. The ACO algorithm methods are implemented in the ACO class located in the ACO.h and ACO.cpp files.

Author

@dfernan__