Esempio n. 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))
Esempio n. 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))
Esempio n. 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))
Esempio n. 4
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)