La teoría de la dualidad establece que para cada problema de programación lineal existe un problema dual asociado. El problema dual se puede formular a partir del problema primal cambiando los coeficientes de la función objetivo y las restricciones. Resolver el problema dual puede ayudar a reducir el esfuerzo computacional para resolver el problema primal.