⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fastpga_main.java

📁 这是多目标进化算法包
💻 JAVA
字号:
/** * Main.java * * @author Juanjo Durillo * @version 1.0 */package jmetal.metaheuristics.fastPGA;import jmetal.base.*;import jmetal.base.operator.comparator.FPGAFitnessComparator;import jmetal.base.operator.crossover.*   ;import jmetal.base.operator.mutation.*    ; import jmetal.base.operator.selection.*   ;import jmetal.base.variable.*             ;import jmetal.metaheuristics.fastPGA.FastPGA;import jmetal.problems.*                  ;import jmetal.problems.ZDT.*              ;import jmetal.problems.WFG.*              ;import jmetal.problems.DTLZ.*             ;import jmetal.util.JMException;public class FastPGA_main {  /**   * @param args Command line arguments. The first (optional) argument specifies    *             the problem to solve.   * @throws JMException    */  public static void main(String [] args) throws JMException {    Problem   problem   ;         // The problem to solve    Algorithm algorithm ;         // The algorithm to use    Operator  crossover ;         // Crossover operator    Operator  mutation  ;         // Mutation operator    Operator  selection ;         // Selection operator    if (args.length == 1) {      Object [] params = {"Real"};      problem = (new ProblemFactory()).getProblem(args[0],params);    } // if    else { // Default problem      problem = new Kursawe(3, "Real");       //problem = new Kursawe(3,"BinaryReal");      //problem = new Water("Real");      //problem = new ZDT4("Real");      //problem = new WFG1("Real");      //problem = new DTLZ1("Real");      //problem = new OKA2("Real") ;    } // else    algorithm = new FastPGA(problem);    algorithm.setInputParameter("maxPopSize",100);    algorithm.setInputParameter("initialPopulationSize",100);    algorithm.setInputParameter("maxEvaluations",25000);    algorithm.setInputParameter("a",20.0);    algorithm.setInputParameter("b",1.0);    algorithm.setInputParameter("c",20.0);    algorithm.setInputParameter("d",0.0);    // Parameter "termination"    // If the preferred stopping criterium is PPR based, termination must     // be set to 0; otherwise, if the algorithm is intended to iterate until     // a give number of evaluations is carried out, termination must be set to     // that number    algorithm.setInputParameter("termination",1);    // Mutation and Crossover for Real codification     crossover = CrossoverFactory.getCrossoverOperator("SBXCrossover");                       crossover.setParameter("probability",1.0);                       crossover.setParameter("distributionIndex",20.0);    mutation = MutationFactory.getMutationOperator("PolynomialMutation");                        mutation.setParameter("probability",1.0/problem.getNumberOfVariables());    mutation.setParameter("distributionIndex",20.0);    // Mutation and Crossover for Binary codification    /*    crossover = CrossoverFactory.getCrossoverOperator("SinglePointCrossover");                       crossover.setParameter("probability",1.0);      mutation = MutationFactory.getMutationOperator("BitFlipMutation");                        mutation.setParameter("probability",1.0/149.0);         */    selection = new BinaryTournament(new FPGAFitnessComparator());      algorithm.addOperator("crossover",crossover);    algorithm.addOperator("mutation",mutation);    algorithm.addOperator("selection",selection);    long initTime = System.currentTimeMillis();    SolutionSet population = algorithm.execute();    long estimatedTime = System.currentTimeMillis() - initTime;    System.out.println("Total execution time: "+estimatedTime);    System.out.println("Total number of evaluations: " +         algorithm.getOutputParameter("evaluations"));    System.out.println("Objectives values have been writen to file FUN");    population.printObjectivesToFile("FUN");    System.out.println("Variables values have been writen to file VAR");    population.printVariablesToFile("VAR");            }//main}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -