CSI 779 / STAT 789

Software for Quadratic Programming

There are several possibilities for solving quadratic programming problems. Using available resources on the science cluster, the simplest method may be the quadprog function in Matlab. It is in the Optimization Toolbox, which is available on the science cluster (scs.gmu.edu).
With this program it is easy to build the efficient frontier by looping over a grid of minimum returns.

The IMSL routines for quadratic programming are qprog or dqprog (Fortran) and imsl_s_quadratic_prog imsl_d_quadratic_prog (C).
I am currently checking on the use of IMSL on science.
With these programs it is easy to build the efficient frontier by looping over a grid of minimum returns.
It is often easier to make plots in S-Plus and other interactive software, using a file of points on the efficient frontier written by a Fortran or C program.
Here is a sample Fortran program to build the efficient frontier for the Michaud example, and to write the points to a file.
An S-Plus program can read the points on the efficient frontier and plot them.
Both the Fortran and the C libraries are available on the science cluster.

More general programs can easily be constructed using the IMSL Librairies.
A sample Windows (DOS) executable.
This program expects the data to be stored in files, and allows some choices as to what kinds of computations will be performed.

Other Fortran and C routines are available through netlib.
Some of these are from ACM TOMS.

There are a couple user-contributed routines available through statlib for S-Plus. The one called "quadratic" does not seem to work for quadratic programming problems similar to the ones we are solving.
The one called "quadprog" is much more complicated to install.
There is one for R, "portfolio.optim", which I have not used.

SAS has PROC NLP in SAS/OR that has a quadratic programming option.
A problem with using SAS is that it is not clear how to use it to build the efficient frontier.
Sample SAS program for a single point in the Michaud example.
SAS is available in most of teh PC labs on campus, but not on the science cluster.