<div>I actually came up with a different idea, what do you think?<br></div><div><br></div><div>First I ask the solver to minimize obj1  .. and when it returns a solution (e.g. 200) then I get the model and add the constraint<br><br>obj1 = 200</div><div><br></div><div>But this time, tell it to minimize obj2 instead of obj1. And the constraint will force it to pick from where obj1 is ideal<br></div><div><br></div><div>This should help with the numerical issues, right?<br></div><div><br></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><div>-------- Original Message --------<br></div><div> On February 16, 2018 8:15 AM, Haroldo Santos <haroldo.santos@gmail.com> wrote:<br></div><div> <br></div><blockquote type="cite" class="protonmail_quote"><div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><div>Hi,<br></div></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><div>In general, use the smaller possible value for upperBound.<br></div></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><div>Gurobi supports hierarchical objectives<br></div><div><a href="http://www.gurobi.com/resources/seminars-and-videos/numerical-issues-webinar">http://www.gurobi.com/resources/seminars-and-videos/numerical-issues-webinar</a><br></div></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><div>Cbc does not have native support for hierarchical objectives but maybe you could use callbacks to interrupt whenever a new integer feasible solution is produced and evaluate this solution using a lexicographic comparison.<br></div></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Cheers,<br></div></div><div class="gmail_extra"><div><br></div><div class="gmail_quote"><div>On Fri, Feb 9, 2018 at 7:41 PM, <span dir="ltr"><<a href="mailto:rhavar@protonmail.com">rhavar@protonmail.com</a>></span> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>I routinely am running into an issue where in the model I have multiple objectives. Say obj1 and obj2. Now obj1 is a lot more important for me, but it's very frequent that ties exist. So I want to say: minimize for obj1, but if there's a tie minimize obj2.<br></div><div><br></div><div>I can sort of do this already by computing a max-possible upper bound for obj2 (but it's very big)  and then say<br></div><div><br></div><div>Minimize:<br></div><div>   obj1 * upperBound  + obj2<br></div><div><br></div><div>which of course works, but I think it leads to some huge numbers that solvers struggle with. I wonder is there a smarter way of "tie breaking"? Or perhaps some sort of native feature where you can say  Minimize(obj1, obj2) ?<br></div><div><br></div><div class="m_-860134643785913286protonmail_signature_block"><div class="m_-860134643785913286protonmail_signature_block-user"><div>-Ryan<br></div></div><div class="m_-860134643785913286protonmail_signature_block-proton m_-860134643785913286protonmail_signature_block-empty"><br></div></div><div><br></div><div><br></div><div>______________________________<wbr>_________________<br></div><div> Cbc mailing list<br></div><div> <a href="mailto:Cbc@list.coin-or.org">Cbc@list.coin-or.org</a><br></div><div> <a href="https://list.coin-or.org/mailman/listinfo/cbc" rel="noreferrer">https://list.coin-or.org/<wbr>mailman/listinfo/cbc</a><br></div><div> <br></div></blockquote></div><div><br></div><div><br></div><div><br></div><div>-- <br></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-family:monospace, monospace" class="font">=============================================================<br>Haroldo Gambini Santos<br>Computing Department<br>Universidade Federal de Ouro Preto - UFOP<br>email: haroldo [at ] <a href="http://iceb.ufop.br">iceb.ufop.br</a><br>home/research page: <a href="http://www.decom.ufop.br/haroldo/">www.decom.ufop.br/haroldo</a><br><br><br>It has long been an axiom of mine that the little things are infinitely<br>the most important.<br> -- Sir Arthur Conan Doyle, "A Case of Identity"</span></div></div></div></div></blockquote><div><br></div>