qutip_qtrl.stats

Statistics for the optimisation Note that some of the stats here are redundant copies from the optimiser used here for calculations

Classes

Stats()

Base class for all optimisation statistics Used for configurations where all timeslots are updated each iteration e.g.

StatsDynTsUpdate()

Optimisation stats class for configurations where all timeslots are not necessarily updated at each iteration.

class qutip_qtrl.stats.Stats[source]

Base class for all optimisation statistics Used for configurations where all timeslots are updated each iteration e.g. exact gradients Note that all times are generated using timeit.default_timer() and are in seconds

Attributes:
dyn_gen_namestring

Text used in some report functions. Makes sense to set it to ‘Hamiltonian’ when using unitary dynamics Default is simply ‘dynamics generator’

num_iterinteger

Number of iterations of the optimisation algorithm

wall_time_optim_startfloat

Start time for the optimisation

wall_time_optim_endfloat

End time for the optimisation

wall_time_optimfloat

Time elasped during the optimisation

wall_time_dyn_gen_computefloat

Total wall (elasped) time computing combined dynamics generator (for example combining drift and control Hamiltonians)

wall_time_prop_computefloat

Total wall (elasped) time computing propagators, that is the time evolution from one timeslot to the next Includes calculating the propagator gradient for exact gradients

wall_time_fwd_prop_computefloat

Total wall (elasped) time computing combined forward propagation, that is the time evolution from the start to a specific timeslot. Excludes calculating the propagators themselves

wall_time_onwd_prop_computefloat

Total wall (elasped) time computing combined onward propagation, that is the time evolution from a specific timeslot to the end time. Excludes calculating the propagators themselves

wall_time_gradient_computefloat

Total wall (elasped) time computing the fidelity error gradient. Excludes calculating the propagator gradients (in exact gradient methods)

num_fidelity_func_callsinteger

Number of calls to fidelity function by the optimisation algorithm

num_grad_func_callsinteger

Number of calls to gradient function by the optimisation algorithm

num_tslot_recomputeinteger

Number of time the timeslot evolution is recomputed (It is only computed if any amplitudes changed since the last call)

num_fidelity_computesinteger

Number of time the fidelity is computed (It is only computed if any amplitudes changed since the last call)

num_grad_computesinteger

Number of time the gradient is computed (It is only computed if any amplitudes changed since the last call)

num_ctrl_amp_updatesinteger

Number of times the control amplitudes are updated

mean_num_ctrl_amp_updates_per_iterfloat

Mean number of control amplitude updates per iteration

num_timeslot_changesinteger

Number of times the amplitudes of a any control in a timeslot changes

mean_num_timeslot_changes_per_updatefloat

Mean average number of timeslot amplitudes that are changed per update

num_ctrl_amp_changesinteger

Number of times individual control amplitudes that are changed

mean_num_ctrl_amp_changes_per_updatefloat

Mean average number of control amplitudes that are changed per update

calculate()[source]

Perform the calculations (e.g. averages) that are required on the stats Should be called before calling report

report()[source]

Print a report of the stats to the console

class qutip_qtrl.stats.StatsDynTsUpdate[source]

Optimisation stats class for configurations where all timeslots are not necessarily updated at each iteration. In this case it may be interesting to know how many Hamiltions etc are computed each ctrl amplitude update

Attributes:
num_dyn_gen_computesinteger

Total number of dynamics generator (Hamiltonian) computations, that is combining drift and control dynamics to calculate the combined dynamics generator for the timeslot

mean_num_dyn_gen_computes_per_updatefloat

# Mean average number of dynamics generator computations per update

mean_wall_time_dyn_gen_computefloat

# Mean average time to compute a timeslot dynamics generator

num_prop_computesinteger

Total number of propagator (and propagator gradient for exact gradient types) computations

mean_num_prop_computes_per_updatefloat

Mean average number of propagator computations per update

mean_wall_time_prop_computefloat

Mean average time to compute a propagator (and its gradient)

num_fwd_prop_step_computesinteger

Total number of steps (matrix product) computing forward propagation

mean_num_fwd_prop_step_computes_per_updatefloat

Mean average number of steps computing forward propagation

mean_wall_time_fwd_prop_computefloat

Mean average time to compute forward propagation

num_onwd_prop_step_computesinteger

Total number of steps (matrix product) computing onward propagation

mean_num_onwd_prop_step_computes_per_updatefloat

Mean average number of steps computing onward propagation

mean_wall_time_onwd_prop_compute

Mean average time to compute onward propagation

calculate()[source]

Perform the calculations (e.g. averages) that are required on the stats Should be called before calling report

report()[source]

Print a report of the stats to the console