BogoliubovTransform#
- class BogoliubovTransform(transformation_matrix, qubit_mapper=None, *, validate=True, rtol=1e-05, atol=1e-08, **circuit_kwargs)[fuente]#
Bases:
QuantumCircuit
A circuit that performs a Bogoliubov transform.
A Bogoliubov transform effects a unitary basis change that maps the fermionic ladder operators to a new set of ladder operators that also satisfy the fermionic anticommutation relations. That is, it effects a unitary \(U\) such that
\[U a^\dagger_j U^\dagger = b^\dagger_j, \quad j = 1, \ldots, N\]where the \(\{a_j\}\) are the original fermionic creation operators and the \(\{b_j\}\) are the new fermionic creation operators. The new creation operators are linear combinations of the original ladder operators, and the coefficients of the linear combinations are specified by a matrix \(W\) which determines the unitary \(U\). The matrix \(W\) is either \(N \times N\) or \(N \times 2N\).
If \(W\) is \(N \times N\), then the linear combinations involve only the original creation operators:
\[\begin{split}\begin{pmatrix} b^\dagger_1 \\ \vdots \\ b^\dagger_N \\ \end{pmatrix} = W \begin{pmatrix} a^\dagger_1 \\ \vdots \\ a^\dagger_N \\ \end{pmatrix}.\end{split}\]If \(W\) is \(N \times 2N\), then the linear combinations involve both the original creation and annihilation operators:
\[\begin{split}\begin{pmatrix} b^\dagger_1 \\ \vdots \\ b^\dagger_N \\ \end{pmatrix} = W \begin{pmatrix} a^\dagger_1 \\ \vdots \\ a^\dagger_N \\ a_1 \\ \vdots \\ a_N \end{pmatrix}.\end{split}\]The matrix \(W\) is commonly obtained by calling the
diagonalizing_bogoliubov_transform()
method of theQuadraticHamiltonian
class.Currently, only the Jordan-Wigner Transformation is supported.
Referencias
- Parámetros:
transformation_matrix (np.ndarray) – The matrix \(W\) that specifies the coefficients of the new creation operators in terms of the original creation operators. Should be either \(N \times N\) or \(N \times 2N\).
qubit_mapper (QubitMapper | None) – The
QubitMapper
. The default behavior is to create one using the callJordanWignerMapper()
.validate (bool) – Whether to validate the inputs.
rtol (float) – Relative numerical tolerance for input validation.
atol (float) – Absolute numerical tolerance for input validation.
circuit_kwargs – Keyword arguments to pass to the
QuantumCircuit
initializer.
- Muestra:
ValueError –
transformation_matrix
must be a 2-dimensional array.ValueError –
transformation_matrix
must have orthonormal rows.ValueError –
transformation_matrix
does not describe a valid transformation of fermionic ladder operators. If the transformation matrix is \(N \times N\), then it should be unitary. If the transformation matrix is \(N \times 2N\), then it should have the block form \((W_1 \quad W_2)\) where \(W_1 W_1^\dagger + W_2 W_2^\dagger = I\) and \(W_1 W_2^T + W_2 W_1^T = 0\).NotImplementedError – Currently, only the Jordan-Wigner Transform is supported. Please use the
qiskit_nature.second_q.mappers.JordanWignerMapper
.
Attributes
Methods