¿Cómo juzgar la definición de complejidad computacional de los reales es natural o adecuada?

11

Como sabemos, la definición de la complejidad computacional del algoritmo es casi sin controversia, pero la definición de la complejidad computacional de los reales o los modelos de cálculo sobre los reales no es en tal caso. Conocemos el modelo y modelo de Blum y Smales en el libro Análisis computable. Y aparentemente, el modelo en Análisis Computable es consistente con el modelo clásico, pero la definición de complejidad computacional de los reales no puede trasplantarse al modelo clásico.

¿Cómo juzgar la definición de complejidad computacional de los reales es natural o adecuada?

¿Y cómo trasplantar la definición de complejidad computacional de los reales en el modelo clásico?

XL _A__Aquí_Aquí
fuente
Para su primera pregunta, "natural" es una noción muy subjetiva y, dependiendo de la persona que pregunte, una u otra definición se considerará la más natural. En cuanto a "adecuado", depende: el modelo BSS parece adecuado para geometría computacional o geometría algebraica computacional, y el modelo en Análisis computable es más adecuado para ... ¡análisis computable! No entiendo la segunda pregunta.
Bruno
@Bruno, gracias por tu comentario, creo que el modelo en Análisis computable y no sé cómo aplicar la definición de complejidad computacional al cálculo del número real sobre el modelo clásico como Turing Machine, ya que la complejidad computacional del número real sobre el modelo en Análisis computable depende de la representación del mismo, es decir, la entrada para el cálculo del mismo.
XL _At_Here_There
3
Parece pensar que existe una noción de complejidad para el cálculo de números reales que es independiente de la representación de los reales. ¿Qué te hace pensar eso? Este tampoco es el caso en la complejidad clásica. Importa si tiene una máquina de cinta o RAM, importa si representa gráficos por listas de ayuda o matrices 01, etc.
Andrej Bauer
3
Pero no es cierto que la complejidad no dependa de la representación. Al cambiar a una representación estúpida, siempre puede arruinar la complejidad de un algoritmo. La pregunta que debe hacerse es: "¿Cuál es una buena representación de la entrada?" Para problemas discretos, esto es mucho más fácil de responder que para números reales, porque uno tiene una buena idea de lo que significa "no desperdiciar bits".
Andrej Bauer el
3
El modelo BSS parece adecuado para la geometría computacional . Vea mi respuesta a una pregunta relacionada . El modelo Real RAM utilizado por los geómetras computacionales es anterior a Blum, Shub y Smale en casi una década.
Jeff el

Respuestas:

13

No estoy exactamente seguro de cuál es la pregunta aquí, pero puedo tratar de decir un poco para aclarar posibles malentendidos.

En primer lugar, si estamos hablando de la complejidad de un mapa , no tiene sentido preguntar "¿Cuál es una buena representación para f:RR2f

f:ABA(a,f(a))f

RRR

  1. +×/||
  2. xkNp,q|xp/q|2k
  3. xyx<y
  4. (xn)n|xn+1xn|2nlimnxn

Existen viejos teoremas (consulte la introducción a este documento para obtener referencias) que explican por qué estas condiciones son las correctas. Estos teoremas también muestran que cualquiera de estas dos representaciones de reales son computacionalmente isomorfas, es decir, podemos traducirlas entre ellas con programas. Esto establece algunos criterios de corrección que arrojan ideas defectuosas.

Por ejemplo, escucho a la gente decir cosas como "los números racionales pueden representarse con información finita, así que usemos eso para los números racionales, y los números irracionales deberán representarse con información infinita". Este tipo de cosas no funciona porque rompe la cuarta condición anterior (considere un límite de números irracionales: ¿cómo sabrá que está convergiendo en un racional?).

Otro ejemplo que eliminan las condiciones anteriores es el modelo Blum-Shub-Smale porque en él no se pueden calcular límites de secuencias. Es mejor decir que el modelo BSS funciona en un subcampo ordenado discreto de reales (generado por cualquier parámetro que esté presente), no en los reales.

Entre las representaciones correctas de reales, algunos son más eficientes que otros, aunque este es un tema algo difícil de discutir porque los números reales son objetos infinitos. Matthias Schröder señaló que para una teoría razonable de la complejidad hay que prestar atención a las propiedades topológicas de la representación.

Finalmente, ¿cómo deberíamos medir la complejidad de un mapa , suponiendo que tengamos una buena representación de ? Debido a que está representado por una función o un flujo infinito de información, o algo así, deberíamos estar utilizando una de las nociones de complejidad de tipo superior . Cuál probablemente depende de la representación que esté utilizando.R x Rf:RRRxR

El modelo BSS también es un modelo de complejidad de circuito razonable en el que contamos las operaciones aritméticas. Es bueno tener en cuenta que este modelo no se trata de números reales, sino de otra cosa.

Andrej Bauer
fuente
2
Muchas gracias por su respuesta, y tantas referencias. Me siento incómodo con algunas nociones de complejidad computacional, permítanme leer la referencia y pensar por un tiempo, y dar un ejemplo, si puedo encontrar uno adecuado para explicar por qué estoy tan incómodo (esto suena divertido, pero mi experiencia me dice si me siento incómodo, debe haber algo singular)
XL _A__Here_There
44
En mi experiencia, sentirse incómodo con los nuevos conocimientos es una buena señal y, por lo general, es un requisito previo para la iluminación.
András Salamon
3

Otro modelo posiblemente para explorar, es el del modelo de RAM factible. Este es un modelo de RAM real modificado para computación real, RAM factible o un modelo de RAM modificado que utiliza operaciones aritméticas discretas y de valor real. Este modelo permite operaciones reales y discretas, y el modelo de Turing es intercambiable con él. El modelo de RAM factible tiene una precisión definida con incertidumbre, lo que significa que permite comparaciones de números reales solo hasta una incertidumbre variable 1 / (k + 1). Esto permite cálculos aproximados. Además, como afirman Vasco Brattkaa y Peter Hertlingb en Máquinas de acceso aleatorio real factibles , los modelos de Turing y los de RAM reales viables están relacionados. Todas las funciones computables en una máquina de Turing en el tiempo O ( t ) O ( t ) O ( t ) O ( t 2 l o g ( t ) l o g ( l o g ( t ) ) )<kO(t)son calculables en una RAM en el tiempo , y en el caso anverso hay algo de sobrecarga para la máquina de Turing que calcula la función (si la RAM real calcula la función en la TM calcula la función en . Como se señaló anteriormente, las consideraciones topológicas son útiles, no se sabe si hay algún contexto topológico desarrollado para este modelo de computación que permita cálculos reales, lo que tiene incertidumbre en precisiónO(t)O(t)O(t2log(t)log(log(t)))

usuario3483902
fuente
¿Podría dar alguna referencia para el modelo de RAM factible?
XL _At_Here_There
Ver arriba en el área, "... esta referencia indica ..." tiene un enlace al artículo.
usuario3483902
2
Gracias por señalar el trabajo de Brattka & Hertling, lo iba a mencionar para entonces lo olvidé. Solo me gustaría señalar que el modelo de RAM factible no incluye ninguna función de orden superior, en particular no puede calcular el límite de una secuencia de Cauchy (rápida), por lo que no lo consideraría como la implementación de "los reales" con precisión. Puede calcular un límite "en el nivel superior", por así decirlo (vea la parte del documento donde hablan sobre aproximaciones racionales de funciones).
Andrej Bauer el