Ampl 从文字初始化二维数组
我有这个数据文件:Ampl 从文字初始化二维数组,ampl,Ampl,我有这个数据文件: param: name car pro fat vit cal := 1 'Fiddleheads' 3 1 0 3 80 2 'Fireweed Shoots' 3 0 0 4 150 3 'Prickly Pear Fruit' 2 1 1 3 190 ; 这个模型: set I; set J; param name{I}
param: name car pro fat vit cal :=
1 'Fiddleheads' 3 1 0 3 80
2 'Fireweed Shoots' 3 0 0 4 150
3 'Prickly Pear Fruit' 2 1 1 3 190
;
这个模型:
set I;
set J;
param name{I} symbolic;
param car{I} integer >= 0;
param pro{I} integer >= 0;
param fat{I} integer >= 0;
param vit{I} integer >= 0;
param cal{I} integer >= 0;
param nut{i in I, J} = (car[i], pro[i], fat[i], vit[i]);
最后一行无效:
mod, line 10 (offset 176):
syntax error
context: param nut{i in I, J} = >>> (car[i], <<< pro[i], fat[i], vit[i]);
mod,第10行(偏移量176):
语法错误
上下文:param nut{i in i,J}=>>>(car[i],模型:
数据:
有关变体,请参阅
“default 0”选项避免了显式列出零值的需要,这对于稀疏数据集非常有用
有一个AMPL输入格式是很有用的,该格式允许在一个简单的表布局中指定一个2-D参数,并带有行和列标题,与数据步骤的行一致,但我不知道有哪种格式可以做到这一点
set names;
set components;
param nut{names,components} default 0;
set names :=
Fiddleheads
'Fireweed Shoots'
'Prickly Pear Fruit';
set components := car pro fat vit cal
;
param nut :=
[Fiddleheads,*]
car 3 pro 1 vit 3 cal 80
['Fireweed Shoots',*]
car 3 vit 4 cal 150
['Prickly Pear Fruit',*]
car 2 pro 1 fat 1 vit 3 cal 190
;