Выводы цикла GAMS в разные файлы Excel

Я использую одну из реализаций метода с ограничениями по эпсилону, чтобы найти некоторые решения на фронте Парето. Однако я хотел бы сохранить результаты и некоторые параметры постобработки в отдельных файлах Excel. Большинство этих решений получают в циклах, и поэтому я хотел бы использовать значения циклических наборов для именования каждого файла Excel.

$Set Instance CraggyTerrain
loop(kp,
  kk(kp)=yes;
  repeat
    solve mod_payoff using mip maximizing obj;
    payoff(kp,kk) = z.l(kk);
    z.fx(kk) = z.l(kk);
*// freeze the value of the last objective optimized
    kk(f++1) = kk(f);
*******************************Mipstart_ Give an intial solution
    x.l(i,j,k)=x.l(i,j,k);
    b.l(i,k)=b.l(i,k);
    y.l(i,j)=y.l(i,j);

execute_unload "Results_payoff%Instance%_%FirstOF(kp)%_%SecondOF(kk)%.gdx" z.l x.L y.L b.L;
execute 'GDXXRW.EXE Results_payoff%Instance%_%FirstOF(kp)%_%SecondOF(kk)%.gdx   var=x.l                rng=x!b2'
execute 'GDXXRW.EXE Results_payoff%Instance%_%FirstOF(kp)%_%SecondOF(kk)%   var=y.L                rng=y!b2'
execute 'GDXXRW.EXE Results_payoff%Instance%_%FirstOF(kp)%_%SecondOF(kk)%   var=b.L                rng=b!b2'

until kk(kp); kk(kp) = no;
* release the fixed values of the objective functions for the new iteration
  z.up(f) = inf; z.lo(f) =-inf;
);

Для части% Instance% я могу просто объявить локальную переменную, например $Set Instance CraggyTerrain, но я не могу найти способ использовать эти переменные (локальные, глобальные, среда) для создания остальной части имени файла, создавая другой файл Excel для каждого решения.

Есть ли способ обновить локальные переменные параметрами, набором или переменными из модели в операторе цикла / повтора?

Заранее благодарю, Ракель Агияр.


person Raquel Aguiar    schedule 23.03.2020    source источник
comment
Взгляните на этот старый пост. В ответе должно быть все, что вам нужно: stackoverflow.com/questions/42859215/   -  person Lutz    schedule 24.03.2020
comment
Спасибо, @Lutz, я слышал об этой утилите put_utility от GAMS раньше, но никогда не искал ее. Я придумал неаккуратное решение, в котором я использую скаляр для подсчета количества прогонов, а затем использую оператор if и исчерпывающе записываю все комбинации% FirstOF (kp)% _% SecondOF (kk)%. Сейчас я вынужден получить результаты, но как только я закончу, я попробую поэкспериментировать с этим инструментом GAMS и ответить на этот вопрос или сформулировать улучшенный вопрос. Большое тебе спасибо. P.S Ссылки в вашем предыдущем ответе не работают.   -  person Raquel Aguiar    schedule 24.03.2020
comment
Спасибо за подсказку. Вот текущие ссылки: gams.com/latest/docs/UG_Put.html# UG_Put_PutUtil; gams.com/latest/docs/T_GDXXRW.html   -  person Lutz    schedule 24.03.2020