[RBFOpt] run error

Giacomo Nannicini giacomo.n at gmail.com
Mon Apr 22 11:00:07 EDT 2019


If you run on different platforms, results might be different due to
different versions of the packages (for example, they may have been
compiled with different compilers). So, even if you run exactly the
same code, it will behave differently. There is not much you can do
about it and all software may display this sort of behavior, not just
RBFOpt, unless all of your software and hardware stack is exactly the
same.

Also, because the optimization is stochastic, you should do different
runs with different random seeds if you want to test robustness. It is
possible that you will find the optimum on the server using a
different random seed (option rand_seed).

Best,

G

On Mon, Apr 22, 2019 at 10:50 AM Damir Devetak <ddevetak at gmail.com> wrote:
>
> Hello Gaicomo,
>
> perhaps you can offer me advice on a different matter; I ran the optimization code on two platforms: "local laptop" and on a "server computer"
>
> Using the "same" input parameters I always get the best solution on the laptop and miss out on the server computer
>
>
> Server computer:
>
> Summary: iters 500 evals 447 noisy_evals   0 cycles  57 opt_time   48.08 tot_time   48.08 obj       217.139838 gap 100.00
> final =  217.13983761726763 [420.97466828 420.98430871 420.94447962 203.82218844]
>
>
> Laptop:
>
> Summary: iters 500 evals 494 noisy_evals   0 cycles  68 opt_time   84.59 tot_time   84.59 obj         0.000068 gap 100.00
> final =  6.813523077653372e-05 [420.97590715 420.97555224 420.96937213 420.97495268]
>
>
> Don't understand this; I have Bonmin and Ipopt when running; Is there a package that I am missing on server computer but it doesn't report it? (or something else),
>
> thanks, Damir
>
> On Wed, Apr 17, 2019 at 5:05 PM Giacomo Nannicini <giacomo.n at gmail.com> wrote:
>>
>> Not knowing anything about the function, I can't make any comments
>> about convergence, unfortunately. If the function is well-behaved it
>> will converge in the limit. In practice, you just have to try and see.
>>
>> G
>>
>> On Wed, Apr 17, 2019 at 11:02 AM Damir Devetak <ddevetak at gmail.com> wrote:
>> >
>> > ok great; Just a sub-question. I want to optimize a black-box function with ~5 parameters with some par. being of different orders (x10). I didn't  read the paper that you referenced but how well can this algorithm converge in general?
>> >
>> > cheers, Damir
>> >
>> > On Wed, Apr 17, 2019 at 4:28 PM Giacomo Nannicini <giacomo.n at gmail.com> wrote:
>> >>
>> >> Hi Damir,
>> >> please read the installation instructions:
>> >> https://github.com/coin-or/rbfopt
>> >> You need to install bonmin and iptopt. Thanks.
>> >>
>> >> Giacomo
>> >>
>> >> On Wed, Apr 17, 2019 at 10:26 AM Damir Devetak <ddevetak at gmail.com> wrote:
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > Hello,
>> >> >
>> >> >
>> >> > I began testing out the optimization package from git; the simple example of
>> >> >
>> >> > import rbfopt
>> >> > import numpy as np
>> >> > def obj_funct(x):
>> >> >   return x[0]*x[1] - x[2]
>> >> > ......
>> >> >
>> >> >
>> >> > gives,
>> >> >
>> >> >  Iter  Cycle  Action             Objective value      Time      Gap
>> >> >   ----  -----  ------             ---------------      ----      ---
>> >> >      0      0  Initialization           -0.782797      0.00   100.00 *
>> >> >      0      0  Initialization           59.515133      0.01   100.00
>> >> >      0      0  Initialization           20.000000      0.01   100.00
>> >> >      0      0  GlobalStep               -9.831245      0.05   100.00 *
>> >> >      1      0  GlobalStep                0.454536      0.08   100.00
>> >> >      2      0  GlobalStep               -9.933694      0.12   100.00 *
>> >> >      3      0  GlobalStep               -8.291156      0.16   100.00
>> >> >      4      0  GlobalStep               -9.988590      0.20   100.00 *
>> >> > Traceback (most recent call last):
>> >> >   File "test.py", line 25, in <module>
>> >> >     val, x, itercount, evalcount, fast_evalcount = alg.optimize()
>> >> >   File "/usr/lib/python2.7/site-packages/rbfopt/rbfopt_algorithm.py", line 749, in optimize
>> >> >     self.optimize_serial(pause_after_iters)
>> >> >   File "/usr/lib/python2.7/site-packages/rbfopt/rbfopt_algorithm.py", line 986, in optimize_serial
>> >> >     self.node_is_noisy)
>> >> >   File "/usr/lib/python2.7/site-packages/rbfopt/rbfopt_algorithm.py", line 2267, in local_step
>> >> >     node_pos[fmin_index])
>> >> >   File "/usr/lib/python2.7/site-packages/rbfopt/rbfopt_aux_problems.py", line 278, in minimize_rbf
>> >> >     if (not opt.available()):
>> >> >   File "/usr/lib64/python2.7/site-packages/pyomo/opt/base/solvers.py", line 99, in available
>> >> >     raise pyutilib.common.ApplicationError("Solver (%s) not available" % str(self.name))
>> >> > pyutilib.common._exceptions.ApplicationError: Solver (bonmin) not available
>> >> >
>> >> >
>> >> >
>> >> > Looking at version requires this is fine, any advice?
>> >> >
>> >> >
>> >> > cheers, Damir Devetak
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > RBFOpt mailing list
>> >> > RBFOpt at list.coin-or.org
>> >> > https://list.coin-or.org/mailman/listinfo/rbfopt


More information about the RBFOpt mailing list