Originally posted by: youngdae
Hi,
I have a question on removing redundant equality constraints of an LP problem. I'm using CPLEX callable library. What I'm doing is as follows:
1. Set all objective coefficients to zero.
2. Solve the LP problem using CPXlpopt().
3. Get basis status of columns and rows using CPXgetbase().
4. If an artificial variable is a basic variable (i.e., rstat [i] == CPX_BASIC && sense [i] == 'E'), call CPXpivot to pivot out the artificial variable from the basis. I called CPXpivot(env, lp, CPX_NO_VARIABLE, -i-1, CPX_AT_LOWER) to pivot it out.
5. If CPXpivot failed, then I assumed that the corresponding equality constraint is redundant and removed it. I think CPXpivot failed for a basic artificial variable only if the corresponding row has only zero values for nonbasic variables.
Would this procedure allow me to identify redundant equality constraints? I did an experiment, but it seems that the procedure does not correctly identify redundant equality constraints as the LP problem with redundant rows removed gave me an unbounded solution for a given objective coefficient which should not happen as the original LP has a finite optimal solution.
Any advice would be greatly appreciated.
#CPLEXOptimizers#DecisionOptimization