Sobre la utilidad computacional en general
Sin darse cuenta, está haciendo una versión de una de las preguntas más difíciles que puede hacer sobre informática teórica. Puede hacer la misma pregunta sobre las computadoras clásicas, solo que en lugar de preguntar si es útil agregar 'cuántica', puede preguntar:
¿Hay una declaración concisa sobre dónde los algoritmos aleatorios pueden ayudar?
Es posible decir algo muy vago aquí: si crees que las soluciones son abundantes (o que la cantidad de soluciones a algún subproblema es abundante) pero que puede ser difícil construir una sistemáticamente, entonces es útil poder hacer elecciones al azar para superar el problema de la construcción sistemática. Pero cuidado, a veces la razón por la que sabes que hay muchas soluciones para un subproblema es porque hay una prueba que utiliza el método probabilístico . Cuando este es el caso, usted sabe que la cantidad de soluciones es abundante mediante la reducción de lo que en realidad es un algoritmo aleatorio útil.
A menos que tenga otra forma de justificar el hecho de que el número de soluciones es abundante para esos casos, no existe una descripción simple de cuándo un algoritmo aleatorio puede ayudar. Y si tiene demandas suficientemente altas de 'ayuda' (una ventaja súper polinomial), entonces lo que está preguntando es si , que es un problema no resuelto en la teoría de la complejidad. P≠BPP
¿Hay una declaración concisa sobre dónde los algoritmos paralelos pueden ayudar?
Aquí las cosas pueden estar un poco mejor. Si parece que un problema puede desglosarse en muchos subproblemas independientes, entonces puede ser paralelizado, aunque este es un criterio vago de "lo sabrás cuando lo veas". La pregunta principal es, ¿ lo sabrás cuando lo veas? ¿Habría adivinado que probar la viabilidad de sistemas de ecuaciones lineales sobre los racionales no solo es paralelizable, sino que podría resolverse usando circuitos de profundidad [cf Comput. Complejo. 8 (págs. 99-126), 1999 ]?O(log2n)
Una forma en que las personas intentan pintar una intuición general para esto es abordar la pregunta desde la dirección opuesta y decir cuándo se sabe que un algoritmo en paralelo no ayudará. Específicamente, no ayudará si el problema tiene un aspecto inherentemente secuencial. Pero esto es circular, porque 'secuencial' solo significa que la estructura que puede ver para el problema es una que no está paralela.
Nuevamente, no existe una descripción simple y completa de cuándo un algoritmo en paralelo puede ayudar. Y si tiene demandas suficientemente altas de 'ayuda' (un límite superior polilogarítmico en la cantidad de tiempo, suponiendo paralelización polinómica), entonces lo que está preguntando es si P≠NC , que nuevamente es un problema no resuelto en la teoría de la complejidad .
Las perspectivas de "descripciones concisas y correctas de cuándo [X] es útil" no parecen demasiado grandes en este momento. Aunque podría protestar que estamos siendo demasiado estrictos aquí: por exigir más que una ventaja polinómica, ni siquiera podríamos afirmar que las máquinas de Turing no deterministas fueron "útiles" (lo cual es claramente absurdo). No deberíamos exigir una barra tan alta: en ausencia de técnicas para resolver eficientemente la satisfacción, al menos deberíamos aceptar que si de alguna manera pudiéramos obtener una máquina de Turing no determinista, la encontraríamos realmente muy útil . Pero esto es diferente de poder caracterizar con precisión para qué problemas nos sería útil.
Sobre la utilidad de las computadoras cuánticas
Dando un paso atrás, ¿hay algo que podamos decir sobre dónde son útiles las computadoras cuánticas?
Podemos decir esto: una computadora cuántica solo puede hacer algo interesante si está aprovechando la estructura de un problema, que no está disponible para una computadora clásica. (Esto es insinuado por las observaciones sobre una "propiedad global" de un problema, como usted menciona). Pero podemos decir más que esto: los problemas resueltos por las computadoras cuánticas en el modelo de circuito unitario instanciarán algunas características de ese problema como operadores unitarios . Las características del problema que no están disponibles para las computadoras clásicas serán todas aquellas que no tengan una relación estadísticamente significativa (probablemente) con la base estándar.
- En el caso del algoritmo de Shor, esta propiedad son los valores propios de un operador de permutación que se define en términos de multiplicación sobre un anillo.
- ±1
No es especialmente sorprendente ver que en ambos casos, la información se relaciona con valores propios y vectores propios. Este es un excelente ejemplo de una propiedad de un operador que no necesita tener una relación significativa con la base estándar. Pero no hay una razón particular por la cual la información tiene que ser un valor propio. Todo lo que se necesita es poder describir un operador unitario, codificando alguna característica relevante del problema que no es obvio a partir de la inspección de la base estándar, pero que es accesible de alguna otra manera fácil de describir.
Al final, todo lo que dice es que una computadora cuántica es útil cuando puedes encontrar un algoritmo cuántico para resolver un problema. Pero al menos es un esquema general de una estrategia para encontrar algoritmos cuánticos, que no es peor que los esquemas generales de las estrategias que he descrito anteriormente para algoritmos aleatorios o paralelos.
Observaciones sobre cuándo una computadora cuántica es "útil"
Como otras personas han señalado aquí, "donde la computación cuántica puede ayudar" depende de lo que quiere decir con "ayuda".
El algoritmo de Shor a menudo se pone de manifiesto en tales debates, y de vez en cuando la gente señalará que no sabemos que la factorización no se puede resolver en tiempo polinómico. Entonces, ¿sabemos realmente que "la computación cuántica sería útil para factorizar números"?
Aparte de la dificultad para realizar computadoras cuánticas, creo que la respuesta razonable es 'sí'; no porque sepamos que no puedes factorizar de manera eficiente usando computadoras convencionales, sino porque no sabemos cómo lo harías usando computadoras convencionales. Si las computadoras cuánticas lo ayudan a hacer algo que no tiene un mejor enfoque, me parece que esto está 'ayudando'.
O ( 20,386norte)
Quizás el algoritmo de Grover como tal no sea especialmente útil. Sin embargo, puede ser útil si lo usa para elaborar estrategias clásicas más inteligentes más allá de la búsqueda de fuerza bruta: usando la amplificación de amplitud , la generalización natural del algoritmo de Grover a configuraciones más generales, podemos mejorar el rendimiento de muchos algoritmos no triviales para SAT (véase, por ejemplo, [ACM SIGACT News 36 (pp.103-108), 2005 - enlace PDF gratuito ]; un saludo a Martin Schwarz, quien me señaló esta referencia en los comentarios).
Al igual que con el algoritmo de Grover, la amplificación de amplitud solo produce aceleraciones polinómicas: pero hablando prácticamente, incluso una aceleración polinómica puede ser interesante si no se ve afectada por la sobrecarga asociada con la protección de la información cuántica del ruido.
TL; DR: No, no tenemos ninguna declaración "general" precisa sobre exactamente qué tipo de problemas pueden resolver las computadoras cuánticas , en términos de teoría de la complejidad. Sin embargo, tenemos una idea aproximada.
Según el sub-artículo de Wikipedia sobre la relación con la teoría de la complejidad computacional
En cuanto a por qué las computadoras cuánticas pueden resolver eficientemente los problemas de BQP:
Curiosamente, si teóricamente permitimos la selección posterior (que no tiene ninguna implementación práctica escalable), obtenemos la clase de complejidad post-BQP :
Me gustaría agregar lo que @Discrete lizard mencionó en la sección de comentarios. No ha definido explícitamente lo que quiere decir con "puede ayudar", sin embargo, la regla general en la teoría de la complejidad es que si una computadora cuántica "puede ayudar" en términos de resolver en tiempo polinómico (con un error vinculado) si la clase de problema puede resolver mentiras en BQP pero no en P o BPP. Se sospecha que la relación general entre las clases de complejidad que discutimos anteriormente es :
Sin embargo, P = PSPACE, es un problema abierto en informática . Además, la relación entre P y NP aún no se conoce.
fuente
No existe tal declaración general y es poco probable que la haya pronto. Explicaré por qué este es el caso. Para obtener una respuesta parcial a su pregunta, podría ser útil observar los problemas en las dos clases de complejidad BQP y PostBQP.
Las clases de complejidad que se acercan más a los problemas que las computadoras cuánticas del modelo de puerta cuántica pueden resolver de manera eficiente son:
BQP consiste en los problemas que se pueden resolver en tiempo polinómico en un circuito cuántico. Los algoritmos cuánticos más importantes, como el algoritmo de Shor, resuelven problemas en BQP.
Sin embargo, actualmente no hay métodos para implementar prácticamente la postselección, por lo que PostBQP es más de interés teórico.
La relación entre P, NP y BQP es actualmente desconocida; y un problema abierto en el orden de P vs. NP. Como una declaración general sobre qué tipos de problemas se pueden resolver de manera más eficiente usando computadoras cuánticas debe responder la pregunta BQP vs. P (si BQP = P, entonces aparentemente las computadoras cuánticas no son más eficientes (al menos para los teóricos de la complejidad)
fuente
Similar a la imagen de Blue, me gusta más esta de Quanta Magazine , ya que parece resumir visualmente de lo que estamos hablando.
fuente