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

Nomenclature for DoE Strategies #315

Open
jduerholt opened this issue Dec 7, 2023 · 1 comment
Open

Nomenclature for DoE Strategies #315

jduerholt opened this issue Dec 7, 2023 · 1 comment

Comments

@jduerholt
Copy link
Contributor

@dlinzner-bcs @bertiqwerty @Osburg @KappatC @evo-bschiller @evo-nlueck

We are planning to provide users of our internal web platform that makes BoFire available via a GUI with the possibility to also use strategies that are meant for problem initialization like the RandomStrategy and the DoEStrategy. Furthermore we also want to integrate factorial and fractional factorial plans via the capability from pyDoE3 (I tend to just copy the needed fuctionality out of the library and not create a dependency).

As already discussed in issues #314 and #307, we have to perform some cleanup, which I want to summarize here and dicuss some open questions:

My proposal would be the following:

  • Do not rename FactorialStrategy.
  • Name strategy for the functionality of classical 2 level (fractional) factorial designs FactorialDoEStrategy.
  • Rename DoEStrategy to ModelDoEStrategy to indicate that it goes into the direction of model based DoE.

Furthermore, we have to think about the nomenclature between strategies that we name Sampler and those which we name as Strategy, also this is inconcistent. We have for example the PolytopeSampler, RejectionSampler and the RandomStrategy which makes use of the two samplers ...

What do you think?

Best,

Johannes

@dlinzner-bcs
Copy link
Contributor

Hi Johannes! Thank you for these neat ideas to complement our DoE capabilities. I completely agree that it would be nice to have non-model based DoE schemes available.

I agree with most of you proposals. Why not just call the new DoE strategy FactorialDoEStrategy instead and keep the other name? I am even not entirely sure, if it is not enough to stick with DoEStrategy, and just communicate what we want via the objective, as it is handled for the space-filling case now.

I actually think the best option would be to change to DoEObjective data models that just takes the fields they need. The workflow would be like

   domain = Domain(
        inputs=all_inputs,
        outputs=[ContinuousOutput(key="y")],
        constraints=all_constraints,
    )
    objective = data_models.doe_objectives.DOptimalityObjective(domain = domain, formula="linear")
   # objective = data_models.doe_objectivesSpaceFillingObjective(domain = domain)
    data_model = data_models.DoEStrategy(
        domain=domain,
        objective=objective,
        optimization_strategy="iterative",
    )
    strategy = DoEStrategy(data_model=data_model)
    candidates = strategy.ask(
        candidate_count=n_experiments
    )

A understanding question:
"In addition, also make the formula string available, if a user wants to exactly specify it." - is this related to DoE, or BO? DoE has this feature.

I have to read up on this UniversalSampler sounds fancy ;)

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