Я делаю MIP, который пытаюсь запустить через NEOS cplex (AMPL). Каждый раз, когда я запускаю его, я получаю один и тот же код ошибки, даже если я пытался найти и исправить ошибку. Я получаю следующую ошибку: "ampin, строка 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;
Так что, если кто-нибудь может помочь мне направить меня к ошибке, чтобы я мог ее исправить, я был бы очень признателен.
Искренне отчаянный новый программист.