gpp_python_expected_improvement

Contents:

gpp_python_expected_improvement.hpp

This file registers the translation layer for invoking ExpectedImprovement functions (e.g., computing/optimizing EI; see gpp_math.hpp) from Python.

namespace optimal_learning

Macro to allow restrict as a keyword for C++ compilation and CUDA/nvcc compilation. See related entry in gpp_common.hpp for more details.

gpp_python_expected_improvement.cpp

This file has the logic to invoke C++ functions pertaining to expected improvement from Python. The data flow follows the basic 4 step from gpp_python_common.hpp.

so their description, inputs, outputs, etc. comments have been moved. These comments exist in Export*() as Python docstrings, so we saw no need to repeat ourselves.

namespace optimal_learning

Macro to allow restrict as a keyword for C++ compilation and CUDA/nvcc compilation. See related entry in gpp_common.hpp for more details.

Functions

void ExportEstimationPolicies()

Exports subclasses of ObjectiveEstimationPolicyInterface (e.g., ConstantLiar, KrigingBeliever). These classes do not have any useful behavior inside Python; instead (like GaussianProcess), they are meant to be constructed and passed back to C++.

void ExportExpectedImprovementFunctions()

Exports functions (with docstrings) for expected improvement operations:

  1. expected improvement (and its gradient) evaluation (uesful for testing)
  2. multistart expected improvement optimization (main entry-point)
  3. expected improvement evaluation at a list of points (useful for testing, plotting)

These functions choose between monte-carlo and analytic EI evaluation automatically.