第52章 Priority
本章大纲
- Priority
- 优先级规则
- 权重
- 条件
- 时间
- 状态
- 风险
- 优先级计算
- 决策选择
1. Priority
1.1 Priority 定义
Priority(优先级)是 ICAI 对多个对象、任务、条件、候选方案、风险或行动进行先后顺序判断的一种机制。
当系统同时面对多个可以处理的对象或者多个可以执行的行动时,不能简单地按照出现顺序执行,而需要根据当前目标、条件、权重、时间、状态和风险确定处理顺序。
因此:
Priority = 对多个候选对象进行重要程度和处理顺序判断
Priority 本身不是决策。
它解决的是:
哪个更应该先处理?
哪个更重要?
哪个更紧急?
哪个应该排在前面?
而 Decision 解决的是:
最终选择哪个?
因此:
Priority ≠ Decision
两者关系:
Candidates
↓
Priority Evaluation
↓
Priority Order
↓
Decision
↓
Choice
2. 优先级规则
Priority 需要明确的规则,否则不同候选对象之间无法进行稳定比较。
基本规则:
IF Condition
THEN Priority = Value
例如:
IF task.state = "urgent"
THEN priority = 90
表示当任务状态为紧急时,该任务获得较高优先级。
2.1 基本优先级规则
PriorityRule
{
id
object
condition
priority
state
}
例如:
PriorityRule
{
id: 1001,
object: "Task_A",
condition: {
property: "state",
operator: "=",
value: "urgent"
},
priority: 90,
state: "ACTIVE"
}
2.2 多规则
一个对象可以同时符合多个优先级规则。
例如:
Rule_001 → priority = 80
Rule_002 → priority = 90
Rule_003 → priority = 70
系统需要根据优先级规则进一步处理:
规则匹配
↓
有效规则
↓
规则优先级比较
↓
最终 Priority
优先级规则本身也应该有自己的优先级,以解决规则冲突。
3. 权重
Priority 不一定只由一个条件决定。
一个候选对象可能同时受到:
- 重要程度
- 条件满足程度
- 时间紧迫程度
- 当前状态
- 风险
- 历史经验
等因素影响。
因此可以使用权重进行综合计算。
基本形式:
PriorityScore =
ConditionScore × ConditionWeight
+ TimeScore × TimeWeight
+ StateScore × StateWeight
+ RiskScore × RiskWeight
+ ImportanceScore × ImportanceWeight
例如:
ConditionWeight = 0.25
TimeWeight = 0.20
StateWeight = 0.20
RiskWeight = 0.20
ImportanceWeight= 0.15
权重满足:
Σ Weight = 1
需要注意:
Priority 权重不是模型训练参数。
它只是 ICAI 内部用于离散计算和比较的明确参数。
可以由系统规则、人工设置或者历史经验进行调整,但不涉及神经网络训练。
4. 条件
Condition 决定一个候选对象当前是否满足优先级要求。
例如:
Task_A.state = urgent
可以得到:
Condition = TRUE
而:
Task_B.state = normal
可能得到:
Condition = FALSE
条件状态:
TRUE
FALSE
UNKNOWN
CONFLICT
4.1 条件评分
条件不一定只有满足和不满足,也可以转换成离散评分。
例如:
完全满足 → 1.00
基本满足 → 0.75
部分满足 → 0.50
弱满足 → 0.25
不满足 → 0.00
因此:
ConditionScore ∈ [0,1]
条件分数越高,表示候选对象越符合当前优先级要求。
5. 时间
时间是 Priority 的重要因素。
两个候选任务的重要程度可能相同,但是截止时间不同,那么系统应当优先处理时间更加紧迫的任务。
例如:
Task_A
deadline = 10:00
Task_B
deadline = 18:00
如果当前时间为:
09:00
那么:
Task_A
剩余时间 = 1小时
Task_B
剩余时间 = 9小时
Task_A 的时间优先级明显更高。
5.1 TimeScore
可以定义:
TimeScore = 时间紧迫程度
例如:
剩余时间 ≤ 1小时 → 1.00
剩余时间 ≤ 3小时 → 0.80
剩余时间 ≤ 6小时 → 0.60
剩余时间 ≤ 12小时 → 0.40
剩余时间 > 12小时 → 0.20
也可以根据系统实际时间进行连续计算。
例如:
TimeScore = 1 - RemainingTime / MaximumTime
并限制:
0 ≤ TimeScore ≤ 1
因此:
时间越紧急
↓
TimeScore 越高
↓
Priority 越高
6. 状态
对象当前状态也会影响 Priority。
例如:
Task_A.state = waiting
Task_B.state = urgent
Task_C.state = blocked
Task_D.state = ready
可以定义状态优先级:
urgent → 1.00
ready → 0.80
waiting → 0.50
blocked → 0.20
于是:
StateScore
可以作为 Priority 的组成部分。
6.1 状态不是优先级
必须区分:
Object State ≠ Priority
例如:
state = urgent
表示对象处于紧急状态。
经过 Priority 规则计算以后:
priority = 90
表示该对象具有较高处理优先级。
两者关系是:
State
↓
Priority Rule
↓
Priority
而不是:
State = Priority
7. 风险
Risk 是 Priority 判断中的重要因素。
但是风险与优先级不是同一个概念。
Risk = 可能产生什么不利结果
Priority = 哪个对象应该优先处理
例如:
Task_A
RiskScore = 0.20
Task_B
RiskScore = 0.80
Task_B 风险更高。
系统可能因此提高 Task_B 的处理优先级:
RiskScore ↑
↓
RiskPriority ↑
↓
Task Priority ↑
但并不是任何情况下:
Risk 越高 = Priority 越高
具体关系必须由系统规则决定。
例如安全系统可以定义:
IF RiskScore >= 0.75
THEN Priority = 100
而普通任务系统可能定义:
IF RiskScore >= 0.75
THEN Candidate = REJECTED
因此 Risk 对 Priority 的影响取决于当前系统规则。
8. 优先级计算
Priority 可以将多个因素转换成统一的 PriorityScore。
基本模型:
PriorityScore =
ConditionScore × ConditionWeight
+ TimeScore × TimeWeight
+ StateScore × StateWeight
+ RiskScore × RiskWeight
+ ImportanceScore × ImportanceWeight
其中:
ConditionScore ∈ [0,1]
TimeScore ∈ [0,1]
StateScore ∈ [0,1]
RiskScore ∈ [0,1]
ImportanceScore ∈ [0,1]
权重:
ConditionWeight = 0.25
TimeWeight = 0.20
StateWeight = 0.20
RiskWeight = 0.20
ImportanceWeight = 0.15
总和:
0.25 + 0.20 + 0.20 + 0.20 + 0.15 = 1.00
8.1 完整计算
假设:
Candidate_A
ConditionScore = 0.90
TimeScore = 0.80
StateScore = 0.70
RiskScore = 0.20
ImportanceScore = 0.90
则:
PriorityScore =
0.90 × 0.25
+ 0.80 × 0.20
+ 0.70 × 0.20
+ 0.20 × 0.20
+ 0.90 × 0.15
得到:
PriorityScore = 0.715
因此:
PriorityScore = 0.715
如果系统使用 100 分制:
Priority = 71.5
8.2 多候选比较
假设有三个候选对象:
Candidate_A → 0.715
Candidate_B → 0.820
Candidate_C → 0.640
排序:
1. Candidate_B → 0.820
2. Candidate_A → 0.715
3. Candidate_C → 0.640
因此:
Priority Order
↓
B
A
C
Priority 的主要作用就是形成这样的顺序。
8.3 Priority 数据结构
可以定义:
Priority
{
id
candidate_id
condition_score
time_score
state_score
risk_score
importance_score
condition_weight
time_weight
state_weight
risk_weight
importance_weight
score
level
rank
state
}
例如:
Priority
{
id: 2001,
candidate_id: "Candidate_A",
condition_score: 0.90,
time_score: 0.80,
state_score: 0.70,
risk_score: 0.20,
importance_score: 0.90,
condition_weight: 0.25,
time_weight: 0.20,
state_weight: 0.20,
risk_weight: 0.20,
importance_weight: 0.15,
score: 0.715,
level: "HIGH",
rank: 2,
state: "ACTIVE"
}
9. 决策选择
Priority 最终服务于 Decision。
完整过程:
Current Context
↓
Candidates
↓
Condition
↓
Time
↓
State
↓
Risk
↓
Importance
↓
Priority Calculation
↓
Priority Score
↓
Priority Ranking
↓
Decision
↓
Choice
↓
Action
这里需要特别区分三个概念:
Priority = 排序
Decision = 选择
Action = 执行
例如:
Candidate_A → Priority 71
Candidate_B → Priority 82
Candidate_C → Priority 64
Priority 得出:
B > A > C
但是 Decision 仍然需要进一步检查:
B 是否满足执行条件?
B 是否存在不可接受风险?
B 是否具备执行能力?
B 是否与当前目标一致?
如果 Candidate_B 存在:
RiskScore = 0.95
并且系统规定:
IF RiskScore >= 0.90
THEN Candidate = REJECTED
那么即使:
Priority_B = 82
也不能直接选择 B。
系统可能最终选择:
A
因此:
Priority Ranking ≠ Final Choice
完整 Priority 模型
Information
↓
Perception
↓
Cognition
↓
Understanding
↓
Reasoning
↓
Conclusion
↓
Candidates
↓
Condition
↓
Time
↓
State
↓
Risk
↓
Importance
↓
Priority Calculation
↓
Priority Ranking
↓
Decision
↓
Choice
↓
Action
↓
Experience
↓
Learning
Priority 核心模型
Priority
=
Condition
+
Time
+
State
+
Risk
+
Importance
+
Weight
→
PriorityScore
→
PriorityRank
更完整地表示:
Candidate
↓
Condition Evaluation
↓
Time Evaluation
↓
State Evaluation
↓
Risk Evaluation
↓
Importance Evaluation
↓
Weighted Calculation
↓
PriorityScore
↓
PriorityRank
↓
Decision
Priority 与前后章节的关系
Rule
↓
RuleEngine
↓
ReasoningEngine
↓
Conclusion
↓
Decision
↓
Priority
↓
Choice
↓
Action
其中实际运行时,Priority 通常属于 Decision 的候选评价过程:
Conclusion
↓
Decision Goal
↓
Candidate
↓
Condition
↓
Risk
↓
Priority
↓
Choice
↓
Action
因此可以形成一个明确的定义:
Priority 是 ICAI 对候选对象、任务或行动依据条件、权重、时间、状态、风险和重要程度进行计算、比较和排序的机制,为 Decision 提供有序的候选集合。
最终核心区别:
Rule = 规定逻辑
RuleEngine = 执行规则
Reasoning = 形成结论
Decision = 选择方案
Risk = 判断可能风险
Priority = 判断先后顺序
Action = 执行行为
这几个机制共同形成:
Reasoning
↓
Decision
↓
Risk + Priority
↓
Choice
↓
Action
并且整个 Priority 过程仍然属于明确规则、离散数据、条件判断和数学计算,不需要任何大模型、神经网络或生成式机制。