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

Constructor arguments #3

Open
roussel-ryan opened this issue May 2, 2024 · 2 comments
Open

Constructor arguments #3

roussel-ryan opened this issue May 2, 2024 · 2 comments

Comments

@roussel-ryan
Copy link

Aside from generator specific keyword arguments I believe that there should be a simple standard set for specifying an input space (at least) as every generator (even random generators) need to know this information. This comes with the potential need to define if the input space is discrete or continuous.

For example: Xopt currently handles only continuous spaces specified by a dictionary of lists that specify the minimum and maximum of the bounds for each variable. This information is contained in a more complex object known as VOCS https://github.com/ChristopherMayes/Xopt/blob/main/xopt/vocs.py which also defines objectives/constraints/constants/observables and does validation on inputs. An example of this (taken from https://github.com/ChristopherMayes/Xopt/blob/main/docs/examples/single_objective_bayes_opt/bo_tutorial.ipynb) is below:

vocs = VOCS(
    variables={"x": [0, 2 * math.pi]},
    objectives={"f": "MINIMIZE"},
)
@jlnav
Copy link
Contributor

jlnav commented May 3, 2024

upper_bound and lower_bound could be standards, if not for discrete spaces.

batch_size as we've discussed seems very useful, in the event that the user asks for the same num_points every time.

maybe past_points or history, in case a generator needs to build a model from past results before it can be askd? Though maybe that data can just be passed in via tell.

@shuds13
Copy link
Collaborator

shuds13 commented May 20, 2024

If we choose a structure that keeps variable information together like this it may be more extendible/flexible to make each variable its own object.

Also, do we want to support multi-dimensional variables?

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

3 participants