projects
/
satune.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix tuner issues
[satune.git]
/
src
/
Tuner
/
multituner.h
diff --git
a/src/Tuner/multituner.h
b/src/Tuner/multituner.h
index f14dbccf47341341ea89f1782bfe82ffdb2cd57e..69430cc7408617776816ad9342bf82885def7d0b 100644
(file)
--- a/
src/Tuner/multituner.h
+++ b/
src/Tuner/multituner.h
@@
-21,30
+21,41
@@
class TunerRecord {
public:
TunerRecord(SearchTuner *_tuner) : tuner(_tuner) {}
SearchTuner *getTuner() {return tuner;}
public:
TunerRecord(SearchTuner *_tuner) : tuner(_tuner) {}
SearchTuner *getTuner() {return tuner;}
+ TunerRecord *changeTuner(SearchTuner *_newtuner);
+ void updateTuner(SearchTuner *_newtuner) {tuner = _newtuner;}
+ long long getTime(Problem *problem);
+ void setTime(Problem *problem, long long time);
private:
SearchTuner *tuner;
Vector<Problem *> problems;
private:
SearchTuner *tuner;
Vector<Problem *> problems;
+ Hashtable<Problem *, long long, uint64_t> timetaken;
friend class MultiTuner;
friend class MultiTuner;
+ friend void clearVector(Vector<TunerRecord *> *tunerV);
};
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);
- void tune();
void tuneK();
void tuneK();
+ void tuneComp();
CMEMALLOC;
protected:
CMEMALLOC;
protected:
- long long evaluate(Problem *problem,
SearchTuner
*tuner);
- double evaluateAll(
SearchTuner
*tuner);
+ long long evaluate(Problem *problem,
TunerRecord
*tuner);
+ double evaluateAll(
TunerRecord
*tuner);
SearchTuner *mutateTuner(SearchTuner *oldTuner, uint k);
void mapProblemsToTuners(Vector<TunerRecord *> *tunerV);
SearchTuner *mutateTuner(SearchTuner *oldTuner, uint k);
void mapProblemsToTuners(Vector<TunerRecord *> *tunerV);
+ void improveTuners(Vector<TunerRecord *> *tunerV);
+ TunerRecord *tune(TunerRecord *tuner);
+
+ Vector<TunerRecord *> allTuners;
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;
};