AHP层次分析法算法流程
Cri_Spe[N]=Ca_Ck(N,Cmp[N][N]) Y Cri_Spe[0]<0 N 1
流程图:
1
//输入方案个数 Input M 定义二维数组Plan_Spe[M][M] /*数组Plan_Spe[M][N]用于存 放各方案的特征向量,供最 后计算每个方案的分数使用*/ //用户输入各方案名称 //从第一个评价标准开始
Input:Plan_Name[j] (j=1,…,M)
k=1 Output:请按标准 Cri_Name[k]对各 方案两两比较大小 2
3
//提示用户
流程图:
2 Input:Cmp[M][M] /*按照某一评价标准,用户对 各方案两两比较,生成两两 比较矩阵*/ /*调用自建函数计算、返回评价标 准Cri_Name[k]方面的特征向量, 检验两两比较矩阵的一致性*/ /*根据Ca_Ck()的返回值判断两两 矩阵是否满足一致性,从而决定 是否需要用户重新比较各方案*/ //转到第k+1个评价标准
AHP算法流程
功能: 进行方案选择 IO示意图
输入
AHP算法
输出:最优方案
基本过程:
输入评价标准及其两两 比较矩阵 由两两比较矩阵计算评 价标准的特征向量 验证两两比较矩阵的一 致性 直到满足一致性
i=1
当i<=评价标准总数时 输入在标准i下各方 案的两两比较矩阵 由两两比较矩阵计 算评价标准i方面的 特征向量 验证两两比较矩阵 的一致性 直到满足一致性 ① 由各特征向量计算各方案的 分数 找出最高分,分数最高的方 案为最优方案
Max[0]=Value[i] Max[1]=i
i=i+1
/*将Max[1]与Value[i] (i=1,2, …,M)依次比 较,较大的数赋给 Max[1],并纪录大数的 位置*/
3
Y
i<M
N k=Max[1] Output:Plan_Name[k] 是最优方案 结束
i=i+1
①
流程图:
开始
Input N Input:Cri_Name[i] (i=1,…,N) Input:Cmp[N][N]
//输入评价标准的个数 /*用户输入各评价标准的 名称并对各评价标准的重 要性进行评价,生成两两 比较矩阵*/ /*调用自建函数计算、返回评 价标准的特征向量,检验两 两比较矩阵的一致性*/ /*根据函数Ca_Ck()的返回值 判断两两矩阵是否满足一致 性,从而决定是否需要用户 重新比较评价标准*/
//为第i个方案计算分数
i=i+1
//转到第i+1个方案
Y
i≤M
N i=1
//判断是否所有方案都已被打分
/*Max[]是仅有两个元素的一维数组 4 Max[0]=Value[0] Max[1]=0 3
Max[0]用于存放最高分
Max[1]用于存放最高分所在的方案 代号*/
流程图:
3
Y Max[0] ≥Value[i] N
Plan_spe[k]=Ca_Ck(M,Cmp[M][M])
Y
Plan_Spe[k][1]<0 N k=k+1 Y k≤N N 2
3
流程图:
2 i=1 Value[i]=∑cri_Spe[j]*Plan_Spe[j][i]
j=1 N
//从第一个方案开始计算分数