类 AbstractSimplex
java.lang.Object
org.hipparchus.optim.nonlinear.scalar.noderiv.AbstractSimplex
- 所有已实现的接口:
-
OptimizationData
- 直接已知子类:
-
MultiDirectionalSimplex
,NelderMeadSimplex
该类实现了单纯形概念。它旨在与
单纯形的初始配置由构造函数
用户必须调用
SimplexOptimizer
一起使用。
单纯形的初始配置由构造函数
AbstractSimplex(double[])
或AbstractSimplex(double[][])
设置。另一个构造函数
将所有步骤设置为1,从而从单位超立方体构建默认配置。
用户必须调用
build
方法以创建数据结构,该数据结构将受到该类其他方法的影响。
- 另请参阅:
-
构造器概要
限定符构造器说明protected
AbstractSimplex
(double[] steps) 单纯形的起始配置是从与空间的规范轴平行的盒子构建的。protected
AbstractSimplex
(double[][] referenceSimplex) 真实的初始单纯形将通过移动参考单纯形设置,使其第一个点位于优化的起始点。protected
AbstractSimplex
(int n) 构建一个单位超立方体单纯形。protected
AbstractSimplex
(int n, double sideLength) 使用给定的边长构建超立方体单纯形。 -
方法概要
修饰符和类型方法说明void
build
(double[] startPoint) 构建初始单纯形。void
evaluate
(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator) 评估单纯形的所有未评估点。int
获取单纯形维度。getPoint
(int index) 获取存储在请求的index
处的单纯形点。获取单纯形的点。int
getSize()
获取单纯形大小。abstract void
iterate
(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator) 计算算法的下一个单纯形。protected void
replaceWorstPoint
(PointValuePair pointValuePair, Comparator<PointValuePair> comparator) 用新点替换单纯形中的最差点。protected void
setPoint
(int index, PointValuePair point) 在位置index
处存储一个新点。protected void
setPoints
(PointValuePair[] points) 替换所有点。
-
构造器详细资料
-
AbstractSimplex
protected AbstractSimplex(int n) 构建一个单位超立方体单纯形。- 参数:
-
n
- 单纯形的维度。
-
AbstractSimplex
protected AbstractSimplex(int n, double sideLength) 使用给定的边长构建超立方体单纯形。- 参数:
-
n
- 单纯形的维度。 -
sideLength
- 超立方体边长。
-
AbstractSimplex
protected AbstractSimplex(double[] steps) 单纯形的起始配置是从与空间的规范轴平行的盒子构建的。单纯形是与规范轴平行的盒子的顶点子集。它是作为从盒子的一个顶点到对角线相对顶点沿着盒子边缘移动时所经过的路径构建的。盒子的第一个顶点将位于优化的起始点。例如,在维度3中,单纯形有4个顶点。将步长设置为(1, 10, 2),起始点设置为(1, 1, 1)将意味着起始单纯形将是:{ (1, 1, 1), (2, 1, 1), (2, 11, 1), (2, 11, 3) }。第一个顶点将设置为起始点(1, 1, 1),最后一个顶点将设置为对角线相对顶点(2, 11, 3)。- 参数:
-
steps
- 沿着表示盒子边缘的规范轴的步长。它们可以是负数,但不能为零。 - 抛出:
-
NullArgumentException
- 如果steps
为null
。 -
MathIllegalArgumentException
- 如果步长之一为零。
-
AbstractSimplex
protected AbstractSimplex(double[][] referenceSimplex) 真实的初始单纯形将通过移动参考单纯形设置,使其第一个点位于优化的起始点。- 参数:
-
referenceSimplex
- 参考单纯形。 - 抛出:
-
MathIllegalArgumentException
- 如果参考单纯形不包含至少一个点。 -
MathIllegalArgumentException
- 如果参考单纯形中存在维度不匹配。 -
IllegalArgumentException
- 如果其中一个顶点重复。
-
-
方法详细资料
-
getDimension
public int getDimension()获取单纯形维度。- 返回:
- 单纯形的维度。
-
getSize
public int getSize()获取单纯形大小。调用build
方法后,此方法将等同于getDimension() + 1
。- 返回:
- 单纯形的大小。
-
iterate
public abstract void iterate(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator) 计算算法的下一个单纯形。- 参数:
-
evaluationFunction
- 评估函数。 -
comparator
- 用于将单纯形顶点从最佳到最差排序的比较器。 - 抛出:
-
MathIllegalStateException
- 如果算法无法收敛。
-
build
public void build(double[] startPoint) 构建初始单纯形。- 参数:
-
startPoint
- 单纯形的第一个点。 - 抛出:
-
MathIllegalArgumentException
- 如果起始点与单纯形维度不匹配。
-
evaluate
public void evaluate(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator) 评估单纯形的所有未评估点。- 参数:
-
evaluationFunction
- 评估函数。 -
comparator
- 用于将单纯形顶点从最佳到最差排序的比较器。 - 抛出:
-
MathIllegalStateException
- 如果超过最大评估次数。
-
replaceWorstPoint
protected void replaceWorstPoint(PointValuePair pointValuePair, Comparator<PointValuePair> comparator) 用新点替换单纯形中的最差点。- 参数:
-
pointValuePair
- 要插入的点。 -
comparator
- 用于将单纯形顶点从最佳到最差排序的比较器。
-
getPoints
获取单纯形的点。- 返回:
- 所有单纯形点。
-
getPoint
获取存储在请求的index
处的单纯形点。- 参数:
-
index
- 位置。 - 返回:
-
位置
index
处的点。
-
setPoint
在位置index
处存储一个新点。请注意,不会执行point
的深复制。- 参数:
-
index
- 位置。 -
point
- 新值。
-
setPoints
替换所有点。请注意,不会执行points
的深复制。- 参数:
-
points
- 新点。
-