首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第51章 Risk

第十四篇 Decision 决策

第51章 Risk

在 Decision 中,Candidate 并不是只需要判断“能不能做”,还需要判断:

选择这个方案可能产生什么风险?风险有多大?是否可以接受?

因此,Risk 是 Decision 的重要组成部分。

基本关系:

Candidate
    ↓
Condition
    ↓
Risk Evaluation
    ↓
Priority
    ↓
Choice

Risk 不负责决定最终选择,而是为 Decision 提供风险信息。


1. Risk 定义

1.1 Risk 是什么

Risk 是 ICAI 对某个 Candidate、Action、Object 或 Decision 可能产生的不利结果、不确定结果以及影响程度进行结构化描述和计算的机制。

基本模型:

Risk
=
Potential Event
+
Probability
+
Impact
+
Condition

例如:

Candidate:
Start_Device

Potential Event:
设备温度继续升高

Probability:
0.20

Impact:
0.80

可以进一步计算风险值。


1.2 Risk 的作用

Risk 主要用于:

识别风险
↓
描述风险
↓
计算风险
↓
比较风险
↓
排序风险
↓
提供决策依据

因此:

Risk ≠ Decision

Risk 提供:

“这个选择可能有什么问题?”

Decision 最终判断:

“当前应该选择哪个方案?”

1.3 Risk 基本结构

可以定义:

Risk
{
    id
    candidate_id
    object
    event
    condition
    probability
    impact
    score
    level
    priority
    state
}

例如:

Risk
{
    id: 1001,
    candidate_id: "Candidate_A",
    object: "Device_A",
    event: "temperature_high",
    probability: 0.20,
    impact: 0.80,
    score: 0.16,
    level: "LOW",
    priority: 30,
    state: "ACTIVE"
}

2. 风险等级

Risk 需要能够把计算结果转换成明确的风险等级。

例如:

LOW
MEDIUM
HIGH
CRITICAL

可以建立一个简单的等级区间:

0.00 ─ 0.24   LOW
0.25 ─ 0.49   MEDIUM
0.50 ─ 0.74   HIGH
0.75 ─ 1.00   CRITICAL

这里的区间只是 ICAI 的规则参数,可以根据具体系统进行配置。


2.1 LOW

RiskScore < 0.25

表示当前计算出的风险较低。

例如:

Probability = 0.10
Impact = 0.20

RiskScore = 0.02

结果:

LOW

通常可以继续进入 Candidate 评估。


2.2 MEDIUM

0.25 ≤ RiskScore < 0.50

表示存在一定风险,需要进一步比较其他条件。


2.3 HIGH

0.50 ≤ RiskScore < 0.75

表示风险较高。

Decision 不应该仅因为 Candidate 满足条件就直接选择。


2.4 CRITICAL

RiskScore ≥ 0.75

表示风险非常高。

系统可以根据规则规定:

CRITICAL
→ Candidate 不允许选择

或者:

CRITICAL
→ 必须进入特殊决策流程

因此风险等级本身也是一个可以参与 Decision 的条件。


3. 风险条件

3.1 Risk Condition 定义

Risk Condition 是产生或增加风险的具体条件。

例如:

IF
temperature > 80
THEN
Risk = high_temperature

这里:

temperature > 80

就是 Risk Condition。


3.2 风险条件结构

可以定义:

RiskCondition
{
    object
    property
    operator
    value
    result
}

例如:

RiskCondition
{
    object: "Device_A",
    property: "temperature",
    operator: ">",
    value: 80,
    result: "HIGH"
}

当前:

Device_A.temperature = 90

计算:

90 > 80
→ TRUE

风险条件成立。


3.3 多个风险条件

一个风险可能由多个条件共同产生。

例如:

IF
    temperature > 80
AND
    battery.level < 10
THEN
    Risk = critical

当前:

temperature = 90
battery.level = 5

得到:

TRUE AND TRUE
→ TRUE

所以:

Risk Condition = TRUE
Risk Level = CRITICAL

3.4 风险条件状态

与 Rule Condition 一样,Risk Condition 也应该支持:

TRUE
FALSE
UNKNOWN
CONFLICT

例如:

temperature = UNKNOWN

则:

temperature > 80
→ UNKNOWN

不能直接认为:

Risk = LOW

因为未知并不等于安全。

因此:

UNKNOWN ≠ LOW

4. 风险计算

4.1 基本风险公式

ICAI 可以采用明确的离散计算模型:

RiskScore = Probability × Impact

其中:

Probability ∈ [0,1]
Impact      ∈ [0,1]
RiskScore   ∈ [0,1]

例如:

Probability = 0.30
Impact = 0.80

则:

RiskScore
=
0.30 × 0.80
=
0.24

因此:

RiskLevel = LOW

按照当前设定的等级区间,它处于 LOW 边界。


4.2 Probability

Probability 表示某个不利事件发生的可能程度。

例如:

0.10
0.30
0.60
0.90

可以解释为:

0.10 → 较低
0.30 → 中等偏低
0.60 → 较高
0.90 → 很高

Probability 可以来自:

历史经验
事实统计
当前状态
规则计算
环境条件

而不是必须来自复杂模型。


4.3 Impact

Impact 表示风险事件发生后可能造成的影响程度。

例如:

0.10 → 影响很小
0.50 → 中等影响
0.80 → 较大影响
1.00 → 最大影响

Impact 可以根据:

对象重要程度
任务重要程度
损失程度
状态变化
安全要求

进行离散定义。


4.4 风险修正

某些系统中还需要加入风险修正因素:

RiskScore
=
Probability
×
Impact
×
Exposure

例如:

Probability = 0.40
Impact = 0.80
Exposure = 0.50

则:

RiskScore
=
0.40 × 0.80 × 0.50
=
0.16

这里的 Exposure 可以表示:

暴露程度
持续时间
影响范围
发生频率

具体使用哪些参数,需要由系统定义,而不是强制所有 ICAI 都采用同一种公式。


4.5 风险计算不是概率预测模型

这里必须明确:

RiskScore

是 ICAI 根据已经定义的数据和计算规则得到的数值。

它不是:

神经网络
模型训练
Embedding
LLM
生成模型

也不要求使用大模型预测未来。

核心仍然是:

Fact
+
Condition
+
Probability
+
Impact
+
Rule
→
RiskScore

5. 风险比较

Decision 中通常存在多个 Candidate,因此需要比较 Candidate 的风险。

例如:

Candidate_A
RiskScore = 0.20

Candidate_B
RiskScore = 0.60

Candidate_C
RiskScore = 0.10

排序:

Candidate_C
    ↓
Candidate_A
    ↓
Candidate_B

从风险角度:

C < A < B

5.1 单风险比较

Risk_A = 0.20
Risk_B = 0.50

则:

Risk_A < Risk_B

A 的风险低于 B。


5.2 多风险比较

一个 Candidate 可能同时存在多个风险:

Candidate_A
├── Cost Risk       = 0.20
├── Time Risk       = 0.30
└── Safety Risk     = 0.10

可以计算:

TotalRisk

例如采用加权模型:

TotalRisk
=
CostRisk × 0.20
+
TimeRisk × 0.30
+
SafetyRisk × 0.50

假设:

0.20 × 0.20
+
0.30 × 0.30
+
0.10 × 0.50

= 0.04
+ 0.09
+ 0.05

= 0.18

因此:

TotalRisk = 0.18

5.3 最高风险约束

有时候不能只看平均风险。

例如:

Candidate_A
CostRisk = 0.10
TimeRisk = 0.10
SafetyRisk = 0.90

虽然平均值可能不高,但:

SafetyRisk = 0.90

已经属于 CRITICAL。

因此可以设置:

IF AnyRisk.level = CRITICAL
THEN Candidate = REJECTED

这种机制可以避免某一个严重风险被其他低风险项目抵消。


6. 风险优先级

风险本身也存在优先级。

例如:

Risk_A = cost
Risk_B = time
Risk_C = safety

系统可能定义:

Safety Priority = 100
Cost Priority   = 50
Time Priority   = 30

于是:

Safety
>
Cost
>
Time

6.1 Risk Priority

可以定义:

RiskPriority
{
    risk_id
    priority
    reason
    state
}

例如:

RiskPriority
{
    risk_id: "SafetyRisk",
    priority: 100,
    reason: "safety_constraint",
    state: "ACTIVE"
}

6.2 风险等级与风险优先级

二者不能混淆:

Risk Level
    = 风险有多严重

Risk Priority
    = 当前处理风险的先后顺序

例如:

Risk_A
level = HIGH
priority = 50

Risk_B
level = MEDIUM
priority = 100

虽然 B 的等级较低,但系统可能规定 B 必须优先处理。

所以:

Risk Level ≠ Risk Priority

6.3 Risk 对 Candidate 的影响

风险最终会进入 Decision:

Candidate
    ↓
Risk Evaluation
    ↓
RiskScore
    ↓
RiskLevel
    ↓
RiskPriority
    ↓
Candidate Evaluation

因此:

Risk
→ 影响 Candidate Score
→ 影响 Candidate 排序
→ 可能导致 Candidate 被拒绝
→ 可能导致 Decision = NO_CHOICE

7. 风险决策示例

下面建立一个完整的 ICAI 风险决策实例。

7.1 当前任务

ICAI 需要从三个方案中选择一个:

Goal:
Select_Service

候选:

Candidate_A = Service_A
Candidate_B = Service_B
Candidate_C = Service_C

7.2 当前条件

已知:

Service_A.available = true
Service_B.available = true
Service_C.available = true

所以:

Condition_A = TRUE
Condition_B = TRUE
Condition_C = TRUE

三个 Candidate 都可以进入风险评估。


7.3 风险数据

Candidate A

Probability = 0.20
Impact = 0.50

计算:

Risk_A
=
0.20 × 0.50
=
0.10

结果:

LOW

Candidate B

Probability = 0.40
Impact = 0.80

计算:

Risk_B
=
0.40 × 0.80
=
0.32

结果:

MEDIUM

Candidate C

Probability = 0.70
Impact = 0.90

计算:

Risk_C
=
0.70 × 0.90
=
0.63

结果:

HIGH

7.4 风险比较

得到:

Service_A = 0.10
Service_B = 0.32
Service_C = 0.63

风险排序:

Service_A
    ↓
Service_B
    ↓
Service_C

7.5 加入 Priority

假设:

Service_A priority = 50
Service_B priority = 80
Service_C priority = 100

这时候出现:

Service_C
Priority = 100
Risk = 0.63

而:

Service_A
Priority = 50
Risk = 0.10

Decision 不能只看 Priority。

需要综合:

Condition
+
Risk
+
Priority

7.6 Candidate Score

假设定义:

CandidateScore
=
ConditionScore × 0.40
+
PriorityScore × 0.20
+
SafetyScore × 0.40

其中:

SafetyScore = 1 - RiskScore

为了方便比较,将 Priority 转换为 0~1:

Service_A:
PriorityScore = 0.50
Risk = 0.10
Safety = 0.90

Service_B:
PriorityScore = 0.80
Risk = 0.32
Safety = 0.68

Service_C:
PriorityScore = 1.00
Risk = 0.63
Safety = 0.37

三个条件均成立:

ConditionScore = 1.00

计算:

Service A

1.00 × 0.40
+
0.50 × 0.20
+
0.90 × 0.40

= 0.40
+ 0.10
+ 0.36

= 0.86

Service B

1.00 × 0.40
+
0.80 × 0.20
+
0.68 × 0.40

= 0.40
+ 0.16
+ 0.272

= 0.832

Service C

1.00 × 0.40
+
1.00 × 0.20
+
0.37 × 0.40

= 0.40
+ 0.20
+ 0.148

= 0.748

得到:

Service_A = 0.860
Service_B = 0.832
Service_C = 0.748

因此:

Choice = Service_A

7.7 风险否决

如果系统还有一条安全规则:

IF RiskScore >= 0.60
THEN Candidate = REJECTED

那么:

Service_C
RiskScore = 0.63

直接:

Service_C = REJECTED

剩余:

Service_A
Service_B

继续进行 Decision。

这说明 Risk 不只是一个数字,还可以成为 Decision 的约束条件


Risk 核心模型

本章可以归纳为:

Potential Event
      ↓
Risk Condition
      ↓
Probability
      +
Impact
      ↓
RiskScore
      ↓
RiskLevel
      ↓
RiskPriority
      ↓
Candidate Evaluation
      ↓
Decision

完整 Decision 关系:

Conclusion
     ↓
Candidate
     ↓
Condition
     ↓
Risk
 ┌───┴────┐
 ↓        ↓
Score    Level
 └───┬────┘
     ↓
Priority
     ↓
Choice
     ↓
DecisionResult

本章核心定义

Risk 是 ICAI 对 Candidate、Action、Object 或 Decision 可能产生的不利事件、不确定性及其影响进行结构化描述、条件判断、数值计算、等级划分和优先级管理的机制。

核心区别:

Condition = 是否满足条件
Risk      = 可能产生什么风险
Priority  = 哪个更重要
Decision  = 选择什么
Action    = 实际做什么

最终形成:

Candidate
+
Condition
+
Risk
+
Priority
↓
Decision
↓
Choice
↓
Action

这为下一步 DecisionEngine 将 Decision、Candidate、Risk、Priority 和 Choice 真正组织成一个可运行的决策引擎奠定基础。

Leave a Reply

Your email address will not be published. Required fields are marked *