-
Notifications
You must be signed in to change notification settings - Fork 26
CurrinExp
arturluis edited this page Feb 17, 2021
·
4 revisions
In this example we show how to use HyperMapper to optimize a CurrinExp function. We look for minimizing the value of this function given two parameters x1, x2.
The CurrinExp objective function can be defined as:
factor1 = 1 - math.exp(-1/(2*x2))
factor2 = 2300*x1*x1*x1 + 1900*x1*x1 + 2092*x1 + 60
factor3 = 100*x1*x1*x1 + 500*x1*x1 + 4*x1 + 20
y_value = factor1*factor2/factor3
An example of this code can be found in currinexp.py, together with the communication interface between CurrinExp and HyperMapper.
The json configuration file for this example is:
{
"application_name": "currinexp",
"optimization_objectives": ["Value"],
"optimization_iterations": 50,
"input_parameters" : {
"x1": {
"parameter_type" : "ordinal",
"values" : [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1],
"parameter_default" : 0
},
"x2": {
"parameter_type" : "ordinal",
"values" : [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1],
"parameter_default" : 0.1
}
}
}
You can find all parameter types supported by HyperMapper here.
You can find this json in currinexp_scenario.json.
In order to run this example, we use:
python3 example_scenarios/synthetic/currinexp/currinexp.py
An example of stdout output can be found here.
The result of this script is a csv file called currinexp_output_dse_samples.csv.