首页 > 解决方案 > 打印 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

标签: printingcplexopl

解决方案


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

打印变量的后处理块可能如下所示(未经测试的代码):

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

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


推荐阅读