Successive linear programming