NOMADm Optimization Software


NOMADm is a MATLAB® implementation of the class of Mesh-Adaptive Direct Search (MADS) algorithms for solving nonlinear and mixed variable optimization problems with general nonlinear constraints. MADS is a generalization of the class of Generalized Pattern Search (GPS) algorithms that evaluates points in a set of directions that becomes dense in the limit, thereby achieving superior convergence properties. The algorithms used by NOMADm are detailed in several papers listed below and others in-progress. NOMADm is the research version of the production C++ code, NOMAD.

As a testament to its quality, The MathWorks folks have incorporated many of the ideas in this code into the direct search portion of their own Genetic Algorithm and Direct Search (GADS) Toolbox (see GADS Toolbox User's Guide, p. 3).


People Involved in the NOMAD/NOMADm Project


Some Relevant Papers

This is a list of papers that are relevant to the NOMADm software. Those that are algorithmic in nature either have something in them that has been incorporated into NOMADm, or else adds something significant to the theory of the class of GPS or MADS algorithms that are employed in NOMADm. The applications are typically those that used our software in their research. This list does not include the many papers dealing with ideas for surrogate optimization (e.g., radial basis functions, DACE, etc.), unless they are specifically applied in some way to GPS/MADS algorithms or the NOMADm software.

Mesh Adaptive Direct Search

Generalized Pattern Search

Surrogates

Applications


NOMADm v4.6 Software Download

Download NOMADm v4.6
Download some example problem files
Download Heat Shield problem files

NOMADm should work on any platform that uses MATLAB. The MATLAB Optimization Toolbox is recommended, but not necessary to run the software. If it is not present, then a few of the more obscure functions will not work. Changes to past versions are as follows (a complete list is included in the accompanying documentation):

NOTE:   Since this code is now over 9000 lines of MATLAB code, there are bound to be bugs in it, in spite of my efforts to thoroughly test all the options. PLEASE e-mail me with any bugs that you encounter, and also with any suggestions that you have for improving the code, as I want to make the code as cool and bug-free as possible.


Companion Software Download

NOMADm optionally incorporates three additional MATLAB packages for constructing and optimizing surrogates: DACE (a suite of DACE algorithms using kriging), NW (a set of functions that apply the Nadaraya-Watson estimator), and RBF (a set of functions that apply radial basis functions). (Note: The CMA-ES evolutionary strategy code is no longer kept separate from this code. Instead, a highly modified version of Nikolaus Hansen's code has been incorporated directly into the NOMADm files. Special thanks to Niko for an exceptional piece of software.) To use one of these packages within NOMADm, after installation, the path where the files are located must be added to the MATLAB path via the "File --> Set Path" menu choice from the main MATLAB figure window. If done correctly, relaunching NOMADm will result in the appropriate help file appearing in the NOMADm Help Menu. These packages can be downloaded separately by clicking on the following links:

Download DACE Toolbox
Download NW Toolbox
Download RBF Toolbox


Acknowledgements

I owe a special debt of gratitude to my former advisors, John Dennis and Charles Audet, whose assistance in this project has been invaluable. I would also like to thank Keith Berrier, Olga Brezhneva, Ana Custodio, Gilles Couture, Thierry Dalon, John Dunlap, Arantzazu Garcia-Lekue, Alison Marsden, Rachael Pingel, Jacob Sondergaard, and Luis Vicente for numerous suggestions for correcting and improving the code. Also, thanks to Rakesh Kumar at MathWorks, Inc. for helpful discussions, and thanks to several other users, who have identified bugs and patiently waited for the fix.


Last modifed September 12, 2007. You can e-mail me by inserting my name as specified into the address: FirstName.LastName@afit.edu