In this paper we develop a practical primal interior decomposition algorithm for two-stage stochastic programming problems. The framework of this algorithm is similar to the framework in Mehrotra and \”{Ozevin} \cite{MO04a,MO04b} and Zhao \cite{GZ01}, however their algorithm is altered in a simple yet fundamental way to achieve practical performance. In particular, this new algorithm weighs the log-barrier terms in the second stage problems differently than the theoretical algorithms analyzed in \cite{MO04a,MO04b,GZ01}. We give a method for generating a suitable starting point; selecting a good starting barrier parameter; a heuristic for first stage step-length calculation without performing line searches; and a method for adaptive addition of new scenarios over the course of the algorithm. The decomposition algorithm is implemented to solve two-stage stochastic conic programs with recourse whose underlying cones are cartesian products of linear, second order, and semidefinite cones. The performance of primal decomposition method is studied on a set of randomly generated test problems as well as a two-stage stochastic programming extension of Markowitz portfolio selection model. The computational results show that an efficient and stable implementation of primal decomposition method is possible. These results also show that in problems with large number of scenarios adaptive addition of scenarios can yield computational savings up to $80\%$.\\
Citation
Industrial Engineering and Management Science Technical Report 2005-04, Northwestern University