Multi-objective optimization

Case 1: Non-colliding objective functions

using Surrogates

m = 10
f = x -> [x^i for i in 1:m]
lb = 1.0
ub = 10.0
x = sample(50, lb, ub, GoldenSample())
y = f.(x)
my_radial_basis_ego = RadialBasis(x, y, lb, ub)
pareto_set, pareto_front = surrogate_optimize!(
    f, SMB(), lb, ub, my_radial_basis_ego, SobolSample(); maxiters = 10, n_new_look = 100)

m = 5
f = x -> [x^i for i in 1:m]
lb = 1.0
ub = 10.0
x = sample(50, lb, ub, SobolSample())
y = f.(x)
my_radial_basis_rtea = RadialBasis(x, y, lb, ub)
Z = 0.8
K = 2
p_cross = 0.5
n_c = 1.0
sigma = 1.5
surrogate_optimize!(
    f, RTEA(Z, K, p_cross, n_c, sigma), lb, ub, my_radial_basis_rtea, SobolSample())
(Any[1.140625], Any[[1.140625, 1.301025390625, 1.4839820861816406, 1.6926670670509338, 1.9306983733549714]])

Case 2: objective functions with conflicting minima

f = x -> [sqrt((x[1] - 4)^2 + 25 * (x[2])^2),
    sqrt((x[1] + 4)^2 + 25 * (x[2])^2),
    sqrt((x[1] - 3)^2 + (x[2] - 1)^2)]
lb = [2.5, -0.5]
ub = [3.5, 0.5]
x = sample(50, lb, ub, SobolSample())
y = f.(x)
my_radial_basis_ego = RadialBasis(x, y, lb, ub)
#I can find my pareto set and pareto front by calling again the surrogate_optimize! function:
pareto_set, pareto_front = surrogate_optimize!(
    f, SMB(), lb, ub, my_radial_basis_ego, SobolSample(); maxiters = 10, n_new_look = 100);
(Any[(3.046875, 0.265625), (2.796875, 0.015625), (2.671875, 0.390625), (3.234375, 0.078125), (2.984375, 0.328125), (2.859375, -0.046875), (2.609375, 0.203125), (3.078125, 0.234375), (3.328125, -0.015625), (2.828125, 0.484375)  …  (2.9296875, 0.0546875), (3.1328125, 0.0390625), (3.05859375, 0.06640625), (3.19921875, 0.01953125), (2.9921875, -0.0078125), (2.73046875, 0.05078125), (2.76171875, 0.08203125), (2.8203125, 0.1015625), (2.6640625, 0.0078125), (3.1953125, -0.0234375)], Any[[1.6347364562063207, 7.170938800551152, 0.7358694899572885], [1.2056588577412766, 6.7973239794238145, 1.005113877254712], [2.3619088215360895, 6.951878399486717, 0.6921010809484407], [0.8595170337171917, 7.244913355675829, 0.9512019534515265], [1.9295451617544483, 7.174478694041122, 0.6720566614877053], [1.1644556802429193, 6.863377960687434, 1.056277736322223], [1.7220139462995065, 6.686952372437686, 0.8874669888226829], [1.4910213047605994, 7.174478694041122, 0.769600647251547], [0.6764019006847926, 7.328541432730663, 1.067314459871129], [2.690496149644151, 7.244913355675829, 0.5435164728414402]  …  [1.1046886050206637, 6.935080166376053, 0.947923820943698], [0.8889100813988443, 7.1354860474120825, 0.9700721823980419], [0.9982436969576242, 7.0663986922983355, 0.9354306588829153], [0.8067139229712259, 7.199881065234038, 1.0005034133265738], [1.0085692410848648, 6.9922966122771495, 1.0078427805528498], [1.294672923373168, 6.735256340965474, 0.9867438016416039], [1.3044418743338566, 6.774147075722199, 0.9483905208710834], [1.284342685116593, 6.839191189958978, 0.9162300688487035], [1.336508467168278, 6.664176984655532, 1.047516128306624], [0.8131758006805785, 7.196266732328124, 1.041907524237396]])