ket.expv¶
Expected value calculation utilities.
This module provides base classes creating a Hamiltonian fro expected value calculation.
Classes ket.expv¶
Expected value for a quantum state. |
|
Hamiltonian for expected value calculation. |
|
Pauli operator for Hamiltonian creation. |
- class ExpValue(hamiltonian: Hamiltonian | Pauli)¶
Expected value for a quantum state.
This class holds a reference for a expected value result. The result may not be available right after the measurement call, especially in batch execution.
To read the value, access the attribute
value. If the value is not available, the measurement will return None; otherwise, it will return a float.You can instantiate this class by calling the
exp_valuefunction.Example
from ket import * p = Process() q = p.alloc(2) CNOT(H(q[0]), q[1]) result = exp_value(Pauli("X", q)) print(result.value) # 1.0000000000000004
- class Hamiltonian(pauli_products: list[Pauli], process: Process)¶
Hamiltonian for expected value calculation.
This class is not intended to be instantiated directly. Instead, it should be created by adding
Paulioperators or otherHamiltonianobjects.
- class Pauli(pauli: Literal['X', 'Y', 'Z', 'I'], qubits: Quant, *, _process: Process | None = None, _map: dict[int, str] | None = None, _coef: float | None = None)¶
Pauli operator for Hamiltonian creation.
Tip
The preferred way to create a Hamiltonian is by using the
hamcontext manager, which allows you to define a Hamiltonian using a more intuitive syntax. However, you can also create Hamiltonians directly by instantiating this class.This class represents a Pauli operator for Hamiltonian creation. The primary usage of this class is to prepare a Hamiltonian by adding and multiplying Pauli operators and scalars for calculating the expected value of a quantum state.
Allowed operations: - Multiply by a scalar or another
Paulioperator. - Add anotherPauliorHamiltonianoperator.Example
from ket import * p = Process() qubits = p.alloc(3) H(qubits[1]) S(H(qubits[2])) # Example 1: Single Pauli term pauli_term = Pauli("X", qubits[0]) print(repr(pauli_term)) # <Ket 'Pauli' 1.0*X0, pid=0x...> # Example 2: Sum of Pauli terms sum_pauli = Pauli("Y", qubits[1]) + Pauli("Z", qubits[2]) print(repr(sum_pauli)) # <Ket 'Hamiltonian' 1.0*Y1 + 1.0*Z2, pid=0x...> # Example 3: Pauli multiplication multiplied_pauli = 2.0 * Pauli("X", qubits[0]) * Pauli("Y", qubits[1]) print(repr(multiplied_pauli)) # <Ket 'Pauli' 2.0*X0Y1, pid=0x...> # Example 4: Calculating expected value h = Pauli("Z", qubits[0]) + Pauli("X", qubits[1]) + Pauli("Y", qubits[2]) print(repr(h)) # <Ket 'Hamiltonian' 1.0*Z0 + 1.0*X1 + 1.0*Y2, pid=0x...> result = exp_value(h) print(result.value) # 3.0000000000000013
- Parameters:
pauli – Pauli operator type.
qubits – Qubits to apply the Pauli operator to.
process – For internal usage. Quantum process, default is the process of the given qubits.
pauli_list – For internal usage. List of Pauli operators.
qubits_list – For internal usage. List of Qubit.
coef – For internal usage. Coefficient for the Pauli operator, default is 1.0.
- static x(qubits: Quant) Pauli¶
Pauli X operator.
- Parameters:
qubits – Qubits to apply the Pauli operator to.
- static y(qubits: Quant) Pauli¶
Pauli Y operator.
- Parameters:
qubits – Qubits to apply the Pauli operator to.
Functions ket.expv¶
|
Calculate the commutator of two Hamiltonians. |
- commutator(a: Hamiltonian, b: Hamiltonian) Hamiltonian¶
Calculate the commutator of two Hamiltonians.