6 #define AUTOTUNERFACTOR 0.3
10 Problem(const char *problem, uint timeout);
11 char *getProblem() {return problem;}
20 friend class MultiTuner;
25 TunerRecord(SearchTuner *_tuner) : tuner(_tuner), tunernumber(-1) {}
26 SearchTuner *getTuner() {return tuner;}
27 TunerRecord *changeTuner(SearchTuner *_newtuner);
28 void updateTuner(SearchTuner *_newtuner) {tuner = _newtuner;}
29 long long getTime(Problem *problem);
30 void setTime(Problem *problem, long long time);
33 Vector<Problem *> problems;
34 Hashtable<Problem *, long long, uint64_t> timetaken;
36 friend class MultiTuner;
37 friend void clearVector(Vector<TunerRecord *> *tunerV);
42 MultiTuner(uint budget, uint rounds, uint timeout);
44 void addProblem(const char *filename);
45 void addTuner(SearchTuner *tuner);
46 void readData(uint numRuns);
47 void updateTimeout(Problem *problem, long long metric);
53 long long evaluate(Problem *problem, TunerRecord *tuner);
54 double evaluateAll(TunerRecord *tuner);
55 SearchTuner *mutateTuner(SearchTuner *oldTuner, uint k);
56 void mapProblemsToTuners(Vector<TunerRecord *> *tunerV);
57 void improveTuners(Vector<TunerRecord *> *tunerV);
58 TunerRecord *tune(TunerRecord *tuner);
60 Vector<TunerRecord *> allTuners;
61 Vector<Problem *> problems;
62 Vector<TunerRecord *> tuners;