public IConstrainedSolver Create(double penaltyWeight, double gradientNormThreshold) { var lbfgsSolver = new LBFGSOptimizer(30); var penaltySolver = new ConstantPenaltySolver(penaltyWeight, gradientNormThreshold, lbfgsSolver); return(penaltySolver); }
public IConstrainedSolver Create() { var lagrangianCompiler = new LagrangianCompiler(); var unconstrainedOptimizer = new LBFGSOptimizer(30); //var unconstrainedOptimizer = new ConjugateGradientOptimizer(); var iterations = new AugmentedLagrangianIterations( unconstrainedOptimizer, lagrangianCompiler, startConstraintsPenalty: 10, constraintsPenaltyMax: 1E3, maxConstraintsNormLowerBound: 1E-8, lagrangianGradientNormLowerBound: 4E-7); var convergenceTest = new ConstraintsNormWithGradientNormConvergenceTest( constraintsNormMax: 1E-8, lagrangianGradientNormMax: 2E-6, maxIterations: 1000); var solver = new AugmentedLagrangianSolver(convergenceTest, iterations); return(solver); }