Originally posted by: SystemAdmin
CPLEX offers the FeasOpt tool, which should do something similar to what you want.
It has different modes that you can choose:
0 = find minimum-sum relaxation
1 = find optimal minimum-sum relaxation
2 = find minimum number of relaxations
3 = find optimal relaxation with minimum number of relaxations
4 = find minimum quadratic-sum relaxation
5 = find optimal minimum quadratic-sum relaxation
This means the following:
0: You will get a solution for which the sum of all violations is minimized.
1: Same as 0, but within the different solutions that all minimize the sum of violations, pick one that then optimizes the original objective function.
2: You will get a solution that violates the smallest number of constraints (but each of them can be violated by an arbitrary amount).
3: Same as 2 plus 1.
4: You will get a solution for which the sum of all squared violations is minimized.
5: Same as 4 plus 1.
Through the programming APIs you can also specify weights for the different constraints, so that violating one constraint is considered worse than violating some other constraint. See the documentation for CPXXfeasopt() and CPXXfeasoptext() for details.
Tobias
#CPLEXOptimizers#DecisionOptimization