<div dir="ltr">Dear Giacomo,<div>Thank you for your reply.</div><div>I have re-ordered the settings of Path as follows, but the issue is still the same: Do you think Bonmin was not properly installed?</div><div>Iter  Cycle  Action             Objective value      Time      Gap<br>  ----  -----  ------             ---------------      ----      ---<br>     0      0  Initialization           -0.782797      0.01   100.00 *<br>     0      0  Initialization           69.095477      0.01   100.00  <br>     0      0  Initialization           20.000000      0.01   100.00  <br>     0      0  GlobalStep               -9.829600      0.03   100.00 *<br>     1      0  GlobalStep               -9.946732      0.05   100.00 *<br>     2      0  GlobalStep               -0.133622      0.07   100.00  <br>     3      0  GlobalStep               -8.304083      0.09   100.00  <br>     4      0  GlobalStep               -9.999968      0.11   100.00 *<br>Traceback (most recent call last):<br>  File "C:/Users/chuong/PycharmProjects/LearningPython/RBFOpt_test.py", line 15, in <module><br>    val, x, itercount, evalcount, fast_evalcount = alg.optimize()<br>  File "C:\ProgramData\Anaconda3\lib\site-packages\rbfopt\rbfopt_algorithm.py", line 795, in optimize<br>    self.optimize_serial(pause_after_iters)<br>  File "C:\ProgramData\Anaconda3\lib\site-packages\rbfopt\rbfopt_algorithm.py", line 1056, in optimize_serial<br>    self.node_is_noisy)<br>  File "C:\ProgramData\Anaconda3\lib\site-packages\rbfopt\rbfopt_algorithm.py", line 2438, in local_step<br>    categorical_info, node_pos, rbf_lambda, rbf_h, node_pos[fmin_index])<br>  File "C:\ProgramData\Anaconda3\lib\site-packages\rbfopt\rbfopt_aux_problems.py", line 297, in minimize_rbf<br>    if (not opt.available()):<br>  File "C:\ProgramData\Anaconda3\lib\site-packages\pyomo\opt\base\solvers.py", line 99, in available<br>    raise pyutilib.common.ApplicationError("Solver (%s) not available" % str(<a href="http://self.name">self.name</a>))<br>pyutilib.common._exceptions.ApplicationError: Solver (bonmin) not available<br><br>Process finished with exit code 1<br></div><div><pre style="background-color:rgb(43,43,43);color:rgb(169,183,198);font-family:"JetBrains Mono",monospace;font-size:9.8pt"><span style="color:rgb(204,120,50)">import </span>numpy <span style="color:rgb(204,120,50)">as </span>np<br><span style="color:rgb(204,120,50)">def </span><span style="color:rgb(255,198,109)">obj_funct</span>(x):<br>    <span style="color:rgb(204,120,50)">return </span>x[<span style="color:rgb(104,151,187)">0</span>]*x[<span style="color:rgb(104,151,187)">1</span>] - x[<span style="color:rgb(104,151,187)">2</span>]<br><br>bb = rbfopt.RbfoptUserBlackBox(<span style="color:rgb(104,151,187)">3</span><span style="color:rgb(204,120,50)">, </span>np.array([<span style="color:rgb(104,151,187)">0</span>] * <span style="color:rgb(104,151,187)">3</span>)<span style="color:rgb(204,120,50)">, </span>np.array([<span style="color:rgb(104,151,187)">10</span>] * <span style="color:rgb(104,151,187)">3</span>)<span style="color:rgb(204,120,50)">,<br></span><span style="color:rgb(204,120,50)">                               </span>np.array([<span style="color:rgb(106,135,89)">'R'</span><span style="color:rgb(204,120,50)">, </span><span style="color:rgb(106,135,89)">'I'</span><span style="color:rgb(204,120,50)">, </span><span style="color:rgb(106,135,89)">'R'</span>])<span style="color:rgb(204,120,50)">, </span>obj_funct)<br>settings = rbfopt.RbfoptSettings(<span style="color:rgb(170,73,38)">minlp_solver_path</span>=<span style="color:rgb(106,135,89)">'c:Cygwin64/home/chuong/bonmin-stable/build/bonmin'</span><span style="color:rgb(204,120,50)">,</span>\<br>                                 <span style="color:rgb(170,73,38)">nlp_solver_path</span>=<span style="color:rgb(106,135,89)">'c:Cygwin64/home/chuong/bonmin-stable/build/ipopt'</span>)<br><span style="color:rgb(128,128,128)">#settings = rbfopt.RbfoptSettings(max_evaluations=50)<br></span>alg = rbfopt.RbfoptAlgorithm(settings<span style="color:rgb(204,120,50)">, </span>bb)<br>val<span style="color:rgb(204,120,50)">, </span>x<span style="color:rgb(204,120,50)">, </span>itercount<span style="color:rgb(204,120,50)">, </span>evalcount<span style="color:rgb(204,120,50)">, </span>fast_evalcount = alg.optimize()</pre></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 24, 2020 at 10:59 AM Giacomo Nannicini <<a href="mailto:giacomo.n@gmail.com">giacomo.n@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Yes but in the code snippet you sent in the previous email, you are<br>
then passing a different RbfoptSettings object to RbfoptAlgorithm --<br>
not the one for which you set the path.<br>
<br>
On Wed, Sep 23, 2020 at 8:50 PM Chuong Thaidoan<br>
<<a href="mailto:chuongthaidoan@gmail.com" target="_blank">chuongthaidoan@gmail.com</a>> wrote:<br>
><br>
> Dear Giacomo,<br>
> Thank you for your prompt reply. I already set the Path in the second line of the Python code, which is as follows:<br>
><br>
> settings = rbfopt.RbfoptSettings(minlp_solver_path='/home/chuong/bonmin-stable/build/bonmin',\<br>
>                                  nlp_solver_path='/home/chuong/bonmin-stable/build/ipopt')<br>
><br>
> or<br>
><br>
> import rbfopt<br>
> settings = rbfopt.RbfoptSettings(minlp_solver_path='Cygwin64/home/chuong/bonmin-stable/build/bonmin',\<br>
>                                  nlp_solver_path='Cygwin64/home/chuong/bonmin-stable/build/ipopt')<br>
><br>
><br>
> On Thu, Sep 24, 2020 at 10:43 AM Giacomo Nannicini <<a href="mailto:giacomo.n@gmail.com" target="_blank">giacomo.n@gmail.com</a>> wrote:<br>
>><br>
>> I do not understand the order of the code in the Python snippet.<br>
>> If bonmin and ipopt are not in your part, you must set the<br>
>> corresponding options in the RbfoptSettings object that is passed to<br>
>> RbfoptAlgorithm.<br>
>><br>
>> Giacomo<br>
>><br>
>> On Wed, Sep 23, 2020 at 8:38 PM Chuong Thaidoan<br>
>> <<a href="mailto:chuongthaidoan@gmail.com" target="_blank">chuongthaidoan@gmail.com</a>> wrote:<br>
>> ><br>
>> > Dear Giacomo,<br>
>> > Thank you for your advice. I have just to re-install Bonmin and run the code. It shows errors as follows. Could you please take a look and let me know some further comments?<br>
>> > Iter  Cycle  Action             Objective value      Time      Gap<br>
>> >   ----  -----  ------             ---------------      ----      ---<br>
>> >      0      0  Initialization           -0.782797      0.01   100.00 *<br>
>> >      0      0  Initialization           69.095477      0.01   100.00<br>
>> >      0      0  Initialization           20.000000      0.01   100.00<br>
>> >      0      0  GlobalStep               -9.829600      0.03   100.00 *<br>
>> >      1      0  GlobalStep               -9.946732      0.06   100.00 *<br>
>> >      2      0  GlobalStep               -0.133622      0.08   100.00<br>
>> >      3      0  GlobalStep               -8.304083      0.10   100.00<br>
>> >      4      0  GlobalStep               -9.999968      0.12   100.00 *<br>
>> > Traceback (most recent call last):<br>
>> >   File "C:/Users/chuong/PycharmProjects/LearningPython/Ipopt/RBFOpt_test_ipopt.py", line 14, in <module><br>
>> >     val, x, itercount, evalcount, fast_evalcount = alg.optimize()<br>
>> >   File "C:\ProgramData\Anaconda3\lib\site-packages\rbfopt\rbfopt_algorithm.py", line 795, in optimize<br>
>> >     self.optimize_serial(pause_after_iters)<br>
>> >   File "C:\ProgramData\Anaconda3\lib\site-packages\rbfopt\rbfopt_algorithm.py", line 1056, in optimize_serial<br>
>> >     self.node_is_noisy)<br>
>> >   File "C:\ProgramData\Anaconda3\lib\site-packages\rbfopt\rbfopt_algorithm.py", line 2438, in local_step<br>
>> >     categorical_info, node_pos, rbf_lambda, rbf_h, node_pos[fmin_index])<br>
>> >   File "C:\ProgramData\Anaconda3\lib\site-packages\rbfopt\rbfopt_aux_problems.py", line 297, in minimize_rbf<br>
>> >     if (not opt.available()):<br>
>> >   File "C:\ProgramData\Anaconda3\lib\site-packages\pyomo\opt\base\solvers.py", line 99, in available<br>
>> >     raise pyutilib.common.ApplicationError("Solver (%s) not available" % str(<a href="http://self.name" rel="noreferrer" target="_blank">self.name</a>))<br>
>> > pyutilib.common._exceptions.ApplicationError: Solver (bonmin) not available<br>
>> ><br>
>> > Your code:<br>
>> ><br>
>> > import rbfopt<br>
>> ><br>
>> > settings = rbfopt.RbfoptSettings(minlp_solver_path='/home/chuong/bonmin-stable/build/bonmin',\<br>
>> >                                  nlp_solver_path='/home/chuong/bonmin-stable/build/ipopt')<br>
>> ><br>
>> > import numpy as np<br>
>> > def obj_funct(x):<br>
>> >   return x[0]*x[1] - x[2]<br>
>> ><br>
>> > bb = rbfopt.RbfoptUserBlackBox(3, np.array([0] * 3), np.array([10] * 3),<br>
>> >                                np.array(['R', 'I', 'R']), obj_funct)<br>
>> > settings = rbfopt.RbfoptSettings(max_evaluations=50)<br>
>> > alg = rbfopt.RbfoptAlgorithm(settings, bb)<br>
>> > val, x, itercount, evalcount, fast_evalcount = alg.optimize()<br>
>> ><br>
>> ><br>
>> > On Wed, Sep 23, 2020 at 11:43 PM Giacomo Nannicini <<a href="mailto:giacomo.n@gmail.com" target="_blank">giacomo.n@gmail.com</a>> wrote:<br>
>> >><br>
>> >> You need both executables. You can download them from AMPL's website. If you compile from scratch, then Bonmin will also compile Ipopt.<br>
>> >><br>
>> >> If the executables are not in the system path, you can specify their location via options.<br>
>> >><br>
>> >><br>
>> >> G<br>
>> >><br>
>> >><br>
>> >> On Wed, Sep 23, 2020, 9:36 AM Chuong Thaidoan <<a href="mailto:chuongthaidoan@gmail.com" target="_blank">chuongthaidoan@gmail.com</a>> wrote:<br>
>> >>><br>
>> >>> Dear Giacomo,<br>
>> >>> Thank you for your email. I am re-installing Bonmin because it still shows errors although I already specified the Path. Can I ask it is true that Bonmin contains Ipopt and so we only need to install Bonmin with Cygwin 64?<br>
>> >>> Best regards,<br>
>> >>> TD Chuong<br>
>> >>><br>
>> >>> On Wed, Sep 23, 2020 at 10:46 PM Giacomo Nannicini <<a href="mailto:giacomo.n@gmail.com" target="_blank">giacomo.n@gmail.com</a>> wrote:<br>
>> >>>><br>
>> >>>> Chuong,<br>
>> >>>> please read the instruction manual, section 1.2. You need Bonmin and<br>
>> >>>> Ipopt to be in your system path, or otherwise you need to specify<br>
>> >>>> their location as options.<br>
>> >>>><br>
>> >>>> Best,<br>
>> >>>><br>
>> >>>> Giacomo<br>
>> >>>><br>
>> >>>><br>
>> >>>><br>
>> >>>><br>
>> >>>> Dear the authors,<br>
>> >>>> I am studying your interesting black-box function packages (RBFOpt),<br>
>> >>>> and I just install it with Bonmin-1.8.8 solver via Cygwin64. I put<br>
>> >>>> your "minimal working example" in Bonmin-1.8.8 folder and run it with<br>
>> >>>> Pycharm. However, it shows errors<br>
>> >>>> "pyutilib.common._exceptions.ApplicationError: Solver (bonmin) not<br>
>> >>>> available".<br>
>> >>>><br>
>> >>>> Could you please let me know some your advice? Thank you.<br>
>> >>>> Best regards,<br>
>> >>>> Chuong Thai Doan<br>
>> >>>> Research Fellow at School of Information Technology<br>
>> >>>> Deakin University, Melbourne, Australia<br>
</blockquote></div>