6 #define AUTOTUNERFACTOR 0.3
10 Problem(const char *problem);
11 char *getProblem() {return problem;}
17 friend class MultiTuner;
22 TunerRecord(SearchTuner *_tuner) : tuner(_tuner) {}
23 SearchTuner *getTuner() {return tuner;}
24 TunerRecord *changeTuner(SearchTuner *_newtuner);
25 void updateTuner(SearchTuner *_newtuner) {tuner = _newtuner;}
26 long long getTime(Problem *problem);
27 void setTime(Problem *problem, long long time);
30 Vector<Problem *> problems;
31 Hashtable<Problem *, long long, uint64_t> timetaken;
32 friend class MultiTuner;
33 friend void clearVector(Vector<TunerRecord *> *tunerV);
38 MultiTuner(uint budget, uint rounds, uint timeout);
40 void addProblem(const char *filename);
41 void addTuner(SearchTuner *tuner);
46 long long evaluate(Problem *problem, TunerRecord *tuner);
47 double evaluateAll(TunerRecord *tuner);
48 SearchTuner *mutateTuner(SearchTuner *oldTuner, uint k);
49 void mapProblemsToTuners(Vector<TunerRecord *> *tunerV);
50 void improveTuners(Vector<TunerRecord *> *tunerV);
51 TunerRecord *tune(TunerRecord *tuner);
54 Vector<TunerRecord *> allTuners;
55 Vector<Problem *> problems;
56 Vector<TunerRecord *> tuners;