Hamiltoniano

La clase Hamiltonian representa un Hamiltoniano simbólico como una suma de operadores de Pauli ponderados. Se pueden crear Hamiltonianos utilizando los operadores de Pauli integrados y combinarlos con operaciones aritméticas estándar.

Construcción

Para construir un Hamiltoniano con un único Pauli, se pueden usar los constructores X(i), Y(i), Z(i), I(i). A partir de estos operadores de un qubit, se pueden construir Hamiltonianos de múltiples qubits mediante operaciones aritméticas. Las operaciones siguen la sintaxis de Python; por ejemplo: 2 * Z(0) + Z(1) y Z(0) * Z(1) construyen un Hamiltoniano de múltiples qubits.

Lista de Operaciones

Operaciones aritméticas:

  • Suma: H1 + H2

  • Multiplicación escalar: 5 * H

  • Multiplicación: H0 * H1

  • Resta: H1 - H2

  • División por escalar: H / 5

  • Negación: -H

Operadores Simbólicos Adicionales:

Exportación de Hamiltonianos:

Importación de Hamiltonianos:

Ejemplo: Hamiltoniano de Ising

Para definir un Hamiltoniano de Ising de la forma:

\[H_{\text{Ising}} = - \sum_{\langle i, j \rangle} J_{ij} \sigma^Z_i \sigma^Z_j - \sum_j h_j \sigma^Z_j\]

puede utilizar los operadores 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)

Salida:

- Z(0) Z(1) - 2 Z(0) Z(2) - 4 Z(1) Z(2) - Z(0) - 2 Z(1) - 3 Z(2)