29 votos

¿Un lenguaje de programación que sólo puede crear algoritmos con tiempo de ejecución polinómico?

¿Ha construido alguien un lenguaje de programación que pueda construir todos los algoritmos de P, y ningún otro?

Me interesa que esta restricción provenga naturalmente de la sintaxis, en lugar de ser una máquina de Turing normal con un temporizador.

7 votos

¡Buena pregunta! Pero probablemente más bien respondida en CSTheory StackExchange : cstheory.stackexchange.com

3 votos

¿Por qué te opones al método del cronómetro? ¿No proporciona una manera de satisfacer su requisito formal sintácticamente, mientras que también calcula claramente exactamente los algoritmos de tiempo polinómico?

4 votos

Véase también la pregunta relacionada: mathoverflow.net/questions/28056/

30voto

Sekhat Puntos 2555

Sí, hay todo un campo de investigación dedicado a este problema: se llama "teoría de la complejidad implícita". La idea general es utilizar un cálculo lambda basado en la lógica lineal. La restricción de linealidad de los términos lambda permite controlar la complejidad de la eliminación de cortes (y, por tanto, de la evaluación), lo que da lugar a lenguajes de programación naturales que son completos para varias clases de complejidad (como PTIME, PSPACE o LOGSPACE).

8voto

thekidder Puntos 2237

Si he entendido bien el resumen del artículo, .

4voto

Amir Puntos 3237

Quizá los ejemplos más naturales procedan de diversas extensiones de SQL (por supuesto, si los lenguajes de consulta cuentan). Por ejemplo, Datalog sobre relaciones ordenadas es igual a P. En general, estos lenguajes se sitúan en torno a P, pero para la mayoría de ellos es realmente difícil dar caracterizaciones exactas.

0 votos

SQL es famoso por tener tiempos de ejecución muy diferentes dependiendo de detalles aparentemente sin importancia en la llamada.

3voto

Andrea Puntos 138

Otra perspectiva (y en mi opinión más natural) es la siguiente teoría descriptiva de la complejidad (véase también este artículo de Wikipedia ).

Estudian la cuestión desde una perspectiva distinta a la mencionada por Neel. Existen varios lenguajes que capturan exactamente las funciones computables en tiempo polinómico. Uno de los más famosos es FO+LFP .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X