In addition to the standard stopping criteria like number of trials or wallclock time, SMAC also provides more advanced criteria.
Termination Cost Threshold¶
SMAC can stop the optimization process after a user-defined cost was reached. In each iteration, the average cost
average_cost from the run history) from the incumbent is compared to the termination cost threshold. If one
of the objective costs is below its associated termination cost threshold, the optimization process is stopped.
Note, since the
average_cost method is used, all instance-seed-budget trials of the incumbent are considered so far.
In other words, the process can be stopped even if the incumbent has not been evaluated on all instances, on the
highest fidelity, or on all seeds.
scenario = Scenario( ... objectives=["accuracy", "runtime"], termination_cost_threshold=[0.1, np.inf] ... )
In the code above, the optimization process is stopped if the average accuracy of the incumbent is below 0.1. The runtime is ignored completely as it is set to infinity. Note here again that SMAC minimizes the objective values.
Coming in the next version of SMAC.