<div>I'm more of a code-monkey than someone who understands how all this stuff works -- so if someone could sanity-check my idea and give feedback it would be greatly appreciated.<br></div><div><br></div><div><br></div><div>I'm running cbc against problems that have realllly big constants, and it tends to lead to a bunch of numerical instability problems (e.g. missing solutions and the like ). And one thing that I would like to do is start adding "tie-breaking"  but the naive way just causes the instability issues to blow up.<br></div><div><br></div><div><div>By "tie-breaking" I mean telling cbc that "Optimizing against obj1, but if multiple solutions have the same value ... then optimize against obj2".  The naive way to do this is compute the max-possible value that  obj2 can be, and then tell cbc to optimize for:<br></div><div><br></div><div>obj1 * (MAX_POSSIBLE_OBJ2+1) + obj2<br></div><div><br></div><div><div>Which of course would work if it wasn't for the numeric instability issues.  However, I have a "smarter" idea, which is to run cbc twice.   The first time I optimize for obj1  and figure out what the value is. (Let's say = <span class="s1">1099511627768 ), then this time run cbc a second time but this time with an additional constraint:<br></span></div><div><br></div><div>obj1 = 1099511627768</div><div><br></div><div><span class="s1">And now optimize for obj2 instead of obj1</span><br></div><div><br></div><div><span class="s1">--</span><br></div><div><br></div><div>So my question for the list is, "is this a good idea"? And secondly, could something like this be supported natively by cbc, which would save me a lottt of plumbing work.<br></div><div><br></div><div><br></div><div><br></div></div></div><div class="protonmail_signature_block"><div class="protonmail_signature_block-user"><div>-Ryan<br></div></div><div class="protonmail_signature_block-proton protonmail_signature_block-empty"><br></div></div><div><br></div>