This version provides a few fixes and the new multi-objective API of optimizers (you can now provide a list/array of float to tell directly). This allows fore more efficient multi-objective optimization for some optimizers (DE, NGOpt). Future work will continue to improve multi-objective capacities and aim at improving constraints management.
copy() method of a Parameter does not change the parameters's random state anymore (it used to reset it to None#1048
MultiobjectiveFunction does not exist anymore #1034.
Choice and TransitionChoice have some of their API changed for uniformization. In particular, indices is now an
ng.p.Array (and not an np.ndarray) which contains the selected indices (or index) of the Choice. The sampling is
performed by specific "layers" that are applied to Data parameters #1065.
Parameter.set_standardized_space does not take a deterministic parameter anymore
#1068. This is replaced by the more
general with ng.p.helpers.determistic_sampling(parameter) context. One-shot algorithms are also updated to choose
options of Choice parameters deterministically, since it is a simpler behavior to expect compared to sampling the
standardized space than sampling the option stochastically from there
RandomSearch now defaults to sample values using the parameter.sample() instead of a Gaussian
#1068. The only difference comes with bounded
variables since in this case parameter.sample() samples uniformly (unless otherwise specified).
The previous behavior can be obtained with RandomSearchMaker(sampler="gaussian").
Parameter instances descriptor attribute is deprecated, in favor of a combinaison of an analysis function
(ng.p.helpers.analyze) returning information about the parameter (eg: whether continuous, deterministic etc...)
and a new function attribute which can be used to provide information about the function (eg: whether deterministic etc)
#1076.
Half the budget alloted to solve cheap constrained is now used by a sub-optimizer
#1047. More changes of constraint management will land
in the near future.
Experimental methods Array.set_recombination and Array.set_mutation(custom=.) are removed in favor of
layers changing Array behaviors #1086.
Caution: this is still very experimental (and undocumented).
Important changes
Parameter classes are undergoing heavy changes, please open an issue if you encounter any problem.
The midterm aim is to allow for simpler constraint management.
Parameter have been updated have undergone heavy changes to ease the handling of their tree structure (
#1029#1036#1038#1043#1044
)
Parameter classes have now a layer structure #1045
which simplifies changing their behavior. In future PRs this system will take charge of bounds, other constraints,
sampling etc.
The layer structures allows disentangling bounds and log-distribution. This goal has been reached with
#1053 but may create some instabilities. In particular,
the representation (__repr__) of Array has changed, and their bounds attribute is no longer reliable for now.
This change will eventually lead to a new syntax for settings bounds and distribution, but it's not ready yet.
... (truncated)
Commits
0b5a9ba Add sub-optim info for NGOpt and SplitOpt (#1137)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps nevergrad from 0.4.2.post5 to 0.4.3.post4.
Release notes
Sourced from nevergrad's releases.
Changelog
Sourced from nevergrad's changelog.
... (truncated)
Commits
0b5a9ba
Add sub-optim info for NGOpt and SplitOpt (#1137)3a5a114
Use new ConfPortfolio API (#1124)7360f3a
Simple new benchs (#1129)308092c
Make Portfolio more generic (#1094)bf0a927
Adding non-progressive NoisySplit (#1089)97c9e36
New NgOpt (#1123)6fd743e
max num vars in collaborative coevolution (#1120)ae1b9a3
Improving our one-shot optimization methods (#1103)3f21757
Ignore mypy for numpy sum axis (#1117)2fb7d17
Update mixsimulator experiment (benchmark) (#1107)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)