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

Moré - Garbow - Hillstrom test set #115

Open
34 of 35 tasks
tmigot opened this issue Dec 21, 2021 · 5 comments · May be fixed by #280
Open
34 of 35 tasks

Moré - Garbow - Hillstrom test set #115

tmigot opened this issue Dec 21, 2021 · 5 comments · May be fixed by #280
Labels
good first issue Good for newcomers test set Add new problems

Comments

@tmigot
Copy link
Member

tmigot commented Dec 21, 2021

Moré - Garbow - Hillstrom test set

Moré, J. J., Garbow, B. S., & Hillstrom, K. E. (1981).
Testing Unconstrained Optimization Software. ACM Transactions on Mathematical Software, 7(1), 17–41.
https://dl.acm.org/doi/10.1145/355934.355936

Suggested in #7

Name in the report Type of problems Implemented in JSO? name of the file in JSO
  • Rosenbrock function (1) (OP) genrose.jl (function rosenbrock)
  • Freudenstein and Roth function (2) (NLS) freuroth.jl
  • Powell badly scaled function (3) (OP)
  • Brown badly scaled function (4) (OP) brownbs.jl
  • Beale function (5) (OP) beale.jl
  • Jennrich and Sampson function (6) (NLS)
  • Helical valley function (7) (OP)
  • Bard function (8) (NLS)
  • Gaussian function (9) (OP)
  • Meyer function (10) (NLS) meyer3.jl
  • Gulf research and development function (11) (OP)
  • Box three-dimensional function (12) (NLS)
  • Powell singular function (13) (OP) powellsg.jl
  • Wood function (14) (OP) woods.jl
  • Kowalik and Osborne function (15) (NLS)
  • Brown and Dennis function (16) (NLS) brownden.jl
  • Osborne i function (17) (NLS)
  • Biggs EXP6 function (18) (OP)
  • Osborne 2 function (19) (NLS)
  • Watson function (20) (OP)
  • Extended Rosenbrock function (21) (OP) srosenbr.jl
  • Extended Powell singular function (22) (OP)
  • Penalty function I (23) (OP)
  • Penalty function II (24) (OP) penalty2.jl
  • Variably dimensioned function (25) (OP) vardim.jl
  • Trigonometric function (26) (OP)
  • Brown almost-linear function (27) (OP)
  • Discrete boundary value function (28) (OP) morebv.jl
  • Discrete integral equation function (29) (OP)
  • Broyden tridiagonal function (30) (OP)
  • Broyden banded function (31) (OP) brybnd. jl (sbrybnd.jl is an unscaled version)
  • Linear function - full rank (32) (NLS) arglina.jl
  • Linear function - rank 1 (33) (NLS) arglinb.jl
  • Linear function - rank 1 with zero columns and rows (34) (NLS) arglinc.jl
  • Chebyquad function (35) (OP)
@tmigot
Copy link
Member Author

tmigot commented May 1, 2023

chebyquad

The difficulty for the last problem is with the JuMP Model.

The issue is with the computation of the Chebyshev polynomials that are defined recursively. I tried things like

m = n = 100
function Chbi(y::T, m) where {T} # Chebyshev polynomial of the first kind
    res = zeros(T, m)
    m = Int(m)
    res[1] = 1 # T0
    if i == 1
      return res
    end
    res[2] = y
    if m == 2
      return res
    end
    for j=2:m
      res[2 + j] = 2 * y * res[j + 1] - res[j]
    end
    return res[end]
  end
  register(nlp, :Chbi, 2, Chbi, autodiff = true)

doesn't work because it supports only real arguments.

@amontoison any idea?

@amontoison
Copy link
Member

amontoison commented May 1, 2023

The issue is if ... else ... end. We can't easily handle them in automatic differentiation. The issue that you opened in ADNLPModels.jl is probably related.

@amontoison
Copy link
Member

Sorry Tangi, I misunderstood the issue. Can you definite the function in the the function that definites the JuMP model such that you can remove the argument m?

@tmigot
Copy link
Member Author

tmigot commented May 1, 2023

Well, it's true we could try to simplify the sum in NLobjective but I had similar issues for other models as well and was wondering if there was a simpler solution.

@tmigot tmigot linked a pull request May 17, 2023 that will close this issue
@tmigot tmigot added the test set Add new problems label May 22, 2023
@dpo
Copy link
Member

dpo commented Jul 31, 2024

I think there’s a problem here with at least certain models of this collection. They are created as ADNLPModels while they should be ADNLSModels. For example, here is how biggs6 (problem 18) is created:

https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/blob/main/src/ADNLPProblems/biggs6.jl#L15

If you try to solve this problem, you find that it’s unbounded. Of course, that doesn’t make any sense, because it should be a nonlinear least-squares objective.

Perhaps other NLS problems are affected as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers test set Add new problems
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants