Hello,
so, yes I get that same output if I disable the tolerance levels.
But, as I specified, I'm enabling both relative and absolute tolerance levels.
Tolerances:
<setting name="relativeoptimalitytolerance" value="0.1"/>
<setting name="optimalitytolerance" value="5.0"/>
In such a case, the full output is as follows (sorry, I forgot to upload it yesterday).
! --------------------------------------------------- CP Optimizer 22.1.2.0 --
! Minimization problem - 307 variables, 407 constraints
! TimeLimit = 600
! LogVerbosity = Terse
! OptimalityTolerance = 5
! RelativeOptimalityTolerance = 0.1
! Initial process time : 0.01s (0.01s extraction + 0.00s propagation)
! . Log search space : 1,025.7 (before), 1,025.7 (after)
! . Memory usage : 1.7 MB (before), 1.7 MB (after)
! Using parallel search with 4 workers.
! ----------------------------------------------------------------------------
! Best Branches Non-fixed W Branch decision
0 307 -
+ New bound is 0; 8,937; 86
* 1 595 0.05s 1 (gap is 84.81% @ crit. 3 of 3)
New objective is 1; 9,906; 566
* 0 1,836 0.05s 2 (gap is 12.92% @ crit. 2 of 3)
New objective is 0; 10,263; 544
0 8,605 129 2 F -
+ New bound is 0; 9,605; 458 (gap is 15.81% @ crit. 3 of 3)
* 0 9,194 0.28s 2 (gap is 15.81% @ crit. 3 of 3)
New objective is 0; 10,089; 544
* 0 8,369 0.32s 4 (gap is 19.79% @ crit. 3 of 3)
New objective is 0; 9,220; 571
* 0 9,529 0.34s 3 (gap is 19.79% @ crit. 3 of 3)
New objective is 0; 9,216; 571
* 0 9,700 0.36s 3 (gap is 19.51% @ crit. 3 of 3)
New objective is 0; 9,154; 569
* 0 10,041 0.38s 3 (gap is 19.37% @ crit. 3 of 3)
New objective is 0; 9,102; 568
* 0 11,482 0.42s 2 (gap is 19.08% @ crit. 3 of 3)
New objective is 0; 9,043; 566
* 0 11,055 0.43s 3 (gap is 19.37% @ crit. 3 of 3)
New objective is 0; 8,998; 568
! ----------------------------------------------------------------------------
! Search completed, 9 solutions found.
! Best objective : 0; 8,998; 568 (optimal)
! Best bound : 0; 9,605; 458
! ----------------------------------------------------------------------------
! Number of branches : 48,849
! Number of fails : 16,137
! Total memory usage : 13.1 MB (12.1 MB CP Optimizer + 1.0 MB Concert)
! Time spent in solve : 0.44s (0.43s engine + 0.01s extraction)
! Search speed (br. / s) : 113,602.3
! ----------------------------------------------------------------------------
As expected, once it finds a solution within the tolerance level for the i-th goal then it starts optimizing the i+1-th goal. If a new solution is found that is not worsening any of the goals from 1 to i+1 then that's the new objective, as it should be.
But the thing is, the best bound is not updated anymore for the previous goals from 1 to i, since they have already been optimized and "closed" (according to tolerance).
So, is there any way to keep the best bounds updated?
PS I am running it via oplrun on linux.