00001 //===========================================================================// 00002 // This file is part of the Decomp Solver Framework. // 00003 // // 00004 // Decomp is distributed under the Common Public License as part of the // 00005 // COIN-OR repository (http://www.coin-or.org). // 00006 // // 00007 // Author: Matthew Galati, Lehigh University // 00008 // // 00009 // Copyright (C) 2002-2013, Lehigh University, Matthew Galati, and Ted Ralphs// 00010 // All Rights Reserved. // 00011 //===========================================================================// 00012 00013 #ifndef MCF_DECOMPAPP_INCLUDED 00014 #define MCF_DECOMPAPP_INCLUDED 00015 00016 //===========================================================================// 00017 #include "DecompApp.h" 00018 00019 //===========================================================================// 00020 #include "MCF_Instance.h" 00021 #include "MCF_Param.h" 00022 //===========================================================================// 00023 00024 //===========================================================================// 00035 //===========================================================================// 00036 class MCF_DecompApp : public DecompApp { 00037 private: 00039 const string m_classTag; 00040 00042 MCF_Param m_appParam; 00043 00045 MCF_Instance m_instance; 00046 00048 double* objective; 00049 00051 vector<DecompConstraintSet*> m_models; 00052 00053 DecompConstraintSet* modelRelax; 00054 DecompConstraintSet* modelCore; 00055 00056 public: 00061 void initializeApp(UtilParameters& utilParam); 00062 00063 /* Create models. */ 00064 void createModels(); 00065 void createModelCore(DecompConstraintSet* model); 00066 void createModelRelax(DecompConstraintSet* model, 00067 int commId); 00068 void createModelRelaxSparse(DecompConstraintSet* model, 00069 int commId); 00070 00071 public: 00075 MCF_DecompApp(UtilParameters& utilParam) : 00076 DecompApp (utilParam), 00077 m_classTag ("MCF-APP"), 00078 objective ( NULL ), 00079 modelRelax ( NULL ), 00080 modelCore ( NULL ) { 00081 initializeApp(utilParam); 00082 } 00083 00084 virtual ~MCF_DecompApp() { 00085 UTIL_DELARR(objective); 00086 UtilDeleteVectorPtr(m_models); 00087 UTIL_DELPTR(modelCore); 00088 }; 00089 }; 00090 00091 #endif