What's new in Algorithmic Capabilities?

  • 14 March 2023
  • 0 replies
What's new in Algorithmic Capabilities?
Userlevel 6
Badge +6

What's new in Algorithmic Capabilities? 

We keep close eyes on algorithms for optimization, and do our best to bring in new solvers that can benefit AIMMS users. When a new solver arrives on the market, we have a vetting process to see how it compares to those already offered with AIMMS. Additionally, we take into consideration our users' specific needs.

Read on to find out more about this process, especially as we added two new solvers last year: Octeract and COPT


Testing and evaluating 

Modern linear solvers can read and write MPS files which is a standard file format for presenting linear models. We have a large collection of MPS files which we use to evaluate a new solver using an automated process. This way we can test a linear solver with minimal effort -- we do not have to first create a link with AIMMS. Once we run the solver on our benchmarks of MPS files, we can compare its performance with other solvers. 

To evaluate a nonlinear solver we have to create a link with AIMMS first, which takes much more effort. In that case we rely on public benchmarks from others (e.g., the benchmarks from Hans Mittelmann) and on feedback from the solver supplier. That means evaluating a nonlinear solver is riskier, so we are quite selective. 


An active relationship with solver development 

Once we bring a new solver into our offering, we keep up an active relationship with the provider. Just as we value our own users' experience with our product, we can give highly useful feedback to solver developers that influences the solver performance.

Experience shows that relatively new solvers still have a lot of room to improve and often improve quickly. Later the rate of improvement slows down, as they mature. When we are early adopters, we're actively helping them to improve. In our testing we find bugs to report, and when we find a model where it doesn't perform well, we send it to them so they can improve its performance on that model. This kind of input is, of course, ultimately to our and our users' benefit if the solver's performance improves, so it is worth our while to do the testing and give detailed feedback. 

And the relationship doesn't end with this early, exciting period. We have regular meetings with solver developers and keep close when new versions are up for release.


Octeract, a powerful global nonlinear solver 

Octeract is a nonlinear solver with global optimization capabilities. Meaning, of course, that it not only finds "a" best solution, but "the" best solution, with proof. We first came across Octeract's claims to be the best global solver on the market, which were generating some interest. We decided to build a link and then tested this claim (using version 4.3) on many problems. 

There's more to say about this solver. Stay tuned, as we'll dive deeper into this in a future article!


COPT, a linear solver born in China 

COPT, also recently added, is a new linear solver. So far our testing shows that it can't outperform competitors across the board, as you might expect for a solver this early in its development. But in some cases it does show the best performance. Unfortunately, it's hard to generalize in which cases this may be. However, with more input from users testing it on their models, we can hope to see wider improvements in the time to come. 

A major benefit of COPT, for some users, is that it is developed in China, and is therefore attractive to the Chinese and Asian market. (While we would love to say that math transcends geography, when it comes to business concerns this is not always the case.)

And, with interested users giving their input, there is big potential to improve quickly. We've seen massive improvements in the second version of COPT, which we hope will continue in future versions. 


Both Octeract and COPT are included free for academic use with an AIMMS Academic License.

0 replies

Be the first to reply!


Didn't find what you were looking for? Try searching on our documentation pages:

AIMMS Developer & PRO | AIMMS How-To | AIMMS SC Navigator