La computación cuántica es un campo de la ingeniería informática que actualmente empieza a ser de gran relevancia debido a su capacidad de mejora de eficiencia para la resolución de ciertas tareas de la computación. En este Trabajo de Fin de Grado se ven algunos de los algoritmos cuánticos más importantes, ya sea porque sirven para demostrar la ventaja cuántica frente a la clásica o porque tienen una gran utilidad en áreas como la criptografía, la inteligencia artificial o las comunicaciones. Los algoritmos cuánticos se basan en la manipulación de un vector, denominado vector de estado, que define el estado en el que se encuentran los cúbits, o bits cuánticos, y que será una superposición de los valores definidos como 0 y 1. Esto se hace para maximizar la probabilidad de un estado, o conjunto de estados, que serán la solución o facilitarán su obtención. En los computadores cuánticos reales esto se hace de manera natural, ya que la mecánica cuántica está presente en la naturaleza del universo, aunque estos son escasos debido al lento avance que se tiene, por lo que su uso es limitado. Por tanto, se utilizan computadores clásicos para simular las operaciones cuánticas sobre el vector de estado, de forma que se pueda comprobar el correcto funcionamiento de nuevos algoritmos sin tener que ejecutarlos en un computador cuántico. El problema que existe es la gran capacidad de memoria que se necesita tener, ya que el vector de estado crece exponencialmente con el número de cúbits que se desea simular, y el tiempo necesario para llevar a cabo la simulación. Para ello se utilizarán técnicas de paralelización de código en CPU y en GPU, de forma que se disminuya en gran medida el tiempo de simulación. Se realizará un estudio comparativo del rendimiento que ofrece cada versión del código, de forma que se determine la necesidad de cada una de las técnicas de computación de alto rendimiento para realizar simulaciones de computación cuántica. ABSTRACT Quantum computing is a field of computer engineering which is currently beginning to gain importance due to the capacity for efficiency improvement in the resolution of certain tasks of computation. In this Final Degree Project several of the most important quantum algorithms are going to be studied either because of their ability to demonstrate the quantum advantage over the classical computation or because they are useful in areas like cryptography, artificial intelligence or communications. Quantum algorithms are based on the manipulation of a vector, named state vector, that defines the state that qubits, or quantum bits have, which is a superposition of the values defined as 0 and 1. This vector manipulation is done to maximise the probability of a state or group of states that are the solution or that will facilitate obtaining it. In real quantum computers this is done naturally, since quantum mechanics are present in the nature of the universe, although these computers are scarce due to the slow progress being made in this field, so their use is limited. Therefore, classical computers are used to simulate the quantum operations on the state vector, such that proper functioning of new algorithms can be verified without needing to run them on a quantum computer. The problem is the memory capacity that is needed, because the state vector grows exponentially with the number of qubits that are wanted to simulate, in addition to the time that this simulation requires. For this reason, techniques of parallelization in CPU and GPU will be utilized, so that the time of simulation can be decreased. A comparative study of performance from each code version will be conducted, in a way that the necessity of each technique of high-performance computing for performing simulations of quantum computing can be determined.
La computación cuántica es un campo de la ingeniería informática que actualmente empieza a ser de gran relevancia debido a su capacidad de mejora de eficiencia para la resolución de ciertas tareas de la computación. En este Trabajo de Fin de Grado se ven algunos de los algoritmos cuánticos más importantes, ya sea porque sirven para demostrar la ventaja cuántica frente a la clásica o porque tienen una gran utilidad en áreas como la criptografía, la inteligencia artificial o las comunicaciones. Los algoritmos cuánticos se basan en la manipulación de un vector, denominado vector de estado, que define el estado en el que se encuentran los cúbits, o bits cuánticos, y que será una superposición de los valores definidos como 0 y 1. Esto se hace para maximizar la probabilidad de un estado, o conjunto de estados, que serán la solución o facilitarán su obtención. En los computadores cuánticos reales esto se hace de manera natural, ya que la mecánica cuántica está presente en la naturaleza del universo, aunque estos son escasos debido al lento avance que se tiene, por lo que su uso es limitado. Por tanto, se utilizan computadores clásicos para simular las operaciones cuánticas sobre el vector de estado, de forma que se pueda comprobar el correcto funcionamiento de nuevos algoritmos sin tener que ejecutarlos en un computador cuántico. El problema que existe es la gran capacidad de memoria que se necesita tener, ya que el vector de estado crece exponencialmente con el número de cúbits que se desea simular, y el tiempo necesario para llevar a cabo la simulación. Para ello se utilizarán técnicas de paralelización de código en CPU y en GPU, de forma que se disminuya en gran medida el tiempo de simulación. Se realizará un estudio comparativo del rendimiento que ofrece cada versión del código, de forma que se determine la necesidad de cada una de las técnicas de computación de alto rendimiento para realizar simulaciones de computación cuántica. ABSTRACT Quantum computing is a field of computer engineering which is currently beginning to gain importance due to the capacity for efficiency improvement in the resolution of certain tasks of computation. In this Final Degree Project several of the most important quantum algorithms are going to be studied either because of their ability to demonstrate the quantum advantage over the classical computation or because they are useful in areas like cryptography, artificial intelligence or communications. Quantum algorithms are based on the manipulation of a vector, named state vector, that defines the state that qubits, or quantum bits have, which is a superposition of the values defined as 0 and 1. This vector manipulation is done to maximise the probability of a state or group of states that are the solution or that will facilitate obtaining it. In real quantum computers this is done naturally, since quantum mechanics are present in the nature of the universe, although these computers are scarce due to the slow progress being made in this field, so their use is limited. Therefore, classical computers are used to simulate the quantum operations on the state vector, such that proper functioning of new algorithms can be verified without needing to run them on a quantum computer. The problem is the memory capacity that is needed, because the state vector grows exponentially with the number of qubits that are wanted to simulate, in addition to the time that this simulation requires. For this reason, techniques of parallelization in CPU and GPU will be utilized, so that the time of simulation can be decreased. A comparative study of performance from each code version will be conducted, in a way that the necessity of each technique of high-performance computing for performing simulations of quantum computing can be determined.
La computación cuántica promete una potencia computacional sin precedentes al aprovechar principios mecánicos cuánticos como la superposición y el entrelazamiento. Sin embargo, el hardware cuántico actual está limitado por la cantidad de cúbits y las altas tasas de error, lo que dificulta la prueba de algoritmos cuánticos complejos a escala. Como resultado, los simuladores cuánticos basados en software que se ejecutan en computadoras clásicas se han convertido en herramientas esenciales para explorar algoritmos y rincipios cuánticos. Estos simuladores, aunque potentes, requieren recursos de memoria significativos debido al crecimiento exponencial de los tamaños de los estados cuánticos. Por ejemplo, representar un estado de N cúbits requiere 2^N números complejos, lo que supone una carga inmensa para los sistemas de memoria clásicos. Este trabajo investiga estrategias de gestión de memoria para optimizar el uso de recursos en simuladores de computación cuántica. Las técnicas exploradas incluyen la eliminación de estados, las estructuras de datos de estado completo, las optimizaciones de aplicaciones de puertas cuánticas, la compresión de datos y los enfoques de memoria distribuida. El objetivo es reducir el consumo de memoria al tiempo que se preserva la precisión de las simulaciones cuánticas. El estudio implementa estas estrategias en un simulador cuántico, proporcionando una comparación detallada de su rendimiento en varios algoritmos cuánticos. Los resultados resaltan las compensaciones entre la eficiencia computacional y el uso de la memoria, ofreciendo información sobre los enfoques más efectivos para escalar simulaciones cuánticas en hardware clásico.
La computación cuántica es un paradigma de computación basado en las propiedades de la mecánica cuántica. Su unidad básica de información es el qubit, que permite estar en una superposición de múltiples estados. Esta propiedad, entre otras, permite la representación y manipulación de información de maneras que presentan potenciales ventajas respecto de otros tipos de computación. Sin embargo los ordenadores cuánticos actuales están limitados por la cantidad de ruido que sufren sus qubits. Los algoritmos cuánticos variacionales son una familia de arquitecturas de algoritmos cuánticos que surgen como una oportunidad en esta situación ya que debido a sus propiedades son capaces de alcanzar buenos resultados a pesar del ruido. La efectividad de esta aproximación depende de diversos factores como la tarea a resolver, el circuito cuántico utilizado, la optimización clásica, etc. que deben ser adaptados en cada situación. El objetivo de este proyecto es comprender y estudiar esta familia de arquitecturas desde sus fundamentos teóricos, y posteriormente realizar simulaciones que pongan en práctica estos conceptos. Para ello en la primera sección se definen los principios teóricos de la computación cuántica, para luego definir la arquitectura común entre los algoritmos variacionales y finalmente concretar en tres implementaciones relevantes, que después de exponerse serán implementadas con herramientas software de simulación de computación cuántica.
La computación cuántica es un nuevo paradigma de computación que se presenta como un sistema basado en la máquina de Turing en el que se emplean fenómenos físicos fundamentales, como el entrelazamiento cuántico, la superposición cuántica o el teleportación cuántica (enlaces EPR), para transportar y/o transformar los datos. Al ser una máquina de Turing fundamental, el computador cuántico presenta los siguientes elementos esenciales para la construcción de circuitos: 1) el qubit como elemento mínimo de transmisión de información y 2) las puertas cuánticas como elementos mínimos de transformación de información. Con estos elementos podemos teóricamente generar cualquier algoritmo, al igual que lo puede hacer un computador clásico basado en la máquina de Turing, y así la atención se centra en ver que ejecuciones en computación cuántica poseen ventajas respecto a la computación clásica. Hasta la formulación del algoritmo de Shor, la ventaja en la ejecución de los algoritmos cuánticos frente a los algoritmos clásicos no se percibía claramente, lo que convertía a la computación cuántica en una mera anécdota en la historia de la computación. Fueron la superposición y el entrelazamiento cuánticos en la ejecución de ciertos procesos, lo que mostró el gran potencial de este paradigma, aumentando el interés de empresas privadas por las tecnologías cuánticas. En la actualidad nos encontramos en el amanecer de la computación cuántica y así, de forma similar a los enormes ordenadores de válvulas de vacío de los 70, los computadores cuánticos son difíciles de encontrar, pero, a diferencia de los 70, Internet y la conectividad humana actual permiten que una enorme comunidad volcada en la computación cuántica avance a pasos agigantados. Cientos de miles de usuarios colaboran en pos del conocimiento, ejecutando numerosos algoritmos en un pequeño número de computadores que requieren de una temperatura extremadamente baja (aproximadamente -273ºC) que garantice un funcionamiento fiable. Hoy por hoy, el algoritmo de Shor es solo uno más de los muchos algoritmos de los que se sabe o sospecha que tienen ventaja en entornos cuánticos, convirtiendo el paradigma cuántico en sistemas de computación que sin duda en un futuro cercano jugarán un papel esencial en el desarrollo de la humanidad. Es por ello, que muchos investigadores emplean el paradigma cuántico en la resolución de problemas en una de las áreas de computación más revolucionarias, la Inteligencia Artificial. A pesar de los avances de la Inteligencia Artificial en procesadores clásicos, los investigadores sospechan que el dominio de la superposición cuántica y el entrelazamiento cuántico pueden cambiar todo el panorama y las ideas preconcebidas sobre la Inteligencia Artificial y el Aprendizaje Automático. En este escenario, el presente trabajo comprueba la capacidad de la computación cuántica en un contexto de aprendizaje automático. Para ello, analiza las principales diferencias entre computación clásica y cuántica, describiendo el funcionamiento de esta última. El trabajo se centra en un algoritmo supervisado muy extendido por sus buenos resultados, el Support Vector Machine (SVM), del que se explican los fundamentos para analizar las capacidades y limitaciones del algoritmo en los entornos clásico y cuántico. Se aplica el SVM en un problema de clasificación real, utilizando una base de datos médicos sobre cáncer de mama. Los resultados muestras la superioridad en capacidad de discriminación de la versión cuántica frente a la clásica. Abstract: Quantum computing represents a new paradigm of computing. It is presented as a system based on Turing´s data machine embedded in different physics fundaments than a classical machine. These fundamental phenomena are also known as quantum phenomena, from entanglement and quantum superposition through quantum teleportation (EPR links). As a fundamental Turing machine, the quantum computer presents the essential elements for the construction of circuits: 1) the qubit as the minimum element of information transmission and 2) the quantum gates as element of minimum information transformation. With these elements, we can generate any algorithm, as well as a classic computer based on a Turing machine can do. By supposedly being able to execute any algorithm in a quantum computer, the objective becomes not to see what it is executable, but what executions have advantages over a classical computation. Until Shor's algorithm, scholars did not conceive a high level of advantage in the execution of quantum algorithms against classical ones, leaving the quantum computer as an anecdote in the history of computing. When the advantages of quantum superposition and entanglement in the execution of certain processes were discovered, new possibilities and advantages were opened up to this computing paradigm, increasing the interest of private companies for this type of technology. Today, we are at the dawn of quantum computing, similar to the huge vacuum valve computers of the 70s, quantum computers are hard to find. However, unlike the '70s, the Internet and current human connectivity allows for a huge community dedicated to quantum computing to advance this technology. Hundreds of thousands of users collaborate in the pursuit of knowledge, trying to execute numerous algorithms or processes in these computers. Currently Shor's algorithm is just one of the many algorithms known or suspected to have an advantage in quantum environments, converting the quantum paradigm into a computing model to be taken into account and, with high probability, in the future play an essential role in the development of humanity. That is why many researchers use this innovative way to solve problems in one of the most revolutionary areas of computing, Artificial Intelligence. Despite the advances in Artificial Intelligence in classical processors, researchers suspect that the domain of quantum superposition and entanglement can change the whole landscape and preconceptions about Artificial Intelligence and Machine Learning. In this scenario, the present project tests the capacity of quantum computing in an automatic learning context. Due to this automatic learning context, this project analyses the main differences between classical and quantum computing while describing the operation of the latter. The work focuses on a supervised algorithm quite widespread for its good results, the Support Vector Machine (SVM), explaining its fundaments and analysing the capabilities and limitations of the algorithm in classical and quantum environments. The SVM is applied to a real classification problem, using a medical database on breast cancer. The results show the superiority in discrimination capability.
La Computación Cuántica se presenta como un paradigma de computación no clásico que hace uso de fenómenos cuánticos para la realización de cálculos computacionales. De entre sus distintas implementaciones o manifestaciones, la basada en puertas cuánticas se considera la más versátil o de aplicación general, por su posibilidad de construir circuitos a partir de componentes más elementales. Dichos componentes son las puertas cuánticas, conceptualmente equivalentes a sus homónimas en el paradigma de computación clásica o basada en bits. Mientras que las puertas lógicas clásicas permiten la transformación del estado presentado por un registro en n bits, y en ello basamos la práctica totalidad de los dispositivos electrónicos actuales, las puertas cuánticas permiten a su vez la transformación de los estados de registros de n qubits. A dichos estados, se los denomina estados cuánticos. A diferencia de lo que ocurre en el caso de un bit, que puede estar únicamente en los estados 0 o 1, un qubit puede encontrarse en cualquiera de ambos estados -denominados clásicos-, o en una superposición lineal de ambos. Dicha superposición, regida por coeficientes complejos, establece qué probabilidad tenemos de obtener el qubit un estado 0, o un estado 1, si le aplicamos un proceso de medición. En la gran variedad de formas en que podemos superponer los estados clásicos de cada n-qubit, reside la potencia de este paradigma. El modelo discreto de Computación Cuántica propone el uso de estados cuánticos que cumplen unas determinadas propiedades, simplificando así el modelo continuo y permitiendo el uso de nuevos parámetros para comprender la relación entre los distintos estados cuánticos y su transformación mediante puertas cuánticas. Concretamente, se destacan dos: el número mínimo de puertas necesarias para alcanzar un determinado estado cuántico discreto desde uno de la base computacional -complejidad c-, y el parámetro necesarios para mantener la norma unitaria del vector que representa el estado -novel k-. Su estudio será determinante par identificar familias de estados discretos con propiedades particulares, algoritmos para el uso o la exploración del modelo discreto, y conclusiones sobre la complejidad de los estados del modelo. Abstract: Quantum Computing presents itself as a non-classical computing paradigm that uses quantum phenomena to make computational calculations. Among its different implementations or manifestations, the one based on quantum gates is considered as the most versatile or general-purpose one, due to its ability to create circuits using other basic components as its building blocks. Those basic components are quantum logic gates, conceptually equivalent to their homonym counterpart in classical or bit-based computing. Whereas classical logic gates enable the transformation of any state of a register of n bits, and almost every current electronic device is based on this paradigm, quantum logic gates are used to transform the states allowed by a register of n qubits. We will refer to those states of a n-qubit as quantum states. Opposed to a bit, that can only be in either a 0 or 1 state, a qubit can be in any of those so-called classical states, but also in any linear superposition of both. That superposition, determined by complex coefficients, establishes the probability to obtain either a 0 or a 1 from the qubit, after applying a measuring procedure to it. The computational power of this paradigm is based on the huge number of configurations that every n-qubit can have. The discrete model of Quantum Computing suggets the use of quantum states that verify certain additional properties, therefore simplifying the continuous model, and en-abling the use of new parameters to understand the relationship between different quantum states, and its transformation with quantum logic gates. Specifically, two are highlighted: the minimum number of gates required to reach a quantum state from one of the computational base -complexity c-, and the parameter needed to ensure that the vector that represents a quantum state remains unitary -level k-. Their study will play a key role in identifying families of quantum states with relevant characteristics, algorithms that allow for the use or the exploration of the discrete model, and conclusions about the complexity of the states of this model.
Desde que apareció la idea de utilizar computadores cuánticos para resolver problemas matemáticos de gran complejidad que no podrían ser resueltos en tiempo polinomial por computadores clásicos inició una carrera en la que compiten dos equipos: los que desarrollarán el primer computador cuántico de uso general y los que descubrirán como poder resistir al uso malicioso de estos nuevos computadores. La criptografía post-cuántica trata de imponerse a esta situación investigando nuevos algoritmos que reemplacen a los algoritmos actuales de clave pública como RSA dando lugar a sistemas resistentes tanto a algoritmos clásicos como a cuánticos antes de que la amenaza de un computador cuántico pueda acabar, entre otros peligros y en especial, con la seguridad y la privacidad en las comunicaciones a través de Internet. Se refleja en este proyecto el estado actual de la investigación en esta materia: algoritmos criptográficos basados en problemas que no pueden ser resueltos por computadores cuánticos, desarrollos y patentes, aplicaciones actuales y futuras, etc. dejando al lector una fuente de recursos óptima para su iniciación en la criptografía post-cuántica.
El presente trabajo de integración curricular tiene como objetivo analizar y comparar el desempeño de un algoritmo de búsqueda clásico y de un cuántico, en específico el algoritmo de Grover, con el fin de analizar y contrastar la ventaja computacional teórica y asintótica que proporciona la computación cuántica frente a los algoritmos clásicos, considerando las limitaciones del hardware cuántico actual. Se analizan las bases teóricas de estos dos enfoques, su complejidad temporal y su comportamiento frente a conjuntos de datos de tamaño distinto. La metodología que se emplea es la simulación de ambos algoritmos, es experimental, ya que permite observar y realizar comparaciones de tiempo y eficiencia para la localización de un elemento objetivo. En el caso del algoritmo cuántico, se implementa el algoritmo de Grover mediante simuladores cuánticos, analizando el impacto del número de qubits y de las iteraciones en los resultados obtenidos. Los resultados muestran que para la búsqueda clásica la complejidad de tiempo es O(n) en cambio en el caso del algoritmo de Grover esta se reduce a O(√n) siendo una mejora interesante que se centra en un n grande. A pesar de esto, existen limitaciones en la implementación de ordenadores cuánticos en la actualidad. Por último, se concluyó que el algoritmo de Grover es una alternativa bastante interesante para resolver problemas de búsqueda no estructurada y se muestra el potencial de la computación cuántica como una tecnología emergente con aplicaciones en la ingeniería.