¿Qué es un ordenador cuántico? Explicado con un sencillo ejemplo.

Por YK Sugi

¡Hola a todos!

El otro día, visité D-Wave Systems en Vancouver, Canadá. Es una empresa que fabrica ordenadores cuánticos de última generación.

Allí pude aprender mucho sobre los ordenadores cuánticos, así que me gustaría compartir con vosotros parte de lo que aprendí allí en este artículo.

El objetivo de este artículo es daros una intuición precisa de lo que es un ordenador cuántico utilizando un ejemplo sencillo.

Este artículo no requerirá que tengas conocimientos previos ni de física cuántica ni de informática para poder entenderlo.

Bien, empecemos.

Edición (26 de febrero de 2019): Recientemente he publicado un vídeo sobre el mismo tema en mi canal de YouTube. Recomendaría verlo (pincha aquí) antes o después de leer este artículo porque he añadido algunos argumentos adicionales y más matizados en el vídeo.

¿Qué es un ordenador cuántico?

Aquí tienes un resumen de una frase de lo que es un ordenador cuántico:

Un ordenador cuántico es un tipo de ordenador que utiliza la mecánica cuántica para poder realizar ciertos tipos de cálculo de forma más eficiente que un ordenador normal.

Hay mucho que desentrañar en esta frase, así que permíteme que te explique qué es exactamente utilizando un ejemplo sencillo.

Para explicar qué es un ordenador cuántico, primero tendré que explicar un poco qué son los ordenadores normales (no cuánticos).

Cómo almacena la información un ordenador normal

Ahora, un ordenador normal almacena la información en una serie de 0’s y 1’s.

Diferentes tipos de información, como números, texto e imágenes pueden ser representados de esta manera.

Cada unidad en esta serie de 0’s y 1’s se llama bit. Por lo tanto, un bit puede tener un valor de 0 o 1.

Ahora, ¿qué pasa con los ordenadores cuánticos?

Un ordenador cuántico no utiliza bits para almacenar información. En su lugar, utiliza algo llamado qubits.

Cada qubit no sólo puede ponerse a 1 o a 0, sino que también puede ponerse a 1 y a 0. Pero, ¿qué significa eso exactamente?

Déjame explicarlo con un ejemplo sencillo. Este va a ser un ejemplo algo artificial. Pero aun así va a ser útil para entender cómo funcionan los ordenadores cuánticos.

Un ejemplo sencillo para entender cómo funcionan los ordenadores cuánticos

Ahora, supongamos que diriges una agencia de viajes, y necesitas trasladar a un grupo de personas de un lugar a otro.

Para simplificar, digamos que sólo necesitas trasladar a 3 personas por ahora -Alice, Becky y Chris.

Y supongamos que has reservado 2 taxis para este fin, y quieres averiguar quién se sube a cada taxi.

También suponga aquí que se le da información sobre quién es amigo de quién, y quién es enemigo de quién.

Digamos que:

  • Alice y Becky son amigas
  • Alice y Chris son enemigas
  • Becky y Chris son enemigas
    • Y supongamos que tu objetivo aquí es dividir a este grupo de 3 personas en los dos taxis para conseguir los dos objetivos siguientes:

      • Maximizar el número de parejas amigas que comparten el mismo coche
      • Minimizar el número de parejas enemigas que comparten el mismo coche
      • Bien, esta es la premisa básica de este problema. Pensemos primero en cómo resolveríamos este problema utilizando un ordenador normal.

        Resolución de este problema con un ordenador normal

        Para resolver este problema con un ordenador normal, no cuántico, necesitarás primero averiguar cómo almacenar la información relevante con bits.

        Etiquetaremos los dos taxis como Taxi #1 y Taxi #0.

        Entonces, puedes representar quién sube a cada coche con 3 bits.

        Por ejemplo, podemos poner los tres bits a 0, 0 y 1 para representar:

        • Alice se sube al Taxi #0
        • Becky se sube al Taxi #0
        • Chris se sube al Taxi #1
        • Como hay dos opciones para cada persona, hay 2*2*2 = 8 formas de dividir este grupo de personas en dos coches.

          Aquí tienes una lista con todas las configuraciones posibles:

          A | B | C
          0 | 0 | 0
          0 | 1
          0 | 1 | 0
          0 | 1 | 1
          1 | 0 | 0
          1 | 1
          1 | 1

          Utilizando 3 bits, se puede representar cualquiera de estas combinaciones.

          Calcular la puntuación de cada configuración

          Ahora, utilizando un ordenador normal, ¿cómo determinaríamos qué configuración es la mejor solución?

          Para ello, vamos a definir cómo podemos calcular la puntuación de cada configuración. Esta puntuación representará la medida en que cada solución alcanza los dos objetivos que he mencionado antes:

          • Maximizar el número de parejas de amigos que comparten el mismo coche
          • Minimizar el número de parejas de enemigos que comparten el mismo coche

          Simplemente definamos nuestra puntuación de la siguiente manera:

          (la puntuación de una configuración dada) = (# pares de amigos que comparten el mismo coche) – (# pares de enemigos que comparten el mismo coche)

          Por ejemplo, supongamos que Alice, Becky y Chris se suben al taxi nº 1. Con tres bits, esto se puede expresar como 111.

          En este caso, sólo hay una pareja de amigos que comparte el mismo coche -Alice y Becky.

          Sin embargo, hay dos parejas de enemigos que comparten el mismo coche -Alice y Chris, y Becky y Chris.

          Así, la puntuación total de esta configuración es 1-2 = -1.

          Resolución del problema

          Con toda esta configuración, por fin podemos pasar a resolver este problema.

          Con un ordenador normal, para encontrar la mejor configuración, tendrás que pasar esencialmente por todas las configuraciones para ver cuál consigue la mayor puntuación.

          Entonces, puedes pensar en construir una tabla como esta:

          A | B | C | Puntuación
          0 | 0 | 0 | -1
          0 | 0 | 1 | 1 <- una de las mejores soluciones
          0 | 1 | 0 | -1
          0 | 1 | 1 | -.1
          1 | 0 | 0 | -1
          1 | 0 | 1 | -1
          1 | 1 | 0 | 1 <- la otra mejor solución
          1 | 1 | -1

          Como puedes ver, hay dos soluciones correctas aquí – 001 y 110, ambos logrando la puntuación de 1.

          Este problema es bastante sencillo. Rápidamente se vuelve demasiado difícil de resolver con un ordenador normal a medida que aumentamos el número de personas en este problema.

          Hemos visto que con 3 personas, necesitamos pasar por 8 configuraciones posibles.

          ¿Y si hay 4 personas? En ese caso, necesitaremos pasar por 2*2*2*2 = 16 configuraciones.

          Con n personas, necesitaremos pasar por (2 a la potencia de n) configuraciones para encontrar la mejor solución.

          Entonces, si hay 100 personas, necesitaremos pasar por:

          • 2¹⁰⁰ ~= 10³⁰ = un millón de millones de millones de configuraciones.

          Esto es sencillamente imposible de resolver con un ordenador normal.

          Resolver este problema con un ordenador cuántico

          ¿Cómo haríamos para resolver este problema con un ordenador cuántico?

          Para pensarlo, volvamos al caso de dividir a 3 personas en dos taxis.

          Como vimos anteriormente, había 8 posibles soluciones a este problema:

          A | B | C
          0 | 0 | 0
          0 | 1
          0 | 1 | 0
          0 | 1 | 1
          1 | 0 | 0
          1 | 1
          1 | 1

          Con un ordenador normal, usando 3 bits, pudimos representar sólo una de estas soluciones a la vez – por ejemplo, 001.

          Sin embargo, con un ordenador cuántico, usando 3 qubits, podemos representar las 8 de estas soluciones al mismo tiempo.

          Hay debates sobre lo que significa exactamente, pero esta es la forma en que yo lo pienso.

          Primero, examina el primer qubit de estos 3 qubits. Cuando lo pones a 0 y a 1, es como crear dos mundos paralelos. (Sí, es extraño, pero sígueme la corriente.)

          En uno de esos mundos paralelos, el qubit está puesto a 0. En el otro, está puesto a 1.

          Ahora, ¿qué pasa si pones el segundo qubit a 0 y a 1, también? Entonces, es algo así como crear 4 mundos paralelos.

          En el primer mundo, los dos qubits están puestos a 00. En el segundo, son 01. En el tercero, son 10. En el cuarto, son 11.

          De forma similar, si pones los tres qubits tanto a 0 como a 1, estarías creando 8 mundos paralelos: 000, 001, 010, 011, 100, 101, 110 y 111.

          Esta es una forma extraña de pensar, pero es una de las formas correctas de interpretar cómo se comportan los qubits en el mundo real.

          Ahora, cuando aplicas algún tipo de cálculo en estos tres qubits, en realidad estás aplicando el mismo cálculo en todos esos 8 mundos paralelos al mismo tiempo.

          Así, en lugar de pasar por cada una de esas soluciones potenciales secuencialmente, podemos calcular las puntuaciones de todas las soluciones al mismo tiempo.

          Con este ejemplo en particular, en teoría, tu ordenador cuántico sería capaz de encontrar una de las mejores soluciones en unos pocos milisegundos. De nuevo, eso es 001 o 110 como vimos antes:

          A | B | C | Puntuación
          0 | 0 | 0 | -1
          0 | 0 | 1 | 1 <- una de las mejores soluciones
          0 | 1 | 0 | -1
          0 | 1 | 1 | -1
          1 | 0 | 0 | -1
          1 | 0 | 1 | -1
          1 | 1 | 0 | 1 <- la otra mejor solución
          1 | 1 | -1

          En realidad, para resolver este problema, tendrías que darle a tu ordenador cuántico dos cosas:

          • Todas las soluciones potenciales representadas con qubits
          • Una función que convierta cada solución potencial en una puntuación. En este caso, se trata de la función que cuenta el número de parejas de amigos y parejas de enemigos que comparten el mismo coche.
          • Dadas estas dos cosas, tu ordenador cuántico escupirá una de las mejores soluciones en unos pocos milisegundos. En este caso, eso es 001 o 110 con una puntuación de 1.

            Ahora, en teoría, un ordenador cuántico es capaz de encontrar una de las mejores soluciones cada vez que se ejecuta.

            Sin embargo, en la realidad, hay errores al ejecutar un ordenador cuántico. Así, en lugar de encontrar la mejor solución, podría encontrar la segunda mejor solución, la tercera mejor solución, y así sucesivamente.

            Estos errores se vuelven más prominentes a medida que el problema se vuelve más y más complejo.

            Así que, en la práctica, probablemente querrá ejecutar la misma operación en un ordenador cuántico docenas de veces o cientos de veces. Después, elige el mejor resultado de entre los muchos que obtengas.

            Cómo escala un ordenador cuántico

            Incluso con los errores que he mencionado, el ordenador cuántico no tiene el mismo problema de escala que sufre un ordenador normal.

            Cuando hay 3 personas que tenemos que dividir en dos coches, el número de operaciones que tenemos que realizar en un ordenador cuántico es 1. Esto se debe a que un ordenador cuántico calcula la puntuación de todas las configuraciones al mismo tiempo.

            Cuando hay 4 personas, el número de operaciones sigue siendo 1.

            Cuando hay 100 personas, el número de operaciones sigue siendo 1. Con una sola operación, un ordenador cuántico computa las puntuaciones de todas las 2¹⁰⁰ ~= 10³⁰ = un millón de millones de millones de configuraciones al mismo tiempo.

            Como he mencionado antes, en la práctica, probablemente sea mejor ejecutar el ordenador cuántico docenas de veces o cientos de veces y elegir el mejor resultado de los muchos que se obtienen.

            Sin embargo, sigue siendo mucho mejor que ejecutar el mismo problema en un ordenador normal y tener que repetir el mismo tipo de cálculo un millón de millones de millones de veces.

            Resumiendo

            Un agradecimiento especial a todos los de D-Wave Systems por explicarme pacientemente todo esto.

            D-Wave ha lanzado recientemente un entorno en la nube para interactuar con un ordenador cuántico.

            Si eres un desarrollador y quieres realmente probar a usar un ordenador cuántico, es probablemente la forma más fácil de hacerlo.

            Se llama Leap, y está en https://cloud.dwavesys.com/leap. Puedes usarlo de forma gratuita para resolver miles de problemas, y también tienen tutoriales fáciles de seguir para empezar con los ordenadores cuánticos una vez que te registres.

            Nota al pie:

            • En este artículo, he utilizado el término “ordenador normal” para referirme a un ordenador no cuántico. Sin embargo, en la industria de la computación cuántica, los ordenadores no cuánticos se suelen denominar ordenadores clásicos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *