Smac

Latest version: v2.3.0

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 8

0.9

Major changes
* ADD multiple optional initial designs: LHC, Factorial Design, Sobol
* ADD fmin interface know uses BORF facade (should perform much better on continuous, low-dimensional functions)
* ADD Hydra (see "Hydra: Automatically Configuring Algorithms for Portfolio-Based Selection" by Xu et al)
* MAINT Not every second configuration is randomly drawn, but SMAC samples configurations randomly with a given probability (default: 0.5)
* MAINT parsing of options

Interface changes
* ADD two new interfaces to optimize low dimensional continuous functions (w/o instances, docs missing)
* BORF facade: Initial design + Tuned RF
* BOGP interface: Initial design + GP
* ADD options to control acquisition function optimization
* ADD option to transform function values (log, inverse w/ and w/o scaling)
* ADD option to set initial design

Minor changes
* ADD output of estimated cost of final incumbent
* ADD explanation of "deterministic" option in documentation
* ADD save configspace as json
* ADD random forest with automated HPO (not activated by default)
* ADD optional linear cooldown for interleaving random configurations (not active by default)
* MAINT Maximal cutoff time of pynisher set to UINT16
* MAINT make SMAC deterministic if function is deterministic, the budget is limited and the run objective is quality
* MAINT SLS on acquisition function (plateau walks)
* MAINT README
* FIX abort-on-first-run-crash
* FIX pSMAC input directory parsing
* FIX fmin interface with more than 10 parameters
* FIX no output directory if set to '' (empty string)
* FIX use `np.log` instead of `np.log10`
* FIX No longer use law of total variance for uncertainty prediction for RFs as EPM, but only variance over trees (no variance in trees)
* FIX Marginalize over instances inside of each tree of the forest leads to better uncertainty estimates (motivated by the original SMAC implementation)

0.8

Major changes

* Upgrade to ConfigSpace (0.4.X), which is not backwards compatible. On the plus
side, the ConfigSpace is about 3-10 times faster, depending on the task.
* FIX 240: improved output directory structure. If the user does not specify
an output directory a SMAC experiment will have the following structure:
`smac_/run_<run_id>/*.json`. The user can specify a output directory, e.g.
`./myExperiment` or `./myExperiment/` which results in
`./myExperiment/run_<run_id>/*.json`.
* Due to changes in AnaConda's compiler setup we drop the unit tests for
python3.4.

Interface changes

* Generalize the interface of the acquisition functions to work with
ConfigSpaces's configuration objects instead of numpy arrays.
* The acquisition function optimizer can now be passed to the SMBO object.
* A custom SMBO class can now be passed to the SMAC builder object.
* `run_id` is no longer an argument to the Scenario object, making the interface
a bit cleaner.

Minor changes

* 333 fixes an incompability with `uncorrelated_mo_rf_with_instances`.
* 323 fixes 324 and 319, which both improve the functioning of the built-in
validation tools.
* 350 fixes random search, which could accidentaly use configurations found my
a local acquisition function optimizer.
* 336 makes validation more flexible.

0.7.2

* Introduce version upper bound on ConfigSpace dependency (<0.4).

0.7.1

* FIX 193, restoring the scenario now possible.
* ADD 271 validation.
* FIX 311 abort on first crash.
* FIX 318, ExecuteTARunOld now always returns a StatusType.

0.6

Major changes

* MAINT documentation (nearly every part was improved and extended,
including installation, examples, API).
* ADD EPILS as mode (modified version of ParamILS).
* MAINT minimal required versions of configspace, pyrfr, sklearn increased
(several issues fixed in new configspace version).
* MAINT for quality scenarios, the user can specify the objective
value for crashed runs
(returned NaN and Inf are replaced by value for crashed runs).

Minor changes

* FIX issue 220, do not store external data in runhistory.
* MAINT TAEFunc without pynisher possible.
* MAINT intensification: minimal number of required challengers parameterized.
* FIX saving duplicated (capped) runs.
* FIX handling of ordinal parameters.
* MAINT runobj is now mandatory.
* FIX arguments passed to pyrfr.

0.5

Major changes

* MAINT 192: SMAC uses version 0.4 of the random forest library pyrfr. As a
side-effect, the library [swig](http://www.swig.org/) is necessary to build
the random forest.
* MAINT: random samples which are interleaved in the list of challengers are now
obtained from a generator. This reduces the overhead of sampling random
configurations.
* FIX 117: only round the cutoff when running a python function as the target
algorithm.
* MAINT 231: Rename the submodule `smac.smbo` to `smac.optimizer`.
* MAINT 213: Use log(EI) as default acquisition function when optimizing
running time of an algorithm.
* MAINT 223: updated example of optimizing a random forest with SMAC.
* MAINT 221: refactored the EPM module. The PCA on instance features is now
part of fitting the EPM instead of reading a scenario. Because of this
restructuring, the PCA can now take instance features which are external
data into account.

Minor changes

* SMAC now outputs scenario options if the log level is `DEBUG` (2f0ceee).
* SMAC logs the command line call if invoked from the command line (3accfc2).
* SMAC explicitly checks that it runs in `python>=3.4`.
* MAINT 226: improve efficientcy when loading the runhistory from a json file.
* FIX 217: adds milliseconds to the output directory names to avoid race.
conditions when starting multiple runs on a cluster.
* MAINT 209: adds the seed or a pseudo-seed to the output directory name for
better identifiability of the output directories.
* FIX 216: replace broken call to in EIPS acquisition function.
* MAINT: use codecov.io instead of coveralls.io.
* MAINT: increase minimal required version of the ConfigSpace package to 0.3.2.

Page 6 of 8

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.