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

第214章 Method Evaluation|方法评价

第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 在当前 State S 下的评价值。

基础形式:

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 后续架构中一个非常关键的问题。

Leave a Reply

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