Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inconsistencies in problem classification strings #46

Closed
chrhansk opened this issue May 13, 2024 · 4 comments
Closed

Inconsistencies in problem classification strings #46

chrhansk opened this issue May 13, 2024 · 4 comments

Comments

@chrhansk
Copy link
Contributor

We were discussing the classification of the problems in the CUTest suite and found some inconsistencies specifically regarding how constraints are reported in the classification of nonlinear equation (NE) problems.

As an example, the JUDGENE problem is classified as NOR2-MN-2-20, i.e., having 20 constraints. This is reflected in the dimension obtained when instantiating the problem. Of course, these correspond to the residuals to be minimized.

Conversely, the HATFLDBNE problem is classified as NOR2-AN-4-0, i.e., having no constraints despite having a residual vector with 4 entries.

There are several other instances exhibiting these discrepancies (I wrote a script to detect these kinds of problems).

The question in this regard is which convention should be adopted (zero or the number of residuals, I would prefer the latter) and stick to that convention consistently.

@nimgould
Copy link
Contributor

I am very happy to correct any mistakes you find (thank you). The second classification is a mistake, it should be 4-4. This is because we view the problems from an optimization perspective, the second number is the number of (non-simple-bound) constraints (inconsistent
or otherwise), in this case the number of residuals.

@chrhansk
Copy link
Contributor Author

I appreciate the quick feedback. If the number of constraints in the classification should coincide with the number of residuals (given by the number of constraints in the problem), then we have the following discrepancies:

  • NE Problem PALMER5ANE: classification_m = 0 should be 12 = problem_m
  • NE Problem DENSCHNBNE: classification_m = 2 should be 3 = problem_m
  • NE Problem PALMER6ENE: classification_m = 0 should be 13 = problem_m
  • NE Problem PALMER8ANE: classification_m = 0 should be 12 = problem_m
  • NE Problem WEEDSNE: classification_m = 0 should be 12 = problem_m
  • NE Problem HATFLDANE: classification_m = 0 should be 4 = problem_m
  • NE Problem PALMER8ENE: classification_m = 0 should be 12 = problem_m
  • NE Problem HATFLDCNE: classification_m = 0 should be 25 = problem_m
  • NE Problem PALMER3NE: classification_m = 0 should be 23 = problem_m
  • NE Problem PALMER4BNE: classification_m = 0 should be 23 = problem_m
  • NE Problem PALMER3BNE: classification_m = 0 should be 23 = problem_m
  • NE Problem PALMER7ANE: classification_m = 0 should be 13 = problem_m
  • NE Problem PALMER5BNE: classification_m = 0 should be 12 = problem_m
  • NE Problem PALMER3ANE: classification_m = 0 should be 23 = problem_m
  • NE Problem PALMER4NE: classification_m = 0 should be 23 = problem_m
  • NE Problem LINVERSENE: classification_m = 0 should be 2997 = problem_m
  • NE Problem PALMER5ENE: classification_m = 0 should be 12 = problem_m
  • NE Problem CHEBYQADNE: classification_m = 0 should be 100 = problem_m
  • NE Problem PALMER6ANE: classification_m = 0 should be 13 = problem_m
  • NE Problem PALMER2ENE: classification_m = 0 should be 23 = problem_m
  • NE Problem PALMER2ANE: classification_m = 0 should be 23 = problem_m
  • NE Problem PALMER4ENE: classification_m = 0 should be 23 = problem_m
  • NE Problem PALMER1BNE: classification_m = 0 should be 35 = problem_m
  • NE Problem ENGVAL2NE: classification_m = 3 should be 5 = problem_m
  • NE Problem PALMER1NE: classification_m = 0 should be 31 = problem_m
  • NE Problem HS2NE: classification_m = 0 should be 2 = problem_m
  • NE Problem PALMER1ENE: classification_m = 0 should be 35 = problem_m
  • NE Problem GENROSEBNE: classification_m = 0 should be 998 = problem_m
  • NE Problem HS25NE: classification_m = 0 should be 99 = problem_m
  • NE Problem PALMER2BNE: classification_m = 0 should be 23 = problem_m
  • NE Problem PALMER2NE: classification_m = 0 should be 23 = problem_m
  • NE Problem EXPFITNE: classification_m = 2 should be 10 = problem_m
  • NE Problem PALMER3ENE: classification_m = 0 should be 23 = problem_m
  • NE Problem KOEBHELBNE: classification_m = 0 should be 156 = problem_m
  • NE Problem HATFLDBNE: classification_m = 0 should be 4 = problem_m
  • NE Problem PALMER4ANE: classification_m = 0 should be 23 = problem_m
  • NE Problem SPECANNE: classification_m = 0 should be 15000 = problem_m
  • NE Problem PALMER7ENE: classification_m = 0 should be 13 = problem_m
  • NE Problem YFITNE: classification_m = 16 should be 17 = problem_m
  • NE Problem PALMER1ANE: classification_m = 0 should be 35 = problem_m
  • NE Problem GULFNE: classification_m = 0 should be 99 = problem_m
  • NE Problem HS1NE: classification_m = 0 should be 2 = problem_m
  • NE Problem NONSCOMPNE: classification_m = 0 should be 5000 = problem_m

There are some cases where the classification number of constraints is not zero, but another value entirely. This may (?) be due to the conversion of linear constraints into bounds in the original problems, which I think does not make sense for NE problems, but I could be mistaken...

@chrhansk chrhansk changed the title Inconsistecies in problem classification strings Inconsistencies in problem classification strings May 13, 2024
@nimgould
Copy link
Contributor

Thank you very much, I will update as soon as I get a free few hours.

@nimgould
Copy link
Contributor

Updates now on https://bitbucket.org/optrove/sif/src/master/
Thanks, once again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants