-
Notifications
You must be signed in to change notification settings - Fork 5
/
rosenbrock.jl
41 lines (34 loc) · 1.48 KB
/
rosenbrock.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using Distributed
import NODAL
addprocs()
@everywhere begin
using NODAL
function rosenbrock(x::Configuration, parameters::Dict{Symbol, Any})
return (1.0 - x["i0"].value)^2 + 100.0 * (x["i1"].value - x["i0"].value^2)^2
end
end
function optimize_rosenbrock()
configuration = Configuration([FloatParameter(-2.0, 2.0, 0.0,"i0"),
FloatParameter(-2.0, 2.0, 0.0,"i1")],
"rosenbrock_config")
tuning_run = Run(cost = rosenbrock,
starting_point = configuration,
stopping_criterion = elapsed_time_criterion,
report_after = 10,
reporting_criterion = elapsed_time_reporting_criterion,
duration = 60,
methods = [[:simulated_annealing 1];
[:iterative_first_improvement 1];
[:iterated_local_search 1];
[:randomized_first_improvement 1];
[:iterative_greedy_construction 1];
[:iterative_probabilistic_improvement 1];])
@spawn optimize(tuning_run)
result = take!(tuning_run.channel)
print(result)
while !result.is_final
result = take!(tuning_run.channel)
print(result)
end
end
optimize_rosenbrock()