qiskit-documentation/docs/api/qiskit/0.41/qiskit.algorithms.time_evol...

109 lines
4.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: TrotterQRTE
description: API reference for qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE
---
# TrotterQRTE
<Class id="qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.23/qiskit/algorithms/time_evolvers/trotterization/trotter_qrte.py" signature="TrotterQRTE(product_formula=None, estimator=None)" modifiers="class">
Bases: [`qiskit.algorithms.time_evolvers.real_time_evolver.RealTimeEvolver`](qiskit.algorithms.RealTimeEvolver "qiskit.algorithms.time_evolvers.real_time_evolver.RealTimeEvolver")
Quantum Real Time Evolution using Trotterization. Type of Trotterization is defined by a `ProductFormula` provided.
**Examples**
```python
from qiskit.opflow import PauliSumOp
from qiskit.quantum_info import Pauli, SparsePauliOp
from qiskit import QuantumCircuit
from qiskit.algorithms import TimeEvolutionProblem
from qiskit.algorithms.time_evolvers import TrotterQRTE
from qiskit.primitives import Estimator
operator = PauliSumOp(SparsePauliOp([Pauli("X"), Pauli("Z")]))
initial_state = QuantumCircuit(1)
time = 1
evolution_problem = TimeEvolutionProblem(operator, time, initial_state)
# LieTrotter with 1 rep
estimator = Estimator()
trotter_qrte = TrotterQRTE(estimator=estimator)
evolved_state = trotter_qrte.evolve(evolution_problem).evolved_state
```
**Parameters**
* **product\_formula** ([*ProductFormula*](qiskit.synthesis.ProductFormula "qiskit.synthesis.ProductFormula") *| None*) A Lie-Trotter-Suzuki product formula. If `None` provided, the Lie-Trotter first order product formula with a single repetition is used.
* **estimator** ([*BaseEstimator*](qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator") *| None*) An estimator primitive used for calculating expectation values of `TimeEvolutionProblem.aux_operators`.
## Methods
### evolve
<Function id="qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE.evolve" signature="TrotterQRTE.evolve(evolution_problem)">
Evolves a quantum state for a given time using the Trotterization method based on a product formula provided. The result is provided in the form of a quantum circuit. If auxiliary operators are included in the `evolution_problem`, they are evaluated on an evolved state using an estimator primitive provided.
<Admonition title="Note" type="note">
Time-dependent Hamiltonians are not supported.
</Admonition>
**Parameters**
**evolution\_problem** ([`TimeEvolutionProblem`](qiskit.algorithms.TimeEvolutionProblem "qiskit.algorithms.time_evolvers.time_evolution_problem.TimeEvolutionProblem")) Instance defining evolution problem. For the included Hamiltonian, `Pauli` or `PauliSumOp` are supported by TrotterQRTE.
**Return type**
[`TimeEvolutionResult`](qiskit.algorithms.TimeEvolutionResult "qiskit.algorithms.time_evolvers.time_evolution_result.TimeEvolutionResult")
**Returns**
Evolution result that includes an evolved state as a quantum circuit and, optionally, auxiliary operators evaluated for a resulting state on an estimator primitive.
**Raises**
* **ValueError** If `t_param` is not set to `None` in the `TimeEvolutionProblem` (feature not currently supported).
* **ValueError** If `aux_operators` provided in the time evolution problem but no estimator provided to the algorithm.
* **ValueError** If the `initial_state` is not provided in the `TimeEvolutionProblem`.
* **ValueError** If an unsupported Hamiltonian type is provided.
</Function>
### supports\_aux\_operators
<Function id="qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE.supports_aux_operators" signature="TrotterQRTE.supports_aux_operators()" modifiers="classmethod">
Whether computing the expectation value of auxiliary operators is supported.
**Return type**
`bool`
**Returns**
`True` if `aux_operators` expectations in the `TimeEvolutionProblem` can be evaluated, `False` otherwise.
</Function>
## Attributes
### estimator
<Attribute id="qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE.estimator">
Returns an estimator.
**Return type**
[BaseEstimator](qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator") | None
</Attribute>
### product\_formula
<Attribute id="qiskit.algorithms.time_evolvers.trotterization.TrotterQRTE.product_formula">
Returns a product formula.
**Return type**
[`ProductFormula`](qiskit.synthesis.ProductFormula "qiskit.synthesis.evolution.product_formula.ProductFormula")
</Attribute>
</Class>