A Solver for Problems with Second-Order Stochastic Dominance Constraints ======================================================================== Victor Zverovich, Gautam Mitra, Csaba Fábián
AMPL Optimization
ICSP2013, Bergamo, Italy. July 8-12, 2013
Second-Order Stochastic Dominance ---------------------------------

Let \(R\) and \(R'\) be random variables defined on the probability space \((\Omega, \mathcal{F}, P)\).

\(R\) dominates \(R'\) with respect to SSD if and only if \(\textrm{E}[U(R)] \ge \textrm{E}[U(R')]\) for any nondecreasing and concave utility function \(U\).

This sets out the use of SSD relation to determine preferences of a risk-averse decision maker.

Denoted as \(R \succeq_{_{SSD}} R'\).

Strict relation: \(R \succ_{_{SSD}} R' \Leftrightarrow R \succeq_{_{SSD}} R' \mbox{ and } R' \not{\succeq_{_{SSD}}} R.\)

Alternative Definitions of SSD ------------------------------
  • Definition using the performance function (Fishburn and Vickson, 1978): \[ F^{(2)}_R(t) \leq F^{(2)}_{R'}(t) \mbox{ for all $t \in \mathbb{R}$,} \] where the performance function \(F^{(2)}_R(t) = \int_{-\infty}^{t} F_R(u) \mathrm{d}u\) represents the area under the graph of the cumulative distribution function \(F_R(t) = P(R \leq t)\) of a real-valued random variable \(R\).
  • Definition using the \(\textrm{Tail}\) function (Ogryczak and Ruszczyński, 2002): \[ \textrm{Tail}_{\alpha}(R) \geq \textrm{Tail}_{\alpha}(R') \mbox{ for all $0 \lt \alpha \leq 1$,} \] where \(\textrm{Tail}_{\alpha}(R)\) denotes the unconditional expectation of the smallest \(\alpha \cdot 100\%\) of the outcomes of \(R\).
Illustration of Second-Order Stochastic Dominance -------------------------------------------------

CDF

Performance Functions
Portfolio Problem/Constraints -----------------------------
There are \(n\) assets and at the beginning of a time period an investor has to decide what proportion \(x_i\) of the initial wealth to invest in asset \(i\). So a portfolio is represented by a vector \(\textbf{x} = (x_1, x_2, \dots, x_n) \in X \subset \mathbb{R}^n\), where \(X\) is a bounded convex polytope representing the set of feasible portfolios; in particular it can be defined as \[ X = \{\textbf{x} \in \mathbb{R}_+^n: \sum_{i=1}^n{x_i} = 1\}, \] if short positions are not allowed and there are no other modelling restrictions. Let \(\textbf{R}\) denote the \(n\)-dimensional random vector of asset returns at the end of the time period. Then the real-valued random variable \(R_{\textbf{x}} = \textbf{R}^T \textbf{x}\) is the random return of portfolio \(\textbf{x}\).
Model of Dentcheva and Ruszczynski ----------------------------------

Dentcheva and Ruszczyński (2006) proposed the following model with an SSD constraint:

\[ \begin{array}{ll} \mathrm{maximize} & f(x) \\ \mathrm{s.t.} & x \in X, \\ & R_{\textbf{x}} \succeq_{_{SSD}} \widehat{R}, \\ \end{array} \]

where \(f\) is a concave continuous function, \(\widehat{R}\) is a reference random return such as the return of a stock market index.

Special case: \(f(x) = \textrm{E}[{R_{\textbf{x}}}]\)

Model of Roman, Darby-Dowman, and Mitra ---------------------------------------

Roman et al. (2006) formulated a multiobjective LP model, the Pareto efficient solutions of which are SSD efficient portfolios.

Assuming finite discrete distributions of returns with equiprobable outcomes, Fábián et al. (2009) converted it into a more efficient computational model with single objective and a finite system of inequalities representing an SSD constraint:

\[ \begin{array}{ll} \mathrm{maximize} & \vartheta \\ \mathrm{s.t.} & \vartheta \in \mathbb{R}, \textbf{x} \in X \\ & \mathrm{Tail}_{\frac{i}{S}}(R_{\textbf{x}}) \geq \mathrm{Tail}_{\frac{i}{S}}(\widehat{R}) + \vartheta, \quad i = 1, 2, \ldots, S. \\ \end{array} \]

Here one seeks a portfolio with a distribution which dominates the reference one or comes close to it uniformly (the smallest tail difference \(\vartheta\) is maximized).

Model with SSD Constraints --------------------------

Fábián et al. (2010) proposed an enhanced version of the model of Roman et al. which is expressed in the following SSD constrained form:

\[ \begin{array}{ll} \textrm{maximize} & \vartheta \\ \textrm{s.t.} & \vartheta \in \mathbb{R}, \textbf{x} \in X, \\ & R_{\textbf{x}} \succeq_{_{SSD}} \widehat{R} + \vartheta. \\ \end{array} \]

In this model one computes a portfolio that dominates a sum of the reference return and a riskless return \(\vartheta\).

Formulation Using Tails

Let \(S\) denote the number of equiprobable outcomes,

\(\textbf{r}^{(1)}, \textbf{r}^{(2)}, \ldots, \textbf{r}^{(S)}\) - the realisations of \(\textbf{R}\),

\(\widehat{r}^{(1)}, \widehat{r}^{(2)}, \ldots, \widehat{r}^{(S)}\) - the realisations of \(\widehat{R}\).

The enhanced model can be formulated as follows:

\[ \begin{array}{ll} \mathrm{maximize} & \vartheta \\ \mathrm{s.t.} & \vartheta \in \mathbb{R}, \textbf{x} \in X, \\ & \mathrm{Tail}_{\frac{i}{S}}(R_{\textbf{x}}) \geq \mathrm{Tail}_{\frac{i}{S}}(\widehat{R}) + \frac{i}{S} \vartheta, \\ & \quad i = 1, 2, \ldots, S. \\ \end{array} \]

Cutting-Plane Formulation Using Tails

Fábián et al. (2009) obtained the cutting-plane representation of the \(\textrm{Tail}\) function: \[ \begin{array}{ll} \textrm{Tail}_{\frac{i}{S}}(R_{\textbf{x}}) = & \displaystyle \min \frac{1}{S} \sum_{j \in J_i} \textbf{r}^{(j) T} \textbf{x} \\ & \mbox{such that } J_i \subset \{1, 2, \ldots, S\}, \quad |J_i| = i. \\ \end{array} \]

Cutting-plane representation of the enhanced model: \[ \begin{array}{lll} \textrm{maximize} & \vartheta & \\ \textrm{s.t.} & \vartheta \in \mathbb{R}, \textbf{x} \in X, & \\ & \displaystyle \frac{1}{S} \sum_{j \in J_i} \textbf{r}^{(j) T} \textbf{x} \geq \widehat{\tau_i} + \frac{i}{S} \vartheta, & \forall J_i \subset \{1, 2, \ldots, S\}, \\ & & |J_i| = i, \; i = 1, 2, \ldots, S, \\ \end{array} \] where \(\widehat{\tau_i} = \textrm{Tail}_{\frac{i}{S}}(\widehat{R})\).

Cutting-Plane Method

By changing the scope of optimisation we get a problem of minimising a piecewise-linear convex function:

\[ \begin{array}{ll} \mathrm{minimize} & \varphi(\textbf{x}) \\ \mathrm{s.t.} & \textbf{x} \in X, \\ \end{array} \] where \[ \begin{array}{ll} \varphi(\textbf{x}) =& \displaystyle \max \left( -\frac{1}{i} \sum_{j \in J_i} \textbf{r}^{(j) T} \textbf{x} + \frac{S}{i} \widehat{\tau_i} \right), \\ & \mbox{such that } J_i \subset \{1, 2, \ldots, S\}, |J_i| = i, \\ & i = 1, 2, \ldots, S. \\ \end{array} \]

It can be regularised by the level method.

Cut Generation

The cut \(l(x)\) at the iteration \(k\) is constructed as follows:

Let \(\textbf{x}^* \in X\) denote the solution of the approximation function at iteration \(k\) and \(\textbf{r}^{(j_1^*)} \leq \textbf{r}^{(j_2^*)} \leq \ldots \leq \textbf{r}^{(j_S^*)}\) denote the ordered realisations of \(R_{\textbf{x}^*}\).

Select \( \displaystyle i^* \in \textrm{argmax}_{1 \leq i \leq S} \left( -\frac{1}{i} \sum_{j \in J_i^*} \textbf{r}^{(j)T} \textbf{x}^* + \frac{S}{i} \widehat{\tau}_i \right).\) Then \( \displaystyle l(\textbf{x}) = -\frac{1}{i^*} \sum_{j \in J_{i^*}^*} \textbf{r}^{(j)T} \textbf{x} + \frac{S}{i^*} \widehat{\tau}_{i^*}.\)

Sets \(J_i^* = (j^*_1, \ldots, j^*_i)\) correspond to ordered realisations.

Why a New Solver? ----------------- * Old implementation: * Cuts are a part of the model * Difficult to reuse * New implementation: * Cuts are added automatically by the solver * Easy to use * "Clean" model * Faster
AMPL Solver Library ------------------- AMPL Solver Library (ASL) is an open-source library for connecting solvers to AMPL. * C interface: - described in [Hooking Your Solver to AMPL](http://www.ampl.com/hooking.html) - used by most solvers * [C++ interface](https://github.com/vitaut/ampl/tree/master/solvers/util): - makes connecting new solvers super easy - type-safe: no casts needed when working with expression trees - efficient: no overhead compared to the C interface - used by several CP solvers and the SSD solver
SSD Solver Architecture -----------------------
* ASL does all the heavy lifting such as interaction with AMPL and an external solver which makes SSD solver implemenation very simple (~300 LOC!) * Function library provides the ssd_uniform function that is translated into an SSD relation by the solver. * External solver is used for subproblems. * Solver library is optional but facilitates testing.

Expression Trees

The solver extracts linear expressions from the expression trees representing arguments of ssd_uniform.

Portfolio Model in AMPL with Cuts ---------------------------------

param nASSET integer >= 0;  # number of assets
set ASSETS := 1..nASSET;    # set of assets

param nSCEN > 0;
param asset_returns{1..nASSET, 1..nSCEN};
param index_returns{1..nSCEN};

param nCUT integer >= 0 default 0; # number of cuts
set CUTS := 1..nCUT;        # set of cuts

param cut_const {CUTS};     # constant in cut
param cut {CUTS,ASSETS};    # multipliers in cut
param scaling_factor {CUTS} default 1;

# portfolio: investments into different assets
var Invest {ASSETS} >= 0 default 1 / nASSET;
var Dom;                    # dominance measure

maximize Uniform_Dominance: Dom;

subject to Dom_constraint {c in CUTS}:
  scaling_factor[c] * Dom + cut_const[c]
    <= sum {a in ASSETS} cut[c,a] * Invest[a];

subject to Budget: sum {a in ASSETS} Invest[a] = 1;

Portfolio Model in AMPL using SSD Solver ----------------------------------------

include ssd.ampl;

param NumScenarios;
param NumAssets;

set Scenarios = 1..NumScenarios;
set Assets = 1..NumAssets;

# Return of asset a in senario s.
param Returns{a in Assets, s in Scenarios};

# Reference return in scenario s.
param Reference{s in Scenarios};

# Fraction of the budget to invest in asset a.
var invest{a in Assets} >= 0 <= 1;

subject to ssd_constraint{s in Scenarios}:
  ssd_uniform(sum{a in Assets} Returns[a, s] * invest[a], Reference[s]);

subject to budget: sum{a in Assets} invest[a] = 1;

Reference Returns -----------------
Performance -----------
* 100 scenario problem with FTSE100 used as a reference. * The new implementation is 2-3 times faster.
Performance -----------
* 30000 scenario problem with FTSE100 used as a reference. * The new implementation is 2-6.5 times faster.
Summary ------- * AMPL solver interface and ASL make implementation of high-level solvers/algorithms that use other solvers easy. The same technique can be applied to - other-cutting plane methods - decomposition methods, e.g. Bender's decomposition * New solver provides an efficient implementation of a cutting-plane algorithm for solving problems with SSD constraints. * This is in line with our approach that different types of optimisation models are matched with corresponding solvers.
References ----------
  • Dentcheva, D. and Ruszczyński, A. (2006). Portfolio optimization with stochastic dominance constraints. Journal of Banking & Finance, 30 , 433–451.
  • Fábián, C. I., Mitra, G., and Roman, D. (2009). Processing second-order stochastic dominance models using cutting-plane representations. Mathematical Programming, Series A. DOI: 10.1007/s10107-009-0326-1.
  • Fábián, C. I., Mitra, G., Roman, D., and Zverovich, V. (2010). An enhanced model for portfolio choice with ssd criteria: a constructive approach. Quantitative Finance. First published on: 11 May 2010.
  • Fishburn, P. C. and Vickson, R. G. (1978). Theoretical foundations of stochastic dominance. In Stochastic Dominance: An Approach to Decision-Making Under Risk, (pp. 37–113). D.C. Heath and Company, Lexington, Massachusetts.
  • Roman, D., Darby-Dowman, K., and Mitra, G. (2006). Portfolio construction based on stochastic dominance and target return distributions. Mathematical Programming, eries B, 108, 541–569.
Thank you! ----------
AMPL Optimization