证明:使用代理单步行为后的状态差异无法让分布式代理找出合理策略

本文最后更新于 2025年8月20日 晚上

对代理状态差异方法的解释

我们把一个代理aa在世界状态序列为w\vec{w}的justified perspective world写为fa(w)f_a(\vec{w}),在代理aa的观点中,代理bb在世界状态为ww的justified perspective world写为fb(fa(w))f_b(f_a(\vec{w}))。另外,一个问题模型的所有时间戳下的世界状态集合为wn={w0,w1,w2,...,wn}\vec{w_n} = \{w_0, w_1, w_2, ..., w_n\}

在某个代理aa执行一个行为actA(a,w)act \in A(a,w)后,所带来的下一个世界状态w=f(act,w)w'=f(act, w)。此处ww'代表在ww世界下进行actact行为后所抵达的世界状态。

所谓代理状态差异,便是其他代理在代理aAgta\in Agt做出行为actact后,根据diffw,w(fi,a)fa(fi(w))fa(fi(w))G,iAgtdiff_{w,w'}(f_{i,a}) \subseteq f_a(f_{i}(\vec{w'})) - f_a(f_{i}(\vec{w})) \subset G, i \in Agt的内容来判断代理ii相信aa做出行为actact的目的有哪些,并以此让代理ii在下一次轮到自己的行动回合时所纳入考虑的B(Gi)B(G_i)

证明

假如当前问题中有四个房间

graph LR

a(1) <--> b(2)
b <--> c(3)
b <--> d(4)

代理a在1,b在3,a要去3,b要去1。假设代理知道环境中的所有内容,但是不知道对方要去哪里。思考如何用去中心化的方式解决这个问题,要求:

  • 代理之间不能沟通,交换任何信息
  • 代理在完成目标时可以发出完成的信号

首先例举出aa认为的所有可能的目标组合:

Ga:Baloc(a)=3Gb:{Bbloc(b)=1Bbloc(b)=2Bbloc(b)=4Bbloc(a)=3G_a: B_a loc(a) = 3\\ G_b: \left \{ \begin{array}{} B_bloc(b) = 1 \\ B_bloc(b) = 2 \\ B_bloc(b) = 4 \\ B_bloc(a) = 3 \end{array}\right.

以上通过组合后,会得到7个不同的Goal settings:

Ga:Baloc(a)=3Gb:{1.{Bbloc(b)=12.{Bbloc(b)=23.{Bbloc(b)=44.{Bbloc(a)=35.{Bbloc(b)=1Bbloc(a)=36.{Bbloc(b)=2Bbloc(a)=37.{Bbloc(b)=4Bbloc(a)=3G_a: B_aloc(a) = 3\\ G_b: \left \{ \begin{array}{} 1. \left\{\begin{array}{} B_bloc(b) = 1 \end{array}\right.\\ 2. \left\{\begin{array}{} B_bloc(b) = 2 \end{array}\right.\\ 3. \left\{\begin{array}{} B_bloc(b) = 4 \end{array}\right.\\ 4. \left\{\begin{array}{} B_bloc(a) = 3 \end{array}\right.\\ 5. \left\{\begin{array}{} B_bloc(b) = 1 \\ B_bloc(a) = 3\end{array}\right.\\ 6. \left\{\begin{array}{} B_bloc(b) = 2 \\ B_bloc(a) = 3\end{array}\right.\\ 7. \left\{\begin{array}{} B_bloc(b) = 4 \\ B_bloc(a) = 3\end{array}\right.\\ \end{array}\right.

b认为所有的目标组合与a的类似:

Gb:Bbloc(b)=1Ga:{Baloc(a)=2Baloc(a)=3Baloc(a)=4Baloc(b)=1G_b: B_b loc(b) = 1\\ G_a: \left \{ \begin{array}{} B_aloc(a) = 2 \\ B_aloc(a) = 3 \\ B_aloc(a) = 4 \\ B_aloc(b) = 1 \end{array}\right.

同样会有7个不同的Goal settings:

Gb:Bbloc(b)=1Ga:{1.{Baloc(a)=22.{Baloc(a)=33.{Baloc(a)=44.{Baloc(b)=15.{Baloc(a)=2Baloc(b)=16.{Baloc(a)=3Baloc(b)=17.{Baloc(a)=4Baloc(b)=1G_b: B_bloc(b) = 1\\ G_a: \left \{ \begin{array}{} 1. \left\{\begin{array}{} B_aloc(a) = 2 \end{array}\right.\\ 2. \left\{\begin{array}{} B_aloc(a) = 3 \end{array}\right.\\ 3. \left\{\begin{array}{} B_aloc(a) = 4 \end{array}\right.\\ 4. \left\{\begin{array}{} B_aloc(b) = 1 \end{array}\right.\\ 5. \left\{\begin{array}{} B_aloc(a) = 2 \\ B_aloc(b) = 1\end{array}\right.\\ 6. \left\{\begin{array}{} B_aloc(a) = 3 \\ B_aloc(b) = 1\end{array}\right.\\ 7. \left\{\begin{array}{} B_aloc(a) = 4 \\ B_aloc(b) = 1\end{array}\right.\\ \end{array}\right.

推演步骤

  1. 首先是aa行动,由于a对b的目标没有信念,所以a只会将b的目标设为与自己相同,因此,此时a在进行local planning的时候使用的goal set为:

G_a: &B_a loc(a) = 3\\ G_b: &B_b loc(a) = 3

​ 此时,a在经过BFS算法之后得出自己此时最优的策略为staystay,故,a会选择staystay

  1. aastaystay之后,其他代理会本地地算出diff(fi,a)diff(f_{i,a}),由于本问题只有a和b两个代理,因此只需要算diffw,w(fb,a)diff_{w,w'}(f_{b,a})。很明显可以看到,staystay没有将世界状态发生任何变化,因此b没有更新本地的目标信念。

  2. 现在是bb行动,b对a的目标同样没有信念,因此接下来的方法与a相同,b此时的goal set为:

    G_a: &B_aloc(b) = 1\\ G_b: &B_bloc(b) = 1

    此时b在经过BFS算法后也得出自己此时最优的策略为staystay,故,b会选择staystay

  3. 不难看出,该过程会一直循环下去,卡主不动。

因此,该方法并无法保证能够找到目标路径,会出现死循环的现象。


证明:使用代理单步行为后的状态差异无法让分布式代理找出合理策略
http://example.com/2025/08/02/Decentralized-Epistemic-Planning/证明:使用代理单步行为后的状态差异无法让分布式代理找出合理策略/
作者
Clain Chen
发布于
2025年8月2日
许可协议