-
Hello,
My first question: We have two outputs in this example. This means that train_obj is a 6*2 matrix. However, when we use the code My second question is about usage of the objective function here. I cannot understand why do we need to define and use the objective function the way it appears in the code above? I assume the main objective function is the output of the black box function that we have. And here we have two outputs that represent two objective functions that need to be optimized. Then why do we need to use Any ideas/comments are greatly appreciated. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 7 replies
-
So the answer to your first question follows from the one to your second question - This particular part of the code uses qParEGO (https://ieeexplore.ieee.org/document/1583627) - which is really just a fancy way of saying that at each step we're picking a random scalarization fo the objectives and optimize that scalarization to generate the next candidate. By doing so you can explore the Pareto frontier. Here the |
Beta Was this translation helpful? Give feedback.
So the answer to your first question follows from the one to your second question - This particular part of the code uses qParEGO (https://ieeexplore.ieee.org/document/1583627) - which is really just a fancy way of saying that at each step we're picking a random scalarization fo the objectives and optimize that scalarization to generate the next candidate. By doing so you can explore the Pareto frontier.
Here the
GenericMCObjective
is just a particular random scalarization (namely, a Chebyshev scalarization). So theobjective
here will take in a multi-(in this case 2)-dimensional objective and return a scalar value. This is whybest_f=objective(train_obj).max()
is indeed a scalar - it is …