Originally posted by: ouaigooo
Hi
After solving my model, I want to export some results using OPL script.
I noticed that it takes damned long to process some expressions (dexpr).
It looks like OPL has to recalculate the expression value.
Wasn't it already done before (when solving model, since this expression is used by constraints) ?
Is there a way to accelerate ?
to force calculating this stuff before ?
You'll find an example below.
Thanks in advance for your help !
Example:
...
dvar float+ flow1[X1][I][T];
dexpr float flow[f in X][i in I][o in T] = (f in X1) ? flow1[f,i,o] :
sum(x in D: (x.name == f) && (x.field == i) && (x.start < o.stop) && (x.stop > o.start)) x.value*(minl(o.stop, x.stop) - maxl(o.start, x.start)) / (o.stop - o.start);
...
execute {
for (var t in T) for (i in I) for (x in X) s = s +";"+1000*flow[x][i][t]; // takes really long
for (var t in T) for (i in I) for (x in X1) s = s +";"+1000*flow1[x][i][t]; // very quick
...
#DecisionOptimization#OPLusingCPLEXOptimizer