多智能体序贯问题与状态不确定性探索
1. 序贯问题中的Nash Q - learning
在多智能体系统中,Nash Q - learning是一种重要的算法。智能体通过维护一个联合动作价值函数Q(s, a)来进行学习。每次状态转移后,会根据从该价值函数构建的简单博弈计算的Nash均衡来更新这个动作价值函数。
具体来说,在联合动作a使状态从s转移到s′后,会构建一个与原博弈有相同智能体数量和联合动作空间的简单博弈,但其奖励函数等于s′的估计值,即R(a′) = Q(s′, a′)。智能体接着计算下一个动作a′的Nash均衡策略π′,在该策略下,后继状态的期望效用为:
[U(s′) = \sum_{a′} Q(s′, a′) \prod_{j∈I} π_j′(a_j′)]
然后智能体更新其价值函数:
[Q(s, a) ← Q(s, a) + α [R(s, a) + γU(s′) - Q(s, a)]]
其中学习率α通常是状态 - 动作计数的函数,即(α = 1 / \sqrt{N(s, a)})。
为确保所有状态和动作都能被充分尝试,与常规Q - learning一样,需要采用探索策略。在算法25.9中,智能体遵循ε - 贪心策略。以概率(ε = 1 / \sum_{a}(N(s, a)))随机均匀选择一个动作,否则使用Nash均衡的结果。
以下是Nash Q - learning的代码实现:
mutable struct NashQLearning
𝒫 # Markov game
i # agent index
超级会员免费看
订阅专栏 解锁全文
1336

被折叠的 条评论
为什么被折叠?



