37#ifndef __SCIP_PARA_DIFF_SUBPROBLEM_H__
38#define __SCIP_PARA_DIFF_SUBPROBLEM_H__
50#include "scip/history.h"
51#include "scip/cons_bounddisjunction.h"
431#ifdef UG_DEBUG_SOLUTION
432 int includeOptimalSol;
448#ifdef UG_DEBUG_SOLUTION
449 includeOptimalSol = 0;
457 SCIP_VAR **newBranchVars,
458 SCIP_Real *newBranchBounds,
459 SCIP_BOUNDTYPE *newBoundTypes,
461 SCIP_CONS **addedConss
477 if( !diffSubproblem )
return;
732#ifdef UG_DEBUG_SOLUTION
733 includeOptimalSol = diffSubproblem->includeOptimalSol;
840 for(
int j = 0; j < i; j++)
843 name += (std::strlen(name) + 1);
889 for(
int j = 0; j < i; j++)
892 name += (std::strlen(name) + 1);
1105 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1112 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1119 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1126 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1133 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1140 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1147 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1154 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1161 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1168 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1175 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1289 SCIP_CONS **addedConss
1297 SCIP_CONS **addedConss
1333 void write(gzstream::ogzstream &out);
1355 std::ostringstream s;
1398 s <<
", nbd: 0, nbdt: 0";
1416 s <<
", nvv: 0, nvvt: 0";
1421#ifdef UG_DEBUG_SOLUTION
1422 bool isOptimalSolIncluded(){
return (includeOptimalSol != 0); }
1423 void setOptimalSolIndicator(
int i){ includeOptimalSol = i; }
Base class for a container which has difference between instance and subproblem.
Base class for instance data.
int * nVarsBoundDisjunction
SCIP_Bool * flagBoundDisjunctionInitial
SCIP_Bool * flagBoundDisjunctionDynamic
SCIP_Bool * flagBoundDisjunctionCheck
int ** idxBoundDisjunctionVars
~ScipParaDiffSubproblemBoundDisjunctions()
SCIP_Bool * flagBoundDisjunctionStickingatnode
SCIP_Bool * flagBoundDisjunctionRemovable
SCIP_BOUNDTYPE ** boundTypesBoundDisjunction
SCIP_Bool * flagBoundDisjunctionEnforce
SCIP_Real ** boundsBoundDisjunction
SCIP_Bool * flagBoundDisjunctionModifiable
ScipParaDiffSubproblemBoundDisjunctions()
SCIP_Bool * flagBoundDisjunctionLocal
int nTotalVarsBoundDisjunctions
SCIP_Bool * flagBoundDisjunctionPropagate
SCIP_Bool * flagBoundDisjunctionSeparate
int ** idxLinearCoefsVars
ScipParaDiffSubproblemBranchLinearCons()
~ScipParaDiffSubproblemBranchLinearCons()
ScipParaDiffSubproblemBranchSetppcCons()
~ScipParaDiffSubproblemBranchSetppcCons()
ScipParaDiffSubproblemLinearCons()
int ** idxLinearCoefsVars
~ScipParaDiffSubproblemLinearCons()
~ScipParaDiffSubproblemVarBranchStats()
ScipParaDiffSubproblemVarBranchStats()
~ScipParaDiffSubproblemVarValues()
SCIP_Real ** varValueDowninfer
ScipParaDiffSubproblemVarValues()
SCIP_Real ** varValueDownconflen
SCIP_Real ** varValueUpinfer
SCIP_Real ** varValueUpcutoff
SCIP_Real ** varVlaueUpvsids
SCIP_Real ** varValueDowncutoff
SCIP_Real ** varValueUpconflen
SCIP_Real ** varValueDownvsids
int getNBranchConsSetppcConss()
SCIP_BOUNDTYPE getBoundType(int i)
int * indicesAmongSolvers
void addBranchLinearConss(SCIP *scip, ScipParaSolver *scipParaSolver, int nLenarConss, int nAddedConss, SCIP_CONS **addedConss)
int getNVarsBoundDisjunction(int i)
BbParaDiffSubproblem * createDiffSubproblem(UG::ParaComm *comm, UG::ParaInitiator *initiator, int n, UG::BbParaFixedVariable *fixedVars)
const std::string toString()
SCIP_Real getBoundsBoundDisjunction(int i, int j)
SCIP_Real getBranchConsLinearLhs(int i)
void read(UG::ParaComm *comm, gzstream::igzstream &in, bool onlyBoundChanges)
ScipParaDiffSubproblemBranchLinearCons * getBranchLinearConss()
ScipParaDiffSubproblemBranchLinearCons * branchLinearConss
SCIP_Real getVarValueUpinfer(int i, int j)
ScipParaDiffSubproblemBoundDisjunctions * boundDisjunctions
SCIP_Real getBendersLinearCoefs(int i, int j)
char * getBranchConsLinearConsNames(int i)
int getNLinearCoefs(int i)
SCIP_Real getVarValueDownconflen(int i, int j)
int getBranchConsSetppcVars(int i, int j)
SCIP_Real getBranchConsLinearRhs(int i)
virtual ~ScipParaDiffSubproblem()
ScipParaDiffSubproblem(ScipParaDiffSubproblem *diffSubproblem)
int getNBendersLinearCoefs(int i)
int getIdxLBranchStatsVars(int i)
SCIP_Real getBranchBound(int i)
void addBranchVarStats(SCIP *scip, ScipParaSolver *scipParaSolver)
SCIP_BOUNDTYPE * boundTypes
SCIP_Real getLinearRhs(int i)
SCIP_Real getLinearLhs(int i)
int getIdxVarValueVars(int i)
SCIP_Real getLinearCoefs(int i, int j)
char * getBranchConsSetppcConsNames(int i)
SCIP_Bool getFlagBoundDisjunctionModifiable(int i)
SCIP_Bool getFlagBoundDisjunctionLocal(int i)
int getNTotalVarsBoundDisjunctions()
void addLocalNodeInfo(SCIP *scip, ScipParaSolver *scipParaSolver)
ScipParaDiffSubproblemVarBranchStats * varBranchStats
int getFixedVariables(UG::ParaInstance *instance, UG::BbParaFixedVariable **fixedVars)
SCIP_Real getDowninfer(int i)
SCIP_Real getVarValueDownvsids(int i, int j)
SCIP_Real getDowncutoff(int i)
SCIP_Real getUpconflen(int i)
int getNBendersLinearConss()
const std::string toStringStat()
void addBranchSetppcConss(SCIP *scip, ScipParaSolver *scipParaSolver, int nSetpartConss, int nAddedConss, SCIP_CONS **addedConss)
SCIP_Real getDownvsids(int i)
ScipParaDiffSubproblemVarValues * varValues
int getNVarValueValues(int i)
SCIP_Real getUpinfer(int i)
int getBranchConsLinearConsNames()
SCIP_Real getDownconflen(int i)
SCIP_Bool getFlagBoundDisjunctionEnforce(int i)
int getIdxBendersLinearCoefsVars(int i, int j)
SCIP_Bool getFlagBoundDisjunctionSeparate(int i)
int getIdxLinearCoefsVars(int i, int j)
int getNBoundDisjunctions()
void addInitialBranchVarStats(int minDepth, int maxDepth, SCIP *scip)
SCIP_Bool getFlagBoundDisjunctionRemovable(int i)
int getBranchConsLinearIdxCoefsVars(int i, int j)
SCIP_Bool getFlagBoundDisjunctionDynamic(int i)
ScipParaDiffSubproblemBranchSetppcCons * branchSetppcConss
SCIP_Real getUppscost(int i)
void write(gzstream::ogzstream &out)
void addBoundDisjunctions(SCIP *scip, ScipParaSolver *scipParaSolver)
SCIP_BOUNDTYPE getBoundTypesBoundDisjunction(int i, int j)
SCIP_Real getDownpscost(int i)
SCIP_Real getVarValueUpcutoff(int i, int j)
SCIP_Real getUpcutoff(int i)
SCIP_Real getBranchConsLinearCoefs(int i, int j)
SCIP_Real getUpvsids(int i)
int getIdxBoundDisjunctionVars(int i, int j)
ScipParaDiffSubproblemLinearCons * linearConss
int getBranchConsSetppcNVars(int i)
SCIP_Bool getFlagBoundDisjunctionInitial(int i)
int getNBranchConsLinearConss()
SCIP_Bool getFlagBoundDisjunctionCheck(int i)
SCIP_Real getVarValueDowninfer(int i, int j)
SCIP_Real getVarValueUpconflen(int i, int j)
ScipParaDiffSubproblemLinearCons * bendersLinearConss
SCIP_Bool getFlagBoundDisjunctionPropagate(int i)
SCIP_Real getVarValue(int i, int j)
ScipParaDiffSubproblemBranchSetppcCons * getBranchSetppcConss()
int getBranchConsSetppcType(int i)
int getBranchConsNLinearCoefs(int i)
SCIP_Real getBendersLinearLhs(int i)
int getBranchConsSetppcConsNames()
void addVarValueStats(SCIP *scip, ScipParaSolver *scipParaSolver)
SCIP_Bool getFlagBoundDisjunctionStickingatnode(int i)
SCIP_Real getVarValueDowncutoff(int i, int j)
SCIP_Real getVarVlaueUpvsids(int i, int j)
SCIP_Real getBendersLinearRhs(int i)
Class for the difference between instance and subproblem.
BbParaDiffSubproblem()
DO NOT HAVE DATA MEMBER!!
Base class of communicator object.
static ScipParaCommTh * comm
Utilities for handling gzipped input and output streams.
struct ParaSCIP::BranchConsSetppcInfo_t BranchConsSetppcInfo
BranchConsSetppcInfo * BranchConsSetppcInfoPtr
BranchConsLinearInfo * BranchConsLinearInfoPtr
struct ParaSCIP::BranchConsLinearInfo_t BranchConsLinearInfo
Base class of communicator for UG Framework.