Source code for smt_optim.utils.stop_criteria

import numpy as np


[docs] def check_stop_criteria(state, config) -> bool: # state.budget = compute_budget(state) if state.iter >= config.max_iter: return False elif state.budget >= config.max_budget: return False else: return True
[docs] def compute_budget(state) -> float: costs = state.problem.costs data = state.dataset.export_as_dict() masks = [(data["fidelity"] == lvl).ravel() for lvl in range(state.problem.num_fidelity)] budget = 0 for lvl in range(state.problem.num_fidelity): budget += np.count_nonzero(masks[lvl]) * costs[lvl] return budget