并行差分进化 [英] Parallel differential evolution

查看:98
本文介绍了并行差分进化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在研究R中的差分进化库,我想知道:这是一种有意义的并行化算法吗?在我看来,您可以将优化间隔分为几个部分,在每个部分上运行算法,然后比较每个部分的结果并返回最小值.

解决方案

是的,它应该并行化.找到 GAUL 项目甚至都包含一些代码(未以任何方式移植到R).

回到R及其DE变体,最好的方法是在编译级别.我在DEoption的RcppDE'port'的'RcppParDE'变体中使用OpenMP进行了尝试,但没有完成.

我了解下一个(当前的?)DEoptim版本具有一个变体,该变体在R级别使用一个foreach循环,虽然不理想,但比仅串行方法更好.

I've been playing around with the differential evolution library in R, and I was wondering: is this an algorithm that it makes sense to parallelize? It seems to me that you could split the optimization interval into several segments, run the algorithm on each segment, and then compare the results of each segment and return the minimum.

解决方案

Yes, it should parallelize. It's not too hard to find numerous Google hits for the topic, and the GAUL project on Soureforge has even some code (that is not ported to R in any way).

Back to R and its DE variants, the best approach would be at the compiled level. I had a go at it using OpenMP in a 'RcppParDE' variant of my RcppDE 'port' of DEoption but didn't get it finished.

I understand that the next (current?) DEoptim version has a variant that uses a foreach loop at the R level which is not ideal but better than a serial-only approach.

这篇关于并行差分进化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆