-
Notifications
You must be signed in to change notification settings - Fork 13
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
Infeasibility Detection #10
Comments
Indeed, it's not mentioned in the paper (due to space constraints). Basically, what's happening is that for a primal infeasible problem the dual variables of the local problem ( This method of infeasibilty detection works, but might not be the most robust and can take quite some iterations to trigger. Another option is to change the problem formulation to a homogeneous embedding, which detects infeasibility as part of its convergence to optimality. Actually, SCS switched to this approach in the latest version (see corresponding paper) which is also employed by the new Clarabel solver. I've actually playing around with the idea to also add this to PIQP, but haven't found time and a reason to do so. Normally, I'm solving feasible problems :). On this note, there are also results which show that the Methods of Multipliers algorithm converges to "the closest" feasible solution of a primal infeasible problem. This might be an interesting adaptation to our algorithm, to allow for "infeasible problem-solving", i.e., still converge but to the closest feasibile solution for primal infeasible problems. This could be useful in the context of MPC and SQP, and I might extend PIQP in the future to support this. Anyway, thanks for the questions. This reminded me to reflect these question and write them down ;). I'll keep this issue open as a reminder for future plans. |
Awesome, thanks for the detailed answer! |
This is not really an issue, it is more so a question.
I noticed that PIQP can return PIQP_PRIMAL_INFEASIBLE or PIQP_DUAL_INFEASIBLE. I read through the PIQP paper and did not see any mention of infeasbility detection. How is infeasibility detection implemented in the solver?
The text was updated successfully, but these errors were encountered: