Los límites de la computación cuántica


Alan Turing
En una entrevista en la Contra de la Vanguardia publicada el 27 de julio de 2019, David Pérez García, investigador en física cuántica, dice esto: Sólo [estamos en] el principio de unas tecnologías que aún hoy no sabemos hasta dónde llegarán. Tiene razón, porque el futuro es difícilmente predecible, pero cuando se habla de computación cuántica se tiende a pensar que estos ordenadores, si algún día son viables, nos permitirán resolver problemas muy distintos de los que pueden abordar los computadores tradicionales a los que estamos acostumbrados, y esto sí es algo en que las matemáticas pueden ayudar a distinguir entre lo que se puede hacer, y lo que es completamente imposible.
Aunque la computación cuántica es un concepto bastante moderno, su fundamentación teórica fue establecida por Alan Turing durante los años 30 del siglo XX. Es interesante revisar lo que él demostró entonces, porque así podremos subsanar algunas ideas demasiado optimistas que suelen esparcir los medios de comunicación, a menudo impulsados por expertos que abordan la cuestión desde puntos de vista muy diferentes al de Turing.
Alan Turing diseñó un tipo especial de máquina de cómputo que, en su honor, se llama máquina de Turing determinista. Aunque no se suele construir con hardware, resulta fácil de simular con una computadora electrónica. Esencialmente consta de una cinta infinita en la que se pueden grabar símbolos, y de un cabezal que permite leerlos y escribirlos. Los símbolos que contiene la cinta al principio del proceso forman la entrada de la máquina, que estará en un estado escogido entre varios posibles. Al leer un símbolo de la cinta, la máquina de Turing escribe otro símbolo en la misma posición, cambia de estado, y desplaza (o no) el cabezal para leer el símbolo situado en la casilla siguiente, o en la anterior, o en la misma. La máquina es determinista, porque si está en un estado determinado y lee un símbolo concreto de la cinta, su acción es siempre la misma.
Máquina de Turing construida con Lego
Cada máquina de Turing determinista está diseñada para ejecutar un solo programa. Sin embargo, Turing demostró que es posible diseñar una máquina especial (la máquina de Turing universal), que puede simular el funcionamiento de cualquier otra máquina de Turing si se le proporcionan, como datos de entrada, la definición de esta (su matriz de transición de estados) y los datos de entrada de la máquina simulada. La máquina de Turing universal tiene una capacidad de cálculo equivalente a la de nuestras computadoras electrónicas tradicionales, a las que se adelantó en casi una década. En puridad, es aun más potente, porque se supone que tiene memoria infinita. Pero esta diferencia ha perdido importancia, teniendo en cuenta el tamaño que alcanza la memoria de las computadoras modernas.
Por otra parte, Turing diseñó otro tipo de máquina de cómputo, la máquina de Turing no determinista, que tiene la particularidad de que, al leer un símbolo de la cinta, puede realizar varias acciones diferentes (pasar a varios estados, escribir distintos caracteres y moverse en diversas direcciones). Y no se trata de que elija una entre esas acciones posibles, sino que realiza todas a la vez, en paralelo. Esta máquina proporciona una buena aproximación de los computadores cuánticos de los que se habla hoy, que en tiempos de Turing eran impredecibles. 
Pues bien, Turing no se limitó a definir esas dos máquinas, que representan los ordenadores actuales y los cuánticos, sino que demostró un teorema según el cual cualquier máquina de Turing no determinista puede simularse mediante una determinista equivalente, que resuelve exactamente el mismo problema (eso sí, mucho más despacio). Una demostración informal de este teorema puede encontrarse en el apartado 2.3.1 del libro Teoría de Autómatas y Lenguajes Formales (McGraw Hill 2007) que escribí junto con mi hijo Enrique y el profesor Roberto Moriyón, para que sirviera de texto en la titulación de Ingeniería Informática.
La consecuencia de este teorema es evidente: los ordenadores cuánticos no podrán resolver problemas nuevos, que hasta ahora no se había podido resolver. Simplemente es posible que resuelvan con rapidez algunos problemas que ya podíamos resolver con las máquinas tradicionales, aunque más despacio. Sí, de acuerdo, algunos de esos problemas (que se llaman NP-completos) tardan mucho en resolverse (a veces demasiado) con los ordenadores que utilizamos corrientemente, y quizá podamos resolverlos en tiempo razonable con los ordenadores cuánticos, pero está completamente excluido que con ellos puedan resolverse problemas nuevos. Las matemáticas lo demuestran.
La Wikipedia inglesa expresa esta idea de una forma clara y terminante:
Los problemas que son indecidibles utilizando computadores clásicos siguen siendo indecidibles utilizando computadores cuánticos.

Hilo Inteligencia natural y artificial: Anterior Siguiente
Manuel Alfonseca
Agradezco a Gonzalo Génova, que me sugirió este artículo

7 comentarios:

  1. Estoy completamente de acuerdo, la computación cuántica es simplemente un paradigma diferente al de la computación clásica, con el que se podrá resolver problemas de forma más rápida y eficiente.

    ResponderEliminar
  2. Olvidaba, si a alguien le interesa este tema, aqui dejo el enlace a un articulo de revisión publicado por mi:
    https://www.mdpi.com/2073-431X/5/4/24/htm

    ResponderEliminar
  3. Interesante artículo, aunque me desvió algo del tema. Algunos parecen críticos con la inteligencia artificial entre ellos Elon Kusk. Aunque ya se ha tratado en otros artículos de Divulciencia parecen tener temor de que la inteligencia artificial suppere a la del ser humano, y acabemos como en Terminator, Matrix, o la saga Berserker de Fred Saberhagen PD. Iré leyendo los otros artículos, y contestándolos poco a poco mientras leo, y escribo críticas literarias :-).

    ResponderEliminar
  4. Muchas gracias, Manuel, por recoger el guante y no olvidar este tema que surgió hace unos meses.

    >> Y no se trata de que [la máquina de Turing no determinista] elija una entre esas acciones posibles, sino que realiza todas a la vez, en paralelo.

    Lo que me descuadra un poco es que se la denomine "no determinista", que sugiere algún tipo de aleatoriedad o indeterminación. Pero no es eso lo que ocurre, sino que realiza, de modo determinista, varias acciones a la vez. Este "determinismo de la máquina no determinista" es confirmado por el teorema de equivalencia. Más bien habría que denominarla, entonces, "máquina de Turing concurrente", "multimáquina de Turing", o algo semejante.

    >> La consecuencia de este teorema es evidente: los ordenadores cuánticos no podrán resolver problemas nuevos, que hasta ahora no se había podido resolver.

    Bueno, con matices, ¿no? Porque antes has dicho que "Esta máquina proporciona una buena aproximación de los computadores cuánticos de los que se habla hoy". Luego, en la medida en que la aproximación deja de ser válida, queda abierta la posibilidad a que los ordenadores cuánticos resuelvan problemas no computables al modo tradicional.

    Quede claro que no soy nada partidario del halo de misticismo con que los medios tratan ciertas noticias sobre ciencia y tecnología. Todo lo contrario, la labor del divulgador es desmitificar, o sea, poner en su lugar a la ciencia y la tecnología, y en este caso a la computación cuántica.

    Volviendo a la duda que planteé originalmente, si un ordenador cuántico es, no solo aproximadamente, sino totalmente equivalente a una máquina de Turing no determinista, entonces no puede calcular o computar de forma diferente (salvo cuestiones de eficiencia), y por tanto la expresión "algoritmo cuántico" es equívoca, porque todo algoritmo cuántico es en realidad (equivalente a) un algoritmo tradicional, tal como se definen desde de Turing.

    ResponderEliminar
    Respuestas
    1. 1. Es evidente que el nombre "máquina no determinista" puede ser susceptible de mejora, pero es el que se le dado desde el principio, así que no parece fácil cambiarlo. Por otra parte, lo que propones (máquina con aleatoriedad) tiene un nombre diferente: "máquina de Turing probabilística".

      2. Dije lo de "es una buena aproximación" para curarme en salud, porque Deutsch ha propuesto un nuevo tipo de máquina de Turing (la máquina de Turing cuántica) que en vez de bits tiene qubits en su memoria. Pero sospecho que esta máquina es equivalente a la máquina de Turing no determinista, en cuyo caso mi frase podría sustituirse por "es totalmente equivalente a". No soy consciente de que se haya demostrado la equivalencia, pero la frase de la Wikipedia inglesa que he citado parece indicar que sí lo ha sido.

      Eliminar
    2. Sigo dándole vueltas, gracias a que en estas dos últimas semanas he tenido que estudiar el tema.

      1. No me convence todavía el término "algoritmo cuántico". Lo que he visto son formas de conectar qubits (bits cuánticos) a través de puertas cuánticas (que son las análogas a las puertas lógicas en la electrónica digital clásica). Si tuviera que dar un nombre a esto, lo llamaría "circuito lógico cuántico", o más brevemente "circuito cuántico".
      Ciertamente, un circuito lógico clásico implementa un determinado algoritmo, es decir, una transformación "mecánica" (basada en reglas lógicas) en la información que se le da como entrada. En ese sentido, la diferencia entre circuito lógico y algoritmo no es tajante. Aun así, me parece que un ingeniero informático tiene otra cosa en la cabeza cuando habla de algoritmo.

      En resumen, lo acepto como término correcto, pero creo que esta explicación no sobra.

      2. Un circuito (o algortimo) cuántico acepta información en forma de bits clásicos en su entrada (como un algoritmo convencional), y produce a la salida igualmente una serie de bits clásicos (el resultado de medir los qubits y colapsarlos).
      No tengo claro todavía si el resultado es determinista, o si tiene carácter probabilista, o si es a veces una cosa y a veces otra.

      En el primer caso estamos ante una máquina que transforma, siempre de la misma manera, una entrada en forma de bits en una salida en forma de bits, lo cual responde perfectamente a la definición de Máquina de Turing, y por tanto, sea cual sea su construcción interna, es una Máquina de Turing, y solo puede calcular lo que éstas pueden calcular, en el sentido en que lo explicabas en tu artículo.

      En el segundo caso, tal vez se pueda decir que es una Máquina de Turing Probabilística. Mis conocimentos no llegan a tanto por el momento.

      Eliminar
    3. Tu análisis es correcto, con la única anotación de que el resultado del algoritmo (o circuito) cuántico siempre es determinista. En el algoritmo de Shor (por ejemplo) cuyo objetivo es dividir un número compuesto en sus factores primos (15=3*5) el propósito del algoritmo es manipular las probabilidades de las distintas posibilidades cuánticas con el fin de que una de ellas (la solución correcta buscada) pase al final a tener probabilidad 1, mientras todas las demás pasan a tener probabilidad cero. Así, cuando se provoca el colapso cuántico, no tenemos más remedio que obtener el resultado correcto deseado. En consecuencia, no se trata de una máquina de Turing probabilística, porque el resultado siempre es determinista, como en los ordenadores ordinarios.

      Eliminar