почему Ampm делает синтаксическую ошибку param 1 <<<< 12000? - PullRequest
0 голосов
/ 10 января 2019

У меня постоянная ошибка синтаксиса усилителя при определении параметров матрицы. Вот как я определил мои параметры: D - вектор из 7 целых чисел!

#

данные; сброс;

параметр NP: = 7; параметр NT: = 4;

параметр D: = 1 12000 2 32000 3 25000 4 36000 5 25000 6 30000 7 18000;

Итак, я получаю синтаксическую ошибку:

prod_elec.dat, строка 8 (смещение 53): контекст синтаксической ошибки: 1 >>> 12000 <<< </p>

Пожалуйста, помогите мне, я понятия не имею, как это решить, я следовал определениям книги, которая раньше тоже работала для меня ..

Большое спасибо заранее!

1 Ответ

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

Похоже, вы хотите, чтобы D был индексированным параметром, но код, который вы опубликовали, не объявляет его индексированным. Даже если был предыдущий оператор модели, который объявил его индексированным, он будет удален вашим оператором reset. Таким образом, AMPL ожидает одно значение, и когда оно видит второе значение (здесь 12000), оно выдает ошибку.

Как-то так должно работать:

reset;
model;
param NP;
param NT;
param D{1..NP};
data; 
param NP:=7; param NT:=4;
param D:= 1 12000 2 32000 3 25000 4 36000 5 25000 6 30000 7 18000 ;
...