0 / 0
Go back to the English version of the documentation
Decision Optimization OPL 模型
Last updated: 2024年11月21日
OPL 模型

您可以在 Cloud Pak for Data as a Service中的 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数据源可以被访问,数据可以自动转换为表格。 如有必要,优化模型开发者可以在优化期间重新规划数据以填充其他数据结构,但此处理不得影响输入或输出数据。

类似地,如果你想在探索解决方案看法,你必须定义一个tupleset用于 OPL 模型中的此输出表。 例如,此代码生成解决方案中包含 3 列的输出表。
/// solution
 tuple TPlannedProduction {
   key string productId;
   float insideProduction;
   float outsideProduction;
 }

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

您可以在 DO-samplesModel_Builder 文件夹中找到这个面食生产问题的 OPL 模型示例。 您可下载并解压缩所有样本。 选择相应的产品和版本子文件夹。

引擎设置

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

点击+ (加号)并选择添加引擎设置文件在里面建立模型看法。 这可视化编辑器打开后您可以看到默认参数值,这些参数值按不同的类别排列,您可以为您的模型进行自定义。 您还可以通过在查找设置搜索字段。

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

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

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

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

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

有关 OPL 语言和引擎参数的更多信息,请参阅:
Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more