Mark Schmidt (2008)

minConf is a set of Matlab functions for optimization of differentiable real-valued multivariate functions subject to simple constraints on the parameters. On many problems, the functions included in minConf will be able to solve problems more efficiently than Matlab's fmincon function, while the functions in minConf can solve problems with a much larger number of variables, and they use line searches that are robust to several common function pathologies.


There are a variety of methods available. These are described below. In all cases, you need to provide a function handle funObj that computes the function value and gradient of the function to be minimized, an initial guess x, and a structure options containing any non-default options you want to use. Depending on the method used, you will also need to pass in some additional parameters that describe the constraints.


All of the methods above allow the user to specify the values of the following options:


The complete set of .m files (and compiled .mex files for many operating systems) for the current version of minConf are available here.


If you use this software in a publication, please cite the work using one of the following:


The function example_minConf shows how to use the three different minConf functions to solve a non-negative least squares problem. Further examples of using minConf_TMP can be found here and of minConf_PQN can be found here (minConf_SPG could be used in place of minConf_PQN for all these examples).

Other issues

To apply the minConf functions to a function that takes more than one argument, you can use an anonymous function:
anonFunc = @(x)funObj(x,arg1,arg2);
If the .zip file does not contain a .mex version of lbfgsC.mex*** for your operating system, you will need to run mexAll before using minConf_TMP or minConf_PQN (please e-mail me the compiled mex file so I can include in the .zip file).

To reference minConf in a publication, please include my name and a link to this website. You may also want to include the function used and the date, since I may update the software in the future.

Mark Schmidt > Software > minConf