Boyd and Vandenberghe considers convex optimization problems of the form
\begin{align}
\text{minimize} &\quad f_0(x) \\
\text{subject to} & \quad f_i(x) \leq 0 \quad \text{for } i = 1,\ldots, m \\
&\quad a_i^T x = b_i \quad \text{for } i = 1,\ldots, p,
\end{align}
where $f_0,\ldots, f_m$ are convex functions. The optimization variable is $x \in \mathbb R^n$ and the domain of the optimization problem is
$$
\mathcal D = \bigcap_{i=0}^m \textbf{dom} \,f_i.
$$
(See equation (4.15), p. 136 in Boyd and Vandenberghe.)
Let $x \in \mathbb R^n$, $\lambda \in \mathbb R^m$, and $\nu \in \mathbb R^p$. Then the following two statements are equivalent:
- $x$ and $(\lambda,\nu)$ together satisfy the KKT conditions.
- $x$ and $(\lambda,\nu)$ are primal and dual optimal, and strong duality holds.
If Slater's condition is satisfied, then strong duality is guaranteed to hold, and so we can make a simpler and more useful statement. In this case, the following are equivalent:
- $x$ and $(\lambda,\nu)$ together satisfy the KKT conditions.
- $x$ and $(\lambda,\nu)$ are primal and dual optimal.
Warning: If strong duality does not hold, then it is possible for $x$ and $(\lambda,\nu)$ to be primal and dual optimal without satisfying the KKT conditions. An example where this occurs is given below.
By the way, if Slater's condition holds, then dual optimal variables $(\lambda,\nu)$ are guaranteed to exist. So if $x$ is primal optimal, then $x$ and $(\lambda,\nu)$ together satisfy the KKT conditions.
Example: [Problem 5.21 in Boyd and Vandenberghe]
Consider the convex optimization problem
\begin{align}
\text{minimize} &\quad e^{-x} \\
\text{subject to} & \quad \frac{x^2}{y}\leq 0
\end{align}
with variables $x$ and $y$ and domain
$$
\mathcal D = \{ (x,y) \mid y > 0 \}.
$$
The primal optimal value is $1$. The Lagrangian is
$$
L(x,y,\lambda) = e^{-x} + \lambda \frac{x^2}{y}.
$$
The dual function is
$$
g(\lambda) = \inf_{(x,y) \in \mathcal D} L(x,y,\lambda) =\begin{cases} 0 & \quad \text{if } \lambda \geq 0, \\
-\infty & \quad \text{otherwise.}
\end{cases}
$$
The dual problem is
\begin{align}
\text{maximize} &\quad 0 \\
\text{subject to} &\quad \lambda \geq 0.
\end{align}
The optimization variable in the dual problem is $\lambda$.
We can see that any $\lambda \geq 0$ is dual optimal.
So, any $(x,y)$ with $x = 0$ and $y > 0$ is primal optimal, and any $\lambda \geq 0$ is dual optimal. Although the primal and dual optimal values are both attained, strong duality does not hold.