qpOASES is an open-source C++ implementation of the recently proposed online active set strategy for solving quadratic programming (QP) problems. It has several theoretical features that make it particularly suited for model predictive control (MPC) applications. Further numerical modifications have made qpOASES a reliable QP solver, even when tackling semi-definite, ill-posed or degenerated QP problems. Moreover, several interfaces to third-party software make the code easy-to-use. qpOASES has been under development since 2007 and has proven useful in numerous real-world applications and industrial projects.
The JuMP Team announced the release of JuMP 0.5, an open-source algebraic modeling language in Julia, now with support for algebraic modeling of nonlinear problems using Ipopt with a familiar scalar-based syntax similar to AMPL and GAMS. JuMP can efficiently compute sparse Jacobians and Hessians for large-scale problems using reverse-mode automatic differentiation coupled with Julia’s powerful just-in-time compilation abilities to generate and compile specialized matrix generators at runtime, all in memory. For example code, see the documentation.
Benoit Chachuat announced a new project in COIN-OR: MC++ provides an implementation of various methods for computing bounds for factorable functions, in the form of convex/concave relaxations, Taylor models, or spectral bounds. A main objective in developing MC++ has been to make the bounds computation as simple and natural as possible, similar to existing interval arithmetic libraries. This way, MC++ can be quite useful for the fast prototyping and testing of new algorithms and ideas in global or robust optimization. See the MC++ project page for more information.
The Smi (Stochastic Modeling Interface) has the capability to assemble stochastic linear programs based on scenario trees. Alan King announced that quadratic programming has recently been added to the Smi capabilities. The current stable version 0.94 includes interfaces for constructing a quadratic stochastic program using the core problem / stochastic data paradigm. The unit test contains a use case.
The winners of the 2013 COIN-OR Cup are Miles Lubin, Julian Hall, Cosmin Petra, and Mihai Anitescu for a parallel, distributed-memory simplex implementation for large-scale block-angular LPs, motivated by energy applications of two-stage stochastic programming. At the core of the implementation is specialized linear algebra for factorizing and solving linear systems with the simplex basis matrix at each iteration. COIN-OR libraries, in particular the CoinFactorization class of the CoinUtils package, were a foundation for their implementation.
In addition to ranking highly on the stated criteria of effective use and impact, this submission stood out to the judges for its close alignment with the interests of the COIN-OR originators. The judges also were impressed that the submitters were looking so deeply into the CoinFactorization code. This is an especially difficult task given the provenance of this part of COIN.
The Apache Software Foundation (ASF) has announced availability of OpenOffice version 3.4.0. Among its new features: The linear programming solver in the Calc spreadsheet program has been replaced with COIN-OR tools. The spreadsheet uses the CoinMP API, which in turn uses the COIN-OR Branch and Cut MIP solver (CBC) and the COIN-OR Linear Programming solver (CLP) as solver engines, the Open Solver Interface (OSI), the Cut Generator Library (CGL) and the CoinUtils utility library.
David Savourey and Leo Liberti announced the new ROSE (Reformulation/Optimization Software Engine) project. ROSE is an automatic reformulation software for mathematical programs. ROSE works either stand-alone (mostly for debugging purposes) or as an AMPL solver. As AMPL is very much closed-source and has no facilities for editing a “structured formulation” (i.e. a formulation involving indices and quantifiers) in memory, ROSE writes its output (usually a reformulated version of the mathematical programming formulation given in input) as a text file. This may be an input to further processing software (such as a numerical solver), or a “flat formulation” (i.e. a formulation without indices where all the parameter symbols have been replaced by numerical data) again in AMPL format. More information can be found on the ROSE project page.
Mike Steglich and Thomas Schleiff announced CMPL. CMPL is a mathematical programming language and a system for modelling, solving and analyzing linear programming (LP) problems and mixed integer programming (MIP) problems. The CMPL syntax is similar in formulation to the original mathematical model but also includes syntactic elements from modern programming languages. CMPL uses the COIN-OR OSSolverService to solve LP and MIP problems. For more information, please visit the CMPL project page.