类 MultiStartUnivariateOptimizer
java.lang.Object
org.hipparchus.optim.BaseOptimizer<UnivariatePointValuePair>
org.hipparchus.optim.univariate.UnivariateOptimizer
org.hipparchus.optim.univariate.MultiStartUnivariateOptimizer
特殊实现了
这个类将一个优化器包装起来,以便多次使用不同的起始点(尝试避免在寻找全局极值时陷入局部极值)。
UnivariateOptimizer
接口,为现有优化器添加了多起点特性。
这个类将一个优化器包装起来,以便多次使用不同的起始点(尝试避免在寻找全局极值时陷入局部极值)。
-
字段概要
从类继承的字段 org.hipparchus.optim.BaseOptimizer
evaluations, iterations
-
构造器概要
构造器说明MultiStartUnivariateOptimizer
(UnivariateOptimizer optimizer, int starts, RandomGenerator generator) 从单起点优化器创建一个多起点优化器。 -
方法概要
修饰符和类型方法说明protected UnivariatePointValuePair
执行优化算法的主要部分。int
获取目标函数的评估次数。获取上一次调用optimize
时找到的所有最优解。optimize
(OptimizationData... optData) 存储数据并执行优化。从类继承的方法 org.hipparchus.optim.univariate.UnivariateOptimizer
computeObjectiveValue, getGoalType, getMax, getMin, getStartValue, parseOptimizationData
从类继承的方法 org.hipparchus.optim.BaseOptimizer
getConvergenceChecker, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount, optimize
-
构造器详细资料
-
MultiStartUnivariateOptimizer
public MultiStartUnivariateOptimizer(UnivariateOptimizer optimizer, int starts, RandomGenerator generator) 从单起点优化器创建一个多起点优化器。- 参数:
-
optimizer
- 要包装的单起点优化器。 -
starts
- 要执行的起点数。如果starts == 1
,则optimize
方法将返回与optimizer
相同的解。 -
generator
- 用于重新启动的随机生成器。 - 抛出:
-
MathIllegalArgumentException
- 如果starts < 1
。
-
-
方法详细资料
-
getEvaluations
public int getEvaluations()获取目标函数的评估次数。评估次数对应于上一次调用optimize
方法。如果尚未调用该方法,则为0。- 覆盖:
-
getEvaluations
在类中BaseOptimizer<UnivariatePointValuePair>
- 返回:
- 目标函数的评估次数。
-
getOptima
获取上一次调用optimize
时找到的所有最优解。优化器存储了在一组重新启动中找到的所有最优解。optimize
方法仅返回最佳点。该方法返回每次重新启动结束时找到的所有点,包括已由optimize
方法返回的最佳点。
返回的数组中每个元素对应于构造函数中指定的每个起点。它按照首次收敛的运行结果排序,按照最佳到最差的目标值顺序排序(如果最小化则为升序,如果最大化则为降序),然后是对应于未收敛的运行的null
元素。这意味着如果optimize
方法抛出异常,则所有元素都将是null
。这也意味着如果第一个元素不是null
,它将是在所有起点中找到的最佳点。- 返回:
- 包含最优解的数组。
- 抛出:
-
MathIllegalStateException
- 如果未调用optimize
。
-
optimize
存储数据并执行优化。参数列表是开放式的,因此子类可以使用特定于其具体实现的参数进行扩展。
当多次调用该方法时,只有在参数列表中实际存在时才会覆盖实例数据:当未指定时,将保留在先前调用中设置的数据(因此在后续调用中是可选的)。
重要提示:子类必须覆盖
BaseOptimizer.parseOptimizationData(OptimizationData[])
,如果它们需要注册自己的选项;但是,它们还必须在该方法中调用super.parseOptimizationData(optData)
。- 覆盖:
-
optimize
在类中UnivariateOptimizer
- 参数:
-
optData
- 优化数据。除了在BaseOptimizer
中记录的数据外,此方法还将注册以下数据: - 返回:
- 满足收敛标准的点/值对。
- 抛出:
-
MathIllegalStateException
- 如果optData
不包含MaxEval
或SearchInterval
的实例。
-
doOptimize
执行优化算法的主要部分。- 指定者:
-
doOptimize
在类中BaseOptimizer<UnivariatePointValuePair>
- 返回:
- 给出目标函数最优值的点/值对。
-