kwargs.jl
Public functions
QuantumACES.OptimOptions
— TypeOptimOptions
Keyword arguments for optimise_design
, and specifically the optimisation functions within it, including for the gradient descent function optimise_weights
, the repetition number optimisation function optimise_repetitions
, and the tuple set optimisation function optimise_tuple_set
.
General options
ls_type::Symbol = :wls
: The type of least squares estimator for which we optimise the design, which can be:gls
,:wls
, or:ols
.save_data::Bool = false
: Whether to automatically save the optimised design.
Gradient descent options
learning_rate::Float64 = (ls_type == :ols ? 1.0 : 10.0^(3/4))
: Learning rate for the gradient descent algorithm.momentum::Float64 = 0.99
: Momentum for the gradient descent algorithm.learning_rate_scale_factor::Float64 = 10.0^(1/4)
: Factor by which to reduce the learning rate if the gradient descent algorithm repeatedly steps in directions that reduce the figure of merit.shot_weights_clip::Float64 = 1e-5
: If any tuple has shot weight below this threshold, the algorithm greedily considers pruning it from the tuple set.max_steps::Int = 400
: Maximum number of gradient descent steps to take.convergence_threshold::Float64 = 1e-5
: Convergence threshold for the gradient descent algorithm.convergence_steps::Int = 5
: Number of steps over which to check convergence.grad_diagnostics::Bool = false
: Whether to display gradient descent diagnostics.
Reptition number optimisation options
max_cycles::Int = 50
: Maximum number of cycles to use in the cyclic coordinate descent algorithm for optimising repetition numbers.rep_diagnostics::Bool = true
: Whether to display repetition number optimisation diagnostics.
Tuple set optimisation options
excursion_number::Int = 5
: Number of excurisons used to optimise the tuple set.excursion_length::Int = 5
: Number of tuples added by each excursion past themax_tuple_number
, so that at the end of an excursion the tuple set will have up tomax_tuple_number + excursion_length
tuples.max_tuple_number::Int = 35
: Maximum number of tuples in the optimised tuple set.max_tuple_length::Int = 20
: Maximum length of random tuples.tuple_length_zipf_power::Float64 = 1.0
: Zipf power to use when Zipf-randomly choosing the length of random tuples.repeat_zipf_powers::Vector{Float64} = [Inf; 2.0]
: Zipf power to use, chosen uniformly at random from the vector, when Zipf-randomly choosing how many times to repeat entries that will be appended to the end of a random tuple during its generation.mirror_values::Vector{Bool} = [false; true]
: Whether to mirror the tuple, chosen uniformly at random from the vector, when generating random tuples.trial_factor::Int = 20
: Number of random tuples trialled for each tuple the excursion needs to add to the tuple set to grow it to themax_tuple_number
.grow_greedy::Bool = true
: Whether the excursions add tuples to the set greedily according to the figure of merit, or to add them even if this reduces the figure of merit.seed::Union{UInt64, Nothing} = nothing
: Seed used to randomly generate tuples.tuple_diagnostics::Bool = true
: Whether to display tuple set optimisation diagnostics.