¿Existen clases de complejidad establecidas con números reales?


14

Un estudiante recientemente me pidió que verificara una prueba de dureza NP para ellos. Realizaron una reducción en la línea de:

Reduzco este problema P que se sabe que es NP completo a mi problema P (con una reducción múltiple de tiempo múltiple), por lo que P es NP-duro.

Mi respuesta fue básicamente:

Como P tiene instancias con valores de R , trivialmente no es computable por Turing, por lo que puede omitir la reducción.

Si bien es formalmente cierto, no creo que este enfoque sea perspicaz: ciertamente nos gustaría poder capturar la "complejidad inherente" de un problema de decisión (u optimización) con valor real, ignorando las limitaciones que enfrentamos al tratar con problemas reales. números; investigar estos temas es para otro día.

Por supuesto, no siempre es tan fácil como decir: "la versión discreta de Subset Sum es NP-complete, por lo que la versión continua es 'NP-hard' también". En este caso, la reducción es fácil, pero hay casos famosos de que la versión continua es más fácil, por ejemplo, programación lineal vs.

Se me ocurrió que el modelo RAM naturalmente se extiende a números reales; deje que cada registro almacene un número real y amplíe las operaciones básicas en consecuencia. El modelo de costo uniforme todavía tiene sentido, tanto como en el caso discreto, de todos modos, mientras que el modelo logarítmico no lo tiene.

Entonces, mi pregunta se reduce a: ¿existen nociones establecidas de complejidad de los problemas de valor real? ¿Cómo se relacionan con las clases discretas "estándar"?

Las búsquedas en Google arrojan algunos resultados, por ejemplo, esto , pero no tengo forma de decir qué está establecido y / o es útil y qué no.


1
Puede encontrar interesante "Complejidad y computación real" amazon.com/Complexity-Real-Computation-Lenore-Blum/dp/…
Kurt Mueller

Me parece que su respuesta a su estudiante no fue justificada por una simple razón: cualquier cálculo que estemos acostumbrados a ver en función de los reales también puede realizarse utilizando reales computables . No sé si esta es una respuesta que puede usarse para el propósito de su estudiante, pero al menos debería eliminar la falta de argumento de computabilidad de Turing. Desafortunadamente, no soy lo suficientemente experto en estos temas para desarrollarlo aún más.
babou

@babou En lo que respecta a la computabilidad, esa puede ser una restricción razonable (¡pero no obstante, tendrían que indicarla!). Sin embargo, ¿qué pasa con la complejidad?
Raphael

@Raphael Mi punto es en realidad que ni siquiera es una restricción, y no necesita ser declarado. Es simplemente inevitable. Los únicos reales que puede considerar en un cálculo son los reales computables (Tesis de Church-Turing). Aparentemente, lo bueno es que no cambia ninguna de las matemáticas relevantes, con el cuidado adecuado. Ir más allá de los reales computables es, como usar niveles más altos de la jerarquía de Turing, una especulación fascinante, con probablemente poco impacto en algo real (juego de palabras inevitable).
babou

Respuestas:


8

Si. Existen.

Existe el modelo RAM / BSS real mencionado en la otra respuesta. El modelo tiene algunos problemas y AFAIK no hay mucha actividad de investigación al respecto. Podría decirse que no es un modelo realista de computación .

La noción más activa de computabilidad real es la de un modelo de computación de tipo superior. La idea básica es que defina la complejidad para funciones de tipo superior y luego utilice funciones de tipo superior para representar números reales.

El estudio de la complejidad de las funciones de tipo superior se remonta al menos a [1]. Para trabajos recientes, consulte los documentos de Akitoshi Kawamura sobre la complejidad de los operadores reales.

La referencia clásica para la complejidad de las funciones reales es el libro de Ker-I Ko [2]. El capítulo 6, el libro más reciente de Klause Weihrauch [3] también analiza la complejidad de la compilación real (pero está más centrada en la computabilidad que en la complejidad).

  • [1] Stephen Cook y Bruce Kapron, "Caracterizaciones de los funcionales básicos viables de tipo finito", 1990.

  • [2] Ker-I Ko, "Complejidad computacional de las funciones reales", 1991.

  • [3] "Análisis computable" de Klaus Weihrauch, 2000.


¿Qué hace que el modelo de función de tipo superior sea más realista que el modelo de RAM real?
Raphael

1
@Raphael, creo que lo expliqué en la pregunta vinculada. Si desea más a través del tratamiento, hay varios, uno es el capítulo 9 de Weirauch. IIRC, otro bueno es un artículo de Tucker y Stolenberg-Hansen.
Kaveh

1
En mi opinión, el modelo de RAM real tiene dos problemas principales: por un lado, carece de la noción de aproximación racional de precisión arbitraria de números reales, que es posiblemente su propiedad principal, por otro lado, permite la comparación de números reales que AFAIK nadie conoce Cómo hacerlo en la práctica. Como resultado, algunas funciones reales que consideramos computables de manera eficiente en la práctica no son computables en el modelo, mientras que algunas funciones reales computables de manera eficiente en el modelo no son computables en absoluto en la práctica.
Kaveh

@Kaveh Me preocupa la imprecisión de toda la discusión, en la pregunta y en las respuestas. ¿Estamos hablando de reales incontables tradicionales, o de los reales computables. Desde su último comentario, está hablando de "funciones reales que consideramos eficientemente computables en la práctica", por lo que tiendo a creer que se trata de reales computables. ¿Qué quieres decir realmente?
babou

8

El modelo que describe se conoce como el modelo Blum-Shub-Smale (BSS) (también modelo Real RAM) y, de hecho, se utiliza para definir clases de complejidad.

Algunos problemas interesantes en este ámbito son las clases , N P R , y por supuesto la cuestión de si P R = N P R . Por P R m variables, y p 1 , . . . , P nR [ x 1 , . . . , x n ] de grado como máximo 2, y cada polinomio tiene como máximo 3 variables. La pregunta de si existe una solución real común R nPRNPRPRNPRPR queremos decir que el problema es polinomialmente decidible, es que el problema es polinomialmente verificable. Hay preguntas de dureza / integridad acerca de la clase N P R . Un ejemplo de un problema completo de N P R es el problema de Q P S , sistema polinómico cuadrático, donde la entrada es polinomios reales enNPRNPRNPRQPSmp1,...,pn R[x1,...,xn]Rntal que p1(a),p2(a),...pn(a)=0. Este es un problema completo de NPR

Pero, lo que es más interesante, se ha trabajado en la relación entre (Pruebas comprobables de forma probalística), sobre los Reales, es decir, la clase P C P R , y cómo se relaciona con los modelos de cálculo algebraico. El modelo BSS abarca todos los N P sobre reales. Esto es estándar en la literatura, y lo que sabemos hoy es que N P R tiene "pruebas largas transparentes" y "pruebas cortas transparentes". Por "pruebas largas transparentes" se implica lo siguiente: N P R está contenido en P C P R ( p o l yPCPPCPRNPNPRNPR . También hay una extensión que dice que la "versión corta casi (aproximada)" también es cierta. ¿Podemos estabilizar la prueba y detectar fallas inspeccionando considerablemente menos componentes (reales) que n ? Esto lleva a preguntas sobre la existencia de ceros para (sistema de) polinomios univariados dados por el programa de línea recta. Además, por "pruebas largas transparentes" queremos decirPCPR(poly,O(1))n

  1. "transparente" - Solo, para ser leído,O(1)

  2. largo: número superpolinómico de componentes reales.

La prueba está vinculada a , y una forma segura de ver los problemas valorados reales es cómo podría estar relacionado con la Suma de Subconjuntos, incluso los algoritmos de aproximación para los problemas valorados reales serían interesantes, como para la optimización, programación lineal que conocemos está en la clase F P , pero sí, sería interesante ver cómo la aproximabilidad podría afectar la integridad / dureza para el caso de problemas de N P R. Además, otra pregunta sería la N P R = c o - N P R ? 3SATFPNPRNPR = co-NPR

Al pensar en la clase , hay clases de conteo también definidas para permitir el razonamiento sobre la aritmética polinómica. Mientras que # P es la clase de funciones f definidas sobre { 0 , 1 } N para las cuales existe una máquina de Turing de tiempo polinomial M y un polinomio p con la propiedad que n N , y x { 0 , 1 } n , f ( x )NPR#Pf{0,1} NMpnNx{0,1}nf(x)cuenta el número de cadenas { 0 , 1 } p ( n ) que Turing Machine M acepta { x , y } . Para los reales, ampliamos esta idea, hay máquinas BSS aditivas: máquinas BSS que solo suman y multiplican (sin divisiones, sin restas). Con las máquinas BSS aditivas (los nodos en la computación solo permiten la suma y la multiplicación), el modelo para # P se convierte en uno en el que el recuento está sobre los vectores que las máquinas BSS aditivas aceptan. Entonces, la clase de conteo es # P a d dy{0,1}p(n)M{x,y}#P#Padd Esta clase es útil en el estudio de los números de Betti, y también la característica de Euler.


La máquina real-RAM (Random Access Machine), o BSS (Blum-Shub-Smale) es el modelo, mencionado anteriormente, es ampliamente aceptado como norma para razonar sobre estas clases.
usuario3483902

No, esa afirmación es absolutamente falsa. Por ejemplo, eche un vistazo a CCA-Net y vea cuántos investigadores están usando ese modelo.
Kaveh

Bueno, los modelos utilizados para las clases de complejidad en la publicación usan el modelo BSS, y a medida que pasa el tiempo puede haber otros modelos, ¿esos otros modelos funcionan con las clases de complejidad en la publicación? Por cierto, el comentario fue una aclaración sobre los modelos utilizados en las clases en cuestión, que la publicación abordó, por lo que no hubo aclaraciones sobre si hay otros modelos. Una vez más, la aclaración fue sobre los modelos utilizados en las clases, no hubo reclamo.
user3483902
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.