当前您所在的位置:首页>新闻中心>新品发布
新品发布
行业动态
营销活动

Wolfram | 系统动力学建模--现在可与商业模拟库一起使用

发布时间:2021/04/29 浏览量:2449

 

系统动力学(SD)是一种非常强大和灵活的建模范式,非常适合于解决战略性商业、经济和公共政策问题。几年前,德国BSL管理支持公司的管理顾问和开发人员Guido Wolf Reichert在为德国一个大都市的公共交通系统建模时,偶然发现了问题。他已经达到了既定SD软件的技术极限。在寻找替代品时,他发现了Wolfram System Modeler。

 

 

开发商业模拟库

在这篇博客中,开发者将解释他创建商业模拟库(BSL)的动机,以及该库如何使商业、生态和社会科学中的动态系统建模变得简单、方便和快捷,而不需要写方程式。该库可在System Modeler库商店免费下载。

 

问:请告诉我们一些关于你的情况。你为什么要开发这个库?

答:我是一名管理顾问,采用计算机模拟来帮助客户通过更好地了解所管理的系统的复杂性来做出更好的决策。在我的工作中,我主要使用系统动力学,这是一种由Jay W. Forrester在60年代开发的建模方法。

 

几年前,在一个相当具有挑战性的项目中,为一个德国大都市的公共交通系统建模,我需要扩展我的工具集,因为我使用的既定系统动力学软件已经达到了它的技术极限。当时,我发现了Wolfram Mathematica,并立即迷上了它。在那个项目中,我主要使用Mathematica来建立数据模型和进行测试,而系统建模本身是由一个程序员用Java完成的,他使用我的系统动力学模型图并将其翻译。后来,当我自己成为一个相当精明的Wolfram语言程序员时,我开始使用Mathematica来运行外部系统动力学模型,并直接在Mathematica中编码微分方程。但是,人们需要一个GUI来建立系统模型,这就是我如何从阅读Mikael Forsgren的Wolfram博客文章中了解到Wolfram System Modeler及其SystemDynamics库的。但是,在这里我必须非常诚实的说,它所宣布的SystemDynamics库并没有说服我--所以我让事情稍作休息。

 

几年后,我偶然发现了Michael Tiller和Peter Junglas的Modelica模型,他们在SD模型中使用了系统连接器,我开始有兴趣去学习Modelica。最终,这让我开始行动。

 

问:你能分享一些关于系统动力学的重要性的想法吗?为什么人们会对社会系统建模感兴趣?

答:在商业模拟库的介绍性视频中,我使用了两张图,这两张图是由Hartmut Bossel在他的建模和模拟的介绍性文章中使用的。从本质上讲,商业、金融和经济或政治领域的许多社会系统过于复杂,无法通过将其视为 "黑盒子 "来理解--我们至少需要使其成为 "灰色",即我们观察系统的相关结构(例如其相互关联性),并使 "曲线拟合 "的近似只发生在我们模型中更深的层次。

 

举一个当前的例子,我们无法通过拟合正态分布或贡伯兹曲线的参数来富有成效地理解COVID-19流行病。如果我们有一个全面的封锁,那么系统的行为就不会像一个常规的s型曲线。我们最好对系统内运行的基本过程进行建模,以便对 "如果 "问题的答案做出合理估计。

 

这场流行病体现了对监管者所采取的行动进行 "解释 "的必要性,不管它是政府、公共组织还是公司。不以合理的方式这样做,无形中把人们推向了反叛,促使他们去做 "另类解释 "和 "另类事实"。

 

COVID-19只是社会所面临的问题的一个例子,它是可以进行建模和模拟的-气候变化是另一个很好的例子,它是一个更为复杂的、具有巨大重要性的问题。在这里,我们再次建议政治家们要有说服力地论证他们的行动。En-ROADS政策模拟模型令人印象深刻地展示了系统动力学模型是如何做到这一点的一个好方法。

 

问:商业模拟库与Modelica中现有的方法有什么不同?

答:在一个专门的系统动力学软件中,用户可以通过简单的拖放程序快速添加,例如,四个流量到一个股票,用户可以简单地把这些流量写成 "参数 "的方程式。一个用于系统动力学的Modelica库必须尽可能地与这种便利性和灵活性相匹配。

 

人们需要认识到的是,在Modelica中,这种灵活性适用于系统连接器,即物理连接器,它被用来模拟守恒实体的转换。BSL使用的是系统连接器,例如库存和流量端口,它将同时传输流量和连接的库存中的当前数量。

 

问:你能详细说明一下吗?为什么一个建模者会关心这个问题?

答:好吧,让我们来看看经济和生态模型中无处不在的一个过程:指数增长。“你好,世界!"动态系统模型是在恒定的出生率和死亡率下的人口增长,整个人口只有一个种群。下图显示了这个模型在一个典型的SD软件包中的样子:

 

 

现在让我们把这个模型与System Modeler中使用新库的等效模型进行比较,这个模型的参数化方式略有不同,使用的是寿命参数而不是分位数的死亡率:

 

 

在一个系统动力学软件包中,我们需要绘制六个连接,而使用BSL,我们只需要绘制四个连接。事实上,只有两个连接就足够了,因为我们可以将速率和寿命作为参数与过程组件(即EXP增长和EXP衰减)封装在一起,以加快模型的建立。下表显示了完整的比较:

 

 

BSL在视觉上更有表现力:参数值很好地显示在图中,而且完全清楚什么样的 "过程 "在改变系统的状态,例如例子中的种群规模。虽然在BSL中,建模者通常不需要写方程,但他们也不需要通过检查方程来理解正在发生的事情。例如,在系统动力学图中,使用给定停留时间的指数衰减的模型与使用分数率的指数下降的模型完全一样。为了分辨两者之间的区别-并检查建模的错误-我们确实需要看一下实际的方程式。使用BSL,模型的图表包含了我们需要的所有信息。

 

BSL的整个设计强调了业务流程建模(如事件驱动的流程链)和战略业务模拟在物理流程方面的相似性:库存像事件一样以红色显示,而流量像流程图上的活动/功能一样以绿色显示。

 

"[A]仿真模型--即使它是一个大模型--也需要放在一个页面上。"

 

问:我也能制作大型模型吗?它能处理的复杂程度是什么?

答:管理控制论之父Stafford Beer假设,任何可行的系统都有一个递归结构:它将是一个可行系统的系统。Modelica的面向对象的方法在处理现实世界的复杂性方面采取了同样的路线。从本质上讲,一个仿真模型--即使是一个大的模型--也需要适合在一个页面上。

使用BSL,你可以从库中包含的基本构件以分层的方式建立任意复杂的模型。下图所示的一个工业供应链网络的风格化模型可以说明这一点。这个复杂系统是由交换守恒量(如“物质”)和信息的相互连接的系统组成的:

 

 

在这个模型中,我们可以 "深入 "到生产者p1的模型中,发现它同样由子系统组成,一个决策单元(管理层)和运营。管理子系统为决策处理信息,通常以某种基于规则的政策为模型,而运营子系统则处理(至少在很大程度上)有形的实体和将它们从一种状态转化为另一种状态的过程。

 

 

操作过程最终可以转化为动态模型,正如我在库的介绍性例子中所展示的那样,使用预置组件有助于加速建立更大的模型。在接下来的例子SimpleProductionChainIII中,预建组件Diffusion和FirstOrderStockAdjustment分别用来模拟新产品的采用和生产计划:

 

 

虽然目前还没有大型的实时模型可以展示--因为该库刚刚被首次发布,但很明显,它将有可能建立与前面提到的En-ROADS模型相同范围的模型。该库的优势在于它将提供面向对象的所有速度和维护优势。

 

问:谁可以使用该库?它是否需要任何先前的知识,即我是否必须了解一些文献?

答:我相信这个库和它预先建立的组件使社会科学应用中的建模和模拟变得尽可能简单。尽管如此,如果你不习惯于系统动力学的方法,它还是相当抽象的。因此,虽然不是必须的,但我还是推荐一些文献。

 

如果你来自商业领域,并希望主要建立战略商业模拟,那么Kim Warren的《战略管理动态》是一本值得一读的书。Andrew Ford对系统动力学建模做了更全面的介绍。鉴于他的书名 "环境建模",如果你对环境建模有兴趣,他的书也是一个很好的开始。

 

虽然John Sterman的《商业动力学》仍然被广泛认为是系统动力学建模的权威文本,但我个人最喜欢的是对社会科学中的建模和模拟(不仅如此)进行非常全面的介绍,是Hartmut Bossel的教科书《系统与模型》。在那本书中,你还可以找到一些解释,他利用定向器理论对可持续发展的看法得到了广泛认可,这在该库中得到了实现。

 

问:你们对该库的进一步发展有什么计划?

答:关于这个第一个版本的重点显然是在稳健性上。基本的库类应该(希望)保持它们现在的样子。在即将发布的版本中,我想增加更多的 "结构分子",例如有助于减少开发时间的系统动力学模型的典型构建块。

 

另一个途径是利用System Modeler和Wolfram Language之间的紧密结合。系统动力学从随机建模方法--特别是现代贝叶斯方法--中获益良多。在这里,使用先验知识和传入数据进行 "学习 "的工作流程应尽可能的方便。

北京哲想软件有限公司