#ifndef FUZZY_H #define FUZZY_H #include #include "A.h" #include "Method.h" #include "Param.h" using namespace std; class Fuzzy : public Method { private: vector a; // набор функций принадлежности int countFuzzyParts;// количество интервалов универсума vector> rulesIn; // входная часть правил vector rulesOut; // выходная часть int countRulesIn; // количество входных переменных double universumMin; double universumMax; vector fuzzyTs; // нечеткий временной ряд string trendType; string seasonType; double alpha; // параметр сглаживания double gamma; // параметр сглаживания тренда double delta; // параметр сглаживания сезонной компоненты int p; // период сезонности double phi; // параметр демпинга void defineUniversum(); // определить униерсум для временного ряда void createRules(); // создать правила, параметр задает количество входных переменных int fuzzyfication(double); // получить нечеткий временной ряд в виде последовательности нечетких множеств double defuzzyfication(int); // получить нечеткий временной ряд в виде последовательности нечетких множеств vector searchRules(vector); vector searchRulesForSeason(int); public: Fuzzy(string, string, vector, int); ~Fuzzy(void); vector getForecast(); void init(); void createModel(); void createModelForEstimation(); void setParam(string, double); double calcEstimation(Aic *); Param* optimize(Estimation *); // метод оптимизации одного параметра int getNamberParam(); }; #endif