读书笔记 (一) ———Fundamentals of Multiagent Systems with NetLogo Examples by Prof. Jose M Vidal
在网上发现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
读书笔记 (一) ———Fundamentals of Multiagent Systems with NetLogo Examples by Prof. Jose M Vidal的更多相关文章
- 读书笔记 (二) ———Fundamentals of Multiagent Systems with NetLogo Examples by Prof. Jose M Vidal
chapter 2 分布式约束1 分布式约束满足 1.1 过滤算法 1.2 基于归结的调和算法 consistency 1.3 异步回溯 1.4 异步弱承诺? 1.5 分布式突破?2 分布式受限优化 ...
- 2016/2/13 《计算机系统要素》(The Elements of Computing Systems)读书笔记(1)
过年期间一直在啃一本书,学习计算机组成原理. 这是一本很棒的书,是一个基于项目的学习过程.可以让人理解的很深刻. coursera上有这本书前半部分的教程,是由书的作者团队们开的课,个人认为很棒,可惜 ...
- 图解TCP/IP读书笔记(一)
图解TCP/IP读书笔记(一) 第一章 网络基础知识 本学期的信安概论课程中有大量的网络知识,其中TCP/IP占了相当大的比重,让我对上学期没有好好学习计算机网络这门课程深感后悔.在老师的推荐下开始阅 ...
- 【Tools】Pro Git 一二章读书笔记
记得知乎以前有个问题说:如果用一天的时间学习一门技能,选什么好?里面有个说学会Git是个很不错选择,今天就抽时间感受下Git的魅力吧. Pro Git (Scott Chacon) 读书笔记: ...
- 【读书笔记与思考】《python数据分析与挖掘实战》-张良均
[读书笔记与思考]<python数据分析与挖掘实战>-张良均 最近看一些机器学习相关书籍,主要是为了拓宽视野.在阅读这本书前最吸引我的地方是实战篇,我通读全书后给我印象最深的还是实战篇.基 ...
- 【读书笔记】《Computer Organization and Design: The Hardware/Software Interface》(1)
笔记前言: <Computer Organization and Design: The Hardware/Software Interface>,中文译名,<计算机组成与设计:硬件 ...
- [Git00] Pro Git 一二章读书笔记
记得知乎以前有个问题说:如果用一天的时间学习一门技能,选什么好?里面有个说学会Git是个很不错选择,今天就抽时间感受下Git的魅力吧. Pro Git (Scott Chacon) 读书笔记: ...
- 《Unix编程艺术》读书笔记(1)
<Unix编程艺术>读书笔记(1) 这两天開始阅读该书,以下是自己的体会,以及原文的摘录,尽管有些东西还无法全然吃透. 写优雅的代码来提高软件系统的透明性:(P134) Elegance ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
随机推荐
- 软件设计师考试计算机系统知识——CPU
第一章: 计算机系统知识 1.1.1计算机系统硬件的基本组成 运算器.控制器.存储器.输入设备.输出设备 1.1.2 中央处理器 ①CPU的功能: a.程序控制:CPU通过执行指令来控制程序执行的顺序 ...
- Unity3d发布错误:could not allocate memery:system out of memery!
可能出现的原因: 1.项目太大了2.项目坏了3.资源坏了4.单个资源定点数超了e. 解决办法:删除了一些模型.是模型太大,面数.顶点数太多的原因. Unity3d里查看模型的顶点数 展开fbx ...
- AjaxPro使用方法
无意中看到同事用AjaxPro用,看到很不错,特长是前后台传输数据特别方便. 最好的教材就是拿到就可以用,方便大家. 以前数据传输用FORM提交,或者在前台用JASON拼接然后通过AJAX方式提交.总 ...
- C#中 多线程执行含有返回值的函数
C# 中,传统的多线程并不支持多线程执行含有返回结果的函数.虽然可以通过制作外壳类来使得返回结果得以保留,但如果一定时间内函数未执行完,简单的外壳类可能就无法满足需求了. class netHelpe ...
- 20141016--for 兔子
Console.Write("请输入月数:"); int m =int.Parse(Console.ReadLine()); ;//成兔对数ct ;//小兔对数xt ;//幼兔对数 ...
- host文件的作用和介绍
在Window系统中有个Hosts文件(没有后缀名)在Windows98系统下该文件在Windows目录,在Windows2000/XP系统中位于C:\Winnt\System32\Drivers\E ...
- Qt学习总结-ui篇(二)
qccs定义圆角 border-radius:10px; 如果想给特定位置定义圆角,如: 左上角:border-left-top-radius:10px; 右下角色:border-right-bo ...
- Java多线程(六) 线程系列总结
多线程系列终于终结得差不多,本人对该系列所做的总结大致如下: 线程锁模块耗费了大量的时间,底层的AQS实现比较复杂.仍然没有时间总结源码部分,能够坚持写下这么几个篇幅的内容真心佩服自己....希望继续 ...
- Geographic Coordinate Systems
Coordinate Systems Geographic Coordinate Systems This is an archive of a previous version of the Arc ...
- DTCMS清除 &
DTcms.Common\Utils.cs #region 清除HTML标记 public static string DropHTML(string Htmlstring) 中的 Htmlstrin ...