Infeasibility repair
In some cases, identifying the cause of infeasibility, even if the search is based on IISs may prove very demanding and time consuming. In such cases, a solution that violates the constraints and bounds minimally can greatly assist modeling. This functionality is provided by the infeasibility repair utility of Xpress Optimizer. Based on preferences provided by the user, the Optimizer relaxes the constraints and bounds in the problem by introducing penalized deviation variables associated with selected rows and columns. The preference values reflect the modeler's will to relax the corresponding bound or constraint right-hand-side (the penalty value associated is the reciprocal of the preference), a zero preference means no relaxation.
»Scenario 1 (Mosel)
The infeasibility repair functionality in Mosel has two forms, the simpler one lets you define a preference per constraint type (=, ≤, ≥), with its detailed form you can state a preference for every single constraint. The latter is used in the example implementation in file examples\getting_started\Mosel\foliorep.mos. This example performs the infeasibility repair algorithm several times, each time with a different value for the parameter delta to analyze the effect of extra violations of the constraints and bounds to the underlying model.
»Scenario 2 (BCL)
The BCL programs foliorep.[c|cxx|java] in directory examples\bcl\[C|Cxx|Java]\UGExpl show how to use the infeasibility repair functionality of the Xpress Optimizer Library with a model defined in BCL. In analogy to the Mosel model, this example uses the weighted infeasibility repair algorithm that lets you specify which constraints to relax, and loops over different values for the penalization factor delta.
Further information
- ``Xpress Optimizer Reference Manual'', 3.2 `Infeasibility'
- Examples of algorithms modifying constraint definitions in Mosel: ``Xpress Mosel User Guide'', Chapter 12: `Extensions to Linear Programming'
- Functions for modifying constraint definitions in BCL: ``BCL Reference Manual'', 2.3 `Constraints'
- Python: see examples in the ``Python interface manual'', Chapter 6
© 2001-2020 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.