37#ifndef __SCIP_PARA_DIFF_SUBPROBLEM_H__
38#define __SCIP_PARA_DIFF_SUBPROBLEM_H__
50#include "scip/cons_bounddisjunction.h"
430#ifdef UG_DEBUG_SOLUTION
431 int includeOptimalSol;
447#ifdef UG_DEBUG_SOLUTION
448 includeOptimalSol = 0;
456 SCIP_VAR **newBranchVars,
457 SCIP_Real *newBranchBounds,
458 SCIP_BOUNDTYPE *newBoundTypes,
460 SCIP_CONS **addedConss
476 if( !diffSubproblem )
return;
731#ifdef UG_DEBUG_SOLUTION
732 includeOptimalSol = diffSubproblem->includeOptimalSol;
839 for(
int j = 0; j < i; j++)
842 name += (std::strlen(name) + 1);
888 for(
int j = 0; j < i; j++)
891 name += (std::strlen(name) + 1);
1104 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1111 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1118 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1125 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1132 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1139 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1146 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1153 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1160 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1167 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1174 assert( i >= 0 && i <varBranchStats->nVarBranchStats );
1288 SCIP_CONS **addedConss
1296 SCIP_CONS **addedConss
1332 void write(gzstream::ogzstream &out);
1354 std::ostringstream s;
1397 s <<
", nbd: 0, nbdt: 0";
1415 s <<
", nvv: 0, nvvt: 0";
1420#ifdef UG_DEBUG_SOLUTION
1421 bool isOptimalSolIncluded(){
return (includeOptimalSol != 0); }
1422 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.