#include "BonminConfig.h"
#include <cassert>
#include <iomanip>
#include <sstream>
#include "OsiSolverInterface.hpp"
#include "OsiClpSolverInterface.hpp"
#include "CbcModel.hpp"
#include "CbcBranchUser.hpp"
#include "CbcCompareUser.hpp"
#include "CbcCompareActual.hpp"
#include "CbcCutGenerator.hpp"
#include "BonAmplInterface.hpp"
#include "BonDummyHeuristic.hpp"
#include "BonOACutGenerator2.hpp"
#include "CbcHeuristicFPump.hpp"
#include "CbcHeuristicGreedy.hpp"
#include "BonAmplTMINLP.hpp"
#include "CglGomory.hpp"
#include "OsiCbcSolverInterface.hpp"
#include "CoinTime.hpp"
#include "FP.hpp"
Include dependency graph for OAFeasibilityPump.cpp:
Go to the source code of this file.
Classes | |
struct | ResolutionInformation |
Functions | |
int | findGoodSolution (OsiSolverInterface &mip, int &nodeNumber) |
solve problem with CPLEX for : at least minNodes then check every nodeInterval if a solution has been found and stop do that for maxTime | |
double | FP (AmplInterface &nlp, OsiSolverInterface &linearModel, int numIntCols, int *inds, double *vals, double maxTime, int maxIter, ResolutionInformation &info, double ub, int &provenInfeas, double *&solution) |
int | enhancedOA (AmplInterface &solver1, bool doFp, double *&solution) |
Enhanced OA code. | |
int | iteratedFP (AmplInterface &solver1, bool standAlone, double *&solution) |
Iterated feasibility pump. | |
double | FPGeneralIntegers (AmplInterface &nlp, OsiSolverInterface &linearModel, int numIntCols, int *inds, double *vals, double maxTime, ResolutionInformation &info, double ub, bool &provenInfeas) |
Variables | |
OptParam | params |
static double | BeginTimeGLOB |
int findGoodSolution | ( | OsiSolverInterface & | mip, | |
int & | nodeNumber | |||
) |
solve problem with CPLEX for : at least minNodes then check every nodeInterval if a solution has been found and stop do that for maxTime
Definition at line 112 of file OAFeasibilityPump.cpp.
Referenced by enhancedOA(), and FP().
double FP | ( | AmplInterface & | nlp, | |
OsiSolverInterface & | linearModel, | |||
int | numIntCols, | |||
int * | inds, | |||
double * | vals, | |||
double | maxTime, | |||
int | maxIter, | |||
ResolutionInformation & | info, | |||
double | ub, | |||
int & | provenInfeas, | |||
double *& | solution | |||
) |
Definition at line 182 of file OAFeasibilityPump.cpp.
References BeginTimeGLOB, e, Bonmin::TNLPSolver::enableWarmStart(), findGoodSolution(), Bonmin::OsiTMINLPInterface::getColSolution(), Bonmin::OsiTMINLPInterface::getFeasibilityOuterApproximation(), Bonmin::OsiTMINLPInterface::getIterationCount(), Bonmin::OsiTMINLPInterface::getNumCols(), Bonmin::OsiTMINLPInterface::getObjValue(), Bonmin::OsiTMINLPInterface::getOuterApproximation(), Bonmin::OsiTMINLPInterface::getRowPrice(), info, Bonmin::OsiTMINLPInterface::initialSolve(), Bonmin::OsiTMINLPInterface::isInteger(), Bonmin::OsiTMINLPInterface::isProvenOptimal(), Bonmin::OsiTMINLPInterface::setColLower(), Bonmin::OsiTMINLPInterface::setColSolution(), Bonmin::OsiTMINLPInterface::setColUpper(), Bonmin::OsiTMINLPInterface::setRowPrice(), and Bonmin::OsiTMINLPInterface::solver().
Referenced by enhancedOA().
int enhancedOA | ( | AmplInterface & | solver1, | |
bool | doFp, | |||
double *& | solution | |||
) |
Enhanced OA code.
Definition at line 720 of file OAFeasibilityPump.cpp.
References BeginTimeGLOB, e, Bonmin::OsiTMINLPInterface::extractLinearRelaxation(), findGoodSolution(), FP(), Bonmin::OsiTMINLPInterface::getColLower(), Bonmin::OsiTMINLPInterface::getColSolution(), Bonmin::OsiTMINLPInterface::getColUpper(), Bonmin::OsiTMINLPInterface::getFeasibilityOuterApproximation(), Bonmin::OsiTMINLPInterface::getNumCols(), Bonmin::OsiTMINLPInterface::getObjValue(), Bonmin::OsiTMINLPInterface::getOuterApproximation(), Bonmin::OsiTMINLPInterface::getStrParam(), Bonmin::OsiTMINLPInterface::initialSolve(), Bonmin::OsiTMINLPInterface::isInteger(), Bonmin::OsiTMINLPInterface::isProvenOptimal(), OptParam::maxTime_, ResolutionInformation::mip_time, ResolutionInformation::n_iterations, ResolutionInformation::nlp_time, params, Bonmin::OsiTMINLPInterface::setColLower(), Bonmin::OsiTMINLPInterface::setColUpper(), ResolutionInformation::time, and Bonmin::OsiTMINLPInterface::turnOnSolverOutput().
Referenced by main().
int iteratedFP | ( | AmplInterface & | solver1, | |
bool | standAlone, | |||
double *& | solution | |||
) |
Iterated feasibility pump.
Definition at line 1204 of file OAFeasibilityPump.cpp.
References e, Bonmin::OsiTMINLPInterface::extractLinearRelaxation(), Bonmin::OsiTMINLPInterface::getColLower(), Bonmin::OsiTMINLPInterface::getColSolution(), Bonmin::OsiTMINLPInterface::getColUpper(), Bonmin::OsiTMINLPInterface::getFeasibilityOuterApproximation(), Bonmin::OsiTMINLPInterface::getNumCols(), Bonmin::OsiTMINLPInterface::getObjValue(), Bonmin::OsiTMINLPInterface::getOuterApproximation(), Bonmin::OsiTMINLPInterface::getStrParam(), Bonmin::OsiTMINLPInterface::initialSolve(), Bonmin::OsiTMINLPInterface::isInteger(), Bonmin::OsiTMINLPInterface::isProvenOptimal(), OptParam::maxTime_, params, Bonmin::OsiTMINLPInterface::setColLower(), Bonmin::OsiTMINLPInterface::setColUpper(), and Bonmin::OsiTMINLPInterface::turnOnSolverOutput().
Referenced by main().
double FPGeneralIntegers | ( | AmplInterface & | nlp, | |
OsiSolverInterface & | linearModel, | |||
int | numIntCols, | |||
int * | inds, | |||
double * | vals, | |||
double | maxTime, | |||
ResolutionInformation & | info, | |||
double | ub, | |||
bool & | provenInfeas | |||
) |
Definition at line 1430 of file OAFeasibilityPump.cpp.
References e, Bonmin::TNLPSolver::enableWarmStart(), Bonmin::OsiTMINLPInterface::getColLower(), Bonmin::OsiTMINLPInterface::getColSolution(), Bonmin::OsiTMINLPInterface::getColUpper(), Bonmin::OsiTMINLPInterface::getFeasibilityOuterApproximation(), Bonmin::OsiTMINLPInterface::getIterationCount(), Bonmin::OsiTMINLPInterface::getNumCols(), Bonmin::OsiTMINLPInterface::getObjValue(), Bonmin::OsiTMINLPInterface::getOuterApproximation(), Bonmin::OsiTMINLPInterface::getRowPrice(), info, Bonmin::OsiTMINLPInterface::initialSolve(), Bonmin::OsiTMINLPInterface::isInteger(), Bonmin::OsiTMINLPInterface::isProvenOptimal(), k, Bonmin::OsiTMINLPInterface::setColLower(), Bonmin::OsiTMINLPInterface::setColSolution(), Bonmin::OsiTMINLPInterface::setColUpper(), Bonmin::OsiTMINLPInterface::setRowPrice(), and Bonmin::OsiTMINLPInterface::solver().
Definition at line 70 of file OAFeasibilityPump.cpp.
Referenced by enhancedOA(), iteratedFP(), and main().
double BeginTimeGLOB [static] |