Y es que afortunadamente para unos y desafortunadamente para otros, la computación cuántica está intrínsecamente relacionada con la física cuántica, y es necesario tener en cuenta ciertos conceptos básicos tales como teletransportación de mensajes, superposición y entrelazamiento de Qbits para iniciarse en esta rama de las ciencias computacionales. Suena abrumador, pero no te preocupes, lo explicaremos más adelante.
Por otro lado, muchas compañías están interesadas en el tema por el gran poder de alcance que tiene y por la infinidad de aplicaciones relacionadas. Pero en este momento me quiero centrar solo en una de esas compañías, la razón: han liberado una solución cuántica cercana a un desarrollador de software del común. Su nombre es Microsoft, y con esto están haciendo uso de una de sus más importantes cualidades: crear productos cercanos al usuario.
Microsoft lleva más de una década invirtiendo en investigaciones relacionadas con la computación cuántica, apoyándose en un equipo interdisciplinario que le permite abarcar el problema desde varias perspectivas. Y como resultado, ha liberado para la comunidad 3 elementos que nos permitirán escribir y probar nuestros primeros algoritmos cuánticos:
- Un nuevo lenguaje de programación: Q#.
- Quantum Development Kit
- Azure-hosted quantum simulators
Antes de adentrarnos en lo que ha lanzado Microsoft, es muy bueno que hablemos un poco más de 2 temas: una idea general de los alcances de la computación cuántica y ciertos puntos básicos.
Alcance y aplicaciones
Para esta parte, voy a hacer uso de ciertas frases compartidas en el más reciente Microsoft Build, ya que considero que dan una excelente visión global de todo esto:
- La computación cuántica nos va a permitir resolver problemas que actualmente tomarían más del tiempo de vida del universo; en segundos, horas o días.
- Nos permitiría atacar el calentamiento global, seguridad informática, los límites del machine learning (https://en.wikipedia.org/wiki/Restricted_Boltzmann_machine) , pelear contra las más graves enfermedades, etc.
Específicamente, las aplicaciones que está teniendo actualmente esta tecnología se pueden apreciar en las siguientes áreas y temas:
- Nitrogen fixation
- Carbon capture
- Materials science
- Machine Learning
En conclusión, ¿qué problemas serían solucionables con un computador que se ejecuta en un billón de universos paralelos simultáneamente? Esta pregunta desencadena una infinidad de aplicaciones inimaginables.
Conceptos básicos
Como dije anteriormente, todo esto está basado en física, específicamente en mecánica cuántica y por tal razón, aunque no es necesario volvernos físicos puros, debemos conocer ciertos conceptos básicos y paulatinamente refinarlos, a medida que avanzamos en el estudio y aplicación del Quantum Development Kit y todo el ecosistema de herramientas alrededor.
qubit (Quantum Bit)
Hablar de un qubit es como hablar de bit en la computación tradicional. Un qubit es la unidad básica de información en la computación cuántica. Es difícil dar una explicación fácil y sencilla sobre las diferencias entre un bit y un qubit, pero podemos asegurar lo siguiente: un bit almacena solo 2 valores posibles: 1 o 0. Un qubit puede almacenar un 0, un 1, un cero y un 1, o un número infinito de números entre sí y estar en múltiples estados al mismo tiempo.
Quantum entanglement
Es una conexión especial entre partículas, que les permite conservar el mismo estado. En otras palabras, con esta característica podemos enlazar 2 qubits, y si algo le pasa alguno, los cambios se van a ver reflejados instantáneamente en el otro. La teoría dice, que esta conexión se mantendría incluso si los qubits implicados se separan uno del otro en distancias astronómicas. Y esta es la base del concepto de teletransportación de mensajes, el cual nos permite enviar mensajes a través del entrelazado cuántico.
En fin, esto podría ser tan extenso como la teoría cuántica misma, entonces vamos a dar por hecho que nuestros lectores quedarán tan inspirados, que continuarán esta investigación extremadamente interesante por sus propios medios.
Herramientas liberadas por Microsoft
Q#
Q# pronunced as “q-sharp”, es un nuevo lenguaje diseñado especialmente para construir algoritmos cuánticos con el Quantum Development Kit liberado por Microsoft. El cual utiliza el quantum computer as a coprocesor, parecido a el uso de procesadores adjuntos tales como: GPUs, FPGAs, entre otros. Y debido a esto último, para la ejecución de Q# se utiliza una combinación entre computación tradicional y cuántica para la ejecución de algoritmos cuánticos y la obtención de sus respectivos resultados.
Quantum Development Kit
Es un set de herramientas integradas a Visual Studio, que poseen todo el ecosistema de dependencias y simuladores locales que permiten la ejecución y diseño de algoritmos cuánticos en una computadora común y corriente.
Azure-hosted quantum simulators
Puesto que la cantidad que qubits que podemos simular en una máquina común está limitada al uso de la memoria RAM, Microsoft a través de Azure expone un simulador de procesamiento cuántico que nos permite ir un poco más allá en nuestros trabajos experimentales.
Finalmente, todo esto es una pequeña introducción a una temática que podría transformar todo lo que conocemos actualmente y que además de eso, ya cuenta con resultados tangibles que nos permiten tener un acercamiento a algo que reviste una gran complejidad pero que de igual forma nos brinda una esperanza.