Mathematical optimization is witty. It can answer all your questions on the assumption that you know how to ask them. How should I invest my money? What is the ideal schedule of Premier League matches? How should I build a wing of a plane? What is the best pizza delivery plan? And yet, there is no magic. Mathematical optimization solvers, these clever oracles which can save you a headache deciding which option is the best, are just pieces of software following basic principles in mathematics. In fact, they are in some sense very simple creatures. They just keep improving your solution step by step whilst they are able. And when they cannot improve anymore? They have probably found the solution!
Obviously, the reality is slightly more complicated than this. At NAG we always pay great attention to our documentation. Everything needs to be well-explained and understandable but there is never enough space to cover all of the interesting topics - be they the inspiring theory beneath the algorithm or frequent questions our users might ask us. On what problems is solver X faster than solver Y? Why should I reformulate my model currently containing an absolute value? What is the impact of scaling? So we decided to start writing about these subjects in a new blog posts series. The NAG Optimization Corner, a place where we discuss (seriously or less so) all the exciting issues covering optimization. We will aim to publish every other Wednesday (or every 3 weeks if we are busier than usual). Hopefully, you will find something which grabs your attention.
We will start today with a topic that is central to the majority of classical optimization solvers - derivatives. In this mini-series we will discuss the impact of having them, how good an approximation has to be made and what the alternatives are. These will be interlaced by articles focusing on modelling (what reformulation "tastes" the best to the solver), how to choose the right tools for the job, and many more. Do you know what building a bridge and semidefinite programming have in common? Or why the optimal solution might not be the one to use at the end? We will find out!
I hope you enjoy our new series.
On behalf of the NAG Optimization Team,