00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef UDINE_SAVER_BOUND
00022 #define UDINE_SAVER_BOUND
00023
00024 #include <cmath>
00025 #include <ctime>
00026 #include <iostream>
00027 #include <ilcplex/ilocplex.h>
00028
00029 #include "solver_config.h"
00030
00031 ILOSTLBEGIN
00032
00033 namespace Udine {
00034
00035 class BoundSaverI : public IloCplex::NodeCallbackI {
00036
00037 protected:
00038 IloEnv &env;
00039 const char *tag;
00040 float previousBest;
00041 Config &config;
00042
00043 public:
00044 ILOCOMMONCALLBACKSTUFF(BoundSaver)
00045
00046 BoundSaverI(IloEnv &environment, Config &configuration, const char *tagToCreate)
00047 : IloCplex::NodeCallbackI(environment), env(environment), config(configuration), tag(tagToCreate) {
00048 previousBest = -1;
00049 }
00050
00051 void main();
00052 };
00053
00054 IloCplex::Callback BoundSaver(IloEnv &environment, Config &configuration, const char *tagToCreate ="globalLB");
00055
00056 }
00057
00058 #endif // UDINE SAVER of BOUNDs