Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los problemas que tienen una solucin con orden de complejidad lineal son los problemas
que se resuelven en un tiempo que se relaciona linealmente con su tamao.
Hasta el momento las computadoras resuelven problemas mediante algoritmos que tienen
como mximo una complejidad o coste computacional polinmico, es decir, la relacin
entre el tamao de los datos de entrada y su tiempo de ejecucin es polinmica. stos son
problemas agrupados en la clase P. Los problemas que no pueden ser resueltos por nuestras
computadoras (las cuales son Mquinas Determinsticas), que en general poseen costes
factorial o combinatorio pero que podran ser procesados por una mquina No-
Determinista, estn agrupados en la clase NP. Estos problemas no tienen una solucin
prctica, es decir, una mquina determinstica (como una computadora actual) no puede
resolverlos en un tiempo razonable.
Un problema dado puede verse como un conjunto de preguntas relacionadas, donde cada
pregunta se representa por una cadena de caracteres de tamao finito. Por ejemplo, el
problema factorizacin entera se describe como: Dado un entero escrito en notacin
binaria, retornar todos los factores primos de ese nmero. Una pregunta sobre un entero
especfico se llama una instancia.
Ejemplo, "Encontrar los factores primos del nmero 24" es una instancia del problema
factorizacin entera.
Ejemplos
Problemas de decisin.
La mayor parte de los problemas en teora de la complejidad tienen que ver con los
problemas de decisin, que corresponden a poder dar una respuesta positiva o negativa a un
problema dado. Por ejemplo, el problema SON AMIGOS se puede describir como: Dado
dos nmeros enteros, verificar si los nmeros son amigos o no. Un problema de decisin es
equivalente a un lenguaje formal, que es un conjunto de palabras de longitud finita en un
lenguaje dado. Para un problema de decisin dado, el lenguaje equivalente es el conjunto de
entradas para el cual la respuesta es positiva.
Los problemas de decisin son importantes porque casi todo problema puede ser
transformado en un problema de decisin. Por ejemplo el problema CONTIENE-
FACTORES descrito como: Dados dos enteros n y k, decidir si n tiene algn factor menor
que k. Si se puede resolver CONTIENE-FACTORES con una cierta cantidad de recursos, su
solucin se puede utilizar para resolver FACTORIZAR con los mismos recursos, realizando
una bsqueda binaria sobre k hasta encontrar el ms pequeo factor de n, luego se divide
ese factor y se repite el proceso hasta encontrar todos los factores.
Clases de complejidad.
La clase de complejidad NP. Es el conjunto de los problemas de decisin que pueden ser
resueltos por una mquina no determinista en tiempo polinmico. Esta clase contiene
muchos problemas que se desean resolver en la prctica, incluyendo el problema de
satisfacibilidad booleana y el problema del viajante, un camino Hamiltoniano para recorrer
todos los vrtices una sola vez. Todos los problemas de esta clase tienen la propiedad de
que su solucin puede ser verificada efectivamente.
La pregunta P=NP.
El saber si las clases P y NP son iguales es el ms importante problema abierto en Ciencias
de la Computacin terica.
Preguntas como esta motivan la introduccin de los conceptos de hard (difcil) y completo.
Un conjunto X de problemas es hard con respecto a un conjunto de problemas Y ( 'Y'
pertenecientes a NP) si X>Y o X=Y, es decir Y se puede escribir como un conjunto de
soluciones de los problemas X. En palabras simples, Y es "ms sencillo" que X. El trmino
sencillo se define precisamente en cada caso. El conjunto hard ms importante es NP-hard.
El conjunto X es completo para Y si es hard para Y y es tambin un subconjunto de Y. El
conjunto completo ms importante es NP-completo. En otras palabras, los problemas del
conjunto NP-completo tienen la caracterstica de que, si se llega a encontrar una solucin
en tiempo P para algn miembro del conjunto (cualquiera de los problemas de NP-
completo), entonces de hecho existe una solucin en tiempo P para todos los problemas de
NP-completo.
Otra pregunta abierta relacionada con el problema P = NP es si existen problemas que estn
en NP, pero no en P, que no sean NP-Completos. En otras palabras, problemas que tengan
que ser resueltos en tiempo polinomial no-determinista, pero que no puedan ser reducidos a
tiempo polinomial desde otros problemas con tiempo polinomial no-determinista. Uno de
tales problemas que se sabe que es NP pero no se sabe si es NP-completo, es el problema
de isomorfismo de grafos, un programa que decide si dos grafos son isomorfos (por
ejemplo: comparten las mismas propiedades). Se ha demostrado que si P NP entonces ese
programa existe.
Intratabilidad.
Los problemas que pueden ser resueltos en teora, pero no en prctica, se llaman
intratables. Qu se puede y qu no en la prctica es un tema debatible, pero en general slo
los problemas que tienen soluciones de tiempos polinomiales son solubles para ms que
unos cuantos valores. Entre los problemas intratables se incluyen los de EXPTIME-
completo. Si NP no es igual a P, entonces todos los problemas de NP-completo son tambin
intratables.
Para ver por qu las soluciones de tiempo exponencial no son tiles en la prctica, se puede
considerar un problema que requiera 2n operaciones para su resolucin (n es el tamao de la
fuente de informacin). Para una fuente de informacin relativamente pequea, n=100, y
asumiendo que una computadora puede llevar a cabo 1010 (10 giga) operaciones por
segundo, una solucin llevara cerca de 4*1012 aos para completarse, mucho ms tiempo
que la actual edad del universo.