改进的AHP算法matlab实现
时间: 2023-06-19 21:06:35 浏览: 73
AHP(Aanlytic Hierarchy Process)是一种多准则决策分析方法,用于处理复杂的决策问题。以下是使用MATLAB实现改进的AHP算法的步骤:
1. 建立判断矩阵
首先,需要建立判断矩阵。判断矩阵是一个n×n矩阵,其中n表示决策问题中的准则数。矩阵中的每个元素aij表示准则i与准则j之间的比较结果,具有如下性质:
- aij > 0,表示准则i与准则j之间的相对重要性;
- aij = 1/aji,表示准则i与准则j之间的相对重要性与准则j与准则i之间的相对重要性互为倒数;
- aii = 1,表示准则i与自身之间的相对重要性为1。
2. 计算权重向量
根据判断矩阵,可以计算出每个准则的权重向量。具体步骤如下:
- 将判断矩阵的每一行除以该行所有元素之和,得到一个n×n的正则化矩阵;
- 对正则化矩阵的每一列求平均值,得到一个n维的权重向量。
3. 计算一致性指标
为了验证判断矩阵的一致性,需要计算一致性指标。一致性指标越小,判断矩阵的一致性越好。计算一致性指标的公式如下:
CI = (λmax - n) / (n - 1)
其中,λmax表示判断矩阵的最大特征值,n表示判断矩阵的阶数。一般来说,CI小于0.1可以接受,大于0.1则需要进行调整。
4. 进行一致性调整
如果一致性指标超过了0.1,就需要进行一致性调整。一般采用随机一致性指标RI进行比较。RI的值是根据判断矩阵的阶数n查表得到的。如果CI超过了0.1,则需要进行一致性调整,具体步骤如下:
- 计算一致性比例指标CR = CI / RI;
- 如果CR小于0.1,则判断矩阵可以接受,否则需要进行调整。
5. 做出决策
根据得到的权重向量,可以对决策进行排序或者选择最优的决策。
以下是MATLAB实现改进的AHP算法的代码示例:
```matlab
% 建立判断矩阵
A = [1 3 5;
1/3 1 3;
1/5 1/3 1];
% 计算权重向量
[n, ~] = size(A);
norm_A = zeros(n, n);
for i = 1:n
norm_A(i,:) = A(i,:) ./ sum(A(i,:));
end
w = sum(norm_A) ./ n;
% 计算一致性指标
lambda_max = max(eig(A));
CI = (lambda_max - n) / (n - 1);
% 进行一致性调整
RI = [0, 0, 0.58, 0.9, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49];
CR = CI / RI(n);
if CR > 0.1
disp('需要进行一致性调整');
else
disp('判断矩阵可以接受');
end
% 做出决策
[~, I] = sort(w, 'descend');
disp(I);
```
这里的判断矩阵是一个3×3的矩阵,权重向量和一致性指标可以通过MATLAB的eig函数计算得到。RI是一个预先定义好的随机一致性指标表,根据判断矩阵的阶数选择相应的RI值。最后,根据权重向量对决策进行排序。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)