public Calculation(AHPIndexHierarchy ahp, GroupedMonitorDataByTime groupedMonDataByTime, DateTime evaluationDate) { _ahpIndexHierarchy = ahp; _judgementMatrixInfosSet = BinaryIO.ReadMatrixInfosSet();///读取判断矩阵 _ahpIndexUtil = new AHPIndexHierarchyUtil(ahp); InitialBaseData(groupedMonDataByTime, evaluationDate); if (!IsMatrixExist()) { MessageBox.Show("需要定义判断矩阵!"); return; } CalculateWeightVctor(); CalculateFuzzyMatrix(); ShowResult(); }
/// <summary> /// 对指标体系赋值 /// </summary> /// <param name="groupedMonDataByTime"></param> private void InitialBaseData(GroupedMonitorDataByTime groupedMonDataByTime, DateTime evaluationDate) { List<AHPIndexHierarchy> baseAhpIndex = _ahpIndexUtil.FindbyLevel(AHPIndexHierarchyUtil.totalLevelCount - 1); foreach (AHPIndexHierarchy ahpIndex in baseAhpIndex) { var newestDataBefore = groupedMonDataByTime.SelectNewestDateBefore(groupedMonDataByTime.MonitorDataTable[ahpIndex.Name], evaluationDate); ahpIndex.OriginValue = groupedMonDataByTime.SelectMaxValue(newestDataBefore); IndexStandarization criteria = new IndexStandarization(); ahpIndex.IndexValue = criteria.CalculateStandardGrade(ahpIndex.Name, IndexOptimizationType.Negative, (double)ahpIndex.OriginValue); } }