linear programming machine learning