制作自己的智能体

在Anylogic中有很多模块,但是如果是想要一个自己需要的模块或者是实现与这些模块功能完全不同的模块因该怎么弄呢?

首先建立你自己的智能体

有过Anylogic学习的读者大多应该都建立过简单的工作人员的智能体,如最开始的银行排队的智能体,当然除了这样简单的实现人物展示的功能以外,还可以实现和Anylogic模块功能一样或者更强的模块。
在建立这样的模块的第一步都是建立一个新的智能体
在Agent库里有一个Agent,将其拖入Main里面,就会出现如下的图像:

这个图像表示你要建立的智能体的种类:智能体群、单个智能体和智能体类型。
那么这三种分别代表什么呢?
智能体群代表你要建立一个包含某种智能体的群体,其实就是创建一个储存智能体的一个链表。
单个智能体就是建立一个智能体。
智能体类型就是建立一个新的智能体的类型。
这三个的区别和相同点是什么呢?
首先,这里最大的区别是前面两个都会建立在Main里面建立智能体实体,而智能体类型只会建立一个智能体类型,这个智能体的类型并不会在任何地方创建实体。
如果把建立智能体比作建房子,前两个就是建立设计加建房,而最后一个只是进行设计。
其次,其实这三个本质上是一样的都是可以建立新的智能体,只不过前面两个比后面一个多进行了几步,这些都可以在之后进行改变,也就是说这三个在建立以后是可以进行转换的。
文章的重点不是这个,如果有兴趣可以继续关注我,我会在后面写一篇文章详细的讲一下我的理解。

这里我选择建立后面两种
步骤如下:
1、建立智能体类型
选择Agent type only

然后出现如下的选择框:

你可以选择不同的名字,这里我就使用这个名字,其它的不要改动,选择Next
然后就会出现如下的框:

这个框是创建智能体动画的,你可以直接选择你想要的3D或者是2D的动画直接创建也可以选择None先不创建任何动画。
在这里我选择不创建,因为我要在后面自己定义,然后点击Next。
出现如下的框:

这个是创建智能体的参数,点击add new 就可以添加你需要的参数。同样的,由于本文想要在后面建立,这里直接点击Finish不建立任何参数。
然后我们就可以看见在工程树下面会添加一个新的智能体MyAgent,并且Main里面没有任何的智能体。

然后我们双击工程树里面新创建的智能体MyAgent,进入智能体内部。里面是空白的,我们可以根据自己的智能体需求添加需要的元素。

对于这个类型的智能体,我将他设定为一个人:
它只需要完成最简单的功能——展示人的3D模型。
所以说,这个智能体代表的类型就是人,它只能实现人的3D模型展示。
但是到目前为止我只是建立了一个空的智能体类型,并没有在建立的过程中添加任何其它的东西。
为了实现我之前所说的3D展示的,我需要在这个空的智能体里面加入一些东西:

为智能体添加3D模型

在Anylogic的库(Palette)中有一个3D Objects 库,里面有各种领域的3D模型。找到People ,在里面的3D模型随便选一个你喜欢的人物模型,拖入MyAgent里面。

然后会出现下面的窗口,yes和no都可以,我选择了no。

选择完了以后,在MyAgent里面出现了一个3D人的模型。你点击一下这个人的模型,在Anylogic的右边会有一个Properties的菜单,这里可以对该3D模型的各种属性进行设置。
首先是名字(Name),你可以根据功能和爱好进行设置,比如说这里可以设置为3Dbody表示3D实体,
然后是三个选择方框,Ignore、Visible on upper agent 、Lock
Ignore代表忽视,简单的说就是忽视它的存在,相当于将其注释,在运行的时候就相当于没有建立。这个很方便,如果你想去掉模型中的某个东西,但又不想删除,害怕自己以后会用到就可以勾选这个选项,
Visible on upper agent 就是说 是否可以在上层的智能体里面看见,举个例子来说就是,比如我将这个智能体添加到main里面,main是一个智能体,MyAgent是它里面的智能体,要是想让这个人的3D在main里面显示就需要勾选这个选项。
Lock 就是锁定,当勾选了这个选项了以后就没办法修改了。你可以试一试,勾选了这个选项以后随便点一下Anylogic的其它位置,然后你再去选择这个时就发现选不上了。这时候你想要再选择这个的时候就需要到工程树里面,在MyAgent的Presentation的Level找到它,点击它把Lock去掉。
Visible 选项是指在运行时是否可见。
File 是指 该3D模型的源文件,这个文件在你将3D模型添加到你的模型里面时,会被复制到你的工程文件夹的3d里面你可以在你建立的工程文件夹里面去看一下。如果你将该文件架删除时,3D模型就会因为没有源文件出现问题,什么样的问题你可以操作试一下。
根据这个我们发现其实也可以添加一些3D库里面没有的3D模型,只要有3D源文件就可以设定为任意的3D模型。当然其实Anylogic是有这样的空白的选项让你定义自己的3D模型的。
在Presentation里面3D菜单栏 有一个3D Object将这个拖入你的智能体里面然后为其指定你的3D源文件就可以进行完成你的3D模型了。添加了的图在下面,你可以把这个与删除了3d文件夹的模型对比一下。
File 下面又是一个选择方框,是不是感觉似曾相识? 这个就是之前在将3D模型添加到智能体的选择方框,如果想修改之前的选择就可以在这修改,但是这个到底是什么意思呢? 其实这个就是说3D模型是否会随着模型的比例尺进行自动变化。
Additional scale 就是修改3D模型的比例,就是修改大小。
Orientation 就是朝向,默认是垂直站在桌面方向的(第一个)
后面的就不细讲了,讲一下现在需要用到的——Position。


Position 是对3D模型位置的设定:
Level 是指层,有的模型会建立多层的模型,Level可以设置位于的层
x,y,z就是模型位于的位置。
这个位置指的是,3D模型在智能体的位置,不是 upper agent(上层智能体)的位置,而智能体在上层智能体的展示是关于其坐标原点对称的,所以如果想要让智能体对称的出现在上层智能体,就需要按照原点建立,在标轴上原点就是位于(0,0,0)的位置
Rotation Z,°就是围绕Z轴旋转,可以设置人物的朝向。
这里将x,y,z 设置为(0,0,0),让其位于原点上。

然后回到main里面为MyAgent添加一些活动:

在Pedestrian里面添加一个pedSource,一个pedGoTo ,一个pedSink。 如下图

然后添加两根TarLine 如下图:

然后分别在pedSource和pedGoTo的Tar Line 添加 target和target1
然后设置pedSource的New Pedstrian 为我们之前建立的MyAgent
最后为我们的模型添加一个3D展示窗口
在Presentation 里面将3D window 拖入main里面

然后运行,开始运行,向下滑动页面或者在右边的窗口选择3Dwindow就可一看见人移动,如果看不见可以滑动鼠标试一试。

在Anylogic建立自己的智能体相关推荐

  1. 利用AnyLogic软件搭建多智能体模型验证Lanchester方程线性律和平方律

    利用AnyLogic软件搭建多智能体模型验证Lanchester方程线性律和平方律 写在前面 这篇文档是一篇备忘文档.记录了我使用AnyLogic搭建智能体群,并用其验证Lanchester方程线性律 ...

  2. WSDM 2022 | 一种用于在线广告自动竞价的协作竞争多智能体框架

    丨目录: · 摘要 · 背景 · 基础概念 ·  IL的行为分析 · 我们的方法 · 实验 · 总结 · 参考文献 ▐ 摘要 在在线广告中,自动竞价已经成为广告主优化自身广告性能的必需工具,自动竞价允 ...

  3. 读书笔记 - 智能体技术在城市交通信号控制系统中应用综述2014

    <智能体技术在城市交通信号控制系统中应用综述>-2014 文中综述了智能体技术在交通信号控制系统中应用的技术与方法,包括系统架构.控制算法.建模与仿真,以及智能交通集成管理等方面:以及具体 ...

  4. 【Nature重磅】OpenAI科学家提出全新强化学习算法,推动AI向智能体进化

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 编辑:DeepRL 近年来,人工智能(AI)在强化 ...

  5. 定制语音代理(智能体)的背后是什么?

    定制语音代理(智能体)的背后是什么? What's behind the move to custom voice agents? 自动化是未来的发展方向.生活在一个现在的时代,希望所有的事情都能迅速 ...

  6. 《强化学习周刊》第40期:PMIC多智能体强化学习、Lazy-MDPs、CTDS

    No.40 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<强化学习周刊>已经开启"订阅功能",以后我们会向您自动推送最 ...

  7. 《强化学习周刊》第39期:近似最优深度、多智能体广义、角色动画强化学习...

    No.39 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<强化学习周刊>已经开启"订阅功能",以后我们会向您自动推送最 ...

  8. 《预训练周刊》第35期:零样本规划器的语言模型:为智能体提取可操作的知识、LaMDA:对话应用的语言模型...

    No.35 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 本期周刊,我们选择了13篇预训练相关的论文,涉及动作规划.大模型改进.网络结构.零样本学习.对话模型.视频理解.机器翻译. ...

  9. 强化学习教父Richard Sutton新论文探索决策智能体的通用模型:寻找跨学科共性...

    来源:机器之心 本文约5200字,建议阅读10+分钟 论文虽然有些难懂,但或许是一个新的研究方向. 强化学习和决策多学科会议(Multi-Disciplinary Conference on Rein ...

  10. 深度学习也利用进化论!李飞飞谈创建具身智能体,学动物进化法则

    今年早些时候斯坦福李飞飞教授等人的研究「深度进化强化学习」有了突破,首次证明了「鲍德温效应」.最近李飞飞带着研究团队做客Bio Eats World访谈,AI智能体也可以很快学会动物的这种智能行为,但 ...

最新文章

  1. Linux内核探讨-- 第五章
  2. Fedora下校园网上网指南(802.1xDrcom)
  3. vb调用vc dll
  4. 转发一个深度、实用的技术帖——实现ADM3251E与3.3V系统的RS-232接口隔离
  5. Python报错:IndentationError: expected an indented block
  6. Spring JdbcTemplate查询实例
  7. 一文带你看懂分布式软总线在家庭场景的应用
  8. xss植入_前端安全之XSS攻击
  9. 界面设计方法 (2) — 3.卡式, 列表, 主细表, 树形, 页签
  10. 安卓项目之微信公众好---初体验
  11. 背包——完全背包Warcraft III(哈理工1053)
  12. JS判断图片是否加载完毕
  13. react-nativeAndroid打包报错:Daemon: AAPT2 aapt2-3.2.1-4818971-osx Daemon #0
  14. 凯利KAC交流控制器调试方案
  15. Android万能布局检查器UI Automator Viewer使用教程、环境配置和Mac无法打开问题解决(uiautomatorviewer,android studio,layer,查看,错误)
  16. linux gif录制工具,Ubuntu中的Gif动画录制工具byzanz
  17. C语言 判断质数很简单
  18. LaTeX 表格标题位置无法移动的问题
  19. RabbitMQ入门中篇
  20. 解决:SpringBoot使用@Value读取application.properties中文乱码

热门文章

  1. ITIL 4 讲解:服务目录
  2. 综合能源管理服务认证是什么?综合能源管理服务认证含哪些专业?综合能源服务认证流程
  3. 【Modbus】 RTU CRC校验码计算方法
  4. 华为荣耀10电路原理图
  5. Gladder好强大
  6. 倒立摆源代码仿真matlab/simulink神经网络PID(模糊)控制校正LQR 神经网络 倒立摆控制 倒立摆LQR控制仿真 单级倒立摆的模糊控制 旋转倒立摆
  7. 《shell脚本学习指南》自学笔记——入门
  8. 2017华为笔试题3
  9. 基于JAVA WEB的网上书店的设计与实现
  10. java毕业设计蔚蓝在线学习平台源码+lw文档+mybatis+系统+mysql数据库+调试