2. Teoría de la Complejidad Computacional
La Teoría de la Complejidad Computacional es una rama de la teoría de la
computación que se centra en la clasificación de los problemas computacionales de
acuerdo a su dificultad inherente, y en la relación entre dichas clases de
complejidad.
Un problema se cataloga como "inherentemente difícil" si su solución requiere de
una cantidad significativa de recursos computacionales, sin importar el algoritmo
utilizado. La teoría de la complejidad computacional formaliza dicha aseveración,
introduciendo modelos de cómputo matemáticos para el estudio de estos problemas
y la cuantificación de la cantidad de recursos necesarios para resolverlos, como
tiempo y memoria.
5. Problemas de Clase P
• Este tipo de problema se consideran problemas tratable ya
que son abordados en la practica
• P es conocido por contener muchos problemas naturales,
incluyendo las versiones de decisión de programa lineal,
cálculo del máximo común divisor, y encontrar una
correspondencia máxima.
6. Problemas de Clase NP
• Es el conjunto de problemas que pueden ser resueltos en
tiempo polinómico por una máquina de Turing no
determinista.
• contiene muchos problemas de búsqueda y de optimización
para los que se desea saber si existe una cierta solución o si
existe una mejor solución que las conocidas.
7. Problemas de Clase NP-Completo
• Estos problemas se caracterizan por ser todos "iguales" en el
sentido de que si se descubriera una solución P para alguno
de ellos, esta solución sería fácilmente aplicable a todos ellos