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?
Respuestas:
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:R→R 2–√ f
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:R→R R x∈R
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.
fuente
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 ) ) )<k O(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)))
fuente