Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
LibOPT is an optimization library developed in C language for the development of metaheuristic-based techniques. Currently, we have the following techniques implemented and tested:
- Particle Swarm Optimization 
- Particle Swarm Optimization with Adaptive Inertia Weight 
- Bat Algorithm 
- Flower Pollination Algorithm 
- Firefly Algorithm 
- Cuckoo Search 
- Genetic Programming 
- Black Hole Algorithm 
- Migrating Birds Optimization 
- Geometric Semantic Genetic Programming 
- Artificial Bee Colony 
- Water Cycle Algorithm 
- Harmony Search 
- Improved Harmony Search 
- Parameter-setting-free Harmony Search 
- Brain Storm Optimization 
- Lion Optimization Algorithm 
- Genetic Algorithm 
- Backtracking Search Optimization Algorithm 
- JADE: Adaptive Differential Evolution with Optional External Archive 
- Artificial Butterfly Optimization 
- Simulated Annealing 
- Quaternion Harmony Search 
If you have any question, please let us know. The white paper about LibOPT can be accessed here.
Just a quick reminder: LibOPT aims at minimizing functions. So, keep that in mind when designing your functions.
 J. Kennedy, R. C. Eberhart and Y. Shi. Swarm intelligence. Artificial Intelligence (2001).
 A. Nickabadi, M. M. Ebadzadeh and R. Safabakhsh. A novel particle swarm optimization algorithm with adaptive inertia weight. Applied Soft Computing, vol. 11, n. 4, pp. 3658-3670 (2011).
 X.-S. Yang and A. H. Gandomi. Bat algorithm: A novel approach for global engineering optimization. Engineering Computations vol. 5, n. 29, pp. 464-483 (2012).
 X.-S. Yang. Flower pollination algorithm for global optimization. Proceedings of the 11th International Conference on Unconventional Computation and Natural Computation, pp. 240-249 (2012).
 X.-S. Yang and X. He. Firefly algorithm: Recent advances and applications, International Journal of Swarm Intelligence, vol. 1, n. 1, pp. 36–50 (2013).
 X.-S. Yang and S. Deb. Cuckoo search via lévy flight. World Congress on Nature & Biologically Inspired Computing, pp. 210-214 (2009).
 J. Koza. Genetic programming: On the programming of computers by means of natural selection. MIT Press (1992).
 A. Hatamlou. Black hole: A new heuristic optimization approach for data clustering. Information Sciences, vol. 222, pp. 175-184 (2013).
 E. Duman, M. Uysal, and A. F. Alkaya. Migrating birds optimization: A new metaheuristic approach and its performance on quadratic assignment problem. Information Sciences, vol. 217, pp. 65-77 (2012).
 A. Moraglio, K. Krawiec and C. G. Johnson. Geometric semantic genetic programming. Lecture Notes in Computer Science, vol. 7491, pp. 21-31 (2012).
 D. Karaboga and B. Basturk. A powerful and efficient algorithm for numerical function optimization: Artificial bee colony (ABC) algorithm. Journal of Global Optimization, vol. 39, n. 3, pp. 459-471 (2007).
 H. Eskandar, et al. Water cycle algorithm – A novel metaheuristic optimization method for solving constrained engineering optimization problems. Computers & Structures, vol. 110, pp. 151-166 (2012).
 Z. W. Geem, J. H. Kim, and G. V. Loganathan. A new heuristic optimization algorithm: Harmony search. Simulation vol. 76, n. 2, pp. 60-68 (2001).
 M. Mahdavi, M. Fesanghary, and E. Damangir. An improved harmony search algorithm for solving optimization problems. Applied Mathematics and Computation, vol. 188, n. 2, pp. 1567-1579 (2007).
 Z. W. Geem and K.-B. Sim. Parameter-setting-free harmony search algorithm. Applied Mathematics and Computation, vol. 217, n. 8, pp 3881-3889 (2010).
 J. P. Papa, D. R. Pereira, A. J. Baldassin and X.-S. Yang. On the harmony search using quaternions. Proceedings of the 7th International IAPR TC3 Workshop on Artificial Neural Networks in Pattern Recognition, pp. 126-137 (2016).
 Y.H. Shi. An Optimization Algorithm Based on Brainstorming Process. International Journal of Swarm Intelligence Research (2011).
 M. Yazdani and F. Jolai. Lion optimization algorithm (LOA): a nature-inspired metaheuristic algorithm. Journal of Computational Design and Engineering, vol. 3, n. 1, pp 24-36 (2016).
 D. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning (1989).
 P. Civicioglu. Backtracking Search Optimization Algorithm for numerical optimization problems. Applied Mathematics and Computation, vol. 219, n. 15, pp 8121--8144 (2013).
 J. Zhang, A. C. Sanderson. JADE: adaptive differential evolution with optional external archive. IEEE Transactions on evolutionary computation, vol. 13, n. 5, pp 945--958 (2009).
 Qi, X. and Zhu, Y. and Zhang, H. A New Meta-Heuristic Butterfly-inspired Algorithm. Journal of Computational Science, vol. 23, n. 1, pp 226--239 (2017).
 S. Kirkpatrick; C. D. Gelatt; M. P. Vecchi. Optimization by Simulated Annealing. Science, New Series, Vol. 220, No. 4598. (May 13, 1983), pp. 671-680.