SetPairAnalysis.h 1.7 KB

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