TargetInput

class TargetInput(*, operator)

The desired time-evolution operator the controls implement in an ideal case. This target is a non-zero partial isometry, which means that it can be expressed in the form $$\sum_j \left|\psi_j\right>\left<\phi_j\right|$$, where $$\left\{\left|\psi_j\right>\right\}$$ and $$\left\{\left|\phi_j\right>\right\}$$ both form (non-empty) orthonormal, but not necessarily complete, sets. Such an operator represents a target state $$\left|\psi_j\right>$$ for each initial state $$\left|\phi_j\right>$$. You can use this type of operator to describe full quantum gates, quantum gates on subspaces, or state transfers. For example, to describe a target quantum gate represented by a unitary matrix $$U$$, where you are only interested in the behaviour of the gate on a subspace with orthogonal projection matrix $$P$$ (for example the qubit subspace of a qutrit, with $$P=\left|0\right>\left<0\right|+\left|1\right>\left<1\right|$$), you can set operator to the partial isometry $$PUP$$.

Variables

operator (ndarray) – The matrix that represents the target operator.