#include <scipParaInitiator.h>
Public Member Functions | |
ScipParaInitiator (UG::ParaComm *inComm, UG::ParaTimer *inTimer) | |
virtual | ~ScipParaInitiator () |
virtual int | init (UG::ParaParamSet *paraParams, int argc, char **argv) |
int | reInit (int nRestartedRacing) |
UG::ParaInstance * | getParaInstance () |
UG::BbParaDiffSubproblem * | makeRootNodeDiffSubproblem () |
bool | tryToSetIncumbentSolution (UG::BbParaSolution *sol, bool checksol) |
void | sendSolverInitializationMessage () |
void | generateRacingRampUpParameterSets (int nParamSets, UG::ParaRacingRampUpParamSet **racingRampUpParamSets) |
UG::BbParaSolution * | getGlobalBestIncumbentSolution () |
int | getNSolutions () |
double | convertToExternalValue (double internalValue) |
double | convertToInternalValue (double externalValue) |
char * | getSolutionFileName () |
double | getAbsgap (double dualBoundValue) |
double | getGap (double dualBoundValue) |
double | getAbsgapValue () |
double | getAbsgapValue (SCIP *inScip) |
double | getGapValue () |
double | getGapValue (SCIP *inScip) |
double | getEpsilon () |
void | writeSolution (const std::string &message) |
void | writeParaInstance (const std::string &filename) |
void | writeSolverParameters (std::ostream *os) |
std::string | getStatus () |
void | printSolverVersion (std::ostream *os) |
bool | isFeasibleSolution () |
void | accumulateInitialStat (UG::ParaInitialStat *initialStat) |
void | setInitialStatOnDiffSubproblem (int minDepth, int maxDepth, UG::BbParaDiffSubproblem *diffSubproblem) |
void | setFinalSolverStatus (UG::FinalSolverState status) |
void | setNumberOfNodesSolved (long long n) |
void | setDualBound (double bound) |
void | outputFinalSolverStatistics (std::ostream *os, double time) |
void | setUserPlugins (ScipUserPlugins *inUi) |
void | includeUserPlugins (SCIP *inScip) |
bool | isObjIntegral () |
void | interrupt () |
Public Member Functions inherited from BbParaInitiator | |
BbParaInitiator (ParaComm *inComm, ParaTimer *inTimer) | |
constructor More... | |
virtual | ~BbParaInitiator () |
destructor More... | |
bool | isSolvedAtInit () |
check if problem is solved at init or not More... | |
bool | isSolvedAtReInit () |
check if problem is solved at reInit or not More... | |
void | setTightenedVarLbs (int i, double v) |
set tightened variable lower bound TODO: this function should be in inherited class More... | |
void | setTightenedVarUbs (int i, double v) |
set tightened variable upper bound TODO: this function should be in inherited class More... | |
double | getTightenedVarLbs (int i) |
get tightened variable lower bound TODO: this function should be in inherited class More... | |
double | getTightenedVarUbs (int i) |
get tightened variable upper bound TODO: this function should be in inherited class More... | |
bool | areTightenedVarBounds () |
check if there are tightened lower or upper bound TODO: this function should be in inherited class More... | |
virtual bool | canGenerateSpecialCutOffValue () |
check if solver can generate special cut off value or not More... | |
Public Member Functions inherited from ParaInitiator | |
ParaInitiator (ParaComm *inComm, ParaTimer *inTimer) | |
constructor More... | |
virtual | ~ParaInitiator () |
destructor More... | |
bool | isWarmStarted () |
check if the execution is warm started (restarted) or not More... | |
const char * | getPrefixWarm () |
get prefix of warm start (restart) files More... | |
ParaComm * | getParaComm () |
get communicator being used More... | |
Protected Member Functions | |
bool | addRootNodeCuts () |
void | outputProblemInfo (int *nNonLinearConsHdlrs) |
bool | onlyLinearConsHandler () |
Initiator class
Definition at line 60 of file scipParaInitiator.h.
ScipParaInitiator | ( | UG::ParaComm * | inComm, |
UG::ParaTimer * | inTimer | ||
) |
constructor
Definition at line 99 of file scipParaInitiator.h.
|
virtual |
destructor
Definition at line 114 of file scipParaInitiator.h.
References ScipParaInitiator::generatedIsolname, ParaParamSet::getBoolParamValue(), ScipParaInitiator::init(), ScipParaInitiator::instance, UG::Quiet, ScipParaInitiator::reInit(), ScipParaInitiator::scipDiffParamSet, ScipParaInitiator::scipDiffParamSetRoot, ScipParaInitiator::solution, and ScipParaInitiator::userPlugins.
|
virtual |
set initial stat on initiator
Reimplemented from BbParaInitiator.
Definition at line 2226 of file scipParaInitiator.cpp.
References ScipParaInitialStat::accumulateOn(), ScipParaInstance::getParaInstanceScip(), and ScipParaInstance::isOriginalIndeciesMap().
Referenced by ScipParaInitiator::isFeasibleSolution().
|
protected |
Definition at line 94 of file scipParaInitiator.cpp.
References UG::NoPreprocessingInLC, and UG::TimeLimit.
|
virtual |
convert an internal value to external value
Implements BbParaInitiator.
Definition at line 208 of file scipParaInitiator.h.
References ScipParaInstance::convertToExternalValue().
double convertToInternalValue | ( | double | externalValue | ) |
convert an external value to internal value
Definition at line 216 of file scipParaInitiator.h.
References ScipParaInstance::convertToInternalValue().
|
virtual |
generate racing ramp-up parameter sets
< keep the number of generated params
< keep the number of variable permutation seed; start from default: -1
< keep the number of branching order seed
Implements ParaInitiator.
Definition at line 2090 of file scipParaInitiator.cpp.
References DEF_SCIP_PARA_COMM, UG::MaxNRacingParamSetSeed, UG::NMaxRacingBaseParameters, UG::RacingParamsDirPath, UG::RacingRampUpTerminationCriteria, UG::StopRacingNumberOfNodesLeft, UG::StopRacingTimeLimit, UG::TryNBranchingOrderInRacing, and UG::TryNVariablegOrderInRacing.
Referenced by main(), and ScipParaInitiator::makeRootNodeDiffSubproblem().
|
virtual |
get absgap
get gap
Implements BbParaInitiator.
Definition at line 1770 of file scipParaInitiator.cpp.
References REALABS.
Referenced by ScipParaInitiator::getSolutionFileName().
|
virtual |
get absgap value specified
Implements BbParaInitiator.
Definition at line 237 of file scipParaInitiator.h.
References ScipParaInitiator::absgap.
double getAbsgapValue | ( | SCIP * | inScip | ) |
get absgap value for a specific SCIP
Definition at line 247 of file scipParaInitiator.h.
|
virtual |
get epsilon
Implements ParaInitiator.
Definition at line 1804 of file scipParaInitiator.cpp.
Referenced by ScipParaInitiator::getGapValue().
|
virtual |
get gap
Implements BbParaInitiator.
Definition at line 1782 of file scipParaInitiator.cpp.
References REALABS.
Referenced by ScipParaInitiator::getSolutionFileName().
|
virtual |
get gap value specified
Implements BbParaInitiator.
Definition at line 256 of file scipParaInitiator.h.
References ScipParaInitiator::gap.
double getGapValue | ( | SCIP * | inScip | ) |
get gap value for a specific SCIP
Definition at line 266 of file scipParaInitiator.h.
References ScipParaInitiator::getEpsilon(), ScipParaInitiator::getStatus(), ScipParaInitiator::printSolverVersion(), ScipParaInitiator::writeParaInstance(), ScipParaInitiator::writeSolution(), and ScipParaInitiator::writeSolverParameters().
|
virtual |
Implements BbParaInitiator.
Definition at line 197 of file scipParaInitiator.h.
References ScipParaInitiator::solution.
|
virtual |
Implements BbParaInitiator.
Definition at line 202 of file scipParaInitiator.h.
|
virtual |
get instance
Implements ParaInitiator.
Definition at line 175 of file scipParaInitiator.h.
References ScipParaInitiator::instance.
Referenced by main(), outputParaParamSet(), and outputSolverParams().
char* getSolutionFileName | ( | ) |
get solution file name
Definition at line 224 of file scipParaInitiator.h.
References ScipParaInitiator::getAbsgap(), ScipParaInitiator::getGap(), and ScipParaInitiator::solutionFileName.
|
virtual |
get solving status string
Implements ParaInitiator.
Definition at line 2195 of file scipParaInitiator.cpp.
Referenced by ScipParaInitiator::getGapValue().
void includeUserPlugins | ( | SCIP * | inScip | ) |
include user plugins
Definition at line 333 of file scipParaInitiator.h.
|
virtual |
init function
the first argument is runtime parameter file for ParaSCIP
the second argument is problem file name
to omit this parameter
to omit this parameter and the following value
user include plugins
user include plugins
user include plugins
instance needs to be generated befor presolving
check if feasible solution is found or not. If it was found, then generate paraSolution
Implements ParaInitiator.
Definition at line 205 of file scipParaInitiator.cpp.
References DEF_SCIP_PARA_COMM, EPSLT, UG::HardTimeLimitIsReached, UG::InstanceTransferMethod, UG::LogSolvingStatusFilePath, ParaSCIP::MemoryLimit, UG::MemoryLimitIsReached, memoryLimitOfSolverSCIP, MINEPSILON, UG::NoPreprocessingInLC, UG::OutputPresolvedInstance, PARA_COMM_CALL, UG::ParaINT, UG::ProblemWasSolved, UG::Quiet, UG::RampUpPhaseProcess, SCIP_FIXED_MEMORY_FACTOR, SCIP_MEMORY_COPY_FACTOR, SCIP_PRESOLVIG_MEMORY_FACTOR, UG::SolutionFilePath, UG::SolverSettingsAtRacing, UG::SolverSettingsAtRootNode, UG::SolverSettingsExceptRootNode, UG::SolverSettingsForInitialPresolving, THROW_LOGICAL_ERROR1, THROW_LOGICAL_ERROR3, UG::TimeLimit, UG::UseRootNodeCuts, and virtualMemUsedAtLc.
Referenced by main(), and ScipParaInitiator::~ScipParaInitiator().
void interrupt | ( | ) |
Definition at line 344 of file scipParaInitiator.h.
|
virtual |
check if feasilbe soltuion exists or not
Implements BbParaInitiator.
Definition at line 300 of file scipParaInitiator.h.
References ScipParaInitiator::accumulateInitialStat(), ScipParaInitiator::outputFinalSolverStatistics(), ScipParaInitiator::setDualBound(), ScipParaInitiator::setFinalSolverStatus(), ScipParaInitiator::setInitialStatOnDiffSubproblem(), ScipParaInitiator::setNumberOfNodesSolved(), and ScipParaInitiator::setUserPlugins().
|
virtual |
returns whether the objective value is known to be integral in every feasible solution
Reimplemented from BbParaInitiator.
Definition at line 342 of file scipParaInitiator.h.
|
virtual |
make DiffSubproblem object for root node
Implements BbParaInitiator.
Definition at line 182 of file scipParaInitiator.h.
References ScipParaInitiator::generateRacingRampUpParameterSets(), ScipParaInitiator::sendSolverInitializationMessage(), and ScipParaInitiator::tryToSetIncumbentSolution().
Referenced by main().
|
protected |
Definition at line 2486 of file scipParaInitiator.cpp.
|
virtual |
output solution status
Implements ParaInitiator.
Definition at line 2294 of file scipParaInitiator.cpp.
References UG::Aborted, UG::ComputingWasInterrupted, EPSLT, UG::GivenGapIsReached, UG::HardTimeLimitIsReached, UG::InitialNodesGenerated, UG::MemoryLimitIsReached, MINEPSILON, UG::ProblemWasSolved, REALABS, UG::RequestedSubProblemsWereSolved, and THROW_LOGICAL_ERROR1.
Referenced by ScipParaInitiator::isFeasibleSolution(), and main().
|
protected |
Definition at line 2443 of file scipParaInitiator.cpp.
|
virtual |
print solver version output file (or NULL for standard output)
print solver version
os | output file (or NULL for standard output) |
Implements ParaInitiator.
Definition at line 2211 of file scipParaInitiator.cpp.
Referenced by ScipParaInitiator::getGapValue().
|
virtual |
reInit function
save incumbent solution
check if feasible solution is found or not. If it was found, then generate paraSolution
Implements ParaInitiator.
Definition at line 1083 of file scipParaInitiator.cpp.
References DEF_SCIP_PARA_COMM, UG::InstanceTransferMethod, UG::ProblemWasSolved, UG::Quiet, and UG::UseRootNodeCuts.
Referenced by ScipParaInitiator::~ScipParaInitiator().
|
virtual |
send solver initialization message
if a feasible solution exists, broadcast the solution
Implements ParaInitiator.
Definition at line 1680 of file scipParaInitiator.cpp.
References UG::CommunicateTighterBoundsInRacing, DEF_SCIP_PARA_COMM, UG::DistributeBestPrimalSolution, UG::NoUpperBoundTransferInRacing, UG::ParaDOUBLE, UG::ParaINT, and UG::RampUpPhaseProcess.
Referenced by main(), and ScipParaInitiator::makeRootNodeDiffSubproblem().
|
virtual |
set final dual bound
Implements BbParaInitiator.
Definition at line 2282 of file scipParaInitiator.cpp.
Referenced by ScipParaInitiator::isFeasibleSolution().
|
virtual |
set final solver status
Implements BbParaInitiator.
Definition at line 2264 of file scipParaInitiator.cpp.
Referenced by ScipParaInitiator::isFeasibleSolution().
|
virtual |
set initial stat on DiffSubproblem
Reimplemented from BbParaInitiator.
Definition at line 2244 of file scipParaInitiator.cpp.
References ScipParaDiffSubproblem::addInitialBranchVarStats(), ScipParaInstance::getParaInstanceScip(), and ScipParaInstance::isOriginalIndeciesMap().
Referenced by ScipParaInitiator::isFeasibleSolution().
|
virtual |
set number of nodes solved
Implements BbParaInitiator.
Definition at line 2273 of file scipParaInitiator.cpp.
Referenced by ScipParaInitiator::isFeasibleSolution().
void setUserPlugins | ( | ScipUserPlugins * | inUi | ) |
set user plugins
Definition at line 2502 of file scipParaInitiator.cpp.
References DEF_SCIP_PARA_COMM, and MINEPSILON.
Referenced by ScipParaInitiator::isFeasibleSolution(), and setUserPlugins().
|
virtual |
try to set incumbent solution
the given solution should be generated in original space, therefore the solution values cannot use for ParaSCIP
relax tolerance, since very small difference raised the following assertion
the given solution should be generated in original space, therefore the solution values cannot use for ParaSCIP
Implements BbParaInitiator.
Definition at line 1277 of file scipParaInitiator.cpp.
References UG::CheckFeasibilityInLC, EPSEQ, ScipParaSolution::getNVars(), ScipParaSolution::getObjectiveFunctionValue(), ScipParaInstance::getOrigProbIndex(), ScipParaInstance::getSolValuesForOriginalProblem(), ScipParaSolution::getValues(), ScipParaSolution::indexAmongSolvers(), ScipParaInstance::isOriginalIndeciesMap(), UG::Quiet, ScipParaSolution::setObjectiveFuntionValue(), and ScipParaSolution::setValue().
Referenced by ScipParaInitiator::makeRootNodeDiffSubproblem().
|
virtual |
write ParaInstance
Implements ParaInitiator.
Definition at line 1917 of file scipParaInitiator.cpp.
References ScipParaInstance::getParaInstanceScip(), and ScipParaInstance::isOriginalIndeciesMap().
Referenced by ScipParaInitiator::getGapValue().
|
virtual |
write solution
Implements ParaInitiator.
Definition at line 1813 of file scipParaInitiator.cpp.
References ScipParaInstance::getParaInstanceScip(), ScipParaInstance::isOriginalIndeciesMap(), UG::Quiet, and UG::SolutionFilePath.
Referenced by ScipParaInitiator::getGapValue().
|
virtual |
write solver runtime parameters
Implements ParaInitiator.
Definition at line 1940 of file scipParaInitiator.cpp.
References ScipParaSolution::getObjectiveFunctionValue().
Referenced by ScipParaInitiator::getGapValue(), and outputSolverParams().
|
protected |
Definition at line 86 of file scipParaInitiator.h.
Referenced by ScipParaInitiator::getAbsgapValue().
|
protected |
Definition at line 83 of file scipParaInitiator.h.
|
protected |
Definition at line 84 of file scipParaInitiator.h.
|
protected |
Definition at line 87 of file scipParaInitiator.h.
Referenced by ScipParaInitiator::getGapValue().
|
protected |
Definition at line 80 of file scipParaInitiator.h.
Referenced by ScipParaInitiator::~ScipParaInitiator().
|
protected |
Definition at line 64 of file scipParaInitiator.h.
Referenced by ScipParaInitiator::getParaInstance(), and ScipParaInitiator::~ScipParaInitiator().
|
protected |
Definition at line 79 of file scipParaInitiator.h.
|
protected |
Definition at line 69 of file scipParaInitiator.h.
|
protected |
Definition at line 78 of file scipParaInitiator.h.
|
protected |
Definition at line 68 of file scipParaInitiator.h.
|
protected |
Definition at line 85 of file scipParaInitiator.h.
|
protected |
Definition at line 88 of file scipParaInitiator.h.
|
protected |
Definition at line 63 of file scipParaInitiator.h.
|
protected |
Definition at line 73 of file scipParaInitiator.h.
|
protected |
Definition at line 77 of file scipParaInitiator.h.
|
protected |
Definition at line 72 of file scipParaInitiator.h.
|
protected |
Definition at line 67 of file scipParaInitiator.h.
Referenced by ScipParaInitiator::~ScipParaInitiator().
|
protected |
Definition at line 66 of file scipParaInitiator.h.
Referenced by ScipParaInitiator::~ScipParaInitiator().
|
protected |
Definition at line 76 of file scipParaInitiator.h.
|
protected |
Definition at line 74 of file scipParaInitiator.h.
|
protected |
Definition at line 75 of file scipParaInitiator.h.
|
protected |
Definition at line 65 of file scipParaInitiator.h.
Referenced by ScipParaInitiator::getGlobalBestIncumbentSolution(), and ScipParaInitiator::~ScipParaInitiator().
|
protected |
Definition at line 70 of file scipParaInitiator.h.
|
protected |
Definition at line 81 of file scipParaInitiator.h.
Referenced by ScipParaInitiator::getSolutionFileName().
|
protected |
Definition at line 71 of file scipParaInitiator.h.
|
protected |
Definition at line 82 of file scipParaInitiator.h.
Referenced by ScipParaInitiator::~ScipParaInitiator().