qat.core.Observable
Check this notebook for an example of use and manipulation of observables.
- class qat.core.Observable(nqbits, matrix=None, pauli_terms=None, ising=None, constant_coeff=0.0)
Class describing an observable (i.e some Hermitian operator) over the Hilbert space spanned by a list of qbits.
The observable is stored as a sum of Terms, each composed of a Pauli operator and a real coefficient. It is also possible to store it with an Ising object which represents an Ising Hamiltonian.
The purpose of this class is mainly to efficiently automatize the sampling of this observable on the final state obtained after a computation.
Construction:
- Parameters:
nqbits (int) – number of qubits
matrix (np.array, optional) – the matrix representing the observable. Defaults to None.
pauli_terms (list<Term>, optional) – the list of products of Pauli operators representing the observable. Defaults to None.
ising (
Ising
, optional) – an object representing an Ising encoded problem. Defaults to None.constant_coeff (float) – a constant additive term
- terms
the list of products of Pauli operators representing the observable.
- Type:
list<Term>
- nbqbits
the number of qbits on which the observable acts
- Type:
int
- constant_coeff
a constant additive term
- Type:
float
- dump(fname)
Dumps the Qaptiva object in a binary file
Warning
The filename name can be extended to have extension
".obs"
- Parameters:
fname (str) – the file name
- classmethod load(fname)
Loads a Qaptiva object from a binary file
Warning
The filename name can be extended to have an extension
- Parameters:
fname (str) – the file name
- Returns:
An instance of the loaded object
- to_matrix(sparse: bool = True)
Returns the matrix representation of the Observable.
- Parameters:
sparse (bool, optional) – If a sparse matrix should be returned. Default to True.
- Returns:
numpy.ndarray or scipy.sparse.spmatrix
Note
Not implemented for other representation than using Pauli chains.