El problema del camino más largo en un grafo es NP-completo y no se puede resolver en tiempo polinómico a menos que P=NP. Sin embargo, se puede resolver mediante programación dinámica de forma eficiente en grafos dirigidos acíclicos utilizando selección topológica. La programación dinámica reduce el tiempo de ejecución al utilizar subproblemas solapados y subestructuras óptimas siguiendo el principio de optimalidad de Bellman. Implica dividir el problema en subproblemas más pequeños resolviéndolos de forma ascend