参数变化:跟踪元数据
Posted
技术标签:
【中文标题】参数变化:跟踪元数据【英文标题】:Parameter Variation: Tracking the Metadata 【发布时间】:2021-09-16 11:20:14 【问题描述】:我正在尝试在 AnyLogic 中使用参数变化。我的输入是 3 个参数,每个参数变化 5 次。我的输出是需水量。我需要的参数变化是需求根据三个参数的不同组合而变化的方式。我想像:有 10,950 行(每天一个),第一列是时间(以天为单位),第二列是第一个组合的值,第二列是第二个组合,依此类推向前。跟踪此元数据然后能够将其导出到 excel 的最佳方法是什么?我已经在我的主程序中添加了一个“数据集”来跟踪每次模拟的需求,但我不确定要添加到参数变化实验界面中以跟踪不同迭代中的输出。有一种方法可以知道哪种输入组合产生了给定的输出(例如,将组合作为每列的名称)也会很有帮助。我看到有 Java 操作,但我无法找出代码来做我需要的事情。感谢您对此事的任何帮助。
【问题讨论】:
【参考方案1】:最简单的方法是在输出数据库表中进行跟踪,然后在运行结束时将其导出到 Excel。只要这些表包含多次运行的输出(例如,仅在 experiment 而不是 run 开始时清除),您的 Parameter Variation 实验就会结束生成一个包含所有运行结果的 Excel 文件。 (您可能需要在 PV 实验中关闭并行执行,以免在尝试并行写入同一个 Excel 文件时遇到问题。)
因此,例如,您可能有表格:
run_details
与列 id
、parm1
、parm2
和 parm3
(根据您的实际参数和为每次运行生成的一些唯一 ID 使用正确的列名称)
output_demand
带有列 run_id
、sim_time_hrs
和 demand_value
(例如,如果您在模拟时间的每小时存储一些需求值)其中 run_id
交叉引用 @987654331 中的运行 ID @
(在如何分配唯一的运行 ID 以及写入/清除这些表的方式和时间方面存在额外的复杂性,但我只是介绍核心设计。您还可以绕过需要串行执行通过编程控制何时导出到 Excel,而不是使用内置的“模型执行结束时导出表”功能,但这也更复杂。)
【讨论】:
以上是关于参数变化:跟踪元数据的主要内容,如果未能解决你的问题,请参考以下文章
我无法通过 libtorrent-python 接收磁链接元数据,而无需指定跟踪器的 udp 协议