Este documento resume conceptos fundamentales de la teoría de la complejidad computacional, incluyendo las clases P, NP, NP-completo y NP-difícil. Explica la hipótesis P vs NP, y provee ejemplos de problemas que pertenecen a estas clases. También discute la noción de problemas que son resolubles en tiempo polinomial vs exponencial, y la importancia de determinar si P es igual a NP.