Class HedarFukushimaTransform
- java.lang.Object
-
- org.apache.commons.math4.legacy.optim.nonlinear.scalar.noderiv.HedarFukushimaTransform
-
- All Implemented Interfaces:
Simplex.TransformFactory
,OptimizationData
public class HedarFukushimaTransform extends Object implements Simplex.TransformFactory
DSSA algorithm. Described inAbdel-Rahman Hedar and Masao Fukushima (2002), Hybrid simulated annealing and direct search method for nonlinear unconstrained global optimization , Optimization Methods and Software, 17:5, 891-912, DOI: 10.1080/1055678021000030084
A note about the
"shrink" factor
: Per DSSA's description, the simplex must keep its size during the simulated annealing (SA) phase to avoid premature convergence. This assumes that the best candidates from the SA phase will each subsequently serve as starting point for another optimization to hone in on the local optimum. Values lower than 1 and no subsequent "best list" search correspond to the "SSA" algorithm in the above paper.
-
-
Constructor Summary
Constructors Constructor Description HedarFukushimaTransform()
Disable shrinking of the simplex (as mandated by DSSA).HedarFukushimaTransform(double sigma)
HedarFukushimaTransform(double sigma, org.apache.commons.rng.UniformRandomProvider rng)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description UnaryOperator<Simplex>
create(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator, DoublePredicate saAcceptance)
Creates a simplex transformation.String
toString()
-
-
-
Constructor Detail
-
HedarFukushimaTransform
public HedarFukushimaTransform(double sigma, org.apache.commons.rng.UniformRandomProvider rng)
- Parameters:
sigma
- Shrink factor.rng
- Random generator.- Throws:
IllegalArgumentException
- ifsigma <= 0
orsigma > 1
.
-
HedarFukushimaTransform
public HedarFukushimaTransform(double sigma)
- Parameters:
sigma
- Shrink factor.- Throws:
IllegalArgumentException
- ifsigma <= 0
orsigma > 1
.
-
HedarFukushimaTransform
public HedarFukushimaTransform()
Disable shrinking of the simplex (as mandated by DSSA).
-
-
Method Detail
-
create
public UnaryOperator<Simplex> create(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator, DoublePredicate saAcceptance)
Creates a simplex transformation.- Specified by:
create
in interfaceSimplex.TransformFactory
- Parameters:
evaluationFunction
- Evaluation function.comparator
- Vertex fitness comparator.saAcceptance
- Simulated annealing acceptance test.- Returns:
- the simplex transform operator.
-
-