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 <iostream> 00023 00024 #include "CoinHelperFunctions.hpp" 00025 #include "CoinWarmStart.hpp" 00026 #include "symphony.h" 00027 00028 using namespace std; 00029 00030 //############################################################################# 00031 00032 class SymWarmStart : public CoinWarmStart 00033 { 00034 00035 public: 00036 00037 /* Default constructor. Will do nothing! */ 00038 SymWarmStart(){} 00039 00040 /* Initialize the warmStart_ using the given warm start. If dominate 00041 WarmStart is set, then, SymWarmStart will take the control of the 00042 given description, otherwise, will copy everything. 00043 */ 00044 SymWarmStart(warm_start_desc * ws); 00045 00046 /*Get the warmStart info from a file*/ 00047 SymWarmStart(char *f); 00048 00049 /* Copy constructor */ 00050 SymWarmStart(const SymWarmStart & symWS); 00051 00052 /* Destructor */ 00053 virtual ~SymWarmStart(); 00054 00055 /* Clone the warmstart */ 00056 virtual CoinWarmStart * clone() const; 00057 00058 /* Get the pointer to the loaded warmStart_ */ 00059 virtual warm_start_desc * getCopyOfWarmStartDesc(); 00060 00061 /* Move the pointer to the rootnode of the warmStart to another 00062 node which will change the underlying tree 00063 */ 00064 virtual void setRoot(bc_node *root) {} //FIX_ME! Ask Prof. Ralphs. 00065 00066 /* Write the current warm start info to a file */ 00067 virtual int writeToFile(char * f); 00068 00069 private: 00070 00071 /* Private warm start desc. to keep everything */ 00072 warm_start_desc *warmStart_; 00073 00074 }; 00075 00076 #endif