在AMPL中运行此脚本时出现语法错误。有人可以帮我解决这个问题吗?
param K;
param N;
param PT;
param beta_lower{1..K};
param beta_upper{1..K};
set KSET := {1 . . K};
set NSET := {1 . . N};
param Channel {KSET,NSET};
var V
var C {KSET, NSET} binary;
#==================================
data;
param K:=2;
param N:=64;
param PT:= 1;
param beta_lower:= 1 1.99 2 3.99;
param beta_upper:= 1 2.01 2 4.01;
param Channel : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 :=
1 1366 1474 1583 1690 1790 1881 1963 2036 2101 2161 2217 2268 2315 2355 2385 2402 2403 2386 2350 2295 2223 2137 2041 1939 1835 1734 1639 1553 1479 1419 1375 1347 1335 1339 1357 1386 1421 1459 1494 1523 1542 1548 1540 1520 1490 1451 1409 1364 1321 1279 1239 1201 1164 1127 1092 1060 1034 1016 1012 1024 1055 1107 1178 1265
2 1297 1281 1250 1201 1135 1055 963 867 772 685 611 555 519 504 510 536 579 636 702 775 851 928 1002 1074 1143 1209 1276 1345 1420 1503 1596 1698 1808 1921 2033 2137 2225 2290 2327 2333 2309 2256 2180 2089 1989 1890 1796 1712 1641 1582 1533 1493 1458 1425 1393 1364 1337 1314 1298 1289 1288 1292 1297 1301;
我在tex文件(.rtf)中编写这段代码并将其上传到neos-server
求解器的输出为:
amplin,第7行(偏移54):
语法错误
context:>>> {\<<< rtf1 \ ansi \ ansicpg1252 \ cocoartf12processing commands。
执行neos-2.neos-server.org
/ opt / ampl / ampl -R amplin中的错误(2)
答案 0 :(得分:0)
问题在于您在代码中混合了AMPL模型和数据的语法。特别是,您应该首先在模型中声明参数beta_lower
:
param beta_lower{1..K}; # you may want a different indexing expression here
然后在数据部分为其提供数据:
data;
param beta_lower:= 1 1.99 2 3.99;
您更新的公式看起来是正确的,但错误表明它位于RTF format。要使其工作,您应该将其转换为纯文本。