update tests
parent
49a3b2e8a2
commit
94a95b69cb
|
@ -69,7 +69,7 @@ class TestScenario(GtsamTestCase):
|
||||||
lmParams = LevenbergMarquardtParams.CeresDefaults()
|
lmParams = LevenbergMarquardtParams.CeresDefaults()
|
||||||
lmParams.setLinearSolverType("ITERATIVE")
|
lmParams.setLinearSolverType("ITERATIVE")
|
||||||
cgParams = PCGSolverParameters()
|
cgParams = PCGSolverParameters()
|
||||||
cgParams.setPreconditionerParams(DummyPreconditionerParameters())
|
cgParams.preconditioner = DummyPreconditionerParameters()
|
||||||
lmParams.setIterativeParams(cgParams)
|
lmParams.setIterativeParams(cgParams)
|
||||||
actual = LevenbergMarquardtOptimizer(self.fg, self.initial_values, lmParams).optimize()
|
actual = LevenbergMarquardtOptimizer(self.fg, self.initial_values, lmParams).optimize()
|
||||||
self.assertAlmostEqual(0, self.fg.error(actual))
|
self.assertAlmostEqual(0, self.fg.error(actual))
|
||||||
|
|
|
@ -95,9 +95,9 @@ TEST( Iterative, conjugateGradientDescent_hard_constraint )
|
||||||
VectorValues zeros = config.zeroVectors();
|
VectorValues zeros = config.zeroVectors();
|
||||||
|
|
||||||
ConjugateGradientParameters parameters;
|
ConjugateGradientParameters parameters;
|
||||||
parameters.setEpsilon_abs(1e-3);
|
parameters.epsilon_abs = 1e-3;
|
||||||
parameters.setEpsilon_rel(1e-5);
|
parameters.epsilon_rel = 1e-5;
|
||||||
parameters.setMaxIterations(100);
|
parameters.maxIterations = 100;
|
||||||
VectorValues actual = conjugateGradientDescent(*fg, zeros, parameters);
|
VectorValues actual = conjugateGradientDescent(*fg, zeros, parameters);
|
||||||
|
|
||||||
VectorValues expected;
|
VectorValues expected;
|
||||||
|
@ -122,9 +122,9 @@ TEST( Iterative, conjugateGradientDescent_soft_constraint )
|
||||||
VectorValues zeros = config.zeroVectors();
|
VectorValues zeros = config.zeroVectors();
|
||||||
|
|
||||||
ConjugateGradientParameters parameters;
|
ConjugateGradientParameters parameters;
|
||||||
parameters.setEpsilon_abs(1e-3);
|
parameters.epsilon_abs = 1e-3;
|
||||||
parameters.setEpsilon_rel(1e-5);
|
parameters.epsilon_rel = 1e-5;
|
||||||
parameters.setMaxIterations(100);
|
parameters.maxIterations = 100;
|
||||||
VectorValues actual = conjugateGradientDescent(*fg, zeros, parameters);
|
VectorValues actual = conjugateGradientDescent(*fg, zeros, parameters);
|
||||||
|
|
||||||
VectorValues expected;
|
VectorValues expected;
|
||||||
|
|
|
@ -54,21 +54,21 @@ TEST( PCGsolver, verySimpleLinearSystem) {
|
||||||
// Solve the system using Preconditioned Conjugate Gradient solver
|
// Solve the system using Preconditioned Conjugate Gradient solver
|
||||||
// Common PCG parameters
|
// Common PCG parameters
|
||||||
gtsam::PCGSolverParameters::shared_ptr pcg = std::make_shared<gtsam::PCGSolverParameters>();
|
gtsam::PCGSolverParameters::shared_ptr pcg = std::make_shared<gtsam::PCGSolverParameters>();
|
||||||
pcg->setMaxIterations(500);
|
pcg->maxIterations = 500;
|
||||||
pcg->setEpsilon_abs(0.0);
|
pcg->epsilon_abs = 0.0;
|
||||||
pcg->setEpsilon_rel(0.0);
|
pcg->epsilon_rel = 0.0;
|
||||||
//pcg->setVerbosity("ERROR");
|
//pcg->setVerbosity("ERROR");
|
||||||
|
|
||||||
// With Dummy preconditioner
|
// With Dummy preconditioner
|
||||||
pcg->setPreconditionerParams(
|
pcg->preconditioner =
|
||||||
std::make_shared<gtsam::DummyPreconditionerParameters>());
|
std::make_shared<gtsam::DummyPreconditionerParameters>();
|
||||||
VectorValues deltaPCGDummy = PCGSolver(*pcg).optimize(simpleGFG);
|
VectorValues deltaPCGDummy = PCGSolver(*pcg).optimize(simpleGFG);
|
||||||
EXPECT(assert_equal(exactSolution, deltaPCGDummy, 1e-7));
|
EXPECT(assert_equal(exactSolution, deltaPCGDummy, 1e-7));
|
||||||
//deltaPCGDummy.print("PCG Dummy");
|
//deltaPCGDummy.print("PCG Dummy");
|
||||||
|
|
||||||
// With Block-Jacobi preconditioner
|
// With Block-Jacobi preconditioner
|
||||||
pcg->setPreconditionerParams(
|
pcg->preconditioner =
|
||||||
std::make_shared<gtsam::BlockJacobiPreconditionerParameters>());
|
std::make_shared<gtsam::BlockJacobiPreconditionerParameters>();
|
||||||
// It takes more than 1000 iterations for this test
|
// It takes more than 1000 iterations for this test
|
||||||
pcg->setMaxIterations(1500);
|
pcg->setMaxIterations(1500);
|
||||||
VectorValues deltaPCGJacobi = PCGSolver(*pcg).optimize(simpleGFG);
|
VectorValues deltaPCGJacobi = PCGSolver(*pcg).optimize(simpleGFG);
|
||||||
|
@ -107,21 +107,21 @@ TEST(PCGSolver, simpleLinearSystem) {
|
||||||
// Solve the system using Preconditioned Conjugate Gradient solver
|
// Solve the system using Preconditioned Conjugate Gradient solver
|
||||||
// Common PCG parameters
|
// Common PCG parameters
|
||||||
gtsam::PCGSolverParameters::shared_ptr pcg = std::make_shared<gtsam::PCGSolverParameters>();
|
gtsam::PCGSolverParameters::shared_ptr pcg = std::make_shared<gtsam::PCGSolverParameters>();
|
||||||
pcg->setMaxIterations(500);
|
pcg->maxIterations = 500;
|
||||||
pcg->setEpsilon_abs(0.0);
|
pcg->epsilon_abs = 0.0;
|
||||||
pcg->setEpsilon_rel(0.0);
|
pcg->epsilon_rel = 0.0;
|
||||||
//pcg->setVerbosity("ERROR");
|
//pcg->setVerbosity("ERROR");
|
||||||
|
|
||||||
// With Dummy preconditioner
|
// With Dummy preconditioner
|
||||||
pcg->setPreconditionerParams(
|
pcg->preconditioner =
|
||||||
std::make_shared<gtsam::DummyPreconditionerParameters>());
|
std::make_shared<gtsam::DummyPreconditionerParameters>();
|
||||||
VectorValues deltaPCGDummy = PCGSolver(*pcg).optimize(simpleGFG);
|
VectorValues deltaPCGDummy = PCGSolver(*pcg).optimize(simpleGFG);
|
||||||
EXPECT(assert_equal(expectedSolution, deltaPCGDummy, 1e-5));
|
EXPECT(assert_equal(expectedSolution, deltaPCGDummy, 1e-5));
|
||||||
//deltaPCGDummy.print("PCG Dummy");
|
//deltaPCGDummy.print("PCG Dummy");
|
||||||
|
|
||||||
// With Block-Jacobi preconditioner
|
// With Block-Jacobi preconditioner
|
||||||
pcg->setPreconditionerParams(
|
pcg->preconditioner =
|
||||||
std::make_shared<gtsam::BlockJacobiPreconditionerParameters>());
|
std::make_shared<gtsam::BlockJacobiPreconditionerParameters>();
|
||||||
VectorValues deltaPCGJacobi = PCGSolver(*pcg).optimize(simpleGFG);
|
VectorValues deltaPCGJacobi = PCGSolver(*pcg).optimize(simpleGFG);
|
||||||
EXPECT(assert_equal(expectedSolution, deltaPCGJacobi, 1e-5));
|
EXPECT(assert_equal(expectedSolution, deltaPCGJacobi, 1e-5));
|
||||||
//deltaPCGJacobi.print("PCG Jacobi");
|
//deltaPCGJacobi.print("PCG Jacobi");
|
||||||
|
|
|
@ -83,7 +83,7 @@ int main(int argc, char* argv[]) {
|
||||||
// params.setVerbosityLM("SUMMARY");
|
// params.setVerbosityLM("SUMMARY");
|
||||||
// params.linearSolverType = LevenbergMarquardtParams::Iterative;
|
// params.linearSolverType = LevenbergMarquardtParams::Iterative;
|
||||||
// auto pcg = std::make_shared<PCGSolverParameters>();
|
// auto pcg = std::make_shared<PCGSolverParameters>();
|
||||||
// pcg->preconditioner_ =
|
// pcg->preconditioner =
|
||||||
// std::make_shared<SubgraphPreconditionerParameters>();
|
// std::make_shared<SubgraphPreconditionerParameters>();
|
||||||
// std::make_shared<BlockJacobiPreconditionerParameters>();
|
// std::make_shared<BlockJacobiPreconditionerParameters>();
|
||||||
// params.iterativeParams = pcg;
|
// params.iterativeParams = pcg;
|
||||||
|
|
Loading…
Reference in New Issue