cambiar a curso:   2016-17   2018-19


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2017-18

Simulador de un computador cuántico e implementación de algoritmos más importantes


Tecnologías Específicas

Computación
 


Descripcion y Objetivos

La computación cuántica es una forma radicalmente novedosa de procesar la información, completamente distinta de aquella a la que estamos acostumbrados, basados en la computación determinista del modelo Von Neumann, y que está posibilitada por propiedades exclusivas de la mecánica cuántica tales como la superposición de estados (que origina el denominado paralelismo cuántico) y la existencia de correlaciones sin análogo en la física clásica (entrelazamiento y correlaciones cuánticas).

A medida que evoluciona la tecnología, aumenta la escala de integración y caben más transistores en el mismo espacio, disponiendo de microchips de tamaño cada vez más reducido. Es bien conocido que cuanto más pequeño es, mayor velocidad de proceso alcanza el chip, sin embargo, y como es obvio, no podemos hacer los chips infinitamente pequeños, sino que existe un límite en el cual dejan de funcionar correctamente. Cuando se llega a la escala de nanómetros, los electrones se escapan de los canales por donde deben circular. A esto se le llama efecto túnel, que consiste en que una partícula clásica, si se encuentra con un obstáculo, no puede atravesarlo y rebota. Pero con los electrones, que son partículas cuánticas y se comportan como ondas, existe la posibilidad de que una parte de ellos pueda atravesar las paredes si son los suficientemente delgadas; de esta manera la señal puede pasar por canales donde no debería circular. Por ello, el chip deja de funcionar correctamente, y aquí es donde la computación cuántica entra en escena.

La idea de computación cuántica surge en 1981, cuando Paul Benioff expuso su teoría para aprovechar las leyes cuánticas en el entorno de la computación. En vez de trabajar a nivel de voltajes eléctricos, se trabaja a nivel de un cuanto. En la computación digital, un bit sólo puede tomar dos valores: 0 ó 1. En cambio, en la computación cuántica, intervienen las leyes de la mecánica cuántica, y la partícula puede estar en superposición coherente. Ahora la información se organizará en qbits (bit cuántico), cuyo valor puede ser 0, 1, pero también puede ser 0 y 1 a la vez (dos estados ortogonales de una partícula subatómica), es más puede estar en una composición arbitraria con diferente valores de pesos para el 0 y el 1. Eso permite que se puedan realizar varias operaciones a la vez, según el número de qubits.

El número de qubits indica la cantidad de bits que pueden estar en superposición. Con los bits convencionales, si teníamos un registro de tres bits, había ocho valores posibles y el registro sólo podía tomar uno de esos valores. En cambio, si tenemos un vector de tres qubits, la partícula puede tomar ocho valores distintos a la vez gracias a la superposición cuántica. Así, un vector de tres qbits permitiría un total de ocho operaciones paralelas. Como cabe esperar, el número de operaciones es exponencial con respecto al número de qubits.

El principal objetivo de este trabajo será el desarrollar un simulador de un computador cuántico. Teniendo en cuenta que las necesidades de almacenamiento en un simulador  crecen de forma exponencial con el número de qbits a simular, se intentará que el número de qbits pueda alcanzar un valor razonable. Al menos 20 o 30 qbits deberán ser manejados sin problemas, y quizá hasta valores de 50 o incluso más.

Una vez definidos y con herramientas para manipular qbits, el simmulador deberá incorporar las puertas cuánticas estándar, al menos Hadamard, CNot, y las diferentes rotaciones. Pero también deberá incorporar la posibilidad de añadir nuevas puertas cuánticas.

El simulador dispondrá de un interfaz gráfico, y para ello, se usará como fuente de inspiración el proporcionado por IBM, el IBM Q disponible en línea.

Finalmente, además de la posibilidad de incorporar y ejecutar nuevos algoritmos cuánticos, se ofrecerán los algoritmos más habituales, y se presentarán en el simulador de una manera didáctica. Para ello, se dispondrá de los algoritmos de teleportación, Deutsch, Shor y otros.

 


Metodología y Competencias

Se seguirán las siguientes etapas dentro del desarrollo del TFG:

Estudio del estado del arte en computación cuántica

Diseño e implementación del simulador

Descripción de los algoritmos a simular, y experimentación.

En cuanto a competencias, en este TFG se trabaja en las siguientes: 

[CM1] Capacidad para tener un conocimiento profundo de los principios fundamentales y modelos de la computación y saberlos aplicar para interpretar, seleccionar, valorar, modelar, y crear nuevos conceptos, teorías, usos y desarrollos tecnológicos relacionados con la informática. 

[CM3] Capacidad para evaluar la complejidad computacional de un problema, conocer estrategias algorítmicas que puedan conducir a su resolución y recomendar, desarrollar e implementar aquella que garantice el mejor rendimiento de acuerdo con los requisitos establecidos. 

 


Medios a utilizar

PC estándar, portátil o sobremesa, con un entorno de programación Python.

 


Bibliografía

[1] IBM - Q. Página web https://quantumexperience.ng.bluemix.net/qx/user-guide

[2] Mikio Nakahara, Tetsuo Ohmi. QUANTUM COMPUTING. From Linear Algebra to Physical Realizations. CRC Press. 2008.

[3] Jozef Gruska. QUANTUM COMPUTING. McGraw-Hill, 1999.

 


Tutores


CUARTERO GÓMEZ, FERNANDO
MANJABACAS TENDERO, GUILLERMO
 

Alumno


DE LA CRUZ CALVO, HERNÁN INDÍBIL