SetPairAnalysis.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef SETPAIRANALYSIS_H
  2. #define SETPAIRANALYSIS_H
  3. #include <QString>
  4. #include <QVector>
  5. /**
  6. * @brief 集对分析法,SPA,又称同异反综合分析法
  7. * 集成析是从系统的角度去认识确定性和不确定性的关系,并确定研究对象是一个确定不确定系统,
  8. * 其不确定性和确定性共同处于一个统一体之中。因此别从确定的角度和不确足的角度来研究不确定性的规律,并用联系度表示。
  9. * a:S/N 相同属性联系度(同一度)
  10. * b:F/N 相异属性联系度(差异度)
  11. * c:P/N 相反属性联系度(对立度)
  12. * 集对联系度公式:u = a + b*i + c*j
  13. */
  14. class SetPairAnalysis
  15. {
  16. public:
  17. typedef QVector<qreal> EvaluateIndex; //评估指标
  18. typedef QVector<qreal> Relations; //联系度
  19. typedef QStringList EvaluateNames; //评估对象
  20. /**
  21. * @brief 集对分析法构造函数
  22. * @param rMat 同异反评估矩阵
  23. * @param wMat 权重系数矩阵
  24. * @param eMat 同异反系数矩阵
  25. * @param optiDir false:最小值,true:最大值
  26. */
  27. SetPairAnalysis(const QVector<EvaluateIndex> &rMat, const QVector<qreal> &wMat,
  28. const QVector<qreal> &eMat = QVector<qreal>(), const QVector<bool> &optiDir = QVector<bool>());
  29. void setEvaluateNames(const EvaluateNames &names) { m_evalNames = names; }
  30. EvaluateNames getEvaluateNames() const { return m_evalNames; }
  31. /**
  32. * @brief 联系度值
  33. * @return
  34. */
  35. Relations getRelations() const;
  36. private:
  37. QVector<EvaluateIndex> m_rMat;
  38. QVector<qreal> m_wMat;
  39. QVector<qreal> m_eMat;
  40. EvaluateNames m_evalNames;
  41. };
  42. #endif // SETPAIRANALYSIS_H