
¡Hola a todos!
El otro día visité D-Wave Systems en Vancouver, Canadá. Es una empresa que fabrica computadoras cuánticas de vanguardia.
Allí aprendí mucho sobre las computadoras cuánticas, así que me gustaría compartir con ustedes algo de lo que aprendí allí en este artículo.
El objetivo de este artículo es brindarle una intuición precisa de lo que es una computadora cuántica usando un ejemplo simple.
Este artículo no requerirá que tengas conocimientos previos de física cuántica o ciencias de la computación para poder entenderlo.
Bien, comencemos.
Editar (26 de febrero de 2019): Recientemente publiqué un video sobre el mismo tema en mi canal de YouTube. Recomendaría verlo (haga clic aquí) antes o después de leer este artículo porque he agregado algunos argumentos adicionales y más matizados en el video.
¿Qué es una computadora cuántica?
Aquí hay un resumen de una oración de lo que es una computadora cuántica:
Una computadora cuántica es un tipo de computadora que utiliza la mecánica cuántica para que pueda realizar ciertos tipos de cálculo de manera más eficiente que una computadora normal.Hay mucho que desentrañar en esta oración, así que permítame explicarle lo que es exactamente usando un ejemplo simple.
Para explicar qué es una computadora cuántica, primero tendré que explicar un poco sobre las computadoras regulares (no cuánticas).
Cómo almacena información una computadora normal
Ahora, una computadora normal almacena información en una serie de ceros y unos.
De esta forma se pueden representar diferentes tipos de información, como números, texto e imágenes.
Cada unidad de esta serie de ceros y unos se llama bit. Por lo tanto, un bit puede establecerse en 0 o 1.
Ahora, ¿qué pasa con las computadoras cuánticas?
Una computadora cuántica no usa bits para almacenar información. En cambio, usa algo llamado qubits.
Cada qubit no solo se puede establecer en 1 o 0, sino que también se puede establecer en 1 y 0. Pero, ¿qué significa eso exactamente?
Déjame explicarte esto con un ejemplo sencillo. Este va a ser un ejemplo algo artificial. Pero seguirá siendo útil para comprender cómo funcionan las computadoras cuánticas.
Un ejemplo sencillo para comprender cómo funcionan las computadoras cuánticas
Ahora, suponga que tiene una agencia de viajes y necesita trasladar a un grupo de personas de un lugar a otro.
Para mantener esto simple, digamos que necesita mover solo 3 personas por ahora: Alice, Becky y Chris.
Y suponga que ha reservado 2 taxis para este fin y quiere averiguar quién se sube a qué taxi.
Además, suponga que aquí se le proporciona información sobre quién es amigo de quién y quién es enemigo de quién.
Aquí, digamos que:
- Alice y Becky son amigas
- Alice y Chris son enemigos
- Becky y Chris son enemigos
Y suponga que su objetivo aquí es dividir este grupo de 3 personas en los dos taxis para lograr los siguientes dos objetivos:
- Maximice la cantidad de parejas de amigos que comparten el mismo automóvil
- Minimiza el número de pares de enemigos que comparten el mismo coche.
Bien, entonces esta es la premisa básica de este problema. Primero pensemos en cómo resolveríamos este problema usando una computadora normal.
Resolviendo este problema con una computadora normal
Para resolver este problema con una computadora normal no cuántica, primero deberá averiguar cómo almacenar la información relevante con bits.
Etiquetemos los dos taxis Taxi # 1 y Taxi # 0.
Luego, puede representar quién entra en qué automóvil con 3 bits.
Por ejemplo, podemos establecer los tres bits en 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 a este grupo de personas en dos coches.
Aquí hay una lista de todas las configuraciones posibles:
A | B | C
0 | 0 | 0
0 | 0 | 1
0 | 1 | 0
0 | 1 | 1
1 | 0 | 0
1 | 0 | 1
1 | 1 | 0
1 | 1 | 1
Con 3 bits, puede representar cualquiera de estas combinaciones.
Calcular la puntuación de cada configuración
Ahora, usando una computadora normal, ¿cómo determinaríamos qué configuración es la mejor solución?
Para hacer esto, definamos cómo podemos calcular la puntuación para cada configuración. Esta puntuación representará la medida en que cada solución logra los dos objetivos que mencioné anteriormente:
- Maximice la cantidad de parejas de amigos que comparten el mismo automóvil
- Minimiza el número de pares 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 automóvil) - (# pares de enemigos que comparten el mismo automóvil)
Por ejemplo, suponga que Alice, Becky y Chris se suben al Taxi # 1. Con tres bits, esto se puede expresar como 111 .
En este caso, solo hay una pareja de amigos que comparten el mismo automóvil: Alice y Becky.
Sin embargo, hay dos parejas de enemigos que comparten el mismo coche: Alice y Chris, y Becky y Chris.
Entonces, la puntuación total de esta configuración es 1-2 = -1.
Resolviendo el problema
Con toda esta configuración, finalmente podemos resolver este problema.
Con una computadora normal, para encontrar la mejor configuración, básicamente deberá revisar todas las configuraciones para ver cuál logra la puntuación más alta.
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 | -1
Como puede ver, aquí hay dos soluciones correctas: 001 y 110, y ambas logran la puntuación de 1.
Este problema es bastante simple. Rápidamente se vuelve demasiado difícil de resolver con una computadora normal a medida que aumentamos el número de personas en este problema.
Vimos que con 3 personas, necesitamos pasar por 8 configuraciones posibles.
¿Y si hay 4 personas? En ese caso, tendremos que pasar por 2 * 2 * 2 * 2 = 16 configuraciones.
Con n personas, tendremos que pasar por (2 elevado a la potencia de n) configuraciones para encontrar la mejor solución.
Entonces, si hay 100 personas, tendremos que pasar por:
- 2¹⁰⁰ ~ = 10³⁰ = un millón de millones de millones de millones de configuraciones.
Esto es simplemente imposible de resolver con una computadora normal.
Resolviendo este problema con una computadora cuántica
¿Cómo solucionaríamos este problema con una computadora cuántica?
Para pensar en eso, 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 | 0 | 1
0 | 1 | 0
0 | 1 | 1
1 | 0 | 0
1 | 0 | 1
1 | 1 | 0
1 | 1 | 1
Con una computadora normal, usando 3 bits, pudimos representar solo una de estas soluciones a la vez, por ejemplo, 001.
Sin embargo, con una computadora cuántica, usando 3 qubits , podemos representar las 8 de estas soluciones al mismo tiempo .
Hay debates sobre lo que significa exactamente, pero así es como lo pienso.
Primero, examine el primer qubit de estos 3 qubits. Cuando lo pones en ambos0 y 1, es como crear dos mundos paralelos. (Sí, es extraño, pero sigue aquí).
En uno de esos mundos paralelos, el qubit se establece en 0. En el otro, se establece en 1.
Ahora, ¿qué pasa si también establece el segundo qubit en 0 y 1? Entonces, es como crear 4 mundos paralelos.
En el primer mundo, los dos qubits se establecen en 00. En el segundo, son 01. En el tercero, son 10. En el cuarto, son 11.
De manera similar, si establece los tres qubits en 0 y 1, estaría 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 aplica algún tipo de cálculo en estos tres qubits, en realidad está aplicando el mismo cálculo en todos esos 8 mundos paralelos al mismo tiempo.
Entonces, en lugar de analizar cada una de esas posibles soluciones secuencialmente, podemos calcular los puntajes de todas las soluciones al mismo tiempo.
Con este ejemplo en particular, en teoría, su computadora cuántica podría encontrar una de las mejores soluciones en unos pocos milisegundos. Nuevamente, eso es 001 o 110 como vimos anteriormente:
A | B | C | Puntuación
0 | 0 | 0 | -1
0 | 0 | 1 | 1 <- uno de los mejores Soluti complementos
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 | -1
En realidad, para resolver este problema, necesitaría darle a su computadora cuántica dos cosas:
- Todas las posibles soluciones representadas con qubits
- Una función que convierte cada solución potencial en una puntuación. En este caso, esta es 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, su computadora cuántica escupirá una de las mejores soluciones en unos pocos milisegundos. En este caso, es 001 o 110 con una puntuación de 1.
Ahora, en teoría, una computadora cuántica es capaz de encontrar una de las mejores soluciones cada vez que se ejecuta.
Sin embargo, en realidad, hay errores al ejecutar una computadora cuántica. Por lo tanto, en lugar de encontrar la mejor solución, puede encontrar la segunda mejor solución, la tercera mejor solución, etc.
Estos errores se vuelven más prominentes a medida que el problema se vuelve cada vez más complejo.
Entonces, en la práctica, probablemente querrá ejecutar la misma operación en una computadora cuántica decenas de veces o cientos de veces. Luego, elija el mejor resultado entre los muchos resultados que obtiene.
Cómo escala una computadora cuántica
Incluso con los errores que mencioné, la computadora cuántica no tiene el mismo problema de escala que sufre una computadora normal.
Cuando hay 3 personas que necesitamos dividir en dos coches, el número de operaciones que necesitamos realizar en una computadora cuántica es 1. Esto se debe a que una computadora cuántica 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, una computadora cuántica calcula las puntuaciones de todas las 2¹⁰⁰ ~ = 10³⁰ = un millón de millones de millones de millones de configuraciones al mismo tiempo.
Como mencioné anteriormente, en la práctica, probablemente sea mejor ejecutar su computadora cuántica docenas de veces o cientos de veces y elegir el mejor resultado entre los muchos resultados que obtiene.
Sin embargo, sigue siendo mucho mejor que ejecutar el mismo problema en una computadora normal y tener que repetir el mismo tipo de cálculo un millón de millones de millones de millones de millones de veces.
Terminando
Un agradecimiento especial a todos en D-Wave Systems por explicarme pacientemente todo esto.
D-Wave lanzó recientemente un entorno de nube para interactuar con una computadora cuántica.
Si eres un desarrollador y te gustaría intentar usar una computadora cuántica, probablemente sea la forma más fácil de hacerlo.
Se llama Leap y está en //cloud.dwavesys.com/leap. Puede usarlo de forma gratuita para resolver miles de problemas, y también tienen tutoriales fáciles de seguir sobre cómo comenzar con las computadoras cuánticas una vez que se registre.
Nota:
- En este artículo, utilicé el término "computadora normal" para referirme a una computadora no cuántica. Sin embargo, en la industria de la computación cuántica, las computadoras no cuánticas generalmente se denominan computadoras clásicas.