Optimization Algorithms in Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
yannopt
.gitignore
README
TODO

README

=======
yannopt
=======

Optimization algorithms. Lots of them. This is a work in progress -- use at
your own risk of numerical underflow.

========
Examples
========

    >>> from yannopt.optimizers import LBFGS
    >>> from yannopt.learning_rates import BacktrackingLineSearch
    >>> from yannopt.stopping_criteria import MaxIterations
    >>> from yannopt.testing import check_optimizer
    >>> from yannopt.testing import problems
    >>> 
    >>> 
    >>> class Optimizer(BacktrackingLineSearch, MaxIterations, LBFGS):
    >>>   def __init__(self, n_iter):
    >>>     BacktrackingLineSearch.__init__(self, a=0.5)
    >>>     MaxIterations.__init__(self, n_iter)
    >>>     LBFGS.__init__(self, k=2)
    >>> 
    >>> # Define objective function
    >>> A = np.array([[1.0, 0.5, 0.0],
    >>>               [0.5, 1.0, 0.5],
    >>>               [0.0, 0.5, 1.0]])
    >>> b = np.array([1.0, 2.0, 3.0])
    >>> objective = f.Quadratic(A, b)
    >>> 
    >>> # Define problem (objective + constraints)
    >>> problem   = minimize(objective)
    >>> x0        = np.zeros(len(b))
    >>>
    >>> # Optimize!
    >>> optimizer = Optimizer(20)
    >>> solution  = optimizer.optimize(problem, x0)
    >>> print 'The minimizer of f(x) = 0.5 x'Ax - b is %s'.format(solution.x)