1.1 Concepto de complejidad de algoritmos**Teoria de la complejidad computacional:Es la parte de la teoria de la computacion que estudia los recursos necesarios durante el calculo para resolver un problema.
Estos recursos son:
- Tiempo
- Espacio
== clases de complejidad ==Los problemas de decisión (aquellos donde la respuesta posible es si o no)
se clasifican en conjuntos de complejidad comparables que son llamados clases de complejidad.
A) Clase de complejidad P.
Es el conjunto de los problemas de decisión que pueden ser resueltos en tiempo polinomico por una maquina de Turing , lo que corresponde a problemas que pueden ser resueltos aun en el peor de sus casos
Ejemplo:
• Saber si un numero es primo o no (programa 1)
• Decidir si una frase pertenece a un conjunto dado de frases
B) Clase de complejidad NP.
Es el conjunto de los problemas de decisión que puedes ser resueltos por una maquina de Turing no determinista en tiempo polinomico. Los problemas de esta clase tienen la propiedad de que su solucion puede ser verificada.
Ejemplo
• El problema del agente viajero. (programa 2)
• El problema de satisfaccionalidad booleana.
C) Clase de complejidad NP-Completo.
Es el subconjunto de los problemas de decisión en NP que se destacan por su extrema complejidad en la cual algunos de ellos en la actualidad no han encontrado una solucion satisfactoria.
Ejemplo
• La suma de subconjuntos dado un conjunto de 5 enteros ¿existe un subconjunto no vacio cuyos elementos sea 0?
• ¿dos grafos son isomorfos y se pueden transformar uno en el otro simplemente renombrando sus vértices?
Diagrama de relación entre las clases de complejidad
Pregunta ¿ las clases P y NP son diferentes?
El clan mathematics institut ofrece un millon de doles a quien sea ca[az de responder satisfactoriamente a esa pregunta!