[Clp] Problem infeasible after fast dual although only bound changed?

John J Forrest jjforre at us.ibm.com
Tue Jul 21 10:14:16 EDT 2009


Sebastian,

If you want the duals updated then it should be startFastDual(2) - see
OsiClpSolverInterface.hpp;

John Forrest


                                                                                             
  From:       "Sebastian Theophil" <stheophil at think-cell.com>                                
                                                                                             
  To:         <clp at list.coin-or.org>                                                         
                                                                                             
  Date:       07/21/2009 07:33 AM                                                            
                                                                                             
  Subject:    [Clp] Problem infeasible after fast dual although only bound      changed?     
                                                                                             
  Sent by:    clp-bounces at list.coin-or.org                                                   
                                                                                             





Hi,


I have a very simple primal degenerate LP problem:

\Problem name:

Minimize
obj: x2
Subject To
cons0:  x0 + x2 >= -0
cons1:  - x0 + x2 >= -10
cons2:  x1 + x2 >= -0
cons3:  - x1 + x2 >= -10
Bounds
 x0 Free
 x1 Free
 x2 Free
End

The primal solution is (5, 5, -5), but there are two dual solutions
(0.5, 0.5, 0, 0) and (0, 0, 0.5, 0.5).
The code below reads the file, searches a dual positive variable and
changes the RHS of the associated constraint. The constraint can no
longer be binding, and the dual solution should change  solution after a
resolve. This works as expected without startFastDual.

If startFastDual is active, the dual solution doesn't change though
although it is no longer feasible.

                         OsiClpSolverInterface solver;
                         solver.readLp("C:\\primaldegenerate1.lp");
                         solver.initialSolve();

                         solver.startFastDual(0);

                         int nRow=0;
                         for(; nRow<solver.getNumRows(); ++nRow) {

if(abs(solver.getRowPrice()[nRow])>gvEPSILON_CONSTRAINT) {
                                                 break;
                                     }
                         }

                         solver.setRowLower( nRow, solver.getRowLower
()[nRow]-1.0
);
                         solver.resolve();
                         solver.stopFastDual();


Is this a bug or am I doing sth wrong? I thought bound changes inside
fast dual were allowed. What would be the fastest way to resolve the
system after such a change?


Thanks,
Sebastian

--
Sebastian Theophil . stheophil at think-cell.com
Software Engineer

think-cell Software GmbH . Invalidenstr. 34 . 10115 Berlin, Germany
http://www.think-cell.com . phone +49-30-666473-10 . toll-free (US)
+1-800-891-8091
Directors: Dr. Markus Hannebauer, Dr. Arno Schoedl . Amtsgericht
Berlin-Charlottenburg, HRB 85229


_______________________________________________
Clp mailing list
Clp at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/clp

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20090721/9234eb19/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/clp/attachments/20090721/9234eb19/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ecblank.gif
Type: image/gif
Size: 45 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/clp/attachments/20090721/9234eb19/attachment-0001.gif>


More information about the Clp mailing list