Welcome to the jMetalCpp Web Site
jMetalCpp is ...
The jMetalCpp project has the goal of providing a C++ implementation of jMetal, a Java framework for multi-objective optimation with metaheuristics.
As with the original jMetal framework, our plan is to develop jMetalCpp according to our needs and then sharing the software to allow interested researchers to use it freely.
You can use it to ...
The object-oriented architecture of the framework and the included features allow you to: experiment with the provided classic and state-of-the-art techniques, develop your own algorithms, solve your optimization problems, integrate jMetal in other tools, etc.
Our motivation is ...
The motivation driving us is to provide the programs we use in our own works to the multi-objective optimization research community. We have made an effort in trying to produce an ease-to-use software, and we are continuously modifying and extending jMetal according to our needs and those suggested by people interested in using it.
Only multi-objective algorithms?
Developing single-objective versions of multi-objective algorithms is usually an easy task, so jMetal contains also single-objective genetic algorithms, evolution strategies, PSO, and DE.
If you are interested in contributing, use our GitHub repository.
Summary of features
- Encoding: Real, Binary.
- Multi-objective metaheuristics: NSGA-II, ssNSGA-II, GDE3, SMPSO, SMPSOhv, OMOPSO, PAES, SMS-EMOA, MOEA/D and MOCHC.
- Single-objective metaheuristics: generational GA (gGA), steady-state GA (ssGA), DE, PSO, PSO (Standard 2007), PSO (Standard 2011) and CMA-ES.
- Problems: Fonseca, Kursawe, Schaffer, Srinivas, Tanaka, Rastrigin, Rosenbrock, ZDT benchmark, DTLZ benchmark, LZ09 benchmark, CEC2005 benchmark.
- Quality indicators: Hypervolume, Spread, Epsilon, Generational distance, Inverted generational distance.
-
Experiment support: three kind of experimental studies can be conducted:
- Single-objective experiments.
- Multi-objective experiments where the Pareto front of the problems is known beforehand (as usually happens when solving benchmark problems).
- Multi-objective experiments where the Pareto front is not known. In these experiments, a reference front of a problem is obtained from all the executions of all the algorithms.
- Latex tables with the means/medians and standard deviations/IQRs.
- Latex tables with the results of applying the Wilcoxon rank-sum test (the R statistical package is required).
- Boxplots (the R statistical package is required).
References
-
Esteban López-Camacho, María Jesús García Godoy, Antonio J. Nebro and José F. Aldana-Montes
jMetalCpp: optimizing molecular docking problems with a C++ metaheuristic framework.
Bioinformatics (2014) 30 (3): 437-438 first published online November 22, 2013 doi:10.1093/bioinformatics/btt679