Anylogic培训笔记(第二节)——状态图离散事件建模

Step1:将流程图转化为状态图离散事件建模例子

题目: 

1.”source”组件——event组件

MyAgent状态图1 ma = add_myAgent状态图();
ma.setLocation(nodesource);

2.delay组件——变迁、到时

  个人理解:因为是在agent里写的代码,就可以直接setLocation

3.selectOutput组件——  “分支”组件

4.moveto——moveto

逻辑:先进入行动,变迁的条件满足,再离开行动

5.sink——最终状态

step1.remove_myAgent状态图(this);

运行后发现问题修改:

原因:时间顺序

修改方案:  删掉event里的设定坐标语句,增加状态、变迁

Step2:增加queue功能 (集合的使用)  操作步骤:

增加内变迁: 保证能多次刷新,达到题目的条件。

注意点:保证当前智能体是所要操作的智能体,增加条件判断

运行后发现问题:

若再finalstatesink中写:step2.remove_myAgent状态图(this);(实现的效果是当智能体运行到moveto的节点框内会消失),但是会发现delay的智能体编号会一直是0。一开始以为是每次都是0的那个智能体出现了,后面发现其实是因为生成智能体编号的代码是getIndex(),使得每一次text都为0了

因此,利用编号观察智能体要注意是否有删除操作。

Step3:复合状态

题目:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值