ts-aggregator/project_template/Tsaur.h
2022-12-13 12:36:06 +04:00

59 lines
1.5 KiB
C++

#ifndef TSAUR_H
#define TSAUR_H
#include <vector>
#include "Method.h"
#include "A.h"
using namespace std;
class Tsaur : public Method{
private:
vector<A> a; // íàáîð ôóíêöèé ïðèíàäëåæíîñòè
int countFuzzyParts;// êîëè÷åñòâî èíòåðâàëîâ óíèâåðñóìà
double universumMin;
double universumMax;
vector<A> fuzzyTs; // íå÷åòêèé âðåìåííîé ðÿä
vector<A> fuzzyForecast; // íå÷åòêèé âðåìåííîé ðÿä
double w;
string trendType;
string seasonType;
double alpha; // ïàðàìåòð ñãëàæèâàíèÿ
double gamma; // ïàðàìåòð ñãëàæèâàíèÿ òðåíäà
double delta; // ïàðàìåòð ñãëàæèâàíèÿ ñåçîííîé êîìïîíåíòû
int p; // ïåðèîä ñåçîííîñòè
double phi; // ïàðàìåòð äåìïèíãà
vector<A> S; // ñãëàæåííûé äàííûì ìåòîäîì ðÿä
vector<A> I;
vector<A> T;
double lb1;
double rb1;
double lb2;
double rb2;
void defineUniversum(); // îïðåäåëèòü óíèåðñóì äëÿ ïàðàìåòðîâ
A fuzzyfication(double);
double defuzzyfication(A);
vector<double> defuzzyfication(vector<A>);
A minusSet(A, A);
A numMinusSet(double, A);
A plusSet(A, A);
A divSet(A, A);
A divSet(A, double);
A multSet(A, A);
A multSetNum(double, A);
public:
Tsaur(vector<double>, int);
~Tsaur(void);
vector<double> getForecast();
void init();
void createModel();
void createModelForEstimation();
void setParam(string, double);
double calcEstimation(Aic *);
Param* optimize(Estimation *); // ìåòîä îïòèìèçàöèè îäíîãî ïàðàìåòðà
};
#endif