Test distributions for optimization/sampling

I found this nice collection on wikipedia of test distributions for optimization problems that might also be useful for any benchmarks of sampling methods:

Here’s another great resource (along with the rest of the site!):

https://www.sfu.ca/~ssurjano/optimization.html

And finally here’s a PDF with some more examples with nice 3d images:

If you’ve found any other resource in this vein, post it as a reply! We should make a repository testing our methods with a bunch of these in the future and then we can have an automated suite of benchmarks :smiley:

I worry that if I were to use some of these, I would be prosecuted for AI abuse in 2043 when they finally take over.

2 Likes

Do you have any example of how to use test functions :joy: (maybe a naive question) I saw many beautiful 3D figures but don’t know when they could be used ⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄

1 Like

they should thank you, really, for training their brains

1 Like

Sure! They’re most useful when developing optimization and sampling tools. Basically you want to test how well your proposed method can handle these complicated surfaces with certain features that might be in your actual problem. For example, in our paper looking at fission pathways we tested the algorithm on a couple of these test surfaces (figs 2, 4, 5, 6) to explore the features that we are interested in:

It’s also handy treating those distributions like a Bayesian posterior, too! That’s handy if you want a complicated distribution to benchmark a sampling algorithm, for instance. Some nice examples can be found here:

https://chi-feng.github.io/mcmc-demo/app.html?algorithm=NaiveNUTS&target=banana

Finally, they’re often used in local optimization problems too. The PyNEB example from our paper was finding pathways through those surfaces, but you could also imagine just wanting to find minima and maxima.

One use case could also be to use one as a surrogate for some other function that is more expensive to calculate. If you were developing some algorithm to find poles, for instance, there’s some benefit in having a lot of control over where those poles are for benchmarking purposes.

1 Like