Prólogo e Instrucciones#
Prólogo#
Hola. Desde TalentQ hemos preparado este tutorial para tí. Antes que nada, queremos dejar claro que, aunque se trata de un curso introductorio básico, el objetivo no es divulgativo, sino operativo. Si lo que quieres es programar en un computador cuántico este manual de autoayuda pretende llevarte de la mano hacia ese objetivo, aunque al principio haya que subir alguna cuesta empinada. Estamos convencidos de que las concesiones iniciales a la vulgarización de las herramientas se acaban pagando. Por ello, haremos un esfuerzo por mantener el rigor sin ser unos plomos pedantes.
Hemos estructurado el curso a la vieja usanza: primero los mimbres. Si los números complejos te quedan muy lejos y los vectores te producen ardores, te recomendamos que emplees un tiempo en dominar el noble arte del álgebra lineal y blandirte a mandobles entre los kets y los bras. Algo que, por otro lado, no es tan difícil: hay más notación que otra cosa y es, como andar, cuestión de empezar y practicar. Tampoco hemos hecho un curso de Mecánica Cuántica por lo que, de ésta, se hará una introducción rigurosa pero escueta y operacional. En general, hemos reducido deliberadamente el texto a su mínima expresión.
El curso está pensado para pasar a la acción lo antes posible, pero no demasiado antes. La idea es ir a la vez aprendiendo y programando. Antes se decía que uno no ha entiendo algo hasta que no consigue explicárselo a su abuela. Ahora te pediremos que le expliques cosas a tu ordenador. A veces te parecerá que ¡está más sordo que tu abuela! y tendrás que repetir hasta que entienda. Será necesario que tengas un mínimo nivel de programación en python, pero también podrás aprender viendo las soluciones (aunque no aprenderás tanto).
En los lenguajes de programación cuántica de hoy en día, muchas funcionalidades están encapsuladas en funciones de alto nivel. Estas incorporan, pero también esconden, la conexión con las reglas primarias de la Mecánica Cuántica. Deliberadamente hemos querido obligarte a programar a bajo nivel. Por ejemplo el cálculo de valores esperados aquí lo haremos con los dientes ¡con brakets claro! :)
El curso aun está y estará durante tiempo en construcción. Por el momento, intentaremos incluir código en dos lenguajes de programación: Qibo 2.0 y Qiskit 1.0. La idea es que, eventualmente puedas correr tus programas en el ordenador de Quantum Spain.
Nada más. Esperamos que disfrutes. Cualquier cosa, nos escribes. Un saludo. Empezamos.
Javier y David
Instrucciones#
Las celdas de código no son interactivas. Pero siempre las puedes copiar y pegar. Otra posibilidad es ir al repositorio de Github
Repositorio#
A lo largo de toda la web, en la parte superior derecha puedes encontrar enlace al repositorio de Github donde se alojan los notebooks originales (en la carpeta Notebooks
del repositorio).
Puedes bajarte el repositorio y ejecutar los notebook, bien usando Jupyter Notebook/Lab en Anaconda, Google Colab, …
requirements.txt
Para que los notebook funcionen, hay que instalar una serie de paquetes. Los más importantes son
qiskit==1.0.1
qiskit-aer==0.13.3
qibo==0.2.4
Puedes por ejemplo, crear un entorno de conda e instalar ahí los paquetes necesario usando nuestro requirements.txt
conda create -n "TalentQ" python=3.10.13
conda activate TalentQ
pip install -r "requirements.txt"
La macro: macrotQ.py
**#
A lo largo del curso se proponen ejercicios que implican generar funciones que más tarde se utilizarán. Hemos puesto muchas de estas funciones en este paquete que luego se invoca, para una función_concreta, escribiendo tQ.funcion_concreta. Para ello es necesario importarla y la primera celda de cada capítulo es las siguiente
%run ../../macro_tQ.py
import sys
sys.path.append('../../')
import macro_tQ as tQ