Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Implementación y Análisis de Algoritmos Cuánticos en la Era NISQ

Trabajo de grado — Ingeniería de Sistemas y Computación, Universidad de los Andes (2026).

Este repositorio contiene el framework de benchmarking, los datos experimentales, el análisis y el documento de la tesis.

Resumen

Estudio experimental que mide el impacto del ruido y la topología de hardware sobre cuatro algoritmos cuánticos fundamentales: Bernstein-Vazirani, Simon, Grover sobre instancias k-SAT y Estimación Cuántica de Fase (QPE). Cada algoritmo se evaluó bajo tres modelos de ruido (error de lectura, despolarizante y relajación térmica) y tres topologías (ideal, lineal de 20 qubits y heavy-hex de 127 qubits inspirada en ibm_brisbane), con 25 repeticiones por escenario e intervalos de confianza al 95%.

Toda la infraestructura corre en simulación sobre Qiskit + Qiskit Aer, sin necesidad de acceso a hardware real.

Estructura del repositorio

.
├── src/
│   ├── algorithms/          # Implementaciones cuánticas y clásicas
│   │   ├── bernstein_vazirani.py
│   │   ├── simon.py
│   │   ├── grover_ksat.py
│   │   └── qpe.py
│   ├── utils/               # Modelos de ruido, métricas y generador k-SAT
│   │   ├── noise_factory.py
│   │   ├── metrics.py
│   │   └── ksat_gen.py
│   ├── data/
│   │   └── run_benchmarks.py  # Script maestro del banco de pruebas
│   └── ui/                  # Interfaz interactiva (Streamlit)
│       ├── bv_view.py
│       ├── simon_view.py
│       ├── grover_view.py
│       └── qpe_view.py
├── data/                    # Resultados del benchmark (CSV por algoritmo)
├── app.py                   # Punto de entrada de la interfaz Streamlit
└── requirements.txt

Instalación

Requiere Python 3.11 o superior.

pip install -r requirements.txt

Uso

Reproducir el benchmark completo (~90 min en un Intel i5-10400F):

python -m src.data.run_benchmarks

Los resultados se guardan en data/benchmark_<algoritmo>_<timestamp>.csv.

Para correr solo un subconjunto de algoritmos, editar RUN_CONFIG al inicio de run_benchmarks.py.

Explorar resultados de forma interactiva:

streamlit run app.py

Dependencias principales

Paquete Versión mínima Uso
qiskit 1.0.0 Construcción y transpilación de circuitos
qiskit-aer 0.14.0 Simulación con modelos de ruido
qiskit-ibm-runtime 0.20.0 FakeBrisbane (topología heavy-hex)
numpy / pandas / scipy Análisis estadístico
matplotlib / seaborn Visualización
streamlit 1.32.0 Interfaz exploratoria

About

Source code and benchmarking framework for my undergraduate thesis: Evaluating classic quantum algorithms (Grover, QPE, Simon, BV) under NISQ noise models using Qiskit

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages