clscons_consnamelevenshtein.cpp
Go to the documentation of this file.
34 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
51 #define DEC_DESC "constraint names (according to levenshtein distance graph)" /**< short description of classification*/
151 gcg::ConsPartition* classifier = new gcg::ConsPartition(scip, classifierName.str().c_str(), 0, detprobdata->getNConss());
157 SCIPverbMessage(scip, SCIP_VERBLEVEL_HIGH, NULL, " skipped levenshtein distance based constraint classes calculating since number of constraints %d exceeds limit %d \n", detprobdata->getNConss(), nmaxconss );
162 std::vector<std::vector<int>> levenshteindistances(detprobdata->getNConss(), std::vector<int>( detprobdata->getNConss(), - 1 ));
175 levenshteindistances[i][j] = calcLevenshteinDistance(consnamesToCompare[i], consnamesToCompare[j]);
200 /* consider all constraints which are connected to the current constraint by means of levenshtein distance */
226 text << "This class contains all constraints with a name similar to \"" << consnamesToCompare[firstUnreached] << "\".";
227 classifier->addClass(consnamesToCompare[firstUnreached].c_str(), text.str().c_str(), gcg::BOTH);
236 SCIPverbMessage(scip, SCIP_VERBLEVEL_HIGH, NULL, " Consclassifier levenshtein: connectivity of %d yields a classification with %d different constraint classes. \n", connectivity, currentClass + 1);
253 DECincludeConsClassifier(scip, DEC_CLASSIFIERNAME, DEC_DESC, DEC_PRIORITY, DEC_ENABLED, classifierdata,
int getNConss()
returns the number of variables considered in the detprobdata
Definition: class_detprobdata.cpp:796
SCIP_RETCODE SCIPincludeConsClassifierConsnameLevenshtein(SCIP *scip)
Definition: clscons_consnamelevenshtein.cpp:246
constraint handler for structure detection
void assignConsToClass(int consindex, int classindex)
Definition: class_conspartition.cpp:80
class representing a partition of a set of constraints
Definition: class_conspartition.h:53
DETPROBDATA * GCGconshdlrDecompGetDetprobdataOrig(SCIP *scip)
help method to access detprobdata for unpresolved problem
Definition: cons_decomp.cpp:5249
various SCIP helper methods
SCIP_CONS * getCons(int consIndex)
returns the SCIP constraint related to a constraint index
Definition: class_detprobdata.cpp:698
static DEC_DECL_CONSCLASSIFY(classifierClassify)
Definition: clscons_consnamelevenshtein.cpp:128
int addClass(const char *name, const char *desc, CONS_DECOMPINFO decompInfo)
Definition: class_conspartition.cpp:71
C++ interface of cons_decomp.
Definition: class_detprobdata.h:106
classifies constraints according to levenshtein distance graph of their names
DETPROBDATA * GCGconshdlrDecompGetDetprobdataPresolved(SCIP *scip)
help method to access detprobdata for transformed problem
Definition: cons_decomp.cpp:5263
int calcLevenshteinDistance(std::string s, std::string t)
Definition: clscons_consnamelevenshtein.cpp:82
void addConsPartition(ConsPartition *partition)
adds a constraint partition if it is no duplicate of an existing constraint partition
Definition: class_detprobdata.cpp:505
SCIP_RETCODE DECincludeConsClassifier(SCIP *scip, const char *name, const char *description, int priority, SCIP_Bool enabled, DEC_CLASSIFIERDATA *classifierdata, DEC_DECL_FREECONSCLASSIFIER((*freeClassifier)),)
Definition: cons_decomp.cpp:2992
class storing partialdecs and the problem matrix