¿La programación será diferente para las computadoras cuánticas, o solo habrá compiladores diferentes?

Debe comprender que, en el núcleo básico de una computadora moderna, se encuentra un circuito de conmutación, compuesto por interruptores que pueden estar ENCENDIDOS o APAGADOS, permitiendo así una gran cantidad de valores 1 o 0 en la computadora. Las “instrucciones” binarias para la computadora tienen la forma de permutaciones de 1 y 0. Estas instrucciones se agrupan bajo expresiones C y así sucesivamente.

La primera característica sorprendente de la computadora Quantum es que no hay un absoluto de 1 o 0. Todo el sistema se basa en Fuzzy Logic. Entonces, sí, la programación será radicalmente diferente en una computadora Quantum. Para ser sincero, los primeros años probablemente ni siquiera habrá un lenguaje de programación para la máquina, al igual que en los viejos tiempos los programas de computadora se ensamblaban a mano en códigos hexadecimales y binarios.

No tengo ni idea de cómo será la codificación en una computadora cuántica. Todo lo que sé es que, si se inventan en mi vida, ¡ definitivamente quiero codificar uno!

Las computadoras cuánticas serán (¿o son?) Capaces de hacer cosas que las computadoras actuales, con su dependencia de 0/1 aritmética, no pueden hacer. Utilizan una forma de cálculo que depende de la superposición de estados de física cuántica junto con el hecho de que, aunque no se puede medir el estado de superposición real, se puede determinar algo cuando se colapsa cuando se mide. Efectivamente, está tratando de definir un cálculo que considere múltiples posibilidades simultáneamente, luego verifique si alguna de esas posibilidades era verdadera, o si todas eran falsas, al mismo tiempo. Es conceptualmente complicado ya que nuestros cerebros no comprenden la idea de que podemos verificar los valores “n” de x a la vez, en lugar de tener que hacer un bucle.

Sospecho que el “lenguaje” utilizado por las computadoras cuánticas será dramáticamente diferente a las computadoras digitales por esta razón. Los seres humanos que sean criaturas de hábitos probablemente intentarán integrar los conceptos de superposición y entrelazamiento cuántico en algo que se aproxime a nuestros conceptos estándar de álgebra o lógica booleana, pero la esencia de lo que está sucediendo será totalmente diferente. Para empezar, la “programación” seguramente se parecerá un poco a las computadoras cableadas desarrolladas alrededor de la Segunda Guerra Mundial.

Es más probable que las aplicaciones sean diferentes a las computadoras digitales. Las aplicaciones obvias serían algoritmos genéticos, inteligencia artificial, cifrado y análisis multidimensional. Probablemente estamos a unos 15-30 años de que cualquiera de esas cosas sea convencional, y es muy difícil saber si las computadoras digitales, con su sólida base de “sí / no”, alguna vez serían reemplazadas por las cosas cuánticas de estado n .

La programación será diferente para las computadoras cuánticas.

En primer lugar, debes entender que las computadoras cuánticas nunca harán el 95% del trabajo que hacen las computadoras hoy en día. Nunca se utilizarán para escribir un sistema operativo, un navegador web, un sistema de correo electrónico o casi cualquiera de los miles de millones de computadoras integradas. El tipo de problema que resolverán mucho más rápido es el tipo en el que en este momento necesita contratar mil procesadores por horas a la vez. Los problemas de criptografía y simulación ocuparán un lugar destacado en la lista. Lo cual requerirá redactar lo que es esencialmente una pregunta numérica en términos numéricos que responderá una computadora cuántica. El más simple, de la criptografía, podría ser “¿cuáles son los dos factores primos de este gran número?”. De la biología “¿cuál es la configuración de energía más baja de este grupo de átomos?”. Preguntas fascinantes, pero no en las que están trabajando la mayoría de los ingenieros de software cotidianos.

Los lenguajes cuánticos no tienen que ser diferentes, pero deberían serlo.

En última instancia, las puertas cuánticas pueden describirse mediante ecuaciones lineales. Debido a esto, los físicos con los que he trabajado han tendido a hacer gran parte de su “programación” usando Mathematica. También puede encontrar extensiones cuánticas para idiomas, incluido Perl.

Sin embargo, un buen lenguaje de programación debe proporcionar abstracciones útiles para que el programador pueda pensar a un alto nivel sobre lo que debe lograrse y la computadora pueda encargarse de la contabilidad con respecto a cómo lograr esos objetivos.

Creo que Quipper (The Quipper Language) es el mejor pensamiento actual sobre cómo debería ser esto. (Descargo de responsabilidad: trabajé con las personas que lo desarrollaron originalmente). Proporciona herramientas para hacer cosas como invertir un circuito automáticamente y tipos que le permiten a uno construir estructuras de datos cuánticos y moverse naturalmente entre bits y qubits. (Estos son solo un par de ejemplos rápidos y fáciles de describir de cómo proporciona abstracciones).

El otro lenguaje cuántico que creo que está bien diseñado es QCL (QCL – Un lenguaje de programación para computadoras cuánticas). Creo que el estilo de procedimiento crea algunas limitaciones, pero también trata los datos cuánticos como una parte natural del lenguaje en lugar de un complemento. (Y ciertamente estábamos al tanto de QCL al diseñar Quipper).

Tenga en cuenta que ambos suponen que la programación cuántica será un aspecto de la programación, al igual que la programación de punto flotante es un aspecto de la programación. Para usar un ejemplo de otra respuesta, desea escribir un navegador usando programación cuántica (y más que usando programación de punto flotante). Sin embargo, puede ser que su navegador incluya algoritmos cuánticos.

Otro aspecto de la pregunta se reduce a cuántos algoritmos cuánticos (útiles) habrá. Actualmente, solo se han descubierto un puñado de primitivas cuánticas (como la transformación cuántica de Fourier). Se han aplicado para construir un conjunto más amplio de algoritmos. Si el número de primitivas es pequeño, es posible que no necesitemos lenguajes de programación cuántica. Por analogía, la unidad de coma flotante en una computadora a menudo proporcionará una función sinusoidal en lugar de requerir que el usuario programe una función sinusoidal. Un coprocesador cuántico bien podría incluir una primitiva QFT, que luego se llamaría desde un lenguaje de programación tradicional. (Pero eso sería aburrido, así que espero que haya muchas primitivas. 😉

Mucho entusiasmo, aquí, pero cualquiera pareció olvidar la tesis de la gira por la Iglesia, que también había sido demostrada nuevamente para la computación cuántica.

Por lo tanto, la máquina es completamente diferente (no es un ejecutor secuencial, sino mucho más un “emparejador de patrones”), pero la noción de algoritmo no cambia, y el poder semántico del formalismo utilizado para describir su propio programa no lo hace. cambiar tampoco.

Es más rápido en algoritmos que requieren un reconocimiento rápido y más lento en aritmética convencional, pero -debido a la tesis de Church-Touring- será posible escribir compiladores de una plataforma a otra. El único problema es garantizar el rendimiento cuando se da la vuelta.

Las computadoras cuánticas no son computadoras universales. Son solo invenciones para resolver problemas muy especiales. No es comparable, así que no. No los programaremos. Simplemente les damos entrada y clasifican la salida posible.

Entonces está en un patio diferente.

La computación cuántica no se trata de lógica. Se trata del estado cuántico. Por lo tanto, no puede hacer nada con ellos, excepto esto: son una especie de memoria asociativa. Entonces, la memoria normal como nuestra RAM es la dirección de datos. Pero una computadora cuántica da datos a la dirección.

Y eso es con lo que nuestras computadoras son malas.

Son Anti-computadoras, por así decirlo. Son muy malos en todo lo que nuestras computadoras pueden hacer. Pero pueden hacer esto. Y eso es posiblemente más comparable al funcionamiento de la RAM que al funcionamiento de una CPU.

No se trata tanto de “informática”, por lo que no me gusta demasiado la palabra “informática cuántica”. No hay nada que calcular. El dispositivo cuántico está encontrando una solución desde un espacio de solución. Si le das un contexto, él encuentra la dirección donde mirar.

Pero en este momento estamos a 4 bit QC o algo así. Eso es ridículo y no tiene valor práctico. Tal vez para la transmisión, pero eso es realmente algunos cañones muy grandes disparando a un objetivo muy pequeño.

Pero es una “aplicación útil”, el desarrollo necesita dinero. Y es realmente necesario, porque esas formas de trabajo son realmente bastante necesarias. Pero puede ser realmente a gran escala cuando llega a muchos más bits. Pero cada bit Q que implementen aumentará el nivel de problemas que tienen.

No sé cómo son los factores, pero supongo que están en O (n²) o algo así. Y esto significa que en este momento tendremos que esperar mucho, mucho, mucho, mucho, mucho tiempo hasta que incluso puedan intentar romper un código de 128 bits con eso. Y posiblemente sea más rápido iniciar algunas computadoras habituales para hacerlo, pero esperar hasta que el control de calidad esté listo para eso.

Por el momento pueden romper un código de 4 bits. ¡Hurra!

No muy impresionante Por supuesto, veo el potencial, pero estamos lejos, muy lejos de la aplicación real.

Y si está listo, no será programable. Será más como un dispositivo de RAM inversa. Alimenta datos y obtiene una dirección. Memoria asociativa, eso es el control de calidad.

No son computadoras.

Son memoria asociativa. (¡que sigue siendo bastante impresionante!)

Probablemente un poco de ambos. Por ejemplo, algunos problemas se prestan a ser más fáciles de resolver en una CPU o GPU vectorizada. Algunos problemas se enviarán a qubits cuánticos.

More Interesting

¿Cómo la descripción cuántica de la realidad, que incluye elementos como la superposición de estados y el colapso de la función de onda o la decoherencia cuántica, da lugar a la realidad que percibimos?

La investigación publicada en Nature predice que el logro de la computación cuántica efectiva para 2025 comprometerá los datos registrados antes de ese momento. ¿Cuáles son las implicaciones para las empresas y los gobiernos?

¿Es teóricamente posible hacer que una partícula interactúe con una partícula enredada en el espacio?

¿Cuáles son las aplicaciones prácticas de la física cuántica?

¿La interpretación de Copenhague de la mecánica cuántica se interpone en el camino del progreso continuo en la física cuántica?

¿Qué es una explicación del enredo cuántico?

¿Son buenos los físicos para programar?

¿Qué se entiende por 'idéntico pero distinguible' en física cuántica?

¿Los qubits trinarios (también conocidos como ternarios) son cosas que existen en la informática?

¿Cuáles son algunos paradigmas de programación poco comunes y un 'hola mundo' que usa un lenguaje representativo?

¿Qué es la computadora DWave?

¿Qué forma de almacenamiento digital tiene la vida útil más larga?

Al igual que cómo usamos los principios de la mecánica cuántica en la computación cuántica, ¿podemos usar estas ideas en el campo de la medicina y, si podemos, de qué manera?

¿Son físicas las fluctuaciones cuánticas?

¿Por qué la cantidad de información que una computadora cuántica puede calcular crece tan rápidamente en comparación con una computadora clásica?