// // Created by lenovo on 2023/10/18. // #ifndef ALGORITHM_SETPAIRANALYSIS_H #define ALGORITHM_SETPAIRANALYSIS_H #include "QString" #include "QVector" typedef QVector EvaluateIndex; // 评估指标 typedef QVector Relations; // 联系度 typedef QStringList EvaluateNames; /** * @brief 集对分析法,SPA,又称同异反综合分析法 * 集成析是从系统的角度去认识确定性和不确定性的关系,并确定研究对象是一个确定不确定系统, * 其不确定性和确定性共同处于一个统一体之中。因此别从确定的角度和不确足的角度来研究不确定性的规律,并用联系度表示。 * a:S/N 相同属性联系度(同一度) * b:F/N 相异属性联系度(差异度) * c:P/N 相反属性联系度(对立度) * 集对联系度公式:u = a + b*i + c*j */ class SetPairAnalysis { public: // 评估对象 /** * @brief 集对分析法构造函数 * @param rMat 同异反评估矩阵 * @param wMat 权重系数矩阵 * @param eMat 同异反系数矩阵 * @param optiDir false:最小值,true:最大值 */ SetPairAnalysis(const QVector &rMat, const QVector &wMat, const QVector &eMat = QVector(), const QVector &optiDir = QVector()); void setEvaluateNames(const EvaluateNames &names) { m_evalNames = names; } EvaluateNames getEvaluateNames() const { return m_evalNames; } /** * @brief 联系度值 * @return */ Relations getRelations() const; private: QVector m_rMat; QVector m_wMat; QVector m_eMat; EvaluateNames m_evalNames; }; #endif // ALGORITHM_SETPAIRANALYSIS_H