本文最后更新于 2025年8月20日 晚上
对代理状态差异方法的解释
我们把一个代理a在世界状态序列为w的justified perspective world写为fa(w),在代理a的观点中,代理b在世界状态为w的justified perspective world写为fb(fa(w))。另外,一个问题模型的所有时间戳下的世界状态集合为wn={w0,w1,w2,...,wn}。
在某个代理a执行一个行为act∈A(a,w)后,所带来的下一个世界状态w′=f(act,w)。此处w′代表在w世界下进行act行为后所抵达的世界状态。
所谓代理状态差异,便是其他代理在代理a∈Agt做出行为act后,根据diffw,w′(fi,a)⊆fa(fi(w′))−fa(fi(w))⊂G,i∈Agt的内容来判断代理i相信a做出行为act的目的有哪些,并以此让代理i在下一次轮到自己的行动回合时所纳入考虑的B(Gi)。
证明
假如当前问题中有四个房间
graph LR
a(1) <--> b(2)
b <--> c(3)
b <--> d(4)
代理a在1,b在3,a要去3,b要去1。假设代理知道环境中的所有内容,但是不知道对方要去哪里。思考如何用去中心化的方式解决这个问题,要求:
- 代理之间不能沟通,交换任何信息
- 代理在完成目标时可以发出完成的信号
首先例举出a认为的所有可能的目标组合:
Ga:Baloc(a)=3Gb:⎩⎨⎧Bbloc(b)=1Bbloc(b)=2Bbloc(b)=4Bbloc(a)=3
以上通过组合后,会得到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)=3
b认为所有的目标组合与a的类似:
Gb:Bbloc(b)=1Ga:⎩⎨⎧Baloc(a)=2Baloc(a)=3Baloc(a)=4Baloc(b)=1
同样会有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)=1
推演步骤
- 首先是a行动,由于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算法之后得出自己此时最优的策略为stay,故,a会选择stay
-
a在stay之后,其他代理会本地地算出diff(fi,a),由于本问题只有a和b两个代理,因此只需要算diffw,w′(fb,a)。很明显可以看到,stay没有将世界状态发生任何变化,因此b没有更新本地的目标信念。
-
现在是b行动,b对a的目标同样没有信念,因此接下来的方法与a相同,b此时的goal set为:
G_a: &B_aloc(b) = 1\\
G_b: &B_bloc(b) = 1
此时b在经过BFS算法后也得出自己此时最优的策略为stay,故,b会选择stay
-
不难看出,该过程会一直循环下去,卡主不动。
因此,该方法并无法保证能够找到目标路径,会出现死循环的现象。