Portfolio optimization with cardinality constraint

mixed-integer programmingoptimization

The simple portfolio optimization problem with cardinality constraint is stated as

\begin{align}
\min_{\vec{w}} -\vec{\mu}^T \vec{w} + \frac{\gamma}{2} \vec{w}^T \Sigma \vec{w}
\end{align}

such that

\begin{align}
\sum_{i}^{N} w_i &= 1 \\
\epsilon_i z_i \leq w_i \leq& \xi_i z_i \;\;\; i = 1,2,\cdots,n\\
\sum_i^{N} z_i &= K \;\;\; K < N
\end{align}

The first term in the objective function maximizes the returns and the second term minimizes the risk of the portfolio. $\gamma$ is the risk aversion factor.

In the constraints, $\epsilon_i$ and $\xi_i$ are lower bound and upper bound on weight for $i^{th}$ asset. $z_i \in \lbrace 0,1 \rbrace $ are binary variables which says whether the $i^{th}$ asset is included in portfolio or not. The third constraint is the cardinality constraint which says that there must be atmost $K$ assets in the portfolio.

Assuming, $\epsilon_i = 0,\; \xi_i = 1 \; \forall i$, instead of the second constraint above, can I have the following constraint
$$\sum_i^{N} z_i w_i = 1$$
If yes, then does it make the problem harder to solve using some MINLP solver?

Best Answer

The change you propose is mathematically valid (meaning it will not alter the feasible region or the optimal solution), but it likely will make the problem harder (perhaps much harder) to solve. The original formulation has linear constraints and minimizes a convex quadratic function, for which many high quality solvers exist. The convex feasible region contributes to making the problem relatively easy to solve. Your substitute constraint makes the feasible region nonconvex, which complicates things.

Related Question