XPRSrepairinfeas
XPRSrepairinfeas |
Purpose
Provides a simplified interface for
XPRSrepairweightedinfeas.
Synopsis
int XPRS_CC XPRSrepairinfeas (XPRSprob prob, int *scode, char pflags, char oflags, char gflags, double lrp, double grp, double lbp, double ubp, double delta);
Arguments
prob
|
The current problem.
|
||||||||||||||
scode
|
The status after the relaxation:
|
||||||||||||||
pflags
|
The type of penalties created from the preferences:
|
||||||||||||||
oflags
|
Controls the second phase of optimization:
|
||||||||||||||
gflags
|
Specifies if the global search should be done:
|
||||||||||||||
lrp
|
Preference for relaxing the less or equal side of row.
|
||||||||||||||
grp
|
Preference for relaxing the greater or equal side of a row.
|
||||||||||||||
lbp
|
Preferences for relaxing lower bounds.
|
||||||||||||||
ubp
|
Preferences for relaxing upper bounds.
|
||||||||||||||
delta
|
The relaxation multiplier in the second phase -1. For console use
-d value. A positive value means a relative relaxation by multiplying the first phase objective with (
delta-1), while a negative value means an absolute relaxation, by adding
abs(delta) to the first phase objective.
|
Related controls
Integer
Forced algorithm selection (default for repairinfeas is primal).
|
Example
READPROB MYPROB.LP REPAIRINFEAS -a -d 0.002
Further information
1. A row or bound is relaxed by introducing a new nonnegative variable that will contain the infeasibility of the row or bound. Suppose for example that row a
Tx = b is relaxed from below. Then a new variable (infeasibility breaker)
s≥0 is added to the row, which becomes a
Tx +s = b. Observe that a
Tx may now take smaller values than b. To minimize such violations, the weighted sum of these new variables is minimized.
2. A preference of 0 results in the row or bound not being relaxed.
3. A negative preference indicates that a quadratic penalty cost should be applied. This can specified on a per constraint side or bound basis.
4. Note that the set of preferences are scaling independent.
5. If a feasible solution is identified for the relaxed problem, with a sum of violations p, then the sum of violations is restricted to be no greater than (
1+delta)
p, and the problem is optimized with respect to the original objective function. A nonzero delta increases the freedom of the original problem.
6. Note that on some problems, slight modifications of delta may affect the value of the original objective drastically.
7. The default value for delta in the console is 0.001.
8. Note that because of their special associated modeling properties, binary and semi-continuous variables are not relaxed.
9. The default algorithm for the first phase is the simplex algorithm, since the primal problem can be efficiently warm started in case of the extended problem. These may be altered by setting the value of control
DEFAULTALG.
10. If
pflags is set such that each penalty is the reciprocal of the preference, the following rules are applied while introducing the auxiliary variables:
Preference | Affects | Relaxation | Cost if pref.>0 | Cost if pref.<0 |
---|---|---|---|---|
lrp | = rows | aTx - aux_var = b | 1/lrp*aux_var | 1/lrp*aux_var2 |
lrp | <= rows | aTx - aux_var <= b | 1/lrp*aux_var | 1/lrp*aux_var2 |
grp | = rows | aTx + aux_var = b | 1/grp*aux_var | 1/grp*aux_var2 |
grp | >= rows | aTx + aux_var >= b | 1/grp*aux_var | 1/grp*aux_var2 |
ubp | upper bounds | xi - aux_var <= u | 1/ubp*aux_var | 1/ubp*aux_var2 |
lbp | lower bounds | xi + aux_var >= l | 1/lbp*aux_var | 1/lbp*aux_var2 |
11. If an irreducible infeasible set (IIS) has been identified, the generated IIS(s) are accessible through the IIS retrieval functions, see
NUMIIS and
XPRSgetiisdata.
Related topics