anylogic 学习(3)—— 智能体相关操作
利用智能体盖十层高的楼
简单来说,想到盖十层高的楼,第一反应就是一层一层往上盖楼,直到有十层高的楼。
但实际上可以通过智能体群的操作实现盖十层楼的操作。
上下楼模型的另一种实现方式
在搭建十层楼的模型的操作中,我们发现智能体除了作为 source 被调用之外,还可以之间在 main 图层运行中直接显示——可以理解为在 anylogic 中运行主文件是 main,智能体可以理解为运行主文件时调用的其他文件。所以我们在实现上下楼的模型就可以就第一层和第二层的模型建立两个智能体最后将智能体“映射”到main 窗口中。这样做的好处就是可以避免第一二次层放在一起而造成建模时因为重合难以操作或造成覆盖。
第一层
第二层以及最后运营结果
模型中代码解释
main.secondFloor.enter.take(agent);
:
代码位置: 代码位置在 firstfloor中的 exit
解释: 可以简单的理解为智能体从 exit
中离开该流程,并且离开的智能体从 main.secondFloor.enter
中进入
注意:由于 firstfloor
和 secondFloor
处于同一级别,都在 main
下,并不能直接调用enter(或者说 secondFloor
),可以理解为调用 enter 时,要返回 enter 的绝对路径——main.secondFloor.enter
。
viewArea.navigateTo();
代码位置:代码位置在 mian
中的“启动时”
代码解释:viewArea
是视图区域的变量名,viewArea.navigateTo();
是指在运行至该阶段时(以该模型为例,是指“模型启动时”
)该视图区域位于运行窗口的中心(聚焦处)