Changeset 1945 for trunk


Ignore:
Timestamp:
Jul 29, 2013 4:56:04 AM (6 years ago)
Author:
forrest
Message:

adding a dubious heuristic

Location:
trunk
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cbc/configure

    r1934 r1945  
    10871087                          icl/link). Default when mentioned: mingw. Default
    10881088                          when not mentioned: disabled.
    1089 
    10901089  --enable-static[=PKGS]
    10911090                          build static libraries [default=no]
     
    17701769
    17711770
    1772 
    17731771cat >>confdefs.h <<_ACEOF
    17741772#define CBC_VERSION "$PACKAGE_VERSION"
     
    18561854
    18571855
    1858  # Capture libtool library version, if given.
    1859 
     1856# Capture libtool library version, if given.
    18601857
    18611858
     
    20021999echo "$as_me: DOS compile style is: $enable_doscompile" >&6;}
    20032000  fi
    2004 
    2005 
    2006 # Check whether --enable-static-standardlibs or --disable-static-standardlibs was given.
    2007 if test "${enable_static_standardlibs+set}" = set; then
    2008   enableval="$enable_static_standardlibs"
    2009   case "$enableval" in
    2010      no | yes | auto ) ;;
    2011      *)
    2012        { { echo "$as_me:$LINENO: error: invalid argument for --enable-static-standardlibs: $enableval" >&5
    2013 echo "$as_me: error: invalid argument for --enable-static-standardlibs: $enableval" >&2;}
    2014    { (exit 1); exit 1; }; } ;;
    2015    esac
    2016    use_static_standardlibs=$enableval
    2017 else
    2018   use_static_standardlibs=no
    2019 fi;
    2020 
    20212001
    20222002
     
    31553135    CFLAGS="$OPT_CFLAGS"
    31563136  fi
    3157 
    31583137else
    31593138  CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS"
     
    33243303esac
    33253304
    3326 # check whether to add flags for static linking against standard libraries to LDFLAGS
    3327 if test x$use_static_standardlibs != xno ; then
    3328   case $build in
    3329     *-mingw*)
    3330       static_standardlib_flag=-static
    3331       ;;
    3332     *)
    3333       static_standardlib_flag=-static-libgcc
    3334       ;;
    3335   esac
    3336   case " $LDFLAGS " in
    3337     *" $static_standardlib_flag "* ) ;;
    3338     *)
    3339     echo "$as_me:$LINENO: checking whether linking with $static_standardlib_flag works" >&5
    3340 echo $ECHO_N "checking whether linking with $static_standardlib_flag works... $ECHO_C" >&6
    3341     coin_save_LDFLAGS="$LDFLAGS"
    3342     LDFLAGS="$LDFLAGS $static_standardlib_flag"
    3343     cat >conftest.$ac_ext <<_ACEOF
    3344 /* confdefs.h.  */
    3345 _ACEOF
    3346 cat confdefs.h >>conftest.$ac_ext
    3347 cat >>conftest.$ac_ext <<_ACEOF
    3348 /* end confdefs.h.  */
    3349 
    3350 int
    3351 main ()
    3352 {
    3353 int i=0;
    3354   ;
    3355   return 0;
    3356 }
    3357 _ACEOF
    3358 rm -f conftest.$ac_objext conftest$ac_exeext
    3359 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
    3360   (eval $ac_link) 2>conftest.er1
    3361   ac_status=$?
    3362   grep -v '^ *+' conftest.er1 >conftest.err
    3363   rm -f conftest.er1
    3364   cat conftest.err >&5
    3365   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    3366   (exit $ac_status); } &&
    3367          { ac_try='test -z "$ac_c_werror_flag"
    3368                          || test ! -s conftest.err'
    3369   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    3370   (eval $ac_try) 2>&5
    3371   ac_status=$?
    3372   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    3373   (exit $ac_status); }; } &&
    3374          { ac_try='test -s conftest$ac_exeext'
    3375   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    3376   (eval $ac_try) 2>&5
    3377   ac_status=$?
    3378   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    3379   (exit $ac_status); }; }; then
    3380   echo "$as_me:$LINENO: result: yes" >&5
    3381 echo "${ECHO_T}yes" >&6
    3382 else
    3383   echo "$as_me: failed program was:" >&5
    3384 sed 's/^/| /' conftest.$ac_ext >&5
    3385 
    3386 echo "$as_me:$LINENO: result: no" >&5
    3387 echo "${ECHO_T}no" >&6
    3388        LDFLAGS="$coin_save_LDFLAGS"
    3389        if test $use_static_standardlibs = yes ; then
    3390          { { echo "$as_me:$LINENO: error: failed to link with $static_standardlib_flag" >&5
    3391 echo "$as_me: error: failed to link with $static_standardlib_flag" >&2;}
    3392    { (exit 1); exit 1; }; }
    3393        fi
    3394 
    3395 fi
    3396 rm -f conftest.err conftest.$ac_objext \
    3397       conftest$ac_exeext conftest.$ac_ext
    3398     ;;
    3399   esac
    3400 fi
    3401 
    34023305ac_ext=c
    34033306ac_cpp='$CPP $CPPFLAGS'
     
    34093312
    34103313 #Let's try if that overcomes configuration problem with VC++ 6.0
    3411 
    34123314
    34133315ac_ext=cc
     
    43594261esac
    43604262
    4361 # check whether to add flag for static linking against standard libraries to LDFLAGS
    4362 if test x$use_static_standardlibs != xno ; then
    4363   case $build in
    4364     *-mingw*)
    4365       static_standardlib_flag=-static
    4366       ;;
    4367     *)
    4368       static_standardlib_flag=-static-libstdc++
    4369       ;;
    4370   esac
    4371   case " $LDFLAGS " in
    4372     *" $static_standardlib_flag "* ) ;;
    4373     *)
    4374     echo "$as_me:$LINENO: checking whether linking with $static_standardlib_flag works" >&5
    4375 echo $ECHO_N "checking whether linking with $static_standardlib_flag works... $ECHO_C" >&6
    4376     coin_save_LDFLAGS="$LDFLAGS"
    4377     LDFLAGS="$LDFLAGS $static_standardlib_flag"
    4378     cat >conftest.$ac_ext <<_ACEOF
    4379 /* confdefs.h.  */
    4380 _ACEOF
    4381 cat confdefs.h >>conftest.$ac_ext
    4382 cat >>conftest.$ac_ext <<_ACEOF
    4383 /* end confdefs.h.  */
    4384 
    4385 int
    4386 main ()
    4387 {
    4388 int i=0;
    4389   ;
    4390   return 0;
    4391 }
    4392 _ACEOF
    4393 rm -f conftest.$ac_objext conftest$ac_exeext
    4394 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
    4395   (eval $ac_link) 2>conftest.er1
    4396   ac_status=$?
    4397   grep -v '^ *+' conftest.er1 >conftest.err
    4398   rm -f conftest.er1
    4399   cat conftest.err >&5
    4400   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    4401   (exit $ac_status); } &&
    4402          { ac_try='test -z "$ac_cxx_werror_flag"
    4403                          || test ! -s conftest.err'
    4404   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    4405   (eval $ac_try) 2>&5
    4406   ac_status=$?
    4407   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    4408   (exit $ac_status); }; } &&
    4409          { ac_try='test -s conftest$ac_exeext'
    4410   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    4411   (eval $ac_try) 2>&5
    4412   ac_status=$?
    4413   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    4414   (exit $ac_status); }; }; then
    4415   echo "$as_me:$LINENO: result: yes" >&5
    4416 echo "${ECHO_T}yes" >&6
    4417 else
    4418   echo "$as_me: failed program was:" >&5
    4419 sed 's/^/| /' conftest.$ac_ext >&5
    4420 
    4421 echo "$as_me:$LINENO: result: no" >&5
    4422 echo "${ECHO_T}no" >&6
    4423        LDFLAGS="$coin_save_LDFLAGS"
    4424        if test $use_static_standardlibs = yes ; then
    4425          { { echo "$as_me:$LINENO: error: failed to link with $static_standardlib_flag" >&5
    4426 echo "$as_me: error: failed to link with $static_standardlib_flag" >&2;}
    4427    { (exit 1); exit 1; }; }
    4428        fi
    4429 
    4430 fi
    4431 rm -f conftest.err conftest.$ac_objext \
    4432       conftest$ac_exeext conftest.$ac_ext
    4433     ;;
    4434   esac
    4435 fi
    4436 
    44374263ac_ext=c
    44384264ac_cpp='$CPP $CPPFLAGS'
     
    61956021*-*-irix6*)
    61966022  # Find out which ABI we are using.
    6197   echo '#line 6197 "configure"' > conftest.$ac_ext
     6023  echo '#line 6023 "configure"' > conftest.$ac_ext
    61986024  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
    61996025  (eval $ac_compile) 2>&5
     
    73297155
    73307156# Provide some information about the compiler.
    7331 echo "$as_me:7331:" \
     7157echo "$as_me:7157:" \
    73327158     "checking for Fortran 77 compiler version" >&5
    73337159ac_compiler=`set X $ac_compile; echo $2`
     
    83968222   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    83978223   -e 's:$: $lt_compiler_flag:'`
    8398    (eval echo "\"\$as_me:8398: $lt_compile\"" >&5)
     8224   (eval echo "\"\$as_me:8224: $lt_compile\"" >&5)
    83998225   (eval "$lt_compile" 2>conftest.err)
    84008226   ac_status=$?
    84018227   cat conftest.err >&5
    8402    echo "$as_me:8402: \$? = $ac_status" >&5
     8228   echo "$as_me:8228: \$? = $ac_status" >&5
    84038229   if (exit $ac_status) && test -s "$ac_outfile"; then
    84048230     # The compiler can only warn and ignore the option if not recognized
     
    86648490   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    86658491   -e 's:$: $lt_compiler_flag:'`
    8666    (eval echo "\"\$as_me:8666: $lt_compile\"" >&5)
     8492   (eval echo "\"\$as_me:8492: $lt_compile\"" >&5)
    86678493   (eval "$lt_compile" 2>conftest.err)
    86688494   ac_status=$?
    86698495   cat conftest.err >&5
    8670    echo "$as_me:8670: \$? = $ac_status" >&5
     8496   echo "$as_me:8496: \$? = $ac_status" >&5
    86718497   if (exit $ac_status) && test -s "$ac_outfile"; then
    86728498     # The compiler can only warn and ignore the option if not recognized
     
    87688594   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    87698595   -e 's:$: $lt_compiler_flag:'`
    8770    (eval echo "\"\$as_me:8770: $lt_compile\"" >&5)
     8596   (eval echo "\"\$as_me:8596: $lt_compile\"" >&5)
    87718597   (eval "$lt_compile" 2>out/conftest.err)
    87728598   ac_status=$?
    87738599   cat out/conftest.err >&5
    8774    echo "$as_me:8774: \$? = $ac_status" >&5
     8600   echo "$as_me:8600: \$? = $ac_status" >&5
    87758601   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    87768602   then
     
    1111310939  lt_status=$lt_dlunknown
    1111410940  cat > conftest.$ac_ext <<EOF
    11115 #line 11115 "configure"
     10941#line 10941 "configure"
    1111610942#include "confdefs.h"
    1111710943
     
    1121311039  lt_status=$lt_dlunknown
    1121411040  cat > conftest.$ac_ext <<EOF
    11215 #line 11215 "configure"
     11041#line 11041 "configure"
    1121611042#include "confdefs.h"
    1121711043
     
    1355713383   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1355813384   -e 's:$: $lt_compiler_flag:'`
    13559    (eval echo "\"\$as_me:13559: $lt_compile\"" >&5)
     13385   (eval echo "\"\$as_me:13385: $lt_compile\"" >&5)
    1356013386   (eval "$lt_compile" 2>conftest.err)
    1356113387   ac_status=$?
    1356213388   cat conftest.err >&5
    13563    echo "$as_me:13563: \$? = $ac_status" >&5
     13389   echo "$as_me:13389: \$? = $ac_status" >&5
    1356413390   if (exit $ac_status) && test -s "$ac_outfile"; then
    1356513391     # The compiler can only warn and ignore the option if not recognized
     
    1366113487   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1366213488   -e 's:$: $lt_compiler_flag:'`
    13663    (eval echo "\"\$as_me:13663: $lt_compile\"" >&5)
     13489   (eval echo "\"\$as_me:13489: $lt_compile\"" >&5)
    1366413490   (eval "$lt_compile" 2>out/conftest.err)
    1366513491   ac_status=$?
    1366613492   cat out/conftest.err >&5
    13667    echo "$as_me:13667: \$? = $ac_status" >&5
     13493   echo "$as_me:13493: \$? = $ac_status" >&5
    1366813494   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1366913495   then
     
    1523115057   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1523215058   -e 's:$: $lt_compiler_flag:'`
    15233    (eval echo "\"\$as_me:15233: $lt_compile\"" >&5)
     15059   (eval echo "\"\$as_me:15059: $lt_compile\"" >&5)
    1523415060   (eval "$lt_compile" 2>conftest.err)
    1523515061   ac_status=$?
    1523615062   cat conftest.err >&5
    15237    echo "$as_me:15237: \$? = $ac_status" >&5
     15063   echo "$as_me:15063: \$? = $ac_status" >&5
    1523815064   if (exit $ac_status) && test -s "$ac_outfile"; then
    1523915065     # The compiler can only warn and ignore the option if not recognized
     
    1533515161   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1533615162   -e 's:$: $lt_compiler_flag:'`
    15337    (eval echo "\"\$as_me:15337: $lt_compile\"" >&5)
     15163   (eval echo "\"\$as_me:15163: $lt_compile\"" >&5)
    1533815164   (eval "$lt_compile" 2>out/conftest.err)
    1533915165   ac_status=$?
    1534015166   cat out/conftest.err >&5
    15341    echo "$as_me:15341: \$? = $ac_status" >&5
     15167   echo "$as_me:15167: \$? = $ac_status" >&5
    1534215168   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1534315169   then
     
    1754217368   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1754317369   -e 's:$: $lt_compiler_flag:'`
    17544    (eval echo "\"\$as_me:17544: $lt_compile\"" >&5)
     17370   (eval echo "\"\$as_me:17370: $lt_compile\"" >&5)
    1754517371   (eval "$lt_compile" 2>conftest.err)
    1754617372   ac_status=$?
    1754717373   cat conftest.err >&5
    17548    echo "$as_me:17548: \$? = $ac_status" >&5
     17374   echo "$as_me:17374: \$? = $ac_status" >&5
    1754917375   if (exit $ac_status) && test -s "$ac_outfile"; then
    1755017376     # The compiler can only warn and ignore the option if not recognized
     
    1781017636   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1781117637   -e 's:$: $lt_compiler_flag:'`
    17812    (eval echo "\"\$as_me:17812: $lt_compile\"" >&5)
     17638   (eval echo "\"\$as_me:17638: $lt_compile\"" >&5)
    1781317639   (eval "$lt_compile" 2>conftest.err)
    1781417640   ac_status=$?
    1781517641   cat conftest.err >&5
    17816    echo "$as_me:17816: \$? = $ac_status" >&5
     17642   echo "$as_me:17642: \$? = $ac_status" >&5
    1781717643   if (exit $ac_status) && test -s "$ac_outfile"; then
    1781817644     # The compiler can only warn and ignore the option if not recognized
     
    1791417740   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1791517741   -e 's:$: $lt_compiler_flag:'`
    17916    (eval echo "\"\$as_me:17916: $lt_compile\"" >&5)
     17742   (eval echo "\"\$as_me:17742: $lt_compile\"" >&5)
    1791717743   (eval "$lt_compile" 2>out/conftest.err)
    1791817744   ac_status=$?
    1791917745   cat out/conftest.err >&5
    17920    echo "$as_me:17920: \$? = $ac_status" >&5
     17746   echo "$as_me:17746: \$? = $ac_status" >&5
    1792117747   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1792217748   then
  • trunk/Cbc/src/CbcHeuristicFPump.cpp

    r1944 r1945  
    833833                        } else if (numberColumns>numberIntegersOrig) {
    834834                          // relax continuous
     835                          bool takeHint;
     836                          OsiHintStrength strength;
     837                          solver->getHintParam(OsiDoDualInResolve, takeHint, strength);
     838                          //solver->setHintParam(OsiDoReducePrint, false, OsiHintTry);
     839                          solver->setHintParam(OsiDoDualInResolve, false, OsiHintDo);
     840                          //solver->setHintParam(OsiDoScale, false, OsiHintDo);
    835841                          solver->resolve();
     842                          solver->setHintParam(OsiDoDualInResolve, takeHint, strength);
    836843                          if (solver->isProvenOptimal()) {
    837844                            memcpy(newSolution,solver->getColSolution(),
    838845                                   numberColumns*sizeof(double));
    839846                            newSolutionValue = -saveOffset;
    840                             for (  i = 0 ; i < numberColumns ; i++ )
     847                            for (  i = 0 ; i < numberColumns ; i++ ) {
    841848                              newSolutionValue += saveObjective[i] * newSolution[i];
     849                            }
    842850                            newSolutionValue *= direction;
    843851                            sprintf(pumpPrint, "Relaxing continuous gives %g", newSolutionValue);
     852                            //#define DEBUG_BEST
     853#ifdef DEBUG_BEST
     854                            {
     855                              int numberColumns=solver->getNumCols();
     856                              FILE * fp = fopen("solution.data2","wb");
     857                              printf("Solution data on file solution.data2\n");
     858                              size_t numberWritten;
     859                              numberWritten=fwrite(&numberColumns,sizeof(int),1,fp);
     860                              assert (numberWritten==1);
     861                              numberWritten=fwrite(&newSolutionValue,sizeof(double),1,fp);
     862                              assert (numberWritten==1);
     863                              numberWritten=fwrite(newSolution,sizeof(double),numberColumns,fp);
     864                              assert (numberWritten==numberColumns);
     865                              fclose(fp);
     866                              const double * rowLower = solver->getRowLower();
     867                              const double * rowUpper = solver->getRowUpper();
     868                              const double * columnLower = solver->getColLower();
     869                              const double * columnUpper = solver->getColUpper();
     870                              int numberRows = solver->getNumRows() ;
     871                              double *rowActivity = new double[numberRows] ;
     872                              memset(rowActivity, 0, numberRows*sizeof(double)) ;
     873                              const double * element = solver->getMatrixByCol()->getElements();
     874                              const int * row = solver->getMatrixByCol()->getIndices();
     875                              const CoinBigIndex * columnStart = solver->getMatrixByCol()->getVectorStarts();
     876                              const int * columnLength = solver->getMatrixByCol()->getVectorLengths();
     877                              double largestAway=0.0;
     878                              int away=-1;
     879                              double saveOffset;
     880                              solver->getDblParam(OsiObjOffset, saveOffset);
     881                              double newSolutionValue = -saveOffset;
     882                              const double * objective = solver->getObjCoefficients();
     883                              for ( int iColumn=0 ; iColumn<numberColumns ; ++iColumn ) {
     884                                double value=newSolution[iColumn];
     885                                CoinBigIndex start = columnStart[iColumn];
     886                                CoinBigIndex end = start + columnLength[iColumn];
     887                                for (CoinBigIndex j = start; j < end; j++) {
     888                                  int iRow = row[j];
     889                                  if (iRow==1996)
     890                                    printf("fp col %d val %g el %g old y %g\n",
     891                                  iColumn,value,element[j],rowActivity[iRow]);
     892                                  rowActivity[iRow] += value * element[j];
     893                                }
     894                                newSolutionValue += objective[iColumn] * newSolution[iColumn];
     895                                if (solver->isInteger(iColumn)) {
     896                                  double intValue = floor(value+0.5);
     897                                  if (fabs(value-intValue)>largestAway) {
     898                                    largestAway=fabs(value-intValue);
     899                                    away=iColumn;
     900                                  }
     901                                }
     902                              }
     903                              printf("Largest away from int at column %d was %g - obj %g\n",away,
     904                                     largestAway,newSolutionValue);
     905                              double largestInfeasibility=0.0;
     906                              for (int i = 0 ; i < numberRows ; i++) {
     907#if 0 //def CLP_INVESTIGATE
     908                                double inf;
     909                                inf = rowLower[i] - rowActivity[i];
     910                                if (inf > primalTolerance)
     911                                  printf("Row %d inf %g sum %g %g <= %g <= %g\n",
     912                                         i, inf, rowSum[i], rowLower[i], rowActivity[i], rowUpper[i]);
     913                                inf = rowActivity[i] - rowUpper[i];
     914                                if (inf > primalTolerance)
     915                                  printf("Row %d inf %g %g <= %g <= %g\n",
     916                                         i, inf, rowLower[i], rowActivity[i], rowUpper[i]);
     917#endif
     918                                double infeasibility = CoinMax(rowActivity[i]-rowUpper[i],
     919                                                               rowLower[i]-rowActivity[i]);
     920                                if (infeasibility>largestInfeasibility) {
     921                                  largestInfeasibility = infeasibility;
     922                                  printf("Binf of %g on row %d\n",
     923                                         infeasibility,i);
     924                                }
     925                              }
     926                              delete [] rowActivity ;
     927                              printf("Blargest infeasibility is %g - obj %g\n", largestInfeasibility,newSolutionValue);
     928                            }
     929#endif
    844930                          } else {
    845931                            sprintf(pumpPrint,"Infeasible when relaxing continuous!\n");
  • trunk/Cbc/src/CbcModel.cpp

    r1943 r1945  
    1492414924                        line << CoinMessageEol ;
    1492514925                    }
     14926                    //#define DEBUG_BEST
     14927#ifdef DEBUG_BEST
     14928  FILE * fp = fopen("solution.data","rb");
     14929  if (!fp&&ifSol>0) {
     14930    int numberColumns=getNumCols();
     14931    fp = fopen("solution.data","wb");
     14932    printf("Solution data on file solution.data\n");
     14933    size_t numberWritten;
     14934    numberWritten=fwrite(&numberColumns,sizeof(int),1,fp);
     14935    assert (numberWritten==1);
     14936    numberWritten=fwrite(&heuristicValue,sizeof(double),1,fp);
     14937    assert (numberWritten==1);
     14938    numberWritten=fwrite(newSolution,sizeof(double),numberColumns,fp);
     14939    assert (numberWritten==numberColumns);
     14940    fclose(fp);
     14941  } else if (fp) {
     14942    int numberColumns=getNumCols();
     14943    int numberColumnsX;
     14944    size_t numberRead;
     14945    numberRead=fread(&numberColumnsX,sizeof(int),1,fp);
     14946    assert (numberRead==1);
     14947    if (numberColumns==numberColumnsX) {
     14948      numberRead=fread(&heuristicValue,sizeof(double),1,fp);
     14949      assert (numberRead==1);
     14950      numberRead=fread(newSolution,sizeof(double),numberColumns,fp);
     14951      assert (numberRead==numberColumns);
     14952      ifSol=1;
     14953    }
     14954    fclose(fp);
     14955  }
     14956#endif
    1492614957                    if (ifSol > 0) {
    1492714958                        // better solution found
  • trunk/Cbc/src/CbcSolver.cpp

    r1943 r1945  
    30173017                    case CBC_PARAM_ACTION_DOHEURISTIC:
    30183018                        if (goodModel) {
     3019#ifndef CBC_USE_INITIAL_TIME
     3020                          if (model_.useElapsedTime())
     3021                            model_.setDblParam(CbcModel::CbcStartSeconds, CoinGetTimeOfDay());
     3022                          else
     3023                            model_.setDblParam(CbcModel::CbcStartSeconds, CoinCpuTime());
     3024#endif
    30193025                            int vubAction = parameters_[whichParam(CBC_PARAM_INT_VUBTRY, numberParameters_, parameters_)].intValue();
    30203026                            if (vubAction != -1) {
     
    30473053                            }
    30483054                            // Actually do heuristics
     3055                            // may need to flip objective
     3056                            bool needFlip = model_.solver()->getObjSense()<0.0;
     3057                            if (needFlip)
     3058                              model_.flipModel();
     3059                            //if we do then - fix priorities in clonebutmodel_.convertToDynamic();
    30493060                            doHeuristics(&model_, 2, parameters_,
    30503061                                         numberParameters_, noPrinting_, initialPumpTune);
     3062                            if (needFlip)
     3063                              model_.flipModel();
    30513064                            if (model_.bestSolution()) {
    30523065                                model_.setProblemStatus(1);
  • trunk/Cbc/src/CbcSolverHeuristics.cpp

    r1899 r1945  
    3030#include "CbcHeuristicFPump.hpp"
    3131#include "CbcHeuristicRINS.hpp"
     32#include "CbcHeuristicDW.hpp"
    3233
    3334#include "CbcHeuristicDiveCoefficient.hpp"
     
    11681169    int useDIVING2 = parameters_[whichParam(CBC_PARAM_STR_DIVINGS, numberParameters_, parameters_)].currentOptionAsInteger();
    11691170    int useNaive = parameters_[whichParam(CBC_PARAM_STR_NAIVE, numberParameters_, parameters_)].currentOptionAsInteger();
     1171    int useDW = parameters_[whichParam(CBC_PARAM_STR_DW, numberParameters_, parameters_)].currentOptionAsInteger();
    11701172    int kType = (type < 10) ? type : 1;
    11711173    assert (kType == 1 || kType == 2);
     
    15891591        anyToDo = true;
    15901592    }
     1593    if (useDW >= kType && useDW <= kType + 1) {
     1594        CbcHeuristicDW heuristic13(*model);
     1595        heuristic13.setHeuristicName("Dantzig-Wolfe");
     1596        heuristic13.setNumberPasses(100);
     1597        int numberIntegers=0;
     1598        const OsiSolverInterface * solver = model->solver();
     1599        int numberColumns = solver->getNumCols();
     1600        for (int i=0;i<numberColumns;i++) {
     1601          if(solver->isInteger(i))
     1602            numberIntegers++;
     1603        }
     1604        heuristic13.setNumberNeeded(CoinMin(200,numberIntegers/10));
     1605        model->addHeuristic(&heuristic13);
     1606        anyToDo = true;
     1607    }
    15911608    if (useCombine >= kType && useCombine <= kType + 1) {
    15921609        CbcHeuristicLocal heuristic2(*model);
  • trunk/Cbc/src/Makefile.am

    r1935 r1945  
    7373        CbcHeuristicRINS.cpp CbcHeuristicRINS.hpp \
    7474        CbcHeuristicVND.cpp CbcHeuristicVND.hpp \
     75        CbcHeuristicDW.cpp CbcHeuristicDW.hpp \
    7576        CbcMessage.cpp CbcMessage.hpp \
    7677        CbcModel.cpp CbcModel.hpp \
     
    238239        CbcHeuristicRINS.hpp \
    239240        CbcHeuristicVND.hpp \
     241        CbcHeuristicDW.hpp \
    240242        CbcMessage.hpp \
    241243        CbcModel.hpp \
  • trunk/Cbc/src/Makefile.in

    r1935 r1945  
    109109        CbcHeuristicPivotAndFix.lo CbcHeuristicRandRound.lo \
    110110        CbcHeuristicRENS.lo CbcHeuristicRINS.lo CbcHeuristicVND.lo \
    111         CbcMessage.lo CbcModel.lo CbcNode.lo CbcNodeInfo.lo CbcNWay.lo \
    112         CbcObject.lo CbcObjectUpdateData.lo CbcPartialNodeInfo.lo \
    113         CbcSimpleInteger.lo CbcSimpleIntegerDynamicPseudoCost.lo \
     111        CbcHeuristicDW.lo CbcMessage.lo CbcModel.lo CbcNode.lo \
     112        CbcNodeInfo.lo CbcNWay.lo CbcObject.lo CbcObjectUpdateData.lo \
     113        CbcPartialNodeInfo.lo CbcSimpleInteger.lo \
     114        CbcSimpleIntegerDynamicPseudoCost.lo \
    114115        CbcSimpleIntegerPseudoCost.lo CbcSOS.lo CbcStatistics.lo \
    115116        CbcStrategy.lo CbcSubProblem.lo CbcThread.lo CbcTree.lo \
     
    569570        CbcHeuristicRINS.cpp CbcHeuristicRINS.hpp \
    570571        CbcHeuristicVND.cpp CbcHeuristicVND.hpp \
     572        CbcHeuristicDW.cpp CbcHeuristicDW.hpp \
    571573        CbcMessage.cpp CbcMessage.hpp \
    572574        CbcModel.cpp CbcModel.hpp \
     
    698700        CbcHeuristicRINS.hpp \
    699701        CbcHeuristicVND.hpp \
     702        CbcHeuristicDW.hpp \
    700703        CbcMessage.hpp \
    701704        CbcModel.hpp \
     
    895898@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristic.Plo@am__quote@
    896899@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicDINS.Plo@am__quote@
     900@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicDW.Plo@am__quote@
    897901@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicDive.Plo@am__quote@
    898902@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicDiveCoefficient.Plo@am__quote@
  • trunk/configure

    r1925 r1945  
    28072807          clang* ) ;;
    28082808          cl* | */cl* | CL* | */CL*)
    2809             coin_opt_cflags='-MT -O2'
     2809            if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then
     2810              coin_opt_cflags='-MD -O2'
     2811              coin_dbg_cflags='-MDd'
     2812            else
     2813              coin_opt_cflags='-MT -O2'
     2814              coin_dbg_cflags='-MTd'
     2815            fi
    28102816            coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE'
    2811             coin_dbg_cflags='-MTd'
    28122817            ;;
    28132818          icl* | */icl* | ICL* | */ICL*)
    2814             coin_opt_cflags='-MT -Ox'
     2819            if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then
     2820              coin_opt_cflags='-MD -Ox'
     2821              coin_dbg_cflags='-MDd -debug'
     2822            else
     2823              coin_opt_cflags='-MT -Ox'
     2824              coin_dbg_cflags='-MTd -debug'
     2825            fi
    28152826            coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE'
    2816             coin_dbg_cflags='-MTd -debug'
    28172827            ;;
    28182828        esac
     
    37493759          clang* ) ;;
    37503760          cl* | */cl* | CL* | */CL*)
    3751             # The MT and MTd options are mutually exclusive
    3752             coin_opt_cxxflags='-MT -O2'
     3761            # The MT and MTd options are mutually exclusive
     3762            if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then
     3763               coin_opt_cxxflags='-MD -O2'
     3764               coin_dbg_cxxflags='-MDd'
     3765            else
     3766               coin_opt_cxxflags='-MT -O2'
     3767               coin_dbg_cxxflags='-MTd'
     3768            fi
    37533769            coin_add_cxxflags='-nologo -EHsc -GR -wd4996 -D_CRT_SECURE_NO_DEPRECATE'
    3754             coin_dbg_cxxflags='-MTd'
    37553770            ;;
    37563771          icl* | */icl* | ICL* | */ICL*)
    3757             # The MT and MTd options are mutually exclusive
    3758             coin_opt_cxxflags='-MT -Ox'
     3772          # The MT and MTd options are mutually exclusive
     3773            if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then
     3774              coin_opt_cxxflags='-MD -Ox'
     3775              coin_dbg_cxxflags='-MDd -debug'
     3776            else
     3777              coin_opt_cxxflags='-MT -Ox'
     3778              coin_dbg_cxxflags='-MTd -debug'
     3779            fi
    37593780            coin_add_cxxflags='-nologo -EHsc -GR -D_CRT_SECURE_NO_DEPRECATE'
    3760             coin_dbg_cxxflags='-MTd -debug'
    37613781            ;;
    37623782        esac
     
    43344354
    43354355# Provide some information about the compiler.
    4336 echo "$as_me:4336:" \
     4356echo "$as_me:4356:" \
    43374357     "checking for Fortran 77 compiler version" >&5
    43384358ac_compiler=`set X $ac_compile; echo $2`
     
    45494569        case $F77 in
    45504570          ifort* | */ifort* | IFORT* | */IFORT* )
    4551             coin_opt_fflags='-MT -O3'
     4571            if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then
     4572              coin_opt_fflags='-MD -O3'
     4573              coin_dbg_fflags='-MDd -debug'
     4574            else
     4575              coin_opt_fflags='-MT -O3'
     4576              coin_dbg_fflags='-MTd -debug'
     4577            fi
    45524578            coin_add_fflags='-fpp -nologo'
    4553             coin_dbg_fflags='-MTd -debug'
    45544579          ;;
    45554580          compile_f2c*)
    4556             coin_opt_fflags='-MT -O2'
     4581            if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then
     4582              coin_opt_fflags='-MD -O2'
     4583              coin_dbg_fflags='-MDd'
     4584            else
     4585              coin_opt_fflags='-MT -O2'
     4586              coin_dbg_fflags='-MTd'
     4587            fi
    45574588            coin_add_fflags='-nologo -wd4996'
    4558             coin_dbg_fflags='-MTd'
    45594589          ;;
    45604590        esac
     
    48594889# START
    48604890
     4891coin_disable_shared=no
    48614892# Test if force_shared has been set
    48624893if test "x" = xforce_shared; then
     
    48944925    { echo "$as_me:$LINENO: WARNING: On $platform, shared objects are not supported. I'm disabling your choice." >&5
    48954926echo "$as_me: WARNING: On $platform, shared objects are not supported. I'm disabling your choice." >&2;}
     4927  else
     4928    # we don't disable shared, because it was not selected anyway
     4929    coin_disable_shared=no
    48964930  fi
    48974931  enable_shared=no
     
    66006634*-*-irix6*)
    66016635  # Find out which ABI we are using.
    6602   echo '#line 6602 "configure"' > conftest.$ac_ext
     6636  echo '#line 6636 "configure"' > conftest.$ac_ext
    66036637  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
    66046638  (eval $ac_compile) 2>&5
     
    85648598   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    85658599   -e 's:$: $lt_compiler_flag:'`
    8566    (eval echo "\"\$as_me:8566: $lt_compile\"" >&5)
     8600   (eval echo "\"\$as_me:8600: $lt_compile\"" >&5)
    85678601   (eval "$lt_compile" 2>conftest.err)
    85688602   ac_status=$?
    85698603   cat conftest.err >&5
    8570    echo "$as_me:8570: \$? = $ac_status" >&5
     8604   echo "$as_me:8604: \$? = $ac_status" >&5
    85718605   if (exit $ac_status) && test -s "$ac_outfile"; then
    85728606     # The compiler can only warn and ignore the option if not recognized
     
    88328866   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    88338867   -e 's:$: $lt_compiler_flag:'`
    8834    (eval echo "\"\$as_me:8834: $lt_compile\"" >&5)
     8868   (eval echo "\"\$as_me:8868: $lt_compile\"" >&5)
    88358869   (eval "$lt_compile" 2>conftest.err)
    88368870   ac_status=$?
    88378871   cat conftest.err >&5
    8838    echo "$as_me:8838: \$? = $ac_status" >&5
     8872   echo "$as_me:8872: \$? = $ac_status" >&5
    88398873   if (exit $ac_status) && test -s "$ac_outfile"; then
    88408874     # The compiler can only warn and ignore the option if not recognized
     
    89368970   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    89378971   -e 's:$: $lt_compiler_flag:'`
    8938    (eval echo "\"\$as_me:8938: $lt_compile\"" >&5)
     8972   (eval echo "\"\$as_me:8972: $lt_compile\"" >&5)
    89398973   (eval "$lt_compile" 2>out/conftest.err)
    89408974   ac_status=$?
    89418975   cat out/conftest.err >&5
    8942    echo "$as_me:8942: \$? = $ac_status" >&5
     8976   echo "$as_me:8976: \$? = $ac_status" >&5
    89438977   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    89448978   then
     
    1128111315  lt_status=$lt_dlunknown
    1128211316  cat > conftest.$ac_ext <<EOF
    11283 #line 11283 "configure"
     11317#line 11317 "configure"
    1128411318#include "confdefs.h"
    1128511319
     
    1138111415  lt_status=$lt_dlunknown
    1138211416  cat > conftest.$ac_ext <<EOF
    11383 #line 11383 "configure"
     11417#line 11417 "configure"
    1138411418#include "confdefs.h"
    1138511419
     
    1372513759   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1372613760   -e 's:$: $lt_compiler_flag:'`
    13727    (eval echo "\"\$as_me:13727: $lt_compile\"" >&5)
     13761   (eval echo "\"\$as_me:13761: $lt_compile\"" >&5)
    1372813762   (eval "$lt_compile" 2>conftest.err)
    1372913763   ac_status=$?
    1373013764   cat conftest.err >&5
    13731    echo "$as_me:13731: \$? = $ac_status" >&5
     13765   echo "$as_me:13765: \$? = $ac_status" >&5
    1373213766   if (exit $ac_status) && test -s "$ac_outfile"; then
    1373313767     # The compiler can only warn and ignore the option if not recognized
     
    1382913863   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1383013864   -e 's:$: $lt_compiler_flag:'`
    13831    (eval echo "\"\$as_me:13831: $lt_compile\"" >&5)
     13865   (eval echo "\"\$as_me:13865: $lt_compile\"" >&5)
    1383213866   (eval "$lt_compile" 2>out/conftest.err)
    1383313867   ac_status=$?
    1383413868   cat out/conftest.err >&5
    13835    echo "$as_me:13835: \$? = $ac_status" >&5
     13869   echo "$as_me:13869: \$? = $ac_status" >&5
    1383613870   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1383713871   then
     
    1539915433   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1540015434   -e 's:$: $lt_compiler_flag:'`
    15401    (eval echo "\"\$as_me:15401: $lt_compile\"" >&5)
     15435   (eval echo "\"\$as_me:15435: $lt_compile\"" >&5)
    1540215436   (eval "$lt_compile" 2>conftest.err)
    1540315437   ac_status=$?
    1540415438   cat conftest.err >&5
    15405    echo "$as_me:15405: \$? = $ac_status" >&5
     15439   echo "$as_me:15439: \$? = $ac_status" >&5
    1540615440   if (exit $ac_status) && test -s "$ac_outfile"; then
    1540715441     # The compiler can only warn and ignore the option if not recognized
     
    1550315537   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1550415538   -e 's:$: $lt_compiler_flag:'`
    15505    (eval echo "\"\$as_me:15505: $lt_compile\"" >&5)
     15539   (eval echo "\"\$as_me:15539: $lt_compile\"" >&5)
    1550615540   (eval "$lt_compile" 2>out/conftest.err)
    1550715541   ac_status=$?
    1550815542   cat out/conftest.err >&5
    15509    echo "$as_me:15509: \$? = $ac_status" >&5
     15543   echo "$as_me:15543: \$? = $ac_status" >&5
    1551015544   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1551115545   then
     
    1771017744   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1771117745   -e 's:$: $lt_compiler_flag:'`
    17712    (eval echo "\"\$as_me:17712: $lt_compile\"" >&5)
     17746   (eval echo "\"\$as_me:17746: $lt_compile\"" >&5)
    1771317747   (eval "$lt_compile" 2>conftest.err)
    1771417748   ac_status=$?
    1771517749   cat conftest.err >&5
    17716    echo "$as_me:17716: \$? = $ac_status" >&5
     17750   echo "$as_me:17750: \$? = $ac_status" >&5
    1771717751   if (exit $ac_status) && test -s "$ac_outfile"; then
    1771817752     # The compiler can only warn and ignore the option if not recognized
     
    1797818012   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1797918013   -e 's:$: $lt_compiler_flag:'`
    17980    (eval echo "\"\$as_me:17980: $lt_compile\"" >&5)
     18014   (eval echo "\"\$as_me:18014: $lt_compile\"" >&5)
    1798118015   (eval "$lt_compile" 2>conftest.err)
    1798218016   ac_status=$?
    1798318017   cat conftest.err >&5
    17984    echo "$as_me:17984: \$? = $ac_status" >&5
     18018   echo "$as_me:18018: \$? = $ac_status" >&5
    1798518019   if (exit $ac_status) && test -s "$ac_outfile"; then
    1798618020     # The compiler can only warn and ignore the option if not recognized
     
    1808218116   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1808318117   -e 's:$: $lt_compiler_flag:'`
    18084    (eval echo "\"\$as_me:18084: $lt_compile\"" >&5)
     18118   (eval echo "\"\$as_me:18118: $lt_compile\"" >&5)
    1808518119   (eval "$lt_compile" 2>out/conftest.err)
    1808618120   ac_status=$?
    1808718121   cat out/conftest.err >&5
    18088    echo "$as_me:18088: \$? = $ac_status" >&5
     18122   echo "$as_me:18122: \$? = $ac_status" >&5
    1808918123   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1809018124   then
Note: See TracChangeset for help on using the changeset viewer.