Ошибка синтаксиса с AMPL

Я получаю синтаксическую ошибку при запуске этого скрипта в 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;

Я пишу этот фрагмент кода в текстовом файле (.rtf) и загружаю его на neos-server

Результат решателя:

ampin, строка 7 (смещение 54):

ошибка синтаксиса

контекст: >>> {\ ‹<< rtf1 \ ansi \ ansicpg1252 \ cocoartf12processing commands.

Запуск на neos-2.neos-server.org

Ошибка (2) в / opt / amp / amp -R ampin


person Dipankar Narayanan    schedule 09.12.2014    source источник


Ответы (1)


Проблема в том, что вы смешиваете синтаксис модели 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. Чтобы он заработал, вам нужно преобразовать его в обычный текст.

person vitaut    schedule 09.12.2014
comment
Спасибо, нельзя ли объединить .mod и .dat в один файл? - person Dipankar Narayanan; 10.12.2014
comment
Можно объединить модель и данные в один файл. Вы можете переключаться между режимами с помощью команд model и data. - person vitaut; 19.01.2015