AnyLogic

AnyLogic 是一套结合多种模拟（仿真）理论的建模开发工具，由同名的企业所开发。

## 历史

在90年代初期，有很多人对平行处理的建模与模拟的数学方法很感兴趣。这种方法可用于分析的平行处理的正确性和分布程式。在圣彼得堡理工大学的分布式计算网络（DCN）的研究小组开发出这样的软件系统，主要用来分析程式的正确性。而新的工具被命名为COVERS（Concurrent Verification and Simulation）。此系统是用图形化建模方式来标记系统的结构模型和行为。此工具后来被惠普应用于研究领域。

在1998时，这项研究的成功，DCN实验室于是组织成一家公司，背负着开发新时代模拟软件的使命。其发展重点在于应用方法：模拟(仿真)，效能分析，随机系统行为，最佳化（优化）及视觉化。新软件在2000年发布，采用最新的资讯技术优势：物件导向方法，结合UML标准的元件，使用Java语言，及新一代的GUI界面等等。

<image>

此工具名为AnyLogic，因为它兼具了三个最知名的建模方法：

- 系统动态学（System dynamics）
- 离散事件仿真（Discrete event simulation）
- 代理人基模型（Agent-based modeling）

- +提供可以任意结合这些方法到单一个模型中.

而AnyLogic的第一个版本为AnyLogic 4，因为此数字是接连着COVERS 3.0的数字。

最大的变化在2003年，AnyLogic 5发布，其开发重点专注在下列商业模拟领域：

- 行销管理,
- 医疗卫生,
- 制造业,
- 供应链,
- 后勤学,
- 铁路运输,
- 企业管理,
- 社会和生态系统动态学。
- 军事。
- 项目管理（专案管理）和资产。
- 资讯架构。
- Evacuation process simulation动态模拟及交通模拟,
- 航太.
- 光电

最新的主要版本是AnyLogic 8.5，它是在2019年发布的. AnyLogic 8是跨平台 模拟软件，可以在 Windows，Mac OS上运行 和Linux平台。

## AnyLogic与Java

AnyLogic包含了图形化建模语言外，也允许使用者用Java程式码去扩充模拟模型。Java是AnyLogic的原生语言，不但适合透过撰写Java程式来客制模型的扩充，且可以用Java applets来建立模型，并可以透过任何标准的网络浏览器来开启模型。这些Java applets的模型可以非常容易就分享及放置在网站上。除了专业版的Java applets可以允许建立Java runtime的应用程序，并可以被发布给使用者。这些纯粹的Java应用程序，可以被用来作为决策支援的基础工具.

## 多重仿真方法塑模

<image>

AnyLogic的模型可以依据任何主要的模拟建模范例：离散事件或流程中心模拟discrete event or process-centric(DE) , 系统动态systems dynamics (SD), 以及 agent-based 代理人基础(AB).

系统动态及离散事件是传统的模拟方法，代理人基础是最新的方法。技术上来说，系统动态方法主要是处理连续性流程，不同于 “离散事件”(所有我们所知的相关GPSS所衍生的方法都称为流程中心模拟方法)及代理人基础模型其作业大都是离散时间。

关于系统动态即离散事件模拟在以前各大学不同领域就已经有开过相关课程，其学生族群也不尽相同。有的是在管理及经济领域，有的在工业界及作业研究工程师。但是其结果是两种不同的社群却从未相互交谈过。

代理人基础建模方法直到现在还是大学课堂上的议题。然而，从全球企业最佳化需求的提升引起建模者去找寻结合方法，来深入了解洞察复杂的相互关系流程中有很不一样的本质。

怎样的建模方式反应到的抽象等级.系统动态处理的集合显然是较具有交高的抽象层级。而离散模拟则属于低等到中等的抽样等级。而代理人基础的建模方法则横跨了所有抽象等级，因为代理人(Agent)可能建立物件模型是具有非常多种本质及尺度。在 “物理”层级的代理人可能被当成如：一个行人，或车子，或是机器人，在其中等的层级-客户，在高等的层级如是-竞争公司

怎样的建模方式反应到的抽象等级. 系统动态处理的集合显然是较具有交高的抽象层级。而离散模拟则属于低等到中等的抽样等级。而代理人基础的建模方法则横跨了所有抽象等级，因为代理人(Agent)可能建立物件模型是具有非常多种本质及尺度。在 “物理”层级的代理人可能被当成如：一个行人，或车子，或是机器人，在其中等的层级-客户，在高等的层级如是-竞争公司.

AnyLogic允许这些模拟(仿真)建模方法全部结合在同一个模型。没有固定的层次结构。因此，举一个例子：如建立一个包装运输业的运输模型，其搬运模式是单独以代理人的活动/反应来加以建模，而其内部运输及网络架构则是以离散模拟方式来加以建模。相同的，也可用代理人基础方法来建立一个消费者总体行为来做为动态模型系统的投入，撷取其资讯流，如收益或成本，并不需要依赖于个别的代理人。这种混合语法是直接应用在各种不同的复杂问题之建模问题，虽然是妥协方式，但是可以透过任何一种方法来加以建模。

## 模拟（仿真）语言

<image>

AnyLogic模拟（仿真）语言包含了下列组件：:

- Stock & Flow Diagrams 存货 & 流程图，用于系统动态学建模。
- Statecharts 状态图，大部分是用在代理人基础塑模，用来定义代理人行为。它们也常用在离散事件塑模，如：模拟机台失效。
- Action charts活动图，通常是定义算法。它们可以被用在离散是建模你，如呼叫途程。或是在代理人基础建模的代理决策逻辑。
- Process flowcharts流程图，是基本建立用在以离散事件建模中的流程。观看此流程图，你可以看到为何离散式建型式常被称为以流程为中心。

此语言也包含了：低阶建模架构（变数，方程式，参数，事件等等），呈现方式之图型（线，多边形线，椭圆形等等），分析工具（资料，柱状图，绘图），连结工具，标准图形及实验架构。

## AnyLogic 数据库

AnyLogic包含了下列标准数据库:

- The Process Modeling Library商业数据库主要支援制造业，供应链，后勤资源，医疗等领域之离散事件模拟。使用企业数据库物件可以建立 现实方面之实体模型（交易，客户，产品，零件，车辆等等），流程（典型的作业流程，包含等待，延迟，资源利用），以及资源。此流程是明确地以流程图方式显示。
- The Pedestrian Library行人数据库是专注在模拟行人潮在一个 “物理”环境。可以让你建立一个行人密集地在一个建筑物（如：火车站，安全检查等等）或街道（大量的行人）上。模型支援统计收集如不同区域之行人之密度。也接受服务点之效能负载估算假设。估算带在特定区域的时间长度，及检查潜在内部几何的问题-如新增太多障碍物的影响-以及其他应用。在模型建立以型兂料库，行人可以在连续空间移动，反应不同型式之障碍物（如墙壁，不同的区域）如同其他行人斑。行人的模拟的互动是复杂行为之代理人，但是Anylogic的行人数据库提供了一个高阶使用界面，可以很快建立行人模型的流程图风格。
- The Rail Yard Library支援任何复杂及任何大小的铁路调车建模，模拟，视觉化作业。铁路调车模型可以结合离散事件或代理人基础，用以模拟装货及卸货，资源配置，维护及商业流程及其他运输活动。

除了这些标准资料，使用者可以根据自己的需求来自行建立自己的数据库及配置。

## 外部链接

- AnyLogic official web-site
- AnyLogic On-line Help
- AnyLogic Video Tour (How-to's, model examples etc.)
- Anylogic support at simulation123.com

## 基本资料

- 开发者：The AnyLogic Company
- 编程语言：Java SE
- 操作系统：跨平台
- 类型：模拟软件
- 许可协议：专有软件
- 网站： www.anylogic.cn