параметр уже определен в ampl

Я хочу определить некоторые параметры в файле ampl, однако программное обеспечение указывает, что параметр определен, когда я пытаюсь его запустить. Как я могу решить эту проблему?

set N := 1..6;
set N_row := 1..4;

var x{i in N} >= 0, <= 1 default 0;

param alpha{N_row};
param A{N_row,N};
param P{N_row,N}; 

param alpha := 1 1.0  2 1.2  3 3.0  4 3.2;
param A :=
[1,*] 1 10  2 3  3 17  4 3.5  5 1.7  6 8
[2,*] 1 0.05  2 10  3 17  4 0.1  5 8  6 14
[3,*] 1 3  2 3.5  3 1.7  4 10  5 17  6 8
[4,*] 1 17  2 8  3 0.05  4 10  5 0.1  6 14;
param P :=
[1,*] 1 0.1312  2 0.1696  3 0.5569  4 0.0124  5 0.8283  6 0.5886
[2,*] 1 0.2329  2 0.4135  3 0.8307  4 0.3736  5 0.1004  6 0.9991
[3,*] 1 0.2348  2 0.1451  3 0.3522  4 0.2883  5 0.3047  6 0.6650
[4,*] 1 0.4047  2 0.8828  3 0.8732  4 0.5743  5 0.1091  6 0.0381;


minimize Obj: sum {i in N_row} (alpha[i]*exp(-1*(sum{j in N} A[i,j]*(x[j]-P[i,j])**2)));

option solver scip;
solve;
display x;
display Obj;
display alpha;
display A;
display P;

сообщение об ошибке


person Jiawei Lu    schedule 18.10.2018    source источник
comment
Я знаю, что могу поместить информацию о параметрах в файл .dat, но я хочу включить ее в файл .mod.   -  person Jiawei Lu    schedule 18.10.2018


Ответы (1)


Как правило, рекомендуется разделять модель и данные, но если вы действительно хотите это сделать, вы можете использовать оператор «data», чтобы переключиться в режим данных, а затем «model», чтобы переключиться обратно. Как это:

set N := 1..6;
set N_row := 1..4;

var x{i in N} >= 0, <= 1 default 0;

param alpha{N_row};
param A{N_row,N};
param P{N_row,N}; 

data;
param alpha := 1 1.0  2 1.2  3 3.0  4 3.2;
param A :=
[1,*] 1 10  2 3  3 17  4 3.5  5 1.7  6 8
[2,*] 1 0.05  2 10  3 17  4 0.1  5 8  6 14
[3,*] 1 3  2 3.5  3 1.7  4 10  5 17  6 8
[4,*] 1 17  2 8  3 0.05  4 10  5 0.1  6 14;
param P :=
[1,*] 1 0.1312  2 0.1696  3 0.5569  4 0.0124  5 0.8283  6 0.5886
[2,*] 1 0.2329  2 0.4135  3 0.8307  4 0.3736  5 0.1004  6 0.9991
[3,*] 1 0.2348  2 0.1451  3 0.3522  4 0.2883  5 0.3047  6 0.6650
[4,*] 1 0.4047  2 0.8828  3 0.8732  4 0.5743  5 0.1091  6 0.0381;

model;
# etc.
person Geoffrey Brent    schedule 21.10.2018