Skip to content
Matilda Adolphsen2026-3-10 5:21:19< 1 min read

使用Simio数据表进行数据驱动建模

在本系列的上一篇文章中,我们提到 Simio 中的数据驱动建模可以简化为两个关键步骤:将数据导入 Simio,然后使用数据驱动 Simio 模型对象和流程。在本篇文章中,我们将重点介绍如何使用 Simio 数据表来促进数据驱动建模以及与外部应用程序的集成。

Simio 数据表使用标准行/列结构存储表格数据,其中单个数据项可使用标准Table[Row,Column] 或Table[Row].ColumnName 函数动态引用。 不过,真正的强大功能是使用行引用(Row References)将特定表格行映射到 Simio 对象或标记。一旦设置了行引用,数据项就会使用Table.ColumnName 进行引用,并从行引用中推断出特定的表行。这有利于数据驱动建模,其中大量的模型逻辑和属性都是使用数据表指定的。

入门

考虑一个客户服务系统模型,其中服务器对象用于表示单个客户服务流程,实体用于表示客户,服务器的处理时间取决于客户类型和客户处理序列中的步骤。 通过在创建实体和已知客户类型时设置行引用,模型中的后续处理将使用行引用直接访问客户类型的特定数据。因此,服务器对象的属性与客户类型无关,因为特定类型的数据存储在表中!这样就无需使用条件逻辑在每个服务器上对客户类型做出反应。此外,通过编辑数据表,而不是直接编辑模型对象属性和逻辑,就可以轻松添加新的客户类型,并尝试不同的处理特性、客户到达率和客户类型组合。

定义表结构

创建数据表的过程非常简单,只需指定每一列的数据类型即可定义表结构。Simio 支持多种数据类型,包括整数、实数、字符串、日期时间和布尔等标准类型,以及表达式、对象引用、元素引用等特定于 Simio 的类型。例如,在客户服务系统的客户类型表中,我们可以使用对象引用列来定义客户类型,使用表达式列来定义该客户类型的处理时间,使用整数列来定义客户优先级。同样,当实体到达服务器时,优先级和处理时间是从表中读取的,而不是硬编码在服务器对象中。

向表中输入数据

在定义了表的结构后,有三种基本方法可将数据输入表中:手动输入,如电子表格;从 Windows 剪贴板复制粘贴(例如,从 Excel 工作表复制到剪贴板,然后从剪贴板直接粘贴到 Simio 数据表);以及使用数据绑定导入/导出数据。手动输入数据和复制粘贴是添加/编辑相对少量数据的简便方法,但对于大量数据和/或频繁变化的数据来说,这种方法就显得乏味了。这正是数据绑定的优势所在!

数据绑定可将 Simio 数据表连接到 CSV 文件、Excel 工作簿、数据库和 Web API URL 等外部数据源,以方便导入和导出。客户服务中心模型的一个用例可能涉及将 Simio 到达表绑定到历史客户到达数据库,并使用 Simio 模型来试验使用实际客户到达数据的其他系统配置。另一个用例可能涉及使用导出绑定将模型运行数据写入 Excel 工作簿,以便使用 PowerBI 或 Tableau 等外部数据分析工具进行详细分析。使用数据绑定大大简化了数据输入/输出,并提供了将 Simio 模型与其他桌面、企业和云应用程序集成的渠道。

最后,Simio 数据表使用键列和外键实现了关系数据模型。这样,您就可以使用通用字段 "连接 "相关表,这样,当您在一个表中设置行引用时,连接表中相关行的行引用也会自动设置。 在我们的客户服务示例中,客户类型表可以通过客户类型与客户到达表相关联,这样,我们就可以在一个表中存储客户类型数据,在另一个表中存储客户到达数据,这样,我们就不必复制数据,但仍然可以直接访问我们需要的特定客户或客户类型的所有数据。

数据驱动 建模的成功

数据驱动建模是一个非常强大的范例,在Simio内部开发的所有模型中,数据驱动建模都是标准操作程序。采用数据驱动建模和关系数据为使用自定义对象(Custom Objects)和Simio模板(Simio Templates)进行数据生成建模奠定了基础,这两点将在今后的文章中讨论。

欲了解更多有关Simio数据驱动技术的信息,请点击此处

RELATED ARTICLES