class PUCCD(num_spatial_orbitals=None, num_particles=None, qubit_mapper=None, *, reps=1, initial_state=None, include_singles=(False, False), generalized=False, include_imaginary=False)[ソース]#

ベースクラス: UCC

The PUCCD Ansatz.

The PUCCD ansatz (by default) only contains double excitations. Furthermore, it enforces all excitations to occur in parallel in the alpha and beta species. For more information see also [1].

Note, that this ansatz can only work for singlet-spin systems. Therefore, the number of alpha and beta electrons must be equal.

This is a convenience subclass of the UCC ansatz. For more information refer to UCC.


[1] arXiv:1911.10864

  • num_spatial_orbitals (int | None) – The number of spatial orbitals.

  • num_particles (tuple[int, int] | None) – The tuple of the number of alpha- and beta-spin particles.

  • qubit_mapper (QubitMapper | None) – The QubitMapper which takes care of mapping to a qubit operator.

  • reps (int) – The number of times to repeat the evolved operators.

  • initial_state (QuantumCircuit | None) – A QuantumCircuit object to prepend to the circuit.

  • include_singles (tuple[bool, bool]) – enables the inclusion of single excitations per spin species.

  • generalized (bool) – Boolean flag whether or not to use generalized excitations, which ignore the occupation of the spin orbitals. As such, the set of generalized excitations is only determined from the number of spin orbitals and independent from the number of particles.

  • include_imaginary (bool) – Boolean flag which when set to True expands the ansatz to include imaginary parts using twice the number of free parameters.


QiskitNatureError – if the number of alpha and beta electrons is not equal.



Whether to include single excitations.


generate_excitations(num_spatial_orbitals, num_particles)[ソース]#

Generates the excitations for the PUCCD Ansatz.

  • num_spatial_orbitals (int) – the number of spatial orbitals.

  • num_particles (tuple[int, int]) – the number of alpha and beta electrons. Note, these must be identical for

  • class. (this) –


QiskitNatureError – if the number of alpha and beta electrons is not equal.


The list of excitations encoded as tuples of tuples. Each tuple in the list is a pair of tuples. The first tuple contains the occupied spin orbital indices whereas the second one contains the indices of the unoccupied spin orbitals.


list[tuple[tuple[int, …], tuple[int, …]]]