Originally posted by: SystemAdmin
[ozkok said:]
hi all,
I am using concert technology to implement a branch and cut algorithm and I have some problems.
I identify some violated inequalities in a function which I call in CutCallback and store the inequalities in a IloRangeArray. By this way, when my function ends, I can add all cuts stored in the IloRangeArray by the add method.
however, I encounter the following problems. the running time of my algorithm (the same code, the same input) changes every time I ran the code. The changes are quite large, for example, I can obtain the optimal solution for a specific problem instance in 500 seconds while it takes more than 700 seconds in another run. Note that, running times are the only thing that change, other than that everything (number of cuts generated, optimal value etc.) remains the same as expected. Note also that, there are no other processes running on the workstation at that time.
Moreover, it takes too long to add the violated inequalities to the model through add method in the cutcallback. For example, in the example I described above, I generate around 5000 cuts. Although it takes only 2 seconds in total to find and generate the cuts, it takes more that 200 seconds to add them to the model (not solving them).
I observed that, the change in running times is due to the time spent on adding the cuts. The solution times of subproblems, and separation algorithms remain almost the same, but time required for cut addition varies significantly each time.
Is this change normal (it does not seem normal to me) ? Is there anybody who knows why this problem occurs? Or is there a better way to add the cuts more efficiently?
I hope I could described my problem clearly enough. I would appreciate any help
Thanks in advance
#CPLEXOptimizers#DecisionOptimization