Decision OptimizationOPL 模型

您可以在 watsonx.ai中的 Decision Optimization 试验 UI 中构建 OPL 模型。

在此部分中:

要在 试验 UI中创建 OPL 模型,请在模型选择窗口中选择 创建 > OPL 。 您还可以从文件导入 OPL 模型,或者导入包含 OPL 模型和数据的方案 .zip 文件。 如果从文件或方案 .zip 文件导入,那么数据必须为 .csv 格式。 但是,您可以将作为项目资产的其他文件格式导入到 试验 UI中。 您还可以从 准备数据 视图中的 Decision Optimization 试验 UI 将包含已连接数据的数据集导入到项目中。 有关更多信息,请参阅 将数据导入方案

输入和输出

在 OPL 模型中,您必须为在准备数据 视图中导入的每个表声明名称相同的 "tupleset。 每个元组集的模式必须与表的列数相同,并使用相同的字段名。 例如,如果在 准备数据 视图 中有一个名为 Product 且具有属性 name, demand, insideCost,outsideCost的输入表,那么 OPL 模型必须包含以下定义:
tuple TProduct {
   key string name;
   float demand;
   float insideCost;
   float outsideCost;
 };

{TProduct}     Product = ...;

只使用元组和元组集作为 OPL 输入的限制是为了便于与数据源集成。 例如,可以访问 SQL 数据源,并以最小的工作量实现数据流;可以访问 NoSQL 数据源,并将数据自动转换为表格。 如有必要,优化模型开发人员可以在优化过程中重新制定数据以填充其他数据结构,但这种操作不得影响输入或输出数据。

同样,如果要在"探索 "解决方案 视图中显示一个表,必须在 OPL 模型中为该输出表定义一个 "tupleset。 例如,此代码生成解决方案中包含 3 列的输出表。
/// solution
 tuple TPlannedProduction {
   key string productId;
   float insideProduction;
   float outsideProduction;
 }

{TPlannedProduction} plan = {<p.name, Inside[p], Outside[p]> | p in Products};

您可以在 Model_Builder 文件夹的 DO 样本中找到这个面食生产问题的 OPL 模型示例。 您可以下载并抽取所有样本。 选择相应的产品和版本子文件夹。 对于本地部署的 watsonx ,请使用 Cloud Pak for Data 目录下 v5.4.x 子文件夹中的示例。

引擎设置

您可以在 Decision Optimization 试验中添加 OPL 参数设置 (.ops) 文件。 OPL 设置文件是存储用于数学规划或约束规划以及 OPL 语言的 OPL 选项的用户定义值的位置。 它允许您访问求解器 (引擎) 参数,以便您可以对其进行修改。

单击+(加号),然后在 "构建模型"视图中选择 "添加引擎设置文件"。 可视化编辑器打开后,您可以看到默认参数值,这些参数值按不同类别排列,您可以根据自己的模型进行自定义。 您还可以在 "查找设置 "搜索栏中输入名称,搜索特定参数。

.OPL Engine 设置 .ops 文件显示在具有一个定制参数的 Visual Editor 视图中打开

在此窗口中,您可以选择不同的参数或编辑字段。 如果修改缺省参数,那么将显示列出更改的 " 定制设置 " 窗格。

您可以将 可视编辑器 切换到关闭位置以在 XML 编辑器中查看更改。 该文件在 XML 编辑器中显示时,仅包含您已更改的参数,并且不会列出所有缺省参数。 您还可以在该 XML 编辑器中编辑参数,当您将开关拨回开启位置时,您所做的更改将显示在可视化编辑器中。

XML 编辑器,显示对缺省引擎设置参数所作的修改

您可以导入要用于引擎设置的 .ops 文件,但只能有一个用于模型的引擎设置文件。 如果您在 IBM ILOG CPLEX Optimization Studio 中指定了一些要导入到试验中的非缺省参数,那么导入此类文件很有用。

有关 OPL 语言和引擎参数的更多信息,请参阅: