Code Monkey home page Code Monkey logo

nsga-iii-1's Introduction

NSGA-III

The NSGA-III algorithm proposed by Deb and Jain (2013)

Build Status

Warning

This project is based on https://github.com/yyxhdy/ManyEAs. Many thanks!

How to install

This project uses GitHub as a Maven Repository. Then you have just add the following section to your repositories tag in pom.xml

<repositories>
    <repository>
        <id>mvn-repo</id>
        <url>https://github.com/gres-ufpr/mvn-repo/raw/master/releases</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Then add a dependency into tag of your pom.xml

<dependency>
    <groupId>ufpr.gres</groupId>
    <artifactId>nsga-iii</artifactId>
    <version>1.0.0</version>
</dependency>

How to use

public class Explore {

    public static void main(String[] args) {

        Problem<DoubleSolution> problem = new ZDT3(30);
        
        double crossoverProbability = 0.9 ;
        double crossoverDistributionIndex = 30.0 ;
        CrossoverOperator<DoubleSolution> crossover = new SBXCrossover(crossoverProbability, crossoverDistributionIndex) ;

        double mutationProbability = 1.0 / problem.getNumberOfVariables() ;
        double mutationDistributionIndex = 20.0 ;
        MutationOperator<DoubleSolution> mutation = new PolynomialMutation(mutationProbability, mutationDistributionIndex) ;
        
        SelectionOperator<List<DoubleSolution>, DoubleSolution> selection = new BinaryTournamentSelection<DoubleSolution>();
        
        Algorithm<List<DoubleSolution>> algorithm = new NSGAIIIBuilder<>(problem)
                .setPopulationSize(128)
                .setMaxEvaluations(128 * 1000)
                .setSelectionOperator(selection)
                .setCrossoverOperator(crossover)
                .setMutationOperator(mutation)
                .setWeightsFilename("src/main/resources/weights/W2D_128.txt")
                .build() ;
        
        new AlgorithmRunner.Executor(algorithm).execute() ;
        
        List<DoubleSolution> population = algorithm.getResult() ;
    }
}

For Developers

For generating a distributable version, run:

mvn deploy

Original Paper

Deb, Kalyanmoy, and Himanshu Jain. "An evolutionary many-objective optimization algorithm using reference-point-based nondominated sorting approach, part I: solving problems with box constraints." IEEE Transactions on Evolutionary Computation 18, no. 4 (2013): 577-601.

Contributions

Feel free to fork this project, work on it and then make a pull request.

Questions or Suggestions

Feel free to create issues here as you need

nsga-iii-1's People

Contributors

thiagodnf avatar

Watchers

 avatar

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.