The CALM stochastic programming model for dynamic asset-liability management

M.A.H. Dempster and G. Consigli
Published in World Wide Asset and Liability Modelling, J.M. Mulvey and W.T. Ziemba, eds. Cambridge: Cambridge University Press (1998) 464-500

Multistage stochastic programming - in contrast to stochastic control - has found wide application in the formulation and solution of financial problems characterized by a large number of state variables and a generally low number of possible decision stages. The literature on the use of multistage recourse modelling to formalize complex portfolio optimization problems dates back to the early seventies, when the technique was first adopted to solve a fixed income security portfolio problem. We present here the CALM model which has been designed to deal with uncertainty affecting both assets (in either the portfolio or the market) and liabilities (in the form of scenario dependent payments or borrowing costs)~ We consider as an instance a pension fund problem in which portfolio rebalancing is allowed over a long-term horizon at discrete time points and where liabilities refer to five different classes of pension contracts. The portfolio manager, given an initial wealth, seeks the maximization of terminal wealth at the horizon, with investment returns modelled as discrete state random vectors. Decision vectors represent possible investments in the market and holding or selling assets in the portfolio, as well as borrowing decisions from a credit line or deposits with a bank. Computational results are presented for a set of l0-stage portfolio problems using different solution methods and libraries (OSL, CPLEX, OB1).The portfolio problem with an underlying vector data process which allows up to 2688 realizations at the 10 year horizon is solved on an IBM RS6000/590 for a set of twenty four large scale test problems using the simplex and barrier methods provided by CPLEX (the latter for either linear or quadratic objective), the predictor/corrector interior point method provided in OB1, the simplex method of OSL, the MSLiP-OSL code instantiating nested Benders decomposition with subproblem solution using OSL simplex and the current version of MSLIP.