Skip to content

定义Definition

安全博弈与反应式综合

Safety game · Reactive synthesis · 安全游戏 · 获胜区域 · Controllable predecessor

从安全闭包进入有限Büchi博弈,用嵌套吸引域计算反复到达目标的获胜区域,并构造双方位置策略。

形式陈述 ​

模型、策略与量词 ​

设有限有向图为 G=(V,E),顶点划分为控制器拥有的 VC 和环境拥有的 VE,二者不交且并为 V。记 Succ(v)={u:(v,u)∈E},假设每个顶点至少有一个后继。给定安全集 S⊆V,坏状态集为 B=V∖S。

两方都能看到完整历史。在控制器顶点由控制器选择下一条边,在环境顶点由环境选择。策略把每条以己方顶点结尾的有限合法历史映射到一个合法后继;若选择只依赖当前顶点,便称为无记忆策略或位置策略。初态 v、控制策略 σ 和环境策略 τ 唯一确定一条无限执行 play(v,σ,τ)。

安全目标要求执行经过的每个状态都属于 S。获胜区域定义为

Win={v∈V:∃σ ∀τ, play(v,σ,τ)∈Sω}.

控制器要根据已经发生的环境选择反应,不能预先知道环境未来的选择。这里的反应式综合,就是从图和安全目标中求出满足这个量词次序的策略。

可控前驱与最大不动点 ​

对任意 X⊆V,定义可控前驱

CPre(X)={v∈VC:Succ(v)∩X≠∅}∪{v∈VE:Succ(v)⊆X}.

控制器只需有一个可选后继留在 X;环境顶点则必须保证所有后继都留在 X。令

F(X)=S∩CPre(X),W0=S,Wi+1=F(Wi).

若 X⊆Y,存在于 X 的可选后继也存在于 Y,全落在 X 的后继也全落在 Y,所以 F 单调。由 W1⊆W0 及单调性归纳可得 Wi+1⊆Wi。每次严格变化至少删去一个顶点,故至多 |S| 次严格变化后稳定,得到 W=F(W)。

任何不动点 Y=F(Y) 都包含于 S=W0。若 Y⊆Wi,则 Y=F(Y)⊆F(Wi)=Wi+1;因此 Y⊆W。这给出Knaster–Tarski 最大不动点在有限图上的具体计算:

W=νX.(S∩CPre(X)).

有限安全博弈定理: W=Win。控制器有一个位置策略,从 W 中任意状态出发都保证永远安全;环境也有一个位置反策略,从 V∖W 中任意状态出发都保证有限步到达 B。下面分别构造这两个证书。

从安全闭包到 Büchi 目标 ​

沿用有限、总后继、完整信息的轮流博弈,另给目标集 F⊆V。这次目标不再是留在某个安全集,而是无限多次访问 F,即Büchi 条件:

WinB={v:∃σ ∀τ,{n:vn∈F} 无限}.

下述算法输出 W=WinB,并同时构造控制器在 W 上的统一位置策略和环境在 V∖W 上的统一位置策略。环境的获胜目标是仅有限次访问 F,不是一次也不能访问。

对总的诱导子图 G[Z],记 SuccZ(v)=Succ(v)∩Z。玩家 P 到 Q⊆Z 的吸引域按以下层构造;P¯ 表示对手:

A0=Q,Ak+1=Ak∪{v∈Z∩VP:SuccZ(v)∩Ak≠∅}∪{v∈Z∩VP¯:SuccZ(v)⊆Ak}.

稳定集记作 AttrP,Z(Q),首次进入层数为吸引秩。正秩的 P 顶点选一个更低秩后继;正秩的对手顶点,其每个子图内后继都有更低秩。因此只要执行没有离开子图,就会有限步到达 Q。其补集则满足:P 的全部子图内后继仍在补集,对手至少有一个后继在补集。这个补集闭包会用于环境避开 F。

从 Z0=V 开始,重复:

Yj=AttrC,Zj(F∩Zj),Xj=Zj∖Yj.

若 Xj=∅,返回 W=Zj;否则计算

Dj=AttrE,Zj(Xj),Zj+1=Zj∖Dj.

Xj 是环境可在当前子图内永远避开目标的区域;Dj 把环境能强制带入这个区域的顶点一并删除。每次非终止轮都删除非空集合,故至多 |V| 轮删除后结束;空子图也按 Y=X=∅ 返回。它是经典 Büchi 博弈算法的“保留集”写法。[3, §3.1]

直觉

安全策略靠闭包维持 ​

对每个 v∈W∩VC,从 W=F(W) 可知至少有一个后继仍在 W,任取一个作为 σ(v)。对每个 v∈W∩VE,同一等式保证它的每个后继都在 W。在其他控制器顶点任取合法选择,即可把 σ 补成整个图上的位置策略。

从任意 v0∈W 出发,若当前 vk∈W,控制器的一步由策略留在 W,环境的一步由全部后继的闭包留在 W。对执行长度归纳,任意环境策略产生的每个 vk 都在 W⊆S。所以 W⊆Win,而且同一个 σ 同时适用于所有获胜初态。

这也说明“待在安全状态”为什么不够:某个状态眼下安全,却可能让环境下一步直接进入坏状态。迭代删除的正是这种无法持续兑现的安全承诺;稳定后留下的区域才有逐步维持安全的能力。

失败策略靠秩严格下降 ​

为了证明删掉的状态确实无法挽救,从坏状态向后生长集合:

L0=B,Li+1=Li∪{v∈VE:Succ(v)∩Li≠∅}∪{v∈VC:Succ(v)⊆Li}.

环境只需有一条边通往已知失败状态,就能主动选择它;控制器要到所有选择都已失败时才被加入。具体地,令 A(X) 表示上式中两个前驱集合的并,德摩根律给出 V∖Wi+1=B∪A(V∖Wi)。从 L0=B 出发,这个序列单调增长:首步包含 B,此后由 A 的单调性归纳。因而 B∪A(Li)=Li∪A(Li),与写出的增长规则一致,逐层得到 Li=V∖Wi。因此稳定集 L 恰为 V∖W。

为 v∈L 定义首次加入的层数

r(v)=min{i:v∈Li}.

若 r(v)=k>0 且 v∈VE,它首次加入 Lk 时至少有一个后继属于 Lk−1,环境固定选择这样的后继。若 v∈VC,首次加入规则保证它的所有后继都属于 Lk−1。因而不论控制器怎样选择,只要当前秩为正,下一步的秩都严格变小。

非负整数不能无限严格下降,所以从 v∈L 出发,环境的这个位置策略迫使执行至多经过 r(v) 步到达秩零,即进入 B。反策略在 B 以及其余环境顶点任意补全即可;坏状态一旦被访问,安全目标已经失败。于是 L∩Win=∅,结合获胜策略便完成 W=Win 的双向证明。

获胜策略只要求在 W 内闭合,失败反策略却必须推动秩下降。随便选一条仍在 L 内的边可能不断绕圈,并不能证明最终到达坏状态。闭包证书与进度证书承担的是不同的证明责任。

Büchi 获胜侧:每次到达后重新开始下降 ​

先证明每个 Zj 都满足两条全图条件:环境顶点的全部后继在 Zj,控制器顶点至少有一个后继在 Zj。初始 V 显然满足。删除环境吸引域 Dj 后,补集性质保证剩余环境顶点的全部 Zj 内后继仍在补集,剩余控制器顶点有一个后继在补集;配合上一轮环境的全图闭包,便完成归纳。因此每个非空诱导子图确实总有后继,没有把死端上的空全称误当作能力。

结束时 W=AttrC,W(F∩W)。在 W∖F 的控制器顶点,固定选一条使最终吸引秩严格下降的边;在 W∩F 的控制器顶点,固定任选一条留在 W 的边。环境的任何选择都留在 W;在非目标环境顶点,所有后继的秩都严格更低。

所以从任意 W 内初态有限步就能访问 F。每次访问后,下一步仍在 W,同一论证再次生效。若声称某次是最后一次访问,则之后不断下降的非负整数秩导致矛盾。这就证明同一个位置策略从整个 W 获胜;不能把证明停在“第一次能到达”。

Büchi 失败侧:外层编号最终稳定 ​

每个被删顶点唯一属于某轮 Dj。在该轮正吸引秩的环境顶点,选择一条更低秩边;在秩零区域 Xj 的环境顶点,选择一条仍在 Xj 的边。后者存在,因为 Xj 是控制器吸引域的补集。每个顶点只有一个删除轮次,故这些选择合并成一个位置策略,不需要运行时记忆当前轮次。

从 Dj 出发,在这个环境策略下有两种情况。若控制器走出 Zj,就进入某个更早删除的 Di,其中 i<j。若留在 Zj,正吸引秩严格下降;进入 Xj 后,控制器的所有子图内后继都在 Xj,环境也留在那里。又因为 F∩Zj⊆Yj,有 Xj∩F=∅。

于是沿执行,删除轮次只可能不变或严格变小,永远不会跳到更晚轮次或最终保留集。有限次下降后它稳定;此后吸引秩下降到零,执行永远留在一个不含 F 的 Xj。之前只是有限前缀,因而全执行至多有限次访问 F。这证明被删除区域全部由环境获胜,与上一节一起得到准确分区和双方位置策略。

这里保留了“可能走到更早删除层”的分支。仅在诱导子图内证明环境能到 Xj,却忽略控制器原图里的出界边,会留下策略证明的缺口。

例子与边界

六个状态逐层求解 ​

取控制器顶点 VC={s,a,c},环境顶点 VE={e,f,b},唯一坏状态为 b。完整后继表如下;表外没有其他边。

顶点 归属 后继 是否安全
s 控制器 a,e 是
a 控制器 a 是
c 控制器 e 是
e 环境 a,f 是
f 环境 c,b 是
b 环境 b 否
控制器保持获胜闭包,环境沿失败秩下降

图中圈定的 W={s,a} 是完整获胜区域。粗实线表示控制器的获胜选择,粗虚线表示环境的下降选择;其余细边仍是博弈中的合法选择。节点旁的 r 标出首次进入失败集合的层数,形状标出行动归属。

每轮同时根据上一轮集合更新,结果为:

轮次 i 失败集 Li 候选获胜集 Wi 本轮新增失败状态
0 {b} {s,a,e,f,c} b
1 {b,f} {s,a,e,c} f
2 {b,f,e} {s,a,c} e
3 {b,f,e,c} {s,a} c
4 {b,f,e,c} {s,a} 无,已稳定

第一轮 f 被加入,因为环境可直接选 f→b;第二轮 e 被加入,因为环境可选 e→f;第三轮 c 被加入,因为它唯一的后继 e 已失败。虽然 s 也有边进入 e,控制器仍能选择 s→a,故 s 不被删除。

综合得到 σ(s)=a、σ(a)=a。失败侧的秩为 r(b)=0,r(f)=1,r(e)=2,r(c)=3;环境选择 e→f、f→b,从 c 出发便强制执行 c→e→f→b,恰在三步后到达坏状态。

从 e 存在安全路径 e→a→a→⋯,但选择 e→a 的是环境,控制器无法要求它配合。因此存在安全路径并不意味着存在安全策略。另一方面,若事先给定控制器 σ(s)=e,环境可产生 s→e→f→b;这个控制器验证失败,仍不妨碍综合找到另一个成功的控制器。

八状态例子:一次能到达仍然会被删除 ​

下面是独立于上面六状态安全图的 Büchi 图。令 F={g,f},完整的八点十三边为:

顶点 归属 全部后继 属于 F
g 控制器 u 是
u 环境 g,v 否
v 控制器 g 否
f 环境 f,t 是
s 控制器 s,f 否
t 控制器 t 否
r 环境 s,g 否
p 控制器 r,g 否

逐轮在剩余子图上重新计算,得到:

j Zj Yj Xj 删除 Dj
0 V V∖{t} {t} {t,f}
1 {g,u,v,s,r,p} {g,u,v,p} {s,r} {s,r}
2 {g,u,v,p} {g,u,v,p} ∅ 无,返回

首轮 s 能选 s→f 到达目标,r 的两种选择也都能到目标,所以它们暂时位于 Y0。但 f 由环境控制,可选 f→t,以后永不到目标;删除 f,t 后,s 只剩非目标自环,r 能被环境送到 s,第二轮便一起删除。

最终吸引秩为 r(g)=0、r(v)=r(p)=1、r(u)=2。控制器选择 g→u,v→g,p→g;环境在 u 不论选 g 还是 v,都会很快回到 g。失败反策略为 f→t,r→s:控制器在 s 若永远自环就从不访问目标;若选择 s→f,只得到一次目标访问,再进入 t。这里 s→f 正是从第二个删除层跳到第一个删除层。

若只要求待在安全集 {s},s→s 已是成功控制器;但若目标集不含 s,同一自环绝不满足 Büchi 条件。安全闭包保证不出错,反复到达还需要每次离开目标后的进度证书。

适用的模型范围 ​

总后继假设保证每次行动后还能继续执行,也排除了死端上全称条件的真空成立问题。如果允许死端,必须先约定无法行动的一方是否输、有限执行是否安全,或明确补自环;不同约定可能改变获胜区域。

这里处理完整观测、轮流行动的安全目标与单个 Büchi 目标。部分观测、同时行动、随机转移、多个响应义务等需要另行定义;不能把安全算法直接用于活性,也不能仅因两者都有位置策略就省去各自的正确性证明。

推论与应用

从全图扫描到线性队列算法 ​

直接逐轮扫描全部边计算 Wi+1,最多进行 O(|V|) 轮,每轮用 O(|V|+|E|) 时间。在每个顶点都有后继的显式图上 |E|≥|V|,故总时间为 O(|V||E|)。失败集合的增长方向允许进一步避免反复扫描。

预先建立每个顶点的反向邻接表 Pred(u)。令每个控制器顶点的计数器 remaining(v)=|Succ(v)|。把全部坏状态标为失败,赋秩零,放入先进先出队列;其余状态未标记。重复以下步骤,直到队列为空:

  1. 弹出 u,依次处理每条入边 v→u;若 v 已标记失败,跳过它。
  2. 若 v∈VE,立即标记 v,记录反策略边 v→u,赋 r(v)=r(u)+1,并将 v 入队。
  3. 若 v∈VC,将 remaining(v) 减一。减到零时,标记 v,赋 r(v)=r(u)+1,并将 v 入队。

对尚未标记的控制器顶点,计数器始终等于其尚未被弹出处理的后继数;这里的“尚未处理”包括已经入队但还没弹出的后继。每条边只在其目标弹出时扣一次,因此计数归零恰好表示所有后继都已有失败证书。环境顶点在第一次遇到失败后继时就得到所需的存在性见证。标记时即禁止重复入队,保证每个顶点只处理一次。

先进先出队列按非递减秩弹出:初始队列全是零;处理秩 k 的顶点时只会新增秩 k+1 的顶点,且把它们放在队尾。因此环境顶点第一次见到的是其失败后继的最小秩;控制器计数归零时处理的是其后继的最大秩。这恰好实现层数递推

r(v)={0,v∈B,1+minu∈Succ(v)∩Lr(u),v∈(L∖B)∩VE,1+maxu∈Succ(v)r(u),v∈(L∖B)∩VC.

所以队列给出的就是逐轮集合中的首次加入秩,而非任意编号。终止时未标记的环境顶点没有失败后继,未标记的控制器顶点至少还有一个未标记后继;这些顶点构成安全闭包。标记顶点则都有下降证书,故算法的输出与上面证明的 W,L 完全一致。最后扫描获胜控制器顶点的出边,为各顶点选一个仍在 W 的后继,即得到控制策略。

建立反向邻接表、处理队列与提取策略合计耗时 O(|V|+|E|),空间也是 O(|V|+|E|)。这个尺度针对已经展开的显式图;若图由布尔变量或程序紧凑表示,显式状态数可能随描述长度指数增长。

Büchi 算法的成本与证书 ​

一个吸引域可用上面的反向邻接表和计数器计算,只需交换玩家角色并把目标初始化为零层。在每轮重建剩余子图后,两次吸引计算都是 O(|V|+|E|);至多 |V| 次删除,故总时间为 O(|V||E|),这是总后继显式图下的直接上界。按轮释放工作数组,只为每个顶点保存其删除轮次、局部秩和策略边,空间为 O(|V|+|E|)。这个实现界没有声称是最优算法。

独立检查者可重放各轮集合,核验吸引层的存在/全称前驱条件;最终侧检查闭包及非目标秩下降,删除侧检查进入更早层或在本层下降、零层避开 F。因此输出包括能支撑无限行为论证的有限证书,而不只是一个获胜顶点列表。

综合输出的是可控不变式 ​

一个集合 J⊆S 若满足 J⊆CPre(J),便是可控不变集:控制器在自己的顶点有保留安全的选择,环境的全部选择都不能离开它。任意这样的 J 都包含于 W:从 J⊆W0 出发,若 J⊆Wi,则 J⊆S∩CPre(J)⊆Wi+1。所以 W 也是最大的可控不变集。

普通归纳不变式要求对系统全部转移封闭,可控不变集则只需对被选择的控制器边及全部环境边封闭。在例子中,W 允许控制器原本有一条 s→e 的出界边,因为综合策略不选它。固定获胜策略后,删去未被选择的控制器边,保留所有环境边,此时 W 就成为所得转移系统的普通归纳不变式。

模型检查检查给定控制器是否满足 ∀τ:Safe(v,σ,τ);综合则求解 ∃σ∀τ:Safe(v,σ,τ),并输出这个 σ。给定允许初态集合 I,可实现性等价于 I⊆W;否则任取 I∩L 中的初态,下降秩和环境反策略就给出不可实现证书。两类输出都可独立检查:获胜侧检查闭包,失败侧检查坏状态和严格下降的边条件。

参考资料

[1] Sebastian Muskalla, Games with Perfect Information, 2019, §4,pp. 42–48。吸引域、位置策略和前驱计数器算法;其中 pp. 47–48 给出线性时间实现。

[2] Felix Canavoi, Erich Grädel, Simon Leßenich, and Wied Pakusa, “Defining Winning Strategies in Fixed-Point Logic”, LICS, 2015, §III,pp. 369–370。以最大不动点刻画安全闭包,以最小不动点的阶段秩提取到达目标的策略。

[3] Krishnendu Chatterjee, Thomas A. Henzinger and Nir Piterman, “Algorithms for Büchi Games”, 2008,§§2–3.1,尤其 Algorithm 1 与 Theorem 2。本文使用该经典算法的保留集表示,并展开双方策略的秩证明。

关系图谱8 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系