[RBFOpt] Problem with 20d rosenbrock function

Giacomo Nannicini giacomo.n at gmail.com
Thu Nov 22 10:09:42 EST 2018


Hi Andreas,
RBFOpt is not designed to be efficient at 60000 iterations. Its goal
is to converge to a good solution quickly (i.e., at most a few
thousand iterations), but in its default configuration there is a lot
of global search and it is not efficient at making many local
improvements. This problem is even more prominent in parallel search
with 20 CPUs, because then only one thread performs local search, the
rest does global search. But in your problem global search is useless.

If you want to experiment a bit, I would suggest the following.
1) Try in serial mode, or at least with not as many CPUs. For
evolutionary algorithms parallelism is easy to achieve, not so much
for DFO methods.
2) Allow restarts to happen, by changing the "discarded_window_size"
parameters. By default this is multiplied by the number of CPUs, so in
your case with 20 CPUs the algorithm never restarts even though it got
stuck.
3) Change refinement_frequency to allow more local search.

Keep in mind that the Rosenbrock functions are quite difficult and in
fact, if I didn't know the global optimum, I would say that reaching a
solution of value 19 within 2000 iterations on a 20-dimensional
nontrivial function, after starting from a value of 4M is not bad.
However if you can afford to do 60K iterations, there are probably
better methods than RBFOpt.

Cheers

Giacomo
On Wed, Nov 21, 2018 at 3:09 AM Sattler, Dr. Andreas <span> wrote:
>
> Hi Giacomo,
>
> some new "insight" from my side: I started another optimization
run with added "sleep" statements in the objective function -- for 10
seconds.
> This time it was doing 20 parallel evaluations all the time,
mostly global search steps, and did not get "stuck" in the previous
way.
> This confirms what you wrote about parallel evaluations.
>
> Unfortunately both runs don't get any lower in objective function
than about 15 (with 0 being the target).
> I am now at 60 000 iterations. For a similar budget even a more
expensive algorithm (in terms of function evaluations) than RBFopt
like differential evolution finds the solution.
>
> In conclusion one probably has to consider this problem too
difficult for the current RBFopt?!
>
> Best regards,
> Andreas
> --
> P.S.: I hope you got my message from yesterday: there was a
warning that it needed approval from the forum moderator due to it
exceeding some size limit.
>
> -----Original Message-----
> From: Giacomo Nannicini <span>
> Sent: Tuesday, November 20, 2018 12:42 PM
> To: Sattler, Dr. Andreas <span>
> Cc: rbfopt at list.coin-or.org
> Subject: Re: [RBFOpt] Problem with 20d rosenbrock function
>
> Hi Andreas,
> can you post the log to understand where and how it gets stuck?
> Regarding the number of parallel evaluations: that's because in
this example the function evaluates almost instantaneously, so the
library never has the time to fill all the CPUs . In any case, it is
unlikely that it will be able to exploit 20 CPUs to good use: it does
pre-emptive evaluation of the points that are likely to be evaluated
in the future, but I am not sure it will be able to predict correctly
> 20 points in the future.
>
> G
> On Tue, Nov 20, 2018 at 5:29 AM Sattler, Dr. Andreas <span> wrote:
> >
> > Dear all,
> >
> >
> >
> > I was very happy with the performance of RBFopt when testing it on the
> > 2D rosenbrock function, the number of function evaluations was very
> > competitive! (150-300 evaluations)
> >
> >
> >
> > Then I went on to test it on a 20D rosenbrock function
(because for production use I need to optimize in similar dimensions):
> >
> >
> >
> > n = self.dimension
> >
> > value=0;
> >
> > for i in range(0,19):
> >
> >    value += 100 * (x[i]*x[i] -x[i+1])*(x[i]*x[i] -x[i+1]) +
> > (x[i]-1)*(x[i]-1);
> >
> >
> >
> > I ran it using these options:
> >
> >
> >
> > rbfopt_cl_interface.py --max_iterations=150000
> > --max_evaluations=150000 --max_cycles=100000
> > --global_search_method=sampling --num_cpus=20 --algorithm=MSRSM
> > --eps_opt=1e-3 --num_global_searches=5 --target_objval=0
> > --log=example2.log  rbfopt_black_box_example2.py
> >
> >
> >
> > Unfortunately, the optimization got kinda stuck after a few
thousand iterations.
> >
> > Also, there are very few parallel function evaluations left
(about 2), slowing down the progress further.
> >
> >
> >
> > Has anyone successfully run RBFopt on this or a similar test problem?
> >
> > Maybe I am doing something wrong? Any ideas?
> >
> >
> >
> > Best regards,
> >
> > Andreas
> >
> >
> >
> >
> >
> >
> >
> > This communication and any files or attachments transmitted
with it may contain information that is copyrighted or confidential
and exempt from disclosure under applicable law. It is intended solely
for the use of the individual or the entity to which it is addressed.
> > If you are not the intended recipient, you are hereby
notified that any use, dissemination, or copying of this communication
is strictly prohibited.
> > If you have received this communication in error, please
notify the sender at once so that he may take the appropriate action
and avoid troubling you further.
> >
> > Thank you for your cooperation.
> >
> > Siltronic AG, Sitz München, Hanns-Seidel-Platz 4, 81737 München,
> > Germany. Amtsgericht München HRB 150884
> >
> > Vorstand: Christoph von Plotho (Vorsitz), Rainer Irle. Vorsitzender
> > des Aufsichtsrats: Tobias Ohler
> >
> > _______________________________________________
> > RBFOpt mailing list
> > RBFOpt at list.coin-or.org
> > https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.or
> > g_mailman_listinfo_rbfopt&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogL
> > xWPA_2Wlc4&r=8FaVxIx99H879Ebkij38NpcRZoYLK-7QMl1LqyvBccA&m=rOMDbs_ElJy
> > HW-FjaUagdNy9NGtaoAzBcEHvCxaQMEo&s=-uhXm9r1s2_UQ2sIHwmRavNdUDJa1BSF1hV
> > 6kguqnyY&e=
> This communication and any files or attachments transmitted with
it may contain information that is copyrighted or confidential and
exempt from disclosure under applicable law. It is intended solely for
the use of the individual or the entity to which it is addressed.
> If you are not the intended recipient, you are hereby notified
that any use, dissemination, or copying of this communication is
strictly prohibited.
> If you have received this communication in error, please notify
the sender at once so that he may take the appropriate action and
avoid troubling you further.
> Thank you for your cooperation.
>
> Siltronic AG, Sitz Muenchen, Hanns-Seidel-Platz 4, 81737
Muenchen, Germany. Amtsgericht Muenchen HRB 150884
> Vorstand: Christoph von Plotho (Vorsitz), Rainer Irle.
Vorsitzender des Aufsichtsrats: Tobias
Ohler</span></span></span></span>



More information about the RBFOpt mailing list