Hamiltonià
La classe Hamiltonian representa un Hamiltonià simbòlic com una suma d’operadors de Pauli ponderats. Podeu crear Hamiltonians fent servir els operadors de Pauli integrats i combinar-los amb operacions aritmètiques estàndard.
Construcció
Per construir un Hamiltonià amb un sol Pauli, podeu fer servir els constructors X(i), Y(i), Z(i), I(i). A partir d’aquests operadors d’un sol qubit, podeu construir Hamiltonians de múltiples qubits mitjançant operacions aritmètiques. Les operacions segueixen la sintaxi de Python; per exemple: 2 * Z(0) + Z(1) i Z(0) * Z(1) construeixen Hamiltonians de múltiples qubits.
Llista d’operacions
Operacions aritmètiques:
Suma:
H1 + H2Multiplicació escalar:
5 * HMultiplicació:
H0 * H1Resta:
H1 - H2Divisió per escalar:
H / 5Negació:
-H
Operadors simbòlics addicionals:
commutador:
H1.commutator(H2)anticommutador:
H1.anticommutator(H2)norma_vectorial:
H.vector_norm()norma_frobenius:
H.frobenius_norm()traça:
H.trace()
Exportació de Hamiltonians:
a matriu:
H.to_matrix(nqubits)a qtensor:
H.to_qtensor(nqubits)
Importació de Hamiltonians:
des de qtensor:
Hamiltonian.from_qtensor(qtensor)des de cadena:
Hamiltonian.parse(hamiltonian_string)
Exemple: Hamiltonià d’Ising
Per definir un Hamiltonià d’Ising de la forma:
podeu fer servir els operadors de Pauli Z de la biblioteca:
from qilisdk.analog import Z
nqubits = 3
J = {(0, 1): 1, (0, 2): 2, (1, 2): 4}
h = {0: 1, 1: 2, 2: 3}
coupling = sum(weight * Z(i) * Z(j) for (i, j), weight in J.items())
fields = sum(weight * Z(i) for i, weight in h.items())
H = -(coupling + fields)
print(H)
Sortida:
- Z(0) Z(1) - 2 Z(0) Z(2) - 4 Z(1) Z(2) - Z(0) - 2 Z(1) - 3 Z(2)