-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JuMP interface for Optimization using Homotopy Continuation #446
Comments
Absolutely, yes. It is certainly a good idea to integrate both systems. As a side note: I am also quite interested reasearch-wise to apply these algebraic methods to optimization. So yes, let's do it! |
I would translate a small problem from JuMP in to a polynomial form in your language, so we can have a first idea what is involved in the translation. |
I would not put inequality constraints, but simply check a posteriori, which variables satisfy the constraints. You should also note that homotopy continuation computes in C, so the variable explosion also causes an explosion in the number of solutions. |
The problem i am modeling is:
I am not sure this optimization problem is sensible when we remove the inequality constraints. So i transcribed the problem into your language but i run into a problem with the inequality constrains i think
|
This "toy problem" has no equality constraints and the unconstrained problem would just blow up in a similar way:
Any ideas where to go from here? |
Hi, for such problems that have inequalities one can use the KTT conditions. Below, you can find code that writes down those conditions for your toy problem. This system, however, has a lot of structure. Observe that However, in general, for this simple problem, there are 137817 complex solutions. I imagine that more complex problems are nearly infeasible. This is why modelling a problem as zeros of polynomial systems often is not suited to problems involving inequalities. (I deleted an earlier answer. The reference to KKT makes my answer clearer)
|
PolyJuMP models problem where the decision variables are part of the coefficients of the polynomials. We are not trying to find values of the variables of the polynomials, we are rather trying to find values of the decision variables so that the polynomial inequalities and equalities are satisfied for all values of the polynomial variables. @PBrdng Solving optimization problems using solvers for systems of algebraic equations might seem crazy as there may be too many solution but I have also seen it here: https://www.sciencedirect.com/science/article/pii/S1474667015381179 where they present another approach for solving polynomial systems (it's basically Groebner Basis but instead of using the numericaly unstable Gaussian Elimination to in the Groebner basis computation they use SVD). I would also be interested to write a MOI solver parametrized by a |
It's not crazy for some optimization problems. A rule of thumb is that for few inequalities, solving the KKT equations can be done. Note that HC.jl can solve systems of equations with up to several-ten-thousand solutions easily.
You mean something like |
You mean something like Sometimes, you get the closed form expression so you can hardcode the algebraic expression of the solution, see e.g.: https://github.com/jump-dev/MathOptInterface.jl/blob/8d8beb387551d45138857bd472328718ba98ca8e/src/Test/contconic.jl#L4074-L4131. |
I understand, but is it a polynomial (univariate) or a system of polynomial equations? |
Homotopy Continuation can be used to solve and optimize highly non convex problems.
JuMP at the moment has really limited support for polynomial systems (that my change by JuMP 2.0) however there is an JuMP extension https://github.com/jump-dev/PolyJuMP.jl that supports polynomial systems.
Would there be interest that at some future point in time your work is available from the JuMP ecosystem?
Imagine that Homotopy Continuation might also be useful to solve really helpful for very non convex problems by finding minimas of a higher order (3rd/4th) polynomial approximation inside some trust region and do so for different trust regions.
The text was updated successfully, but these errors were encountered: