0

I am trying to solve a nonconvex-quadratic optimization problem on CPLEX, with setting optimality target to 2. Trying with different data sets I observed that the barrier method stops at the 500th iteration. I checked the settings, it is set to a very large number. Is it a coincidence or should I change any other setting?

I also have convex-quadratic version of the problem, with binary variables. However, CPLEX could not find an improving solution within hours, so I terminated the runs. Any tuning suggestions for this is also appreciated. Note: The problem is a facility layout optimization problem

Thanks in advance.

osygl
  • 13
  • 2
  • Apart from wondering why you would compare local-optimization (`optimality target to 2 + non-convex`) to global-optimization (`convex miqp`), it's probably important to make more clear what you are asking: `I observed that the barrier method stops at the 500th iteration` what does that mean? with which status (!!!)? what did you expect? – sascha Jan 06 '20 at 13:53
  • My intention was not to compare: I could not get a solution (stacked with %100 optimization gap) to the convex miqp, so I tried to get at least a feasible solution to non-convex one. I wondered if there exists a tuning option which I miss out to get a solution. About the barrier method, I think there is an other stopping condition (satisfying first-order optimality conditions), however, I have seen on the log that Cplex terminated on 500th iteration with different data sets. So, I am asking is this due to a setting, or just a coincidence? Thanks for your interest. – osygl Jan 07 '20 at 07:08
  • Checking cplex' status is your number one priority. It will tell you something about why it stopped. (and IPMs / Barrier stopping conditions are higher-order (not first-order) i suppose) – sascha Jan 07 '20 at 09:38
  • You may want to show the Cplex log. – Erwin Kalvelagen Jan 07 '20 at 12:37

1 Answers1

0

If CPLEX gets stuck after 500 iterations then this may be a numerical issue. It is definitely not expected that CPLEX gets stuck for a longer time. In order to debug this you could increase the display verbosity for barrier (CPX_PARAM_BARDISPLAY) and also check whether the CPU is still active. If CPLEX gets stuck due to numerical issues then you could try to enable numerical emphasis (CPX_PARAM_NUMERICALEMPHASIS).

If CPLEX does not get stuck but just terminates after 500 iterations then you want to check the status value that CPLEX returns. In that case also the engine log may contain more information.

Finally, in order to tune parameters, CPLEX comes with a tuning tool.

Daniel Junglas
  • 5,830
  • 1
  • 5
  • 22