55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
#ifndef FUZZYWITHSETS_H
|
|
#define FUZZYWITHSETS_H
|
|
#include <vector>
|
|
#include "A.h"
|
|
#include "Method.h"
|
|
#include "Param.h"
|
|
|
|
using namespace std;
|
|
|
|
class FuzzyWithSets : 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;
|
|
|
|
void defineUniversum(); // îïðåäåëèòü óíèåðñóì äëÿ âðåìåííîãî ðÿäà
|
|
A fuzzyfication(double);
|
|
double defuzzyfication(A);
|
|
vector<double> defuzzyfication(vector<A>);
|
|
A minusSet(A, A);
|
|
A plusSet(A, A);
|
|
A divSet(A, A);
|
|
A divSet(A, double);
|
|
A multSet(A, A);
|
|
A multSetNum(double, A);
|
|
|
|
|
|
public:
|
|
FuzzyWithSets(string, string, vector<double>, int);
|
|
~FuzzyWithSets(void);
|
|
vector<double> getForecast();
|
|
void init();
|
|
void createModel();
|
|
void createModelForEstimation();
|
|
void setParam(string, double);
|
|
double calcEstimation(Aic *);
|
|
Param* optimize(Estimation *); // ìåòîä îïòèìèçàöèè îäíîãî ïàðàìåòðà
|
|
int getNamberParam();
|
|
};
|
|
|
|
#endif |