Я делаю MIP, который пытаюсь запустить через NEOS cplex (AMPL).
Каждый раз, когда я запускаю его, я получаю один и тот же код ошибки, хотя я пытался найти и исправить ошибку
Я получаю ошибку:
«amplin, строка 9 (смещение 93):
ошибка синтаксиса
контекст: >>> {\ <<< rtf1 \ ansi \ ansicpg1252 \ cocoartf1671 "</p>
Я довольно новичок в 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;
Так что, если кто-нибудь может помочь мне направить меня к ошибке, чтобы я мог ее исправить, я был бы очень признателен.
Искренне отчаянный новый кодер.