Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Human in the Loop MBO" breaks with AdaCB infill crit #473

Open
mb706 opened this issue Dec 19, 2019 · 1 comment
Open

"Human in the Loop MBO" breaks with AdaCB infill crit #473

mb706 opened this issue Dec 19, 2019 · 1 comment

Comments

@mb706
Copy link
Contributor

mb706 commented Dec 19, 2019

Example, adapted from the tutorial:

ps = makeParamSet(
  makeNumericParam("q", lower = -1, upper = 2),
  makeIntegerParam("v", lower = -2, upper = 3)
)
des = generateDesign(n = 7, par.set = ps)
des$y = c(1.20, 0.97, 0.91, 3.15, 0.58, 1.12, 0.50)
ctrl = makeMBOControl()
ctrl = setMBOControlInfill(ctrl, crit = makeMBOInfillCritAdaCB())  # !!!!!!!!!!!!
opt.state = initSMBO(par.set = ps, design = des, control = ctrl, minimize = TRUE, noisy = FALSE)
proposePoints(opt.state)
x = data.frame(q = 1.7, v = 1)
updateSMBO(opt.state, x = x, y = 2.19)

gives error

Error in control$infill.crit$fun(points = x, models = getOptStateModels(opt.state)[[1]],  : 
  unused argument (designs = getOptStateDesigns(opt.state))
@jakob-r
Copy link
Member

jakob-r commented Jan 9, 2020

Okay, this is not an easy fix because naturally the Adaptive Infill Crit needs a progress value which is not necessarily present for SMBO.

Options:

  1. Error if AdaCB is used with SMBO
  2. If adaptive infill, the progress has to be passed
  3. Progress is always 0 (it is the case now)
  4. Progress is 0 by default but can be manually overwritten (eg. setOptStateProgress())

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants