We've defined helper functions to measure the objective at each fidelity level (lookup table provided on GitHub repo), and a function to compute the cumulative experimental cost. The ParameterSpace is constructed with an additional fidelity parameter, "s", which is a ParameterDiscrete instance with options corresponding to the expense of lowfidelity information sources relative to the high-or target fidelity source organized in increasing order. By convention, Atlas expects the target fidelity to have a value of 1.0, while the lower fidelity levels have values 0.0 < s < 1.0. Here, the choice of 0.1 for the E GGA g determinations reflects our estimate that GGA is an order of magnitude cheaper than HSE06. The constructor of the MultiFidelityPlanner must receive one additional argument, fidelity params, which is the parameter space index of the fidelity parameter "s". Note that for this example, we define the BO stopping criterion to be a cumulative experimental cost budget rather than the number of transpired objective evaluations. By default, the MultiFidelityPlanner automatically determines which fidelity level to measure the objective at each iteration. However, an SDL resercher may want to further customize their multi-fidelity optimization campaign such that, for example, they can alternate between batches of low-and high-fidelity measurements. Atlas enables such customized campaigns by allowing the user to specify the fidelity level they wish for the parameters to be measured for the upcoming batch of recommendations.