Is there some special algorithm to minimize polynomial functions?

910 Views Asked by At

I have an optimization problem of the form

$$\begin{array}{ll} \underset{\textbf{x} \in \Bbb R^4}{\text{minimize}} & f(\textbf{x})\\ \text{subject to} & \textbf{x} \in \Omega\end{array}$$

where $f$ is a degree-$8$ multivariate polynomial function, and $\Omega$ is a $4$-dimensional box (i.e., the Cartesian product of $4$ closed intervals). I would like to solve it in the most efficient way.

2

There are 2 best solutions below

2
On BEST ANSWER

As mentioned in a comment above, you can optimize a polynomial over a semialgebraic set by transforming the problem into a question regarding the positivity of a polynomial over a semialgebraic set---which can be answered using a positivestellensatz. Parrillo and Lasserre independently constructed a sequence of converging SDP relaxations that can be used to address this problem. You can read about it in the article posted above (link respost: https://arxiv.org/pdf/math/0103170.pdf), here: http://www.princeton.edu/~aaa/Public/Presentations/IOS16_deKlerk.pdf, or here: https://doi.org/10.1017/CBO9781107447226.

It seems that you want to solve a specific problem. You can use one of the available packages for sum-of-squares, for example:

  1. SOSTOOLS: http://www.cds.caltech.edu/sostools/
  2. Gloptipoly: https://homepages.laas.fr/henrion/software/gloptipoly/
  3. Yalmip: https://yalmip.github.io/tutorial/momentrelaxations/

That being said, I will perhaps misuse the no free lunch theorem, to say that: there is no single best algorithm for all polynomial optimization problems. Although, SDP relaxations are great or are the best in general, perhaps for specific problems you can do even better. For a degree-8 multivariate polynomial over a box, I would first try Wolfram Alpha or Mathematica. I would bet that symbolic methods work great over four dimensions.

2
On

I would look into global optimization based on interval analysis: https://github.com/JuliaIntervals/IntervalOptimisation.jl
It's not necessary the fastest, but it gets you the global minimum.