edits
authorbdemsky <bdemsky@uci.edu>
Fri, 12 Oct 2018 19:52:41 +0000 (12:52 -0700)
committerbdemsky <bdemsky@uci.edu>
Fri, 12 Oct 2018 19:52:41 +0000 (12:52 -0700)
src/Tuner/multituner.cc
src/Tuner/multituner.h

index 8ad7a32058d6aacc91ddf69438073a994f7c1e2d..e99082345971521885fcf9ac437346594f7e47d1 100644 (file)
@@ -22,8 +22,8 @@ Problem::~Problem() {
        ourfree(problem);
 }
 
        ourfree(problem);
 }
 
-MultiTuner::MultiTuner(uint _budget, uint _timeout) :
-       budget(_budget), timeout(_timeout), execnum(0) {
+MultiTuner::MultiTuner(uint _budget, uint _rounds, uint _timeout) :
+       budget(_budget), rounds(_rounds), timeout(_timeout), execnum(0) {
 }
 
 MultiTuner::~MultiTuner() {
 }
 
 MultiTuner::~MultiTuner() {
@@ -104,12 +104,19 @@ void clearVector(Vector<TunerRecord *> *tunerV) {
 
 void MultiTuner::tuneK() {
        Vector<TunerRecord *> *tunerV = new Vector<TunerRecord *>(&tuners);
 
 void MultiTuner::tuneK() {
        Vector<TunerRecord *> *tunerV = new Vector<TunerRecord *>(&tuners);
-       while (true) {
+       for (uint i = 0; i < rounds; i++) {
                clearVector(tunerV);
                mapProblemsToTuners(tunerV);
                improveTuners(tunerV);
        }
                clearVector(tunerV);
                mapProblemsToTuners(tunerV);
                improveTuners(tunerV);
        }
-
+       model_print("Best tuners\n");
+       for (uint j = 0; j < tunerV->getSize(); j++) {
+               TunerRecord *tuner = tunerV->get(j);
+               char buffer[256];
+               sprintf(buffer, "tuner%u.conf", j);
+               tuner->getTuner()->serialize(buffer);
+               tuner->getTuner()->print();
+       }
        delete tunerV;
 }
 
        delete tunerV;
 }
 
index 79cacf69e60c4ff9063c487736ddbaa92fee4312..1c2a1fe7f5a61c4db02ae3402c40f869496d5af0 100644 (file)
@@ -30,7 +30,7 @@ private:
 
 class MultiTuner {
 public:
 
 class MultiTuner {
 public:
-       MultiTuner(uint budget, uint timeout);
+       MultiTuner(uint budget, uint rounds, uint timeout);
        ~MultiTuner();
        void addProblem(const char *filename);
        void addTuner(SearchTuner *tuner);
        ~MultiTuner();
        void addProblem(const char *filename);
        void addTuner(SearchTuner *tuner);
@@ -49,6 +49,7 @@ protected:
        Vector<Problem *> problems;
        Vector<TunerRecord *> tuners;
        uint budget;
        Vector<Problem *> problems;
        Vector<TunerRecord *> tuners;
        uint budget;
+       uint rounds;
        uint timeout;
        int execnum;
 };
        uint timeout;
        int execnum;
 };