tag:blogger.com,1999:blog-8781383461061929571.post8863074590720971999..comments2024-03-14T09:08:19.035-04:00Comments on OR in an OB World: Dual Values for Primal Variable BoundsPaul A. Rubinhttp://www.blogger.com/profile/05801891157261357482noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-8781383461061929571.post-91579823620142311892016-06-06T10:03:09.965-04:002016-06-06T10:03:09.965-04:00This comment has been removed by a blog administrator.Anonymoushttps://www.blogger.com/profile/06191780519947772549noreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-20787811533042534052015-09-06T14:20:29.358-04:002015-09-06T14:20:29.358-04:00Yes. If your thinking was to fix variables for whi...Yes. If your thinking was to fix variables for which rounding to the next integer in one direction would be guaranteed by the reduced cost to be suboptimal (and rounding in the other direction either would be guaranteed infeasible or would not be possible because the variable has an integer value in the LP solution), I would not be surprised if CPLEX is already doing those fixings for you.Paul A. Rubinhttps://www.blogger.com/profile/05801891157261357482noreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-56840179517266229322015-09-06T14:07:05.415-04:002015-09-06T14:07:05.415-04:00Thanks a lot
what I wanted to do is have some vari...Thanks a lot<br />what I wanted to do is have some variable fixing based on the reduced costs, I can only use the PseudoCosts in a heuristic fashion to select which variable to branch on. Am I right? Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-87343761854312899742015-09-06T13:51:56.612-04:002015-09-06T13:51:56.612-04:00In the C API, possibly (I'm not sure). In the ...In the C API, possibly (I'm not sure). In the "higher" APIs (C++, Java, C#, ...), I don't think so; but you can get pseudocosts with getDownPseudoCost() and getUpPseudoCost() (plus "plural" versions of each).Paul A. Rubinhttps://www.blogger.com/profile/05801891157261357482noreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-4480171419329721212015-09-06T13:13:58.899-04:002015-09-06T13:13:58.899-04:00Hi Prof. Rubin
How we can get the reduced costs at...Hi Prof. Rubin<br />How we can get the reduced costs at each node of the tree if we use CallBacks in IloCplex?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-54747559390441307832014-05-28T19:04:15.487-04:002014-05-28T19:04:15.487-04:00This comment has been removed by the author.Anonymoushttps://www.blogger.com/profile/03137929201799845982noreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-59629452714264745422011-02-03T11:25:15.678-05:002011-02-03T11:25:15.678-05:00A related question has come up twice in recent wee...A related question has come up twice in recent weeks on CPLEX forums: if the reduced cost is non-zero, how do you know to which bound it applies? The obvious answer is "get the variable value and compare it to its lower and upper bounds", but actually in CPLEX there may be a better way (which avoids issues of rounding errors). In the C++ and Java APIs there are methods (getBasisStatus for one variable, getBasisStatuses for a vector of variables) that will return a status indicator for a variable. If it is "AtLower", the reduced cost is the shadow price for the lower bound, and similarly for "AtUpper". I'm pretty sure the other APIs provide this information as well.Paul A. Rubinhttps://www.blogger.com/profile/05801891157261357482noreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-62481371166511951832010-09-12T11:22:10.666-04:002010-09-12T11:22:10.666-04:00You raise a good point, and it ties into another c...You raise a good point, and it ties into another concern I had when I taught sensitivity analysis, which is whether it's really all that useful when (in most cases) you can just tweak the model and reoptimize rather cheaply. Since you made a related post on OR-Exchange (http://www.or-exchange.com/questions/680/sensitivity-analysis-avoiding-pitfalls), I gave a (much!) lengthier answer there. I'll just repeat here the link you provided to MOSEK's explanation of how to do sensitivity: http://www.mosek.com/fileadmin/products/5_0/tools/doc/html/tools/node016.html.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8781383461061929571.post-291278419165351702010-09-12T03:11:53.992-04:002010-09-12T03:11:53.992-04:00There is very nice theory on doing "correct&q...There is very nice theory on doing "correct" sensitivity analysis, which is not bound by the annoying non degeneracy assumption. You have to do more work, which involves reoptimizing, but what is amazing is that nobody seem to find this just slightly interesting. I have never seen anybody use it in a real life application, people just use the standard ranges because they were taught back in school, even though it can lead to faulty conclusions if not careful.Bo Jensenhttps://www.blogger.com/profile/10533779186894174073noreply@blogger.com