类 BaseMultiStartMultivariateOptimizer<P>

java.lang.Object
org.hipparchus.optim.BaseOptimizer<P>
org.hipparchus.optim.BaseMultivariateOptimizer<P>
org.hipparchus.optim.BaseMultiStartMultivariateOptimizer<P>
类型参数:
P - 优化算法返回的点/值对的类型。
直接已知子类:
MultiStartMultivariateOptimizer

public abstract class BaseMultiStartMultivariateOptimizer<P> extends BaseMultivariateOptimizer<P>
多起点优化器的基类,用于多元函数。
该类包装了一个优化器,以便多次使用不同的起始点依次进行优化(在寻找全局极值时避免陷入局部极值)。 这不是一个“用户”类。
  • 构造器详细资料

    • BaseMultiStartMultivariateOptimizer

      public BaseMultiStartMultivariateOptimizer(BaseMultivariateOptimizer<P> optimizer, int starts, RandomVectorGenerator generator)
      从单起点优化器创建多起点优化器。

      请注意,如果存在边界约束(参见BaseMultivariateOptimizer.getLowerBound()BaseMultivariateOptimizer.getUpperBound()),则在每次重新启动时将使用简单的拒绝算法。这意味着随机向量生成器应具有在有界域中生成向量的良好概率,否则拒绝算法将在达到BaseOptimizer.getMaxEvaluations()计数而未生成适当的重新启动点时终止。用户必须非常注意维度诅咒

      参数:
      optimizer - 要包装的单起点优化器。
      starts - 要执行的起始次数。如果starts == 1,则optimize将返回与给定optimizer相同的解。
      generator - 用于重新启动的随机向量生成器。
      抛出:
      MathIllegalArgumentException - 如果starts < 1
  • 方法详细资料

    • getEvaluations

      public int getEvaluations()
      获取目标函数的评估次数。评估次数对应于上一次调用optimize方法。如果尚未调用该方法,则为0。
      覆盖:
      getEvaluations 在类中 BaseOptimizer<P>
      返回:
      目标函数的评估次数。
    • getOptima

      public abstract P[] getOptima()
      获取上一次调用optimize时找到的所有最优解。优化器存储了在一组重新启动中找到的所有最优解。optimize方法仅返回最佳点。该方法返回在每次重新启动结束时找到的所有点,包括已由optimize方法返回的最佳点。
      返回的数组中每个元素对应于构造函数中指定的每次启动。它按照首先收敛的运行结果排序,按照最佳到最差的目标值排序(如果最小化则按升序排列,如果最大化则按降序排列),然后是未收敛的运行对应的null元素。这意味着如果optimize方法抛出异常,则所有元素都将是null。这也意味着如果第一个元素不是null,则它是在所有启动中找到的最佳点。
      如果在调用optimize之前调用此方法,则行为是未定义的;很可能会抛出NullPointerException
      返回:
      包含从最佳到最差排序的所有最优解的数组。
    • optimize

      public P optimize(OptimizationData... optData)
      存储数据并执行优化。

      参数列表是开放式的,以便子类可以使用特定于其具体实现的参数进行扩展。

      当多次调用该方法时,仅当实例数据实际存在于参数列表中时才会被覆盖:当未指定时,将保留在先前调用中设置的数据(因此在后续调用中是可选的)。

      重要提示:子类必须覆盖BaseOptimizer.parseOptimizationData(OptimizationData[]),如果它们需要注册自己的选项;但是,它们还必须在该方法中调用super.parseOptimizationData(optData)

      覆盖:
      optimize 在类中 BaseMultivariateOptimizer<P>
      参数:
      optData - 优化数据。除了在BaseOptimizer中记录的数据外,此方法还将注册以下数据:
      返回:
      满足收敛标准的点/值对。
      抛出:
      MathIllegalStateException - 如果optData不包含MaxEvalInitialGuess的实例。
    • doOptimize

      protected P doOptimize()
      执行优化算法的主要部分。
      指定者:
      doOptimize 在类中 BaseOptimizer<P>
      返回:
      给出目标函数最优值的点/值对。
    • store

      protected abstract void store(P optimum)
      用于存储每个找到的最优解的方法。
      参数:
      optimum - 优化运行的结果。
    • clear

      protected abstract void clear()
      用于清除所有存储的最优解的方法。