qiskit.chemistry.algorithms.OrbitalOptimizationVQE¶

class
OrbitalOptimizationVQE
(transformation, solver, initial_point=None, orbital_rotation=None, bounds=None, iterative_oo=True, iterative_oo_iterations=2)[código fonte]¶ A ground state calculation employing the OOVQE algorithm. The Variational Quantum Eigensolver (VQE) algorithm enhanced with the Orbital Optimization (OO). The core of the approach resides in the optimization of orbitals through the AOtoMO coefficients matrix C. In the usual VQE, the latter remains constant throughout the simulation. Here, its elements are modified according to C=Ce^(kappa) where kappa is an antihermitian matrix. This transformation preserves the spectrum but modifies the amplitudes of the ground state of given operator such that in the end a given ansatz can be closest to that ground state, producing larger overlap and lower eigenvalue than conventional VQE. Kappa is parametrized and optimized inside the OOVQE in the same way as the gate angles. Therefore, at each step of OOVQE the coefficient matrix C is modified and the operator is recomputed, unlike usual VQE where operator remains constant. Iterative OO refers to optimization in two steps, first the wavefunction and then the orbitals. It allows for faster optimization as the operator is not recomputed when wavefunction is optimized. It is recommended to use the iterative method on real device/qasm simulator with noise to facilitate the convergence of the classical optimizer. For more details of this method refer to: https://aip.scitation.org/doi/10.1063/1.5141835
 Parâmetros
transformation (
FermionicTransformation
) – a fermionic driver to operator transformation strategy.solver (
Union
[MinimumEigensolver
,MinimumEigensolverFactory
]) – a VQE instance or a factory for the VQE solver employing any custom variational form, such as the VQEUCCSDFactory. Both need to use the UCCSD variational form.initial_point (
Optional
[ndarray
]) – An optional initial point (i.e. initial parameter values) for the optimizer. IfNone
then VQE will look to the variational form for a preferred point and if not will simply compute a random one.orbital_rotation (
Optional
[OrbitalRotation
]) – instance ofOrbitalRotation
class that creates the matrices that rotate the orbitals needed to produce the rotated MO coefficients C as C = C0 * exp(kappa).bounds (
Optional
[ndarray
]) – bounds for variational form and orbital rotation parameters given to a classical optimizer.iterative_oo (
bool
) – whenTrue
optimize first the variational form and then the orbitals, iteratively. Otherwise, the wavefunction ansatz and orbitals are optimized simultaneously.iterative_oo_iterations (
int
) – number of iterations in the iterative procedure, set larger to be sure to converge to the global minimum.
 Levanta
AquaError – if the number of orbital optimization iterations is less or equal to zero.

__init__
(transformation, solver, initial_point=None, orbital_rotation=None, bounds=None, iterative_oo=True, iterative_oo_iterations=2)[código fonte]¶  Parâmetros
transformation (
FermionicTransformation
) – a fermionic driver to operator transformation strategy.solver (
Union
[MinimumEigensolver
,MinimumEigensolverFactory
]) – a VQE instance or a factory for the VQE solver employing any custom variational form, such as the VQEUCCSDFactory. Both need to use the UCCSD variational form.initial_point (
Optional
[ndarray
]) – An optional initial point (i.e. initial parameter values) for the optimizer. IfNone
then VQE will look to the variational form for a preferred point and if not will simply compute a random one.orbital_rotation (
Optional
[OrbitalRotation
]) – instance ofOrbitalRotation
class that creates the matrices that rotate the orbitals needed to produce the rotated MO coefficients C as C = C0 * exp(kappa).bounds (
Optional
[ndarray
]) – bounds for variational form and orbital rotation parameters given to a classical optimizer.iterative_oo (
bool
) – whenTrue
optimize first the variational form and then the orbitals, iteratively. Otherwise, the wavefunction ansatz and orbitals are optimized simultaneously.iterative_oo_iterations (
int
) – number of iterations in the iterative procedure, set larger to be sure to converge to the global minimum.
 Levanta
AquaError – if the number of orbital optimization iterations is less or equal to zero.
Methods
__init__
(transformation, solver[, …]) type transformation
FermionicTransformation
evaluate_operators
(state, operators)Evaluates additional operators at the given state.
Whether the eigensolver returns the ground state or only ground state energy.
solve
(driver[, aux_operators])Compute Ground State properties.
Attributes
Returns the minimum eigensolver or factory.
Returns the transformation used to obtain a qubit operator from the molecule.

evaluate_operators
(state, operators)¶ Evaluates additional operators at the given state.
 Parâmetros
state (
Union
[str
,dict
,Result
,list
,ndarray
,Statevector
,QuantumCircuit
,Instruction
,OperatorBase
]) – any kind of input that can be used to specify a state. See alsoStateFn
for more details.operators (
Union
[WeightedPauliOperator
,OperatorBase
,list
,dict
]) – either a single, list or dictionary ofWeightedPauliOperator``s or any kind of operator implementing the ``OperatorBase
.
 Tipo de retorno
Union
[float
,None
,List
[Optional
[float
]],Dict
[str
,List
[Optional
[float
]]]] Retorna
The expectation value of the given operator(s). The return type will be identical to the format of the provided operators.

returns_groundstate
()[código fonte]¶ Whether the eigensolver returns the ground state or only ground state energy.
 Tipo de retorno
bool

solve
(driver, aux_operators=None)[código fonte]¶ Compute Ground State properties.
 Parâmetros
driver (
BaseDriver
) – a chemistry driver object which defines the chemical problem that is to be solved by this calculation.aux_operators (
Union
[List
[FermionicOperator
],List
[BosonicOperator
],None
]) – Additional auxiliary operators to evaluate at the ground state. Depending on whether a fermionic or bosonic system is solved, the type of the operators must beFermionicOperator
orBosonicOperator
, respectively.
 Levanta
NotImplementedError – If an operator in
aux_operators
is not of typeFermionicOperator
. Tipo de retorno
ElectronicStructureResult
 Retorna
An eigenstate result. Depending on the transformation this can be an electronic structure or bosonic result.

property
solver
¶ Returns the minimum eigensolver or factory.
 Tipo de retorno
Union
[MinimumEigensolver
,MinimumEigensolverFactory
]

property
transformation
¶ Returns the transformation used to obtain a qubit operator from the molecule.
 Tipo de retorno
Transformation