<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Dear Lorenzo and Ahmed,<br>
    <br>
    SCIP solves MINLPs to global optimality even if the problem is
    non-convex. Of course, if there are several optimal solutions you
    might end up with different of those if you change the solution
    process (e.g., by using different start solutions).<br>
    <br>
    Clearly, the solution value of the relaxed version of your problem
    should lead to a better objective value. It seems to be that there
    is a bug which appears when SCIP restarts the solution process. This
    restart does not happen if s is continuous and thus you end up
    (luckily) with the same solution as before.<br>
    <br>
    I will send you a patch as soon as I have fixed the bug. Until then
    you could disable restarts (set limits restarts 0).<br>
    <br>
    <br>
    Regards,<br>
    <br>
    Benny<br>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 01/13/2016 09:47 PM, Ahmed Ibrahim
      wrote:<br>
    </div>
    <blockquote
cite="mid:7BE9AA462EB7354CAA5256EB22A6A0DCB8ADFB4F@UMCE3EXMD01.ad.umanitoba.ca"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <style type="text/css" id="owaParaStyle"></style>
      <div style="direction: ltr;font-family: Tahoma;color:
        #000000;font-size: 10pt;"><span style="font-size: 13.3333px;">I
          meant to say, you may end up with different solutions for the
          different instances 0<=s<=10 and for </span><span
          style="font-size: 13.3333px;">0<=s<=9. If it is the same
          instance and you use different initial points, you can also
          end up with different solutions.</span>
        <div><span style="font-size: 13.3333px;"><br>
          </span></div>
        <div><span style="font-size: 13.3333px;">Regards,</span></div>
        <div><span style="font-size: 13.3333px;">Ahmed<br>
          </span>
          <div style="font-family: Times New Roman; color: #000000;
            font-size: 16px">
            <hr tabindex="-1">
            <div id="divRpF305819" style="direction: ltr;"><font
                size="2" color="#000000" face="Tahoma"><b>From:</b> Scip
                [<a class="moz-txt-link-abbreviated" href="mailto:scip-bounces@zib.de">scip-bounces@zib.de</a>] on behalf of Ahmed Ibrahim
                [<a class="moz-txt-link-abbreviated" href="mailto:Ahmed.Ibrahim@umanitoba.ca">Ahmed.Ibrahim@umanitoba.ca</a>]<br>
                <b>Sent:</b> Wednesday, January 13, 2016 2:08 PM<br>
                <b>To:</b> Lorenzo Gentile<br>
                <b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:scip@zib.de">scip@zib.de</a><br>
                <b>Subject:</b> Re: [SCIP] Unexpected behavior<br>
              </font><br>
            </div>
            <div>
              <div style="direction:ltr; font-family:Tahoma;
                color:#000000; font-size:10pt">Hi Lorenzo,
                <div>It seems this is a non-convex MINLP problem. I'm
                  not sure if such problems, except for quadratic ones,
                  are "<u>guaranteed</u>" to be solved to global
                  optimality by most solvers. I think it's more likely
                  that you are hitting the node limit or iteration limit
                  and it returns the best solution it found so far.
                  Hence every time you solve it, you may end up with
                  different solutions.</div>
                <div><br>
                </div>
                <div>Regards,</div>
                <div>Ahmed <br>
                  <div style="font-family:Times New Roman;
                    color:#000000; font-size:16px">
                    <hr tabindex="-1">
                    <div id="divRpF610613" style="direction:ltr"><font
                        size="2" color="#000000" face="Tahoma"><b>From:</b>
                        Scip [<a class="moz-txt-link-abbreviated" href="mailto:scip-bounces@zib.de">scip-bounces@zib.de</a>] on behalf of Lorenzo
                        Gentile [<a class="moz-txt-link-abbreviated" href="mailto:lorenzo.gentile@moxoff.com">lorenzo.gentile@moxoff.com</a>]<br>
                        <b>Sent:</b> Wednesday, January 13, 2016 9:12 AM<br>
                        <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:scip@zib.de">scip@zib.de</a><br>
                        <b>Subject:</b> [SCIP] Unexpected behavior<br>
                      </font><br>
                    </div>
                    <div>
                      <div dir="ltr">
                        <div>
                          <div>Hello,</div>
                          <div><br>
                          </div>
                          <div>I'm a new user on SCIP, and  interested
                            in solving a non linear constrained
                            optimization problem. I would like to
                            understand why SCIP seems to return a wrong
                            result if applied to a simplified
                            optimization problem whose solution is known
                            a priori.</div>
                          <div><br>
                          </div>
                          <div>Here is my first formulation:</div>
                          <div><br>
                          </div>
                          <div>var y real >= 0;</div>
                          <div>var x real >= 0 <= 10;</div>
                          <div>var s integer >= 0 <= 9;</div>
                          <div>var z binary;</div>
                          <div><br>
                          </div>
                          <div>subto c1: y <=
                            (1-exp(-x))*(1-z)+(1-exp(-(x-s))+1-exp(-s))*z;</div>
                          <div>subto c2: s*z <= x;</div>
                          <div>subto c3: x <= 10*z + s*(1-z);</div>
                          <div><br>
                          </div>
                          <div>maximize obj: y;</div>
                          <div><br>
                          </div>
                          <div>In this case I obtain what I expect (y
                            almost equal to 2): </div>
                          <div><br>
                          </div>
                          <div>objective value:                    
                            1.98652410600183</div>
                          <div>z                                        
                                      1 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>s                                        
                                      5 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>y                                  
                             1.98652410600183 <span class="" style="white-space:pre">
</span>(obj:1)</div>
                          <div>x                                        
                                     10 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_t_0                              
                                      -5 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_r_1                      
                             0.00673794699908548 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_t_2                              
                                      -5 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_r_3                      
                             0.00673794699908546 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_t_4                              
                                     -10 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_r_5                      
                            4.43999297170849e-05 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>prodt_z_t_s_c2_1                        
                                       5 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>prodt_z_t_s_c3_1                        
                                       5 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>nlreform0                                
                                     -5 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div><br>
                          </div>
                          <div>Now, If I enlarge the admissible region
                            by writing 'var s integer >= 0 <= 10;'
                            (and keeping everything else unchanged), I
                            obtain a worse solution (y almost equal to
                            1):</div>
                          <div><br>
                          </div>
                          <div>objective value:                  
                             0.999955600070283</div>
                          <div>s                                        
                                     10 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>y                                  
                            0.999955600070283 <span class="" style="white-space:pre">
</span>(obj:1)</div>
                          <div>x                                        
                                     10 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_r_1                              
                                       1 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_t_2                              
                                     -10 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_r_3                      
                            4.53999297624415e-05 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_t_4                              
                                     -10 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_r_5                      
                            4.43999297170849e-05 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div><br>
                          </div>
                          <div>The solution found with the first
                            formulation is still admissible, it is
                            better (higher y value) but it is not
                            returned by the second formulation.</div>
                          <div><br>
                          </div>
                          <div>Finally, if I write 'var s real >= 0
                            <= 10;'(and keeping everything else
                            unchanged), SCIP returns again what I expect
                            (y almost equal to 2):</div>
                          <div><br>
                          </div>
                          <div>objective value:                    
                            1.98652491319583</div>
                          <div>z                                        
                                      1 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>x                                        
                                     10 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>s                                  
                             5.00321312966099 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>y                                  
                             1.98652491319583 <span class="" style="white-space:pre">
</span>(obj:1)</div>
                          <div>@@c1_1_t_0                        
                             -4.99678687033901 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_r_1                      
                             0.00675919526185386 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_t_2                        
                             -5.00321312966099 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_r_3                        
                            0.0067158915423183 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_t_4                              
                                     -10 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>@@c1_1_r_5                      
                            4.43999297170849e-05 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>prodt_z_t_@@c1_1_t_2_c2_1          
                             5.00321312966099 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>prodt_z_t_@@c1_1_t_2_c3_1          
                             5.00321312966099 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div>nlreform0                          
                            -4.99678687033901 <span class="" style="white-space:pre">
</span>(obj:0)</div>
                          <div><br>
                          </div>
                          <div>Can you please explain me the reason of
                            this unexpected behavior and, if possible,
                            tell me which part of the code is called by
                            these formulations.</div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Scip mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Scip@zib.de">Scip@zib.de</a>
<a class="moz-txt-link-freetext" href="http://listserv.zib.de/mailman/listinfo/scip">http://listserv.zib.de/mailman/listinfo/scip</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
______________________________
Benjamin Müller
Zuse Institute Berlin
Takustr. 7, 14195 Berlin
<a class="moz-txt-link-abbreviated" href="mailto:benjamin.mueller@zib.de">benjamin.mueller@zib.de</a>
+49 30 841 85-195</pre>
  </body>
</html>