[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