El Blog de QPath

Q xCompositor, ejemplos prácticos de desarrollo de circuitos cuánticos de puertas
En el artículo “Crece la familia de Q Assets Compositor® de QuantumPath®: nueva herramienta para el desarrollo de software cuántico para la empresa” se presenta el lanzamiento de Q xCompositor, una herramienta complementaria de QuantumPath® que permite el desarrollo de circuitos desde una interfaz conocida como la de Microsoft Excel [1] aprovechando las características propias de este software. Gracias a su addin y la integración completa con QPath®, se convierte en una herramienta a tener en cuenta para la creación de circuitos cuánticos de puertas escalables.
En el presente artículo se va a mostrar su funcionamiento mediante dos casos de uso. Un primero donde se creará de cero un QRNG (Quantum Random Number Generator) de mayor escala que el mostrado en el artículo “Computación cuántica práctica con QuantumPath®: Generador de números aleatorios de 3 cúbits” aprovechando las propiedades del xCompositor. Y una segunda parte donde ya se cuenta con un algoritmo implementado con Q Assets Compositor® de QuantumPath® y se opta por su edición en Q xCompositor.
Caso de uso 1: creación de un QRNG con Q xCompositor
En el artículo antes mencionado se proponía un ejemplo de un QRNG de 3 cúbits. Este se trata de un ejemplo muy simple pero que se puede aprovechar para mostrar la rapidez de construcción de circuitos que se puede alcanzar con Q xCompositor.
Dicho circuito requiere de tantos cúbits como bits se desee que tenga el número expresado en base dos. Por otro lado, cada uno de ellos contará con una puerta Hadamard para lograr la superposición y una puerta de medición para conocer el resultado final de nuestro número aleatorio.
Esto extrapolándolo a una hoja de cálculo y tener una visión de cómo se trabaja con Q xCompositor, cada fila sería un cúbit, se utilizaría la primera columna para las puertas Hadamard y una segunda para las mediciones. Resultando en un conjunto de n filas x 2 columnas.
Para comenzar con el desarrollo del circuito se debe contar con una solución creada en QuantumPath®, desde la que se podrá seleccionar la opción de crear el circuito directamente desde Excel utilizando Q xCompositor. Tras hacer click sobre el botón de crear circuito en Excel, se descarga el documento sobre el que crearemos nuestro circuito.

Fig. 1 Botón crear circuito en Excel
Una vez dentro nos dirigiremos a la pestaña de “xCompositor Settings”, donde seleccionaremos las propiedades
de nuestro circuito. Para este caso haremos un QRNG de 100 cúbits, por lo que lo indicaremos en el recuadro destinado para ello y pulsaremos sobre “Restore Qubits” para aplicar los cambios.

Fig. 2 Inicialización de 100 cúbits con Q xCompositor
Como se ha podido observar, se han inicializado automáticamente 100 cúbits de manera visual con solo un click. Tras esto, queda añadir a nuestro circuito una primera columna entera de puertas Hadamard, y una segunda de medición. Esto se haría seleccionando la primera columna de nuestro panel (columna B), y dirigiéndonos a la pestaña de “Quantum Gates” para pulsar sobre la puerta Hadamard. Finalmente se realiza el mismo proceso con la segunda columna (C) y la puerta de medición.

Fig. 3 Circuito QRNG de 100 cúbits
Para poder visualizar el circuito de una forma más reducida y contener más información en la pantalla, desde la pestaña de “xCompositor Sttings” vamos a seleccionar la opción de “Gate Colors” para que aparezca cada puerta con un color. Acto seguido reducimos el zoom del Excel y podemos comprobar de un simple vistazo que las dos primeras columnas han sido rellenadas con las puertas esperadas.

Fig. 4 Vista general del circuito
Finalmente, para exportar el circuito a QuantumPath® se debe ir a la pestaña bajo el mismo nombre y seleccionar la opción de “Circuit to QuantumPath”. Se abrirá una ventana solicitando el inicio de sesión, y los datos necesarios para la creación del circuito.

Fig. 5 Datos del circuito
Por último, si nos dirigimos al gestor de circuitos de QuantumPath®, podemos observar como nuestro circuito recién creado con Q xCompositor ha sido importado satisfactoriamente, pudiendo abrirlo con Q Assets Compositor®, y tratarlo como un circuito más dentro del ecosistema de QPath®.

Fig. 6 Circuito abierto desdevel Q Assets Compositor®
Caso de uso 2: edición con Q xCompositor de un circuito existente
Otra capacidad de Q xCompositor es la de editar circuitos ya creados en QuantumPath® aprovechando el potencial de una hoja de cálculo. Para la apertura de cualquier circuito en este addin, hay que entrar en la ventana de edición de circuitos y pulsar sobre “Edit Circuit on Excel”. Descargándose como en el anterior caso de uso el documento donde esta vez se encontrará ya desarrollado el circuito.
Asumiremos para este ejemplo, que tenemos un circuito como el de Teleportación cuántica ya generado como activo en QuantumPath®.

Fig. 7 Editar circuito existente en Excel
Una vez dentro se pueden aprovecharlas características propias de Q xCompositor, como por ejemplo la visualización por colores del circuito que permite una rápida comprobación visual de que el algoritmo está correctamente desarrollado.

Fig. 8 Algoritmo de Teleportation con colores en Q xCompositor
En el caso de querer extender partes del circuito, es tan simple como seleccionar las celdas que se tomarán como base y arrastrarlas para ser replicadas en el resto de recuadros en blanco donde se aplique la selección.

Fig. 9 Extensión del circuito, utilizar Excel para clonar/copiar rangos de celdas
Este documento Excel puede ser guardado en local en el ordenador, de forma que se puede trabajar totalmente desconectado de la plataforma. Permitiendo que siempre que se desee se pueda abrir realizar modificaciones en el circuito y exportarlo a QuantumPath® cuando sea necesario. De este modo, para realizar cambios en el circuito no es necesario utilizar la interfaz web, consiguiendo mayor versatilidad en la creación y edición de algoritmos.
Otro punto a tener en cuenta es que, al tratarse de un fichero local y que la persistencia del circuito se realiza a la hora de exportarlo, no es necesaria una conexión a internet para la edición del circuito. Permitiendo ser modificado completamente offline utilizando las herramientas de Q xCompositor para posteriormente, cuando se cuente con una conexión a internet, poder ser exportado a QuantumPath® para lograr su persistencia y ser ejecutado. Como es lógico, también se puede guardar el fichero sin haber completado el circuito al 100% para continuar su creación más delante.
Adicionalmente, QxCompositor también proporciona como funcionalidades importar o exportar la definición del circuito en lenguaje visual. De tal forma que sea muy versátil a la hora de generar textos o ayudas o incorporarlas de cualquier fuente que no sea la propia plataforma. Inclusive intercambiarlo con otras personas empleando cualquier medio telemático.

Fig. 10 funciones de importar y exportar un circuito en lenguaje intermedio.
Si el lector quiere probar con el circuito de Grover de 3 cúbits, lo dejamos como texto en lenguaje visual para que sea sencillo copiar y pegar en cualquiera de los controles de entrada de QuantumPath® o del propio Q xCompositor.
circuit={“cols”:[[“H”,”H”,”H”,”H”,”H”,”H”,”H”,”H”],[“1″,”SPACER”],[“1”,{“id”:”BEGIN_R”,”arg”:”12″}],[“1″,”X”,”1″,”X”,”1″,”X”,”X”,”X”],[“CTRL”,”CTRL”,”CTRL”,”CTRL”,”CTRL”,”CTRL”,”CTRL”,”Z”],[“1″,”X”,”1″,”X”,”1″,”X”,”X”,”X”],[“1″,”SPACER”],[“H”,”H”,”H”,”H”,”H”,”H”,”H”,”H”],[“X”,”X”,”X”,”X”,”X”,”X”,”X”,”X”],[“CTRL”,”CTRL”,”CTRL”,”CTRL”,”CTRL”,”CTRL”,”CTRL”,”Z”],[“X”,”X”,”X”,”X”,”X”,”X”,”X”,”X”],[“H”,”H”,”H”,”H”,”H”,”H”,”H”,”H”],[“1″,”END_R”],[“Measure”,”Measure”,”Measure”,”Measure”,”Measure”,”Measure”,”Measure”,”Measure”]],”init”:[“0″,”0″,”0″,”0″,”0″,”0″,”0″,”0”]}
Bien desde el Quantum Circuit Catalog o bien desde Q xCompositor, en cualquiera de los casos de uso de edición del circuito, bastará con pegar el circuito en VL para comenzar a editarlo. En cualquier caso, el lector podrá incorporar esta definición en el sistema mediante los diferentes casos de uso proporcionados por el producto.

Fig. 11 Importar Circuito en VL para comenzar su diseño en Q xCompositor
Como se ha mostrado a lo largo del artículo, Q xCompositor no solo facilita la creación y edición de circuitos de puertas, sino que también simplifica la gestión de grandes cantidades de cubits de una forma controlada, algo que repercute positivamente en la productividad el trabajo en el diseño y desarrollo de cirtuitos con elevada cantidad de puertas. Además, por este motivo es una herramienta de gran utilidad cuando en los mantenimiento evolutivos y adaptativos necesitemos ampliar la cantidad de cúbits de circuitos ya creados para poder explotar al máximo las capacidades de los mismos en ordenadores cuánticos más potentes. Por todo ello, más otras capacidades que iremos mostrando en otras entregas, Q xCompositor se suma con valor propio a las herramientas disponibles en el entorno de QuantumPath® para facilitar y acelerar con éxito la adopción de la computación cuántica como nuevo paradigma tecnológico.
[1] Microsoft Office y Microsoft Excel son propiedad de Microsoft Corporation, sobre los que Microsoft posee todos los derechos de autor.