第264章 决策Runtime
第263章建立了匹配Runtime,完成:
Need→Goal→Capability→Condition→Matching→MatchingResultNeed \rightarrow Goal \rightarrow Capability \rightarrow Condition \rightarrow Matching \rightarrow MatchingResult
匹配Runtime解决的是:
当前哪些能力符合需求、目标和条件?
但是,匹配结果并不等于最终选择。
当多个方法、多个候选方案同时满足要求时,机器个体还需要进一步考虑方法、风险、冲突以及当前目标,最终选择一个可以执行的方案。
因此,本章建立决策Runtime(Decision Runtime)。
决策Runtime负责把匹配结果转换成候选方法和候选方案,并综合风险、冲突、目标、条件等因素,形成结构化决策结果。
基本过程:
Method→Risk→Conflict→Candidate→DecisionMethod \rightarrow Risk \rightarrow Conflict \rightarrow Candidate \rightarrow Decision
完整连接为:
MatchingResult→Method→Risk→Conflict→Candidate→DecisionMatchingResult \rightarrow Method \rightarrow Risk \rightarrow Conflict \rightarrow Candidate \rightarrow Decision
最终形成:
DecisionResultDecisionResult
264.1 决策Runtime定义
决策Runtime是机器个体在当前运行环境中,根据当前目标、匹配结果、候选方法、风险和冲突,对候选方案进行评价、排序和选择的运行上下文。
可以定义:
DR={RuntimeID,Goal,Method,Risk,Conflict,Candidate,DecisionResult}DR= \{ RuntimeID, Goal, Method, Risk, Conflict, Candidate, DecisionResult \}
其中:
RuntimeID:当前运行实例;Goal:当前目标;Method:可执行的方法;Risk:候选方法或方案产生的风险;Conflict:候选方案之间或方案与规则之间的冲突;Candidate:候选方案集合;DecisionResult:最终决策结果。
因此:
DecisionRuntime⊂IndividualRuntimeDecisionRuntime\subset IndividualRuntime
并且:
DecisionRuntime≠DecisionEngineDecisionRuntime\neq DecisionEngine
DecisionRuntime保存当前决策过程的数据。
DecisionEngine执行具体决策计算。
264.2 匹配Runtime与决策Runtime
第263章得到:
MatchingResultMatchingResult
本章将其继续转换:
MatchingResult→Method→Candidate→DecisionMatchingResult \rightarrow Method \rightarrow Candidate \rightarrow Decision
因此:
MatchingRuntime
↓
MatchingResult
↓
DecisionRuntime
│
├── Method
├── Risk
├── Conflict
├── Candidate
│
↓
Decision
二者职责不同:
Matching≠DecisionMatching\neq Decision
匹配解决:
哪些能力符合要求?
决策解决:
在符合要求的候选方案中,最终选择哪一个?
264.3 方法
方法表示机器个体完成目标的一种具体执行方式。
可以定义:
Method={ID,Name,Type,Condition,Steps,Capability,State}Method= \{ ID, Name, Type, Condition, Steps, Capability, State \}
例如:
Method-A
Type: Diagnosis
Capability: FaultDiagnosis
Condition: Device abnormal
State: Available
另一个方法:
Method-B
Type: Diagnosis
Capability: FaultDiagnosis
Condition: Device abnormal
State: Available
二者都可能满足当前需求。
因此:
Capability→MethodCapability \rightarrow Method
但:
Capability≠MethodCapability\neq Method
能力回答:
能不能做?
方法回答:
怎么做?
264.4 方法来源
方法通常来自:
KnowledgeKnowledge ExperienceExperience CapabilityCapability
以及当前场景。
因此:
MethodCandidate=F(Knowledge,Experience,Capability,Scene)MethodCandidate= F(Knowledge,Experience,Capability,Scene)
例如:
Capability:
FaultDiagnosis
Knowledge:
Rule-A
Rule-B
Experience:
Method-A success rate = 0.60
Method-B success rate = 0.90
由此产生:
Candidate Method:
Method-A
Method-B
264.5 方法状态
方法也需要具有当前状态。
例如:
Available
Disabled
Failed
Deprecated
Maintenance
Learning
如果:
MethodState=DisabledMethodState=Disabled
则不能直接进入有效候选方案。
因此:
Method→MethodState→CandidateMethod \rightarrow MethodState \rightarrow Candidate
264.6 方法与目标
方法必须能够服务于当前目标。
例如:
Goal=FaultIdentifiedGoal=FaultIdentified
方法:
Method-A:
Read temperature
Read pressure
Diagnose fault
则:
Method−A→GoalMethod-A\rightarrow Goal
如果某方法只是生成报告:
Method-B:
Generate Report
虽然它可能属于机器个体的能力范围,但不能直接完成:
Goal=FaultIdentifiedGoal=FaultIdentified
因此:
MethodGoalMatch=Match(Method,Goal)MethodGoalMatch= Match(Method,Goal)
264.7 风险
决策不能只看方法是否匹配,还必须考虑风险。
风险表示某个方法或候选方案在当前条件下可能产生不利结果的程度。
可以定义:
Risk={Probability,Impact,Condition,Score}Risk= \{Probability,Impact,Condition,Score\}
风险分数:
RiskScore=Probability×ImpactRiskScore= Probability\times Impact
例如:
Method-A
Probability = 0.20
Impact = 0.50
RiskScore = 0.10
另一个方法:
Method-B
Probability = 0.40
Impact = 0.90
RiskScore = 0.36
因此:
Risk(B)>Risk(A)Risk(B)>Risk(A)
264.8 风险等级
可以将风险分为:
Low
Medium
High
Critical
例如:
RiskScore<0.25⇒LowRiskScore<0.25 \Rightarrow Low 0.25≤RiskScore<0.50⇒Medium0.25\leq RiskScore<0.50 \Rightarrow Medium 0.50≤RiskScore<0.75⇒High0.50\leq RiskScore<0.75 \Rightarrow High RiskScore≥0.75⇒CriticalRiskScore\geq0.75 \Rightarrow Critical
风险等级可以作为决策约束。
例如:
RiskLevel=Critical⇒CandidateBlockedRiskLevel=Critical \Rightarrow CandidateBlocked
264.9 风险不是决策
必须明确:
Risk≠DecisionRisk\neq Decision
风险只是决策的一个输入。
例如:
Method-A
MatchScore = 0.90
RiskScore = 0.10
Method-B
MatchScore = 0.95
RiskScore = 0.70
虽然Method-B匹配度更高,但风险也更高。
最终选择不能只根据:
MatchScoreMatchScore
而需要:
Decision=F(MatchScore,Risk,Goal,Condition)Decision= F(MatchScore,Risk,Goal,Condition)
264.10 冲突
冲突表示两个或多个候选条件、目标、方法、状态或者规则之间存在不能同时满足的关系。
可以定义:
Conflict={Subject,Object,Type,Rule,Condition,Severity}Conflict= \{ Subject, Object, Type, Rule, Condition, Severity \}
例如:
Method-A
需要:
Device = Stopped
而当前状态:
Device = Running
则:
Conflict(Method−A,CurrentState)Conflict(Method-A,CurrentState)
264.11 冲突类型
决策Runtime可能遇到:
GoalConflict
StateConflict
MethodConflict
CapabilityConflict
RuleConflict
ResourceConflict
TimeConflict
RiskConflict
KnowledgeConflict
例如:
GoalConflict
两个目标互相冲突。
GoalA≠Compatible(GoalB)Goal_A\neq Compatible(Goal_B)
MethodConflict
两个方法不能同时使用。
MethodA⊥MethodBMethod_A\perp Method_B
StateConflict
方法要求的状态与当前状态不一致。
RequiredState≠CurrentStateRequiredState\neq CurrentState
ResourceConflict
两个候选方案需要同一个独占资源。
ResourceA=ResourceBResource_A=Resource_B
264.12 冲突检测
冲突检测可以表示:
ConflictDetection=F(Method,Goal,State,Rule,Resource,Condition)ConflictDetection= F(Method,Goal,State,Rule,Resource,Condition)
例如:
Method-A
要求:
Device = Stopped
Current State:
Device = Running
检测:
RequiredState≠CurrentStateRequiredState\neq CurrentState
得到:
Conflict=trueConflict=true
于是:
Method−A→BlockedMethod-A \rightarrow Blocked
264.13 候选方案
候选方案是进入最终决策阶段的可选执行方案。
可以定义:
Candidate={ID,Method,Capability,Condition,Score,Risk,Conflict,Status}Candidate= \{ ID, Method, Capability, Condition, Score, Risk, Conflict, Status \}
例如:
Candidate-A
Method: Method-A
Capability: FaultDiagnosis
MatchScore: 0.90
RiskScore: 0.10
Conflict: None
Status: Available
Candidate-B
Method: Method-B
Capability: FaultDiagnosis
MatchScore: 0.95
RiskScore: 0.30
Conflict: None
Status: Available
最终决策就在这些候选方案之间进行。
264.14 候选方案形成
候选方案不是直接产生的。
完整过程:
MatchingResult→Method→RiskEvaluation→ConflictDetection→CandidateMatchingResult \rightarrow Method \rightarrow RiskEvaluation \rightarrow ConflictDetection \rightarrow Candidate
即:
MatchingResult
↓
Candidate Method
↓
Risk Check
↓
Conflict Check
↓
Valid Candidate
只有满足基本条件的方案才能进入最终候选集合。
264.15 候选方案过滤
可以建立多级过滤:
第一层:
Candidate1=Filter(Method,Goal)Candidate_1=Filter(Method,Goal)
第二层:
Candidate2=Filter(Candidate1,Condition)Candidate_2=Filter(Candidate_1,Condition)
第三层:
Candidate3=Filter(Candidate2,Risk)Candidate_3=Filter(Candidate_2,Risk)
第四层:
Candidate4=Filter(Candidate3,Conflict)Candidate_4=Filter(Candidate_3,Conflict)
最终:
Candidate=Candidate4Candidate=Candidate_4
形成:
Method→Goal→Condition→Risk→Conflict→CandidateMethod \rightarrow Goal \rightarrow Condition \rightarrow Risk \rightarrow Conflict \rightarrow Candidate
264.16 候选方案评价
候选方案可以进行综合评价。
例如:
CandidateScore=wmM+wrR+weE+wcCCandidateScore= w_mM+ w_rR+ w_eE+ w_cC
其中:
- MM:方法匹配程度;
- RR:风险评价;
- EE:历史经验评价;
- CC:条件满足程度;
- wm,wr,we,wcw_m,w_r,w_e,w_c:各评价权重。
但风险通常属于负向指标,因此可以使用:
RiskValue=1−RiskScoreRiskValue=1-RiskScore
于是:
CandidateScore=wmM+wr(1−RiskScore)+weE+wcCCandidateScore= w_mM+ w_r(1-RiskScore) + w_eE + w_cC
最终:
CandidateScore∈[0,1]CandidateScore\in[0,1]
264.17 决策
决策是从有效候选方案中确定最终方案的过程。
可以定义:
Decision=Select(Candidate,Goal,Rule,Condition,Risk,Conflict)Decision= Select(Candidate,Goal,Rule,Condition,Risk,Conflict)
决策结果:
DecisionResult={SelectedCandidate,Method,Reason,Risk,Status,Time}DecisionResult= \{ SelectedCandidate, Method, Reason, Risk, Status, Time \}
例如:
Selected:
Candidate-B
Method:
Method-B
Reason:
Highest valid score with acceptable risk.
Risk:
0.20
Status:
Approved
264.18 决策不是选择第一个
决策不能简单写成:
return $candidates[0];
因为候选方案可能具有不同:
- 匹配度;
- 风险;
- 冲突;
- 成功率;
- 条件;
- 优先级。
因此:
Decision≠FirstCandidateDecision\neq FirstCandidate
正确过程:
Candidate→Evaluate→Rank→SelectCandidate \rightarrow Evaluate \rightarrow Rank \rightarrow Select
264.19 决策排序
候选方案可以按照综合评价值排序:
CandidateScore1>CandidateScore2>CandidateScore3CandidateScore_1 > CandidateScore_2 > CandidateScore_3
例如:
Candidate-A = 0.82
Candidate-B = 0.91
Candidate-C = 0.65
排序:
B>A>CB>A>C
但排序以后还必须检查:
RiskRisk
和:
ConflictConflict
因此:
HighestScore≠AlwaysSelectedHighestScore\neq AlwaysSelected
如果最高分方案存在阻断风险,则需要选择下一个有效方案。
264.20 风险约束决策
可以定义最大允许风险:
RiskThresholdRiskThreshold
例如:
RiskThreshold=0.50RiskThreshold=0.50
那么:
RiskScore>0.50⇒CandidateBlockedRiskScore>0.50 \Rightarrow CandidateBlocked
因此:
Candidate-A
Score = 0.91
Risk = 0.70
虽然:
Score=0.91Score=0.91
但:
Risk=0.70>0.50Risk=0.70>0.50
所以:
Candidate−A=BlockedCandidate-A=Blocked
不能成为最终决策。
264.21 冲突约束决策
如果候选方案存在不可解决冲突:
Conflict=trueConflict=true
则:
CandidateStatus=BlockedCandidateStatus=Blocked
例如:
Method-A:
Requires Device Stopped
Current:
Device Running
得到:
Conflict=trueConflict=true
因此:
Method−A→BlockedMethod-A \rightarrow Blocked
决策Engine继续评价其他候选方案。
264.22 决策失败
如果所有候选方案都被过滤:
Candidate=∅Candidate=\varnothing
则:
DecisionStatus=NoDecisionDecisionStatus=NoDecision
不能虚构一个方案。
正确流程:
Matching→Candidate→AllBlocked→NoDecisionMatching \rightarrow Candidate \rightarrow AllBlocked \rightarrow NoDecision
随后可以进入:
NoDecision→LearningNoDecision \rightarrow Learning
或者:
NoDecision→CapabilityExpansionNoDecision \rightarrow CapabilityExpansion
或者:
NoDecision→MaintenanceNoDecision \rightarrow Maintenance
或者重新生成需求。
因此:
NoDecision≠SystemFailureNoDecision\neq SystemFailure
264.23 决策Runtime完整流程
本章的核心流程:
MatchingResult
↓
Method
↓
Risk
↓
Conflict
↓
Candidate
↓
Evaluation
↓
Decision
↓
DecisionResult
完整形式:
MatchingResult→Method→Risk→Conflict→Candidate→Decision→DecisionResultMatchingResult \rightarrow Method \rightarrow Risk \rightarrow Conflict \rightarrow Candidate \rightarrow Decision \rightarrow DecisionResult
264.24 方法、风险、冲突三者关系
决策Runtime的核心计算实际上是:
Method+Risk+Conflict→CandidateEvaluationMethod+Risk+Conflict \rightarrow CandidateEvaluation
例如:
Method-A
Match = 0.90
Risk = 0.10
Conflict = None
Method-B
Match = 0.95
Risk = 0.30
Conflict = None
Method-C
Match = 0.98
Risk = 0.20
Conflict = StateConflict
因此:
Candidate-A → Valid
Candidate-B → Valid
Candidate-C → Blocked
最终只在:
Candidate−ACandidate-A
和:
Candidate−BCandidate-B
之间决策。
264.25 决策与目标
最终决策必须服务于目标。
可以定义:
Decision=F(Candidate,Goal,Condition)Decision= F(Candidate,Goal,Condition)
如果某候选方案虽然风险低,但无法完成目标,则不能成为最终决策。
例如:
Goal:
FaultIdentified
Candidate-A:
Method:
GenerateReport
Risk:
Low
Candidate-B:
Method:
FaultDiagnosis
Risk:
Medium
虽然A风险更低,但:
GoalMatch(A)=0GoalMatch(A)=0
因此不能选择A。
264.26 决策与经验
经验可以参与候选评价。
例如:
SuccessRate(Method−A)=0.60SuccessRate(Method-A)=0.60 SuccessRate(Method−B)=0.90SuccessRate(Method-B)=0.90
在其他条件相同的情况下:
ExperienceScore(B)>ExperienceScore(A)ExperienceScore(B)>ExperienceScore(A)
因此:
CandidateScore(B)>CandidateScore(A)CandidateScore(B)>CandidateScore(A)
但经验不是决策本身:
Experience≠DecisionExperience\neq Decision
它只是决策输入。
264.27 决策与知识
知识提供决策规则。
例如:
Rule-001:
Critical Risk → Reject
Rule-002:
Goal Match = 0 → Reject
Rule-003:
Conflict = Critical → Reject
DecisionEngine读取这些规则:
Knowledge→DecisionRuleKnowledge \rightarrow DecisionRule
然后:
DecisionRule→DecisionEngineDecisionRule \rightarrow DecisionEngine
形成:
Decision=F(Candidate,Knowledge,Goal,Risk,Conflict)Decision= F(Candidate,Knowledge,Goal,Risk,Conflict)
264.28 决策Runtime对象
PHP OOP中可以建立:
class DecisionRuntime
{
protected $method;
protected $risk;
protected $conflict;
protected $candidates;
protected $goal;
protected $result;
public function setMethod($method)
{
$this->method = $method;
}
public function setRisk($risk)
{
$this->risk = $risk;
}
public function setConflict($conflict)
{
$this->conflict = $conflict;
}
public function setCandidates($candidates)
{
$this->candidates = $candidates;
}
public function setGoal($goal)
{
$this->goal = $goal;
}
public function setResult($result)
{
$this->result = $result;
}
public function isReady()
{
return $this->method !== null
&& $this->candidates !== null
&& $this->goal !== null;
}
}
它负责保存当前决策上下文。
264.29 DecisionEngine
DecisionEngine负责实际决策计算。
基本形式:
DecisionEngine=F(Method,Risk,Conflict,Candidate,Goal)DecisionEngine= F(Method,Risk,Conflict,Candidate,Goal)
例如:
class DecisionEngine
{
public function decide($candidates)
{
$valid = array();
foreach ($candidates as $candidate) {
if ($candidate['risk'] > 0.50) {
continue;
}
if ($candidate['conflict'] === true) {
continue;
}
if ($candidate['goal_match'] <= 0) {
continue;
}
$valid[] = $candidate;
}
if (empty($valid)) {
return null;
}
usort($valid, function ($a, $b) {
if ($a['score'] == $b['score']) {
return 0;
}
return ($a['score'] > $b['score']) ? -1 : 1;
});
return $valid[0];
}
}
这个过程使用:
- 条件判断;
- 集合过滤;
- 排序;
- 规则;
- 分数比较;
- 状态判断。
属于典型离散决策计算。
264.30 DecisionService
Service负责组织决策:
DecisionService→DecisionRuntime→DecisionEngineDecisionService \rightarrow DecisionRuntime \rightarrow DecisionEngine
例如:
class DecisionService
{
protected $engine;
public function __construct($engine)
{
$this->engine = $engine;
}
public function execute($runtime)
{
return $this->engine->decide(
$runtime->getCandidates()
);
}
}
Service不负责具体的排序和选择规则。
264.31 DecisionController
Controller接收决策请求:
Browser→DecisionController→DecisionServiceBrowser \rightarrow DecisionController \rightarrow DecisionService
例如:
class DecisionController
{
protected $service;
public function __construct($service)
{
$this->service = $service;
}
public function execute($runtime)
{
return $this->service->execute($runtime);
}
}
Controller只负责请求入口和结果返回。
264.32 决策Runtime与Repository
决策所需数据可能来自:
MySQL
├── methods
├── risks
├── conflicts
├── candidates
├── goals
└── decision_rules
读取过程:
MySQL→Repository→DomainObject→DecisionRuntimeMySQL \rightarrow Repository \rightarrow DomainObject \rightarrow DecisionRuntime
决策结果保存:
DecisionResult→Repository→MySQLDecisionResult \rightarrow Repository \rightarrow MySQL
因此:
DecisionRuntime≠RepositoryDecisionRuntime\neq Repository
264.33 决策Runtime与MVC
完整结构:
Browser→DecisionController→DecisionService→DecisionEngine→DecisionResultBrowser \rightarrow DecisionController \rightarrow DecisionService \rightarrow DecisionEngine \rightarrow DecisionResult
如果需要持久化:
DecisionEngine→DomainObject→Repository→MySQLDecisionEngine \rightarrow DomainObject \rightarrow Repository \rightarrow MySQL
页面输出:
DecisionResult→ViewData→Smarty→HTMLDecisionResult \rightarrow ViewData \rightarrow Smarty \rightarrow HTML
完整结构:
Browser
↓
DecisionController
↓
DecisionService
↓
DecisionRuntime
↓
DecisionEngine
↓
DecisionResult
↓
ViewData
↓
Smarty
↓
HTML
264.34 完整决策实例
当前机器个体:
ICAI-001
当前目标:
Goal:
FaultIdentified
匹配结果产生三个方法:
Method-A
MatchScore = 0.90
RiskScore = 0.10
Conflict = false
GoalMatch = 1.00
Method-B
MatchScore = 0.95
RiskScore = 0.30
Conflict = false
GoalMatch = 1.00
Method-C
MatchScore = 0.98
RiskScore = 0.20
Conflict = true
GoalMatch = 1.00
首先过滤:
Method−C→Conflict→BlockedMethod-C \rightarrow Conflict \rightarrow Blocked
剩余:
A,BA,B
综合评价后:
Score(B)>Score(A)Score(B)>Score(A)
最终:
Decision=Method−BDecision=Method-B
产生:
DecisionResult:
Status = Approved
Method = Method-B
Reason = Highest valid candidate
Risk = 0.30
Conflict = None
然后:
DecisionResult→BehaviorDecisionResult \rightarrow Behavior
264.35 决策结果
决策结果应当是结构化对象:
DecisionResult={Status,SelectedCandidate,Method,Goal,Reason,Risk,Conflict,Time}DecisionResult= \{ Status, SelectedCandidate, Method, Goal, Reason, Risk, Conflict, Time \}
例如:
Status:
Approved
SelectedCandidate:
Candidate-B
Method:
Method-B
Goal:
FaultIdentified
Reason:
Highest valid candidate under risk and conflict constraints.
Risk:
0.30
Conflict:
None
264.36 决策结果不是行为
决策结果确定了:
做什么、使用什么方法。
但并没有真正执行。
因此:
DecisionResult≠BehaviorDecisionResult\neq Behavior
完整关系:
DecisionResult→Behavior→ActionDecisionResult \rightarrow Behavior \rightarrow Action
例如:
Decision:
Use Method-B
之后:
Behavior:
Execute Method-B
然后:
Action:
Read Temperature
因此:
Decision→Behavior→ActionDecision \rightarrow Behavior \rightarrow Action
264.37 决策失败后的处理
如果没有有效候选:
Candidate=∅Candidate=\varnothing
则:
DecisionResult.Status=NoDecisionDecisionResult.Status=NoDecision
此时不能强制执行。
可以进入:
NoDecision→LearningNoDecision \rightarrow Learning
或者:
NoDecision→CapabilityUpdateNoDecision \rightarrow CapabilityUpdate
或者:
NoDecision→MaintenanceNoDecision \rightarrow Maintenance
或者:
NoDecision→NeedUpdateNoDecision \rightarrow NeedUpdate
形成:
NoDecision
↓
Analyze Failure
↓
Learning / Capability / Maintenance / Need
↓
New Matching
↓
New Decision
264.38 决策Runtime与学习
决策结果可以进入行为执行。
行为执行以后产生结果:
Decision→Behavior→Action→ResultDecision \rightarrow Behavior \rightarrow Action \rightarrow Result
然后:
Result→Feedback→Memory→Experience→LearningResult \rightarrow Feedback \rightarrow Memory \rightarrow Experience \rightarrow Learning
学习可能改变未来方法评价:
Learning→MethodUpdateLearning \rightarrow MethodUpdate
因此:
Methodt+1≠MethodtMethod_{t+1} \neq Method_t
从而下一次决策Runtime使用新的方法数据。
264.39 决策Runtime与自我维护
决策过程也可能发现风险或冲突。
例如:
Decision→Risk→ConflictDecision \rightarrow Risk \rightarrow Conflict
如果发现系统状态异常:
Detection→Diagnosis→RepairDetection \rightarrow Diagnosis \rightarrow Repair
维护完成以后:
Repair→Verification→DecisionRepair \rightarrow Verification \rightarrow Decision
因此决策Runtime与维护Runtime之间可以形成反馈:
Decision↔MaintenanceDecision \leftrightarrow Maintenance
但:
DecisionRuntime≠MaintenanceRuntimeDecisionRuntime\neq MaintenanceRuntime
264.40 决策Runtime完整生命周期
一次决策过程可以表示:
Created
↓
MethodLoaded
↓
RiskEvaluated
↓
ConflictChecked
↓
CandidatesBuilt
↓
CandidatesEvaluated
↓
DecisionSelected
↓
DecisionCompleted
如果所有候选都失败:
CandidatesBuilt
↓
AllBlocked
↓
NoDecision
因此:
DecisionStatet→EventDecisionStatet+1DecisionState_t \xrightarrow{Event} DecisionState_{t+1}
264.41 决策Runtime验证
决策完成以后必须验证。
可以定义:
DecisionVerification=F(Goal,Candidate,Risk,Conflict,Rule,Decision)DecisionVerification= F( Goal, Candidate, Risk, Conflict, Rule, Decision )
至少验证:
- 是否存在有效候选;
- 是否满足目标;
- 是否超过风险阈值;
- 是否存在阻断冲突;
- 是否违反决策规则;
- 选择结果是否属于候选集合。
因此:
ValidDecision=CandidateValid∧GoalValid∧RiskValid∧ConflictValid∧RuleValidValidDecision= CandidateValid \land GoalValid \land RiskValid \land ConflictValid \land RuleValid
264.42 决策Runtime核心模型
本章最终可以定义:
DecisionRuntime={Method,Risk,Conflict,Candidate,Decision}\boxed{ DecisionRuntime= \{ Method, Risk, Conflict, Candidate, Decision \} }
其中:
Candidate=F(Method,Goal,Condition,Risk,Conflict)Candidate= F(Method,Goal,Condition,Risk,Conflict)
最终:
Decision=Select(Candidate,Goal,Rule)\boxed{ Decision= Select(Candidate,Goal,Rule) }
决策结果:
DecisionResult={SelectedCandidate,Method,Reason,Risk,Status,Time}\boxed{ DecisionResult= \{ SelectedCandidate, Method, Reason, Risk, Status, Time \} }
264.43 ICAI Runtime连续结构
截至第264章,ICAI Runtime已经形成四个连续阶段:
第一阶段:个体Runtime
IndividualRuntimeIndividualRuntime
负责:
Individual+State+Knowledge+Capability+GoalIndividual+State+Knowledge+Capability+Goal
第二阶段:认知Runtime
CognitiveRuntimeCognitiveRuntime
负责:
Input+Object+State+Relation+Scene+KnowledgeInput+Object+State+Relation+Scene+Knowledge
第三阶段:匹配Runtime
MatchingRuntimeMatchingRuntime
负责:
Need+Goal+Capability+Condition+MatchingNeed+Goal+Capability+Condition+Matching
第四阶段:决策Runtime
DecisionRuntimeDecisionRuntime
负责:
Method+Risk+Conflict+Candidate+DecisionMethod+Risk+Conflict+Candidate+Decision
形成:
IndividualRuntime
↓
CognitiveRuntime
↓
CognitionResult
↓
MatchingRuntime
↓
MatchingResult
↓
DecisionRuntime
↓
DecisionResult
264.44 决策Runtime进入行为Runtime
决策完成以后,下一阶段不是重新认知,而是进入行为执行。
因此:
DecisionResult→BehaviorRuntimeDecisionResult \rightarrow BehaviorRuntime
完整链条:
Individual→Cognition→Need→Goal→Capability→Matching→Method→Risk→Conflict→Candidate→Decision→BehaviorIndividual \rightarrow Cognition \rightarrow Need \rightarrow Goal \rightarrow Capability \rightarrow Matching \rightarrow Method \rightarrow Risk \rightarrow Conflict \rightarrow Candidate \rightarrow Decision \rightarrow Behavior
决策Runtime因此成为:
MatchingRuntime→BehaviorRuntimeMatchingRuntime \rightarrow BehaviorRuntime
之间的桥梁。
264.45 核心边界
本章必须保持以下概念边界:
Method≠CapabilityMethod\neq Capability Risk≠ConflictRisk\neq Conflict Candidate≠MethodCandidate\neq Method Candidate≠DecisionCandidate\neq Decision MatchingResult≠DecisionMatchingResult\neq Decision Decision≠BehaviorDecision\neq Behavior Decision≠ActionDecision\neq Action DecisionResult≠BehaviorResultDecisionResult\neq BehaviorResult DecisionRuntime≠DecisionEngineDecisionRuntime\neq DecisionEngine DecisionRuntime≠RepositoryDecisionRuntime\neq Repository DecisionRuntime≠MySQLDecisionRuntime\neq MySQL
同时:
HighestScore≠AlwaysSelectedHighestScore\neq AlwaysSelected
因为最终选择还必须受到:
Goal+Risk+Conflict+RuleGoal + Risk + Conflict + Rule
的约束。
264.46 本章总结
决策Runtime解决的是ICAI从匹配结果到最终选择之间的问题。
第263章:
Need→Goal→Capability→Condition→MatchingResultNeed \rightarrow Goal \rightarrow Capability \rightarrow Condition \rightarrow MatchingResult
第264章:
MatchingResult→Method→Risk→Conflict→Candidate→DecisionMatchingResult \rightarrow Method \rightarrow Risk \rightarrow Conflict \rightarrow Candidate \rightarrow Decision
最终:
DecisionResultDecisionResult
因此:
DecisionRuntime={Method,Risk,Conflict,Candidate,Decision}\boxed{ DecisionRuntime= \{ Method, Risk, Conflict, Candidate, Decision \} }
完整决策过程:
MatchingResult→Method→Risk→Conflict→Candidate→Decision→DecisionResult\boxed{ MatchingResult \rightarrow Method \rightarrow Risk \rightarrow Conflict \rightarrow Candidate \rightarrow Decision \rightarrow DecisionResult }
而决策结果继续进入行为:
DecisionResult→Behavior→Action→Result\boxed{ DecisionResult \rightarrow Behavior \rightarrow Action \rightarrow Result }
进一步进入学习和维护:
Result→Feedback→Memory→Experience→Learning→UpdateResult \rightarrow Feedback \rightarrow Memory \rightarrow Experience \rightarrow Learning \rightarrow Update
以及:
Detection→Risk→Conflict→Diagnosis→Repair→VerificationDetection \rightarrow Risk \rightarrow Conflict \rightarrow Diagnosis \rightarrow Repair \rightarrow Verification
因此,ICAI的Runtime体系已经形成:
IndividualRuntime→CognitiveRuntime→MatchingRuntime→DecisionRuntime→BehaviorRuntime\boxed{ IndividualRuntime \rightarrow CognitiveRuntime \rightarrow MatchingRuntime \rightarrow DecisionRuntime \rightarrow BehaviorRuntime }
其中,决策Runtime承担了一个非常关键的作用:
它不是简单地“选择一个方法”,而是在当前目标、风险、冲突和规则约束下,从有效候选方案中计算并确定一个可以进入行为执行阶段的决策结果。
整个过程仍然建立在对象、属性、状态、关系、规则、条件、候选集合、评分、排序和离散决策计算之上,能够直接映射到PHP OOP、Service、Engine、Domain Object、Repository、MySQL、MVC和Smarty工程体系,而不需要任何生成式模型机制。