definition of linear programming problem