CrossEntropyInitializer

class qctrl.dynamic.types.closed_loop_optimization_step.CrossEntropyInitializer(*, elite_fraction, rng_seed=None)

Configuration for the cross-entropy optimizer. Note that this optimizer requires at least \(\lceil 2 / \mathrm{elite}\_\mathrm{fraction} \rceil\) results each step, to have at least 2 surviving elite points, and will throw an error if you don’t provide enough points for the initial step. If you don’t provide enough results for subsequent steps, the optimizer will not advance and will request more test points following the same distribution as in the previous step. This optimizer infers a distribution from the given test points, thus once all test points have converged, the optimzation has converged and will no longer explore. For best results, sample the initial test points from parameter space, varying each axis with each point. This optimizer will reject optimizations where all test points in the initial step are identical.

Variables
  • elite_fraction (float) – The top fraction of test points that the algorithm uses to generate the next distribution.

  • rng_seed (int, optional) – Seed for the random number generator. Use this option to generate deterministic results from the optimizer.