Giter Club home page Giter Club logo

jmetalsp'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

  • [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.

jmetalsp's People

Contributors

ajnebro avatar cbarba avatar dependabot[bot] avatar joscorbe 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jmetalsp's Issues

Don't get TSP example why there are update to cost/distance?

I tried to write a problem myself by referring to TSP as it is easier to understand, but don't get what this function is for.

To me distance/cost is fixed to TSP problem, only variables for permutation to change as solution to evaluate the by 2 object, this update function is called for what reason and when?

jmetalsp-problem\src\main\java\org\uma\jmetalsp\problem\tsp\DynamicMultiobjectiveTSP.java

@OverRide
public void update(Observable<ObservedValue> observable, ObservedValue data) {
if (data!=null && data.getValue().getMatrixIdentifier() == "COST") {
updateCostValue(data.getValue().getX(),data.getValue().getY(),data.getValue().getValue());
} else if(data!=null && data.getValue().getMatrixIdentifier() == "VALUE"){
updateDistanceValue(data.getValue().getX(),data.getValue().getY(),data.getValue().getValue());
}
}

Possible to have more than one streaming datasource?

Dear jMetalSP commiters,

as optimization with large dataset usually takes long time, your streaming idea to add new data is brilliant to me. but my problem to resolve involves 2 kinds of data which is difficult to put into one class. as titles, any way to have more than one streaming datasource?

DataConsumer no genera ficheros de frente de pareto

Buenas, necesito almacenar los frente de pareto de mi problema. A modo de guía he usado la clase DynamicTSPApplication para implementar la misma funcionalidad para mi problema pero en lugar de generar los ficheros solo genera el directorio donde se deberían de almacenar.
captura de pantalla 2018-05-30 a las 16 05 25
Me gustaría saber que está sucediendo para poder arreglarlo dado que a la hora de ejecutar el programa no lanza ningún fallo.
Gracias de antemano.

How to use jMetalSP to solve a nurse shift scheduling problem?

Dear jMetalSP commiters,

i am trying to solve a problem very much similar to a problem described here and provided or-tools solution.
https://developers.google.com/optimization/scheduling/employee_scheduling

but bool variables of my own problem is huge and can't be solved by ortools. And I found jMetalSP that claims to use spark, so i wanna give a try on jMetalSP. But there are only examples for ZDT, FDA, TSP, and even TSP is closest to my problem, still no enough clues from TSP examples for me to make my own Problem like DynamicMultiobjectiveTSP.

can you pls take a look at the google example and tell how to implement it in jMetalSP?

btw, i read the introduction of jMetal(https://jmetal.github.io/jMetal/), it seems that only algorithms for multiple objects can be in parallel, so single object in parallel is not possible and N/A for spark in jMetalSP? If single object can speedup by spark, how to achieve single objective optimization in jMetalSP, by only set one objective is enough or not?

Don't get TSP example "numberOfViolatedConstraints.setAttribute(solution,nonConnectedLinks-numberOfCities+9)"

I tried to write a problem myself by referring to TSP as it is easier to understand, but don't get this line.

To me nonConnectedLinks is just the number of violations to constraint(non connected city are set next to each other), why add "-numberOfCities+9"?

jmetalsp-problem\src\main\java\org\uma\jmetalsp\problem\tsp\DynamicMultiobjectiveTSP.java

numberOfViolatedConstraints.setAttribute(solution,nonConnectedLinks-numberOfCities+9);

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.