mit-acl / mader

Trajectory Planner in Multi-Agent and Dynamic Environments
BSD 3-Clause "New" or "Revised" License
465 stars 77 forks source link

Gurobi implementation of QCQP #4

Closed caomuqing closed 2 years ago

caomuqing commented 2 years ago

Hi,

Firstly, thanks for this wonderful package. Upon looking into the codes, I realize that the Gurobi version does not implement the original QCQP problem introduced in the paper, but instead it uses the initial guesses of the plane parameters as constants. I would like to ask, is this purely for efficiency reasons, or it is because Gurobi is not capable of solving this type of problem? From Gurobi documentation it seems capable of solving QCQP, but it requires the problem to be convex. Thank you!

Best Regards, Mq

jtorde commented 2 years ago

Hi @caomuqing,

Thanks for reporting this issue. Yes, as you said, the Gurobi implementation fixes the planes during the optimization. In the NLOPT implementation, this is not the case though. When coding the Gurobi implementation, we used Gurobi 8.1, which, as you noted, is not capable of solving nonconvex problems. Hence, the planes need to be fixed in that case. Having the planes fixed is more efficient, although more conservative as well.

However, Gurobi recently added support for nonconvex problems (in Gurobi 9.0), so optimizing the planes could be an option. It's still not implemented right now in the code though (any pull requests on this are welcome).

Hope this helps!

caomuqing commented 2 years ago

Hi jtorde,

Thanks for your information! I have tried the nonconvex quadratically constrained optimization of Gurobi, and it appears to be working. I will try to implement this and submit a pull request in the near future.

Best Regards, Mq