Example #1
0
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))
Example #2
0
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))
Example #3
0
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))
Example #4
0
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))
Example #5
0
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)
Example #6
0
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))
Example #7
0
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)
Example #8
0
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)