Tim Mitchell

Software Packages

GRANSO: GRadient-based Algorithm for Non-Smooth Optimization
GRANSO is an optimization package implemented in MATLAB, intended to be efficient for constrained nonsmooth optimization problems, without any special structure or assumptions imposed on the objective or constraint functions. It can handle problems involving functions that are any or all of the following: smooth or nonsmooth, convex or nonconvex, and locally Lipschitz or non-locally Lipschitz.
PyGRANSO: A PyTorch-enabled port of GRANSO with auto-differentiation
PyGRANSO is a direct port of GRANSO v1.6.4 to Python but with key new features, particularly for machine learning applications: automatic differentiation for computing gradients, GPU acceleration, tensor variables, and new QP solvers. PyGRANSO was written by Buyun Liang with Ju Sun and myself advising. PyGRANSO is part of the larger software package NCVX being developed by the GLOVEX group led by Ju Sun.
PSARNOT: (Pseudo)Spectral Abscissa|Radius Nonsmooth Optimization Test
PSARNOT (rhymes with Carnot, as in car-no) is a test set intended for evaluating methods for nonsmooth optimization. It is comprised of data files and software, implemented in MATLAB. PSARNOT includes 200 nonsmooth nonconvex constrained optimization problems and new test problems can be easily generated.
ROSTAPACK (pronounced rost-a-pack, with rost rhyming with frost) is a library implemented in MATLAB for computing or approximating robust stability measures of dynamical systems. It includes fast exact methods for the H-infinity norm, the L-infinity norm, the pseudospectral abscissa and radius, and the spectral value set abscissa and radius. It also includes scalable routines for approximating the H-infinity or L-infinity norm, the complex stability radius, and the real stability radius. Routines to compute other stability measures are slated to be added to future releases of ROSTAPACK.
betaRMP is a benchmarking visualization tool written in MATLAB for creating β-Relative Minimization Profiles (β-RMPs). An RMP shows how the percentage of test problems considered solved by method varies as a function of changing the required number of matching digits in the solutions. A set of β-RMPs additionally show how this relationship changes under different computational budgets, so readers can assess and compare methods in terms of both accuracy and cost.
eigsPlus provides an enhanced, alternative version to the MATLAB function eigs, supported on MATLAB R2012b and later and Octave, that ensures that only the converged eigenvalues are returned. The placeholder values (zero or NaN depending on the version of MATLAB) for unconverged Ritz values are never returned, to prevent them from ever being used accidentally in subsequent computations. eigsPlus also supports additional functionality, such as getting the number of ARPACK iterations incurred.

Software Development Tools

Contributions to other projects