(Estoy en el medio de mi primer curso cs teórico, así que me disculpo de antemano por lo que probablemente sea una pregunta estúpida).
Entonces, decimos que algún lenguaje L está en P, lo que significa que se puede construir una máquina de Turing que genera un 1 si x está en L y 0 de lo contrario; Además, la máquina funciona en tiempo polinómico. Entiendo esto.
Pero mucha gente dice que hay ciertos problemas en P que no me parecen problemas de decisión; por ejemplo, maximizar una función sujeta a restricciones lineales. ¿Qué significa que la "programación lineal" está en P? ¿Seguramente "encontrar el valor máximo" no es un problema de decisión?
fuente
Formalmente, la clase de funciones que se pueden calcular en tiempo polinómico se llama FP . La gente suele decir "P" en lugar de "FP", ya que la distinción es simplemente sintáctica y no se producirá una verdadera confusión.
fuente
Ya se ha hecho una pregunta muy similar en el tema " Clase de complejidad FNP ". Allí, el interrogador esencialmente preguntó la diferencia entre las clases de complejidad NP y FNP. Usted está preguntando la diferencia entre las clases de complejidad P y FP. En resumen, P y NP son clases de decisión, mientras que las versiones "F" (FP y FNP) son clases de función. Para obtener más información, consulte el tema citado anteriormente.
fuente
Los problemas que requieren una solución pueden convertirse en problemas de decisión si hay alguna forma de medir qué tan buena es una solución. La versión de decisión especifica que cualquier solución debe ser mejor que algún valor umbral. Por ejemplo, la versión de decisión de PROGRAMACIÓN LINEAL se obtiene preguntando si el programa lineal es factible.
fuente