基于投影寻踪博弈论-云模型的综合评价
运行效果
研究内容
代码功能
该代码实现了一个基于投影寻踪博弈论和云模型的滑坡风险综合评价系统,主要功能包括:
采用4种权重计算方法(灰色关联法、CRITIC法、变异系数法、投影寻踪法)确定评价指标权重
通过博弈论组合赋权法融合多种权重结果
使用云模型可视化滑坡风险等级标准
对待评价区域(A区)进行滑坡风险等级评估
算法步骤与技术路线
- 权重计算(多方法融合)
2. 云模型评价流程
关键参数设定
数据规格:
10个滑坡点样本 × 8个评价指标
评价指标:C1~C8
云模型参数:
% 高易发区(等级I)
Ex1 = (4+3)/2; % 期望=3.5
En1 = (4-3)/(2sqrt(2log(2))); % 熵≈0.212
He1 = 0.05; % 超熵
% 中易发区(等级II)
Ex2 = (3+2)/2; % 期望=2.5
% 类似设置III、IV等级参数…
优化参数:
投影寻踪:fmincon优化,边界[0.01, 1]
博弈论组合:fmincon优化,边界[0, 1]
云滴数量:
N = 4500; % 每个云模型生成的云滴数量
运行环境要求
软件平台:MATLAB2020B(需安装Optimization Toolbox)
依赖函数:
GreyRelationDegree.m(灰色关联法)
guiyi.m(归一化函数)
myfun.m(投影寻踪目标函数)
cloud.m(云模型生成)
cloud_SBCT_1thM.m(指标云参数计算)
zonghe.m(综合云计算)
spider_plot.m(雷达图绘制)
应用场景
地质灾害评估:滑坡风险等级评价
多指标决策系统:适用于需要综合多种权重方法的评价场景
不确定性建模:处理评价过程中的模糊性和随机性
风险可视化:通过云模型直观展示风险等级分布
方法对比研究:4种权重计算方法的对比分析
技术特点
多方法融合:结合4种客观赋权法,通过博弈论优化组合
云模型优势:处理评价中的模糊性和随机性
可视化分析:
雷达图对比各方法权重分布
云图展示风险等级隶属关系
优化算法应用:使用fmincon解决投影寻踪和组合权重优化问题
输出结果
权重对比雷达图和折线图
标准风险等级云图
各指标云参数子图
综合评价云图(叠加标准云)
最终风险等级文本输出:
disp([‘该区域滑坡风险等级:’,num2str(method{Index})])
程序设计
- 完整代码私信回复基于投影寻踪博弈论-云模型的综合评价
%%
figure
plot(1:length(W1),W1,'r-s','linewidth',1,'markerfacecolor','r')
hold on
plot(1:length(W2),W2,'b-o','linewidth',1,'markerfacecolor','c')
hold on
plot(1:length(W3),W3,'g-d','linewidth',1,'markerfacecolor','b')
hold on
plot(1:length(W4),W4,'m-v','linewidth',1,'markerfacecolor','k')
hold on
plot(1:length(zW),zW,'c-<','linewidth',1,'markerfacecolor','m')
methods = {'C1', 'C2', 'C3', 'C4', 'C5','C6','C7','C8'};
set(gca,'YGrid', 'on','XTickLabel',methods);
xlabel('评价指标', 'fontsize',8);
ylabel('权重数值', 'fontsize',8);
grid off
legend('灰色关联法', 'CRITIC法', '变异系数法', '投影寻踪','博弈论组合赋权法')
%% 标准云参数 云模型
%% I-高易发区
Ex1=(4+3)/2;% 期望
En1=(4-3)/(2*sqrt(2*log(2)));% 熵
He1=0.05; % 超熵,控制标准隶属云的离散程度
%% II-中易发区
Ex2=(3+2)/2;% 期望
En2=(3-2)/(2*sqrt(2*log(2)));% 熵
He2=0.05; % 超熵,控制标准隶属云的离散程度
%% III-低易发区
Ex3=(2+1.2)/2;% 期望
En3=(2-1.2)/(2*sqrt(2*log(2)));% 熵
He3=0.05; % 超熵,控制标准隶属云的离散程度
%% IV-不易发区
Ex4=(1.2+0)/2;% 期望
En4=(1.2-0)/(2*sqrt(2*log(2)));% 熵
He4=0.05; % 超熵,控制标准隶属云的离散程度
% 等级1 云模型
N=4500;%% 云滴数
[X1,Y1]=cloud(Ex1,En1,He1,N);
% 等级2 云模型
[X2,Y2]=cloud(Ex2,En2,He2,N);
% 等级3 云模型
[X3,Y3]=cloud(Ex3,En3,He3,N);
% 等级4 云模型
[X4,Y4]=cloud(Ex4,En4,He4,N);
figure
plot(X1,Y1,'c.','linewidth',1)
hold on
plot(X2,Y2,'m.','linewidth',1)
hold on
plot(X3,Y3,'y.','linewidth',1)
hold on
plot(X4,Y4,'r.','linewidth',1)
xlabel('风险值')
ylabel('隶属度')
box off
title('标准云图')
legend('I-高易发区','II-中易发区','III-低易发区','IV-不易发区')
参考资料
https://hmlhml.blog.csdn.net/article/details/148345575?spm=1001.2014.3001.5502
https://hmlhml.blog.csdn.net/article/details/148345506?spm=1001.2014.3001.5502