Originally posted by: PhilippeLaborie
Hello,
I think your objective function formulation could be slightly improved by avoiding the division and using:
Profits.add( Profit[j] * IloPower( 1.0 + r, -IloEndOf(Task[j]) ) );
I'm a bit surprised you do not have any coefficient alpha (alpha << 1) in the exponent, I suppose of course that you have r<<1, but when IloEndOf(Task[j]) gets quite large, you would probably loose less precision by using exp(- alpha * IloEndOf(Task[j])).
CP Optimizer does not use LCG but some Large Neighbourhood Search guided (here) by a linear relaxation of the problem that will convexify the NPV objective function. I'm interested to see how your CPO model compares to the results of the paper you mention. Note that in the paper, the problems are tiny (largest problems have 30 tasks); it would also be interesting to compare the approaches on more realistic problems that are 10 or even 100 times larger.
#CPOptimizer#DecisionOptimization