BaseProblem#

class BaseProblem(hamiltonian)[source]#

Bases: object

The base representation of a second-quantization problem.

If none of the specific subclasses of this class fit your use case, you can instantiate this class itself with your custom Hamiltonian instance and pass it into one of the available algorithms.

The following attributes can be read and updated once the BaseProblem object has been constructed.

properties#

a container for additional observable operator factories.

Type:

PropertiesContainer

Parameters:
  • driver – A driver encoding the molecule information.

  • transformers – A list of transformations to be applied to the driver result.

  • main_property_name – A main property name for the problem

Attributes

hamiltonian#

Returns the hamiltonian wrapped by this problem.

Methods

get_default_filter_criterion()[source]#

Returns a default filter criterion method to filter the eigenvalues computed by the eigen solver. For more information see also filter_criterion().

In the fermionic case the default filter ensures that the number of particles is being preserved.

Return type:

Callable[[list | np.ndarray, float, list[float] | None], bool] | None

get_tapered_mapper(mapper)[source]#

Builds a TaperedQubitMapper from one of the mappers. This simplifies the identification of the Pauli operator symmetries and of the symmetry sector in which lies the solution of the problem.

Parameters:

mapper (QubitMapper) – QubitMapper object implementing the mapping of second quantized operators to Pauli operators.

Raises:

ValueError – If the mapper is a TaperedQubitMapper.

Returns:

A TaperedQubitMapper with pre-built symmetry specifications.

Return type:

TaperedQubitMapper

interpret(raw_result)[source]#

Interprets an EigenstateResult in the context of this problem.

Parameters:

raw_result (EigenstateResult | EigensolverResult | MinimumEigensolverResult) – an eigenstate result object.

Returns:

An interpreted EigenstateResult in the form of a subclass of it. The actual type depends on the problem that implements this method.

Return type:

EigenstateResult

second_q_ops()[source]#

Returns the second quantized operators associated with this problem.

Returns:

A tuple, with the first object being the main operator and the second being a dictionary of auxiliary operators.

Return type:

tuple[SparseLabelOp, dict[str, SparseLabelOp]]