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-2015, Lehigh University, Matthew Galati, and Ted Ralphs// 00010 // All Rights Reserved. // 00011 //===========================================================================// 00012 00013 #ifndef MCF_INSTANCE_INCLUDED 00014 #define MCF_INSTANCE_INCLUDED 00015 00016 //===========================================================================// 00017 #include "UtilMacros.h" 00018 //===========================================================================// 00019 class MCF_Param; 00020 using namespace std; 00021 //===========================================================================// 00022 00023 //===========================================================================// 00036 //===========================================================================// 00037 class MCF_Instance { 00038 public: 00040 struct arc { 00041 int tail; 00042 int head; 00043 int lb; 00044 int ub; 00045 double weight; 00046 }; 00047 struct commodity { 00048 int source; 00049 int sink; 00050 int demand; 00051 }; 00052 string m_problemName; 00053 arc* m_arcs; 00054 commodity* m_commodities; 00055 int m_numNodes; 00056 int m_numArcs; 00057 int m_numCommodities; 00058 00059 public: 00061 int readInstance(string& fileName, 00062 bool addDummyArcs = true); 00063 00064 inline void initMembers() { 00065 m_problemName = ""; 00066 m_arcs = NULL; 00067 m_commodities = NULL; 00068 m_numNodes = 0; 00069 m_numArcs = 0; 00070 m_numCommodities = 0; 00071 } 00072 00073 public: 00077 MCF_Instance() { 00078 initMembers(); 00079 }; 00080 00082 MCF_Instance(string& fileName) { 00083 initMembers(); 00084 readInstance(fileName); 00085 } 00086 00088 ~MCF_Instance() { 00089 UTIL_DELARR(m_arcs); 00090 UTIL_DELARR(m_commodities); 00091 }; 00092 }; 00093 00094 #endif