当前位置: 首页>>代码示例>>Java>>正文


Java Solution.getObjective方法代码示例

本文整理汇总了Java中org.uma.jmetal.solution.Solution.getObjective方法的典型用法代码示例。如果您正苦于以下问题:Java Solution.getObjective方法的具体用法?Java Solution.getObjective怎么用?Java Solution.getObjective使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.uma.jmetal.solution.Solution的用法示例。


在下文中一共展示了Solution.getObjective方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: updateLimits

import org.uma.jmetal.solution.Solution; //导入方法依赖的package包/类
/**
 * Updates the grid limits considering the solutions contained in a
 * <code>solutionList</code>.
 *
 * @param solutionList The <code>solutionList</code> considered.
 */
private void updateLimits(List<S> solutionList) {
  for (int obj = 0; obj < numberOfObjectives; obj++) {
    gridLowerLimits[obj] = Double.MAX_VALUE;
    gridUpperLimits[obj] = Double.MIN_VALUE;
  }

  //Find the max and min limits of objetives into the population
  for (int ind = 0; ind < solutionList.size(); ind++) {
    Solution<?> tmpIndividual = solutionList.get(ind);
    for (int obj = 0; obj < numberOfObjectives; obj++) {
      if (tmpIndividual.getObjective(obj) < gridLowerLimits[obj]) {
        gridLowerLimits[obj] = tmpIndividual.getObjective(obj);
      }
      if (tmpIndividual.getObjective(obj) > gridUpperLimits[obj]) {
        gridUpperLimits[obj] = tmpIndividual.getObjective(obj);
      }
    }
  }
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:26,代码来源:AdaptiveGrid.java

示例2: update

import org.uma.jmetal.solution.Solution; //导入方法依赖的package包/类
@Override
public void update(Solution<?> solution) {
  if (solution == null) {
    throw new JMetalException("The solution is null") ;
  } else if (solution.getNumberOfObjectives() != this.getNumberOfObjectives()) {
    throw new JMetalException("The number of objectives of the solution ("
        + solution.getNumberOfObjectives()
        + ") "
        + "is different to the size of the reference point("
        + this.getNumberOfObjectives()
        + ")"
    );
  }

  for (int i = 0; i < this.getNumberOfObjectives(); i++) {
    if (this.getObjective(i) > solution.getObjective(i)) {
      this.setObjective(i, solution.getObjective(i));
    }
  }
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:21,代码来源:IdealPoint.java

示例3: update

import org.uma.jmetal.solution.Solution; //导入方法依赖的package包/类
@Override
public void update(Solution<?> solution) {
  if (solution == null) {
    throw new JMetalException("The solution is null") ;
  } else if (solution.getNumberOfObjectives() != this.getNumberOfObjectives()) {
    throw new JMetalException("The number of objectives of the solution ("
        + solution.getNumberOfObjectives()
        + ") "
        + "is different to the size of the reference point("
        + this.getNumberOfObjectives()
        + ")"
    );
  }

  for (int i = 0; i < this.getNumberOfObjectives(); i++) {
    if (this.getObjective(i) < solution.getObjective(i)) {
      this.setObjective(i, solution.getObjective(i));
    }
  }
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:21,代码来源:NadirPoint.java

示例4: calculateHypervolumeIndicator

import org.uma.jmetal.solution.Solution; //导入方法依赖的package包/类
/**
 * Calculates the hypervolume of that portion of the objective space that
 * is dominated by individual a but not by individual b
 */
double calculateHypervolumeIndicator(Solution<?> solutionA, Solution<?> solutionB, int d,
    double maximumValues[], double minimumValues[]) {
  double a, b, r, max;
  double volume ;
  double rho = 2.0;

  r = rho * (maximumValues[d - 1] - minimumValues[d - 1]);
  max = minimumValues[d - 1] + r;

  a = solutionA.getObjective(d - 1);
  if (solutionB == null) {
    b = max;
  } else {
    b = solutionB.getObjective(d - 1);
  }

  if (d == 1) {
    if (a < b) {
      volume = (b - a) / r;
    } else {
      volume = 0;
    }
  } else {
    if (a < b) {
      volume =
          calculateHypervolumeIndicator(solutionA, null, d - 1, maximumValues, minimumValues) * (b
              - a) / r;
      volume +=
          calculateHypervolumeIndicator(solutionA, solutionB, d - 1, maximumValues, minimumValues)
              * (max - b) / r;
    } else {
      volume =
          calculateHypervolumeIndicator(solutionA, solutionB, d - 1, maximumValues, minimumValues)
              * (max - a) / r;
    }
  }

  return (volume);
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:44,代码来源:IBEA.java

示例5: PointSolution

import org.uma.jmetal.solution.Solution; //导入方法依赖的package包/类
/**
 * Constructor
 *
 * @param solution
 */
public PointSolution(Solution<?> solution) {
  this.numberOfObjectives = solution.getNumberOfObjectives() ;
  objectives = new double[numberOfObjectives] ;

  for (int i = 0; i < numberOfObjectives; i++) {
    this.objectives[i] = solution.getObjective(i) ;
  }
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:14,代码来源:PointSolution.java

示例6: ArrayPoint

import org.uma.jmetal.solution.Solution; //导入方法依赖的package包/类
/**
 * Constructor from a solution
 *
 * @param solution
 */
public ArrayPoint(Solution<?> solution) {
  if (solution == null) {
    throw new JMetalException("The solution is null") ;
  }

  int dimensions = solution.getNumberOfObjectives();
  point = new double[dimensions];

  for (int i = 0; i < dimensions; i++) {
    point[i] = solution.getObjective(i);
  }
}
 
开发者ID:jMetal,项目名称:jMetal,代码行数:18,代码来源:ArrayPoint.java


注:本文中的org.uma.jmetal.solution.Solution.getObjective方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。