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
/OptimizationNLOpt
J_T
: A functionJ_T(ϕ, trajectories; τ=τ)
that evaluates the final time functional from a vectorϕ
of forward-propagated states andproblem.trajectories
. For alltrajectories
that define atarget_state
, the elementτₖ
of the vectorτ
will contain the overlap of the stateϕₖ
with thetarget_state
of thek
'th trajectory, orNaN
otherwise.
Optional problem keyword arguments
parameters
: AnAbstractVector
of 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.trajectories
so that mutating theparameters
array directly affects any subsequent propagation.lb
: AnAbstractVector
of lower bound values for a box constraint. Must be a vector similar to (and of the same size asparameters
)ub
: AnAbstractVector
of upper bound values for a box constraint, cf.lb
use_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
.