Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Citations for the different methods #190

Open
dsweber2 opened this issue Oct 28, 2021 · 3 comments
Open

Citations for the different methods #190

dsweber2 opened this issue Oct 28, 2021 · 3 comments

Comments

@dsweber2
Copy link

I have found this repository very useful, and would like to cite it and the methods it uses. However, as someone not directly involved in the evolutionary computing space, it is not at all obvious to me where to find a detailed description of these methods beyond reading through the code on this repository. Doing a google scholar search for the current best method adaptive_de_rand_1_bin for example, it is not clear that any of the results are actually what is being used in this repository (which appears to be using a very particular kind of Cauchy sampling to resample F and CR; whether this construction is standard for adaptive DE, or something unique to this package is unclear).

It would be quite helpful if this list included references.

@robertfeldt
Copy link
Owner

Thanks for the kind words and happy to hear it's of use.

Yes, I agree it would be nice to collect the references but my focus here has not been on "clean" implementations of algorithms so it's rare that an implementation is based squarely on a single paper. If I remember correctly the adaptive DE algorithms are based on a specific paper though and I'm pretty sure it was parts of this one:

Wang, Yong, et al. "Differential evolution based on covariance matrix learning and bimodal distribution parameter setting." Applied Soft Computing 18 (2014): 232-247.

but I made some variations that were useful on the problems I first applied it on. In particular the radius-limited "topography" idea came from another paper:

http://faculty.hampshire.edu/lspector/pubs/trivial-geography-toappear.pdf

so there is no single paper you can refer to for the adaptive DE. I'll try to be more diligent in collecting refs in the future. Also I will make a paper and put on arxiv.org and possibly try to get it into one of the journal on open-source software on BlackBoxOptim.jl itself; should be easier to cite at that point.

@dsweber2
Copy link
Author

Thanks for the quick reply on this.

has not been on "clean" implementations of algorithms so it's rare that an implementation is based squarely on a single paper.

Understandable, functional is the most important criteria.

Wang, Yong, et al. "Differential evolution based on covariance matrix learning and bimodal distribution parameter setting." Applied Soft Computing 18 (2014): 232-247.

Using the covariance to choose the cross-over location is quite interesting. I wasn't able to see any of that from my read-through of the code, so I assume you're referencing just their methods for choosing CR and F?

I haven't been using the radius limited version, so I can't really comment on that. I had previously assumed that it was just capping the value of each coordinate, but it does look to be more interesting than that.

I'll keep an eye out for the arxiv paper! A Joss article would be excellent. For now hyperlinks to the github page will have to do.

@robertfeldt
Copy link
Owner

Yes, sorry for being imprecise. If memory serves I started implementing the bimodal-Cauchy based online adaptation of CR and F and got so good result that I never came to the covariance learning. Combined with the radius-limiting it gave excellent results. I've later learnt that the radius-limiting is mainly an efficiency booster and doesn't always give any boost but rarely degrades performance. Thus, I've tended to use it.

I'll update BBO with better utilisation of threads and then put on Arxiv.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants