Временная переменная в AMPL - PullRequest
0 голосов
/ 31 декабря 2018

Есть ли способ в AMPL объявить и использовать временные переменные?Под этим я подразумеваю «обычные» переменные, используемые в программировании (вместо переменных модели), особенно в файле .run, например, сохранение строки для повторного использования в файле .run:

some_file = sprintf(foo%u.txt, 3);  # Temporary variable
print "Hello World" > some_file;
print "Hello again" > some_file;

1 Ответ

0 голосов
/ 01 января 2019

Если это не переменная в оптимизации, которую вы собираетесь решить, то это параметр.Вы можете изменить значение параметра с помощью let, например, так:

reset;
param blah symbolic;
let blah := "hello world";
print blah;
let blah := "this parameter has changed";
print blah;

Параметры в AMPL являются числами по умолчанию;строковые параметры должны быть явно объявлены как symbolic.

Обратите внимание, что я объявил параметр в отдельной инструкции от первого присваивания.Если бы я назначил значение в объявлении, например param blah symbolic := "hello world";, то произойдет сбой при попытке изменить значение.

...