25 #include <gtest/gtest.h>
31 #define private public
50 double value = fun.calculateValue(x);
51 double abs_diff = 1.0;
52 while (abs_diff > eps) {
54 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
58 value = fun.calculateValue(x);
59 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
62 abs_diff = std::abs(value - fun.minValue());
65 ASSERT_GE(eps, std::abs(fun.calculateValue(x) - fun.minValue()));
66 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
76 for (
size_t i=0; i<20; i++)
83 double abs_diff = 1.0;
84 while (abs_diff > eps) {
85 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
89 double value = fun.calculateValue(x);
90 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
93 abs_diff = std::abs(value - fun.minValue());
98 ASSERT_GE(eps, std::abs(fun.calculateValue(x) - fun.minValue()));
99 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
112 size_t iteration = 0;
113 double abs_diff = 1.0;
114 while (abs_diff > eps) {
115 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
119 double value = fun.calculateValue(x);
120 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
123 abs_diff = std::abs(value - fun.minValue());
126 ASSERT_GE(eps, std::abs(fun.calculateValue(x) - fun.minValue()));
127 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
141 size_t iteration = 0;
142 double abs_diff = 1.0;
143 while (abs_diff > eps) {
144 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
148 double value = fun.calculateValue(x);
149 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration <<
" for ni =" << ni;
152 abs_diff = std::abs(value - fun.minValue());
155 ASSERT_GE(eps, std::abs(fun.calculateValue(x) - fun.minValue()));
156 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
Test fixture - artificial landscape - sphere function 20D (square function).
TEST_F(Sphere1DLandscape, GradPID_Convergence)
Test fixture - artificial landscape - Rosenbrock function 2D.
Test fixture - artificial landscape - sphere function 1D (square function).
GradPID - adaptive gradient descent with proportional, integral and derivative coefficients.
Test fixture - artificial landscape - Beale's function 2D.
virtual void update(mic::types::MatrixPtr< eT > p_, mic::types::MatrixPtr< eT > dp_, eT learning_rate_, eT decay_=0.0)