我正在制作一个MIP,试图通过NEOS cplex(AMPL)运行它。 每次我运行它时,即使我尝试查找并修复错误,也会得到相同的错误代码。 我得到的错误是: “ amplin,第9行(偏移量93): 语法错误 上下文:>>> {\ <<< rtf1 \ ansi \ ansicpg1252 \ cocoartf1671“
我是AMPL的新手,因此我不确定错误代码的含义。 我的代码分为一个模型文件和一个数据文件,两者均写为.txt文件。我似乎无法找到错误。 型号:
# Parameters
param m;
param n;
param T;
param sigma{t in 1..T};
param capacity{j in 1..m};
param demand{i in 1..n};
param cost{i in 1..n, j in 1..m};
param holding;
param InInv{j in 1..m};
# Decision variables
var x{i in 1..n, j in 1..m} binary;
var Produced{j in 1..m, t in 1..T} integer <= capacity[j] >= 0;
var sold{j in 1..m, t in 1..T} integer >= 0;
var inventory{j in 1..m, t in 0..T} integer >= 0;
# Objective function
minimize TotalCost: sum{i in 1..n, j in 1..m} x[i,j]*cost[i,j] + sum{j in 1..m, t in 1..T}holding * inventory[j,t];
# Constraints
subject to BalanceInventory {j in 1..m, t in 1..T}:
Produced[j,t]+inventory[j,t-1]=sold[j,t]+inventory[j,t];
subject to SingleSourcing {i in 1..n}:
sum{j in 1..m} x[i,j] = 1;
subject to InitInv {j in 1..m}:
inventory[j,0]=InInv[j];
数据:
#Parameters
param m := 4;
param n := 30;
param T := 6;
param sigma := 1 0.125 2 0.125 3 0.25 4 0.125 5 0.125 6 0.25;
param capacity := 1 375 2 375 3 375 4 375;
param demand := 1 200 2 492 3 91 4 190 5 351 6 323 7 23 8 157 9 374 10 351 11 432 12 161 13 300 14 300 15 219 16 339 17 312 18 653 19 440 20 207 21 281 22 233 23 409 24 215 25 7 26 680 27 215 28 395 29 165 30 333;
param cost :
1 2 3 4 :=
1 6.97 3.47 1.73 4.34
2 9.67 3.05 2.78 6.89
3 4.01 4.33 7.2 8.67
4 3.97 5.33 4.75 4.47
5 5.91 5.98 3.6 2.42
6 9.49 6.14 1.67 3.28
7 6.03 3.60 7.53 9.83
8 6.12 6.13 3.57 2.17
9 2.48 7.22 6.9 5.66
10 8.41 3.41 1.11 5.07
11 2.34 5.47 6.32 8.08
12 6.97 5.22 2.15 2.59
13 4.51 3.43 6.32 8.08
14 8.63 8.46 4.63 0.69
15 3.57 4.06 6.01 7.18
16 8.05 4.06 8.48 11.35
17 10.36 5.38 1.77 5.19
18 0.89 8.38 9.5 8.87
19 7.04 1.11 5.39 8.4
20 0.99 6.88 8.33 8.28
21 0.59 7.22 8.49 8.24
22 7 1.34 3.36 6.48
23 2.88 5.28 7.59 8.5
24 8.32 0.73 4.4 8.01
25 6.85 1.41 3.4 6.43
26 4.09 7.19 5.88 4.06
27 8.48 1.38 3.5 7.26
28 1.02 8.47 9.05 8.03
29 6.14 2.39 6.3 8.83
30 9.07 6.23 1.83 2.7;
param holding := 1;
param InInv := 1 0 2 0 3 0 4 0;
因此,如果有人可以帮助我引导我解决错误,以便对其进行修复,我将不胜感激。
真诚地拼命求新。
答案 0 :(得分:0)
您可以尝试安装size-limited demonstration version of AMPL,根据需要减小问题的大小以适应该版本的限制,然后使用它来测试代码。
这将有助于确定问题是否出在您的语法中,或者与您使用NEOS的方式有关。正如@melpomene所建议的那样,您发送的文件也可能不是预期的格式,因此请尝试将其通过纯文本编辑器传递,例如AMPL IDE的编辑器。
根据我的经验,调试NEOS运行可能会令人沮丧,因此最好在本地系统上进行尽可能多的调试,以便获得更多反馈。