edu.stanford.rsl.jpop
Class FunctionOptimizer
- java.lang.Object
-
- edu.stanford.rsl.jpop.FunctionOptimizer
-
public class FunctionOptimizer extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classFunctionOptimizer.OptimizationModestatic classFunctionOptimizer.TerminationCodeTermination codes ITRMCD = 0: Optimal solution found ITRMCD = 1: Terminated with gradient small, X is probably optimal ITRMCD = 2: Terminated with stepsize small, X is probably optimal ITRMCD = 3: Lower point cannot be found, X is probably optimal ITRMCD = 4: Iteration limit (150) exceeded ITRMCD = 5: Too many large steps, function may be unbounded
-
Constructor Summary
Constructors Constructor and Description FunctionOptimizer()FunctionOptimizer(int dimension)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doublegetFunctionAtOptimum()double[]getGradientAtOptimum()double[][]getHessianAtOptimum()FunctionOptimizer.OptimizationModegetOptimizationMode()double[]getOptimum()FunctionOptimizer.TerminationCodegetTerminationCode()returns the TerminationCode of the Optimization process.double[]optimizeFunction(OptimizableFunction function)Method will optimize the given function using the current settings of the FunctionOptimizer.voidsetDimension(int dimension)voidsetFunctionAssembler(FunctionAssembler assembler)Sets a new FunctionAssembler for the optimization process.voidsetFunctionController(FunctionController controller)Sets a new FunctionController.voidsetInitialX(double[] x)voidsetOptimizationMode(FunctionOptimizer.OptimizationMode optimizationMode)
-
-
-
Constructor Detail
-
FunctionOptimizer
public FunctionOptimizer(int dimension)
-
FunctionOptimizer
public FunctionOptimizer()
-
-
Method Detail
-
setFunctionAssembler
public void setFunctionAssembler(FunctionAssembler assembler)
Sets a new FunctionAssembler for the optimization process. Default setting is AdditiveFunctionAssembler.- Parameters:
assembler-
-
setFunctionController
public void setFunctionController(FunctionController controller)
Sets a new FunctionController. Defaults to ParallelFunctionController. In rare cases the overhead caused by the parallel execution may reduce the actual execution time. In this case use a SimpleFunctionController instead.- Parameters:
controller-
-
optimizeFunction
public double[] optimizeFunction(OptimizableFunction function)
Method will optimize the given function using the current settings of the FunctionOptimizer. Note that if you set the OptimizationMode to Gradient or Hessian, the OptimizableFunction must implement GradientOptimizableFunction or HessianOptmizableFunction respectively.- Parameters:
function-- Returns:
-
setDimension
public void setDimension(int dimension)
-
setInitialX
public void setInitialX(double[] x)
-
getOptimum
public double[] getOptimum()
-
getGradientAtOptimum
public double[] getGradientAtOptimum()
-
getFunctionAtOptimum
public double getFunctionAtOptimum()
-
getHessianAtOptimum
public double[][] getHessianAtOptimum()
-
getOptimizationMode
public FunctionOptimizer.OptimizationMode getOptimizationMode()
- Returns:
- the optimizationMode
-
setOptimizationMode
public void setOptimizationMode(FunctionOptimizer.OptimizationMode optimizationMode)
- Parameters:
optimizationMode- the optimizationMode to set
-
getTerminationCode
public FunctionOptimizer.TerminationCode getTerminationCode()
returns the TerminationCode of the Optimization process. It should be checked to determine, whether the optimization was successful.- Returns:
- the TermininationCode
-
-
DMelt 3.0 © DataMelt by jWork.ORG