Z5.01.2Rule interaction complexity设计研究
规则数量增长后行为不可预测
别名: 规则交互复杂度 · 涌现行为 · emergent behavior
概念解释
单条规则各自可理解,规则集的整体行为却会超出任何一条规则的描述——这是规则交互的涌现复杂度。十条规则、二十个设备的系统里,「灯什么时候会关」不再有任何单条规则能回答:它取决于哪几条规则瞄准了这盏灯、它们的触发条件在什么时候同时成立、以及其中一条规则的动作是否会改变另一条的触发条件。
不可预测的具体表现:设备做了「没有一条规则说过」的事(多条规则接力出的行为链);同一段时间里行为与既往不符(某条被遗忘的规则在特定条件组合下才醒);改一条规则,远处另一处行为变了(规则通过共享设备耦合)。
机制
复杂度是乘性增长的。每条新规则不是加一,而是与所有既有规则、所有设备状态产生新的组合:规则 A 的动作把温控调低,房间变冷让规则 B 的「低温告警」条件成立,B 的通知又触发用户手动干预……交互路径的数量随规则数超线性增长,而规则的作者每次只看一条。
两层人的限制叠加在结构上。其一是局部作者视角:创建与编辑界面对规则逐条呈现,系统里没有任何一个时刻把「全体规则的联合行为」展示给任何人——整体行为没有作者,它只在运行时存在。其二是工作记忆容量:即使用户想在心里模拟规则集,十几条规则的触发组合也早已超出一次性能持有的范围;而正常运行时自动化退在注意之外,监控也不会发生。
所以不可预测不是系统出了故障,而是语义分层:规则层每一条都自洽,行为层却是全体规则与环境的联合输出。两层之间没有自动的翻译。
怎么研究
- 规则语料的规模分析:Ur 等 2014 年对 IFTTT 用户规则集的调查给出了基线——真实规则集普遍小而简单,用户群体对复杂度有自发的回避。结合规则共享设备的程度,可以估计交互路径的增长曲线。
- 冲突与交互检测研究:智能家居领域有把形式化方法(静态分析、模型检验)用于规则集的工作,自动找出可能冲突或级联的规则对——这类研究既验证「交互复杂度真实存在」,也提供检测工具的可行上限。表述上宜保守:方法存在,对家用户规模规则集的效果证据有限。
- 预测任务实验:给用户看一个规则集与一个情境,请其预测系统行为,比较预测准确率随规则数与共享设备数的下降曲线。这是把「不可预测」变成可测量量的直接范式。
方法论注意点:预测失败要区分「表达不出」(用户不知道规则存在)与「算不出」(知道规则但推不动组合)——前者是可见性问题,后者才是真正的认知复杂度,对策不同。
边界
- 小规则集基本可预测。 十条以内、各自瞄准不同设备的规则,行为仍在心智模型可覆盖的范围;这条知识从两位数规则、多规则共享同一设备开始才尖锐。
- 退化不是线性的,取决于耦合密度。 决定量不是规则总数,而是「有多少设备被多条规则瞄准」——共享设备的规则对数才是复杂度的载体。二十条互不相干的规则照样好懂。
- 打包能缓解不能消除。 把一组规则收进一个场景(显式模式)减少了作者视角的碎片,但场景与场景之间同样可能交互,问题只是上移一层。
怎么落地
- 新规则创建时做影响预检:列出该规则的目标设备还被哪些规则瞄准、触发条件与谁重叠,在保存前展示「将与此规则交互的既有规则」。
- 对同一设备的多条规则给出聚合视图:按设备而不是按创建时间组织规则列表,让「三盏灯各一条」与「一盏灯三条」的区别一眼可见。
- 设置规模提醒阈值:单一设备上挂的规则超过三条时提示检视;级联链(规则的动作触发另一条规则的条件)在日志中标注链深。
- 验证办法:抽查用户对自己规则集的行为预测——给出一个常见情境(如下班回家),请其预测各房间灯光与温控的最终状态,比对实际执行。预测错误集中出现在哪几条规则,哪里就是文档与视图的改进点。