- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
arena中文教程第10章.
第10章 Arena的集成和定制
本章我们将介绍Arena和其他应用程序的集成问题以及如何构建定制的Arena模块。我们将通过一个非常简单的呼叫中心的模型来阐述这些概念。
第一节介绍第一个主题,在这里我们设计了一个模型,从一个外部文件中将预定的到达时间读入模型,然后将性能测度数据写入一个文件中。这说明可以采用多种不同方法从外部数据源(如文本文件)将数据集成到Arena模型中来;第二节我们将介绍两种微软的Windows操作系统技术,即ActiveX自动化技术和VBA(Visual Basic for Applications)技术。Arena利用这些技术直接和其它程序集成。在这一节中我们还将介绍Arena是如何与VBA集成的。我们假定读者已经熟悉VBA编程,或者读者会通过学习其它有关资料来达到这一要求,本节的重点只是阐明在Arena中如何使用VBA;第三节介绍怎样使用这些技术来创建一个定制的用户界面;第四节继续讨论VBA,并对呼叫中心模型进行了扩充,使其能够纪录有关呼叫数据并且在微软的Excel中将呼叫周期信息用图像表示出来;最后一节即第五节我们将从整体上介绍如何设计读者自己的模块,从而增加Arena的标准建模结构。通过这一章的学习,读者将对Arena的核心特点有一个初步的了解,并且能够将Arena和其它桌面应用程序相集成,以及采取多种方式创建定制的Arena界面。
10.1 模型10-1:读写数据文件
我们先从一个非常简单的呼叫中心模型开始,然后在多个我们感兴趣的方面逐步对它进行扩展。我们的呼叫中心有一个随机产生的呼叫到达流和一个处理呼叫的事务中心,呼叫在经过事务中心处理之后即离开系统。呼叫中心经理估计,呼叫的到达服从均值为1.1的指数分布,呼叫的处理时间服从均值为0.75、最小值为0.3、最大值为1.1的三角分布。如图10-1所示,建立本系统的仿真模型,我们使用了一个Create模块、一个Process模块和一个Dispose模块。
原书P401
图10-1. 简单的呼叫中心模型
这三个模块的数据如图10-2所示,仿真实验的参数通过菜单RunSetupReplication Parameters设置成图10-3所示。建好模型之后,我们就可以运行并察看仿真结果了。
原书P402
图10-2. Create、 Process和Dispose模块
原书P402
图10-3. 仿真实验参数
尽管这个呼叫中心模型很简单,我们依然可以使其更加符合实际。呼叫中心经理正好告知我们,他有某天呼叫到达时间的历史数据。那就让我们使用收到的这一段时间的实际呼叫记录来产生模型实体,而不是使用概率分布的抽样数据,这样可以更好地确认我们所构建的模型。通过这些实际数据驱动模型进行仿真运行,如果其仿真结果和那段时间系统的实际性能非常贴近,我们就可以更加相信该仿真模型的逻辑的正确性了。或者我们也可以使用同样的方法对具有特定到达模式的系统进行仿真运行,例如,卡车按照一个固定的但是不规则的日程时间安排到达一个分销中心的装载码头运送货物。
我们在10.1.1小节开始一个简单的实例,即从文本文件中读取实体到达数据;在10.1.2小节我们将介绍从其它数据源读取类似数据的方法。
10.1.1 模型10-2:从文本文件中读取实体的到达数据
为了对呼叫中心模型作这样的修改,我们需要一个包含所要研究时间段的到达时间数据的文件,用它来替换产生实体的模型逻辑。方便起见,假定仿真运行从第0分钟开始,我们构造了一个包含相应仿真时间值的ASCII类型的文本文件,该文件(Model 10-02 Input.txt)的前几个数值如图10-4所示。在这里我们不详细介绍这个ASCII文本文件是如何产生的。实际上,读者很可能会发现,读者所能获取的信息很难如此方便地存储起来,但是通过电子数据表格或者数据库软件的有效使用,通常读者还是能够将原始数据转化成可以直接用于仿真的值并导出到文本文件中。
原书P403
图10-4. 修改后的呼叫中心模型的呼叫时间数据
我们需要决定如何使用存储在文本文件中的历史数据,这涉及到两个方面的问题:一是将数据从文件传至模型的机制;二是如何使这些数据在适当的时间产生实体。我们先看看在适当的时间产生实体的逻辑,这包括当到达模型逻辑的相应部分时读取数据的细节问题。
到目前为止,我们都是用Create模块来产生实体,在仿真运行的整个过程都是基于间隔时间来产生新的实体。我们知道,手工仿真的(还记得第二章的有关内容吗?)每一个实体到达的时候,当前到达的实体都被送至模型中,而下一个到达的实体则被放入未来事件表以便在将来的某个适当时间到达,对话框中Time Between Arrivals项的数据决定了下一个实体到达的时刻,更一般的,这和概率分布的抽样结果有关
文档评论(0)