It is essential to have a close association with applications in order to design algorithms for large problems. We have been involved in solving problems in many areas, including trajectory optimization, portfolio optimization, power system optimization, and structural optimization.
In our research on nonlinear problems, we aim to design algorithms that are robust (fail infrequently) and efficient (run fast when they do work). Robustness starts but does not end with being able to prove an algorithm converges. There is a choice is how to implement an algorithm and all differ very slghtly from the theoretical algorithm. Despite the differences being small they sometimes have a catastrophic affect on an algorithm's performance. The trick is to choose an implementation that closely preserves an algorithm's the theoretical properties. Efficiency is a never-ending battle. No matter how efficient an algorithm, there is always a need for it to run faster. New applications that are harder or larger result from the current success.
Software developed by the Systems Optimization Laboratory (such as the routines NPSOL and MINOS) are used by thousands of people in industry, commerce medicine, government and academia.