Constraints
constraints
Define per-device optimization constraints.
This is intentionally separate from the hardware definitions and from the optimzer-specific configurations in order to: - make it easy to find - keep it optimizer-agnostic
A constraint on an input variable (such as a centroid position) tells the optimizer that that the point is no good. The optimizer should avoid such points and not consider them in the model. This is intended for points that are invalid data, or otherwise are correlated with problems. These are the "constraints" in the XOpt VOCS. These are "objectives" with constraint= instead of target= in Blop.
A contraint on an output variable (such as allowed range, step sizes) tells the optimizer which points it is or is not allowed to try. These are restrictions on "variables" in the XOpt VOCS (and sometimes, generator kwargs). These are restrictions on "degress of freedom" in Blop.
Attributes
constraint_data
module-attribute
constraint_data = ConstraintData(yag=yag_constraint_data, mirr=mfx_mirror_constraints, und=hxr_und_constraints)
hxr_und_constraints
module-attribute
mfx_dg1_yag_constraints
module-attribute
mfx_dg2_yag_constraints
module-attribute
mfx_mirror_constraints
module-attribute
mfx_mirror_constraints = MirrorConstraints(range_center=-548.0, range_delta=4, max_travel_distance=2)
xcs_yag1_constraints
module-attribute
yag_constraint_data
module-attribute
yag_constraint_data: dict[Diagnostics, YagConstraints] = {'xcs1': xcs_yag1_constraints, 'dg1': mfx_dg1_yag_constraints, 'dg2': mfx_dg2_yag_constraints}