API
ParameterizedQuantumControl.ParameterizedOptResult — TypeResult object returned by optimize_parameters.
ParameterizedQuantumControl.ParameterizedOptWrk — TypeParameterized Optimization Workspace.
ParameterizedQuantumControl.optimize_parameters — Methodusing ParameterizedQuantumControl
result = optimize(problem; method=ParameterizedQuantumControl, kwargs...)optimizes the given control problem by varying a set of control parameters in order to minimize the functional
\[J(\{u_{n}\}) = J_T(\{|ϕ_k(T)⟩\})\]
where $|ϕ_k(T)⟩$ is the result of propagating the initial state of the $k$'th trajectory under the parameters $\{u_n\}$
Returns a ParameterizedOptResult.
Keyword arguments that control the optimization are taken from the keyword arguments used in the instantiation of problem; any of these can be overridden with explicit keyword arguments to optimize.
Required problem keyword arguments
backend: A package to perform the optimization, e.g.,Optimization(for Optimization.jl)optimizer: A backend-specific object to perform the optimizatino, e.g.,NLopt.LN_NELDERMEAD()fromNLOpt/OptimizationNLOptJ_T: A functionJ_T(ϕ, trajectories; τ=τ)that evaluates the final time functional from a vectorϕof forward-propagated states andproblem.trajectories. For alltrajectoriesthat define atarget_state, the elementτₖof the vectorτwill contain the overlap of the stateϕₖwith thetarget_stateof thek'th trajectory, orNaNotherwise.
Optional problem keyword arguments
parameters: AnAbstractVectorof parameters to tune in the optimization. By default,parameters=get_parameters(problem). If given explicitly, the vector must alias values inside the generators used inproblem.trajectoriesso that mutating theparametersarray directly affects any subsequent propagation.lb: AnAbstractVectorof lower bound values for a box constraint. Must be a vector similar to (and of the same size asparameters)ub: AnAbstractVectorof upper bound values for a box constraint, cf.lbuse_threads: If given atrue, propagate trajectories in paralleliter_stop: The maximum number of iterations
ParameterizedQuantumControl.print_table — MethodPrint optimization progress as a table.
This functions serves as the default info_hook for an optimization with ParameterizedQuantumControl.