qml.qinfo.transforms.vn_entanglement_entropy

vn_entanglement_entropy(tape, wires0, wires1, base=None, **kwargs)[source]

Compute the Von Neumann entanglement entropy from a circuit returning a state():

\[S(\rho_A) = -\text{Tr}[\rho_A \log \rho_A] = -\text{Tr}[\rho_B \log \rho_B] = S(\rho_B)\]

where \(S\) is the von Neumann entropy; \(\rho_A = \text{Tr}_B [\rho_{AB}]\) and \(\rho_B = \text{Tr}_A [\rho_{AB}]\) are the reduced density matrices for each partition.

Warning

The qml.qinfo.vn_entanglement_entropy transform is deprecated and will be removed in v0.40. See the pennylane.vn_entropy() measurement instead.

The Von Neumann entanglement entropy is a measure of the degree of quantum entanglement between two subsystems constituting a pure bipartite quantum state. The entropy of entanglement is the Von Neumann entropy of the reduced density matrix for any of the subsystems. If it is non-zero, it indicates the two subsystems are entangled.

Parameters
  • tape (QNode or QuantumTape or Callable) – A quantum circuit returning a state().

  • wires0 (Sequence(int)) – List of wires in the first subsystem.

  • wires1 (Sequence(int)) – List of wires in the second subsystem.

  • base (float) – Base for the logarithm. If None, the natural logarithm is used.

Returns

The transformed circuit as described in qml.transform. Executing this circuit will provide the entanglement entropy in the form of a tensor.

Return type

qnode (QNode) or quantum function (Callable) or tuple[List[QuantumTape], function]