6 #define AUTOTUNERFACTOR 0.3
10 Problem(const char *problem);
11 char *getProblem() {return problem;}
18 friend class MultiTuner;
23 TunerRecord(SearchTuner *_tuner) : tuner(_tuner), tunernumber(-1) {}
24 SearchTuner *getTuner() {return tuner;}
25 TunerRecord *changeTuner(SearchTuner *_newtuner);
26 void updateTuner(SearchTuner *_newtuner) {tuner = _newtuner;}
27 long long getTime(Problem *problem);
28 void setTime(Problem *problem, long long time);
31 Vector<Problem *> problems;
32 Hashtable<Problem *, long long, uint64_t> timetaken;
34 friend class MultiTuner;
35 friend void clearVector(Vector<TunerRecord *> *tunerV);
40 MultiTuner(uint budget, uint rounds, uint timeout);
42 void addProblem(const char *filename);
43 void addTuner(SearchTuner *tuner);
44 void readData(uint numRuns);
50 long long evaluate(Problem *problem, TunerRecord *tuner);
51 double evaluateAll(TunerRecord *tuner);
52 SearchTuner *mutateTuner(SearchTuner *oldTuner, uint k);
53 void mapProblemsToTuners(Vector<TunerRecord *> *tunerV);
54 void improveTuners(Vector<TunerRecord *> *tunerV);
55 TunerRecord *tune(TunerRecord *tuner);
57 Vector<TunerRecord *> allTuners;
58 Vector<Problem *> problems;
59 Vector<TunerRecord *> tuners;