类 BaseMultiStartMultivariateOptimizer<P>
java.lang.Object
org.hipparchus.optim.BaseOptimizer<P>
org.hipparchus.optim.BaseMultivariateOptimizer<P>
org.hipparchus.optim.BaseMultiStartMultivariateOptimizer<P>
- 类型参数:
-
P
- 优化算法返回的点/值对的类型。
- 直接已知子类:
-
MultiStartMultivariateOptimizer
多起点优化器的基类,用于多元函数。
该类包装了一个优化器,以便多次使用不同的起始点依次进行优化(在寻找全局极值时避免陷入局部极值)。 这不是一个“用户”类。
该类包装了一个优化器,以便多次使用不同的起始点依次进行优化(在寻找全局极值时避免陷入局部极值)。 这不是一个“用户”类。
-
字段概要
从类继承的字段 org.hipparchus.optim.BaseOptimizer
evaluations, iterations
-
构造器概要
构造器说明BaseMultiStartMultivariateOptimizer
(BaseMultivariateOptimizer<P> optimizer, int starts, RandomVectorGenerator generator) 从单起点优化器创建多起点优化器。 -
方法概要
修饰符和类型方法说明protected abstract void
clear()
用于清除所有存储的最优解的方法。protected P
执行优化算法的主要部分。int
获取目标函数的评估次数。abstract P[]
获取上一次调用optimize
时找到的所有最优解。optimize
(OptimizationData... optData) 存储数据并执行优化。protected abstract void
用于存储每个找到的最优解的方法。从类继承的方法 org.hipparchus.optim.BaseMultivariateOptimizer
getLowerBound, getStartPoint, getUpperBound, parseOptimizationData
从类继承的方法 org.hipparchus.optim.BaseOptimizer
getConvergenceChecker, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount, optimize
-
构造器详细资料
-
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
获取上一次调用optimize
时找到的所有最优解。优化器存储了在一组重新启动中找到的所有最优解。optimize
方法仅返回最佳点。该方法返回在每次重新启动结束时找到的所有点,包括已由optimize
方法返回的最佳点。
返回的数组中每个元素对应于构造函数中指定的每次启动。它按照首先收敛的运行结果排序,按照最佳到最差的目标值排序(如果最小化则按升序排列,如果最大化则按降序排列),然后是未收敛的运行对应的null
元素。这意味着如果optimize
方法抛出异常,则所有元素都将是null
。这也意味着如果第一个元素不是null
,则它是在所有启动中找到的最佳点。
如果在调用optimize
之前调用此方法,则行为是未定义的;很可能会抛出NullPointerException
。- 返回:
- 包含从最佳到最差排序的所有最优解的数组。
-
optimize
存储数据并执行优化。参数列表是开放式的,以便子类可以使用特定于其具体实现的参数进行扩展。
当多次调用该方法时,仅当实例数据实际存在于参数列表中时才会被覆盖:当未指定时,将保留在先前调用中设置的数据(因此在后续调用中是可选的)。
重要提示:子类必须覆盖
BaseOptimizer.parseOptimizationData(OptimizationData[])
,如果它们需要注册自己的选项;但是,它们还必须在该方法中调用super.parseOptimizationData(optData)
。- 覆盖:
-
optimize
在类中BaseMultivariateOptimizer<P>
- 参数:
-
optData
- 优化数据。除了在BaseOptimizer
中记录的数据外,此方法还将注册以下数据: - 返回:
- 满足收敛标准的点/值对。
- 抛出:
-
MathIllegalStateException
- 如果optData
不包含MaxEval
或InitialGuess
的实例。
-
doOptimize
执行优化算法的主要部分。- 指定者:
-
doOptimize
在类中BaseOptimizer<P>
- 返回:
- 给出目标函数最优值的点/值对。
-
store
用于存储每个找到的最优解的方法。- 参数:
-
optimum
- 优化运行的结果。
-
clear
protected abstract void clear()用于清除所有存储的最优解的方法。
-