在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语法或拼写错误

解决方法

为了将解决方案打印到控制台,可以使用后处理块。后处理块是通过将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附带的许多示例都使用后处理来显示控制台的解决方案。您可以浏览它们以了解可以在后期处理中完成的操作以及在控制台中可视化解决方案的不同方法。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...