AcqFunction:
  * surrogate
  * direction
  * surrogate_max_to_min
  - initialize(surrogate)
  - setup(archive)
  - update(archive)
  - update_surrogate(archive)

Surrogate:
  * model
  - initialize(model)
  - update(xydt, y_cols)
  - predict(xdt)
  - .update(xydt, y_cols)

SurrogateSingleCritLearner:
  - initialize(learner)
  - predict(xdt)
  - .update(xydt, y_cols)

SurrogateMultiCritLearners:
  - initialize(learners)
  - predict(xdt)
  - .update(xydt, y_cols)
  - k (AB for n learner)

MBOArchive:

