Originally posted by: MatteoFin
Hello,
I have a question about the syntax of the name of the constraints that are identified as members of a conflict, in the conflict refiner in the CPLEX IDE.
The problem arises when the conflict refiner finds in the conflict one or more constraints that are repeated over a range. E.g:
forall (a in range1, b in range2) { (let's suppose range1 from 1 to 200 and range2 from 1 to 10).
constraint1: x[a][b] + y[a][b] <= c
}
forall (a in range1) {
constraint2: ....
}
The point is that, for some reason, the indication of the exact constrain/s of the set ( forall (a in range1, b in range2) ) is not unique. In particular, there are 3 possible forms that I have noticed so far:
- constraint1#10#5. However, I noticed that the indexes after the # starts from 0, even if the range1 and range2 is from 1, there isn't any 0 !! Why does this happen? Is it always true?
- constraint1[10][5]. In this case, it seems to start from 1. But why there is the bracket [] instead of the # now? What's the difference? With [], do the indexes start always from 1?
- constraint2[6]. Does it start from 1 or 0?
To sum up, I would like to understand:
1) why sometimes the conflict refiner shows names with # and sometimes with [].
2) when the index of the constraint starts from 0 (therefore the constraint of the conflict is the following and not the one which is shown), and when from 1. And, if possible, why, considering that there are no zeros in the ranges, but they start from 1.
3) Are there additional syntaxes of which I am not aware?
Thank you very much for your help.
Best regards,
Matteo.
#DecisionOptimization#OPLusingCPLEXOptimizer