Печать каждого процесса в OPL

#printing #cplex #opl

#печать #cplex #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
  

Итак, я хочу видеть изменения во входных данных каждый раз, как это сделать.

Спасибо, что прочитали и терпимо отнеслись к моим грамматическим или орфографическим ошибкам QQ

Ответ №1:

Чтобы распечатать решение на консоль, вы можете использовать блок последующей обработки. Блок последующей обработки реализуется путем помещения 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, используют постобработку для отображения решений на консоли. Вы можете просмотреть их, чтобы узнать, что можно сделать при последующей обработке и каковы различные способы визуализации решений в консоли.