Package: oppy
oppyOptimization Package in PythonDocumentation is available in the docstrings and
onlinehere.The idea behind oppy was to provide some optimization methods which are used
in the group of Prof. Dr. Volkwein quite often. After a while oppy
grew up to a whole optimization package.Besides algorithms for solving constrained, unconstrained and non-linear
optimization problems, the package contains built-in iterative methods for
solving linear systems.Advanced methods for optimization are included such as SQP (Square Quadratic
Programming), Augmented Lagrangian and different newton-type methods.
Furthermore certain Krylov methods are implemented for solving linear
systems in a stable way.The goal is to provide a straightforward integration of the library to other
applications such that other methods benefit from it.The package is still in develop mode. If you want to install oppy usepip install git+https://gitlab.inf.uni-konstanz.de/ag-volkwein/oppyFor access, further questions, remarks and ideas please contact
usagvolkwein.oppy@uni-konstanz.de. See also the websitehere.Available subpackagesconOptSubpackage which provide some methods for constraint optimization. For
problems which are subject to equality and inequality constraints likemin f(x)
s.t. e(x) = 0
g(x) <= 0we can usePenalty MethodAugmented Lagrangian MethodSQP with a BFGS update strategy (at the moment only equality constraint)and for box constraint problems likemin f(x) 
s. t. x_a <= x <= x_bwe can useProjected gradient MethodThe L-BFGS-B MethodProjected Newton-Krylov Method (if you can provide the
action of the second derivative)itMetIterative methods for solving linear systems likeAx = b.Here we can use either stationary methods likeJacobiGauÃŸ-SeidelSORor we use krylov methods likesteepest descentCGGMRESFor future release we are planing to add preconditioning in the
krylov methods. There of course you will be able to use the
stationary methods as precondition method.linOptLinear optimization methods. With the methods in this subpackage we can either
solve linear least-squares problem likemin ||Ax - b||_2or we solve linear programmingmax  c^T x
s. t. Ax <= b
x <= 0with or without integer constraints. For that kind of problems we have
the following methods:linear least squaresimplexbranch and boundmultOptScalarization methods for solving (possibly box-constrained) multiobjective
optimization problems of the formmin (f_1(x), ..., f_k(x)),
s.t. x_a <= x <= x_b.The general idea of scalarization methods is to transform the
multiobjective optimization problem into a series of scalar optimization
problems. which can then be solved by using methods from unconstrained or
constrained optimization (see the subpackages unconOpt or conOpt). Here we
can use the following three scalarization methodsWeighted-Sum Method (WSM)Euclidean Reference Point Method (ERPM)Pascoletti-Serafini Method (PSM)optionsThis subpackage contains the options class for all methods use in oppy.resultsThis subpackage contains the class for the returns which oppy use.testsUnittests of oppy.unconOptSubpackage which provide some methods for unconstrained optimization, e.g:min f(x)Right now we can solve this kind of problems with line search based first-
and second-order methods.Line Search MethodsArmijoWolfe-PowellOptimization MethodsGradient MethodNewton MethodNonlinear CG (with different strategies like Fletcher-Reves)Quasi-Newton Methods (with different strategies like
BFGS, Broyden, DFP, ...)visualizationSome methods for visualization.