AnyLogic Forum is moving to other platforms

This forum is now not officially supported and will be discontinued early in 2018. Registration and new topics are no longer possible.


To discuss AnyLogic-related issues, you are welcome to use LinkedIn user group and StackOverflow questions tagged with "anylogic".


离散事件

我们周围的世界似乎是连续的:我们观察到的绝大部分过程由连续的变化构成。然而,当我们分析那些过程时,很多情况下我们需要从连续特性中抽象出一些事件来,只对系统生命中的一些重要“瞬间”和“事件”加以考虑。用这些事件来接近真实世界过程的建模方式就叫做离散事件建模。Discrete Event Modeling

下面是一些例子:一个顾客到了一家商店;一辆卡车完成了卸载;一台运输机停止工作;新产品的推出;库存达到了一定程度等。在离散事件建模中,如一辆火车从A地到达B地的运动可以建模成出发和到达这两个事件,实际的运动就是这两者间的时间间隔。(但这并不是说你不能将火车动态化,事实上你可以用AnyLogic为逻辑上的离散模型制造出视觉上连续的动画)。

离散事件这个术语主要采用它的狭义定义,用来表示以过程为中心的建模,以过程为中心的建模建议将系统作为一系列连续的操作过程来分析:(到达、延迟、使用资源、分裂、结合等),将操作程序看作是在某些类型的实体(顾客、文件、零件、数据包、车辆、电话)上运行。实体是消极的,但它们的某些特性却可以影响处理方式(例如,通话类型、任务的复杂度),或随着实体在过程(累计等待时间或费用)中的流动而改变。以过程为中心的建模的复杂度为中等偏下:虽然每个对象作为实体单独进行建模,但建模者通常丢掉了很多“物理层”的细节,如精确的几何、加速、减速。以过程为中心的建模广泛运用于商业流程、制造、物流和保健领域。

在决定使用这种方法前,我们建议先(从项目目标的角度)验证系统确实被描述为(可能是分层的)一系列的操作秩序。同时我们还要清楚其他方法,例如,如果描述单个实体的行为比试图建立一个完整的工作流程更简单,基于主体建模是最好的选择。同样的,如果你对总体交互而非个体交互感兴趣,就应采用系统动力学建模。AnyLogic支持全部的三种建模方法,因此,只需一种工具,你就可以在理论层进行试验或者是对具体的方法进行试验。

AnyLogic Process Modeling Library

以过程为中心建模使用的AnyLogic主要工具是Process Modeling Library。Process Modeling Library集合了所有定义工作流程的对象如原始码、接受器、延时、服务、输出选择等以及相关的资源。所有对象都可以自定义:它们的参数可以进行动态改变,行动可能取决于实体的属性等。对象有输入/输出扩展点,你就能定义需要在实体上执行的行动。基于Process Modeling Library的模型组成部分能自然地和系统动力学基于主体模型组成部分或AnyLogic的要素(如事件,状态图)相互操作。

如果你所建模的系统很复杂,可以将其分解为几个部分,然后在不同的活动对象里进行分别建模。你可以定义子进程的起始和结束点,将它们作为模型组件的界面进行展示,或者隐藏子进程的执行过程。在最高级模型中,你将对那些高层组件进行实例化,并将它们联系在一起。由于每个活动对象都可以进行多次实例化和参数化,这为模型内和跨模型组件的重复使用提供了一个很好的基础。

Process Modeling Library和AnyLogic的显示/动画框架能密切配合,能使您开发非常复杂的过程动画。动画可以分为不同的层级,提供多种视角,如关于高层可能只显示关键的总指标,但你可以转换到一些子过程,那里有详细的子过程动画。

基于网络的建模

Process Modeling Library还包含一系列特别为“空间感知”所设计的对象,这些对象在某类物理空间中发生并涉及实体和资源的运动。对象集很大程度上简化了建模,被称为网络建模。使用这项技术,你需要定义网络布局(通过绘制作为背景的设施地图的AnyLogic形状)、资源地和流程本身。流程定义可能由特定网络对象(“移向定点”或“附加资源单位”)和常规Process Modeling Library对象结合而成。实体和资源会自动活动,沿着网络成分移动或待在节点,并能和常规动画交错。

Process Flow in AnyLogic

参见网络模型库的AnyLogic离散时间模型程序。