Today we officially launch the Peerless Optimizer. An optimization library and services that is the result of around three years of research. Peerless has few key points that makes it slightly different than other solvers in the market, but these small differences have a deep impact on how mathematical optimization projects are approached.
One of the main differences is that the implementation allows the user to submit any kind of problem. By any kind we mean discontinuous, non-differential, non-convex, etc. The only requirement is that, evaluating the functions in the same point more than once delivers the same results, that is, the evaluations are deterministic (notice that this doesn’t mean that problems must be deterministic, problems can be stochastic, just that the evaluations of the functions must always return the same result).
This allows you to model the processes under consideration as close as possible to reality, and avoid approximating the functions using piecewise linear or convex expression, or using decomposition techniques to overcome solver’s limitations. With Peerless, problems can belong to any class, variables can be continuous or discrete, they can have multiple optima, etc. The software takes care of applying the most efficient algorithm to solve the problem.
We know that there is a close relation between the model definition and the algorithms performance, and this is still true for Peerless. The experience of the modeller is still of uttermost importance when designing a mathematical optimization model, just that Peerless is a very useful tool to leverage the experience and knowledge of the practitioner.
For example, with Peerless it is easier to migrate from one type of model to the other, or introduce aspects that will otherwise have the consequence of fully rewriting the model. It is frequent to start an optimization project and design the model as a Mixed-Integer linear Programming model, after a few months, a simple nonlinear constraint has to be included in the model. In some cases, for example when using the software packages API’s, it simply isn’t possible to include this small changes because the software cannot handle nonlinear expressions. If you’re using an algebraic modelling language you can add the constraints, but you’ll be forced to buy a different software, that might solve the nonlinear version, but the performance will not be sufficient for the linear cases, that is, you’ll be forced to buy two software. With Peerless, you buy a subscription to the service and you get to solve all types of models.
Another feature that might not seem relevant is that Peerless is distributed as a service by default (we have on premises offers in the roadmap). We find this relevant because in many projects, moving to a client-server architecture requires extra effort and comes with some hurdles to overcome along the way. Also, the price of our services is the same independently of the number of concurrent executions of the software, and you can upgrade and downgrade you’re subscription as you go. We’ll talk more about this in another post where we’ll build different business cases comparing our pricing schema to the ones of other popular optimization software packages.
We have some ambitious plans for the future that include machine learning, surrogate models, scenario-based stochastic optimization, programming language bindings, on premises offering, and more. This year we’re planning to release two versions of the software, packed with features and performance improvements.
Stay tuned, and subscribe to our newsletter, for news, benchmarks and use cases.