服务热线:010-62964229
格瑞纳根植于教育行业,让仿真软件从理论教学到应用实践
新闻资讯
当前位置:首页 > 新闻资讯 > 行业新闻
操作教程 | 在AnyLogic中使用Python Part 1:Pypeline的安装及使用
2023-01-12 16:17:17 发布人:admin 阅读 2608

在GitHub的年度报告中,从编程语言的受欢迎程度(即代码库贡献)来看,Python的排名仅次于JavaScript,是世界上第二大受欢迎的语言。Python是一种用于强化学习、数据处理和数据展示的流行语言。对此,AnyLogic开发了专用于与python交互使用的API库插件——Pypeline库,让您的仿真模型更上一层楼。本文我们会简单的介绍一下Pypeline库的安装和使用,想要了解更多使用信息,可以查看我们的Pypeline 网络研讨会视频以及相关的自带案例。

Pypeline

Pypeline是支持AnyLogic在模型运行时调用Python的定制连接库。它可以与本地安装的Python连接,辅助使用Python库。

适用场景

准备工作

Pypeline库是为用户调用Python开发的,并非软件自带的资源库,因此想要使用Pypeline库还需要做一下准备工作,将它集成到AnyLogic后使用。

先决条件

首先,你要有AnyLogic程序(无拘版本,PLE、专业版、科研版都可以);

其次,你需要在计算机上安装有Pyhton 3 (任何版本都可,Windows 商店除外)。

如果条件达成那就可以开始准备Pypeline的导入了。

注意:由于无法从外部调用其可执行文件,因此不支持 Windows 商店中的 Python。 支持任何其他来源(例如,官方安装程序、anaconda、系统包管理器)。

导入安装

Pypeline库的导入或者说安装非常简单,下载并导入即可,详细步骤如下:

Step 1.下载Pypeline.jar包压缩文件,并解压。

下载链接:

https://github.com/t-wolfeadam/AnyLogic-Pypeline/releases


Step 2.下载好Pypeline库后,打开AnyLogic软件,找到面板(Palette)>>左下角的“+”>>管理库……


Step 3.进入管理库页面,选择“添加”,找到Step 1中我们下载的库文件jar包,进行添加。


Step 4. 添加后,可以在管理库页面和面板栏中看到导入Pypeline库件。


快速使用指南

这一部分中我们会介绍Pypeline使用的简单测试以及基础用法。

连接测试

安装后可以运行一个简单的模型,测试是否正确连接:

  1. 创建一个新的 AnyLogic 模型
  2. 从 Pypeline 面板中拖入 Python Communicator; 保留其默认名称(“pyCommunicator”)
  3. 运行模型
  4. 在您的运行模型中,单击 Communicator 对象
  5. 检查窗口应显示 Python 的版本和正在使用的 Python 可执行文件的路径。

pyCommunicator的属性介绍


如同其他的AnyLogic组件一样,将pyCommunicator拖拽到编辑区后,选中,可以查看并修改其属性设置:

  1. Enable connection:是启用插件,选中后此插件开始发挥作用
  2. Load last working configuration: 加载工作配置,选勾后下方选项就会隐藏
  3. Command to call Python :当我们电脑存在多个python版本时,可以通过选框决定用哪个Python,如不选则用默认环境的Python
  4. Throw error on failed attempt抛出错误选项
  5. Redirect Python output:重新定向输出

基础用法

示例:传递数据类型

下面我们接着上面的测试连接时的模型,做一个小的使用示例,您也可以用软件自带案例Demo - Passing Data Types,了解传递数据类型这个用法。

注:其中pyCommunicator为拖入的Pypeline组件的名称

Step 1 .控件面板拖拽一个按钮到编辑区,设置标签为“设置X 值”,在其行动属性中键入下列代码:

pyCommunicator.run("x = 3.14");

Step 2 .控件面板拖拽另一个按钮,设置标签为“获取X”,在其行动属性中键入下列代码:

Attempt xValue = pyCommunicator.runResults(double.class, "x");traceln(xValue);

Step 3 .运行模型!首先单击“设置x”按钮,然后按“获取x”按钮;之后,指定的数字应打印到控制台。

用法

1.直接运行一个字符串形式的Python代码。

使用run函数,可以直接调用Python运行String类型的Python代码。例如:pyname.run(“xxxx”),pyname为pypeline智能体的名称,xxxx为Python代码。.

2. 用runResults,可以直接读取python代码运行结果

例如:pyname.runResults(String.class, "file.read()");

file.read()是python代码,表示读取文件

3. 用String.format获取java中参数赋值给python代码

例如:

run(

String.format("with open('%s', 'w') as f:", filename),

String.format(" f.write('''%s''')", json)

);

4. 调用.py文件

一是runFile方法 例如:

runFile(PythonCommandType.PYTHON, "say_hello.py");

二是run("from tsp_solver import FacilityOrderSolver");导入所需文件名中的某一方法使用,此方法需要传参时可以通过run运行下方方法传参

例如:

String.format( // pass in distance matrix and home index

"solver = FacilityOrderSolver(%s, %s)",

pyCom.toJson(buildDistanceMatrix()),

home_index

)

小结

在目前的AnyLogic中,Java是唯一的原生脚本语言,Pypeline库是为使用Python搭建的桥梁,不能作为取代方案。并且,需要注意使用Pypeline是会增加一定的计算机负载的。另外,以Python为原生脚本语言的AnyLogic Python在去年已经进入测试阶段,未来或许您可以直接使用Python进行AnyLogic建模,让我们一起期待吧。

想要了解更多使用信息,可以查看我们的Pypeline 网络研讨会视频以及相关的自带案例。

相关的自带案例

帮助>>示例模型>>How-To Models>>Using Python in AnyLogic


  电话:010-62964229
  邮箱:support@carila.cn
  地址:北京市海淀区上地信息产业基地三街3号楼1门4层401
©2021 北京格瑞纳电子产品有限公司 版权所有 京ICP备19024141号 京公网安备 11010802029095号
 
QQ在线咨询
点击这里给我发消息 点击这里给我发消息
服务热线
010-62964229
E-mail
support@
carila.cn
地址:北京市海
淀区上地信息产
业基地三街3号