Skip to content

Commit e9701f7

Browse files
[doc] Same changes to 3-ProxQP_solve.md
1 parent b96feaa commit e9701f7

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

doc/3-ProxQP_solve.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ $$\begin{equation}\label{eq:approx_qp_sol}
4949
\end{aligned}
5050
\end{equation}$$
5151

52-
The infite norm is preferred to the L2 norm as it is independent of the problem dimensions. It is also common to consider relative convergence criteria for early-stopping, as absolute targets might not bet reached due to numerical issues. ProxQP provides it in a similar way as OSQP (for more details see, e.g., [section 3.4](https://web.stanford.edu/~boyd/papers/pdf/osqp.pdf)). Hence more generally the following stopping criterion can be used.
52+
The infite norm is preferred to the L2 norm as it is independent of the problem dimensions. It is also common to consider relative convergence criteria for early-stopping, as absolute targets might not bet reached due to numerical issues. ProxQP provides it in a similar way as OSQP (for more details see, e.g., OSQP's [convergence](https://osqp.org/docs/solver/index.html#convergence) criteria or [section 3.4](https://web.stanford.edu/~boyd/papers/pdf/osqp.pdf) in the corresponding paper). Hence more generally the following stopping criterion can be used:
5353

5454
$$\begin{equation}\label{eq:approx_qp_sol_relative_criterion}
5555
\begin{aligned}
@@ -63,6 +63,20 @@ $$\begin{equation}\label{eq:approx_qp_sol_relative_criterion}
6363
\end{aligned}
6464
\end{equation}$$
6565

66+
This stopping criterion on primal and dual residuals is not enough to guarantee that the returned solution satisfies all \eqref{qp:kkt} conditions. If the problem is *strictly* convex, that is, if it's Hessian $H$ is positive definite, then strong duality holds and to satisfy all optimality conditions we need to add a third criterion on the *duality gap* $r_g$:
67+
68+
$$\begin{equation}\label{eq:approx_qp_sol}
69+
\begin{aligned}
70+
&\left\{
71+
\begin{array}{ll}
72+
r_g := | x^T H x + g^T x + b^T y + u^T z^+ + l^T z^- | \leq \epsilon_{\text{abs}} + \epsilon_{\text{rel}} \max(\|x^T H x\|, \|g^T x\|, \|b^T y\|, \|u^T z^+\|, \|l^T z^-\|) \\
73+
\end{array}
74+
\right.
75+
\end{aligned}
76+
\end{equation}$$
77+
78+
ProxQP provides the ``check_duality_gap`` option to include this duality gap in the stopping criterion. Note that it is disabled by default, as ProxQP is also designed to work with problems that are not strictly convex where strong duality doesn't hold; that is, where the duality gap can be non-zero at an optimal solution. Enable this option if you know that your problem is strictly convex and want a strong guarantee that the returned solution is optimal. ProxQP will then check the same termination condition as SCS (for more details see, e.g., SCS's [optimality conditions checks](https://www.cvxgrp.org/scs/algorithm/index.html#optimality-conditions) as well as [section 7.2](https://doi.org/10.1137/20M1366307) in the corresponding paper).
79+
6680
\section OverviewAsingleSolveFunction A single solve function for dense and sparse backends
6781

6882
If if you don't want to pass through [ProxQP API](2-ProxQP_api.md), it is also possible to use one single solve function. We will show how to do so with examples.

0 commit comments

Comments
 (0)