15 #ifndef MAD_DECOMPAPP_INCLUDED
16 #define MAD_DECOMPAPP_INCLUDED
18 #define __MAD_USE_QUALEX__
19 #define __MAD_USE_CLIQUER__
22 #include "DecompApp.h"
29 #ifdef __MAD_USE_CLIQUER__
31 #define cliquer_t MAD_Cliquer
33 #define cliquer_t void
36 #ifdef __MAD_USE_QUALEX__
38 #define MAD_Qualex MAD_Qualex
40 #define MAX_Qualex void
113 map<int, DecompConstraintSet*> & modelCore,
114 map<
int, vector<DecompConstraintSet* > > & modelRelax);
122 const double * redCostX,
123 const double * origCost,
125 const int n_origCols,
130 list<DecompVar*> & vars);
134 const double * origCost,
135 vector<DecompSolution*> & xhatIPFeas);
142 ostream * os = &cout)
const;
146 const double * solution,
164 int isOrtho(
const int * rowInd1,
175 const double * sortValues,
176 const double * origCost,
177 const double * redCost = NULL);
179 const double * sortValues,
180 const double * origCost,
181 vector<DecompSolution*> & solVec);
187 const int rowLen)
const;
const int getNOrigRows() const
Access method for member data.
int APPheuristics(const double *xhat, const double *origCost, vector< DecompSolution * > &xhatIPFeas)
TODO.
void APPcreateModel(double *&objCoeff, map< int, DecompConstraintSet * > &modelCore, map< int, vector< DecompConstraintSet * > > &modelRelax)
Create the application model(s).
const string m_classTag
Class id tag (for log / debugging).
int generateInitVars(DecompVarList &initVars)
TODO.
DecompStatus APPsolveRelaxed(const int whichModel, const double *redCostX, const double *origCost, const double alpha, const int n_origCols, const bool checkRC, const bool checkDup, bool &isExact, OsiSolverInterface *m_subprobSI, list< DecompVar * > &vars)
Solve the relaxed problem.
Class to read and write Lp files.
const int xIndex(const int i, const int b) const
Global index for column x[i,b].
MAD_MemPool m_auxMemPool
Auxiliary memory storage.
int isOrtho(const int *rowInd1, const int *rowInd2, const int rowLen1, const int rowLen2)
Are the two vectors orthogonal?
void printRowMarks(const int *rowInd, const int rowLen) const
Global index for column x[i,b].
const int getBeta() const
Global index for column x[i,b].
MAD_DecompParam m_appParam
Application specific parameters.
MAD_DecompApp(UtilParameters &utilParam)
Default constructor.
MAD_DecompApp(const MAD_DecompApp &)
virtual void initializeApp()
Initialize applications.
Abstract Base Class for describing an interface to a solver.
pair< int, int > xIndexInv(const int index) const
Return the indices (i,b) given the index.
CoinLpIO m_instance
MAD problem instance data.
Relaxation is a Maximum Weighted Clique Problem.
MAD_DecompApp & operator=(const MAD_DecompApp &)
void printOriginalColumn(const int index, ostream *os=&cout) const
Print an original column (format for this app).
void graph_free(graph_t *g)
virtual ~MAD_DecompApp()
Default constructor.
cliquer_t * m_cliquer
Storage for cliquer graph.
int heuristicGreedy(vector< GreedyPoint > &greedyPoints, const MAD_HeurSortDir sortDir, const double *sortValues, const double *origCost, const double *redCost=NULL)
TODO.
std::list< DecompVar * > DecompVarList
MAD_Qualex * m_qualex
Storage for MAD_Qualex interface.
const int getKappa() const
Global index for column x[i,b].
void printOriginalSolution(const int n_cols, const double *solution, ostream *os) const
Print the full original column (format for this app).
The main application class.
graph_t * m_conflictGraph