Dear Nicolas,<br>You should refer to the documentation of Bonmin. This software is not currently designed at giving global optima of non-convex problems (problems which have a non-convex continuous relaxation) and the default algorithm is particularly not designed at non-convex problem.
<br>The least you should do if you want to try to solve a non-convex problem is to set the option<br><br>bonmin.algorithm B-BB<br><br>(If I do that on your problem, bonmin finds a feasible solution).<br><br>For more options, you could look at the documentation, there are a few extra tricks we can play to try to be lucky with finding good solution of non-convex problems. For instance you can find it here:
<br><a href="http://www.coin-or.org/Bonmin/options_set/index.html#sec:opt_nonconv">http://www.coin-or.org/Bonmin/options_set/index.html#sec:opt_nonconv</a><br><br>I am very happy to learn that RealPlayer (isn&#39;t that name already taken by somebody?)&nbsp; solves gear4.
<br>I have a question. I see that you are using a modeling language different than ampl. Does your code come with a modeling language for Non-linear problems? Is it able to compute derivative? Is it free?<br>If it does the three it might be of interest to us sometime.
<br><br>Cheers,<br>Pierre<br><div><span class="gmail_quote">On 9/12/07, <b class="gmail_sendername">Nicolas BERGER</b> &lt;<a href="mailto:Nicolas.Berger@univ-nantes.fr">Nicolas.Berger@univ-nantes.fr</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Bonjour à nouveau,<br><br><br>I am trying to solve the following problem (it is an optimisation problem
<br>--&quot;gear4&quot;-- from MINLPlib which I have changed into a simple constraint<br>satisfaction problem) :<br><br>----------------------------------------------------------------<br>param best_value := 1.643428;<br>
param eps&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:= 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#= max(1, 1% x best_value)<br><br>var i1 integer &gt;= 10 &lt;= 25 ; #solu=19.0000000000,<br>var i2 integer &gt;= 0 &lt;= 20 ;&nbsp;&nbsp;#solu=16.0000000000,<br>var i3 integer &gt;= 37 &lt;= 50 ; #solu=
43.0000000000,<br>var i4 integer &gt;= 45 &lt;= 55 ; #solu=49.0000000000,<br>var x6 &gt;= 0 &lt;= 100 ; #solu=,<br>var x7 &gt;= 0 &lt;= 100 ; #solu=1.64342800000;<br><br><br>subject to<br>&nbsp;&nbsp;&nbsp;&nbsp;cons1:-1.0e6*i1*i2/(i3*i4)-x6+x7=-
144279.32477276;<br>&nbsp;&nbsp;&nbsp;&nbsp;obj1:-x6-x7-(0) &gt;= - best_value - eps;<br>&nbsp;&nbsp;&nbsp;&nbsp;obj2:-x6-x7-(0) &lt;= - best_value + eps;<br><br>option solver bonmin ;<br><br>solve ;<br>display i1,i2,i3,i4,x6,x7;<br>----------------------------------------------------------------
<br><br><br><br><br>Here is what I get from Ampl :<br><br>-----------------------------------------------------------------<br>WARNING: Tried to set option &quot;expect_infeasible_problem&quot; to a value of &quot;yes&quot;,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; but the previous value is set to disallow clobbering.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The setting will remain as: &quot;expect_infeasible_problem no&quot;<br>WARNING: Tried to set option &quot;mu_strategy&quot; to a value of &quot;adaptive&quot;,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; but the previous value is set to disallow clobbering.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The setting will remain as: &quot;mu_strategy monotone&quot;<br>WARNING: Tried to set option &quot;mu_oracle&quot; to a value of &quot;probing&quot;,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; but the previous value is set to disallow clobbering.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The setting will remain as: &quot;mu_oracle quality-function&quot;<br>bonmin:<br><br>******************************************************************************
<br>This program contains Ipopt, a library for large-scale nonlinear<br>optimization.<br> Ipopt is released as open source code under the Common Public License (CPL).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For more information visit <a href="http://projects.coin-or.org/Ipopt">
http://projects.coin-or.org/Ipopt</a><br>******************************************************************************<br><br>Error in an AMPL evaluation. Run with &quot;halt_on_ampl_error yes&quot; to see<br>details.<br>
IpOp0008I<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Num&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; It&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; time<br>IpOp0009I&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.012001<br>Cbc0013I At root node, 0 cuts changed objective from 0 to 0 in 1 passes
<br>Cbc0014I Cut generator 0 (Outer Approximation Supporting Hyperplanes for<br>NLP optimum) - 0 row cuts (0 active), 0 column cuts<br>Cbc0014I Cut generator 1 (GMI) - 1 row cuts (0 active), 0 column cuts<br>Cbc0014I Cut generator 2 (Probing) - 0 row cuts (0 active), 1 column cuts
<br>Cbc0014I Cut generator 3 (covers) - 0 row cuts (0 active), 0 column cuts<br>Cbc0014I Cut generator 4 (MIR) - 0 row cuts (0 active), 0 column cuts<br>Cbc0014I Cut generator 5 (Outer Approximation local enumerator) - 0 row
<br>cuts (0 active), 0 column cuts<br>Cbc0014I Cut generator 6 (Outer Approximation feasibility checker) - 0 row<br>cuts (0 active), 0 column cuts<br>Cbc0001I Search completed - best objective 1e+50, took 1 iterations and 0
<br>nodes (0.42 seconds)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Finished&quot;<br>Finished<br><br>bonmin: Infeasible problem<br>i1 = 0<br>i2 = 0<br>i3 = 0<br>i4 = 0<br>x6 = 0<br>x7 = 0<br>----------------------------------------------------------------
<br><br><br><br><br>This problem is said to be infeasible, but it *DOES* have a solution when<br>I use my constraint satisfaction tool (RealPaver) :<br><br>-------------------------------------------------------------------
<br>problem pb_gear4 /*MINLPlib*/<br>&nbsp;&nbsp;num<br>&nbsp;&nbsp;&nbsp;&nbsp;best_value := 1.643428,<br>&nbsp;&nbsp;&nbsp;&nbsp;eps&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:= 1;<br><br>&nbsp;&nbsp;var<br>&nbsp;&nbsp;&nbsp;&nbsp;i1 : int ~ [10, 25] /*19.0000000000*/,<br>&nbsp;&nbsp;&nbsp;&nbsp;i2 : int ~ [0, 20] /*16.0000000000*/,<br>&nbsp;&nbsp;&nbsp;&nbsp;i3 : int ~ [37, 50] /*
43.0000000000*/,<br>&nbsp;&nbsp;&nbsp;&nbsp;i4 : int ~ [45, 55] /*49.0000000000*/,<br>&nbsp;&nbsp;&nbsp;&nbsp;x6 : real ~ [0, 100] /**/,<br>&nbsp;&nbsp;&nbsp;&nbsp;x7 : real ~ [0, 100] /*1.64342800000*/;<br><br><br><br>&nbsp;&nbsp;ctr<br>&nbsp;&nbsp;&nbsp;&nbsp;-1.0e6*i1*i2/(i3*i4)-x6+x7=-144279.32477276,<br>&nbsp;&nbsp;&nbsp;&nbsp;-x6-x7-(0) &gt;= - best_value - eps,
<br>&nbsp;&nbsp;&nbsp;&nbsp;-x6-x7-(0) &lt;= - best_value + eps;<br><br><br><br>&nbsp;&nbsp;solve * ;<br>end ;<br>-------------------------------------------------------------------<br><br><br><br>Solving this CSP by RealPaver gives me the following output :
<br><br>-------------------------------------------------------------------<br>Box 0 [11340 ms] [width 8.3528e-09] [vol 0]<br>i1 = 16<br>i2 = 19<br>i3 = 43<br>i4 = 49<br>x6 ~ [0..8.352799341082573e-09]<br>x7 ~ [1.643428473966196..1.643428482318996
]<br><br>Solving in 11340ms<br>1 solution(s)<br>379903 split(s)<br>29 box(es) created in memory<br>-------------------------------------------------------------------<br><br><br><br>I need an explanation... :(<br><br><br>
Nicolas<br><br><br>_______________________________________________<br>Bonmin mailing list<br><a href="mailto:Bonmin@list.coin-or.org">Bonmin@list.coin-or.org</a><br><a href="http://list.coin-or.org/mailman/listinfo/bonmin">
http://list.coin-or.org/mailman/listinfo/bonmin</a><br></blockquote></div><br>