[Coin-lpsolver] primal/dual tolerance

magh at lehigh.edu magh at lehigh.edu
Mon Nov 22 10:52:45 EST 2004


That worked - and it now solves with no errors.

Cheers,
Matt


> Matt,
> 
> Scaling has to be turned off with a hint to Osi so
> 
> si.setHintParam(OsiDoScale,false,OsiHintTry);
> 
> John
> 
> 
>                                                                            
>              magh at lehigh.edu                                               
>              Sent by:                                                      
>              coin-lpsolver-adm                                          To 
>              in at www-124.southb                                             
>              ury.usf.ibm.com           coin-lpsolver at www-124.southbury.usf 
>                                        .ibm.com                            
>                                                                         cc 
>              11/22/2004 10:31                                              
>              AM                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                    Subject 
>                                        Re: [Coin-lpsolver] primal/dual     
>                                        tolerance                           
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
> 
> 
> 
> 
> Hi John,
> 
> Yes that does look like the case.
> 
> printf("\nCLP problem status: %d, second status: %d\n",
>               si.getModelPtr()->problemStatus(),
>               si.getModelPtr()->secondaryStatus());
> CLP problem status: 0, second status: 2
> 
> 2 - scaled problem optimal - unscaled problem has primal infeasibilities
> 
> I tried turning off scaling - but got the same results:
> si.getModelPtr()->scaling(0);
> 
> Is that the right way to turn if off?
> 
> I compiled Clp with OptLevel=-O.
> 
> My machine info:
> 
> [magala at ordlnx2 TEST]$ uname -a
> Linux 2.6.5-1.358smp #1 SMP Sat May 8 09:25:36 EDT 2004 i686 i686 i386
> GNU/Linux
> 
> [magala at ordlnx2 TEST]$ gcc -v
> Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/specs
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --enable-shared --enable-threads=posix
> --disable-checking --disable-libunwind-exceptions --with-system-zlib
> --enable-__cxa_atexit --host=i386-redhat-linux
> Thread model: posix
> gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)
> 
> Thanks,
> Matt
> 
> 
> 
> >
> >
> >
> >
> > Matt,
> >
> > I was unable to reproduce the error but I would guess it is a tolerance
> > issue.  Osi does not provide for reporting the situation where the scaled
> > problem is optimal but when the scaling factors are taken off the problem
> > is slightly infeasible.  Clp allows that and sets the primary status to
> say
> > optimal and a secondary status value of 2.  This could be what is
> > happening.  What happens if you switch off scaling?
> >
> > John
> >
> >
> >
> 
> >              Matthew Galati
> 
> >              <magh at lehigh.edu>
> 
> >              Sent by:
> To
> >              coin-lpsolver-adm
> 
> >              in at www-124.southb
> coin-lpsolver at www-124.southbury.usf
> >              ury.usf.ibm.com           .ibm.com
> 
> >
> cc
> >
> 
> >              11/21/2004 02:47
> 
> >              PM
> 
> >
> 
> >
> 
> >
> Subject
> >                                        [Coin-lpsolver] primal/dual
> 
> >                                        tolerance
> 
> >
> 
> >
> 
> >
> 
> >
> 
> >
> 
> >
> 
> >
> >
> >
> >
> > Hi CLP,
> >
> > Is this a bug, or just a tolerance issue?
> >
> > Solving the initial LP relaxation for dsbmip (from MIPLIB), using
> > default CLP, the LP solution violates three constraints at 1.0e-5.
> >
> > row 462, lhs: -0.0000143764, LB: 0.0000000000
> > ind: 582, el: -1.0000000000, sol: 0.0000143764, sum: -0.0000143764
> > ind: 1107, el: -1.0000000000, sol: 0.0000000000, sum: -0.0000143764
> > ind: 1108, el: -1.0000000000, sol: 0.0000000000, sum: -0.0000143764
> > ind: 1736, el: 16560.0000000000, sol: 0.0000000000, sum: -0.0000143764
> >
> > row 491, lhs: -0.0000143764, LB: 0.0000000000
> > ind: 666, el: -1.0000000000, sol: 0.0000000000, sum: 0.0000000000
> > ind: 826, el: -1.0000000000, sol: 0.0000143764, sum: -0.0000143764
> > ind: 1195, el: -1.0000000000, sol: 0.0000000000, sum: -0.0000143764
> > ind: 1196, el: -1.0000000000, sol: 0.0000000000, sum: -0.0000143764
> > ind: 1772, el: 16560.0000000000, sol: 0.0000000000, sum: -0.0000143764
> >
> > row 555, lhs: -0.0000143764, LB: 0.0000000000
> > ind: 750, el: -1.0000000000, sol: 0.0000000000, sum: 0.0000000000
> > ind: 902, el: -1.0000000000, sol: 0.0000143764, sum: -0.0000143764
> > ind: 1283, el: -1.0000000000, sol: 0.0000000000, sum: -0.0000143764
> > ind: 1284, el: -1.0000000000, sol: 0.0000000000, sum: -0.0000143764
> > ind: 1836, el: 16560.0000000000, sol: 0.0000000000, sum: -0.0000143764
> >
> > If I set the primal/dual tolerance to 1.0e-10, it satisfies all
> > constraints at 1.0e-5.
> >
> > The code I used is below:
> >
> >
>
---------------------------------------------------------------------------------------
> 
> >
> > int main(int argc, char ** argv){
> >   OsiClpSolverInterface si;
> >   si.readMps("dsbmip.mps");
> >   si.messageHandler()->setLogLevel(20);
> >   /*si.setDblParam(OsiPrimalTolerance, 1.0e-10);
> >     si.setDblParam(OsiDualTolerance, 1.0e-10);*/
> >
> >   //si.resolve();
> >   si.initialSolve();
> >   const double * sol = si.getColSolution();
> >
> >   const CoinPackedMatrix * rowA  = si.getMatrixByRow();
> >   const double           * rowLB = si.getRowLower();
> >   const double           * rowUB = si.getRowUpper();
> >   double                 * lhs = new double[si.getNumRows()];
> >
> >   rowA->times(sol, lhs);
> >   for(int r = 0; r < si.getNumRows(); r++){
> >     if((lhs[r] + 1.0e-5) < rowLB[r]){
> >       printf( "\nrow %d, lhs: %12.10f, LB: %12.10f", r, lhs[r], rowLB[r]
> );
> >
> >       //check by hand
> >       const CoinShallowPackedVector & row = rowA->getVector(r);
> >       const int    * ind = row.getIndices();
> >       const double * els = row.getElements();
> >       double sum = 0.0;
> >       for(int j = 0; j < row.getNumElements(); j++){
> >         sum += sol[ind[j]] * els[j];
> >         if((fabs(els[j]) > 1.0e-20) || (fabs(sol[ind[j]]) > 1.0e-20))
> >           printf("\nind: %d, el: %12.10f, sol: %12.10f, sum: %12.10f",
> >                  ind[j], els[j], sol[ind[j]], sum);
> >       }
> >
> >     }
> >     if((lhs[r] - 1.0e-5) > rowUB[r]){
> >       printf( "\nrow %d, lhs: %12.10f, UB: %12.10f", r, lhs[r], rowUB[r]
> );
> >     }
> >   }
> > }
> >
> >
>
---------------------------------------------------------------------------------------
> 
> >
> > [magala at ordlnx2 TEST]$ gcc -v
> > Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/specs
> > Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> > --infodir=/usr/share/info --enable-shared --enable-threads=posix
> > --disable-checking --disable-libunwind-exceptions --with-system-zlib
> > --enable-__cxa_atexit --host=i386-redhat-linux
> > Thread model: posix
> > gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)
> >
> >
> > Thanks.
> >
> > --
> > Matthew Galati
> >
> >
> > _______________________________________________
> > Coin-lpsolver mailing list
> > Coin-lpsolver at www-124.ibm.com
> > http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-lpsolver
> >
> >
> >
> > _______________________________________________
> > Coin-lpsolver mailing list
> > Coin-lpsolver at www-124.ibm.com
> > http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-lpsolver
> >
> 
> 
> 
> 
> -------------------------------------------------
> This mail sent through IMP: http://horde.org/imp/
> _______________________________________________
> Coin-lpsolver mailing list
> Coin-lpsolver at www-124.ibm.com
> http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-lpsolver
> 
> 
> 
> _______________________________________________
> Coin-lpsolver mailing list
> Coin-lpsolver at www-124.ibm.com
> http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-lpsolver
> 




-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/



More information about the Clp mailing list