ALAMO 软件常见问答(二):使用技巧

问:如何在 ALAMO 中使用模拟器?

答:ALAMO 通过文本文件与外部模拟器进行通信。要使用模拟器,您需要提供一个包装脚本,该脚本负责:

  • 读取 input.txt —— 其中包含 ALAMO 希望模拟的点。

  • 调用您的模拟器 —— 在这些点上运行仿真。

  • 写入 output.txt —— 将结果返回给 ALAMO 读取。

 

示例设置
示例包装脚本包含在 examples 文件夹中:

  • Windows:C:\alamo\examples

  • Linux:/usr/local/alamo/examples

一个有用的示例位于 batpython 文件夹中:

  • 在 e1.alm 文件中,一行内容为 simulator e1.bat,告诉 ALAMO 使用 e1.bat 作为模拟器包装脚本。

  • e1.bat 运行:python2.7 C:\alamo\e1.py(请将 python2.7 替换为您系统上安装的 Python 版本)。

  • 在 e1.py 中:

    • 第 28 行执行仿真(例如 x^2)。

    • 其他行处理输入输出 —— 从 input.txt 读取并写入 output.txt

 

为您的模拟器进行定制
要集成您自己的模拟器,请将 e1.py 的第 28 行替换为以下功能的代码:

  • 启动您的模拟器

  • 从 input.txt 读取输入

  • 将结果写入 output.txt

ALAMO 软件包中包含了基于 Python、MATLAB 以及可执行文件模拟器的示例。

 

问:如何设置多个模拟器输出?

答:在 SIMOUT 模式下,您的模拟器必须为每个评估点返回一行,每行包含:

  • NINPUTS 个实数值(输入变量)

  • NOUTPUTS 个实数值(输出结果)

所有值需以空格分隔。每行应包含 NINPUTS + NOUTPUTS 个实数。ALAMO 从输出文件中读取这些行,以将仿真点与其结果对应起来。

 

问:我能否将 ALAMO 与 Python 数据或模拟器连接?

答:可以。ALAMO 可与基于 Python 的数据或模拟器协同工作。您需要创建一个 Python 包装脚本,该脚本负责:

  • 从 input.txt 读取输入点

  • 运行您的 Python 代码或模拟器

  • 将结果写入 output.txt

示例脚本位于 ALAMO 安装目录的 examples 文件夹中(例如 batpython/e1.py),并可根据您的环境进行调整。

 

问:我能否使用 Aspen 或 GAMS 作为模拟器?

答:可以。您可以通过包装脚本调用 Aspen 或 GAMS 来与 ALAMO 配合使用。包装脚本可用 Python、Fortran、C、bash 或批处理编写,应能够:

  • 从 input.txt 读取输入点

  • 使用系统调用运行 Aspen 或 GAMS 可执行文件

  • 将仿真结果写入 output.txt

此设置使 ALAMO 能够与几乎任意可从指令行执行的模拟器进行交互。

 

问:如何拆分我的数据?

答:使用 ALAMO 时,您无需手动拆分数据。与需要单独训练集、验证集和测试集的其他建模技术(如神经网络)不同,ALAMO 使用信息准则(例如 BIC、AIC),这些准则在数学上等价于留一法交叉验证。这意味着:

  • 无需单独的测试集

  • 所有数据均可用于模型构建

  • 与神经网络等方法相比,所需的测量数据更少

这使得 ALAMO 在数据有限的情况下尤为有效。

 

问:如何分离训练数据和测试数据?

答:虽然 ALAMO 不要求数据拆分,但如果您希望分离数据用于测试或预测,它提供了以下选项:

  • NPREDDATA – 指定仅用于预测而不用于模型训练的点。

  • NVALSETS 和 NVALDATA – 定义用于测试模型性能的验证集。

这些选项允许您在不影响模型训练的前提下,评估选定数据上的预测结果。

 

问:如何在图形界面(GUI)中更改“NINPUTS”?

答:您无法在 GUI 中直接设置 NINPUTS。实际上也不需要设置 —— 一旦您指定了 NOUTPUTS,ALAMO 会自动从电子表格的总列数中减去 NOUTPUTS 来计算 NINPUTS

 

问:.alm 文件中的“INITIALPOINTS”是什么?

答:INITIALPOINTS 定义了模型构建开始之前可用的数据点总数。它与以下参数配合使用:

  • NDATA – 用户提供的已有测量数据的数量

  • NSAMPLE – ALAMO 应通过采样生成的点数

其行为取决于是否指定了 INITIALPOINTS

  • 如果声明了 INITIALPOINTS,ALAMO 会设置 NSAMPLE = INITIALPOINTS - NDATA(忽略提供的 NSAMPLE 值)。

  • 如果未声明 INITIALPOINTS,ALAMO 设置 INITIALPOINTS = NDATA + NSAMPLE

这使您可以控制模型训练开始前可用的数据总量。

 

问:运行图形界面(GUI)需要哪个 Java 版本?

答:我们建议使用 Java 版本 21.0.1(发布于 2023 年 10 月 17 日)或更新版本。请确保安装 Java 开发工具包(JDK),仅安装 Java 运行时环境(JRE)是不够的。

 

 

查看ALAMO软件详情

热门资讯

2026-06-22 17:00
首页    技术文档    ALAMO 软件常见问答(二):使用技巧