从系列:理解离散事件仿真
坎贝尔,MathWorks
了解离散事件模拟如何帮助您解决与调度、资源分配和容量规划相关的问题®威尔·坎贝尔的《Tech Talk》。由于事件驱动的特性,有些流程很适合离散事件模拟。在选择不太明确的情况下,您可以采用离散事件方法,因为它比连续动态模拟提供了计算上的优势。然而,最终,收养取决于你试图解决的问题。在本视频中,您将了解在离散事件模拟中需要建模的细节级别,以及对您的模型来说什么级别的细节是重要的。
离散事件仿真通过将动态系统近似为一系列瞬时事件来分析动态系统的行为。让我们研究一下为什么它们对于某些应用程序如此强大,以及为什么您可能会使用它们而不是其他模拟技术。由于事件驱动的特性,有些流程很适合离散事件模拟。在选择不太明确的情况下,您可以采用离散事件方法,因为它比连续动态模拟提供了计算上的优势。最终,收养取决于你想要解决的问题。离散事件模拟通常用于回答有关调度、资源分配和容量规划的问题。
统计学家乔治·e·p·博克斯(George E. P. Box)写道:“所有的模型都是错误的,但有些是有用的。”理解模拟的目的决定了如何近似系统。在许多情况下,离散事件模拟是建模问题和获取所需数据的直接方法。例如,如果你的任务是了解杂货店收银员的数量是如何影响排队长度的,你可能就不会担心模拟每一次条形码刷卡。如果你想预测数据网络中的比特率,你可能不会关心每一个晶体管上的电压。正是这类应用程序,当出现诸如资源管理之类的问题时,低级细节变得无关紧要,离散事件模拟变得有用。让我们仔细看看。
考虑模拟飞机飞行的任务。一种方法是基于轨迹的模拟,模型勤勉地跟踪飞机的位置。你可以在任何时间点运行这个模拟,精确地知道飞行器在所有飞行阶段的纬度、经度和高度的历史。
但也许我们关心的不仅仅是一架飞机。也许我们想要模拟在许多国家的几十个机场之间飞行的整个机队。我们进行模拟的原因是我们想了解一个地区的天气和空中交通延误是如何影响全球机队的表现的。如果这就是目标,那么唯一相关的信息就是飞机在做什么以及它们所在的区域。计算每一架飞机在每个时间点的纬度、经度和高度是计算浪费。我们只是不需要所有的数据来得到我们想要的答案。
所以,让我们只追踪飞机在飞行的哪个阶段。以这种方式建模使我们能够使用离散事件模拟,事件是飞行阶段之间的转换。每个阶段花费的时间由服务器表示,队列表示地面延迟和等待模式。通过简化,设计工程师开发模型的工作量可以大大减少。此外,模拟的计算开销大大减少,因为执行的唯一计算是对每架飞机的飞行阶段的更新。这意味着我们可以运行更多的模拟,为我们提供不同场景下的系统更全面的画面。这些模拟能教给我们什么呢?我们可以使用仿真结果来识别流程中的瓶颈,描述死锁条件,并清楚地了解整个系统的延迟情况。这些信息使我们能够做出明智的决定,优化飞机机队的性能,或我们选择调查的任何其他系统。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。