在网上发现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的更多相关文章

  1. 读书笔记 (二) ———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 分布式受限优化 ...

  2. 2016/2/13 《计算机系统要素》(The Elements of Computing Systems)读书笔记(1)

    过年期间一直在啃一本书,学习计算机组成原理. 这是一本很棒的书,是一个基于项目的学习过程.可以让人理解的很深刻. coursera上有这本书前半部分的教程,是由书的作者团队们开的课,个人认为很棒,可惜 ...

  3. 图解TCP/IP读书笔记(一)

    图解TCP/IP读书笔记(一) 第一章 网络基础知识 本学期的信安概论课程中有大量的网络知识,其中TCP/IP占了相当大的比重,让我对上学期没有好好学习计算机网络这门课程深感后悔.在老师的推荐下开始阅 ...

  4. 【Tools】Pro Git 一二章读书笔记

    记得知乎以前有个问题说:如果用一天的时间学习一门技能,选什么好?里面有个说学会Git是个很不错选择,今天就抽时间感受下Git的魅力吧.   Pro Git (Scott Chacon) 读书笔记:   ...

  5. 【读书笔记与思考】《python数据分析与挖掘实战》-张良均

    [读书笔记与思考]<python数据分析与挖掘实战>-张良均 最近看一些机器学习相关书籍,主要是为了拓宽视野.在阅读这本书前最吸引我的地方是实战篇,我通读全书后给我印象最深的还是实战篇.基 ...

  6. 【读书笔记】《Computer Organization and Design: The Hardware/Software Interface》(1)

    笔记前言: <Computer Organization and Design: The Hardware/Software Interface>,中文译名,<计算机组成与设计:硬件 ...

  7. [Git00] Pro Git 一二章读书笔记

    记得知乎以前有个问题说:如果用一天的时间学习一门技能,选什么好?里面有个说学会Git是个很不错选择,今天就抽时间感受下Git的魅力吧.   Pro Git (Scott Chacon) 读书笔记:   ...

  8. 《Unix编程艺术》读书笔记(1)

    <Unix编程艺术>读书笔记(1) 这两天開始阅读该书,以下是自己的体会,以及原文的摘录,尽管有些东西还无法全然吃透. 写优雅的代码来提高软件系统的透明性:(P134) Elegance ...

  9. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

随机推荐

  1. 【转】ora-00031:session marked for kill(标记要终止的会话)解决方法

    今天碰到一个问题,有一张表不能操作,很可能是被锁了,首先想到的是kill session,于是执行了下列的脚本找到是哪个session有问题: select object_name, machine, ...

  2. css3 选择器记

    css3 选择器 根据所获取页面中元素的不同,把css3选择器分为五大类: 基本选择器 层次选择器 伪类选择器 动态伪类选择器 目标伪类选择器 语言伪类选择器 UI元素状态伪类选择器 结构伪类选择器 ...

  3. Javascript之改变盒子颜色

    index.html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  4. ASP.NET WEB API 初探

    本文初步介绍如何简单创建一个ASP.NET Web Api 程序. Web Api 顾名思义就是一个Api接口,客户端可调用此接口进行业务操作.此类应用与 ASP.NET  web服务(即使用扩展名. ...

  5. 编辑器笔记——sublime text3 编译sass

    如已经安装sass 和 sass build两个插件到ST,command+b编译也没有问题,那么另外安装koala,在koala中引入你要编辑的sass,并把该sass文件设置为自动编译,那么用ST ...

  6. 通过Curator操作Zookeeper的简单例子代码

    Curator主要解决了三类问题: 一个是ZooKeeper client与ZooKeeper server之间的连接处理; 一个是提供了一套Fluent风格的操作API; 一个是ZooKeeper各 ...

  7. [zz] 安装PostGIS(Linux篇)

    0.安装PostgreSQL数据库 参考安装PostgreSQL数据库(Linux篇). 1.安装proj4 #tar zxvf proj-4.8.0.tar.gz#cd proj-4.8.0#./c ...

  8. CentOS 6,7最小化安装后再安装图形界面

    CentOS 6.2最小化安装后再安装图形界面 在安装CentOS 6.2时发现它没有提示我要怎么安装,而是“自作主张”地给我选择了最小化安装,结果装完之后只有终端界面,因为有时候不得不用图形界面,所 ...

  9. Jquery ajax basic

    $.ajax({ url: "test.aspx?action=testaction", contentType: "application/json; charset= ...

  10. @+id/和android:id的区别

    android:id="@+id/btn",表示在R.java文件里面新增一个id为btn的控件索引,最常用的一种声明控件id的方式.android:id="@andro ...