Parte del proyecto Quantum Quipu del grupo QuDIT, enfocado en aplicaciones de computación cuántica a simulación de sistemas físicos.
Este repositorio implementa la simulación de estados térmicos (o estados de Gibbs) de un sistema cuántico usando circuitos cuánticos parametrizados.
Dado un Hamiltoniano H y una temperatura inversa β = 1/kT, el estado térmico de equilibrio es:
El objetivo es preparar (o aproximar) ρ_β usando un circuito cuántico ejecutable en hardware IBM o en el simulador Qiskit Aer.
El proyecto implementa un método híbrido que combina:
- Estados de Haar aleatorios para inicialización
- Evolución en tiempo imaginario mediante el operador e^{-βH/2}
- Block encoding y amplificación de amplitud para implementación cuántica
El método clásico calcula analíticamente la energía esperada, mientras que el método cuántico utiliza circuitos con block encoding (FABLE) y amplificación tipo Grover.
- Hamiltoniano: Heisenberg anisotrópico 1D con campo transversal
- Número de qubits: 4 (configurable)
- Rango de β: [0.0, 1.6] con paso 0.05
- Backend: Qiskit Aer Simulator
QQuipu3/
├── README.md # Este archivo
├── LICENSE # Licencia MIT
├── requirements.txt # Dependencias de Python
├── P3.ipynb # Notebook principal (resultados y exploración)
├── functions_QQ.py # Funciones de construcción de circuitos y análisis
├── run_QQ.py # Script de ejecución por línea de comandos
├── theory/
│ └── background.md # Base teórica del método
└── results/
└── figures/ # Figuras generadas
run_QQ.py
└── importa → functions_QQ.py
└── define:
- transverse_field_heisenberg() → Hamiltoniano
- quantum_haar_state() → Estado de Haar
- block_encoding_amplification() → Método cuántico
P3.ipynb
└── importa → functions_QQ.py
└── explora interactivamente los resultados
git clone https://github.com/Dacastillo/QQuipu3.git
cd QQuipu3
pip install -r requirements.txtEl módulo fable (Fast Approximate Block Encoding) es necesario para el método cuántico. Si no está disponible, el método clásico seguirá funcionando.
jupyter notebook P3.ipynb# Ejecución con parámetros por defecto
python run_QQ.py
# Personalizar parámetros
python run_QQ.py --n-qubits 4 --depth 6 --beta-max 1.6
# Guardar figura
python run_QQ.py --output results/figures/energia_vs_beta.png| Opción | Tipo | Default | Descripción |
|---|---|---|---|
--n-qubits |
int | 4 | Número de qubits del sistema |
--depth |
int | 6 | Profundidad del circuito Haar |
--beta-max |
float | 1.6 | Valor máximo de temperatura inversa |
--output |
str | None | Archivo de salida para la figura |
from functions_QQ import transverse_field_heisenberg, quantum_haar_state
from scipy.linalg import expm
import numpy as np
# Parámetros
N = 4
d = 6
beta = 1.0
h, jx, jy, jz = 1.0, 0.5, 1.25, 2.0
# Construir Hamiltoniano
H = transverse_field_heisenberg(N, h, jx, jy, jz)
# Generar estado de Haar y aplicar evolución imaginaria
_, _, state = quantum_haar_state(N, d)
Q = expm(-beta * H / 2.0)
tpq = Q @ state
# Calcular energía esperada
energy = np.inner(tpq.conj().T, H @ tpq).real / np.inner(tpq.conj().T, tpq).real
print(f"Energía esperada (β={beta}): {energy:.4f}")El script genera una figura comparativa mostrando la energía esperada en función de la temperatura inversa β, comparando los métodos clásico y cuántico.
- β → 0 (alta temperatura): La energía se aproxima al valor promedio sobre todos los estados
- β → ∞ (baja temperatura): La energía se aproxima al estado fundamental
- La concordancia entre métodos valida la implementación cuántica
Este es el tercer entregable (QQuipu3) del proyecto Quantum Quipu, que investiga aplicaciones de computación cuántica a problemas de física de la materia condensada.
Trabajo desarrollado en el grupo QuDIT — Quantum Information and Technology Group.
Daniel Castillo-Castro · dacastillo.github.io
Colaboradores: Tony Milla, Sebastián Páucar, César Pacheco
MIT © 2024 Daniel Castillo-Castro
-
Lin, L. (2022). Lecture Notes on Quantum Algorithms for Scientific Computation. arXiv:2201.08309
-
Powers, M. et al. (2021). Exploring Finite Temperature Properties of Materials with Quantum Computers. arXiv:2109.01619
-
Motta, M. et al. (2020). Determining eigenstates and thermal states on a quantum computer using quantum imaginary time evolution. Nature Physics, 16, 205–210.
