00001 /*===========================================================================*/ 00002 /* */ 00003 /* This file is part of the SYMPHONY Branch, Cut, and Price Callable */ 00004 /* Library. */ 00005 /* */ 00006 /* SYMPHONY was jointly developed by Ted Ralphs (tkralphs@lehigh.edu) and */ 00007 /* Laci Ladanyi (ladanyi@us.ibm.com). */ 00008 /* */ 00009 /* (c) Copyright 2004-2006 Ted Ralphs and Lehigh University. */ 00010 /* All Rights Reserved. */ 00011 /* */ 00012 /* The authors of this file are Menal Guzelsoy and Ted Ralphs */ 00013 /* */ 00014 /* This software is licensed under the Common Public License. Please see */ 00015 /* accompanying file for terms. */ 00016 /* */ 00017 /*===========================================================================*/ 00018 00019 #ifndef SymWarmStart_H 00020 #define SymWarmStart_H 00021 00022 #include "CoinHelperFunctions.hpp" 00023 #include "CoinWarmStart.hpp" 00024 #include <iostream> 00025 #include "symphony.h" 00026 00027 using namespace std; 00028 00029 //############################################################################# 00030 00031 class SymWarmStart : public CoinWarmStart 00032 { 00033 00034 public: 00035 00036 /* Default constructor. Will do nothing! */ 00037 SymWarmStart(){} 00038 00039 /* Initialize the warmStart_ using the given warm start. If dominate 00040 WarmStart is set, then, SymWarmStart will take the control of the 00041 given description, otherwise, will copy everything. 00042 */ 00043 SymWarmStart(warm_start_desc * ws); 00044 00045 /*Get the warmStart info from a file*/ 00046 SymWarmStart(char *f); 00047 00048 /* Copy constructor */ 00049 SymWarmStart(const SymWarmStart & symWS); 00050 00051 /* Destructor */ 00052 virtual ~SymWarmStart(); 00053 00054 /* Clone the warmstart */ 00055 virtual CoinWarmStart * clone() const; 00056 00057 /* Get the pointer to the loaded warmStart_ */ 00058 virtual warm_start_desc * getCopyOfWarmStartDesc(); 00059 00060 /* Move the pointer to the rootnode of the warmStart to another 00061 node which will change the underlying tree 00062 */ 00063 // virtual void setRoot(bc_node *root) {} //FIX_ME! Ask Prof. Ralphs. 00064 00065 /* Write the current warm start info to a file */ 00066 virtual int writeToFile(char * f); 00067 00068 private: 00069 00070 /* Private warm start desc. to keep everything */ 00071 warm_start_desc *warmStart_; 00072 00073 }; 00074 00075 #endif