¿Cuál es la teoría de la complejidad computacional?
La teoría de la complejidad computacional es un área de matemáticas e informática que se refiere a los recursos necesarios para resolver problemas en un sistema informático. Hay varias técnicas disponibles para determinar los requisitos de recursos de un problema. Es posible que algunos problemas no sean factibles en los sistemas informáticos existentes debido a sus demandas de recursos. Los investigadores clasifican los problemas por dificultad y pueden dividir los cálculos en problemas polinomiales (P) versus problemas polinomiales (NP) no terministas.
Un cálculo requiere recursos como tiempo, espacio de almacenamiento y hardware. Un sistema informático puede tener limitaciones que hacen que un problema funcione funcionalmente imposible de resolver porque no tiene los recursos disponibles. A medida que mejora la tecnología informática, un problema previamente insoluble podría solucionarse con la ayuda de la nueva tecnología e investigación en el campo de la teoría de la complejidad computacional. La solvabilidad de un problema no está necesariamente determinada por su complejidad sino en elAlgoritmos utilizados para resolverlo.
En la teoría de la complejidad computacional, un problema P es uno que puede resolverse en el tiempo polinomial con un algoritmo directo. Todavía puede requerir recursos sustanciales, pero es solucionable y comprobable por computadora. Tales problemas podrían considerarse tan rápido solucionable siempre que una computadora tenga los recursos disponibles para manejar los cálculos necesarios.
Los problemasNP son más complejos. No es posible aplicar un solo algoritmo, y podría ser necesario utilizar opciones más avanzadas, como máquinas de Turing paralelas que pueden explorar varias opciones. El problema puede ser solucionable de esta manera, pero requerirá sustancialmente más recursos. Tales problemas pueden ser más fáciles para los operadores humanos que son capaces de un pensamiento lógico avanzado, porque el punto de inflexión es a menudo de la lógica en lugar de la gran dificultad de cálculo. El vendedor de viajesBlem, en el que el objetivo es encontrar la ruta más eficiente entre varias ciudades a lo largo de una ruta, es un ejemplo clásico de un problema de NP en la teoría de la complejidad computacional.
La clasificación de los problemas de P versus NP a través de la teoría de la complejidad computacional puede ser una tarea compleja, y los problemas pueden cambiar de un lado a otro a través de la división. Un pequeño conjunto de problemas computacionales no encajan perfectamente en ninguna de las categorías y a veces no se clasifican como ninguno de los dos para reflejar esto. Eventualmente podría ser posible desarrollar un algoritmo para resolver un problema de NP y, en algunos casos, podría aplicarse a otros problemas que tienen una estructura similar. En otros, sin embargo, podría ser específico del problema. El proceso de explorar tales programas y desarrollar enfoques para resolverlos es un área importante de matemáticas e informática que contribuye al desarrollo de sistemas informáticos avanzados y de alta potencia.