The sampling in OUQModels is specified with pts, where pts=4 would use traditional "random" sampling algorithms (here to sample 4 points), while a negative number would instead use optimizer-directed sampling -- thus, pts=-4 would launch 4 minimizations and 4 maximizations.
Parsing a string is more flexible, so enable the use of strings to specify the use of optimizers. Thus, pts='4' would be equivalent to pts=-4. New capabilities are to be added, so that pts='.4' only returns the termini of the parameter trajectories (i.e. the best solution per solver), also pts='+4' only launches a search for maxima (here 4 maximizers) and pts='-4' only launches a search for minima (here 4 minimizers).
New examples are added to demonstrate the use of surrogate-assisted minimization, where maxima and minima are searched for on the surrogate -- explicitly using ensemble samplers and, alternately, using surrogate.sample.
Checklist
Documentation and Tests
[ ] Added relevant tests that run with python tests/__main__.py, and pass.
[x] Added relevant documentation that builds in sphinx without error.
[x] Added new features that are documented with examples.
[x] Artifacts produced with the main branch work as expected under this PR.
Summary
The sampling in OUQModels is specified with
pts
, wherepts=4
would use traditional "random" sampling algorithms (here to sample 4 points), while a negative number would instead use optimizer-directed sampling -- thus,pts=-4
would launch 4 minimizations and 4 maximizations.Parsing a string is more flexible, so enable the use of strings to specify the use of optimizers. Thus,
pts='4'
would be equivalent topts=-4
. New capabilities are to be added, so thatpts='.4'
only returns the termini of the parameter trajectories (i.e. the best solution per solver), alsopts='+4'
only launches a search for maxima (here 4 maximizers) andpts='-4'
only launches a search for minima (here 4 minimizers).New examples are added to demonstrate the use of surrogate-assisted minimization, where maxima and minima are searched for on the surrogate -- explicitly using ensemble samplers and, alternately, using
surrogate.sample
.Checklist
Documentation and Tests
python tests/__main__.py
, and pass.