Class SubProblemMinimizer
- java.lang.Object
-
- dev.nm.solver.multivariate.constrained.SubProblemMinimizer
-
- All Implemented Interfaces:
Minimizer<ConstrainedOptimSubProblem,SubProblemMinimizer.IterativeSolution<Vector>>
,ConstrainedMinimizer<ConstrainedOptimSubProblem,SubProblemMinimizer.IterativeSolution<Vector>>
,Optimizer<ConstrainedOptimSubProblem,SubProblemMinimizer.IterativeSolution<Vector>>
public class SubProblemMinimizer extends Object implements ConstrainedMinimizer<ConstrainedOptimSubProblem,SubProblemMinimizer.IterativeSolution<Vector>>
This minimizer solves a constrained optimization sub-problem where the values for some variables are held fixed for the original optimization problem. It does so by creating a new optimization and invoke a customized constrained optimization solver to solve the new problem.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
SubProblemMinimizer.ConstrainedMinimizerFactory<U extends ConstrainedMinimizer<ConstrainedOptimProblem,IterativeSolution<Vector>>>
This factory constructs a new instance of ConstrainedMinimizer to solve a real valued minimization problem.static interface
SubProblemMinimizer.IterativeSolution<Vector>
-
Constructor Summary
Constructors Constructor Description SubProblemMinimizer(double gamma)
SubProblemMinimizer(double epsilon, int maxIterations)
SubProblemMinimizer(SubProblemMinimizer.ConstrainedMinimizerFactory<? extends ConstrainedMinimizer<ConstrainedOptimProblem,IterativeSolution<Vector>>> factory)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ConstrainedOptimSubProblem
getConstrainedOptimSubProblem(ConstrainedOptimProblem problem, Map<Integer,Double> fixing)
Gets the ConstrainedOptimSubProblem representation of the sub-problem.static ConstrainedOptimProblem
getSubProblem(ConstrainedOptimSubProblem problem)
Gets the sub-problem in the form of ConstrainedOptimProblem.SubProblemMinimizer.IterativeSolution<Vector>
solve(ConstrainedOptimSubProblem problem)
Solve an optimization problem, e.g.,OptimProblem
.IterativeSolution<Vector>
solve(ConstrainedOptimProblem subProblem)
Solves a constrained optimization sub-problem that is already in the form of a ConstrainedOptimProblem.SubProblemMinimizer.IterativeSolution<Vector>
solve(ConstrainedOptimProblem problem, Map<Integer,Double> fixing)
Solves a constrained sub-problem by specifying the fixing explicitly.
-
-
-
Constructor Detail
-
SubProblemMinimizer
public SubProblemMinimizer(SubProblemMinimizer.ConstrainedMinimizerFactory<? extends ConstrainedMinimizer<ConstrainedOptimProblem,IterativeSolution<Vector>>> factory)
-
SubProblemMinimizer
public SubProblemMinimizer(double epsilon, int maxIterations)
-
SubProblemMinimizer
public SubProblemMinimizer(double gamma)
-
-
Method Detail
-
getConstrainedOptimSubProblem
public static ConstrainedOptimSubProblem getConstrainedOptimSubProblem(ConstrainedOptimProblem problem, Map<Integer,Double> fixing)
Gets the ConstrainedOptimSubProblem representation of the sub-problem.- Parameters:
problem
- the original constrained optimization problemfixing
- the fixed values- Returns:
- the ConstrainedOptimSubProblem representation of the sub-problem
-
getSubProblem
public static ConstrainedOptimProblem getSubProblem(ConstrainedOptimSubProblem problem)
Gets the sub-problem in the form of ConstrainedOptimProblem.- Parameters:
problem
- a constrained optimization sub-problem- Returns:
- the corresponding constrained optimization problem for the sub-problem
-
solve
public IterativeSolution<Vector> solve(ConstrainedOptimProblem subProblem) throws Exception
Solves a constrained optimization sub-problem that is already in the form of a ConstrainedOptimProblem.- Parameters:
subProblem
- the constrained optimization sub-problem in the form of a ConstrainedOptimProblem- Returns:
- a solution to the optimization sub-problem
- Throws:
Exception
-
solve
public SubProblemMinimizer.IterativeSolution<Vector> solve(ConstrainedOptimSubProblem problem) throws Exception
Description copied from interface:Optimizer
Solve an optimization problem, e.g.,OptimProblem
.- Specified by:
solve
in interfaceOptimizer<ConstrainedOptimSubProblem,SubProblemMinimizer.IterativeSolution<Vector>>
- Parameters:
problem
- an optimization problem- Returns:
- a solution to the optimization problem
- Throws:
Exception
- when there is an error solving the problem
-
solve
public SubProblemMinimizer.IterativeSolution<Vector> solve(ConstrainedOptimProblem problem, Map<Integer,Double> fixing) throws Exception
Solves a constrained sub-problem by specifying the fixing explicitly.- Parameters:
problem
- the original full constrained optimization problemfixing
- the indices and the values to be fixed- Returns:
- a solution to the optimization sub-problem
- Throws:
Exception
-
-