kwargs.jl

Public functions

QuantumACES.OptimOptionsType
OptimOptions

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 the max_tuple_number, so that at the end of an excursion the tuple set will have up to max_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 the max_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.
source

Private functions