2. ¿Qué Es?
Teoría de la complejidad computacional se centra en la clasificación de problemas de
cálculo en función de su dificultad intrínseca, y relacionando esas clases entre sí. Un
problema computacional se entiende como una tarea que es, en principio, susceptible
de ser resuelta por un computador, que es equivalente a decir que el problema puede
ser resuelto mediante la aplicación mecánica de pasos matemáticos, tales como un
algoritmo.
Un problema es considerado como intrínsecamente difícil si su solución requiere de
importantes recursos, cualquiera que sea el algoritmo utilizado. La teoría formaliza esta
intuición, mediante la introducción de los modelos matemáticos de la computación para
estudiar estos problemas y la cuantificación de acuerdo a la cantidad de recursos
necesarios para resolverlos, como el tiempo y el almacenamiento.
3. Clasificación de los Problemas
Problema Indecidible: Es un problema de decisión para
la que se sabe que es imposible construir un único
algoritmo que siempre conduzca a una correcta
respuesta, sea esta, negativa o positiva.
Problema Decidible: por el contrario, un problema
decidible es el cual existe al menos un algoritmo para su
tratamiento. Además es posible que no tenga solución.
4. Problema Decidibles
Problemas Tratables: Problemas para los cuales existe un algoritmo de
complejidad polinomial. Se considera que un problema es tratable si se puede
resolver en tiempo polinomico O(nk) para algún k. El conjunto de estos
problemas se llama clase de complejidad P.
Problemas Intratables: Problemas para los que no se conoce ningún algoritmo
de complejidad polinomial. Esta característica lleva a un método de resolución
no determinista consistente en aplicar heurísticos para obtener soluciones
hipotéticas que se van desestimando (o aceptando) a ritmo polinómico. Los
problemas de esta clase se denominan NP (la N de no-deterministas y la P de
polinómicos).
5. Problema Decidibles
NP-Completo: Aunque cualquier solución dada a un problema de
este tipo puede ser verificada rápidamente, no hay manera eficaz
conocida para localizar una solución, la característica más notable
de los problemas NP-completos es que no se conoce ninguna
solución rápida a los mismos. Es decir, el tiempo requerido para
resolver el problema con cualquier algoritmo conocido
actualmente crese rápidamente así como el tamaño del
problema también.