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: RObust STAbility PACKage 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 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 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.
|
eigs
routine in MATLAB R2013b and
newer now uses NaNs instead of zeros as placeholders for unconverged
Ritz values, as it could otherwise be difficult to separate the converged
eigenvalues from the placeholder zeros, particularly when zero is
also an eigenvalue of the matrix in question. Furthermore, these
placeholder zeros could be inadvertantly used in subsequent
computations, such as computing the spectral
abscissa of stable matrix A by calling
spec_abs = max(real(eigs(A,6,'LR')));
If less than six Ritz converge, the above command will return zero!
A request has been filed for Octave, which will hopefully match
this new behavior in the 4.4.0 release.
hinfnorm
routine
(and some of its subroutines), which is a MATLAB code for
approximating the H∞ norm. My
improvements are included in the v1.02 release, which was used
for the numerical results of the
associated paper
describing its underlying method by
Nicola Guglielmi, Mert Gürbüzbalaban, and Michael L. Overton.
specValSetBound
routine from
ROSTAPACK, which adds significant
improvements such as acceleration features, extension to spectral value sets,
approximating the real-valued pseudospectral abscissa or radius, etc.
pspr
routine
(for computing the pseudospectral radius) was out of date and
was susceptible to sometimes returning incorrect answers, a known problem
discussed in
the related paper describing its criss-cross algorithm for
computing the pseudospectal abscissa. The
latest version of EigTool,
now maintained on GitHub by Mark Embree, includes Emre Mengi's more
recent codes, which fix this problem and also correct a
very minor bug in the plotting routines which I also pointed out.