Skip to content

Goldstein-Price test case #11

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

Open
dpsanders opened this issue Jul 27, 2018 · 6 comments
Open

Goldstein-Price test case #11

dpsanders opened this issue Jul 27, 2018 · 6 comments

Comments

@dpsanders
Copy link
Member

minimise struggles with this.

https://github.com/JuliaOpt/SumOfSquares.jl/blob/master/examples/goldsteinprice.jl

@dpsanders
Copy link
Member Author

dpsanders commented Oct 8, 2018

f1(x1, x2) = x1 + x2 + 1
f2(x1, x2) = 19 - 14*x1 + 3*x1^2 - 14*x2 + 6*x1*x2 + 3*x2^2
f3(x1, x2) = 2*x1 - 3*x2
f4(x1, x2) = 18 -32*x1 + 12*x1^2 + 48*x2 - 36*x1*x2 + 27*x2^2
f(x1, x2) = (1 + f1(x1,x2)^2 * f2(x1,x2)) * (30 + f3(x1,x2)^2 * f4(x1,x2))
f(X) = f(X[1], X[2])

julia> minimise(f, IntervalBox(-2..2, 2))

@dpsanders
Copy link
Member Author

dpsanders commented Oct 8, 2018

julia> @time globalmin, minimisers = minimise(f, IntervalBox(-2..2, 2));
globalmin
  6.653330 seconds (3.40 k allocations: 7.525 MiB)

julia> globalmin
[2.21929, 3.00003]

@dpsanders
Copy link
Member Author

With the fastpowers branch of IntervalArithmetic:

julia>  @time globalmin, minimisers = minimise(f, IntervalBox(-2..2, 2));
  0.762670 seconds (3.29 M allocations: 146.516 MiB, 1.85% gc time)

But using smaller tolerances takes a very long time.

@dpsanders
Copy link
Member Author

Using the mean value form instead is very fast, so closing.

@dpsanders
Copy link
Member Author

dpsanders commented Feb 11, 2019

This should be added as a test and benchmark.

@dpsanders
Copy link
Member Author

This seems to have got slow 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

1 participant