Ignore:
Timestamp:
Feb 27, 2007 9:51:46 AM (13 years ago)
Author:
forrest
Message:

correct row solution

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/devel/Cbc/src/CoinSolve.cpp

    r541 r546  
    26922692                    tunePreProcess = tunePreProcess % 1000;
    26932693                  }
     2694                  if (doSprint>0) {
     2695                    // Sprint for primal solves
     2696                    ClpSolve::SolveType method = ClpSolve::usePrimalorSprint;
     2697                    ClpSolve::PresolveType presolveType = ClpSolve::presolveOff;
     2698                    int numberPasses = 5;
     2699                    int options[] = {0,3,0,0,0,0};
     2700                    int extraInfo[] = {-1,20,-1,-1,-1,-1};
     2701                    extraInfo[1]=doSprint;
     2702                    int independentOptions[] = {0,0,3};
     2703                    ClpSolve clpSolve(method,presolveType,numberPasses,
     2704                                      options,extraInfo,independentOptions);
     2705                    // say use in OsiClp
     2706                    clpSolve.setSpecialOption(6,1);
     2707                    OsiClpSolverInterface * osiclp = dynamic_cast< OsiClpSolverInterface*> (saveSolver);
     2708                    osiclp->setSolveOptions(clpSolve);
     2709                    osiclp->setHintParam(OsiDoDualInResolve,false);
     2710                    // switch off row copy
     2711                    osiclp->getModelPtr()->setSpecialOptions(osiclp->getModelPtr()->specialOptions()|256);
     2712                    osiclp->getModelPtr()->setInfeasibilityCost(1.0e11);
     2713                  }
    26942714                  solver2 = process.preProcessNonDefault(*saveSolver,translate[preProcess],numberPasses,
    26952715                                                         tunePreProcess);
     
    37253745                  // switch off row copy
    37263746                  osiclp->getModelPtr()->setSpecialOptions(osiclp->getModelPtr()->specialOptions()|256);
     3747                  osiclp->getModelPtr()->setInfeasibilityCost(1.0e11);
    37273748                }
    37283749#ifdef COIN_HAS_LINK
     
    38113832                  lpSolver->setPersistenceFlag(1);
    38123833                }
     3834                if (testOsiOptions>=0) {
     3835                  printf("Testing OsiObject options %d\n",testOsiOptions);
     3836                  CbcBranchDefaultDecision decision;
     3837                  OsiChooseStrong choose(babModel->solver());
     3838                  choose.setNumberBeforeTrusted(babModel->numberBeforeTrust());
     3839                  choose.setNumberStrong(babModel->numberStrong());
     3840                  choose.setShadowPriceMode(testOsiOptions);
     3841                  //babModel->deleteObjects(false);
     3842                  decision.setChooseMethod(choose);
     3843                  babModel->setBranchingMethod(decision);
     3844                }
    38133845                CbcClpUnitTest(*babModel);
    38143846                goodModel=false;
     
    38813913                //move best solution (should be there -- but ..)
    38823914                int n = lpSolver->getNumCols();
    3883                 if (bestSolution)
     3915                if (bestSolution) {
    38843916                  memcpy(lpSolver->primalColumnSolution(),bestSolution,n*sizeof(double));
     3917                  // now see what that does to row solution
     3918                  int numberRows=lpSolver->numberRows();
     3919                  double * rowSolution = lpSolver->primalRowSolution();
     3920                  memset (rowSolution,0,numberRows*sizeof(double));
     3921                  lpSolver->clpMatrix()->times(1.0,bestSolution,rowSolution);
     3922                }
    38853923                if (debugFile=="create"&&bestSolution) {
    38863924                  saveSolution(lpSolver,"debug.file");
     
    50555093              double timeToGo = model.getMaximumSeconds();
    50565094              lpSolver->setMaximumSeconds(timeToGo);
    5057               fakeMain2(*lpSolver,*clpSolver);
     5095              int extra1 = parameters[whichParam(EXTRA1,numberParameters,parameters)].intValue();
     5096              fakeMain2(*lpSolver,*clpSolver,extra1);
     5097              lpSolver = clpSolver->getModelPtr();
    50585098#ifdef COIN_HAS_ASL
    50595099              // My actual usage has objective only in clpSolver
    5060               double objectiveValue=clpSolver->getObjValue();
    5061               int iStat = lpSolver->status();
    5062               int iStat2 = lpSolver->secondaryStatus();
     5100              //double objectiveValue=clpSolver->getObjValue();
     5101              //int iStat = lpSolver->status();
     5102              //int iStat2 = lpSolver->secondaryStatus();
    50635103#endif
    50645104#endif
Note: See TracChangeset for help on using the changeset viewer.