test optimization with Rosenbrock function
							parent
							
								
									83e3fdaa24
								
							
						
					
					
						commit
						8a0bbe9666
					
				|  | @ -207,7 +207,7 @@ TEST(NonlinearConjugateGradientOptimizer, Rosenbrock) { | |||
| TEST(NonlinearConjugateGradientOptimizer, Optimization) { | ||||
|   using namespace rosenbrock; | ||||
| 
 | ||||
|   double a = 7; | ||||
|   double a = 12; | ||||
|   auto graph = GetRosenbrockGraph(a); | ||||
| 
 | ||||
|   // Assert that error at global minimum is 0.
 | ||||
|  | @ -215,7 +215,7 @@ TEST(NonlinearConjugateGradientOptimizer, Optimization) { | |||
|   EXPECT_DOUBLES_EQUAL(0.0, error, 1e-12); | ||||
| 
 | ||||
|   NonlinearOptimizerParams param; | ||||
|   param.maxIterations = 50; | ||||
|   param.maxIterations = 350; | ||||
|   // param.verbosity = NonlinearOptimizerParams::LINEAR;
 | ||||
|   param.verbosity = NonlinearOptimizerParams::SILENT; | ||||
| 
 | ||||
|  | @ -224,15 +224,20 @@ TEST(NonlinearConjugateGradientOptimizer, Optimization) { | |||
|   initialEstimate.insert<double>(X(0), x); | ||||
|   initialEstimate.insert<double>(Y(0), y); | ||||
| 
 | ||||
|   std::cout << f(graph, x, y) << std::endl; | ||||
|   GaussianFactorGraph::shared_ptr linear = graph.linearize(initialEstimate); | ||||
|   // std::cout << "error: " << f(graph, x, y) << std::endl;
 | ||||
|   // linear->print();
 | ||||
|   linear->gradientAtZero().print("Gradient: "); | ||||
|   // linear->gradientAtZero().print("Gradient: ");
 | ||||
| 
 | ||||
|   NonlinearConjugateGradientOptimizer optimizer(graph, initialEstimate, param); | ||||
|   Values result = optimizer.optimize(); | ||||
|   result.print(); | ||||
|   cout << "cg final error = " << graph.error(result) << endl; | ||||
|   // result.print();
 | ||||
|   // cout << "cg final error = " << graph.error(result) << endl;
 | ||||
| 
 | ||||
|   Values expected; | ||||
|   expected.insert<double>(X(0), a); | ||||
|   expected.insert<double>(Y(0), a * a); | ||||
|   EXPECT(assert_equal(expected, result, 1e-1)); | ||||
| } | ||||
| 
 | ||||
| /* ************************************************************************* */ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue