Desde el punto de vista de alguien que escribe código para ganarse la vida, tener una buena familiaridad con la integridad de NP es importante para:
1. Reconociendo cuando estás ladrando el árbol equivocado
Los problemas NP-completos son los problemas NP-hard más fáciles y, sin embargo, por lo que podemos decir, lleva tiempo exponencial al tamaño de la entrada para resolver un problema de decisión. Entonces, como una cuestión práctica si puede demostrar que el problema que está tratando de resolver es NP-difícil (por lo general, mostrando que una solución eficiente también daría una solución eficiente a algún problema NP-completo), usted sabe que puedes dejar de buscar un algoritmo eficiente para resolverlo exactamente en general. En su lugar, puede seleccionar entre algoritmos conocidos que prometen buenas aproximaciones para problemas de optimización NP-hard y continuar con el resto de su proyecto.
2. Encontrar el árbol correcto
Debido a que las computadoras se usan a menudo para atacar problemas NP-hard, se han desarrollado solucionadores especializados que pueden resolver eficientemente algunas instancias de problemas NP-hard. Reconocer que su problema es NP-complete es el primer paso para encontrar una herramienta existente (SAT, ILP, SMT, CSP, por nombrar algunas) que podría ayudarlo a encontrar soluciones exactas en algunos casos en los que de otro modo habría tenido que conformarse con un aproximación.