在网上发现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. Dynamic\Static\IsKinematic

    1.Dynamic: 有Collider和RigidBody的GameObject, Unity视之为Dynamic. 适用于经常变换移动的对象. 2.Static: 只含有Collider的Game ...

  2. 第一次知道Winform的窗体之间传值怎么写,分享给小白~

    之前为了这事,百度了一天也没找到,最终使用了静态变量了. 窗体Form1: private void button1_Click(object sender, EventArgs e) { var f ...

  3. android opencv 人脸检测

    转载自http://blog.csdn.net/jesse__zhong/article/details/24889709 .......省略包 public class Staticdetectio ...

  4. Google Protocol Buffer

    Google Protocol Buffer(protobuf)是一种高效且格式可扩展的编码结构化数据的方法.和JSON不同,protobuf支持混合二进制数据,它还有先进的和可扩展的模式支持.pro ...

  5. 转....导入excel错误:外部表不是预期的格式 解决方案

    环境:win7+iis7+Office2007 在asp.net网站中导出Excel文件后,再把文件导入到数据库中. 读取Excel文件时,打开连接出错. 错误为:外部表不是预期的格式 解决:检查了一 ...

  6. Contoso 大学 - 10 - 高级 EF 应用场景

    原文 Contoso 大学 - 10 - 高级 EF 应用场景 By Tom Dykstra, Tom Dykstra is a Senior Programming Writer on Micros ...

  7. makefile--编码修改-空格出现错误

    "makefile", line 40: make: 1254-055 Dependency line needs colon or double colon operator. ...

  8. Poj OpenJudge 百练 1573 Robot Motion

    1.Link: http://poj.org/problem?id=1573 http://bailian.openjudge.cn/practice/1573/ 2.Content: Robot M ...

  9. [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组

    1.数组基础 1.什么是数组:           同一类型数据的集合,就是一个容器. 2.数组的好处:           可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式:  (一 ...

  10. Centos6.5网络无法连接问题

    1. 先进入对应文件夹: cd /etc/sysconfig/network-scripts/ 2.获取root权限: su     然后输入root密码 3.修改ifcfg-eth0 vi ifcf ...