def test_simple_newton(): startPoint = numpy.zeros(2, numpy.float) optimi = optimizer.StandardOptimizer( function=Quadratic(), step=step.NewtonStep(), criterion=criterion.RelativeValueCriterion(0.00001), x0=startPoint, line_search=line_search.SimpleLineSearch()) assert_almost_equal(optimi.optimize(), numpy.array([1, 3], dtype=numpy.float))
def test_damped_gradient_relative(): startPoint = numpy.zeros(2, numpy.float) optimi = optimizer.StandardOptimizer( function=Quadratic(), step=step.GradientStep(), criterion=criterion.RelativeValueCriterion(0.00001), x0=startPoint, line_search=line_search.DampedLineSearch(damped_error=0.001, min_alpha_step=0.0001)) assert_almost_equal(optimi.optimize(), numpy.array([1, 3], dtype=numpy.float))
def test_simple_newton_relative(): startPoint = numpy.empty(2, numpy.float) startPoint[0] = -1.01 startPoint[-1] = 1.01 optimi = optimizer.StandardOptimizer( function=Rosenbrock(2), step=step.NewtonStep(), criterion=criterion.RelativeValueCriterion(0.00001), x0=startPoint, line_search=line_search.SimpleLineSearch()) assert_almost_equal(optimi.optimize(), numpy.ones(2, numpy.float))
def test_swp_frgradient_relative(): startPoint = numpy.zeros(2, numpy.float) optimi = optimizer.StandardOptimizer( function=Quadratic(), step=step.FRConjugateGradientStep(), criterion=criterion.criterion(ftol=0.000001, iterations_max=1000, gtol=0.0001), x0=startPoint, line_search=line_search.StrongWolfePowellRule()) assert_almost_equal(optimi.optimize(), numpy.array([1, 3], dtype=numpy.float))
def test_simple_marquardt(): startPoint = numpy.zeros(2, numpy.float) optimi = optimizer.StandardOptimizer( function=Quadratic(), step=step.MarquardtStep(), criterion=criterion.criterion(gtol=0.00001, iterations_max=200), x0=startPoint, line_search=line_search.BacktrackingSearch()) opt = optimi.optimize() assert_almost_equal(optimi.optimize(), numpy.array([1, 3], dtype=numpy.float), decimal=5)
def test_wpr_cwgradient(): startPoint = numpy.empty(2, numpy.float) startPoint[0] = -1.01 startPoint[-1] = 1.01 optimi = optimizer.StandardOptimizer( function=Rosenbrock(2), step=step.CWConjugateGradientStep(), criterion=criterion.criterion(iterations_max=1000, ftol=0.00000001, gtol=0.0001), x0=startPoint, line_search=line_search.WolfePowellRule()) assert_array_almost_equal(optimi.optimize(), numpy.ones(2, numpy.float))
def test_simple_gradient_monotony(): startPoint = numpy.empty(2, numpy.float) startPoint[0] = -1.01 startPoint[-1] = 1.01 optimi = optimizer.StandardOptimizer( function=Rosenbrock(2), step=step.GradientStep(), criterion=criterion.OrComposition(criterion.MonotonyCriterion(0.00001), criterion.IterationCriterion(10000)), x0=startPoint, line_search=line_search.SimpleLineSearch(alpha_step=0.001)) assert_almost_equal(optimi.optimize(), numpy.ones(2, numpy.float), decimal=1)
def test_simple_newton(): startPoint = numpy.empty(4, numpy.float) startPoint[0] = 3. startPoint[1] = -1. startPoint[2] = 0. startPoint[3] = 1. optimi = optimizer.StandardOptimizer( function=Powell(), step=step.NewtonStep(), criterion=criterion.OrComposition( criterion.RelativeValueCriterion(0.00000001), criterion.IterationCriterion(1000)), x0=startPoint, line_search=line_search.SimpleLineSearch()) assert_array_almost_equal(optimi.optimize(), numpy.zeros(4, numpy.float), decimal=2)