Una razón por la que vemos diferentes complejidades de aproximación para los problemas de NP completo es que las condiciones necesarias para NP completo constituyen una medida de grano muy grueso de la complejidad de un problema. Puede estar familiarizado con la definición básica de un problema ser NP-completo:Π
- está en NP, yΠ
- Para cualquier otro problema en NP, podemos convertir una instancia x de Ξ en una instancia y de Π en tiempo polinómico, de modo que y sea una instancia sí de Π si y solo si x es una instancia sí de Ξ .ΞXΞyΠyΠXΞ
Considere la condición 2: todo lo que se requiere es que podamos tomar y convertirlo en algo y que conserve la respuesta sí / no de "bit único". No hay condiciones sobre, por ejemplo, el tamaño relativo de los testigos para el sí o el no (es decir, el tamaño de la solución en el contexto de optimización). Entonces, la única medida que se usa es el tamaño total de la entrada que solo da una condición muy débil en el tamaño de la solución. Entonces es bastante "fácil" convertir un Ξ en un Π .XyΞΠ
Podemos ver la diferencia en varios problemas de NP completo al observar la complejidad de algunos algoritmos simples. -Coloring tiene una fuerza bruta O ( k n ) (donde n es el tamaño de entrada). Para k -Dominating Set, un enfoque de fuerza bruta toma O ( n k ) . Estos son, en esencia, los mejores algoritmos exactos que tenemos. k -Vertex Cover sin embargo tiene una O muy simple ( 2 k n c )kO ( knorte)nortekO ( nk)kO ( 2knortedo)algoritmo (elija una arista, ramifique en qué punto final incluir, marque todo cubierto, continúe hasta que no tenga aristas sin marcar o alcance su presupuesto de y bactrack). Bajo reducciones polinomiales de tiempo múltiple (reducciones de Karp, es decir, lo que estamos haciendo en la condición 2 anterior), estos problemas son equivalentes.k
Cuando comenzamos a abordar la complejidad con herramientas incluso un poco más delicadas (complejidad de aproximación, complejidad parametrizada, cualquier otra que no se me ocurra), las reducciones que utilizamos se vuelven más estrictas, o más bien, más sensibles a la estructura de la solución, y las diferencias comienzan a aparecer; -Vertex Cover (como mencionó Yuval) tiene una aproximación simple de 2 (pero no tiene un FPTAS a menos que algunas clases de complejidad colapsen), k -Dominating Set tiene un algoritmo de aproximación ( 1 + log n ) (pero no ( c log n ) -aproximación para algunos c > 0kk( 1 + logn )( c logn )c > 0), y la aproximación realmente no tiene ningún sentido para la versión sencilla de -Coloring.k