13 #ifndef VRP_CVRPSEP_INCLUDED
14 #define VRP_CVRPSEP_INCLUDED
111 const double etol = 1.0e-8){
125 for(e = 0; e < nEdges; e++){
137 = uv.second == 0 ? nVerts : uv.second;
139 = uv.first == 0 ? nVerts : uv.first;
141 printf(
"XLP[%d,%d -> %d,%d] = %g\n",
146 (*m_osLog) <<
"XLP[" << uv.first <<
"," << uv.second;
149 (*m_osLog) <<
" = " << x[e] << endl;
165 const int capacity = graphLib.
capacity;
172 char IntegerAndFeasible;
176 CAPSEP_SeparateCapCuts(nVerts - 1,
177 const_cast<int*>(demand),
190 printf(
"Found %d capacity cuts. MaxViolation=%g\n",
202 const int capacity = graphLib.
capacity;
211 dynamic_bitset<> inS(nVerts);
212 for(j = 1; j <= CP->IntListSize; j++){
213 if(CP->IntList[j] == nVerts)
216 inS.set(CP->IntList[j]);
225 newCuts.push_back(cut);
void buildLpSol(const double *x, const int nNzs, const double etol=1.0e-8)
std::list< DecompCut * > DecompCutList
bool UtilIsZero(const double x, const double etol=1.0e-8)
double getUpperBound() const
pair< int, int > UtilBothEndsU(const int index)
void init(const VRP_Instance *vrp)
VRP_CVRPsep(const int maxCuts=500)
#define CoinAssertHint(expression, hint)
int sepCapacityCuts(const int maxCuts=500)
UtilGraphLib m_graphLib
Data for an instance from VRPLIB.
CnstrMgrPointer m_oldCuts
#define UTIL_DEBUG(param, level, x)
const VRP_Instance * m_vrp
void createVrpCuts(DecompCutList &newCuts)
#define CoinAssert(expression)
CnstrMgrPointer m_newCuts