anylogic

虚拟原型环境的仿真软件
AnyLogic[1]是一种多功能模拟建模工具,由The AnyLogic Company(前身为XJ Technologies)开发。它支持基于代理的、离散事件和系统动力学等多种模拟方法。AnyLogic是一款跨平台模拟软件,可在WindowsmacOSLinux等多个操作系统上运行。AnyLogic主要用于模拟市场、竞争、医疗保健、制造业、供应链、零售、业务流程、社会和生态系统动态、国防、项目和资产管理、行人流量和道路交通、信息技术和航空航天等领域。它是模拟行业的重要参与者之一,尤其是在业务流程领域被认为是一种强大的工具。

历史沿革

在20世纪90年代初,人们对并行进程的建模和模拟产生了浓厚的兴趣。这一方法被应用于分析并行和分布式程序的正确性。圣彼得堡理工大学分布式计算网络(DCN)研究小组开发了一款名为COVERS(并发验证和模拟)的软件系统,用于分析程序的正确性。这款工具得到了惠普公司的资助。1998年,DCN实验室成立了一家公司,旨在开发新一代的模拟软件。该公司专注于应用方法,包括模拟、性能分析、随机系统行为、优化和可视化。2000年发布了AnyLogic软件,采用了最新的信息技术,包括面向对象的方法、UML标准元素、Java语言和现代GUI界面。AnyLogic的名字来源于它可以结合三种主要的建模方法:系统动力学、离散事件模拟和基于代理的建模。AnyLogic的第一个版本是AnyLogic 4,延续了COVERS 3.0的编号。2003年发布了AnyLogic 5,重点关注商业模拟的不同领域。2014年发布了AnyLogic 7,简化了建模过程,减少了编码需求,更新了库,并提高了可用性。同年,AnyLogic 7.1增加了对OpenStreetMap等在线提供商的瓦片地图的支持。2015年,AnyLogic个人学习版(PLE)免费提供给教育和个人学习用途。2016年,AnyLogic 7.3推出了道路交通库。2017年,AnyLogic 8发布,整合了AnyLogic云,这是一个用于模拟分析的web服务。AnyLogic 8的开发环境基于Eclipse平台。2018年,AnyLogic 8.1增加了对Python脚本的支持。2019年,AnyLogic 8.5发布,这是最新版本,支持跨平台模拟,可在WindowsmacOSLinux上运行。[2]

AnyLogic特点[3]

AnyLogic提供了多种建模方法,包括基于UML语言的面向对象建模、基于流程图的建模、Statecharts(状态机)、微分代数方程以及Java编程。设计AnyLogic模型实际上就是设计活动对象的类并定义它们之间的关系。运行时模型可看作活动对象瞬间展开的层次。AnyLogic的建模语言是UML-RT的扩展,主要方图为活动对象。活动对象通过边界对象与外界交互,如:端口(用于离散交流)或变量(用于连续交流)。AnyLogic的离散建模和连续建模能力都非常强,尤其是当两种行为紧密结合的时候,其离散建模结构包括对象间的通信机制、状态图和对象内部的基本数据单元;连续过程则用微分方程表示。AnyLogic的混合建模最显著的特点体现在混合状态图上,用户可以将方程与状态图相结合,状态的转移可以引发连续行为的改变。AnyLogic模型的可视化图形由Java编写,用户可以直接在模型编辑器中添加Java代码。AnyLogic的动画仿真与模型是相互独立的,用户可以将单独的活动对象图与活动对象的类连接起来。AnyLogic模型是100% Java的,可以在任何支持Java的平台上运行。AnyLogic的框架结构包括随机的模型输入条件、统计输出结果的收集、分析和表示、参数变化机制、与数据库的接口、电子数据表、数据存储、其他文件、工具箱的优化和丰富的API。AnyLogic的最优化工具箱包括简单的最小值查找、牛顿和随机查找等。AnyLogic还提供与外部优化软件的接口。AnyLogic的库包括对象类、动画仿真、信息类以及为特殊应用领域或模型开发的Java模块。有了库,不同模型的对象可以得到很好的重复利用。AnyLogic的模型编辑器是最先进的Windows用户界面,包括定制的窗口、工具栏、颜色选择、图形、拖拽式操作、视图缩放、语法突出显示等。模型浏览器/调试器包括模型的远程或本地TCP连接、运行模型时的各种选项、使用模型探测器导航、结构和状态图的快速动画显示、图形化的断点、日志和视窗、统计数据的表示(柱状图、甘特图、曲线图)、事件浏览器、运行时改变变量和参数的值。AnyLogic支持HLA这种描述仿真分布和协同工作的标准结构。AnyLogic的Java HLA模块通过特定的接口与仿真器通讯,从而与AnyLogic的仿真或任意一个模型呈分布式结构协同工作。