第100章 方法选择
100.1 提出背景
第99章建立了方法匹配理论。
通过目标与方法、能力与方法、状态与方法、条件与方法以及方法适用范围的比较,机器个体可以得到一组具有不同适用程度的方法。
例如:
目标
↓
方法匹配
├── 方法A → 完全匹配
├── 方法B → 完全匹配
├── 方法C → 部分匹配
├── 方法D → 不匹配
└── 方法E → 阻止
此时机器个体仍然没有确定最终采用哪一个方法。
因此必须进一步建立**方法选择(Method Selection)**理论。
方法选择是指机器个体从已经通过方法匹配形成的候选方法集合中,根据目标、能力、状态、条件、风险、资源、成本、时间、优先级和规则等因素进行比较,并确定最终执行方法的过程。
基本关系:
CandidateMethods→MethodComparison→MethodPriority→MethodSelection→FinalMethod\boxed{ CandidateMethods \rightarrow MethodComparison \rightarrow MethodPriority \rightarrow MethodSelection \rightarrow FinalMethod }
因此:
方法匹配解决“哪些方法可以使用”\boxed{ 方法匹配解决“哪些方法可以使用” }
而:
方法选择解决“最终使用哪个方法”\boxed{ 方法选择解决“最终使用哪个方法” }
100.2 方法选择定义
**方法选择(Method Selection)**是机器个体在多个候选方法之间进行结构化比较、优先级计算和条件判断,最终确定一个或多个执行方法的过程。
可以表示为:
MS=f(Candidate,Comparison,Priority,Condition,Risk,Resource,Rule)MS= f( Candidate, Comparison, Priority, Condition, Risk, Resource, Rule )
最终:
MS→FinalMethod\boxed{ MS\rightarrow FinalMethod }
方法选择不是随机选择,也不是简单选择第一个匹配的方法,而是根据预先定义的结构化规则进行确定性计算。
100.3 候选方法
**候选方法(Candidate Method)**是经过方法匹配后,具有一定可适用性的候选执行方式。
方法匹配结果可以形成:
CandidateMethods={M1,M2,…,Mn}CandidateMethods= \{M_1,M_2,\ldots,M_n\}
但是并非所有匹配结果都能够进入最终选择。
通常:
Full→CandidateFull\rightarrow Candidate
部分匹配:
Partial→CandidatePartial\rightarrow Candidate
是否允许进入候选集合,需要由选择规则确定。
而:
None→NotCandidateNone\rightarrow NotCandidate Blocked→NotCandidateBlocked\rightarrow NotCandidate
除非阻止条件能够被消除。
100.4 候选方法集合
机器个体可以建立候选方法集合:
CM={Mi∣Applicable(Mi)=True}CM= \{ M_i | Applicable(M_i)=True \}
例如:
目标:完成设备检查
候选方法:
M1:完整检查
M2:快速检查
M3:分区域检查
M4:历史检查
每个候选方法必须保存其匹配结果:
Candidate={Method,MatchResult,Condition,Capability,State,Risk,Resource,Priority}Candidate= \{ Method, MatchResult, Condition, Capability, State, Risk, Resource, Priority \}
因此候选方法不是简单的 method_id 列表,而是具有完整评价结构的候选对象。
100.5 候选方法过滤
在进入方法比较之前,需要首先进行候选过滤。
基本过程:
方法集合
↓
方法匹配
↓
删除不匹配方法
↓
删除禁止方法
↓
删除关键条件不满足方法
↓
删除关键能力不足方法
↓
形成候选方法集合
可以表示:
CandidateSet=Filter(MethodSet,Rule)CandidateSet= Filter(MethodSet,Rule)
其中:
Filter(Mi)={1,Applicable(Mi)=True0,Applicable(Mi)=FalseFilter(M_i)= \begin{cases} 1,&Applicable(M_i)=True\\ 0,&Applicable(M_i)=False \end{cases}
因此:
\boxed{ MethodSelection
不能直接从全部方法集合开始,而应该从已经过滤的候选方法集合开始。
100.6 方法比较
**方法比较(Method Comparison)**是对两个或多个候选方法的目标适合程度、能力满足程度、条件满足程度、风险、资源、时间、成本和结果等进行结构化比较。
基本关系:
Mi↔MjM_i\leftrightarrow M_j
例如:
方法A
VS
方法B
比较内容可以包括:
目标匹配
能力匹配
状态匹配
条件匹配
适用范围
风险
资源
成本
时间
预期结果
历史经验
因此:
Compare(Mi,Mj)→ComparisonResultCompare(M_i,M_j) \rightarrow ComparisonResult
100.7 方法比较维度
可以建立统一比较结构:
Compare={Goal,Capability,State,Condition,Scope,Risk,Resource,Cost,Time,Result}Compare= \{ Goal, Capability, State, Condition, Scope, Risk, Resource, Cost, Time, Result \}
其中:
Goal:目标满足程度;Capability:能力满足程度;State:当前状态适合程度;Condition:条件满足程度;Scope:方法适用范围;Risk:风险程度;Resource:资源消耗;Cost:执行成本;Time:执行时间;Result:预期结果。
100.8 方法优先级
当多个方法均满足基本条件时,需要确定优先顺序。
**方法优先级(Method Priority)**是表示候选方法在当前目标和运行条件下相对重要程度的结构化指标。
表示为:
Priority(Mi)Priority(M_i)
例如:
Priority(M1)>Priority(M2)>Priority(M3)Priority(M_1)>Priority(M_2)>Priority(M_3)
则:
M1M_1
具有更高的选择优先级。
100.9 方法优先级计算
方法优先级可以根据明确的规则进行计算:
Pi=f(Gi,Ci,Si,Condi,Ri,Resi,Costi,Timei)\boxed{ P_i= f( G_i, C_i, S_i, Cond_i, R_i, Res_i, Cost_i, Time_i ) }
其中:
- GiG_i:目标匹配程度;
- CiC_i:能力满足程度;
- SiS_i:状态适合程度;
- CondiCond_i:条件满足程度;
- RiR_i:风险指标;
- ResiRes_i:资源适合程度;
- CostiCost_i:成本指标;
- TimeiTime_i:时间指标。
如果采用结构化评分:
Pi=wgGi+wcCi+wsSi+wcondCondi+wresResi+wrRi+wtTi−wcostCostiP_i= w_gG_i+ w_cC_i+ w_sS_i+ w_{cond}Cond_i+ w_{res}Res_i+ w_rR_i+ w_tT_i- w_{cost}Cost_i
其中每个 ww 都是预先定义的规则权重。
这里的权重是明确的工程参数,用于确定性计算,不是神经网络训练参数。
100.10 关键条件优先于普通评分
方法选择不能只依靠总分。
某些条件属于关键条件(Critical Condition)。
例如:
安全条件
权限条件
核心能力
目标必要条件
法律/业务规则
如果:
CriticalCondition=FalseCriticalCondition=False
即使其他指标很高:
Pi=HighP_i=High
也不能选择该方法。
因此:
CriticalCondition>OrdinaryScore\boxed{ CriticalCondition > OrdinaryScore }
形成:
CriticalCheck→PriorityCalculationCriticalCheck \rightarrow PriorityCalculation
而不是直接:
PriorityCalculation→SelectionPriorityCalculation \rightarrow Selection
100.11 方法选择条件
**方法选择条件(Method Selection Condition)**是最终允许某个候选方法进入执行状态所必须满足的条件集合。
可以表示:
SelectionCondition={Goal,Capability,State,Condition,Resource,Risk,Rule}SelectionCondition= \{ Goal, Capability, State, Condition, Resource, Risk, Rule \}
只有:
SelectionCondition(Mi)=TrueSelectionCondition(M_i)=True
才允许:
Mi→FinalMethodM_i\rightarrow FinalMethod
100.12 选择条件的层次
方法选择条件可以分为三层。
第一层是必要条件:
NecessaryConditionNecessaryCondition
缺失则不能选择。
第二层是优先条件:
PriorityConditionPriorityCondition
用于多个方法之间排序。
第三层是优化条件:
OptimizationConditionOptimizationCondition
用于选择更优的方法。
形成:
必要条件
↓
候选过滤
↓
优先条件
↓
方法排序
↓
优化条件
↓
最终选择
100.13 方法选择与风险
方法选择必须考虑风险。
两个方法可能都能达到目标:
Result(M1)≈Result(M2)Result(M_1)\approx Result(M_2)
但:
Risk(M1)>Risk(M2)Risk(M_1)>Risk(M_2)
则在安全规则要求下,应优先:
M2M_2
因此:
Priority(M)=f(Result,Risk)Priority(M)=f(Result,Risk)
如果方法违反关键安全规则:
Risk(M)>RiskMaxRisk(M)>Risk_{Max}
则:
Selection(M)=FalseSelection(M)=False
因此:
方法可行≠方法应该选择\boxed{ 方法可行 \neq 方法应该选择 }
100.14 方法选择与资源
方法还受到资源限制。
例如:
方法A:
需要资源100
方法B:
需要资源20
当前资源:
50
则:
ResourceA>ResourceAvailableResource_A>Resource_{Available}
因此方法A不能选择。
方法B满足:
ResourceB≤ResourceAvailableResource_B\leq Resource_{Available}
则进入候选。
因此:
ResourceCheck(M)={True,ResourceRequired≤ResourceAvailableFalse,ResourceRequired>ResourceAvailableResourceCheck(M)= \begin{cases} True,&ResourceRequired\le ResourceAvailable\\ False,&ResourceRequired>ResourceAvailable \end{cases}
100.15 方法选择与时间
如果多个方法都能够实现目标,还需要比较时间。
例如:
Time(M1)=30minTime(M_1)=30min Time(M2)=10minTime(M_2)=10min
如果目标具有严格期限:
DeadlineDeadline
则必须满足:
FinishTime(Mi)≤DeadlineFinishTime(M_i)\le Deadline
因此:
TimeCondition(Mi)=TrueTimeCondition(M_i)=True
才可以进入最终选择。
100.16 方法选择与成本
方法执行可能具有不同成本:
Cost(M1)>Cost(M2)Cost(M_1)>Cost(M_2)
如果目标结果相同或者基本相同:
Result(M1)≈Result(M2)Result(M_1)\approx Result(M_2)
并且风险、能力和条件都相近,则可以优先选择成本较低的方法。
因此:
Priority(M)=f(Result,Risk,Cost)Priority(M)=f(Result,Risk,Cost)
但是成本不能突破必要条件。
即:
LowCost≠AutomaticallyBestLowCost \neq AutomaticallyBest
100.17 方法选择与历史经验
历史经验可以参与方法选择。
例如:
方法A
↓
过去成功率高
方法B
↓
过去失败率高
可以建立:
ExperienceScore(M)ExperienceScore(M)
例如:
ExperienceScore=SuccessCountExecutionCountExperienceScore= \frac{SuccessCount} {ExecutionCount}
若:
ExecutionCount>0ExecutionCount>0
则可以根据历史结果评价方法稳定性。
但是历史经验不能替代当前条件检查。
因此:
HistoricalSuccess≠CurrentApplicabilityHistoricalSuccess \neq CurrentApplicability
必须满足:
CurrentApplicability=TrueCurrentApplicability=True
以后,历史经验才可以参与方法优先级比较。
100.18 方法选择
经过候选过滤、方法比较、优先级计算和条件检查以后,可以进行最终方法选择:
M∗=argmaxMi∈CandidateSetPriority(Mi)\boxed{ M^*=\arg\max_{M_i\in CandidateSet}Priority(M_i) }
其中:
- M∗M^*:最终选择的方法;
- MiM_i:候选方法;
CandidateSet:候选方法集合;Priority(M_i):候选方法优先级。
但是必须满足:
SelectionCondition(M∗)=TrueSelectionCondition(M^*)=True
因此完整表达为:
M∗=argmaxPriority(Mi)s.t.SelectionCondition(Mi)=True\boxed{ M^* = \arg\max Priority(M_i) \quad s.t. \quad SelectionCondition(M_i)=True }
100.19 最终方法
**最终方法(Final Method)**是机器个体经过候选过滤、比较、条件检查和优先级计算后,最终确定用于当前目标执行的方法。
因此:
FinalMethod=M∗FinalMethod=M^*
最终方法必须绑定:
目标
对象
当前状态
能力
条件
资源
方法步骤
预期结果
选择原因
选择时间
因此最终方法不是简单的方法编号,而是一个确定的运行决策对象。
100.20 最终方法确认
最终方法产生以后,还必须进行一次执行前确认。
流程:
最终方法
↓
目标确认
↓
对象确认
↓
能力确认
↓
状态确认
↓
条件确认
↓
资源确认
↓
安全确认
↓
规则确认
↓
最终方法锁定
只有全部关键条件满足:
FinalCheck=TrueFinalCheck=True
才可以:
FinalMethod→ExecutionFinalMethod\rightarrow Execution
100.21 最终方法锁定
**方法锁定(Method Locking)**是指机器个体在执行开始之前,将当前选定的方法作为本次目标执行的正式方法。
形成:
SelectedMethod→LockedMethodSelectedMethod \rightarrow LockedMethod
锁定后:
目标
+
方法
+
对象
+
条件
+
能力
形成当前执行任务。
如果执行过程中发生重大变化:
StateChangeStateChange ConditionChangeConditionChange CapabilityChangeCapabilityChange
则可以解除锁定:
LockedMethod→InvalidLockedMethod \rightarrow Invalid
再进入:
ReMatching→ReSelectionReMatching \rightarrow ReSelection
因此方法锁定不是永久锁定,而是当前执行周期内的确定性选择状态。
100.22 没有可选方法
方法选择可能出现:
CandidateSet=∅CandidateSet=\varnothing
即没有任何可执行方法。
此时不能强制选择一个方法。
应该形成:
NoMethodAvailableNoMethodAvailable
然后进入:
无可用方法
↓
检查原因
├── 能力不足
├── 条件不满足
├── 资源不足
├── 风险过高
├── 方法不存在
└── 方法全部冲突
↓
重新形成方法
/
等待条件
/
调整目标
/
形成替代方法
因此:
NoCandidate≠SelectionFailure\boxed{ NoCandidate\neq SelectionFailure }
而是一个明确的机器状态。
100.23 方法选择失败
如果存在候选方法:
CandidateSet≠∅CandidateSet\neq\varnothing
但是所有方法均不能通过最终选择条件:
SelectionCondition(Mi)=FalseSelectionCondition(M_i)=False
则:
SelectionFailure=TrueSelectionFailure=True
可以进入:
MethodFormationMethodFormation
或者:
GoalAdjustmentGoalAdjustment
或者:
CapabilityFormationCapabilityFormation
形成新的运行路径。
100.24 方法选择与替代方法
如果最高优先级方法:
M1M_1
在最终确认阶段失效:
FinalCheck(M1)=FalseFinalCheck(M_1)=False
则不能继续执行。
应返回候选集合:
CandidateSet−{M1}CandidateSet-\{M_1\}
再选择:
M2M_2
形成:
M1→Invalid→M2→FinalMethodM_1 \rightarrow Invalid \rightarrow M_2 \rightarrow FinalMethod
这使方法选择具备替代能力。
100.25 方法选择与决策
方法选择与决策也必须区分。
方法选择解决:
在当前目标下,哪个方法最适合?
决策解决:
当前机器个体最终决定采取什么行为以及是否执行。
因此:
MethodSelection≠DecisionMethodSelection\neq Decision
完整关系:
Goal→MethodMatching→CandidateMethods→MethodSelection→FinalMethod→Decision→Behavior\boxed{ Goal \rightarrow MethodMatching \rightarrow CandidateMethods \rightarrow MethodSelection \rightarrow FinalMethod \rightarrow Decision \rightarrow Behavior }
方法选择是决策的重要输入,但方法选择本身不是完整决策。
100.26 方法选择工程模型
在 ICAI 工程中,可以建立:
CognitiveMethodSelection——方法选择对象。
class CognitiveMethodSelection
{
protected $id;
protected $goalId;
protected $candidateMethods;
protected $comparison;
protected $priority;
protected $conditions;
protected $selectedMethodId;
protected $reason;
protected $status;
protected $createdAt;
}
方法选择引擎:
class MethodSelectionEngine
{
public function buildCandidates($goal, $methods)
{
return array();
}
public function compare($methods)
{
return array();
}
public function calculatePriority($method, $context)
{
return 0;
}
public function checkCondition($method, $context)
{
return false;
}
public function select($candidates)
{
return null;
}
public function confirm($method, $context)
{
return false;
}
}
100.27 方法选择数据库
可以建立:
cognitive_method_selections
id
goal_id
selected_method_id
selection_status
selection_reason
priority
evaluation
condition
risk
resource
created_at
updated_at
候选方法:
cognitive_method_selection_candidates
id
selection_id
method_id
match_status
priority
risk
resource
cost
time
evaluation
selected
created_at
方法比较:
cognitive_method_comparisons
id
selection_id
method_a_id
method_b_id
comparison_type
result
reason
created_at
选择历史:
cognitive_method_selection_history
id
selection_id
old_method_id
new_method_id
change_reason
created_at
因此能够记录:
M1→M2→M3M_1 \rightarrow M_2 \rightarrow M_3
完整的方法选择变化历史。
100.28 方法选择 Runtime
方法选择 Runtime 可以表示为:
目标
↓
读取候选方法
↓
候选方法过滤
↓
目标匹配检查
↓
能力匹配检查
↓
状态匹配检查
↓
条件检查
↓
范围检查
↓
资源检查
↓
风险检查
↓
规则检查
↓
形成候选方法集合
↓
方法比较
↓
计算方法优先级
↓
排序
↓
选择最高优先级方法
↓
最终条件确认
├── 通过 → 最终方法
└── 失败 → 选择下一候选方法
↓
最终方法锁定
↓
进入决策
100.29 方法选择动态变化
方法选择不是永久状态。
当发生:
GoalChangeGoalChange CapabilityChangeCapabilityChange StateChangeStateChange ConditionChangeConditionChange RiskChangeRiskChange ResourceChangeResourceChange
则可能导致:
Priority(Mi)t≠Priority(Mi)t+1Priority(M_i)_{t} \neq Priority(M_i)_{t+1}
因此:
ContextChange→MethodRematching→MethodReselection\boxed{ ContextChange \rightarrow MethodRematching \rightarrow MethodReselection }
例如:
方法A:优先级1
方法B:优先级2
↓
环境发生变化
↓
方法A风险升高
↓
方法A优先级下降
↓
方法B成为优先方法
↓
重新选择方法B
100.30 方法选择统一模型
综合本章,可以建立方法选择统一模型:
MS=f(Candidate,Comparison,Priority,Condition,Risk,Resource,Rule)\boxed{ MS= f( Candidate, Comparison, Priority, Condition, Risk, Resource, Rule ) }
最终方法:
M∗=argmaxPriority(Mi)\boxed{ M^* = \arg\max Priority(M_i) }
约束:
SelectionCondition(Mi)=TrueSelectionCondition(M_i)=True
完整过程:
MethodMatching→CandidateMethods→Comparison→Priority→SelectionCondition→FinalMethod\boxed{ MethodMatching \rightarrow CandidateMethods \rightarrow Comparison \rightarrow Priority \rightarrow SelectionCondition \rightarrow FinalMethod }
100.31 方法理论完整链条
至此,第97—100章已经形成完整的方法理论链:
第97章
方法理论
↓
定义方法
↓
第98章
方法形成
↓
形成、组合、修改、更新方法
↓
第99章
方法匹配
↓
判断方法是否适用
↓
第100章
方法选择
↓
确定最终方法
最终:
Method→Formation→Matching→Selection\boxed{ Method \rightarrow Formation \rightarrow Matching \rightarrow Selection }
再向后连接:
FinalMethod→Decision→Behavior→Action→Result\boxed{ FinalMethod \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Result }
100.32 本章总结
第100章建立了 ICAI 的方法选择理论。
第99章完成方法匹配以后,机器个体可能得到多个候选方法:
CandidateMethods={M1,M2,…,Mn}CandidateMethods= \{M_1,M_2,\ldots,M_n\}
第100章通过:
候选方法→方法比较→方法优先级→方法选择条件→最终方法\boxed{ 候选方法 \rightarrow 方法比较 \rightarrow 方法优先级 \rightarrow 方法选择条件 \rightarrow 最终方法 }
完成最终方法确定。
方法选择的核心模型为:
M∗=argmaxMi∈CandidateSetPriority(Mi)\boxed{ M^* = \arg\max_{M_i\in CandidateSet} Priority(M_i) }
同时必须满足:
SelectionCondition(Mi)=TrueSelectionCondition(M_i)=True
因此:
最高优先级≠无条件选择\boxed{ 最高优先级 \neq 无条件选择 }
只有同时满足关键目标、能力、状态、条件、资源、安全和规则要求的方法,才能成为最终方法。
完整 ICAI 方法运行链形成:
知识
↓
经验
↓
方法形成
↓
方法集合
↓
方法匹配
↓
候选方法
↓
方法比较
↓
方法优先级
↓
方法选择条件
↓
最终方法
↓
决策
↓
行为
↓
动作
↓
结果
↓
反馈
↓
经验
↓
方法更新
最终形成:
MethodFormation→MethodMatching→MethodSelection→FinalMethod→Decision→Behavior→Result\boxed{ MethodFormation \rightarrow MethodMatching \rightarrow MethodSelection \rightarrow FinalMethod \rightarrow Decision \rightarrow Behavior \rightarrow Result }
至此,ICAI 已经完成从**“拥有方法”到“形成方法、判断方法、选择方法”的完整理论链条。下一阶段将自然进入决策理论**:在最终方法确定之后,机器个体如何依据目标、风险、冲突、方法和当前状态形成最终决策。