anchored_difference_bounded_variables
- Graph.anchored_difference_bounded_variables(count, lower_bound, upper_bound, difference_bound, initial_values=None, *, name=None)
Create a sequence of optimizable variables with an anchored difference bound.
Use this function to create a sequence of optimization variables that have a difference bound (each variable is constrained to be within a given distance of the adjacent variables) and are anchored to zero at the start and end (the initial and final variables are within a given distance of zero).
- Parameters
count (int) – The number \(N\) of individual real-valued variables to create.
lower_bound (float) – The lower bound \(v_\mathrm{min}\) on the variables. The same lower bound applies to all count individual variables.
upper_bound (float) – The upper bound \(v_\mathrm{max}\) on the variables. The same upper bound applies to all count individual variables.
difference_bound (float) – The difference bound \(\delta\) to enforce between adjacent variables.
initial_values (np.ndarray or List[np.ndarray], optional) – Initial values for optimization variable. Defaults to None, meaning the optimizer initializes these variables with random values. You can either provide a single initial value, or a list of them. Note that all optimization variables in a graph with non-default initial values must have the same length. That is, you must set them either as a single array or a list of arrays of the same length.
name (str, optional) – The name of the node.
- Returns
The sequence \(\{v_n\}\) of \(N\) anchored difference-bounded optimization variables, satisfying \(v_\mathrm{min}\leq v_n\leq v_\mathrm{max}\), \(|v_{n-1}-v_n|\leq\delta\) for \(2\leq n\leq N\), \(|v_1|\leq\delta\), and \(|v_N|\leq\delta\).
- Return type
See also
calculate_optimization()
Function to find the minimum of generic deterministic functions.
calculate_stochastic_optimization()
Function to find the minimum of generic stochastic functions.
optimization_variable
Create optimization variables.
Examples
Create optimizable PWC signal with anchored difference bound.
>>> values = graph.anchored_difference_bounded_variables( ... count=10, lower_bound=-1, upper_bound=1, difference_bound=0.1 ... ) >>> graph.pwc_signal(values=values, duration=1) <Pwc: name="pwc_signal_#1", operation_name="pwc_signal", value_shape=(), batch_shape=()>
See the “Band-limited pulses with bounded slew rates” example in the How to add smoothing and band-limits to optimized controls user guide.