package com.estate.expert.admin.component.fuzzy;
import com.estate.expert.admin.utils.json.CustomFloatDeserializer;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.Data;
/**
* 模糊层次分析法(FAHP)评估响应结果
*
*
该类封装了模糊评估API返回的评估结果,包含了风险评估的各个关键指标。
* 这些结果用于指导工程安全管理和风险控制决策。
*
* 主要用途:
*
* - 提供综合风险评分和风险等级
* - 显示各因素的权重分布
* - 验证判断矩阵的一致性
* - 支持风险管控决策
*
*
* @ClassName FuzzyApiResponse
* @Description 模糊层次分析法评估响应结果
* @Author daisy
* @Date 2023/10/29
**/
@Data
public class FuzzyApiResponse {
/**
* 一致性指标 (Consistency Index)
*
* 用于衡量判断矩阵一致性的指标,反映专家判断的逻辑一致性程度。
* CI值越小,表示判断矩阵的一致性越好。
*
* 计算公式:CI = (λmax - n) / (n - 1)
* 其中:λmax为判断矩阵的最大特征值,n为矩阵阶数
*
* 评判标准:
*
* - CI ≤ 0.1:一致性良好
* - 0.1 < CI ≤ 0.2:一致性可接受
* - CI > 0.2:一致性较差,需要重新调整判断矩阵
*
*/
@JsonDeserialize(using = CustomFloatDeserializer.class)
Float CI;
/**
* 一致性比例 (Consistency Ratio)
*
* 一致性指标与平均随机一致性指标的比值,用于最终判断矩阵一致性。
* CR值越小,表示判断矩阵的一致性越好。
*
* 计算公式:CR = CI / RI
* 其中:CI为一致性指标,RI为平均随机一致性指标
*
* 评判标准:
*
* - CR ≤ 0.1:一致性良好,判断矩阵可接受
* - CR > 0.1:一致性较差,需要重新调整判断矩阵
*
*/
@JsonDeserialize(using = CustomFloatDeserializer.class)
Float CR;
/**
* 平均随机一致性指标 (Random Index)
*
* 随机生成的判断矩阵的平均一致性指标,用作一致性评判的基准。
* RI值随矩阵阶数变化,阶数越大,RI值越大。
*
* 标准RI值表:
*
* - n=1: RI=0
* - n=2: RI=0
* - n=3: RI=0.58
* - n=4: RI=0.90
* - n=5: RI=1.12
* - n=6: RI=1.24
* - n=7: RI=1.32
* - n=8: RI=1.41
* - n=9: RI=1.45
* - n=10: RI=1.49
*
*/
@JsonDeserialize(using = CustomFloatDeserializer.class)
Float RI;
/**
* 一致性结果
*
* 表示判断矩阵是否通过一致性检验的布尔值。
*
* 判断标准:
*
* - true:CR ≤ 0.1,判断矩阵一致性良好,结果可信
* - false:CR > 0.1,判断矩阵一致性较差,需要重新调整
*
*
* 注意:只有当consistence为true时,评估结果才具有参考价值。
*/
boolean consistence;
/**
* 风险得分
*
* 通过模糊层次分析法计算得出的综合风险评分,范围通常在0-100之间。
* 分数越高,表示整体风险水平越高。
*
* 计算过程:
*
* - 1. 根据隶属度矩阵计算各因素的风险值
* - 2. 根据权重矩阵计算加权平均风险值
* - 3. 将模糊风险值转换为具体数值
*
*
* 应用场景:
*
* - 风险等级划分
* - 风险趋势分析
* - 管控措施优先级排序
*
*/
float riskPoint;
/**
* 风险区间
*
* 根据风险得分划分的风险等级区间,范围从1到5。
*
* 风险等级说明:
*
* - 1:可忽略风险 (Very Low Risk) - 风险极低,可接受
* - 2:低风险 (Low Risk) - 风险较低,需要关注
* - 3:中等风险 (Medium Risk) - 风险中等,需要管控
* - 4:高风险 (High Risk) - 风险较高,需要重点管控
* - 5:不可接受风险 (Very High Risk) - 风险极高,必须立即处理
*
*
* 管控建议:
*
* - 等级1-2:常规监控,保持现状
* - 等级3:加强监控,制定预防措施
* - 等级4:重点管控,立即整改
* - 等级5:紧急处理,停止作业
*
*/
int riskInterval;
/**
* 权重数组
*
* 各因素在综合评估中的权重分布,数组长度等于参与评估的因素数量。
* 权重值表示各因素对整体风险的影响程度。
*
* 权重特性:
*
* - 所有权重值均为正数
* - 所有权重值之和等于1.0
* - 权重越大,该因素对整体风险的影响越大
*
*
* 应用场景:
*
* - 识别关键风险因素
* - 制定针对性管控措施
* - 资源分配优先级排序
*
*
* 示例:如果weight = {0.3, 0.25, 0.2, 0.15, 0.1},
* 表示第1个因素权重最高(30%),第5个因素权重最低(10%)。
*/
float[] weight;
/**
* 当前所计算层级的隶属函数
*
* 表示综合评估结果在各个风险等级上的隶属度分布。
* 数组长度为5,对应5个风险等级。
*
* 数组含义:
*
* - largeList[0]:在可忽略风险等级上的隶属度
* - largeList[1]:在低风险等级上的隶属度
* - largeList[2]:在中等风险等级上的隶属度
* - largeList[3]:在高风险等级上的隶属度
* - largeList[4]:在不可接受风险等级上的隶属度
*
*
* 特性:
*
* - 所有元素值在0-1之间
* - 所有元素值之和等于1.0
* - 最大值对应的风险等级为主要风险等级
*
*
* 应用:用于风险等级的模糊判断和不确定性分析。
*/
@JsonProperty("LargeList")
float[] largeList;
}