¿Cómo cambiarán las computadoras cuánticas la forma en que codificamos?

P: ¿Cómo cambiarán las computadoras cuánticas la forma en que codificamos?

Para la mayoría de las cosas, no lo harán. Suponiendo que superamos las preocupaciones técnicas y podemos producir una computadora cuántica a temperatura ambiente pequeña con un número utilizable de qubits, debe esperar ver esto usado como un coprocesador en una computadora convencional.

Al igual que con las GPU, un coprocesador cuántico solo se usaría para ciertos problemas. Curiosamente … aquí hay un fuerte cruce entre el tipo de problemas altamente paralelos que arrojamos a las GPU y el tipo de cosas en las que Quantum es bueno.

p.ej:

  • Aprendizaje automático
  • Trazado de rayos
  • Búsqueda de texto en conjuntos de datos masivos
  • minería Bitcoin
  • cifrado de craqueo
  • modelado de plegamiento de proteínas
  • predicción del tiempo
  • modelado del sistema físico

El aprendizaje automático y la búsqueda de datos están en el corazón de organizaciones como Facebook y Google, por lo que puede esperar que la publicidad sea aún más específica.

La predicción meteorológica mejorada salvará innumerables vidas.

… al igual que el plegamiento de proteínas, dando a la biotecnología un impulso masivo para cualquier cantidad de medicamentos y para la manipulación genética

El trazado de rayos en tiempo real hará que los juegos sean aún más fotorrealistas de lo que ya son, con iluminación mucho más matizada y detallada, niebla, etc.

Si ya trabaja con un lenguaje de programación funcional y / o ya trabaja en el campo de “Big Data”, entonces ya está trabajando en el estilo declarativo que se traducirá más fácilmente a cuántico. ¡Felicitaciones!

Si aún no trabaja en una de las áreas que enumeré, o en algo similar, entonces no esperaría demasiado impacto de la computación cuántica. Suponiendo que el hardware se haya generalizado, lo más probable es que lo encuentre a través de alguna optimización en una biblioteca que usa y no necesita preocuparse … Al igual que los programadores de Javascript se están aprovechando de la aceleración de GPU en los navegadores web en este momento sin necesidad de escribir cualquier código de GPU en absoluto.

Es más complicado que eso; lo que hace que las computadoras cuánticas sean mejores (en algunos problemas) es la interferencia, por lo que debe pensar en cómo codificar el problema de una manera que permita que las soluciones incorrectas interfieran destructivamente, mientras que las soluciones correctas interfieren constructivamente. Si no está utilizando interferencia / enredo, hay una solución eficiente (potencialmente probabilística, pero aún clásica ) en una computadora clásica (por ejemplo, como la que tenemos para problemas en BPP).

La clase de problemas que una computadora cuántica puede resolver de manera eficiente, pero (supuestamente) no se puede resolver de manera eficiente por una computadora clásica, se llama BQP. Para ver algunos algoritmos interesantes para tales problemas, consulte Simon’s, Grover’s, Shor’s.

Quantum Computing Playground tiene los algoritmos de Shor y Grover en la sección “Ejemplos”, si desea verlos en acción. Faltaba un ejemplo de teletransportación cuántica, así que lo agregué: teletransportación cuántica. Mi primer programa fue un sumador de transferencia de ondas, que en realidad no utiliza los beneficios que le brinda una computadora cuántica, y en su lugar solo le permite agregar números en superposición: sumador.

Si desea obtener más información, no solo sobre las computadoras cuánticas, sino también sobre la mecánica cuántica necesaria, lea Quantum Computing desde Democritus: está escrito por un científico de la computación (teórico de la complejidad), por lo que explica las cosas desde una perspectiva que es más comprensible para un programador.

Definitivamente volver a hacer todo desde cero. Sin embargo, gran parte del trabajo preliminar ya se ha establecido, en anticipación del hardware para usarlo realmente. Tendremos que reorganizar nuestro pensamiento por completo para aprovechar al máximo el control de calidad. ¿Recuerdas cuando salieron los procesadores de vectores por primera vez? ¡Eso no es nada! ¿Recuerdas cuando aparecieron las rutas condicionales? ¡Trivial! ¿Recuerdas cuando salió la memoria direccionable por contenido? Juego de niños en comparación, y casi nada se ha hecho con eso todavía. Los primeros QC pasarán todo su tiempo factorizando productos de primos para romper el cifrado, que es la aplicación más patética que se me ocurre. Es posible que tengamos control de calidad en unos pocos años, pero predigo que pasarán décadas antes de que su potencial comience a realizarse, probablemente por IA. Los humanos son en su mayoría demasiado estúpidos para entender el control de calidad. Sé quien soy. 🙂

En realidad, no tengo suficiente información real a pesar de los rumores sobre las computadoras cuánticas.

Así que puedo hablar sobre mis sentimientos al respecto frente a la informática actual. Si es un éxito, seguramente serán cada vez más fáciles de construir y eventualmente llegarán al mercado privado en xx años.

También creo que la informática cuántica no tiene nada que ver con la informática actual y que sería una muy mala idea, por ejemplo, tratar de programarlos en los idiomas actuales. La misma mala idea que portar una solución hecha en el lenguaje a en el lenguaje b copiando el código, ignorando por completo que tal vez a es un lenguaje de procedimiento de la vieja escuela mientras que b es funcional.

Siento que se deben implementar nuevos idiomas para poder utilizar toda la potencia de procesamiento de esa nueva tecnología. Podría estar totalmente equivocado (ver arriba, no hay información real tal como la entiendo) pero esa es mi suposición 🙂

Esperaría que las capacidades de control de calidad se incluyeran como un módulo coprocesador, ya que, en general, la mayoría de los problemas no son susceptibles de acelerar las soluciones cuánticas. Se convertirían en intrínsecos del compilador.

Es bastante improbable que las computadoras cuánticas reemplacen a las computadoras clásicas, ya que no ofrecen una ventaja real sobre ellas para usuarios normales como usted y yo. Dicho esto, sin embargo, si reemplazan a las computadoras clásicas, esperaría ver más apoyo lenguajes portados a la computación cuántica, por lo que la programación de alto nivel no cambiaría tanto, en mi opinión.

Las computadoras cuánticas, si funcionan, solo proporcionarán soluciones más rápidas a ciertos problemas matemáticamente difíciles. La mayoría de las computadoras en realidad no resuelven problemas; barajan información. Las computadoras cuánticas no tendrán efecto en al menos el 95% de la programación, probablemente más cerca del 99%.