在网上发现Prof. Jose M Vidal用NetLogo仿真Multi-agent system的视频,随后下载他的著作Fundamentals of Multiagent Systems with NetLogo Examples进行学习。
这让我回想起来小学时候学习的LOGO语言,小乌龟爬啊爬。。。
Prof. Vidal的个人网址:jmvidal.cse.sc.edu/
相关资料的下载地址: jmvidal.cse.sc.edu/talks/
视频地址: www.youtube.com/user/jmvidal010
________________________________________________________________
第一章 问题描述
多智能体的研究旨在设计由多个自主智能体构成的复杂系统,每个智能体只具有有限能力,只能处理局部信息,但可以协作完成全局目标。
多智能体的研究可以视作蚁群、经济学与免疫系统的逆向工程,依靠博弈论、经济学以及生物学手段处理问题。研究算法来源与人工智能研究,包括规划、推理、搜索以及机器学习。
模型在诸多研究中最受关注,主要建模为“效能最大化器” (utility maximizers),内含马尔科夫决策过程。书中将主要介绍两类智能体,Deductive 与 Inductive,分别表示依靠逻辑推理或机器学习技术给出推断。
1、效能 (utility)
效能函数 u_i: S -> R 状态的方程,输出为实数,用于表示智能体可以感知 (perceive) 状态S获得的收益。在博弈论中效能方程为 von Neumann-Morgenstern函数
智能体的效能方程具备可比较的性质,具体包括
1)自反 u_i(s)>=u_i(s)
2) 传导 u_i(a)>=u_i(b) && u_i(b)>=u_i(c) ==> u_i(a)>=u_i(c)
3) 可比较 任意a,b u_i(a)>=u_i(b) 或 u_i(a)>=u_i(a)
形成序列称为 偏好序 (preference ordering)
每个智能体都假设是自私的 (selfish), 希望自己的效能函数最大化。
效能函数可以用于表示智能体的行为,或者表示推断或行为后的结果。效能函数保证可比较,对各种不同状态提供统一评价指标,使得智能体可以对不同的信息进行权衡。
1.1效能函数不可以直接和效益挂钩。
1.2期望效能
agent通过采取不同动作进入到新的状态,但现实世界中,传感器与作动器噪声导致智能体只能估计出执行动作后到达新状态的概率
状态转移方程 (transition function) T(s,a,s')给出了agent从状态s执行动作a到达状态s'的概率。显然对所有a,s'的T求和为1。
期望效能定义为agent在状态s采取行动a获得的收益期望。
E[u_i,s,a]=SIGMA_(s'/in S) T(s,a,s')u_i(s')
信息价值 (value of information)
用于描述获得新信息后,对期望效能的影响
E_new-E_old
2、马尔科夫决策过程 MDP
定义:MDP由包含初始状态的状态集,状态转移方程与收益函数构成
确定 (deterministic)
任意状态s,给定动作a到达其他状态的结果可预测,确定为状态集中某一确定s'
非确定 (non-determistic)
目标状态不确定,根据固定的概率函数决定。
策略 (policy)
agent根据状态选择的动作 可以视作从状态到动作的方程 用/pi来表示
最优策略
agent目标在于找到使得期望效能最大的策略,也被称作最大期望效能原理
/pi_i^*(s)=argmax_(a/in A) E[u_i,s,a]
收益衰减 (discounted rewards)
究竟应该执行很多步去换一个big收益,还是应该积跬步得到相同的收益。显然agent不会永远的等待,也往往坚持不到最后。但可以适当放弃小利益,谋求几步以后的大回报。可以采用收益衰减的方式,降低远远未来的收益影响。即将收益因子(1>gamma>0)与未来收益相乘。
gamma^0*r(s_1)+gamma^1*r(s_1)+gamma^2*r(s_3)+/cdots
Bellman Equation
由此定义agent在状态s的效能为
u(s)=r(s)+gamma*max_a ( Sigma_s' (T(s,a,s')*u(s')))
值迭代 (value iteration;动态规划的实例
u^t+1(s)=r(s)+gamma*max_a ( Sigma_s' (T(s,a,s')*u(s')))
不断迭代,是的u趋向最终值。当两次迭代之间的值小于 /epsilon(1-gamma)/gamma时,误差小于/epsilon
2.1 多智能体MDP
T(s,a_arrow,s') a_arrow 代表所有智能体的动作
2.2 部分可观MDPs
置信状态 (belief state)
agent可能无法完全确认当前状态,只能保证当前在某个状态的概率。
观测模型(observation model)
O(s,o)给出agent在状态s观测到o的概率?
可以用来对agent采取动作a后的置信状态估计。
b_new_arrow(s') = alpha*O(s',o) Sigma(T(s,a,s')b_old_arrow(s))
alpha 是归一化常数 保证置信状态向量和为1,即所有状态的概率为1。
部分可观MDPs
状态转移方程 (从当前置信状态到其他置信状态的概率)
tal(b,a,b') = Sigma(O(s',o)) * Sigma(T(s,a,s')b_old_arrow(s)) if b_new_arrow(s)>0
收益函数
p(b_arror)=Sigma_s (b_arrow(s)r(s))
3 规划
人工智能规划
由MDP的状态转移方程变为各agent的操作“operator”使得状态以概率1或0到达其他状态。
现代规划算法依赖图形描述问题,最终将问题转换为MDP的形式并解决。
3.1 启发式规划
介绍两种算法
分治法 将原问题分成一堆相似小问题,递归解决
启发式学习 将状态分层一堆小状态,随后用于MDP