def test_testfunction_himmelblau():
    function = func.Himmelblau()
    minima = [
        [3.0, 2.0],
        [-2.805118, 3.131312],
        [-3.779310, -3.283186],
        [3.584428, -1.848126],
    ]
    value_minima = 0
    # Validate the default configuration
    assert function.get_dimensionality() == 2
    # Validate function properties
    assert function.is_bounded() is True
    assert function.is_differentiable() is False
    # Validate minima
    y = function(np.array(minima))
    assert np.sum(1.0 * (np.around(y, 8) == value_minima)) == len(y)
    # Validate that these minima are indeed minima
    x = np.random.rand(10000, function.get_dimensionality())
    x *= function.ranges[:, 1] - function.ranges[:, 0]
    x += function.ranges[:, 0]
    y = function(x)
    assert np.sum(1.0 * (np.around(y, 8) == value_minima)) <= len(y)
    # Validate output shape
    assert y.shape == (10000, 1)
    with pytest.raises(func.NoDerivativeError):
        function(x, True)
def test_optimisation_implementations(tmp_path):
    # These are the implementations to test
    implementations = [
        optimisation.RandomOptimisation(),
        optimisation.ParticleFilter(),
        optimisation.GPyOpt(),
        optimisation.CMAOptimisation(),
        optimisation.Ampgo(),
        optimisation.TuRBO(max_evals=11, n_training_steps=30)
        # optimisation.Pygmo,  # excluded because of a mandatory install
        # optimisation.PyScannerBit  # excluded because of a mandatory install
    ]

    for procedure in implementations:
        experiment = exp.OptimisationExperiment(procedure, str(tmp_path))
        experiment.run(func.Himmelblau(), finish_line=250)
        shutil.rmtree(str(tmp_path))
Exemple #3
0
def test_optimisation_turbo(tmp_path):
    procedure = optimisation.TuRBO(max_evals=11, n_training_steps=30)
    experiment = exp.OptimisationExperiment(procedure, str(tmp_path))
    experiment.run(func.Himmelblau(), finish_line=250)
    shutil.rmtree(str(tmp_path))
Exemple #4
0
def test_optimisation_cmae(tmp_path):
    procedure = optimisation.CMAOptimisation()
    experiment = exp.OptimisationExperiment(procedure, str(tmp_path))
    experiment.run(func.Himmelblau(), finish_line=250)
    shutil.rmtree(str(tmp_path))
Exemple #5
0
def test_optimisation_particlefilter(tmp_path):
    procedure = optimisation.ParticleFilter()
    experiment = exp.OptimisationExperiment(procedure, str(tmp_path))
    experiment.run(func.Himmelblau(), finish_line=250)
    shutil.rmtree(str(tmp_path))