第81章 需求与目标关系
81.1 提出背景
在第76章“需求理论”中,需求被定义为机器个体基于当前状态、对象、条件和要求而形成的结构化需要;第77章建立了需求识别机制;第78章建立了目标理论;第79章建立了目标形成;第80章进一步建立了目标生命周期状态。
因此,ICAI的运行链已经形成:
认知→需求→目标→目标状态认知\rightarrow需求\rightarrow目标\rightarrow目标状态
但是,仅仅知道“需求产生目标”还不够。
在实际机器个体运行过程中,一个需求可能需要多个目标共同完成;多个需求也可能共同形成一个目标;多个目标之间还可能存在依赖、包含、并行、替代和冲突等关系。
因此,需要建立独立的需求与目标关系理论(Need-Goal Relationship Theory)。
其核心问题是:
需求为什么形成目标?一个需求为什么可能形成多个目标?多个需求为什么可能共同形成一个目标?目标之间又如何相互影响?
因此:
Need→Goal\boxed{ Need\rightarrow Goal }
不是简单的一对一映射,而是一个可以形成:
一对一、一对多、多对一、多对多\boxed{ 一对一、一对多、多对一、多对多 }
的结构关系。
81.2 需求与目标的基本定义
**需求(Need)**描述机器个体需要解决、获得、维持、改变、恢复或者避免的问题。
**目标(Goal)**描述机器个体为了满足需求而需要达到的具体目标状态或者目标结果。
二者存在明显区别:
Need→回答“需要什么”Need\rightarrow回答“需要什么” Goal→回答“要达到什么状态”Goal\rightarrow回答“要达到什么状态”
例如:
需求:设备需要恢复正常运行
↓
目标:检查设备
↓
目标:确定故障
↓
目标:完成维修
↓
目标:验证设备恢复
因此:
Need≠GoalNeed\neq Goal
而是:
Need→Goal\boxed{ Need\rightarrow Goal }
需求是目标形成的重要来源,目标是需求向具体状态和结果转换后的执行结构。
81.3 需求驱动目标
**需求驱动目标(Need-Driven Goal)**是指机器个体根据已经识别并确认的需求,结合当前状态、目标状态、条件、知识、资源和能力,形成相应目标的过程。
基本模型:
Need→TargetState→Goal\boxed{ Need \rightarrow TargetState \rightarrow Goal }
例如:
当前设备状态:故障
↓
识别需求:设备需要恢复运行
↓
确定要求状态:正常运行
↓
形成目标:恢复设备正常运行
因此:
Goal=f(Need,State,Condition,Knowledge,Capability)Goal=f(Need,State,Condition,Knowledge,Capability)
其中:
- NeedNeed:当前需求;
- StateState:当前状态;
- ConditionCondition:目标成立和执行所需条件;
- KnowledgeKnowledge:相关结构化知识;
- CapabilityCapability:机器个体当前能力。
81.4 需求不是目标
必须严格区分需求和目标。
例如:
需求:需要降低设备温度
目标:将设备温度降低到规定范围
需求描述的是一种需要。
目标描述的是:
CurrentState→TargetStateCurrentState\rightarrow TargetState
因此:
Need→RequirementNeed\rightarrow Requirement
而:
Goal→TargetStateGoal\rightarrow TargetState
二者共同形成:
Need→Requirement→TargetState→GoalNeed \rightarrow Requirement \rightarrow TargetState \rightarrow Goal
81.5 一个需求一个目标
最简单的关系是一对一:
N1→G1\boxed{ N_1\rightarrow G_1 }
例如:
需求:设备需要启动
↓
目标:启动设备
这种结构适用于需求本身比较明确、目标对象单一、目标状态单一、执行过程简单的情况。
其结构:
Need={N1}Need= \{N_1\}
对应:
Goal={G1}Goal= \{G_1\}
形成:
N1→G1N_1\rightarrow G_1
这是需求与目标关系中最基础的形式。
81.6 一个需求多个目标
一个复杂需求通常无法通过一个目标完成。
例如:
需求:恢复设备正常运行
↓
目标1:检查设备
↓
目标2:确定故障原因
↓
目标3:维修设备
↓
目标4:测试设备
↓
目标5:确认恢复正常
因此:
N1→{G1,G2,G3,G4,G5}\boxed{ N_1\rightarrow \{G_1,G_2,G_3,G_4,G_5\} }
这就是一个需求多个目标。
形式化表示:
Ni→{G1,G2,…,Gn}N_i\rightarrow\{G_1,G_2,\ldots,G_n\}
多个目标可能具有顺序关系:
G1→G2→G3G_1\rightarrow G_2\rightarrow G_3
也可能具有并行关系:
G1∥G2∥G3G_1\parallel G_2\parallel G_3
因此,一个需求产生多个目标以后,还需要进一步计算目标之间的关系。
81.7 一个需求多个目标的形成原因
一个需求形成多个目标,通常存在以下结构原因:
需求复杂
↓
目标状态复杂
↓
需要多个中间状态
↓
需要多个执行步骤
↓
形成多个子目标
例如:
CurrentState→S1→S2→TargetStateCurrentState \rightarrow S_1 \rightarrow S_2 \rightarrow TargetState
对应:
G1→G2→G3G_1\rightarrow G_2\rightarrow G_3
因此:
ComplexNeed→GoalDecomposition→SubGoals\boxed{ ComplexNeed \rightarrow GoalDecomposition \rightarrow SubGoals }
这说明目标不仅可以由需求直接产生,还可以通过目标分解形成。
81.8 多需求一个目标
多个需求也可能共同形成一个目标。
例如机器个体同时存在:
需求1:降低能源消耗
需求2:降低运行成本
需求3:提高设备运行效率
这些需求可能共同形成:
目标:优化设备运行模式
因此:
{N1,N2,N3}→G1\boxed{ \{N_1,N_2,N_3\} \rightarrow G_1 }
形式化表示:
N1+N2+⋯+Nn→GCN_1+N_2+\cdots+N_n\rightarrow G_C
其中 GCG_C 为组合目标。
81.9 多需求一个目标的条件
多个需求不能随意组合成一个目标。
需要判断需求之间是否具有:
相关性
互补性
共同对象
共同状态
共同条件
共同执行路径
共同结果
可以定义:
Combine(N1,N2,…,Nn)Combine(N_1,N_2,\ldots,N_n)
当:
Relation(Ni,Nj)=CompatibleRelation(N_i,N_j)=Compatible
并且具有共同目标状态:
TargetState(N1,…,Nn)→SGTargetState(N_1,\ldots,N_n)\rightarrow S_G
才可以形成:
GCG_C
因此:
CompatibleNeeds→CommonTargetState→CombinedGoal\boxed{ CompatibleNeeds \rightarrow CommonTargetState \rightarrow CombinedGoal }
81.10 多需求多目标
在复杂机器个体中,还可能形成:
{N1,N2,…,Nn}→{G1,G2,…,Gm}\boxed{ \{N_1,N_2,\ldots,N_n\} \rightarrow \{G_1,G_2,\ldots,G_m\} }
也就是说,需求与目标实际上可以构成一个多对多关系。
例如:
需求1 ─────→ 目标1
└───→ 目标2
需求2 ─────→ 目标2
└───→ 目标3
需求3 ─────→ 目标3
└───→ 目标4
于是:
NeedGoalRelation⊆Need×GoalNeedGoalRelation \subseteq Need\times Goal
其中:
- NeedNeed:需求集合;
- GoalGoal:目标集合;
- Need×GoalNeed\times Goal:需求集合与目标集合的关系空间。
81.11 需求与目标关系模型
可以建立:
NGR=(Need,Goal,Relation)NGR=(Need,Goal,Relation)
其中:
- NeedNeed:需求节点;
- GoalGoal:目标节点;
- RelationRelation:需求与目标之间的关系。
关系类型可以包括:
驱动
对应
分解
组合
依赖
支持
替代
完成
取消
因此:
Need→DriveGoalNeed \xrightarrow{Drive} Goal
是最基础的关系。
81.12 需求驱动关系
**需求驱动关系(Need Drive Relation)**表示需求直接促使目标形成。
定义:
RNG=(Need,Drive,Goal)R_{NG}=(Need,Drive,Goal)
例如:
N1→DriveG1N_1\xrightarrow{Drive}G_1
其工程意义是:
没有该需求,当前目标通常不会形成。
但并不意味着:
Need→GoalNeed\rightarrow Goal
永远是一对一。
实际情况可能是:
N1→G1,G2,G3N_1\rightarrow G_1,G_2,G_3
或者:
N1,N2→G1N_1,N_2\rightarrow G_1
81.13 目标分解关系
当一个需求形成复杂目标时,一个目标还可以进一步分解为多个子目标:
G→{G1,G2,…,Gn}G\rightarrow\{G_1,G_2,\ldots,G_n\}
例如:
总目标:完成设备维修
↓
子目标1:故障检测
↓
子目标2:故障定位
↓
子目标3:故障处理
↓
子目标4:维修验证
因此:
Goal→DecomposeSubGoalGoal \xrightarrow{Decompose} SubGoal
形成目标层级:
G0→{G1,G2,G3,G4}G_0 \rightarrow \{G_1,G_2,G_3,G_4\}
81.14 目标包含关系
一个目标可以包含多个子目标。
定义:
GA⊃GBG_A\supset G_B
表示:
GBG_B
属于:
GAG_A
的内部目标结构。
例如:
完成一次配送完成一次配送
可能包含:
确认订单→准备货物→运输→交付确认订单 \rightarrow 准备货物 \rightarrow 运输 \rightarrow 交付
因此:
GDelivery⊃{G1,G2,G3,G4}G_{Delivery} \supset \{G_1,G_2,G_3,G_4\}
81.15 目标依赖关系
**目标依赖(Goal Dependency)**表示一个目标必须等待另一个目标达到特定状态以后才能执行。
例如:
G1→G2G_1\rightarrow G_2
表示:
G2G_2
依赖:
G1G_1
完成。
例如:
目标1:完成故障检测
↓
目标2:完成故障维修
因此:
State(G1)=CompletedState(G_1)=Completed
才允许:
State(G2)=ProcessingState(G_2)=Processing
于是:
GoalDependency→StateDependency→ExecutionDependency\boxed{ GoalDependency \rightarrow StateDependency \rightarrow ExecutionDependency }
81.16 目标并行关系
某些目标之间没有先后依赖,可以同时执行。
定义:
G1∥G2G_1\parallel G_2
表示:
G1G_1
和:
G2G_2
在条件允许时可以并行执行。
例如:
目标1:监测温度
目标2:监测压力
目标3:记录运行时间
三个目标可以同时运行。
因此:
G1∥G2∥G3G_1\parallel G_2\parallel G_3
81.17 目标替代关系
当一个目标无法继续执行,或者出现更合适的目标时,可以形成目标替代。
例如:
G1→G2G_1\rightarrow G_2
其中:
G2G_2
替代:
G1G_1
形成:
G1→ReplaceG2G_1\xrightarrow{Replace}G_2
例如:
原目标:继续执行任务
↓
环境条件发生变化
↓
形成新目标:返回安全位置
↓
新目标替代原目标
因此:
GoalChange→GoalReplacementGoalChange\rightarrow GoalReplacement
81.18 目标完成关系
目标完成后,会影响对应需求。
基本关系:
GoalCompleted→NeedSatisfiedGoalCompleted\rightarrow NeedSatisfied
例如:
需求:设备恢复正常
↓
目标:完成设备维修
↓
目标完成
↓
检查设备状态
↓
设备恢复正常
↓
需求满足
因此:
GoalCompletion→NeedEvaluation\boxed{ GoalCompletion \rightarrow NeedEvaluation }
注意:
GoalCompleted≠NeedSatisfiedGoalCompleted\neq NeedSatisfied
只有当目标结果真正满足需求要求时:
GoalCompleted∧RequirementSatisfied→NeedSatisfiedGoalCompleted \land RequirementSatisfied \rightarrow NeedSatisfied
81.19 目标取消关系
目标被取消以后,需求是否消失,需要重新判断。
例如:
GoalCancelledGoalCancelled
可能导致:
NeedStillExists=TrueNeedStillExists=True
此时需要重新形成目标:
Need→NewGoalNeed \rightarrow NewGoal
也可能:
NeedStillExists=FalseNeedStillExists=False
则需求进入满足、失效或者取消状态。
因此:
GoalCancelled→NeedReevaluationGoalCancelled \rightarrow NeedReevaluation
81.20 目标优先级
当机器个体同时存在多个目标时,不可能简单地按照目标产生顺序执行。
必须建立目标优先级(Goal Priority)。
定义:
Priority(Gi)=f(NeedPriority,Urgency,Risk,Importance,Deadline,Resource,Condition)Priority(G_i) = f( NeedPriority, Urgency, Risk, Importance, Deadline, Resource, Condition )
其中:
- NeedPriorityNeedPriority:来源需求的优先级;
- UrgencyUrgency:紧急程度;
- RiskRisk:风险程度;
- ImportanceImportance:目标重要程度;
- DeadlineDeadline:期限约束;
- ResourceResource:资源可用程度;
- ConditionCondition:当前执行条件。
因此:
G∗=argmaxGiPriority(Gi)G^*=\arg\max_{G_i}Priority(G_i)
表示机器个体从当前可执行目标集合中选择优先级最高的目标。
81.21 目标优先级不是目标状态
必须区分:
GoalPriority≠GoalStateGoalPriority\neq GoalState
例如:
目标A:进行中,优先级80
目标B:未开始,优先级95
目标C:暂停,优先级60
这里:
- “进行中、未开始、暂停”属于目标状态;
- “80、95、60”属于目标优先级。
二者属于不同维度。
但优先级会影响目标状态转换:
Priority→GoalSelection→GoalStatePriority \rightarrow GoalSelection \rightarrow GoalState
81.22 目标优先级动态变化
目标优先级不是固定值。
随着:
需求变化
风险变化
时间变化
资源变化
环境变化
目标状态变化
优先级也可能变化。
因此:
Priorityt→Priorityt+1Priority_t\rightarrow Priority_{t+1}
例如:
Urgency↑Urgency\uparrow
可能导致:
Priority↑Priority\uparrow
如果风险突然增加:
Risk↑Risk\uparrow
也可能使某个安全目标优先级快速提高。
因此:
StateChange+RiskChange+TimeChange→PriorityChangeStateChange+RiskChange+TimeChange \rightarrow PriorityChange
81.23 目标冲突基础
当多个目标不能同时满足时,就产生目标冲突的基础。
定义两个目标:
G1,G2G_1,G_2
如果:
TargetState(G1)TargetState(G_1)
与:
TargetState(G2)TargetState(G_2)
不能同时成立,则:
G1∧G2→GoalConflict\boxed{ G_1\land G_2\rightarrow GoalConflict }
例如:
目标1:提高运行速度
目标2:降低能源消耗
如果当前设备条件下两个目标无法同时达到要求,就产生潜在冲突。
81.24 目标冲突的基本类型
目标冲突可以首先分为:
状态冲突
资源冲突
时间冲突
对象冲突
条件冲突
方法冲突
安全冲突
例如:
状态冲突
TargetState(G1)≠Compatible(TargetState(G2))TargetState(G_1)\neq Compatible(TargetState(G_2))
资源冲突
两个目标同时需要同一有限资源:
Resource(G1)∩Resource(G2)≠∅Resource(G_1)\cap Resource(G_2)\neq\varnothing
并且:
Capacity(Resource)<Demand(G1)+Demand(G2)Capacity(Resource)<Demand(G_1)+Demand(G_2)
则存在资源冲突。
时间冲突
Time(G1)∩Time(G2)Time(G_1)\cap Time(G_2)
发生重叠,并且两个目标无法同时执行,则形成时间冲突。
81.25 目标冲突并不等于目标失败
必须严格区分:
GoalConflict≠GoalFailureGoalConflict\neq GoalFailure
冲突表示:
两个或多个目标之间存在不能同时满足的关系。
失败表示:
某个目标已经执行,但没有达到要求。
因此:
Conflict→ConflictHandlingConflict \rightarrow ConflictHandling
而:
Failure→FailureHandlingFailure \rightarrow FailureHandling
冲突处理发生在决策之前或者目标选择阶段。
81.26 目标冲突与优先级
当两个目标发生冲突时,需要利用优先级进行目标选择。
例如:
G1∩G2→ConflictG_1\cap G_2\rightarrow Conflict
然后:
Priority(G1)>Priority(G2)Priority(G_1)>Priority(G_2)
则可以:
G1→ExecuteG_1\rightarrow Execute
而:
G2→Pause/Cancel/DeferG_2\rightarrow Pause/Cancel/Defer
因此:
GoalConflict→PriorityComparison→GoalSelection\boxed{ GoalConflict \rightarrow PriorityComparison \rightarrow GoalSelection }
但优先级并不是唯一判断依据,还需要考虑:
安全
规则
资源
条件
期限
能力
依赖关系
81.27 目标关系网络
多个需求和多个目标可以形成关系网络:
需求1 ──驱动──→ 目标1
│ │
│ └──依赖──→ 目标2
│
└──驱动──→ 目标3
需求2 ──驱动──→ 目标2
│
└──驱动──→ 目标4
目标3 ──冲突──→ 目标4
因此:
Network=(Need,Goal,Relation)Network=(Need,Goal,Relation)
它可以看成ICAI目标计算中的一个有向关系图。
81.28 需求—目标关系的统一模型
建立统一关系:
N→DriveG\boxed{ N \xrightarrow{Drive} G }
一个需求多个目标:
N→{G1,G2,…,Gn}\boxed{ N \rightarrow \{G_1,G_2,\ldots,G_n\} }
多个需求一个目标:
{N1,N2,…,Nn}→G\boxed{ \{N_1,N_2,\ldots,N_n\} \rightarrow G }
多需求多目标:
{N1,…,Nn}→{G1,…,Gm}\boxed{ \{N_1,\ldots,N_n\} \rightarrow \{G_1,\ldots,G_m\} }
目标之间:
Goali→RelationGoalj\boxed{ Goal_i \xrightarrow{Relation} Goal_j }
关系包括:
Dependency, Parallel, Replace, Contain, ConflictDependency,\ Parallel,\ Replace,\ Contain,\ Conflict
81.29 工程对象模型
可以建立需求—目标关系对象:
NeedGoalRelation
├── id
├── need_id
├── goal_id
├── relation_type
├── condition
├── priority
├── status
├── reason
├── created_at
└── updated_at
PHP:
class NeedGoalRelation
{
protected $id;
protected $needId;
protected $goalId;
protected $relationType;
protected $condition;
protected $priority;
protected $status;
protected $reason;
}
81.30 GoalRelationEngine
建立:
GoalRelationEngine
│
├── NeedGoalMapper
├── GoalBuilder
├── GoalSplitter
├── GoalCombiner
├── GoalDependencyChecker
├── GoalParallelChecker
├── GoalReplacementChecker
├── GoalPriorityCalculator
└── GoalConflictDetector
核心关系:
GoalRelationEngine=Mapping+Combination+Decomposition+Priority+ConflictGoalRelationEngine = Mapping + Combination + Decomposition + Priority + Conflict
PHP:
class GoalRelationEngine
{
public function mapNeedToGoal($need)
{
return null;
}
public function splitGoal($goal)
{
return array();
}
public function combineNeeds($needs)
{
return null;
}
public function checkDependency($goalA, $goalB)
{
return false;
}
public function calculatePriority($goal)
{
return 0;
}
public function detectConflict($goalA, $goalB)
{
return false;
}
}
81.31 数据库结构
可以建立:
cognitive_need_goal_relations
主要字段:
id
need_id
goal_id
relation_type
condition
priority
status
reason
created_at
updated_at
目标关系表:
cognitive_goal_relations
主要字段:
id
source_goal_id
target_goal_id
relation_type
condition
priority
status
reason
created_at
updated_at
由此形成:
Need→NeedGoalRelation→GoalNeed\rightarrow NeedGoalRelation\rightarrow Goal
以及:
Goal→GoalRelation→GoalGoal\rightarrow GoalRelation\rightarrow Goal
81.32 需求与目标Runtime
完整运行过程:
当前认知
↓
需求识别
↓
需求确认
↓
读取需求集合
↓
分析需求之间关系
↓
需求组合/分解判断
↓
形成目标集合
↓
建立需求—目标关系
↓
分析目标之间关系
↓
目标依赖判断
↓
目标并行判断
↓
目标替代判断
↓
目标优先级计算
↓
目标冲突检测
↓
目标选择
↓
进入目标状态
↓
能力匹配
↓
方法匹配
↓
决策
↓
行为
↓
结果
因此:
Need→Goal→GoalRelation→Priority→Conflict→GoalSelection\boxed{ Need \rightarrow Goal \rightarrow GoalRelation \rightarrow Priority \rightarrow Conflict \rightarrow GoalSelection }
81.33 需求—目标—决策关系
需求与目标关系最终服务于机器个体的决策。
完整链:
Need→Goal→GoalRelation→Priority→Conflict→DecisionNeed \rightarrow Goal \rightarrow GoalRelation \rightarrow Priority \rightarrow Conflict \rightarrow Decision
也就是说:
决策并不是直接从需求产生,而是在需求形成目标以后,对多个目标及其关系进行计算,再形成决策。
因此:
Need≠Decision\boxed{ Need\neq Decision }
而:
Need→Goal→Decision\boxed{ Need \rightarrow Goal \rightarrow Decision }
81.34 需求变化导致目标变化
需求是动态的。
因此:
Needt→Needt+1Need_t\rightarrow Need_{t+1}
会进一步导致:
Goalt→Goalt+1Goal_t\rightarrow Goal_{t+1}
形成:
NeedChange→GoalChange\boxed{ NeedChange \rightarrow GoalChange }
目标变化可能表现为:
目标新增
目标删除
目标取消
目标暂停
目标恢复
目标优先级变化
目标期限变化
目标状态变化
目标分解
目标组合
目标替代
因此,需求与目标关系本身也是动态结构。
81.35 需求—目标闭环
目标完成以后,不应该直接结束整个系统运行。
完整闭环为:
Need→Goal→Execution→Result→NeedEvaluationNeed \rightarrow Goal \rightarrow Execution \rightarrow Result \rightarrow NeedEvaluation
如果需求没有满足:
NeedUnsatisfied→NewGoalNeedUnsatisfied \rightarrow NewGoal
如果需求已经满足:
NeedSatisfied→NeedEndNeedSatisfied \rightarrow NeedEnd
如果需求发生变化:
NeedChange→GoalChangeNeedChange \rightarrow GoalChange
因此:
Need→Goal→Result→Need\boxed{ Need \rightarrow Goal \rightarrow Result \rightarrow Need }
形成需求—目标闭环。
81.36 本章总结
第81章建立了需求与目标关系理论(Need-Goal Relationship Theory)。
需求与目标不是简单的一对一关系,而是一个动态、多结构的关系系统。
最基本的关系:
Need→Goal\boxed{ Need\rightarrow Goal }
一个需求可以形成多个目标:
N1→{G1,G2,…,Gn}\boxed{ N_1\rightarrow \{G_1,G_2,\ldots,G_n\} }
多个需求可以共同形成一个目标:
{N1,N2,…,Nn}→G\boxed{ \{N_1,N_2,\ldots,N_n\} \rightarrow G }
复杂系统还可以形成:
{N1,…,Nn}→{G1,…,Gm}\boxed{ \{N_1,\ldots,N_n\} \rightarrow \{G_1,\ldots,G_m\} }
目标形成以后,目标之间进一步建立:
依赖+包含+分解+并行+替代+冲突\boxed{ 依赖 + 包含 + 分解 + 并行 + 替代 + 冲突 }
当多个目标同时存在时,需要计算:
GoalPriority\boxed{ GoalPriority }
并在目标之间存在不能同时满足的情况下形成:
GoalConflict\boxed{ GoalConflict }
基本决策链因此形成:
需求→目标→目标关系→目标优先级→目标冲突→目标选择\boxed{ 需求 \rightarrow 目标 \rightarrow 目标关系 \rightarrow 目标优先级 \rightarrow 目标冲突 \rightarrow 目标选择 }
进一步进入:
目标选择→能力匹配→方法匹配→决策→行为→结果\boxed{ 目标选择 \rightarrow 能力匹配 \rightarrow 方法匹配 \rightarrow 决策 \rightarrow 行为 \rightarrow 结果 }
最终形成需求与目标的动态闭环:
Need→Goal→Execution→Result→NeedEvaluation→NewNeed/NewGoal\boxed{ Need \rightarrow Goal \rightarrow Execution \rightarrow Result \rightarrow NeedEvaluation \rightarrow NewNeed/NewGoal }
由此,第81章完成了从**“需求产生目标”到“需求与目标形成关系网络”的理论扩展,也为后续进一步建立目标优先级计算、目标冲突处理、能力匹配和方法选择**提供了理论基础。