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

📄 igpprogram.java

📁 JGAP是一种遗传算法和遗传规划的组成部分提供了一个Java框架。它提供了基本的遗传机制
💻 JAVA
字号:
/*
 * This file is part of JGAP.
 *
 * JGAP offers a dual license model containing the LGPL as well as the MPL.
 *
 * For licensing information please see the file license.txt included with JGAP
 * or have a look at the top of class org.jgap.Chromosome which representatively
 * includes the JGAP license policy applicable for any file delivered with JGAP.
 */
package org.jgap.gp;

import java.io.*;
import org.jgap.gp.impl.*;
import org.jgap.util.*;

/**
 * Interface for GP programs.
 *
 * @author Klaus Meffert
 * @since 3.0
 */
public interface IGPProgram
    extends Serializable, Comparable, ICloneable {

  /** String containing the CVS revision. Read out via reflection!*/
  final static String CVS_REVISION = "$Revision: 1.14 $";

  /**
   * Executes the given chromosome as an integer function.
   *
   * @param a_chromosomeNum the index of the chromosome to execute
   * @param a_args the arguments to use
   * @return the integer return value
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  int execute_int(int a_chromosomeNum, Object[] a_args);

  /**
   * Executes the given chromosome as a float function.
   *
   * @param a_chromosomeNum the index of the chromosome to execute
   * @param a_args the arguments to use
   * @return the floar return value
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  float execute_float(int a_chromosomeNum, Object[] a_args);

  /**
   * Executes the given chromosome as a double function.
   *
   * @param a_chromosomeNum the index of the chromosome to execute
   * @param a_args the arguments to use
   * @return the double return value
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  double execute_double(int a_chromosomeNum, Object[] a_args);

  /**
   * Executes the given chromosome as a boolean function.
   *
   * @param a_chromosomeNum the index of the chromosome to execute
   * @param a_args the arguments to use
   * @return the boolean return value
   *
   * @author Klaus Meffert
   * @since 3.2
   */
  boolean execute_boolean(int a_chromosomeNum, Object[] a_args);

  /**
   * Executes the given chromosome as an object function.
   *
   * @param a_chromosomeNum the index of the chromosome to execute
   * @param a_args the arguments to use
   * @return the object return value
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  Object execute_object(int a_chromosomeNum, Object[] a_args);

  /**
   * Executes the given chromosome as an object function.
   *
   * @param a_chromosomeNum the index of the chromosome to execute
   * @param a_args the arguments to use
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  void execute_void(int a_chromosomeNum, Object[] a_args);

  /**
   * @return the number of chromosomes in the program
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  int size();

  /**
   * @param a_index the chromosome to get
   * @return the ProgramChromosome with the given index
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  ProgramChromosome getChromosome(int a_index);

  /**
   * @return fitness value of this program
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  double getFitnessValue();

  /**
   * Builds a string that represents the normalized output of the GP program.
   *
   * @param a_startNode the node to start with
   * @return textual output in normalized notion
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  String toStringNorm(int a_startNode);

  /**
   * Sets the given chromosome at the given index.
   *
   * @param a_index the index to the the chromosome at
   * @param a_chrom the chromosome to set
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  void setChromosome(int a_index, ProgramChromosome a_chrom);

  /**
   * Searches for a chromosome that has the given class and returns its index.
   *
   * @param a_chromosomeNum the index of the chromosome to start the search with
   * @param a_class the class to find
   * @return the index of the first chromosome found that is of a_class, or -1
   *
   * @author Klaus Meffert
   * @since 3.0
   */
  int getCommandOfClass(int a_chromosomeNum, Class a_class);

  void setFitnessValue(double a_fitness);

  void setTypes(Class[] a_types);

  Class[] getTypes();

  void setArgTypes(Class[][] a_argTypes);

  Class[][] getArgTypes();

  void setNodeSets(CommandGene[][] a_nodeSets);

  CommandGene[][] getNodeSets();

  void setMaxDepths(int[] a_maxDepths);

  int[] getMaxDepths();

  void setMinDepths(int[] a_minDepths);

  int[] getMinDepths();

  void setMaxNodes(int a_maxNodes);

  int getMaxNodes();

  GPConfiguration getGPConfiguration();

  /**
   * Sets the application data object.
   *
   * @param a_data the object to set
   *
   * @author Klaus Meffert
   * @since 3.01
   */
  void setApplicationData(Object a_data);

  /**
   * @return the application data object set
   *
   * @author Klaus Meffert
   * @since 3.01
   */
  Object getApplicationData();

  /**
   * @return the persistent representation of the population, including all
   * GP programs
   *
   * @author Klaus Meffert
   * @since 3.3
   */
  String getPersistentRepresentation();
}

⌨️ 快捷键说明

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