Giter VIP home page Giter VIP logo

jmetalcpp's Introduction

jMetal project Web site

Build Status Test Status Integration Test Status Documentation Status

jMetal is a Java-based framework for multi-objective optimization with metaheuristics. The last stable version is 6.1. The most recent documentation is hosted in https://jmetal.readthedocs.io.

The current development version (6.2-SNAPSHOT) is a Maven project structured in the following sub-projects:

Sub-project Contents
jmetal-core Core classes
jmetal-solution Solution encodings
jmetal-algorithm Algorithm implementations
jmetal-problem Benchmark problems
jmetal-lab Experimentation and visualization
jmetal-parallel Parallel extensions
jmetal-auto Auto-design and configuration
jmetal-component Component-based algorithms

Comments and suggestions are welcome.

Changelog

  • [06/27/2024] The jMetal project adopts Java 19.
  • [11/30/2023] The Zapotecas-Coello-Aguirre-benchmark (ZCAT) (https://doi.org/10.1016/j.swevo.2023.101350) is included in jMetal.
  • [09/25/2023] The jMetal project adopts Java 17.
  • [09/25/2023] Added a variant of NSGA-II using differential evolution.
  • [07/19/2023] jMetal 6.1 is released.
  • [07/04/2023]. Added the RWA benchmark, described in "Engineering applications of multi-objective evolutionary algorithms: A test suite of box-constrained real-world problems". DOI: https://doi.org/10.1016/j.engappai.2023.106192
  • [12/13/2022] jMetal 6.0 is released.
  • [9/12/2022] The master branch has been renamed main.
  • [7/5/2022] The jMetal project adopts Java 14.
  • [5/23/2022] Algorithm AGE-MOEA-II. Contribution of Annibale Panichella (@apanichella).
  • [5/9/2022] Algorithm AGE-MOEA. Contribution of Annibale Panichella (@apanichella).
  • [3/28/2022] The CF benchmark of constrained multi-objective problems, defined in Constrained Multiobjective Optimization: Test Problem Construction and Performance Evaluations, has been included.
  • [3/28/2022] The constraint handling code has been refactorized and the documentation has been updated.
  • [9/6/2021] Release 5.11
  • [9/6/2021] The jMetal project adopts Java 13.
  • [7/6/2021] The LSMOP benchmark is available.
  • [2/19/2021] The Solution interface has been refactorized.
  • [2/19/2021] New implementation of quality indicators to remove the dependence of jMetal classes. Now, all of them accept as a parameter a matrix containing objective values.
  • [1/21/2021] Added the MicroFAME multi-objective genetic algorith, described in: Alejandro Santiago, Bernabé Dorronsoro, Héctor Fraire, Patricia Ruíz: Micro-Genetic algorithm with fuzzy selection of operators for multi-Objective optimization: microFAME. Swarm and Evolutionary Computation, V.61, March 2021. DOI. Contributed by Alejandro Santiago.

jmetalcpp's People

Contributors

adajani avatar ajnebro avatar cristianzambrano avatar e-alharbi avatar estebanpua avatar jfrchicanog avatar juanjdurillo avatar sola-aina avatar yebisu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jmetalcpp's Issues

Support new natural inspired algorithm - Grey Wolf Optimizer (GWO)

Title:
Support new natural inspired algorithm - Grey Wolf Optimizer (GWO).

Objective:
To Support GWO algorithm in jMetalCPP Core.

Motivation:
Based on NFL theorem (no free lunch theorem). There is no meta-heuristic best suited for solving all optimization problems. So, NFL makes this field of study highly active. Hence motivate me to add GWO to the core algorithms in jMetalCPP framework.

Support new natural inspired algorithm - Whale Optimization Algorithm (WOA)

Title:
Support new natural inspired algorithm - Whale Optimization Algorithm (WOA)

Objective:
To Support WOA algorithm in jMetalCPP Core.

Motivation:
Whale Optimization Algorithm (WOA) is a novel nature-inspired meta-heuristic optimization algorithm, which mimics the social behavior of humpback whales. The algorithm is inspired by the bubble-net hunting strategy. WOA results are very competitive compared to the state-of-art meta-heuristic algorithms as well as conventional methods.

Source:
The source codes of the WOA algorithm are publicly available at http://www.alimirjalili.com/WOA.html

Segmentation Issues!

Hi, I am trying to test out the implemented experiments StandardStudyExecutionSO; It seems to have some segmentation faults while running the threads. The stackdump looks something like this.
Exception: STATUS_ACCESS_VIOLATION at rip=0010041C188 rax=00000008000C33E0 rbx=00000008000C3AA0 rcx=000000310000002F rdx=000000000000000A rsi=000000000000000A rdi=0000000800070AC0 r8 =00000008000C3A90 r9 =00000008000C3AB0 r10=00000000FFE00000 r11=000000010040E8D8 r12=00000008000C3AA0 r13=00000008000C3300 r14=00000008000B11D0 r15=00000008000C3330 rbp=0000000000000000 rsp=00000000FFDFC650 program=C:\cygwin64\home\Exp\jMetalCpp-master\bin\experiments\main\StandardStudyExecutionSO.exe, pid 2708, thread StandardStudyEx cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args 00000000000 0010041C188 (001800D7985, 008000C3370, 0018013BCFB, 00000000000) 00000000000 0010040E8E7 (00000000064, 008000C3300, 008000B11D0, 008000C3330) 00000000000 0010040E911 (008000C3030, 000FFDFD680, 00180111062, 0000000000A) 00000000000 00100409A4B (00000000000, 00000000000, 00000000000, 00000000000) 00000000000 001004079D4 (00000000000, 00000000000, 00000000000, 00000000000) 00000000000 00100401339 (00000000000, 00000000000, 000002ACC90, 000002ACC90) 00000000000 003F567B011 (00000000000, 00000000000, 00000000000, 00000000000) 00000000000 00180169D3F (00000270000, 00000000000, 00000000000, 00000000000) 00000000000 001800DBA5A (00000270000, 00000000000, 00000000000, 00000000000) End of stack trace
Do you have any idea of the possible memory dependency for experimenting withing VMWare windows.

Support new natural inspired algorithm - Moth-Flame Optimization Algorithm (MFO)

Title:
Support new natural inspired algorithm - Moth-Flame Optimization Algorithm (MFO)

Objective:
To Support MFO algorithm in jMetalCPP Core.

Motivation:
Moth-Flame Optimization (MFO) is a novel nature-inspired optimization paradigm. The main inspiration of this optimizer is the navigation method of moths in nature called transverse orientation. Moths fly in night by maintaining a fixed angle with respect to the moon, a very effective mechanism for travelling in a straight line for long distances.

Source:
https://www.sciencedirect.com/science/article/abs/pii/S0950705115002580

What are these "problems" to be selected and how to....

Hello. I wish to try the Moth Flame algorithm, however I have no clue of what are these "problems" that I have to select. I thought the only thing that could be called a "problem" is the fitness function.

EDITED:

So I need someone explain what these problems means and which fits my needs.
What I want to do: Select or implement and then select a fitness function (I want to try all or most from the original paper). Be able to select the parameters (n° iterations, initial limit values for the moths, dimension and n° moths). I think I already located n° iterations and n° moths (I assume it is "swarmSize") on "MFO_main.cpp". I think I also found the initial limit values (-5.12 on "Sphere.cpp"). I still need to know where to find the dim, and more importantly, where the fitness functions are. Then I will try to implement a modified version of the algorithm, called ameliorated MFO algorithm. So I need to know WHERE to edit the original files to add extra fitness functions, change parameters and modify the algorithm to support this new version. For doing all of that, I also need to know how to use it, and hence, what these problems are.

Thanks for the support.

Mistakes in memory management

There are several mistakes in memory management when utilizing pointer. This could lead to breakdown when a larger number of iterations or solving many instances.

  1. Mistake when utilizing Solution**;

    Solution** parents = new Solution * [number_of_parents];
    …….
    delete parents;

    The memory utilized is not released.
    The correct way:
    “for (int k = 0; k < number_of_parents; k++) {
    delete parents[k];
    }
    delete parents;

  2. Mistake when utilizing vector<Solution*> solutions_;

    vector<Solution*> solutions_
    …….
    solutions_.clear();

    The memory utilized is not released.
    The correct way:

    for (int i = 0; i < solutions_.size(); i++) {
    delete solutions_[i];
    }
    solutions_.clear();

    [1] Zixiang Li, Wuhan University of Science and Technology, https://www.researchgate.net/profile/Zixiang-Li-2, [email protected];

Library <wchar.h> in MacOS 10.14

I downloaded the current version from github but I can not compile it.
I received the following error:
`Compiling src/encodings/solutionType/IntSolutionType.cpp
g++ -O3 -std=c++11 -I src/core/. -I src/encodings/. -I src/encodings/solutionType/. -I src/encodings/variable/. -I src/experiments/. -I src/experiments/settings/. -I src/experiments/util/. -I src/experiments/main/. -I src/main/. -I src/metaheuristics/. -I src/metaheuristics/moead/. -I src/metaheuristics/smsemoa/. -I src/metaheuristics/nsgaII/. -I src/metaheuristics/singleObjective/. -I src/metaheuristics/singleObjective/geneticAlgorithm/. -I src/metaheuristics/singleObjective/particleSwarmOptimization/. -I src/metaheuristics/singleObjective/cmaes/. -I src/metaheuristics/singleObjective/cmaes/utils/. -I src/metaheuristics/singleObjective/differentialEvolution/. -I src/metaheuristics/gde3/. -I src/metaheuristics/paes/. -I src/metaheuristics/mochc/. -I src/metaheuristics/smpso/. -I src/metaheuristics/omopso/. -I src/operators/. -I src/operators/mutation/. -I src/operators/crossover/. -I src/operators/selection/. -I src/problems/. -I src/problems/LZ09/. -I src/problems/singleObjective/. -I src/problems/singleObjective/cec2005Competition/. -I src/problems/ZDT/. -I src/problems/DTLZ/. -I src/qualityIndicator/. -I src/qualityIndicator/util/. -I src/qualityIndicator/fastHypervolume/. -I src/qualityIndicator/main/. -I src/util/. -I src/util/archive/. -I src/util/wrapper/. -I src/util/comparators/. -c -o build/encodings/solutionType/IntSolutionType.o src/encodings/solutionType/IntSolutionType.cpp

In file included from /usr/local/include/c++/8.1.0/bits/postypes.h:40,
from /usr/local/include/c++/8.1.0/bits/char_traits.h:40,
from /usr/local/include/c++/8.1.0/string:40,
from src/core/./Problem.h:26,
from src/core/./SolutionType.h:26,
from src/encodings/solutionType/./IntSolutionType.h:11,
from src/encodings/solutionType/IntSolutionType.cpp:9:

/usr/local/include/c++/8.1.0/cwchar:44:10: error fatal: wchar.h: No such file or directory
#include <wchar.h>
^~~~~~~~~
compilación terminada.
make: *** [build/encodings/solutionType/IntSolutionType.o] Error 1
`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.