tag:blogger.com,1999:blog-8781383461061929571.post4768439639186295326..comments2024-03-14T09:08:19.035-04:00Comments on OR in an OB World: LP Cutting Planes in CPLEXPaul A. Rubinhttp://www.blogger.com/profile/05801891157261357482noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-8781383461061929571.post-74582732012558352632017-07-19T08:24:28.548-04:002017-07-19T08:24:28.548-04:00Sounds like a bug in your code. I suggest asking o...Sounds like a bug in your code. I suggest asking on the CPLEX help forum or on OR Exchange. There are links in the right margin of this page under "Places to Ask Questions"; for the CPLEX forum, you will need to drill down a level or two.Paul A. Rubinhttps://www.blogger.com/profile/05801891157261357482noreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-33167093955818689712017-07-19T05:24:02.941-04:002017-07-19T05:24:02.941-04:00Hello,
I'm working with Benders method and I w...Hello,<br />I'm working with Benders method and I what I'm doing now is a single constraint generation.<br />the problem is that at each iteration, the solver delete the previous constraint added and add a new one.<br />Do you know how can I fix it? <br />thank youAnonymoushttps://www.blogger.com/profile/17009060866018528357noreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-77245853165897708612015-07-05T14:56:33.020-04:002015-07-05T14:56:33.020-04:00To calculate total time for the first approach, yo...To calculate total time for the first approach, you can use IloCplex.getCplexTime() to get a time stamp at the start and end of each pass through the loop, or just once before starting the loop and once after exiting the loop. I don't know if that's any more accurate than doing the same with Java's System.currentTimeMillis() method.<br /><br />Please note that my second approach in the post used a single call to the solver (with a lazy constraint callback). If you use an info callback to stop the (MIP) solver, add a constraint, then restart the MIP solver, I think you force CPLEX to start with a new search tree (because you have modified the problem that generated the old tree). With an LP, you can make modifications and CPLEX can repair the final basis of the starting run to get a basis for the new run, usually fairly quickly. Hot-starting a MIP that has changed is different, since the changes invalidate the previous search tree. So I would expect solve MIP - stop - modify - restart MIP applied to an LP to be *much* slower than solve LP - modify - restart LP.Paul A. Rubinhttps://www.blogger.com/profile/05801891157261357482noreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-78278169841031715852015-07-04T08:21:44.147-04:002015-07-04T08:21:44.147-04:00Dear Prof. Rubin,
I have a question regarding the...Dear Prof. Rubin,<br /><br />I have a question regarding the first method above ("solve - cut - repeat").<br />How to calculate the total time?<br /><br />I tried the concept of "solve-cut-repeat" on my MIP, but I found difficulty to get the running time. Because, when I repeat the solving proccess, it seems that the optimization start from the beginning again, so that there will be an additional time on each iteration.<br /><br />I used the MIPINFOCALLBACK to stop the solving process when it found new incumbent solution. Add/remove the constraint, and then re-solve again.<br /><br />I compare this method with the plain CPLEX and time gap is large (plain CPLEX is far better). I used the same parameter setting on both.<br /><br />Do you have any suggestion regarding this issue?<br /><br />best regards,Anonymousnoreply@blogger.com