OptimizationProblems.jl icon indicating copy to clipboard operation
OptimizationProblems.jl copied to clipboard

Moré - Garbow - Hillstrom test set

Open tmigot opened this issue 4 years ago • 5 comments

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 https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl/issues/7

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

tmigot avatar Dec 21 '21 22:12 tmigot

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?

tmigot avatar May 01 '23 15:05 tmigot

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 avatar May 01 '23 16:05 amontoison

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?

amontoison avatar May 01 '23 16:05 amontoison

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 avatar May 01 '23 21:05 tmigot