| 1. |
The model file must start with a defined keyword, but I found instead ‘xxxxx’. |
| |
The model file must start with one of these keywords: |
| |
TITLE, INDEX, DATA, DECISION, VARIABLES, CONSTRAINTS, MACRO, MODEL, MAX, MIN. |
| 2. |
I expected to see a problem name after the keyword TITLE, but found instead ‘xxxxx’. |
| |
Example: |
| |
TITLE + FAME_Simulation ; ^ |
| |
The problem title can only be a name. |
| 3. |
I expected to see a keyword starting the next section,
but found instead ‘xxxxx’. |
| |
Example: |
| |
TITLE Plan_for_1_year ; |
| |
ProdInvt1 : 20000 + Prod1 = Invt1 + 90000 ; ^ |
| |
The model file must contain an objective function, which in turn
must begin with the keywords MAX or MIN. In this example the objective
function is missing. |
| 4. |
I expected to see a semicolon ';' after the objective function,
but found instead ‘xxxxx’. |
| |
Example: |
| |
MAX 3x1 + 5x2 { note the lack of semicolon } x1 < 4 ; ^ |
| 5. |
I expected to see a semicolon ';' after the previous constraint,
but found instead ‘xxxxx’. |
| |
Example: |
| |
x1 < 4 ; 2 x2 < 12 { note the lack of semicolon } -3 x1 + 2 x2 < 18 ; ^ |
| |
Note that semicolon errors are normally not noticed until the next constraint is parsed.
Furthermore, if the next constraint begins with plus or minus sign, the missing semicolon
is normally not noticed until the comparison in that constraint has been reached. |
| 6. |
I expected to see either a number or a variable, but found instead ‘xxxxx’. |
| |
Example: |
| |
3x1 + 2x2 + < 18 ; ^ |
| 7. |
I expected to see a left parenthesis '(', but found instead ‘xxxxx’. |
| |
Example: |
| |
3x + log 3 < 5 ; ^ |
| |
A pair of parentheses must be around the argument for the
arithmetic functions. |
| 8. |
I expected to see a ')', closing the parenthesis, but found
instead ‘xxxxx’. |
| |
Example: |
| |
3(Sb1 + Co1 + So1 = 2 (Sb2 + Co2 + So2) ; ^ |
| 9. |
I expected to see a constraint name after the keyword REFERENCE. |
| 11. |
I expected to see a semicolon ';' after the previous bound,but
found instead ‘xxxxx’. |
| |
Example: |
| |
BOUNDS work1 < 60 {note the lack of semicolon } work2 < 60 ; ^ |
| 12. |
I expected to see a variable name, but found instead ‘xxxxx’. |
| |
Example: |
| |
BOUNDS 3 < + invt1 ; ^ |
| 13. |
I expected to see a relational operator such as '<' or '>', but
found instead ‘xxxxx’. |
| |
Example: |
| |
BOUNDS x 3 ; ^ |
| 14. |
I expected to see a less than operator such as '<',but
found instead ‘xxxxx’. |
| |
Example: |
| |
BOUNDS 3 < x > 4 ; ^ |
| 15. |
I expected to see a greater than operator such as '>',
but found instead ‘xxxxx’. |
| |
Example: |
| |
BOUNDS 3 > x = 4 ; ^ |
| 16. |
A lower bound 'xxxxx' has already been defined for the
variable ‘xxxxx’. |
| |
Example: |
| |
BOUNDS x > 3; 4 < x; |
| |
A lower bound ‘xxxxx’ has already been defined for the
variable ‘xxxxx’. |
| 17. |
An upper bound 'xxxxx' has already been defined for the
variable 'xxxxx'. |
| |
Example: |
| |
BOUNDS z < 4; y < 4; z < 3; |
| |
This is the second time an upper bound is defined for
the variable ‘z’. |
| 18. |
The lower bound 'xxxxx' is higher than the already
defined upper bound 'xxxxx'. |
| |
Example: |
| |
BOUNDS 5 < x < 3 ; ^ |
| 19. |
The upper bound 'xxxxx' is lower than the
already defined lower bound 'xxxxx'. |
| |
Example: |
| |
BOUNDS x < -5 ; ^ |
| |
The upper bound for a variable must be greater than zero unless the variable is given a
negative lower bound. |
| 21. |
The argument for EXP must be less than 40.0 |
| 22. |
The argument for SQR must be less than 10000000000. |
| 23. |
The argument for LN must be greater than zero. |
| 24. |
The argument for LOG must be greater than zero. |
| 25. |
The argument for SQRT must be greater than zero. |
| 26. |
The argument for RANDOM must be a positive integer. |
| 27. |
The random seed must be a positive integer. |
| 28. |
I expected to see an assignment of a new seed value,
but found instead ‘xxxxx’. |
| 31. |
Division by zero in a coefficient is not allowed. |
| |
Example: |
| |
1/3 prod1 + 2/0 prod2 ^ |
| 32. |
I expected to see a closing text quote
'"' before reaching the end of the line. |
| |
Example: |
| |
TITLE "Production planning" ^ |
| |
Text quotes must be closed in the same line. |
| 33. |
I found an end of comment '}' without the corresponding
beginning '{'. |
| 34. |
I expected to see a closing braces '}', closing this comment, but reached
instead the end of the file. |
| |
Your comments are not paired up properly. Check to make sure that each left braces
have an accompanying right braces. |
| 35. |
I expected to see a description of 'xxxxx' after the keyword IS, but found
instead ‘xxxxx’. |
| 41. |
The name 'xxxxx' has already been defined. |
| 42. |
I expected to see an assignment symbol ':=', but
found instead ‘xxxxx’. |
| |
Example: |
| |
INDEX product 1..3 ; ^ |
| 43. |
I expected to see a name abbreviation, but found
instead ‘xxxxx’. |
| |
Example: |
| |
DECISION VARIABLES Inventory [month] -> Model ^ |
| 44. |
I expected to see an equal sign '=',
but found instead ‘xxxxx’. |
| 45. |
I expected to see a colon ':', but found
instead ‘xxxxx’. |
| |
Example: |
| |
SUM(i, price*product) ^ |
| |
The index list in the summation must be followed
with a colon. |
| 46. |
I expected to see a number, but found
instead ‘xxxxx’. |
| 47. |
I expected to see a semicolon after the data vector
formula, but found instead ‘xxxxx’. |
| 48. |
I expected to see a unit name, but found
instead ‘xxxxx’. |
| 51. |
I expected to see a defined index, but found
instead ‘xxxxx’. |
| 52. |
I expected to see a defined data vector,
but found instead ‘xxxxx’. |
| |
Example: |
| |
INDEX i = 1..5; DECISION VARIABLES x[i] DATA A[i] := x ; ^ |
| 53. |
I expected to see a variable vector, but found
instead ‘xxxxx’. |
| |
Example: |
| |
INDEX i = 1..5; DATA d[i] := (1,2,3,4,5) ; DECISION VARIABLES ; x BOUNDS d[i] < x ; ^ |
| 54. |
I expected to see data or variable vector in the sum,
but found instead ‘xxxxx’. |
| |
Example: |
| |
DECISION VARIABLES ; x MAX Z = SUM(x) |
| 55. |
I expected to see an integer subscript entry for the index 'xxxxx', but
found instead ‘xxxxx’. |
| |
Example: |
| |
INDEX i = 1..5; MAX Z = x[Jan] ^ |
| 56. |
I expected to see a an name subscript entry for the
index 'xxxxx', but found instead ‘xxxxx’. |
| |
Example: |
| |
INDEX month := (Jan,Feb,Mar,Apr,May,Jun) ; MAX Z = SUM(month<Dec: Invt) ; ^ |
| 57. |
I expected to see an offset value for the index,
but found instead ‘xxxxx’. |
| |
Example: |
| |
SUM(i,j: x[i-y]); ^ |
| |
The offset value for a index subscript must be a scalar
number, another index or a data vector. |
| 58. |
I expected to see an offset value for the index,
but found instead ‘xxxxx’. |
| |
Example: |
| |
DATA d(i) := (1,2,3,4,5) ; ^ |
| 59. |
I expected to see a right bracket ']', but found
instead ‘xxxxx’. |
| |
Example: |
| |
DECISION VARIABLES production[i -> Prod] ; ^ |
| 61. |
I expected to see a definition such as subscript
range for the index 'xxxxx', but found instead ‘xxxxx’. |
| |
Example: |
| |
INDEX i := 1.. ; ^ |
| 62. |
I expected to see a name of a datafile,
but found instead ‘xxxxx’. |
| |
Example: |
| |
Datafile(DATA): ^ |
| |
The data filename must not be keyword such as DATA
unless it is put in quotes. |
| 63. |
I expected to see a number element for the data vector,
but found instead ‘xxxxx’. |
| 64. |
I expected to see a comma separator ',' between data elements,
but found instead ‘xxxxx’. |
| 65. |
There are not enough numbers in this data vector. |
| 66. |
This sparse data element has already been entered. |
| 67. |
I expected to see a field or column number, but found
instead ‘xxxxx’. |
| 68. |
I expected to see a semicolon ';' after the previous macro
definition, but found instead ‘xxxxx’. |
| |
Example: |
| |
MACRO A := SUM(i: x) { Note the lack of semicolon } B := SUM(i: y) ^ |
| 71. |
The index range is reversed (hi..lo). |
| |
Example: |
| |
INDEX product = 3..1 ; ^ |
| |
The first number in a index range must be
less than or equal to the second one. |
| 72. |
The subscript 'xxxxx' is not within the defined
range of the index 'xxxxx'. |
| |
Example: |
| |
INDEX i := 1..5; k[i] := (2,4,6); ^ |
| 73. |
The subscript 'xxxxx' has already been given for this subindex. |
| |
Example: |
| |
INDEX month := (Jan,Feb,Mar,Apr,May,Jun); Holiday[month] := (Apr,May,Jun,Apr); ^ |
| 74. |
This set difference operation failed as this set
is not a subsetof the earlier. |
| 75. |
I expected to see an integer sublength,
but found instead ‘xxxxx’. |
| |
Example: |
| |
INDEX month := (Jan,Feb,Mar) : { Note the lack } DATA { of sublength } ^ |
| 76. |
This short name list is not the same size as the
previous named subscript list (xxxxx). |
| |
Example: |
| |
INDEX product := (ProductA,ProductB) -> (A,B,C); ^ |
| 77. |
The index ‘xxxxx’ is not multi-dimensional. |
| 78. |
Not a valid subscript for the index ‘xxxxx’. |
| 81. |
The index 'xxxxx' must have the same declaration
as the index 'xxxxx'. |
| 82. |
The index 'xxxxx' does not match the declaration of the vector 'xxxxx'. |
| |
Example: |
| |
DECISION VARIABLES x[j] MODEL MAX Z := SUM(i,j: x[i,j]); ^ |
| 83. |
The index 'xxxxx' is not specified in the underlying index list. |
| 84. |
The index 'xxxxx' in vector 'xxxxx' is not specified
in the underlying index list. |
| |
Example: |
| |
SUBJECT TO constr[i] : x[i,j] < 5: |
| |
The index ‘j’ must be specified in the constraint. |
| 85. |
The fixed subscript ‘xxxxx’ for the index
‘xxxxx’ is not possible here as the index has already been referred in the vector. |
| 86. |
The index 'xxxxx' has already been given a condition
where this vector was defined. |
| 87. |
The option name 'xxxxx' is not recognized by MPL. |
| 96. |
The keyword 'xxxxx' is reserved for use with MPL. |
| 97. |
The character 'x' is reserved for future use. |
| |
These characters are reserved for use in future releases:
\ | ~ |
| 98. |
The keyword ‘xxxxx’ is reserved for future use. |
| |
The following keywords are reserved for use in future releases of MPL:
DEFINE, FOR, FOREACH, INIT, INITIAL, INITIALIZE, INF, MOD, NORMAL, POWER, ST,
UNIT, UNITS, USING |