#ifndef VOVK_H #define VOVK_H #include "Method.h" #include "Preparator.h" struct AggModel { char * name; double weight; double value; Method* expert; }; using namespace std; class Vovk { private: /*int expertsCount = 0; int activeExpertsCount = 0; double beta = 0.5; int step = 0; double forecast = 0; double addWeightFromSleepEx = 0.0;*/ int expertsCount; int activeExpertsCount; double beta; int step; double forecast; double addWeightFromSleepEx; vector timeSeria; Method** models; void getNewExpertsValues(); void checkExperts(); //ret - log(beta, sum(1..n) weight * pow(beta, L)) double recalculateWeights(double nextRealValue); //double timeSeriaDiff = 0; double timeSeriaDiff; Preparator *prep; void calculateTimeSeriaDiff(vector timeSeria); public: void setBeta(double beta); bool useSingleTrashhold ; double forecastHorizont; double singleTrashhold; bool useModelTrashhold; double modelTrashhold; Vovk(vector, int, Method**); ~Vovk(); double getForecast(); void updateTS(double nextRealValue); void addMethod(AggModel); }; #endif