[Aprendizaje de modelado matemático] Matlab realiza el modelo de evaluación - Proceso de jerarquía analítica (AHP)

Tabla de contenido

1. Información general 

2 Proceso de implementación del algoritmo

3 instancias

 4matlab realiza el proceso de jerarquía analítica

5 resultados de cálculo


1. Información general 

El proceso de jerarquía analítica, denominado AHP, es un algoritmo en el modelo de evaluación, que se refiere a un método de toma de decisiones que descompone los elementos relacionados con la toma de decisiones en objetivos, criterios y programas, y realiza un análisis cualitativo y cuantitativo sobre esta base. . El defecto de AHP es que la matriz de juicio se determina subjetivamente, y no se puede obtener una evaluación objetiva, y la cantidad de indicadores no debe ser demasiado grande (no mayor a 15). Este artículo demostrará el uso de AHP para realizar la selección de ciudades turísticas.

Matlab es la corriente principal del modelado, seguido de python, R, etc. Matlab es más conveniente que python porque viene con muchas funciones, mientras que python necesita descargar las bibliotecas requeridas por sí mismo. Sin embargo, el defecto de matlab es que el software es demasiado grande y la velocidad de inicio es lenta. Pero como todos sabemos, además de no poder tener hijos, matlab tiene otras funciones, veamos cómo usar matlab para implementar el AHP.

2 Proceso de implementación del algoritmo

En primer lugar, es necesario determinar el sistema de evaluación, que se divide en capa objetivo, capa de criterio y capa de programa, para luego determinar los indicadores de evaluación y la matriz de juicio del programa según el grado de importancia (consulte la tabla siguiente), y utilice el método de la media aritmética, el método de la media geométrica y el método de valores propios respectivamente. Resuelva el peso del indicador (importancia) y la puntuación de cada esquema por separado. Los pesos y puntajes calculados por los tres métodos se promedian, lo que hace que el papel de la competencia sea más completo que solo usar el método de valor propio para calcular los pesos y puntajes.

Escalada significado
1 igualmente importante
3 un poco importante
5 obviamente importante
7 muy importante
9 extremadamente importante
2,4,6,8 El valor medio de los dos juicios adyacentes anteriores
recíproco A es 5 en comparación con B, y B es 1/5 en comparación con A

3 instancias

Seleccione el indicador apropiado y elija la ciudad turística que más se adapte a Xiao Ming.

Esta pregunta nos obliga a elegir la mejor ciudad turística, primero recopilamos información en Internet para determinar los indicadores más importantes en mi opinión subjetiva, a saber, el costo, el paisaje, el transporte, y seleccionamos las ciudades a las que queremos ir, a saber: Wuhan, Xiamen, Nanchang. Determinar subjetivamente la matriz de juicio y verificar la consistencia para juzgar si la matriz es consistente. Utilice el método de la media aritmética, el método de la media geométrica y el método de valores propios para calcular la ponderación del índice y las puntuaciones de cada ciudad. Finalmente, según el peso de los indicadores y las puntuaciones de cada ciudad en cada indicador, se realiza la puntuación.

Paso 1: Establecer la matriz de juicio de indicadores

Determine el peso de xy de acuerdo con su propio juicio sobre estos indicadores. Por ejemplo, el peso relativo de paisaje-gasto (importancia de paisaje/importancia de gasto) es 1/2, entonces el peso relativo de gasto-vista (importancia de gasto /importancia del gasto) Importancia del paisaje) es 2

gastar escenario transporte
gastar 1 2 1/3
escenario 1/2 1 1/5
transporte 3 5 1

De acuerdo a la tabla anterior, se observa que los dos pesos de la posición diagonal se multiplican por 1. Esto se debe a que el costo relativo de la escenografía es 1/2, y a su vez, el costo relativo de la escenografía es 2.

Paso 2: establecer la matriz de juicio de la ciudad

En cuanto al costo, la matriz de juicio de cada ciudad se establece de la siguiente manera:

gastar Wuhan Xiamen Nanchang
Wuhan 1 1/3 4
Xiamen 3 1 5
Nanchang 1/4 1/5 1

En cuanto al paisaje, la matriz de juicio de cada ciudad se establece de la siguiente manera:

escenario Wuhan Xiamen Nanchang
Wuhan 1 1/3 2
Xiamen 3 1 5
Nanchang 1/2 1/5 1

En materia de transporte, la matriz de juicio de cada ciudad se establece de la siguiente manera:

transporte Wuhan Xiamen Nanchang
Wuhan 1 2 5
Xiamen 1/2 1 3
Nanchang 1/5 1/3 1

Paso 3: Comprobar la consistencia de la matriz de juicio

(1) Calcular el índice de consistencia

Indica el valor propio máximo de la matriz de juicio, n representa el tamaño de la matriz, es decir, la matriz de juicio es una matriz con n filas y n columnas 

 (2) Calcular el índice de consistencia CR

 RI es el índice de consistencia aleatoria promedio, que se especifica en la siguiente tabla, y el valor de RI se determina de acuerdo con el tamaño de la matriz de juicio

norte 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Rhode Island 0 0 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

Si el CR es inferior a <0,1, la consistencia de la matriz de juicio se considera aceptable, de lo contrario, la matriz de juicio debe reajustarse. Si no pasa la prueba de consistencia, se puede ajustar con un método muy simple. Primero, verifique si la relación entre cada fila y cada columna es proporcional. Si no, ajuste la relación entre cada fila y cada columna.

Un ejemplo de matriz de consenso es el siguiente:

escenario Hangzhou Xian guilin
Hangzhou 1 2 4
Xian 1/2 1 2
guilin 1/4 1/2 1

Se puede ver que las filas y columnas de la matriz anterior son proporcionales. Por ejemplo, los elementos de la segunda columna son el doble de los elementos de la primera columna. Si no se pasa la verificación de consistencia, es necesario ajustar la dirección donde cada fila y columna son proporcionales.

Paso 4: Calcule el peso del indicador y la puntuación de la ciudad en cada indicador

  1. significado aritmetico

Paso 1: agregue la matriz de juicio por fila para obtener un vector de fila 1*n

Paso 2: divida todos los elementos en la primera fila de la matriz de juicio por los elementos correspondientes del vector de fila 1*n anterior hasta que la última fila se divida por la operación de vector de fila 1*n, y finalmente obtenga una matriz n*n

El tercer paso: sumar la matriz n*n obtenida en el segundo paso columna por columna para obtener una matriz n*1, y luego dividir cada elemento por n para obtener el vector de peso calculado por el método de la media aritmética.

Dejame darte un ejemplo:

El peso para calcular el costo se calcula utilizando esta fórmula como

El peso que se obtiene al dividir la razón de gasto a otros indicadores por la suma de las columnas donde se ubican otros indicadores

Calcule los pesos utilizando los elementos de la primera columna:

1/(1+1/2+3)

使用第二列元素计算权重:
2/(2+1+5)

使用第三列元素计算权重:
1/3/(1/3+1/5+1)

再将这三个结果取平均值就得到归一化后的结果

(1/(1+1/2+3)+ 2/(2+1+5)+ 1/3/(1/3+1/5+1))/3

(2)几何平均法

第一步:将判断矩阵的元素按照行相乘得到一个新的列向量

第二步:将新的向量的每个分量开n次方

第三步:对该列向量进行归一化即可得到权重向量

 表示将判断矩阵的元素按行相乘得到一个新的列向量并开n次方,随后除以新的列向量所有元素之和得到归一化后的权重向量

(3)特征值法

第一步:求出矩阵A的最大特征值以及其对应的特征向量

第二步:对求出的特征向量进行归一化即可得到我们的权重

使用matlab 的eig()函数可以求特征向量矩阵

 4matlab实现层次分析法

注意,当只有两个指标或两个方案需要选择时不可以使用层次分析法。

%输入判断矩阵A
A=[1 1/3 4;
    3 1 5;
    1/4 1/5 1]
%判断判断矩阵A是否通过一致性检验,否则需要修改判断矩阵直到通过一致性检验
[n,n]=size(A)
    [v,d]=eig(A)
    %求最大特征向量
    %v表特征向量,d表示特征值构成的对角矩阵
    max_v=max(max(d))
    %求判断矩阵A是几行几列的矩阵
    %计算一致性指标CI
    CI=(max_v-n)/(n-1)
    RI=[0 0 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]
    %计算一致性比例CR
    disp("一致性比例为")
    CR=CI/RI(n)
    disp(CR)
    if CR<0.10
        disp("因为一致性比例CR<0.1,因此判断矩阵A通过一致性检验")
    else
        disp("因为一致性比例CR>0.1,因此判断矩阵A不通过一致性检验,请重新调整判断矩阵,直至通过一致性检验")
    end
%算数平均法求权重
%将判断矩阵按列求和
%n表示判断矩阵A有n行n列
%[n,n]=size(A)
if CR<0.1
    sum_a=sum(A,1)
    sum_A=repmat(sum_a,n,1)
    %计算未归一化的权重
    weight=A./sum_A
    %计算归一化后的权重
    sum_weight=sum(weight,2)
    weight=sum_weight/n
    disp("算数平均法求的权重或得分为:")
    disp(weight)
    
    %几何平均法求权重
    %判断矩阵按行相乘
    prod_A=prod(A,2)
    %将新的向量开n次方得到未归一化的权重
    prod_A=prod_A.^(1/n)
    %权重归一化
    disp("几何平均法求得权重或得分为:")
    weight_jihe=prod_A./sum(prod_A)
    
    %特征值法求权重
    %v表特征向量,d表示特征值构成的对角矩阵
    %[v,d]=eig(A)
    %max_v=max(max(d))
    %将特征向量归一化
    %find函数用于寻找最大特征值所在的位置
    %max_v表示最大特征值
    [max_r,max_c]=find(max_v,1)
    %v(:,max_c)找到最大特征值对应的列
    e=v(:,max_c)/sum(v(:,max_c))
    disp("特征值法求的权重或得分为:")
    disp(e)
end
%三种方法得出的平均权重
disp("三种方法得出的平均权重或得分为")
disp((e+ weight_jihe+weight)./3)

5计算结果

指标权重及各个城市在各方面的得分为:

指标权重 武汉 厦门 南昌
花费 0.2297 0.2812 0.6424 0.0946
景色 0.1221 0.2297 0.6482 0.1221
交通 0.6482 0.5815 0.3090 0.1095

各个城市的最终得分为:

得分
武汉 0.47
厦门 0.43
南昌 0.11

可以看到武汉得分最高,我主观认为最适合小明去的城市为武汉。

非常感谢各位小伙伴看到这里,有不对的地方欢迎各位小伙伴指正。我写到这里老辛苦了,可怜一下我给我个赞吧,谢谢各位大漂亮大帅逼~

Supongo que te gusta

Origin blog.csdn.net/denghls/article/details/126842244
Recomendado
Clasificación