Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Doe categorical second attempt (#259)
* setting up bofire * simple relaxed categorical example in jupyter notebook * adding exhaustive search for optimization problems with binary variables and writing tests * showcasing how to use binary variables * changes in jupyter notebooks * adding constraint mapper * fixing bug with dtype * stated change to one-hot-encoding * allowing for multiple groups * starting with branch-and-bound * rough sketch of bnb * asserting that design variables is actually a 1d array * asserting that design variables is actually a 1d array * using the right argument for optimality criteria * finishing first bab implementation * changing __str__ * resetting test for valid solution * printing information of branching * allowing for relaxed discrete variables, and fixing bug with sequence of column keys in dataframe * fixing docstring * skipping non-valid-designs and branching for discrete values * catching case for list length 1 * cringe... renaming function * removing redundant code * bug fix/ removing code with no effect * renaming variable to make intention clear * start including new doe strategies in api * adding categorical groups to the domain * changing to categorical groups from domain * correcting docstring * start writing tests for categorical and discrete variables * catching branches in exhaustive search which do not fulfill constraints * simple tests for bab and exhaustive search * adding optional print statements for information about the optimization process * adding optional print statements for information about the optimization process * bug fix, allowing arbitrary objective function and model_type * bug fix, fixing and partially fixing experiments can now be combined * skipping branches with already fixed experiments * skipping branches with already fixed experiments in exhaustive search * removing unused code from binary vars and giving warning when unsuitable attributes are passed * adding documentation * adding documentation * adding documentation * adding documentation * bug fix, now also testing if solution for discrete variables are also valid * bug fix, now also testing if solution for discrete variables are also valid * adding documentation * bug fix, where error occurred if fixed_experiments was None * adjusting tolerances for testing for valid solution * adjusting tolerances for testing for valid solution * raising error when to many (partially)-fixed experiments are provided * bug fix, sorting (partially) fixed experiments and initial guess if provided * adapting branch-and-bound to new fixed experiments usage * bug fix, allowing to fix candidates with .tell * allowing to partially fix experiments with .tell and with all strategies * allowing to use either equality or inequality and changing rhs * reverting, we can only do exactly 1, * bug fix, if partially_fixed_experiments are none, and adding time information to verbose output * adding error for using discrete var in exhaustive search, bug fix where order of variables lead to fixing wrong variables, bug fix with where partially fixed experiments is none * renaming * adding information about how many branches have been explored * added NChooseKGroup_with_quantity (helper function) and mapping from discrete domain to relaxable domain * bug fix, NChooseKGroup_with_quantity (helper function) and allowing to choose between current categorical variables (and NonLinearConstraints) or relaxable categorical variables (and LinearConstraints) * making some arguments optional * fixing optional arguments * adding documentation * Update documentation bofire/data_models/constraints/nonlinear.py Co-authored-by: Johannes P. Dürholt <johannespeter.duerholt@evonik.com> * refactoring RelaxableBinaryInput, RelaxableDiscreteInput, they are not accessible through the public api anymore. * refactoring generate_mixture_constraint and deleting unused functions * allowing to use the old strategy to solve nchoosek constraints * reversing accidental commit * refactoring functions * removing check for initial guess, as we can also allow non-valid initial points * adding initial guess based on design of previous branch * bug fix * deleting old example * merge main * fixing typing * looser tolerances and pruning branches where ipopt does not satisfy constraints * skipping fixations where ipopt does not satisfy constraints * reverting commit, where I skip the is_fulfilled test * typing * adding not implemented error * typing * fixing tests * Delete .gitattributes * Delete .idea directory * typing * removing outdated tests, and fixing existing ones * evaluating with d_optimality requires a 1D array * adding test for categorical and discrete doe with nchoosek * typing * typing * adding random seed * adapting test * adapting (partially) fixed experiments * typing * ignore typing * ignore typing * started beautiful fix * reverting beautiful fix * quick fix * Update test_doe.py * fix test * going back to beautiful fix * removing Relaxable Features * deleting unnecessary check * adding set candidates and test * typing * typing * bug fix * refactoring * removing unnecessary line * merging tutorials from main * merging tutorials from main --------- Co-authored-by: GuenesUI <ufuk-ilkay.guenes@basf.com> Co-authored-by: Johannes P. Dürholt <johannespeter.duerholt@evonik.com>
- Loading branch information