Skip to content

lluisalemanypuig/metaheuristics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

metaheuristics library

This repository offers a small library with a collection of heuristics and metaheuristics algorithms:

  • Local Search
  • GRASP: Greedy Randomsied Adaptative Search Procedure
  • Genetic algorithms:
    • RKGA: Random-Key Genetic Algorithm
    • BRKGA: Biased Random-Key Genetic Algorithm

These procedures work with an interface named problem. The implementation of a few methods of this class allows a flexible use of these metaheuristics.

Using the library

In this repository one will find examples on how to use this library.

First, one has to download the library. Assume that it is downloaded into

/path/to/lib/metaheurisitcs

Documentation

For further details on how the library is implemented, the meaning of every parameter, what methods should be implemented of the problem interface for every algorithm, generate the html documentation with Doxygen issuing the following command:

cd /path/to/lib/metaheurisitcs/
doxygen doxyconfig/doxyfile

Dependencies

Tools

Since the Makefiles are already provided, a 'make' tool is needed to compile the library and the examples.

Finally, a compiler that supports C++17 is mandatory.

Compilation

In order to compile the library one needs a compiler that supports the C++17 standard, in particular the flag -std=c++17, and the make tool:

cd /path/to/lib/metaheurisitcs/build
make -f Makefile release

These commands will create a metaheuristics-release directroy in the same directory as the project, that is, in:

/path/to/lib/metaheurisitcs/metaheuristics-release

After compiling, in this directory one will find a file called libmetaheuristics.a intended for static linkage with any software that needs to use this library. Include the appropriate flags in your compilation rules to allow this linkage. Also, the user will need to include the -I flag with the path to the root of the project, e.g.:

-I/path/to/lib/metaheurisitcs

to make sure that all included files will be found by the compiler.

About

Collection of heuristic and metaheuristic algorithms

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published