class MP2InitialPoint(*, threshold=1e-12)[source]#

Bases: InitialPoint

Compute the second-order Møller-Plesset perturbation theory (MP2) initial point.

The computed MP2 correction coefficients are intended for use as an initial point for the VQE parameters in combination with a UCC ansatz.

The initial point parameters are computed using the compute() method, which requires the problem and ansatz to be passed as arguments or the problem and ansatz attributes to be set already.

The problem is required to be an ElectronicStructureProblem which contains an ElectronicEnergy Hamiltonian. It also must have its num_particles and orbital_energies attributes specified. If its reference_energy attribute is provided, this will be used to compute the total_energy. ElectronicEnergy must contain the two-body, molecular-orbital electronic_integrals.

Setting the problem will compute the t2_amplitudes and energy_correction.

Following computation, one can obtain the initial point array via the to_numpy_array() method. The initial point parameters that correspond to double excitations in the excitation_list will equal the appropriate T2 amplitude, while those below threshold or that correspond to single, triple, or higher excitations will be zero.



The UCC ansatz.

The excitation_list and reps used by the UCC ansatz is obtained to ensure that the shape of the initial point is appropriate.


The MP2 energy correction.


The problem instance.

See MP2InitialPoint for more information on the required properties.


T2 amplitudes.

Given t2[i, j, a, b] i, j carry virtual indices, while a, b carry occupied indices.

threshold: float#

Amplitudes below this vanish in the initial point array.


The total energy including the Hartree-Fock energy.

If the reference energy was not obtained from ElectronicEnergy this will be equal to energy_correction.


compute(ansatz=None, problem=None)[source]#

Compute the initial point parameter for each excitation.

See class documentation for more information.


QiskitNatureError -- If ansatz or problem is not set.


The initial point as a NumPy array.

রিটার্ন টাইপ: