How to handle multiple objectives or constraints?
Sometimes, you might have more than one objective or constraint in your linear programming problem. For example, you might want to maximize your profit and minimize your environmental impact, or you might have several budget or capacity constraints. In that case, you need to modify your problem formulation and your cutting plane method accordingly.
One way to handle multiple objectives is to use a weighted sum approach, where you assign a weight to each objective and combine them into a single objective function. For example, if you have two objectives, f1 and f2, you can write your objective function as w1*f1 + w2*f2, where w1 and w2 are the weights that reflect your preferences or trade-offs. Then, you can apply the cutting plane method to this single objective function as usual.
Another way to handle multiple objectives is to use a lexicographic approach, where you rank your objectives by their importance and solve them sequentially. For example, if you have two objectives, f1 and f2, and f1 is more important than f2, you can first solve the problem with f1 as the objective function and obtain an optimal solution x*. Then, you can add a constraint that f1(x) = f1(x*), and solve the problem with f2 as the objective function and obtain another optimal solution y*. Then, you can compare x* and y* and choose the one that satisfies your criteria. You can apply the cutting plane method to each subproblem as usual.
One way to handle multiple constraints is to use a slack variable approach, where you introduce a variable that measures the amount of violation or deviation from a constraint. For example, if you have a constraint of the form ax <= b, you can write it as ax + s = b, where s is the slack variable that represents the difference between b and ax. Then, you can add a penalty term to your objective function that depends on s, such as p*s or p*s^2, where p is a positive constant that reflects the cost of violating the constraint. Then, you can apply the cutting plane method to this modified problem as usual.
Another way to handle multiple constraints is to use a feasibility cut approach, where you add a cut that ensures that all the constraints are satisfied. For example, if you have a set of constraints of the form Ax <= b, you can add a cut of the form x'(Ax - b) >= 0, where x' is a vector of positive constants that reflects the importance or priority of each constraint. Then, you can apply the cutting plane method to this augmented problem as usual.