第214章 Method Evaluation|方法评价
第213章解决的是:
当前状态下,系统可以计算出候选 Method。
第214章进一步解决:
当存在多个候选 Method 时,ICAI 如何根据当前状态评价它们,而不是简单按照固定优先级选择。
因此:
第213章
State → Candidate Methods
第214章
State + Candidate Methods → Evaluation
214.1 Method Evaluation 的位置
完整结构变成:
Current State
↓
Method Candidate Generation
↓
Candidate Methods
↓
Method Evaluation
↓
Method Selection
↓
Selected Method
↓
Action
所以必须区分三个概念:
Method Generation
Method Evaluation
Method Selection
分别负责:
Generation
产生可能的方法
Evaluation
计算每个方法当前的适合程度
Selection
选择最终方法
214.2 为什么不能只使用 Priority
前面的 Method 有:
priority
例如:
Method A → priority = 10
Method B → priority = 8
Method C → priority = 6
如果直接:
最高 Priority = 最优 Method
那么实际上又退回了静态方法。
因为:
Priority
通常是方法自身属性。
而:
Evaluation
必须依赖当前状态。
因此:
Method Priority ≠ Method Evaluation
应该是:
Method Priority
+
Current State
↓
Evaluation
214.3 Evaluation 的基本模型
定义:
E(M,S)
其中:
M = Candidate Method
S = Current State
表示:
Method
M在当前 StateS下的评价值。
基础形式:
E(M,S)
=
Applicability
+
StateFit
+
ExpectedResult
+
HistoricalPerformance
+
Priority
-
Cost
-
Risk
因此同一个 Method:
M
在不同状态下:
E(M,S1)
E(M,S2)
E(M,S3)
可以完全不同。
214.4 Evaluation Object
因此可以建立独立的:
MethodEvaluation
而不是把评价逻辑全部写进 Method。
class MethodEvaluation
{
protected string $methodId;
protected float $score = 0.0;
protected array $factors = [];
protected string $state = 'calculated';
public function __construct(
string $methodId
) {
$this->methodId = $methodId;
}
public function setScore(float $score): void
{
$this->score = $score;
}
public function addFactor(
string $name,
float $value
): void {
$this->factors[$name] = $value;
}
public function getScore(): float
{
return $this->score;
}
public function getFactors(): array
{
return $this->factors;
}
public function toArray(): array
{
return [
'method_id' => $this->methodId,
'score' => $this->score,
'factors' => $this->factors,
'state' => $this->state
];
}
}
这里非常重要:
Method
是方法本身。
MethodEvaluation
是:
这个方法在当前状态下表现得怎么样。
二者不能混为一体。
214.5 Evaluation 不修改 Method
例如:
Method A
priority = 10
当前状态:
State X
评价:
score = 72
下一状态:
State Y
评价:
score = 41
并不是:
Method A.priority
10 → 变化
而是:
E(A,X) = 72
E(A,Y) = 41
因此评价是:
State-dependent
而 Method 本身保持:
Method identity
Method structure
Method constraints
214.6 Evaluation Factors
第一版可以使用几个基础因素。
1. Applicability
方法是否适用于当前状态:
Applicability ∈ [0,1]
例如:
0.0 = 不适用
0.5 = 部分适用
1.0 = 完全适用
2. State Fit
方法与当前状态的匹配程度:
StateFit ∈ [0,1]
例如:
当前数据不足
那么:
RepairDataMethod
StateFit = 0.95
而:
DirectCompareMethod
StateFit = 0.30
3. Expected Result
预期结果质量:
ExpectedResult ∈ [0,1]
它不是实际结果。
而是:
在当前状态下,该方法预计可以产生什么质量的结果。
4. Historical Performance
历史执行记录:
HistoricalPerformance ∈ [0,1]
例如:
Method A
过去 100 次执行
成功 91 次
可以形成:
0.91
5. Cost
执行成本:
Cost ∈ [0,1]
成本可以包含:
计算成本
时间成本
资源成本
动作数量
6. Risk
风险:
Risk ∈ [0,1]
例如:
失败概率
数据损失风险
错误决策风险
214.7 Evaluation Calculator
建立:
class MethodEvaluator
{
public function evaluate(
Method $method,
State $state
): MethodEvaluation {
$evaluation = new MethodEvaluation(
$method->getId()
);
$applicability =
$this->applicability(
$method,
$state
);
$stateFit =
$this->stateFit(
$method,
$state
);
$expected =
$this->expectedResult(
$method,
$state
);
$history =
$this->historicalPerformance(
$method
);
$cost =
$this->cost(
$method,
$state
);
$risk =
$this->risk(
$method,
$state
);
$score =
$applicability
+ $stateFit
+ $expected
+ $history
+ $method->getPriority()
- $cost
- $risk;
$evaluation->addFactor(
'applicability',
$applicability
);
$evaluation->addFactor(
'state_fit',
$stateFit
);
$evaluation->addFactor(
'expected_result',
$expected
);
$evaluation->addFactor(
'historical_performance',
$history
);
$evaluation->addFactor(
'cost',
$cost
);
$evaluation->addFactor(
'risk',
$risk
);
$evaluation->setScore($score);
return $evaluation;
}
}
这是第一版的评价计算器。
214.8 多个 Method 的评价
假设当前状态:
S001
候选方法:
M001
M002
M003
计算:
E(M001,S001) = 0.71
E(M002,S001) = 0.86
E(M003,S001) = 0.63
那么:
M002
当前评价最高。
于是:
Evaluation
↓
M002
但这里仍然不能说:
M002 是永远最好的方法。
正确说法是:
M002 是当前状态下评价最高的方法。
这是 Dynamic Method 的关键。
214.9 Evaluation Matrix
多个 Method 可以形成评价矩阵:
State S
│
┌────────────┼────────────┐
▼ ▼ ▼
M001 M002 M003
│ │ │
▼ ▼ ▼
0.71 0.86 0.63
│ │ │
└────────────┼────────────┘
▼
Selection
↓
M002
也可以展开成:
| Method | Applicability | State Fit | Expected | History | Cost | Risk | Score |
|---|---|---|---|---|---|---|---|
| M001 | 0.90 | 0.70 | 0.75 | 0.80 | 0.20 | 0.10 | 2.85 |
| M002 | 0.95 | 0.90 | 0.85 | 0.82 | 0.15 | 0.05 | 3.32 |
| M003 | 0.80 | 0.60 | 0.70 | 0.65 | 0.10 | 0.20 | 2.45 |
这里的数字只是演示评价结构,并不是固定 ICAI 参数。
214.10 Evaluation 是相对的
这是本章最重要的概念之一。
不能只问:
Method M 好不好?
而应该问:
Method M
对于
Current State S
是否更合适?
所以评价函数:
E(M,S)
本质上是:
关系函数
而不是 Method 的固有属性。
即:
Method
+
State
→
Evaluation
214.11 Evaluation 与 Selection 分离
不要把:
evaluate()
直接写成:
selectBest()
应该保持:
Candidate Methods
↓
Evaluator
↓
Evaluations
↓
Selector
↓
Selected Method
例如:
$evaluations = [];
foreach ($methods as $method) {
$evaluations[] =
$evaluator->evaluate(
$method,
$state
);
}
然后:
$selected =
$selector->select(
$evaluations
);
这样系统才能知道:
为什么 M002 被选择?
因为 Evaluation 保存了:
score
+
factors
而不是只返回:
M002
214.12 Evaluation 的可解释性
ICAI 不需要依赖自然语言解释。
它可以直接保存机器评价结构:
M002
{
applicability: 0.95,
state_fit: 0.90,
expected_result: 0.85,
history: 0.82,
cost: 0.15,
risk: 0.05,
score: 3.32
}
于是系统本身就知道:
为什么得分高
这符合 ICAI 的基本路线:
Data
↓
Calculation
↓
Decision
而不是:
LLM
↓
解释为什么选择
214.13 Evaluation 与 Feedback
实际执行之后:
Predicted Evaluation
和:
Actual Result
可以进行比较。
例如:
预测:
ExpectedResult = 0.85
实际:
ResultQuality = 0.61
那么:
Prediction Error
=
0.85 - 0.61
=
0.24
这个误差可以进入 Feedback:
Method
↓
Evaluation
↓
Selection
↓
Action
↓
Actual Result
↓
Feedback
↓
Evaluation History
这为后续 Method Learning 做准备。
214.14 Method Evaluation 的动态闭环
至此:
Current State
│
▼
Candidate Methods
│
▼
┌─────────────────┐
│ MethodEvaluator │
└────────┬────────┘
│
▼
Method Evaluations
│
▼
MethodSelector
│
▼
Selected Method
│
▼
Action
│
▼
Result
│
▼
Feedback
│
▼
State Update
│
└──────────────► Evaluator
这样第213章的:
Dynamic Method
真正获得了一个核心计算机制:
Method Evaluation
214.15 第214章最终定义
可以把 ICAI Method Evaluation 定义为:
Method Evaluation
=
对候选 Method 在当前 State 下的适用性、
状态匹配度、预期结果、历史表现、
成本与风险进行计算,
产生当前条件下的评价值。
数学形式:
E(M,S)
=
f(
A,
F,
R,
H,
P,
C,
K
)
其中:
A = Applicability
F = State Fit
R = Expected Result
H = Historical Performance
P = Priority
C = Cost
K = Risk
最终:
Candidate Methods
↓
Evaluation
↓
Ranking
↓
Selection
第214章之后的 ICAI 方法体系
现在已经形成三层:
第211章
Method Class
↓
方法是什么
第213章
Dynamic Method
↓
方法如何根据 State 动态产生
第214章
Method Evaluation
↓
多个方法如何根据 State 进行评价
下一层自然就不是简单的 MethodSelector。
真正需要进入的是:
第215章 Method Selection|方法选择
即:
Evaluation
↓
如何形成最终选择
而且从这里开始,Selection 与 Decision 的边界会成为 ICAI 后续架构中一个非常关键的问题。