Open Abzinger opened 5 years ago
I see this issue often in my work. I think it might be related to how ECOS defines search directions with different types of cones. Specifically, I believe ECOS employs a Mehrotra corrector (or Mehrotra-like corrector) for LP and SOCP constraints but employs no such corrector for exponential cones. The thesis you cite relates to the original ECOS implementation. For the exponential cone, you should refer to Santiago's thesis: https://web.stanford.edu/group/SOL/dissertations/ThesisAkleAdobe-augmented.pdf. The concept of Mehrotra correctors for non-symmetric cones was not understood at the time of Santiago's thesis. Quoting from Chapter 10:
In this section we explore our variant of the Mehrotra predictor-corrector. This variant has two important differences with respect to the original MPC. It restricts the iterates to a region close to the central path, and since, for the variables corresponding to the exponential cones no second-order information is available, it only approximates the direction of the central path with respect to the variables in the exponential cone to first order.
If ECOS were to be enhanced with a proper Mehrotra-corrector for the exponential cone (see https://docs.mosek.com/whitepapers/expcone.pdf), then I believe these issues would largely go away.
I'm using ECOS (Python) as a subroutine to solve Exponential Cone Programs. I have used it for two different projects and in both, I noticed that up 3% of the instances fail to be solved and the reason is
Combined backtracking failed 0 0 90 0 sigma 1
As a far as I understood from "Ecos" Thesis that problem lies in the line search. The question is there something which I can do within ECOS to tune the line searching method?ECOS output for the instance reported is
P.S. I have other similar instances. If anyone needs to test the instances, I can share the GitHub repository and explain how to use it.
P.P.S I opened the same issue in ecos-python repository.
Cheers