Plans#

blop.plans.optimize(optimization_problem, iterations=1, n_points=1, *args, **kwargs)[source]#

A plan to solve the optimization problem.

Parameters:
optimization_problemOptimizationProblem

The optimization problem to solve.

iterationsint, optional

The number of optimization iterations to run.

n_pointsint, optional

The number of points to suggest per iteration.

blop.plans.optimize_step(optimization_problem, n_points=1, *args, **kwargs)[source]#

A single step of the optimization loop.

Parameters:
optimization_problemOptimizationProblem

The optimization problem to solve.

n_pointsint, optional

The number of points to suggest.

blop.plans.default_acquire(suggestions, movables, readables=None, *, per_step=None, **kwargs)[source]#

A default plan to acquire data for optimization. Simply a list scan.

Includes a default metadata key “blop_suggestion_ids” which can be used to identify the suggestions that were acquired for each step of the scan.

Parameters:
suggestions: list[dict]

A list of dictionaries, each containing the parameterization of a point to evaluate. The “_id” key is optional and can be used to identify each suggestion. It is suggested to add “_id” values to the run metadata for later identification of the acquired data.

movables: Sequence[NamedMovable]

The movables to move and the inputs to move them to.

readables: Sequence[Readable]

The readables to trigger and read.

per_step: bp.PerStep | None, optional

The plan to execute for each step of the scan.

**kwargs: Any

Additional keyword arguments to pass to the list_scan plan.

Returns:
str

The UID of the Bluesky run.

See also

bluesky.plans.list_scan

The Bluesky plan to acquire data.