For some time now I’ve been using CUTEst or CUTEr, and one of the common problems is selecting the problem you want to use.

Unfortunately, the classification on the site is not updated, and may contain errors, so I decided to create something, with low requirements and high reliability, to select problems according to a criteria.

This work was created before, but used the site’s classification as one of the sources of information for the selection. Now, I started from scratch, using Python, printing in JSON, and running only sifdecode, and only when needed.

We mantain a JSON file with all information that can be obtained running sifdecode (please correct me if I’m wrong). This file only need to be updated when the SIF problems are updated.

Currently, I returned to this problem because a colleague needed unconstrained problems such that the objective function is a sum of squares, and all variables are free. According to the classification, the two first letters needed to be SU, and problems BARD and ARGLALE satisfied this condition. However, problem ARGLALE is classified as SU, but it is not. It is actually a problem with objective function 0 (or no objective function), and with equality contraints only. Both these forms are different formulations for the Nonlinear Least Squares problem, but the CUTEst approach to it is very different, because when they are a sum of squared function norms, we cannot obtain individual function values and gradient, whereas in the other formulation, there is already a function to access the individual constraints and gradients.

Hence, we needed to select all problems with no defined objective function, with equality constraints, and only free variables. The current implemented version of my scripts reflect this need. So, if you need a different criteria met, you will need to hardcode it using python. This is expected to change soon, if time permits, to respond to command line arguments and/or user defined configurations files.

If you are interested in working in this problems, you can directly access the link above, work and make a pull request, or e-mail me so we can work out the details of that I expected to make.