Tabla de contenido:
- Cómo completar la matriz de juicio de nivel de criterio
- Cómo llenar la matriz de juicio a nivel de esquema
- Puntos de conocimiento complementarios sobre la matriz de juicio y la matriz de consistencia
- Pasos para la verificación de consistencia
- Cómo calcular el peso a través de la matriz de juicio (tres métodos) y los ejemplos de código correspondientes
Completando la matriz de juicio de la capa de criterio:
El propósito de llenar la matriz de juicio de nivel de criterio es determinar la proporción de cada criterio (indicador), y llenar la columna de peso del indicador de la tabla de análisis jerárquico, por ejemplo, en la selección del mejor destino turístico, el los indicadores de paisaje, costo, residencia, comida y transporte dan cuenta de cada uno de ellos. ¿Cuál es la relación y el puntaje total de cada alternativa se puede calcular en función de la relación de estos indicadores?
El método de llenado del formulario se basa en la tabla de escala, y la importancia de los indicadores se compara por pares, solo se necesita comparar 10 veces para completar el llenado de la matriz de juicio de la capa de criterio.
Llenar la matriz de juicio a nivel de esquema
El propósito de llenar la matriz de juicio a nivel de esquema es dar, para un determinado indicador, su puntaje específico en cada esquema alternativo, es decir, dar los datos de cada fila horizontal de la tabla de análisis jerárquico. El método es completar la matriz de juicio de acuerdo con la tabla de escala. Hay varios indicadores de evaluación, por lo tanto, ¿cuántas matrices de juicio de este nivel de programa deben completarse?
Puntos de conocimiento adicionales:
Matriz de juicio (matriz positiva y recíproca)
- Primero juzgue que la matriz debe ser una matriz cuadrada
- La importancia de cada dato en la matriz de juicio en comparación
Aij
con el índicej
i
- En ese
i=j
momento , los dos indicadores son iguales, por lo que son igualmente importantes, registrados como 1, por lo que el elemento diagonal de la matriz de juicio es 1 - cada elemento es mayor que cero, y
Aij * Aji=1
En el AHP, las matrices que construimos son matrices de juicio
matriz de consistencia
- La matriz primero satisface todas las características de la matriz de juicio
- Si la matriz de juicio satisface
Aij * Ajk = Aik
, intuitivamente, significa que las filas (columnas) de la matriz son múltiplos
Nota: Antes de usar la matriz de juicio para encontrar el peso, se debe verificar su consistencia
Pasos para la verificación de consistencia:
Paso 1: Calcular el índice de consistencia CI
CI = λ max − nn − 1 CI\,\,=\,\,\frac{\lambda _{\max}-n}{n-1}CI _=norte−1yomáximo−n
Paso 2: Encuentre el índice de consistencia aleatoria promedio correspondiente RI
Paso 3: Calcule la razón de consistencia CR
CR = CIRI CR\,\,=\,\,\frac{CI}{RI}CR _=yo _C yo
Juicio: Si CR<0.1, se puede considerar que la consistencia de juzgar la evidencia es aceptable; de lo contrario, la matriz de juicio necesita ser modificada
El código de MATLAB para la verificación de consistencia es el siguiente:
disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A);
[V,D] = eig(A);%求出矩阵A的特征值和特征向量
Max_eig = max(max(D));%找到矩阵A的最大特征值
% 下面是计算一致性比例CR的环节 %
CI = (Max_eig - n) / (n-1);
RI=[0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
%注意哦,这里的RI最多支持 n = 15
% 这里n=2时,一定是一致矩阵,所以CI = 0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10
disp('因为CR<0.10,所以该判断矩阵A的一致性可以接受!');
else
disp('注意:CR >= 0.10,因此该判断矩阵A需要进行修改!');
end
Encuentre el peso juzgando la matriz
Método 1. Cálculo del peso por el método de la media aritmética
Paso 1: Normalice la matriz de juicio por columna (cada elemento se divide por la suma de la columna donde se encuentra el dispositivo)
Paso 2: suma las columnas normalizadas (suma por fila)
Paso 3: divida cada elemento en el vector agregado por n para obtener el vector de peso
Expresión matemática específica:
Supongamos que la matriz de juicio es la siguiente matriz A:
A = [ a 11 a 12 ⋯ a 1 na 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ an 1 an 2 ⋯ ann ] A=\left[ \begin{matrix } a_{ 11}& a_{12}& \cdots& a_{1n}\\ a_{21}& a_{22}& \cdots& a_{2n}\\ \vdots& \vdots& \ddots& \vdots\\ a_{n1 }& a_ {n2}& \cdots& a_{nn}\\ \end{matriz} \right]A=⎣⎢⎢⎢⎡a1 1a2 1⋮an 1a1 2a2 2⋮anº 2⋯⋯⋱⋯a1 nortea2 norte⋮anorte norte⎦⎥⎥⎥⎤
Entonces el vector de peso obtenido por el método de la media aritmética es:
wi = 1 n ∑ j = 1 naij ∑ k = 1 nakj w_i=\frac{1}{n}\sum_{j=1}^n{\frac{a_ {ij}}{\sum_{k=1}^n{a_{kj}}}}\,\,wyo=norte1j = 1∑n∑k = 1nak jayo j
El código de MATLAB es el siguiente:
disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A);
Sum_A = sum(A); %sum函数默认是对矩阵的每一列进行累加,即按行求和
SUM_A = repmat(Sum_A,n,1); %将Sum_A这个行向量,重复n行,重复一列
Stand_A = A ./ SUM_A; %将矩阵A归一化,即每一个元素除以其所在列的和
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2)./n) %把归一化的矩阵的每一行累加,然后除以n,得到权重
Método 2. Calcular el peso por el método de la media geométrica
Paso 1: Multiplique los elementos de A por fila para obtener un nuevo vector de columna
Paso 2: Divida cada componente del nuevo vector columna a la n-ésima potencia
Paso 3: normalice el vector de columna para obtener el vector de peso
Supongamos que la matriz de juicio es la siguiente matriz A:
A = [ a 11 a 12 ⋯ a 1 na 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ an 1 an 2 ⋯ ann ] A=\left[ \begin{matrix } a_{ 11}& a_{12}& \cdots& a_{1n}\\ a_{21}& a_{22}& \cdots& a_{2n}\\ \vdots& \vdots& \ddots& \vdots\\ a_{n1 }& a_ {n2}& \cdots& a_{nn}\\ \end{matriz} \right]A=⎣⎢⎢⎢⎡a1 1a2 1⋮an 1a1 2a2 2⋮anº 2⋯⋯⋱⋯a1 nortea2 norte⋮anorte norte⎦⎥⎥⎥⎤
Entonces el vector de peso obtenido por el método de la media geométrica es:
wi = ( ∏ j = 1 naij ) 1 n ∑ k = 1 n ( ∏ j = 1 nakj ) 1 n , ( i = 1 , 2 , … , n ) w_i = \frac{\left( \prod_{j=1}^n{a_{ij}} \right) ^{\frac{1}{n}}}{\sum_{k=1}^n{\left ( \prod_{j=1}^n{a_{kj}} \right) ^{\frac{1}{n}}}},\left(i=1,2,...\text{,} n \ derecho )wyo=∑k = 1n( ∏j = 1nak j)norte1( ∏j = 1nayo j)norte1,( yo=1 ,2 ,…, n )
Nota: la suma de los pesos obtenidos por cada método debe ser 1, se puede ignorar el error causado por el redondeo y los resultados generales conservan cuatro decimales
El código de MATLAB es el siguiente:
disp('请输入判断矩阵A')
A=input('A=');
[n,n] = size(A); %获得矩阵A的行和列的大小
Prduct_A = prod(A,2); %把矩阵A的每一行累乘,即按照列累乘
Prduct_n_A = Prduct_A .^ (1/n); %将新的列向量的每个分量开n次方
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A ./ sum(Prduct_n_A)) %对该列向量进行归一化即可得到权重向量
Método 3. Método de valores propios para calcular el peso (comúnmente utilizado)
Recordatorio de punto de conocimiento: una matriz consistente tiene un valor propio de n, y el resto de los valores propios son 0, y cuando el valor propio de la matriz es n, su vector propio correspondiente es k [ 1 a 11 , 1 a 12 , … , 1
a 1 n ] T , ( k ≠ 0 ) k\left[ \frac{1}{a_{11}},\frac{1}{a_{12}},…,\frac{1}{ a_{1n} } \right] ^T,\left(k\ne 0 \right)k[a1 11,a1 21,…,a1 norte1]T,( k=0 )
El primer paso: encontrar la suma máxima de valores propios de la matriz A y su vector propio correspondiente
Paso 2: Normalizar los vectores propios obtenidos para obtener los pesos obtenidos
El código de MATLAB es el siguiente:
disp('请输入判断矩阵A')
A=input('A=');
%求矩阵A的全部特征值,构成对角阵D,求A的特征向量构成V的列向量(V的每一列都是D中与之相同列的特征值的特征向量)
[V,D] = eig(A);
Max_eig = max(max(D)); %求出矩阵A的最大的特征值
[r,c]=find(D == Max_eig , 1); %返回最大特征值所在的行和列,其中C记录所在列
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) ) %对最大特征值对应的特征向量进行归一化处理
Recordatorio amistoso : en la competencia, se recomienda enumerar los tres métodos, pero solo se utilizan para el cálculo los resultados de peso obtenidos por el método de valores propios.
Para obtener más documentos clásicos ganadores de premios relacionados con AHP, así como plantillas de papel para modelar y otros materiales, preste atención a la cuenta oficial, responda "AHP", ¡y puede obtenerlo gratis! ! !