第十四篇 Decision 决策
第50章 Decision
在 ICAI 的认知运行链中,Reasoning 负责形成结论,Decision 负责在可选方案之间进行选择。
因此,Decision 不是简单的“判断”,也不是直接执行 Action。
基本关系:
Information
↓
Perception
↓
Cognition
↓
Understanding
↓
Memory
↓
Reasoning
↓
Conclusion
↓
Decision
↓
Action
↓
Experience
其中:
Reasoning = 得出什么结论?
Decision = 选择做什么?
Action = 实际执行什么?
1. Decision 定义
1.1 Decision 是什么
Decision 是 ICAI 根据当前目标、推理结论、候选方案、条件、风险、优先级以及历史经验,对多个可行选择进行评估并确定一个选择结果的过程。
基本模型:
Candidate
+
Condition
+
Risk
+
Priority
+
Conclusion
+
Experience
↓
Decision
↓
Choice
Decision 的核心不是产生新的信息,而是:
在当前条件下,从可行候选方案中确定下一步应该选择的方案。
1.2 Decision 的基本结构
可以定义:
Decision
{
id
goal
context
conclusion
candidates
conditions
risks
priorities
choice
result
state
created_at
updated_at
}
例如:
Decision
{
id: 1001,
goal: "select_delivery_service",
conclusion: "multiple_services_available",
candidates: [
"Service_A",
"Service_B"
],
choice: "Service_A",
state: "CONFIRMED"
}
1.3 Decision 的核心问题
Reasoning 主要解决:
事实是什么?
条件是否成立?
规则产生什么结论?
Decision 进一步解决:
有哪些选择?
哪些选择可行?
哪个风险更低?
哪个优先级更高?
当前应该选择哪个?
因此:
Reasoning → Conclusion
Decision → Choice
2. 推理与决策
Reasoning 和 Decision 是连续但不同的两个阶段。
2.1 Reasoning
Reasoning 根据已有认知资源形成结论:
Fact
+
Relation
+
Rule
+
Condition
↓
Reasoning
↓
Conclusion
例如:
Battery_A.level = 20
规则:
IF Battery.level < 30
THEN Battery.state = low
推理结果:
Conclusion:
Battery_A.state = low
2.2 Decision
Decision 获得这个结论以后,继续判断:
Battery_A.state = low
存在候选行为:
Candidate_A = charge
Candidate_B = continue
Candidate_C = shutdown
Decision 需要计算:
Condition
Risk
Priority
然后形成:
Choice = charge
2.3 三者关系
必须区分:
Conclusion ≠ Choice ≠ Action
完整关系:
Reasoning
↓
Conclusion
↓
Decision
↓
Choice
↓
Action
例如:
Conclusion:
Battery low
Choice:
Charge device
Action:
Execute charging operation
3. Candidate
3.1 Candidate 定义
Candidate 是 Decision 阶段可以被考虑的候选方案。
例如:
Candidate_A
Candidate_B
Candidate_C
候选方案可以是:
- 一个动作
- 一个对象
- 一个服务
- 一个路径
- 一个方法
- 一个处理方案
- 一个规则结果
- 一个下一步行为
3.2 Candidate 结构
可以定义:
Candidate
{
id
name
type
action
condition
risk
priority
score
state
}
例如:
Candidate
{
id: 101,
name: "Charge",
type: "action",
action: "start_charge",
risk: 0.10,
priority: 80,
state: "AVAILABLE"
}
3.3 Candidate 来源
Candidate 不一定由 Decision 自己产生。
它可以来自:
Rule
Experience
Memory
Current Context
Capability
Available Methods
例如:
Memory
↓
历史成功经验
↓
Candidate_A
Rule
↓
允许的行为
↓
Candidate_B
Capability
↓
当前可执行方法
↓
Candidate_C
3.4 Candidate 筛选
不是所有候选方案都可以进入最终选择。
基本流程:
All Candidates
↓
Condition Check
↓
Capability Check
↓
Risk Check
↓
Priority Evaluation
↓
Available Candidates
例如:
Candidate_A = available
Candidate_B = unavailable
Candidate_C = available
那么:
Candidate_B
→ REJECTED
剩余:
Candidate_A
Candidate_C
进入下一阶段。
4. Condition
Decision 中的 Condition 用于判断候选方案是否满足当前执行条件。
例如:
Candidate:
start_charge
要求:
IF charger.available = true
当前:
charger.available = true
则:
Condition = TRUE
Candidate 可以继续评估。
4.1 Decision Condition 与 Rule Condition
两者相关,但用途不同。
Rule Condition
↓
判断 Rule 是否成立
Decision Condition
↓
判断 Candidate 是否可选择
例如:
Rule:
IF battery.level < 30
THEN battery.state = low
这是 Rule Condition。
而:
Candidate:
charge
Condition:
charger.available = true
这是 Decision Condition。
4.2 Condition 状态
Decision Condition 同样可以具有:
TRUE
FALSE
UNKNOWN
CONFLICT
例如:
charger.available = UNKNOWN
则:
Candidate = UNKNOWN
系统不能把未知条件直接视为可以执行。
4.3 多条件
例如:
IF
charger.available = true
AND
device.state = active
AND
battery.level < 30
只有:
TRUE
AND
TRUE
AND
TRUE
最终为:
TRUE
Candidate 才可以进入选择阶段。
5. Risk
5.1 Risk 定义
Risk 表示一个 Candidate 在当前条件下可能产生的不利结果或不确定性程度。
Decision 不应该只考虑:
“能不能做?”
还需要考虑:
“做了以后可能产生什么风险?”
5.2 Risk 结构
可以定义:
Risk
{
candidate_id
type
level
probability
impact
state
}
例如:
Risk
{
candidate_id: 101,
type: "device_damage",
level: 0.20,
probability: 0.10,
impact: 0.80,
state: "KNOWN"
}
5.3 Risk 与 Condition
Condition 判断:
是否满足条件?
Risk 判断:
即使满足条件,是否存在风险?
例如:
charger.available = true
所以:
Condition = TRUE
但是:
charger.temperature = 85
可能导致:
Risk = HIGH
因此:
Condition TRUE
≠
Candidate 一定应该被选择
5.4 Risk 计算
可以使用离散计算模型:
RiskScore = Probability × Impact
例如:
Probability = 0.2
Impact = 0.8
得到:
RiskScore = 0.2 × 0.8
= 0.16
这里的数值只是 DecisionEngine 的计算参数,不涉及神经网络训练。
6. Priority
Candidate 之间可能存在优先级差异。
例如:
Candidate_A priority = 80
Candidate_B priority = 50
Candidate_C priority = 30
在其他条件相近的情况下:
Candidate_A
>
Candidate_B
>
Candidate_C
6.1 Priority 来源
Priority 可以来自:
Rule Priority
Task Priority
Goal Priority
Candidate Priority
User-defined Priority
Experience-based Priority
例如:
紧急任务 = 100
普通任务 = 50
低优先任务 = 20
6.2 Priority 不是最终选择
必须注意:
Priority ≠ Choice
例如:
Candidate_A priority = 100
Risk = HIGH
而:
Candidate_B priority = 80
Risk = LOW
不能简单地因为:
100 > 80
就直接选择 A。
Decision 必须综合:
Condition
Risk
Priority
Capability
Conclusion
7. Choice
7.1 Choice 定义
Choice 是 Decision 对 Candidate 进行综合评估后形成的最终选择。
基本流程:
Candidates
↓
Condition
↓
Risk
↓
Priority
↓
Evaluation
↓
Choice
例如:
Candidate_A
Candidate_B
Candidate_C
经过评估:
Candidate_A = 0.72
Candidate_B = 0.86
Candidate_C = 0.41
最终:
Choice = Candidate_B
7.2 Choice 的计算
可以定义一个离散评分模型:
ChoiceScore =
ConditionScore × ConditionWeight
+
PriorityScore × PriorityWeight
+
SafetyScore × SafetyWeight
+
ExperienceScore × ExperienceWeight
其中风险可以转换为安全分数:
SafetyScore = 1 - RiskScore
例如:
ConditionScore = 1.00
PriorityScore = 0.80
SafetyScore = 0.90
ExperienceScore = 0.70
权重:
ConditionWeight = 0.35
PriorityWeight = 0.20
SafetyWeight = 0.30
ExperienceWeight = 0.15
那么:
ChoiceScore
=
1.00 × 0.35
+
0.80 × 0.20
+
0.90 × 0.30
+
0.70 × 0.15
= 0.35
+ 0.16
+ 0.27
+ 0.105
= 0.885
得到:
CandidateScore = 0.885
这些权重属于 ICAI 的明确计算参数,可以人工设定,也可以根据经验进行离散调整;它们不是模型训练参数。
7.3 Choice 的状态
Choice 可以具有:
SELECTED
REJECTED
UNCERTAIN
CONFLICT
NO_CHOICE
例如:
所有 Candidate 都不满足条件
结果:
NO_CHOICE
而不是强行选择一个方案。
8. Decision Result
8.1 Decision Result 定义
Decision Result 是 Decision 完成之后产生的结构化结果。
例如:
DecisionResult
{
decision_id
goal
candidates
selected
rejected
reason
risk
score
state
}
8.2 成功决策
例如:
Selected:
Candidate_A
结果:
DecisionResult
{
selected: "Candidate_A",
state: "CONFIRMED"
}
8.3 无法决策
如果:
Candidate_A = UNKNOWN
Candidate_B = UNKNOWN
那么:
DecisionResult
{
selected: null,
state: "NO_CHOICE"
}
ICAI 不应该为了“必须有答案”而随意选择。
8.4 决策冲突
例如:
Candidate_A
priority = 80
risk = 0.70
Candidate_B
priority = 80
risk = 0.70
如果二者其他条件完全相同:
Candidate_A
vs
Candidate_B
无法确定选择。
结果可以是:
DecisionResult
{
selected: null,
state: "CONFLICT"
}
然后交给更高层的 Decision 或其他认知机制继续处理。
9. Decision 生命周期
Decision 不是一次简单的计算,它具有生命周期。
9.1 创建
收到推理结论:
Conclusion
↓
Create Decision
例如:
Goal:
select next action
状态:
NEW
9.2 候选生成
NEW
↓
Candidate Generation
↓
CANDIDATES_READY
形成:
Candidate_A
Candidate_B
Candidate_C
9.3 条件检查
CANDIDATES_READY
↓
Condition Check
↓
EVALUATING
检查:
Condition
Capability
Environment
State
9.4 风险评估
EVALUATING
↓
Risk Evaluation
得到:
RiskScore
9.5 优先级计算
Risk Evaluation
↓
Priority Evaluation
确定 Candidate 的排序与选择条件。
9.6 选择
Evaluation
↓
Choice
可能得到:
SELECTED
也可能得到:
NO_CHOICE
或者:
CONFLICT
9.7 决策完成
如果成功:
SELECTED
↓
DECIDED
DecisionResult:
DecisionResult
{
selected: Candidate_A,
state: "CONFIRMED"
}
9.8 执行与反馈
Decision 完成后才进入 Action:
Decision
↓
Choice
↓
Action
↓
Result
↓
Feedback
↓
Experience
↓
Memory
这一步非常重要,因为 Decision 本身不等于 Action。
Decision 生命周期完整模型
NEW
↓
CANDIDATES_READY
↓
EVALUATING
↓
RISK_CHECK
↓
PRIORITY_CHECK
↓
SELECTING
↓
DECIDED
↓
ACTION
↓
FEEDBACK
↓
EXPERIENCE
异常情况:
EVALUATING
├──→ CONFLICT
├──→ NO_CHOICE
└──→ UNKNOWN
Decision 核心模型
第50章可以把 Decision 抽象为:
Conclusion
↓
Decision Goal
↓
Candidate
↓
Condition
↓
Risk
↓
Priority
↓
Evaluation
↓
Choice
↓
Decision Result
↓
Action
核心计算关系:
Candidate
+
Condition
+
Risk
+
Priority
+
Experience
+
Goal
↓
Decision
↓
Choice
最终形成 ICAI 的完整认知运行链:
Information
↓
Perception
↓
Elements
↓
Objects
↓
Relations
↓
Understanding
↓
Memory
↓
Reasoning
↓
Conclusion
↓
Decision
↓
Choice
↓
Action
↓
Result
↓
Experience
↓
Learning
↓
Memory Update
本章核心定义
Decision 是 ICAI 在获得 Reasoning 的 Conclusion 后,根据当前目标,从多个 Candidate 中结合 Condition、Risk、Priority、Experience 等因素进行评估并形成 Choice 的决策机制。
因此:
Reasoning = 得出结论
Decision = 选择方案
Action = 执行选择
Experience = 记录结果
Learning = 从结果中获得知识
这五个过程共同形成:
Conclusion
↓
Choice
↓
Action
↓
Experience
↓
Learning
也为下一阶段 DecisionEngine 的具体运行机制建立基础。