类 SimplexOptimizer
直接搜索方法仅使用目标函数值,不需要导数,也不会尝试计算导数的近似值。根据玛格丽特·赖特(Margaret H. Wright)在1996年的一篇论文(直接搜索方法:曾经被蔑视,现在备受尊重)中指出,当计算导数不可能(嘈杂的函数,不可预测的不连续性)或困难(复杂性,计算成本)时,它们被用于。在前一种情况下,不是寻找最优解,而是寻找一个“不太糟糕”的点。在后一种情况下,虽然希望找到最优解,但实际上是不太可能的。在所有情况下,直接搜索方法都可能是有用的。
基于单纯形的直接搜索方法基于对单纯形的顶点(在n维空间中是n+1个点的集合)处的目标函数值进行比较,该单纯形会被算法的步骤更新。
必须将单纯形更新过程(NelderMeadSimplex
或MultiDirectionalSimplex
)传递给optimize
方法。
每次调用optimize
都会重用当前单纯形的起始配置,并将其移动,使其第一个顶点位于优化的起始点处。如果调用optimize
方法来解决不同的问题并且参数数量发生变化,则必须重新初始化单纯形,使其具有适当的维度。
通过将先前和当前单纯形的“最差”点提供给收敛检查器来检查收敛性,而不是提供最佳点。
该单纯形优化器实现不直接支持带简单边界的约束优化;因此,对于这样的优化,必须使用更专门的算法,如CMAESOptimizer
或BOBYQAOptimizer
,或者必须将目标函数包装在适配器中,如MultivariateFunctionMappingAdapter
或MultivariateFunctionPenaltyAdapter
。
调用optimize
将在传递边界时抛出MathRuntimeException
。
-
字段概要
从类继承的字段 org.hipparchus.optim.BaseOptimizer
evaluations, iterations
-
构造器概要
构造器说明SimplexOptimizer
(double rel, double abs) 简单构造函数。SimplexOptimizer
(ConvergenceChecker<PointValuePair> checker) 简单构造函数。 -
方法概要
修饰符和类型方法说明protected PointValuePair
执行优化算法的大部分工作。optimize
(OptimizationData... optData) 存储数据并执行优化。protected void
parseOptimizationData
(OptimizationData... optData) 扫描表征问题的(必需和可选的)优化数据列表。从类继承的方法 org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer
computeObjectiveValue, getGoalType
从类继承的方法 org.hipparchus.optim.BaseMultivariateOptimizer
getLowerBound, getStartPoint, getUpperBound
从类继承的方法 org.hipparchus.optim.BaseOptimizer
getConvergenceChecker, getEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount, optimize
-
构造器详细资料
-
SimplexOptimizer
简单构造函数。- 参数:
-
checker
- 收敛检查器。
-
SimplexOptimizer
public SimplexOptimizer(double rel, double abs) 简单构造函数。- 参数:
-
rel
- 相对阈值。 -
abs
- 绝对阈值。
-
-
方法详细资料
-
optimize
存储数据并执行优化。参数列表是开放式的,以便子类可以使用特定于其具体实现的参数进行扩展。
当多次调用该方法时,仅当实际存在于参数列表中时,实例数据才会被覆盖:当未指定时,上一次调用中设置的数据将被保留(因此在后续调用中是可选的)。
重要提示:如果子类需要注册自己的选项,则必须覆盖
BaseOptimizer.parseOptimizationData(OptimizationData[])
;但是,它们还必须在该方法中调用super.parseOptimizationData(optData)
。- 覆盖:
-
optimize
在类中MultivariateOptimizer
- 参数:
-
optData
- 优化数据。除了MultivariateOptimizer
中记录的数据外,此方法还将注册以下数据: - 返回:
- 满足收敛标准的点/值对。
-
doOptimize
执行优化算法的大部分工作。- 指定者:
-
doOptimize
在类中BaseOptimizer<PointValuePair>
- 返回:
- 给出目标函数的最优值的点/值对。
-
parseOptimizationData
扫描表征问题的(必需和可选的)优化数据列表。- 覆盖:
-
parseOptimizationData
在类中MultivariateOptimizer
- 参数:
-
optData
- 优化数据。将查找以下数据:
-