COMPUTACI脫N CU脕NTICA CON QISKIT II

En el primer art铆culo de esta serie sobre Computaci贸n Cu谩ntica聽se expuso c贸mo la unidad fundamental de informaci贸n en sistemas de Computaci贸n Cl谩sica era el bit y c贸mo se tratan las distribuciones de probabilidad en ese paradigma.聽El objetivo de esta nueva entrega es el de ampliar nuestra perspectiva a la hora de abordar la modelizaci贸n de problemas. Comencemos.

Qubits

La Computaci贸n Cu谩ntica emplea, como se coment贸 anteriormente, principios presentes en f铆sica cu谩ntica como los fen贸menos de superposici贸n y entrelazamiento, entre otros, para llevar a cabo c谩lculos de una forma m谩s eficiente que con la computaci贸n tradicional. Esto lo consigue empleando como unidad de informaci贸n el qubit, que es un sistema de mec谩nica cu谩ntica de 2 estados pero que, cuando es observado y medido, puede tomar cualquier posible combinaci贸n de esos 2 valores. En el art铆culo inicial se present贸 el ejemplo del lanzamiento de una moneda como un caso que pod铆a modelizarse como una distribuci贸n de probabilidad en Computaci贸n Cl谩sica y se representaba como un vector columnar.

PRIMERA APROXIMACI脫N AL ESTADO CU脕NTICO

Como primera aproximaci贸n, podemos acercarnos al concepto de estado cu谩ntico tambi茅n como una distribuci贸n de probabilidad representada a trav茅s de un vector columnar. Para identificarlo y distinguirlo del vector de Computaci贸n Cl谩sica se emplear谩 el denominado ket de la notaci贸n Dirac. Siguiendo esta nomenclatura, el ket que representa el estado de un qubit se escribir谩 de la siguiente forma:

introducci贸n a la computaci贸n cu谩ntica

Donde a0, a1 鈭 鈩 y se denominan amplitudes de probabilidad de forma que cada amplitud estar谩 asociada a un estado cu谩ntico. La diferencia con el modelo cl谩sico es que ahora el requisito de normalizaci贸n es en la norma l2 en vez de en l1. Formalmente esto se traduce en que la ra铆z cuadrada de la suma de los cuadrados de los valores absolutos de las amplitudes ser谩 igual a 1:

introducci贸n a la computaci贸n cu谩ntica

PROFUNDIZANDO EN LA REPRESENTACI脫N DEL ESTADO CU脕NTICO

Profundizando en c贸mo representar un estado cu谩ntico, hay que decir que se emplean como vectores de base can贸nica en 2 dimensiones los kets 0 y 1 cuya notaci贸n Dirac ser谩 la siguiente:

introducci贸n a la computaci贸n cu谩ntica

Combinando lo que hemos visto sobre c贸mo representar el estado de un qubit con la notaci贸n de la base can贸nica en computaci贸n cu谩ntica, podemos describir el estado de dicho qubit empleando esa base can贸nica de la siguiente forma:

introducci贸n a la computaci贸n cu谩ntica

La expansi贸n del estado del qubit  (|) en una base nos lleva a unos de los fen贸menos m谩s importantes en mec谩nica cu谩ntica, la Superposici贸n. Si observamos una muestra de esa distribuci贸n de probabilidad que representa el qubit y la medimos, obtendremos la salida 鈥0鈥 con una probabilidad igual al cuadrado del valor absoluto de la amplitud que acompa帽a a la base can贸nica ket 0, es decir, |a0|2 y que obtendremos un 鈥1鈥 con probabilidad |a1|2 (el cuadrado del valor absoluto de amplitud que acompa帽a al ket 1).  Esta regla que nos permite calcular la probabilidad con la que se obtendr谩 cada uno de los estados cu谩nticos recibe el nombre de regla de Born.

Circuitos Cu谩nticos con Qiskit

Como la idea es ir viendo c贸mo implementar estos conceptos de teor铆a empleando el framework Qiskit de python, vamos a comenzar simulando el ejemplo del lanzamiento de una moneda totalmente sesgada donde se obtendr谩 鈥渃ara鈥 en el 100% de los lanzamientos, por lo que el ket

introducci贸n a la computaci贸n cu谩ntica

La librer铆a 鈥BasicAer鈥 proporciona un framework de simulaci贸n para la pila de software de Qiskit. En concreto, mediante su m茅todo 鈥get_backed鈥 permite definir el entorno de ejecuci贸n que podr谩 ser o bien un simulador o un procesador cu谩ntico real. En este caso, se est谩 indicando que se utilizar谩 el simulador 鈥qasm_simulator鈥, por lo que la ejecuci贸n no se realizar谩 en un entorno cu谩ntico aut茅ntico pero tratar谩 de imitarlo. Tambi茅n devolver谩 un diccionario con el contador de las medidas realizadas que estar谩n almacenadas en registros cl谩sicos del circuito cu谩ntico. En la variable 鈥榪r鈥 se almacenar谩 la referencia a un registro cu谩ntico que permitir谩 almacenar un qubit. Mientras que la variable 鈥榗r鈥 se emplear谩 para manejar un registro cl谩sico que contendr谩 un bit. Por 煤ltimo, en la variable 鈥榗ircuit鈥 se define un circuito cu谩ntico que inicialmente dispondr谩 del registro cu谩ntico 鈥榪r鈥 y del registro cl谩sico 鈥榗r鈥. Hay que decir que cualquier qubit estar谩 siempre inicializado por defecto en el ket 0, por lo que, si lo medimos, obtendremos el resultado deseado de una moneda totalmente sesgada que devuelva siempre 鈥榗ara鈥. Para realizar esa medici贸n emplearemos el m茅todo 鈥measure鈥 del circuito cu谩ntico que hemos definido en la variable 鈥榗ircuit鈥:

introducci贸n a la computaci贸n cu谩ntica

El m茅todo 鈥榤easure鈥 recibir谩 el qubit que hemos almacenado en el registro cu谩ntico 鈥榪r鈥, y cuando sea ejecutado el circuito, realizar谩 una medici贸n mediante la observaci贸n del estado cu谩ntico lo que provocar谩 que dicho estado colapse y se obtenga un valor concreto que ser谩 almacenado en el registro cl谩sico definido en la variable 鈥榗r鈥.  

EL SIGUIENTE PASO

Una vez que se ha a帽adido esa operaci贸n de medici贸n al circuito procederemos a ejecutarlo 50 veces (par谩metro shots=50) mediante la librer铆a 鈥execute鈥 de Qiskit almacenado la referencia a esa llamada en la variable 鈥榡ob鈥. Dicho m茅todo 鈥榚xecute鈥 recibir谩 el circuito a ejecutar y el backend de ejecuci贸n. Una vez hecho eso, se guardar谩 en la variable 鈥榬esult鈥 la llamada al m茅todo 鈥result鈥 del objeto 鈥榡ob鈥. Por 煤ltimo, como estamos empleando el 鈥榪asm_simulator鈥 dispondremos del m茅todo 鈥get_counts鈥 para obtener un diccionario donde cada clave ser谩 un estado y su valor el n煤mero de ocurrencias del mismo durante los experimentos (shots). Podremos comprobar que las 50 veces que se repite la ejecuci贸n del circuito cu谩ntico y se realiza su medici贸n se obtiene siempre un 鈥0鈥. Si estas ejecuciones se hubieran realizado en un procesador cu谩ntico real podr铆amos encontrar que esos resultados no  coincidir铆an exactamente con estas medidas debido entre otros factores al ruido.

introducci贸n a la computaci贸n cu谩ntica

Conclusi贸n

Acabamos de definir y ejecutar nuestro primer circuito cu谩ntico para simular el problema del lanzamiento de una moneda sesgada. Y como probablemente os hay谩is quedado con ganas de seguir jugando os emplazo al siguiente art铆culo de esta serie donde continuaremos profundizando en este apasionante campo.  

M脕STER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendr谩s amplios conocimientos sobre las herramientas y t茅cnicas anal铆ticas necesarias para la modelizaci贸n de los principales retos de negocio, con el fin de mejorar la toma de decisiones a trav茅s de los datos y el conocimiento.

Deja un comentario

Datahack logo