我们周围的随机性
不确定性是我们日常生活中必不可少的一部分。这里有一个简单的例子:假设你拥有一家café,每天为大约100名顾客提供热饮和美味的糕点。
café从上午9点到晚上7点开放。但是,第一批客人可以在第一天10点到,第二天9点50分,可以是两个或十几个客人同时进来。
当我们建立模拟模型时,我们希望它们尽可能地反映真实世界。为此,你需要在模拟中加入随机性。
如何在AnyLogic模型中设置随机性?
让我们再举一个例子。你正在为一家银行建模,你想知道经理需要多少时间为客户开立一个新的银行账户。
根据你的经验,这至少需要10分钟,很可能需要20分钟,最多需要40分钟。如何建模这种延迟?在AnyLogic中,您可以设置概率分布.
概率分布和自定义分布
AnyLogic提供了一组概率分布函数来模拟不确定性过程,如天气变化、产品需求变化或任何其他随机性。该软件支持不同的分布类型:均匀分布、三角形分布、指数分布等等。
但是,如果没有一个预先设置的功能适合您的项目呢?您可以创建您的自定义(经验)分布在你的模型中使用它。
AnyLogic内部的随机性来源
有两种类型的模型:随机模型和确定性模型。
一个确定的模型没有内在随机性。它使用相同的输入参数集运行,并给出相同的输出结果。例如,如果1万人每个人都有95%的机会活一年,我们可以合理地确定其中9500人会活下来。
一个随机另一方面,模型确实有内部的随机性来源。因此,每次运行(即使使用相同的参数)可能会给出不同的输出。
如果你只运行一次随机模型,你就不会得到具有代表性的模拟结果。因此,您需要多次运行它,即使使用相同的输入参数。调用一系列具有随机性的模拟运行(内部的,输入参数级别的,或两者都有)蒙特卡罗模拟.
蒙特卡罗模拟结果经过统计处理,通常以概率、直方图、散点图、包络图等形式表示。
阅读更多:不同类型AnyLogic模型中的随机性内部来源[PDF]
随机数发生器
计算机是一种确定性设备。那么,仿真模型中的随机性从何而来?
除非访问外部物理环境,否则应用程序不具有真正的随机性随机数发生器(RNG)。然而,我们可以使用计算RNG创建的伪随机性。
计算rng基于确定性算法,产生明显随机结果的长序列,实际上完全由较短的初始值(称为种子)决定,并且是周期性的。因此它们被称为伪随机数发生器.
可重复和独特的实验
尽管伪随机数生成器不能提供“真正随机的”数字流,但它们有一个重要的特性。根据所选择的种子,每次运行模型时,它们都会生成一个唯一的或相同的数字序列。
得益于此功能,您可以在AnyLogic中使用随机模型创建独特(随机)或可重复的实验。
当您想要研究一个场景或调试模型时,可重复的实验运行就很方便了。在开发模拟时,最好保持模型运行的可重复性,因为随机性使得跟踪错误和理解错误的原因变得困难。
遵循以下分步指南,使您的模型交付随机或可重复的模拟结果:
更多简短的教育视频-在相关AnyLogic YouTube播放列表.
以上就是我们对AnyLogic随机特性的简要概述。如果你想深入了解这个主题的技术方面,请点击查看仿真建模大书第15章[PDF]。
我们定期在YouTube上发布新的博客文章和指导视频。不要错过!订阅我们的每月的时事通讯保持更新。