Changeset 1234 for stable/2.3


Ignore:
Timestamp:
Sep 25, 2009 10:26:24 AM (10 years ago)
Author:
forrest
Message:

say infeasible in CbcSolver? output

File:
1 edited

Legend:

Unmodified
Added
Removed
  • stable/2.3/Cbc/src/CbcSolver.cpp

    r1218 r1234  
    37703770  bool noPrinting_=noPrinting;
    37713771#endif 
     3772  // Say not in integer
     3773  int integerStatus=-1;
    37723774  // Say no resolve after cuts
    37733775  model_.setResolveAfterTakeOffCuts(false);
     
    53165318                  iStat = 3;
    53175319                  pos += sprintf(buf+pos,"stopped on ctrl-c,");
     5320                } else if (iStat==6) {
     5321                  // bab infeasible
     5322                  pos += sprintf(buf+pos,"integer infeasible,");
     5323                  iStat=1;
    53185324                } else {
    53195325                  pos += sprintf(buf+pos,"status unknown,");
     
    63226328                }
    63236329                if (!solver2) {
     6330                  // say infeasible for solution
     6331                  integerStatus=6;
    63246332                  model_.setProblemStatus(0);
    63256333                  model_.setSecondaryStatus(1);
     
    81888196              // For best solution
    81898197              double * bestSolution = NULL;
     8198              // Say in integer
     8199              if (babModel_->status()) {
     8200                // treat as stopped
     8201                integerStatus=3;
     8202              } else {
     8203                if (babModel_->isProvenOptimal()) {
     8204                  integerStatus=0;
     8205                } else {
     8206                  // infeasible
     8207                  integerStatus=6;
     8208                }
     8209              }
    81908210              if (babModel_->getMinimizationObjValue()<1.0e50&&type==BAB) {
    81918211                // post process
     
    85118531                    iStat = 3;
    85128532                    pos += sprintf(buf+pos,"stopped on ctrl-c,");
     8533                  } else if (iStat==6) {
     8534                    // bab infeasible
     8535                    pos += sprintf(buf+pos,"integer infeasible,");
     8536                    iStat=1;
    85138537                  } else {
    85148538                    pos += sprintf(buf+pos,"status unknown,");
     
    98509874                  iStat = 3;
    98519875                  pos += sprintf(buf+pos,"stopped on ctrl-c,");
     9876                } else if (iStat==6) {
     9877                  // bab infeasible
     9878                  pos += sprintf(buf+pos,"integer infeasible,");
     9879                  iStat=1;
    98529880                } else {
    98539881                  pos += sprintf(buf+pos,"status unknown,");
     
    1002310051                  double objValue = lpSolver->getObjValue()*lpSolver->getObjSense();
    1002410052                  int iStat = lpSolver->status();
     10053                  if (integerStatus>=0)
     10054                    iStat = integerStatus;
    1002510055                  if (iStat==0) {
    1002610056                    fprintf(fp, "Optimal" );
     
    1003710067                  } else if (iStat==5) {
    1003810068                    fprintf(fp, "Stopped on ctrl-c" );
     10069                  } else if (iStat==6) {
     10070                    // bab infeasible
     10071                    fprintf(fp, "Integer infeasible" );
    1003910072                  } else {
    1004010073                    fprintf(fp, "Status unknown" );
Note: See TracChangeset for help on using the changeset viewer.