Linear Programming and Generalizations