类 PowellOptimizer


public class PowellOptimizer extends MultivariateOptimizer
Powell算法。此代码是从Python版本的该算法(在SciPy模块optimize.py v0.5中实现)翻译和调整而来。
默认的停止准则基于两次迭代之间的函数值差异。但可以定义一个自定义的收敛检查器,可能会提前终止算法。
线搜索由LineSearch类执行。
不支持约束:如果传递了边界,则调用optimize将抛出MathRuntimeException。为了施加简单的约束,目标函数必须包装在适配器中,如MultivariateFunctionMappingAdapterMultivariateFunctionPenaltyAdapter
  • 构造器详细资料

    • PowellOptimizer

      public PowellOptimizer(double rel, double abs, ConvergenceChecker<PointValuePair> checker)
      此构造函数允许指定用户定义的收敛检查器,以及控制默认收敛检查过程的参数。
      内部线搜索容差设置为多元优化器中相应值的平方根。
      参数:
      rel - 相对阈值。
      abs - 绝对阈值。
      checker - 收敛检查器。
      抛出:
      MathIllegalArgumentException - 如果abs <= 0
      MathIllegalArgumentException - 如果rel < 2 * Math.ulp(1d)
    • PowellOptimizer

      public PowellOptimizer(double rel, double abs, double lineRel, double lineAbs, ConvergenceChecker<PointValuePair> checker)
      此构造函数允许指定用户定义的收敛检查器,以及控制默认收敛检查过程和线搜索容差的参数。
      参数:
      rel - 此优化器的相对阈值。
      abs - 此优化器的绝对阈值。
      lineRel - 内部线搜索优化器的相对阈值。
      lineAbs - 内部线搜索优化器的绝对阈值。
      checker - 收敛检查器。
      抛出:
      MathIllegalArgumentException - 如果abs <= 0
      MathIllegalArgumentException - 如果rel < 2 * Math.ulp(1d)
    • PowellOptimizer

      public PowellOptimizer(double rel, double abs)
      参数控制默认的收敛检查过程。
      内部线搜索容差设置为多元优化器中相应值的平方根。
      参数:
      rel - 相对阈值。
      abs - 绝对阈值。
      抛出:
      MathIllegalArgumentException - 如果abs <= 0
      MathIllegalArgumentException - 如果rel < 2 * Math.ulp(1d)
    • PowellOptimizer

      public PowellOptimizer(double rel, double abs, double lineRel, double lineAbs)
      使用默认的收敛检查过程构建一个实例。
      参数:
      rel - 相对阈值。
      abs - 绝对阈值。
      lineRel - 内部线搜索优化器的相对阈值。
      lineAbs - 内部线搜索优化器的绝对阈值。
      抛出:
      MathIllegalArgumentException - 如果abs <= 0
      MathIllegalArgumentException - 如果rel < 2 * Math.ulp(1d)
  • 方法详细资料