在 OPL 中打印每个过程

Print each process in OPL

我是台湾的一名大学生,我正在研究“应该安装多少风力涡轮机和太阳能光伏板才能满足半导体工厂最低能量渗透率的要求”。

我的教授希望我能显示每个时期的每个变量,但我不知道我应该写什么代码。 也许我的代码中会有“execute”和“writeln”?但是什么也没有发生。

以下是我的简要代码:

{string} product = ...;
range time = 1..2;
{string} GreenPower = ...;
string NonGreenPower = ...;

dvar float InPut[product][time]; //In t period, amount of input of products
dvar float working[product][time]; //In t period, amount of working of products
dvar float OutPut[product][time]; //In t period, amount of output of products

所以,我想看看每次IntPut的变化,怎么做。

感谢阅读并容忍我的语法或拼写错误QQ

为了将解决方案打印到控制台,您可以使用 post-processing 块。 post-processing 块是通过在 约束规范之后(在 subject to 块之后)放置一个 execute 来实现的。

用于打印变量的 post-processing 块可能如下所示(未经测试的代码):

execute {
  for (var p in product) {
    for (var t in time) {
      writeln(p + ", " + t + ": " + InPut[p][t] + ", " + working[p][t] + ", " + OutPut[p][t]);
    }
  }
}

CPLEX 附带的许多示例使用 post 处理来向控制台显示解决方案。您可以浏览它们以了解在 post 处理中可以做什么,以及在控制台中可视化解决方案的不同方法。