예제 #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))
예제 #2
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))
예제 #3
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)
예제 #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)